[求助]非线性最小二乘法 为什么没法进行下去?
			 
			 
			
		
		
		
			
			提示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
		 
		
		
		
		
		
		
		
	 |