登录论坛

查看完整版本 : [求助]非线性最小二乘法 为什么没法进行下去?


redick123456
2008-04-15, 19:22
提示Optimization terminated: relative function value
changing by less than OPTIONS.TolFun.
换了好几个参数都不行 难道我这个问题就拟和不了么?请各位帮忙。。。

程序:
kk0=[1,1];
options=optimset('lsqnonlin');
[kk,resnorm,residual]=lsqnonlin(@fun,kk0,[],[],options);

function F=fun(kk)
p0=1;
x1=[0.316,0.426,0.540,0.584];
x2=[0.684,0.574,0.460,0.416];
y1=[0.430,0.526,0.608,0.654];
y2=[0.570,0.474,0.392,0.346];
p01=[1.3661,1.2731,1.1991,1.1606];
p02=[0.7902,0.7326,0.6869,0.6632];
for i=1:4
r1(i)=exp((-1)*log(x1(i)+kk(1)*x2(i))+x2(i)*(kk(1)/(x1(i)+kk(1)*x2(i))-kk(2)/(x2(i)+kk(2)*x1(i))));
r2(i)=exp((-1)*log(x2(i)+kk(2)*x1(i))+x1(i)*(kk(2)/(x2(i)+kk(2)*x1(i))-kk(1)/(x1(i)+kk(1)*x2(i))));
end
for i=1:4
F(i)=10^5*(y1(i)-r1(i)*x1(i)*p01(i)/p0);
end
for i=5:8
F(i)=10^5*(y2(i-4)-r2(i-4)*x2(i-4)*p02(i-4)/p0);
end