线性最小二乘法
曲线拟合:已知平面上一组横坐标互不相同的点,寻求一个函数,使其与所有数据点最为接近。
拟合函数:
f(x)=a1r1(x)+a2r2(x)+⋅⋅⋅+amrm(x)
ak 为待定系数,
r k ( x ) 为实现选定的一组线性无关函数,比如:当你观察已知数据点的分布大致为一条直线,就可以选r k ( x ) = a 1 ( x ) + a 2
这种形式。
拟合准则:使得最小
matlab实现
1.解方程组的方法
x=[19 25 31 38 44]'; y=[19.0 32.3 49.0 73.3 97.8]'; r=[ones(5,1),x.^2]; ab=r\y x0=19:0.1:44; y0=ab(1)+ab(2)*x0.^2; plot(x,y,'o',x0,y0,'r')
2.多项式拟合法
使用函数p o l y f i t ( x 0 , y 0 , m ) ,前面是已知数据点,m是拟合多项式的次数,返回值是拟合多项式的系数向量。
可以用p o l y v a l ( a , x ) 计算多项式在x处的值。
做已知数据的散点图:
%已知某企业1990-1998年的生产利润如下:要预测1997和1998年的利润 x0=[1990 1991 1992 1993 1994 1995 1996]; y0=[70 122 144 152 174 196 202]; plot(x0,y0,'*')
从图片止咳看出,数据呈线性排列,所以选择拟合函数为一次多项式。
x0=[1990 1991 1992 1993 1994 1995 1996]; y0=[70 122 144 152 174 196 202]; a=polyfit(x0,y0,1) y97=polyval(a,1997) y98=polyval(a,1998)
得到:
>> ex5_6_2 a = 1.0e+04 * 0.0021 -4.0705 y97 = 233.4286 y98 = 253.9286
即拟合多项式y = a 1 x + a 2 的系数a 1 = 21 , a 2 = − 4070.5he 1997年预测利润如上。