学院:光电信息学院
姓名:赵海峰
学号:1001
一、曲线拟合的最小二乘法原理:
由已知的离散数据点选择与实验点误差最小的曲线
称为曲线拟合的最小二乘法。
若记
上式可改写为这个方程成为法方程,可写成距阵形式
其中
。
它的平方误差为:
二、数值实例:
下面给定的是乌鲁木齐最近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 | matlab拟合数据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图像%
四、数值结果:
不同次数多项式拟和误差平方和为:
r1 =
r2 =
r3 =
r1、r2、r3分别表示三次、九次、十五次多项式误差平方和。
拟和曲线如下图:
上图中*代表原始数据,红曲线代表三次多项式拟合曲线,绿曲线代表九次多项式拟合曲线,蓝o线代表十五次多项式拟合曲线。
五、结论:
以上结果可以看到用最小二乘拟合来求解问题时,有时候他的结果很接近实际情况,有时候跟实际情况里的太远,因为所求得多项式次数太小时数据点之间差别很大,次数最大是误差最小但是有时后不符合实际情况,所以用最小二乘法时次数要取合适一点。
从上面的拟合中也可以得到多项式拟合误差平方和随着拟合多项式次数的增加而逐渐减小,拟合的曲线更靠近实际数据。拟合更准确。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论