最小二乘法的基本原理和多项式拟合
一 最小二乘法的基本原理
从整体上考虑近似函数 同所给数据点 (i=0,1,…,m)误差 (i=0,1,…,m)的大小,常用的方法有以下三种:一是误差 (i=0,1,…,m)绝对值的最大值 ,即误差 向量 的∞—范数;二是误差绝对值的和 ,即误差向量r的1—范数;三是误差平方和 的算术平方根,即误差向量r的2—范数;前两种方法简单、自然,但不便于微分运算 ,后一种方法相当于考虑 2—范数的平方,因此在曲线拟合中常采用误差平方和 来 度量误差 (i=0,1,…,m)的整体大小。
数据拟合的具体作法是:对给定数据 (i=0,1,…,m),在取定的函数类 中,求 ,使误差 (i=0,1,…,m)的平方和最小,即
=
从几何意义上讲,就是寻求与给定点 (i=0,1,…,m)的距离平方和为最小的曲线 (图6-1)。函数 称为拟合 函数或最小二乘解,求拟合函数 的方法称为曲线拟合的最小二乘法。
在曲线拟合中,函数类 可有不同的选取方法.
6—1
二 多项式拟合
假设给定数据点 (i=0,1,…,m), 为所有次数不超过 的多项式构成的函数类,现求一 ,使得
(1)
当拟合函数为多项式时,称为多项式拟合,满足式(1)的 称为最小二乘拟合多项式。特别地,当n=1时,称为线性拟合或直线拟合。
显然
为 的多元函数,因此上述问题即为求 的极值 问题。由多元函数求极值的必要条件,得
(2)
即
(3)
(3)是关于 的线性方程组,用矩阵表示为
(4)
式(3)或式(4)称为正规方程组或法方程组。
可以证明,方程组(4)的系数矩阵是一个对称正定矩阵,故存在唯一解。从式(4)中解出 (k=0,1,…,n),从而可得多项式
(5)
可以证明,式(5)中的 满足式(1),即 为所求的拟合多项式。我们把 称为最小二乘拟合多项式 的平方误差,记作
由式(2)可得
(6)
多项式拟合的一般方法可归纳为以下几步:
(1) 由已知数据画出函数粗略的图形——散点图,确定拟合多项式的次数n;
(2) 列表计算 和 ;
(3) 写出正规方程组,求出 ;
(4) 写出拟合多项式 。
在实际应用中, 或 ;当 时所得的拟合多项式就是拉格朗日或牛顿插值多项式。
例1 测得铜导线在温度 (℃)时的电阻 如表6-1,求电阻R与温度 T的近似函数关系。
i |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
(℃) |
19.1 |
25.0 |
30.1 |
36.0 |
40.0 |
45.1 |
50.0 |
|
76.30 |
77.80 |
79.25 |
80.80 |
82.35 |
83.90 |
85.10 |
解 画出散点图(图6-2),可见测得的数据接近一条直线,故取n=1,拟合函数为
列表如下
i |
|
|
|
|
0 |
19.1 |
76.30 |
364.81 |
1457.330 |
1 |
25.0 |
77.80 |
625.00 |
1945.000 |
2 |
30.1 |
79.25 |
906.01 |
2385.425 |
3 |
36.0 |
80.80 |
1296.00 |
2908.800 |
4 |
40.0 |
82.35 |
1600.00 |
3294.000 |
5 |
45.1 |
83.90 |
2034.01 |
3783.890 |
6 |
50.0 |
85.10 |
2500.00 |
4255.000 |
|
245.3 |
565.5 |
9325.83 |
20029.445 |
正规方程组为
解方程组得
故得R与T的拟合直线为
利用上述关系式,可以预测不同温度时铜导线的电阻值。例如,由R=0得T=-242.5,即预测温度T=-242.5℃时,铜导线无电阻。
6-2
例2 例2 已知实验数据如下表
i |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
10 |
5 |
4 |
2 |
1 |
1 |
2 |
3 |
4 |
试用最小二乘法求它的二次拟合多项式。
解 设拟合曲线方程为
列表如下
I |
|
|
|
|
|
|
|
0 |
1 |
10 |
1 |
1 |
1 |
10 |
10 |
1 |
3 |
5 |
9 |
27 |
81 |
15 |
45 |
2 |
4 |
4 |
16 |
64 |
256 |
16 |
64 |
3 |
5 |
2 |
25 |
125 |
625 |
10 |
50 |
4 |
6 |
1 |
36 |
216 |
1296 |
6 |
36 |
5 |
7 |
1 |
49 |
343 |
2401 |
7 |
49 |
6 |
8 |
2 |
64 |
512 |
4096 |
16 |
128 |
7 |
9 |
3 |
81 |
729 |
6561 |
27 |
243 |
8 |
10 |
4 |
100 |
1000 |
10000 |
40 |
400 |
|
53 |
32 |
381 |
3017 |
25317 |
147 |
1025 |
得正规方程组
解得
故拟合多项式为
*三 最小二乘拟合多项式的存在唯一性
定理1 设节点 互异,则法方程组(4)的解存在唯一。
证 由克莱姆法则,只需证明方程组(4)的系数矩阵非奇异即可。
用反证法,设方程组(4)的系数矩阵奇异,则其所对应的齐次方程组
(7)
有非零解。式(7)可写为
(8)
将式(8)中第j个方程乘以 (j=0,1,…,n),然后将新得到的n+1个方程左右两端分别 相加,得
因为
其中
所以
(i=0,1,…,m)
是次数不超过n的多项式,它有m+1>n个相异零点,由代数基本定理,必须有 ,与齐次方程组有非零解的假设矛盾。因此正规方程组(4)必有唯一解 。定理2 设 是正规方程组(4)的解,则 是满足式(1)的最小二乘拟合多项式。
证 只需证明,对任意一组数 组成的多项式 ,恒有
即可。
因为 (k=0,1,…,n)是正规方程组(4)的解,所以满足式(2),因此有
故 为最小二乘拟合多项式。
*四 多项式拟合中克服正规方程组的病态
在多项式拟合中,当拟合多项式的次数较高时,其正规方程组往往是病态的。而且
①正规方程组系数矩阵的阶数越高,病态越严重;
②拟合节点分布的区间 偏离原点越远,病态越严重;
③ (i=0,1,…,m)的数量级相差越大,病态越严重。
为了克服以上缺点,一般采用以下措施:
①尽量少作高次拟合多项式,而作不同的分段低次拟合;
②不使用原始节点作拟合,将节点分布区间作平移,使新的节点 关于原 点对称,可大大降低正规方程组的条件数,从而减低病态程度。
平移公式为:
(9)
③对平移后的节点 (i=0,1,…,m),再作压缩或扩张处理:
(10)
其中 ,(r是拟合次数) (11)
经过这样调整可以使 的数量级不太大也不太小,特别对于等距节点 ,作式(10)和式(11)两项变换后,其正规方程组的系数矩阵设 为A,则对1~4次多项式拟合,条件数都不太大,都可以得到满意的结果。
变换后的条件数上限表如下:
拟合次数 |
1 |
2 |
3 |
4 |
|
=1 |
<9.9 |
<50.3 |
<435 |
④在实际应用中还可以利用正交多项式求拟合多项式。一种方法是构造离散正交多项式;另一种方法是利用切比雪夫节点求出函数值后再使用正交多项式。这两种方法都使正规方程组的系数矩阵为对角矩阵,从而避免了正规方程组的病态。我们只介绍第一种,见第三节。
例如 m=19, =328,h=1, = +ih,i=0,1,…,19,即节点 分布在[328,347],作二次多项式拟合时
① 直接用 构造正规方程组系数矩阵 ,计算可得
严重病态,拟合结果完全不能用。
② 作平移变换
用 构造正规方程组系数矩阵 ,计算可得
比 降低了13个数量级,病态显著改善,拟合效果较好。
③ 取压缩因子
作压缩变换
用 构造正规方程组系数矩阵 ,计算可得
又比 降低了3个数量级,是良态的方程组,拟合效果十分理想。
如有必要,在得到的拟合多项式 中使用原来节点所对应的变量x,可写为
仍为一个关于x的n次多项式,正是我们要求的拟合多项式。