主题:求助非线性拟合模型参数
我是菜鸟,算个模型参数,
lny=-0.3915*[m1/2/(1+1.2*m1/2)+1.6667*ln(1+1.2m1/2)]+2*c(1)m+ 0.5*c(2) [1-(1+2*m1/2-2*m)exp(-2*m1/2)] +c(3)*m2
我写的计算程序
function f=Pitzer(c,mdata)
f=(-0.3915).*(mdata.^0.5./(1+1.2.*mdata.^0.5)+1.66667.*log(1+1.2.*mdata.^0.5))+2.*c(1).*mdata+0.5.*c(2).*(1-(1+2.*mdata.^0.5-2.*mdata).*exp(-2.*mdata.^0.5))+c(3).*mdata.^2;
mdata=[0.0855 0.0879 0.1001 0.1051 0.1273 0.1398 0.1729];
ydata=[-0.2731 -0.2640 -0.2917 -0.2837 0.3202 -0.3369 -0.3411];
c0=[1 1 1];
for i=1:100000
c=lsqcurvefit('Pitzer',c0,mdata,ydata);
c0=c;
end
c
答案应该是-0.0224 0.1749 0.0020 可是我的出来的是 107.1222 -147.8175 -365.6594
请高手指点下,可能公式表达出现了问题,非常感谢!!!
lny=-0.3915*[m1/2/(1+1.2*m1/2)+1.6667*ln(1+1.2m1/2)]+2*c(1)m+ 0.5*c(2) [1-(1+2*m1/2-2*m)exp(-2*m1/2)] +c(3)*m2
我写的计算程序
function f=Pitzer(c,mdata)
f=(-0.3915).*(mdata.^0.5./(1+1.2.*mdata.^0.5)+1.66667.*log(1+1.2.*mdata.^0.5))+2.*c(1).*mdata+0.5.*c(2).*(1-(1+2.*mdata.^0.5-2.*mdata).*exp(-2.*mdata.^0.5))+c(3).*mdata.^2;
mdata=[0.0855 0.0879 0.1001 0.1051 0.1273 0.1398 0.1729];
ydata=[-0.2731 -0.2640 -0.2917 -0.2837 0.3202 -0.3369 -0.3411];
c0=[1 1 1];
for i=1:100000
c=lsqcurvefit('Pitzer',c0,mdata,ydata);
c0=c;
end
c
答案应该是-0.0224 0.1749 0.0020 可是我的出来的是 107.1222 -147.8175 -365.6594
请高手指点下,可能公式表达出现了问题,非常感谢!!!