- 积分
- 0
- 注册时间
- 2010-12-8
- 仿真币
-
- 最后登录
- 1970-1-1
|
digits(8)
c=[4.2;3.25;2.52;1.95;1.51];
aa=5.4;
bb=-0.3;
for i=1:10
for j=1:5
syms a b
l(j,1)=a*exp(j*b);
s=jacobian(l(j,1));
z1=subs(s,'a',aa);
z2=subs(z1,'b',bb);
g(j,:)=vpa(z2);
end
g;
for k=1:5
a0=aa;
b0=bb;
la(k,1)=a0*exp(k*b0);
e(k,1)=c(k,1)-la(k,1);
end
e;
dx=(g'*g)^(-1)*g'*e;
r=la'*la-2*la'*c;
for k1=1:5
ax=aa+0.5*dx(1,1);
bx=bb+0.5*dx(2,1);
lb(k1,1)=ax*exp(k1*bx);
end
rr=lb'*lb-2*lb'*c;
for k2=1:5
aax=aa+dx(1,1);
bbx=bb+dx(2,1);
lc(k2,1)=aax*exp(k2*bbx);
end
rrr=lc'*lc-2*lc'*c;
f=0.5+0.25*(r-rrr)/(r-2*rr+rrr)
a1=aa+f*dx(1,1);
b1=bb+f*dx(2,1);
for kk=1:5
ld(kk,1)=a1*exp(kk*b1);
end
rrrr=ld'*ld-2*ld'*c
aa=a1
bb=b1
rb=rrrr-r;
tol=0.0001;
if rb(1,1)<=tol
break;
end
end
disp(a1);
disp(b1);
运行后报错:??? Error using ==> sym.le at 11
Function 'le' is not implemented for MuPAD symbolic objects.
Error in ==> shili at 48
if rb(1,1)<=tol
请问高手该怎么修改啊?非常谢谢!!! |
评分
-
1
查看全部评分
-
|