大虾们,谁能用matlab做个曲线拟合的最小二乘法的程序

来源:百度知道 编辑:UC知道 时间:2024/06/25 20:58:04
谁能用matlab做个曲线拟合的最小二乘法的程序
一定给高分啊
做的正确另有加分

x=[1,2,3,4,5]
y=[500.6,442.4,428.6,370.1,343.1]
p=polyfit(x,y,1)
y6to10=polyval(p,[6:10])
plot(x,y,'o',[x 6:10],polyval(p,[1:10]))

matlab里面有自带的ployfit拟合曲线的函数啊!可以拟合一次、二次、多次的曲线!

举个列子,对正弦曲线上的点进行拟合
x=0:0.1*pi:2*pi;
y=sin(x);
plot(x,y,'*'),hold on;

p=polyfit(x,y,3)
%此处拟合为3次曲线,可以拟合得更高一些次数
xx=0:0.01*pi:2*pi;
yy=polyval(p,xx);
plot(xx,yy,'-r',xx,sin(xx),'-.b')

p =

0.088562710774691 -0.834683884655302 1.786088996171104 -0.1191642413538

画出的图中,蓝色虚线是正弦曲线,星点是拟合数据点,红色是拟合出的曲线,可以提高曲线拟合的次数,应该更逼近的