第1个回答 2010-04-28
我给你个用lsqcurvefit作非线性拟合的例子,你自己照着改一下吧
另外,拟合结果是初值敏感的,因为找到的不一定是全局最优而可能是初值附近的局部最优
function Untitled3
clc
xi=[0.019,0.023,0.027]; % x data
yi=[430,380,256]; % y data
abc0=[4,0.5,5]; % initial values
abc = lsqcurvefit(@fun,abc0,xi,yi)
% target function
function y = fun(abc,x)
y = (abc(1)*(1-x/abc(2))+x/abc(2)).^abc(3);
abc =
31.2588 -3.9585 1.7033
第2个回答 2019-04-13
程序为:
x=[15,30,45,60,75,90,105,120,135,150,165,180,195,210,225,240,255,270];
y=[7,7.9,8.8,10,11,12.6,14,14.6,15.2,15.7,16.2,16.4,16.7,17,17.3,17.5,17.7,18.0];
p=polyfit(x,y,2)
x2=0:300;
y2=polyval(p,x2);
plot(x,y,'o',x2,y2)
结果为:
p
=
-0.000193441119138
0.098295493636051
5.181372549019607
p所得三个值就是对应你要求的m(1)
,m(2),m(3)三个系数