【最小二乘法】一个Matlab程序 - LateStop

【最小二乘法】一个Matlab程序

%我给你个最小二乘拟合的例子自己体会一下:
%下面给定的是乌鲁木齐最近1个月早晨7:00左右(新疆时间)的天气预报所得到的温度数据%表,按照数据找出任意次曲线拟合方程和它的图像。
%(2008年10月26~11月26)
%天数 1 2 3 4 5 6 7 8 9 10
%温度 9 10 11 12 13 14 13 12 11 9
%天数 11 12 13 14 15 16 17 18 19 20
%温度 10 11 12 13 14 12 11 10 9 8
%天数 21 22 23 24 25 26 27 28 29 30
%温度 7 8 9 11 9 7 6 5 3 1

%下面应用Matlab编程对上述数据进行最小二乘拟合
%Matlab程序代码:

x=[1:1:30];
y=[9,10,11,12,13,14,13,12,11,9,10,11,12,13,14,12,11,10,9,8,7,8,9,11,9,7,6,5,3,1];
a1=polyfit(x,y,3)            %三次多项式拟合%
a2= polyfit(x,y,9)           %九次多项式拟合%
a3= polyfit(x,y,15)            %十五次多项式拟合%
b1= polyval(a1,x)
b2= polyval(a2,x)
b3= polyval(a3,x)
r1= sum((y-b1).^2)           %三次多项式误差平方和%
r2= sum((y-b2).^2)          %九次次多项式误差平方和%
r3= sum((y-b3).^2)          %十五次多项式误差平方和%
plot(x,y,\'*\')          %用*画出x,y图像%
hold on
plot(x,b1, \'r\')          %用红色线画出x,b1图像%
hold on
plot(x,b2, \'g\')         %用绿色线画出x,b2图像%
hold on
plot(x,b3, \'b:o\')         %用蓝色o线画出x,b3图像%