求教用matlab实现最小二乘法拟合直线

2024年11月23日 08:04
有1个网友回答
网友(1):

rt=[1 1.4 1.6 2 2.4 2.6 3 3.6 4 4.6 5 6];
y=[0.264241,0.408167,0.475069,0.593994,0.691559,0.732615, ...
0.800852,0.874311,0.908422,0.94371,0.959572,0.982649];
p=polyfit(log(rt),log(y),1) % 多项式拟合,取1次就是直线。结果p是多项式系数

xx=1:.1:6;
yy=exp( polyval(p,log(xx) ) ); % 求多项式的值,1次的话,2个系数,相当于y=p(1)*x+p(2)
plot(rt,y,'o',xx,yy); % 画图,原来的点用圈表示。

我试了一下,用直线拟合的不是很好,用二次多项式拟合就好多了。