资源描述
最小二乘法数据拟合
设给定数据,
在集合中找一个函数
, (1)
其误差是
, (2)
使满足
(3)
是上给定的权函数。上述求逼近函数的方法就称为曲线拟合的最小二乘法。满足关系式(3)的函数称为上述最小二乘问题的最小二乘解。
并且有结论:
1)对于给定的函数表,,在函数类中存在唯一的函数,使得关系式(3)成立。
2)最小二乘解的系数可以通过解法方程
, (4)
作为曲线拟合的一种常用的情况,如果讨论的是代数多项式拟合,即取
那么相应的法方程(4)就是
(5)
其中,,并且将简写成“”。
此时,,称它为数据拟合多项式,上述拟合称为多项式拟合。
例:已知某高度传感器测得的数据如下表:
表1
序号
1
2
3
4
5
6
7
时间
(秒)
1
2
3
4
6
7
8
高度
(米)
2
3
6
7
5
3
2
试用最小二乘法求多项式曲线与此数据组拟合。
(一)算法:
解:取二次方多项式去拟合(当然也可以取三次、四次等,次数越高计算越复杂),
由式(5)可建立法方程组(其中取)
(6)
由表1的数据可以计算出
,,,,,,
计算结果列在表2中
1
2
3
4
5
6
7
求和
时间
(秒)
1
2
3
4
6
7
8
31
高度
(米)
2
3
6
7
5
3
2
28
1
4
9
16
36
49
64
179
1
8
27
64
216
343
512
1171
1
16
81
256
1296
2401
4096
8147
2
6
18
28
30
21
16
121
2
12
54
112
180
147
128
635
将表2中算得的结果代入法方程(6),可得:
解方程组可得:
故所求拟合曲线为:
(二)用MATLAB编程求解:
多项式函数 使用 polyfit(x,y,n),n为次数
拟合曲线
x=[1,2,3,4,6,7,8];
y=[2,3,6,7,5,3,2];
解:MATLAB程序如下:
x=[1,2,3,4,6,7,8];
y=[2,3,6,7,5,3,2];
p=polyfit(x,y,2)
x1=0:0.01:10;
y1=polyval(p,x1);
plot(x,y,'*r',x1,y1,'-b')
计算结果为:
p =
-0.3864 3.4318 -1.3182
展开阅读全文