登录论坛

查看完整版本 : [求助]求助while问题


cckk0508
2008-03-30, 21:42
各位大侠帮我看看我的程序哪有问题!
clc;
clear;
syms Kd Ka n1 n2 y1 y2;
X=[Kd Ka];
N=[n1 n2];
y=[y1 y2];
Z=[10+20*X(1)/(X(2)-X(1))*(exp(-X(1)*8/4)-exp(-X(2)*8/4))-8.5]^2+[10+20*X(1)/(X(2)-X(1))*(exp(-X(1)*28/4)-exp(-X(2)*28/4))-7]^2+[10+20*X(1)/(X(2)-X(1))*(exp(-X(1)*36/4)-exp(-X(2)*36/4))-6.1]^2+[10+20*X(1)/(X(2)-X(1))*(exp(-X(1)*56/4)-exp(-X(2)*56/4))-7.2]^2;
x=[1 2];
old=subs(Z,[X(1) X(2)],[x(1) x(2)]);
Z1=[diff(Z,X(1));diff(Z,X(2))];
H=[diff(Z,X(1),2) diff(Z1(1),X(2));diff(Z1(2),X(1)) diff(Z,X(2),2)];
step=Z1.'*Z1\(Z1.'*H*Z1);
F=subs(step,[X(1) X(2)],[x(1) x(2)]);
N(1)=x(1)-F*subs(Z1(1),[X(1) X(2)],[x(1) x(2)]);
N(2)=x(2)-F*subs(Z1(2),[X(1) X(2)],[x(1) x(2)]);
new=subs(Z,[X(1) X(2)],[N(1) N(2)]);
while (abs(new-old)/old)>exp(-6),
x(1)=N(1);
x(2)=N(2);
old=new;
F=subs(step,[X(1) X(2)],[x(1) x(2)]);
N(1)=x(1)-F*subs(Z1(1),[X(1) X(2)],[x(1) x(2)]);
N(2)=x(2)-F*subs(Z1(2),[X(1) X(2)],[x(1) x(2)]);
new=subs(Z,[X(1) X(2)],[N(1) N(2)]);
end
X(1)=N(1);
X(2)=N(2);
为什么总说??? Error using ==> >=
Function '>=' is not defined for values of class 'sym'.
要怎么改改啊?谢谢各位!