Я пытаюсь создать функцию в MATLAB, которая расширяет скобку до степени n, где n - натуральное число. Это то, что я до сих пор:2 переменные в массиве
function expandb = expandb(x,y,n)
z = my_bincoeff1(n);;
syms v x y
v=1:n+1
for i=1:n+1
v(i)=z(i)*x.^(n-i+1)*y.^(i-1);
end
a=0
for i=1+n+1
a=a+v(i)
end
expandb = a;
Я получаю эту ошибку, когда я запускаю его:
??? The following error occurred converting from sym to double:
Error using ==> mupadmex
Error in MuPAD command: DOUBLE cannot convert the input expression into a double
array.
If the input expression contains a symbolic variable, use the VPA function instead.
Error in ==> expandb at 6
v(i)=z(i)*x.^(n-i+1)*y.^(i-1);
Так как я храню 2 переменные в массиве?
Если 'expandb' функция символических переменных или номер? – Jacob
Должна быть функция из 2 переменных. Предположим, что мне нужно развернуть (2x + 3y)^4, я бы написал expandb (2x, 3y, 4), и ответы были бы в форме (2x)^4 + ... – Mobix
Есть ли причина, по которой вы не хотите использовать функцию [EXPAND] (http://www.mathworks.com/help/toolbox/symbolic/expand.html), т. е. развернуть ((2 * x + 3 * y)^4) ;? – gnovice