MATLAB无法执行?? 请各位高手帮忙一下~感谢!!

小弟用Matlab 7.0 跑下列程式,可是run时出现
??? Error using ==> run
Error using ==> sym.maple
Error, wrong number (or type) of parameters in function diff
请问各位大大,小弟的程式哪里出问题了??
以下是小弟的程式:
clear;
syms x1 x2 t;
Fx=2*x1*x2+2*x2-x1^2-2*x2^2;
partial_x1=diff(Fx,x1);
partial_x2=diff(Fx,x2);
x1=0;
x2=0;
for i=1:2;
x_prime(1,i)=x1;
x_prime(2,i)=x2;
gradient_Fx(1,i)=subs(partial_x1);
gradient_Fx(2,i)=subs(partial_x2);
x(1,i)=x_prime(1,i)+gradient_Fx(1,i)*t;
x(2,i)=x_prime(2,i)+gradient_Fx(2,i)*t;
x1=x(1,i);
x2=x(2,i);
fx(1,i)=subs(Fx);
t_star(1,i)=solve(diff(subs(Fx),t),t);
t=t_star(1,i);
final(1,i)=subs(x_prime(1,i)+gradient_Fx(1,i)*t);
final(2,i)=subs(x_prime(2,i)+gradient_Fx(2,i)*t);
if(x1==1 & x2==1)
break;
end
x1=final(1,i);
x2=final(2,i);
end
x_prime
gradient_Fx
x
fx
t_star
final

syms x1 x2 t;
Fx=2*x1*x2+2*x2-x1^2-2*x2^2;
partial_x1=diff(Fx,x1);
partial_x2=diff(Fx,x2); 你先试试这几句能跑不。

t_star(1,i)=solve(diff(subs(Fx),t),t);感觉可能是这一句的问题,subs不知道能否用变量替换变量追问

syms x1 x2 t;
Fx=2*x1*x2+2*x2-x1^2-2*x2^2;
partial_x1=diff(Fx,x1);
partial_x2=diff(Fx,x2);
小弟试过了,这几句都能跑。
如果把程式的for回圈跟if判断式拿掉,i=1,这样就可以Run了!!
小弟是觉得问题应该出在for回圈那里~

追答

t_star(1,i)=solve(diff(subs(Fx),t),t);
t=t_star(1,i);
有可能是因为你第二次再用到t的时候,t已经在第一次赋值了,所以不符合算法要求了

温馨提示:答案为网友推荐,仅供参考
相似回答