多项式拟合
第一节 最小二乘法的基本原理和多项式拟合 一 最小二乘法的基本原理
从整体上考虑近似函数 p(x)同所给数据点(xi,yi)(i=0,1,…,m)误差ri=p(xi) yi(i=0,1,…,m) 的大小,常用的方法有以下三种:一是误差ri=p(xi) yi(i=0,1,…,m)绝对值的最大
ri,即误差 向量r=(r,r,Lr)T的∞—范数;二是误差绝对值的和∑值maxm010≤i≤mi=0
2
r∑ii=0m
m
ri
,即误差向
量r的1—范数;三是误差平方和的算术平方根,即误差向量r的2—范数;前两种方法
简单、自然,但不便于微分运算 ,后一种方法相当于考虑 2—范数的平方,因此在曲线拟合
r∑中常采用误差平方和
i=0m
2i
来 度量误差ri(i=0,1,…,m)的整体大小。
数据拟合的具体作法是:对给定数据 (xi,yi) (i=0,1,…,m),在取定的函数类Φ中,求
p(x)∈Φ,使误差ri=p(xi) yi(i=0,1,…,m)的平方和最小,即
r∑[p(x) y]∑ =
2i
i
i
i=0
i=0
mm
2
=min
从几何意义上讲,就是寻求与给定点(xi,yi)(i=0,1,…,m)的距离平方和为最小的曲线
y=p(x)(图6-1)。函数p(x)称为拟合 函数或最小二乘解,求拟合函数p(x)的方法称为曲
线拟合的最小二乘法。
在曲线拟合中,函数类Φ可有不同的选取方法.
6—1
二 多项式拟合
假设给定数据点(xi,yi)(i=0,1,…,m),Φ为所有次数不超过n(n≤m)的多项式构成的函数
pn(x)=∑akxk∈Φ
k=0n
类,现求一,使得
多项式拟合
2
I=∑[pn(xi) yi]=∑ ∑akxik yi =min
(1)i=0i=0 k=0
mmn
2
当拟合函数为多项式时,称为多项式拟合,满足式(1)的pn(x)称为最小二乘拟合多项式。特别地,当n=1时,称为线性拟合或直线拟合。
显然
I=∑(∑akxik yi)2
i=0
k=0m
n
为a0,a1,Lan的多元函数,因此上述问题即为求I=I(a0,a1,Lan)的极值 问题。由多元函数求极值的必要条件,得
mn
I
=2∑(∑akxik yi)xij=0, aji=0k=0
j=0,1,L,n
(2)
即
∑(∑x
k=0
i=0
nm
j+ki
)ak=∑xijyi,
i=0
m
j=0,1,L,n
(3)
(3)是关于a0,a1,Lan的线性方程组,用矩阵表示为
m+1 m x
i
∑i=0 M m
∑xin i=0
∑xi
2
x∑ii=0i=0m
m
∑x
i=0
m
M
n+1i
n xy∑i ∑i ai=0 =0i0 m m
n+1 a L∑xi 1 ∑xiyi
= i=0 i=0
M
M M
a m m
n2n n ∑xiyi L∑xi
i=0 (4)i=0 L
m
m
式(3)或式(4)称为正规方程组或法方程组。
可以证明,方程组(4)的系数矩阵是一个对称正定矩阵,故存在唯一解。从式(4)中解出ak(k=0,1,…,n),从而可得多项式
n
pn(x)=∑akxk
k=0
(5)
可以证明,式(5)中的pn(x)满足式(1),即pn(x)为所求的拟合多项式。我们把
∑[p
i=0
m
n
(xi) yi]
2
称为最小二乘拟合多项式pn(x)的平方误差,记作
r
22
=∑[pn(xi) yi]
i=0
m
2
由式(2)可得
多项式拟合
r
22=∑yi2 ∑ak(∑xikyi)
i=0
k=0
i=0
mnm
(6)
多项式拟合的一般方法可归纳为以下几步:
(1) 由已知数据画出函数粗略的图形——散点图,确定拟合多项式的次数n;
∑x
(2) 列表计算
i=0
m
ji
(j=0,1,L,2n)
∑x和
i=0
m
ji
yi
(j=0,1,L,2n)
;
(3) 写出正规方程组,求出a0,a1,Lan;
pn(x)=∑akxk
k=0n
(4) 写出拟合多项式。
在实际应用中,n<m或n≤m;当n=m时所得的拟合多项式就是拉格朗日或牛顿插值多项式。
例1 测得铜导线在温度Ti(℃)时的电阻Ri(Ω)如表6-1,求电阻R与温度 T的近似函数关系。
i Ti(℃)Ri(Ω)
0 19.176.30
1 25.077.80
2 30.179.25
3 36.080.80
4 40.082.35
5 45.183.90
6 50.0 85.10
解 画出散点图(图6-2),可见测得的数据接近一条直线,故取n=1,拟合函数为
R=a0+a1T
列表如下
i 0 1 234 5 6Ti
Ri
Ti
2
TiRi
∑
19.1 25.0 30.136.040.0 45.1 50.0245.376.30 77.80 79.2580.8082.35 83.90 85.10565.5364.81 625.00 906.011296.001600.00 2034.01 2500.009325.831457.330 1945.000 2385.425 2908.800 3294.000 3783.890 4255.000 20029.445
正规方程组为
245.3 a0 565.5 7
245.39325.83 a = 20029.445 1
解方程组得
多项式拟合
a0=70.572,
故得R与T的拟合直线为
a1=0.921
R=70.572+0.921T
利用上述关系式,可以预测不同温度时铜导线的电阻值。例如,由R=0得T=-242.5,即预测温度 T=-242.5℃时,铜导线无电阻。
6-2
例2 已知实验数据如下表
ixi
01 1013 524 435 246 157 168 279 38 10 4
yi
试用最小二乘法求它的二次拟合多项式。 解 设拟合曲线方程为
2
y=a0+a1x+a2x
列表如下
I 0 1 2 34 5 6 78
xi
yi
xi2
xi3
xi4
xiyi
xi2yi
∑
1 3 4 56 7 8 910 53 10 5 4 21 1 2 34 32 1 9 16 2536 49 64 81100 381 1 27 64 125216 343 512 7291000 3017 1 81 256 6251296 2401 4096 656110000 25317 10 15 16 106 7 16 2740 147 10 45 64 50 36 49 128 243 400 1025
得正规方程组
多项式拟合
52381 a0 32 9
523813017 a = 147
1
1025 381301725317 a2
解得
a0=13.4597,
故拟合多项式为
y=13.4597 3.6053+0.2676x2
*三 最小二乘拟合多项式的存在唯一性
a1= 3.6053a2=0.2676
定理1 设节点x0,x1,L,xn互异,则法方程组(4)的解存在唯一。
证 由克莱姆法则,只需证明方程组(4)的系数矩阵非奇异即可。
用反证法,设方程组(4)的系数矩阵奇异,则其所对应的齐次方程组
m+1 m x
i
∑i=0 M m
∑xin i=0
∑xi∑x
i=0i=0
m
2i
m
∑x
i=0
m
M
n+1i
n xy∑i ∑i ai=0 i=0 0 m m
n+1 a L∑xi 1 ∑xiyi
= i=0 i=0
M
M M
a m m
n2n n ∑xiyi L∑xi
i=0 (7) i=0 L
m
m
有非零解。式(7)可写为
∑(∑x
k=0
i=0
nm
j+ki
)ak=0,j=0,1,L,n
(8)
将式(8)中第j个方程乘以aj(j=0,1,…,n),然后将新得到的n+1个方程左右两端分别 相
j+k
aj ∑(∑xi)ak0 =0∑加,得j=0 k=0i=0
因为
mmnn
nmj+k mnn2kjj+k
aj ∑(∑xi)ak =∑∑∑akajxi=∑(∑ajxi)(∑akxi)=∑[pn(xi)]∑i=0j=0i=0k=0j=0 k=0i=0 i=0j=0k=0n
nnm
其中
pn(x)=∑akxk
k=0n
所以
pn(xi)=0 (i=0,1,…,m)
pn(x)是次数不超过n的多项式,它有m+1>n个相异零点,由代数基本定理,必须有
多项式拟合
a0=a1=Lan=0,与齐次方程组有非零解的假设矛盾。因此正规方程组(4)必有唯一解
pn(x)=∑akxk
k=0n
。定理2 设a0,a1,L,an是正规方程组(4)的解,则乘拟合多项式。
是满足式(1)的最小二
证 只需证明,对任意一组数b0,b1,L,bn组成的多项式
m
m
Qn(x)=∑bkxk
k=0
n
,恒有
22
[Q(x) y]≥[p(x) y]∑nii∑niii=0
i=0
即可。
22
[][]Q(x)yp(x)y ∑nii∑niii=0
i=0
m
m
=∑[Qn(xi) pn(xi)]+2∑[Qn(xi) pn(xi)] [pn(xi) yi]
2
i=0
i=0
mm
≥0+2∑∑
i=0j=0
mn
[
n m
n n k
(bj aj)xi ∑akxi yi =2∑ (bj aj)∑ ∑akxik yi xij
j=0 i=0 k=0 k=0
j
]
因为ak(k=0,1,…,n)是正规方程组(4)的解,所以满足式(2),因此有
∑[Q
i=0
m
n
(xi) yi] ∑[pn(xi) yi]≥0
2
2
i=0
m
故pn(x)为最小二乘拟合多项式。
*四 多项式拟合中克服正规方程组的病态
在多项式拟合中,当拟合多项式的次数较高时,其正规方程组往往是病态的。而且 ①正规方程组系数矩阵的阶数越高,病态越严重;
②拟合节点分布的区间[x0,xm]偏离原点越远,病态越严重; ③xi(i=0,1,…,m)的数量级相差越大,病态越严重。
为了克服以上缺点,一般采用以下措施:
①尽量少作高次拟合多项式,而作不同的分段低次拟合;
②不使用原始节点作拟合,将节点分布区间作平移,使新的节点xi关于原 点对称,可大大降低正规方程组的条件数,从而减低病态程度。 平移公式为:
xi=xi
x0+xm
,2
i=0,1,L,m
(9)
③对平移后的节点xi(i=0,1,…,m),再作压缩或扩张处理:
多项式拟合
x=pxi,
p=2(m+1)
i
i=0,1,L,m (10)
其中
∑(x)
i
i=0
m
2r
,(r是拟合次数) (11)
经过这样调整可以使xi的数量级不太大也不太小,特别对于等距节点
xi=x0+ih(i=0,1,L,m),作式(10)和式(11)两项变换后,其正规方程组的系数矩阵
设 为A,则对1~4次多项式拟合,条件数都不太大,都可以得到满意的结果。 变换后的条件数上限表如下:
拟合次数
cond2(A)
1=1 2<9.93<50.34<435
④在实际应用中还可以利用正交多项式求拟合多项式。一种方法是构造离散正交多项式;另一种方法是利用切比雪夫节点求出函数值后再使用正交多项式。这两种方法都使正规方程 组的系数矩阵为对角矩阵,从而避免了正规方程组的病态。我们只介绍第一种,见第三节。 例如 m=19,x0=328,h=1, x1=x0+ih,i=0,1,…,19,即节点 分布在[328,347],作二次多项式拟合时
① 直接用xi构造正规方程组系数矩阵A0,计算可得
cond2(A0)=2.25×1016
严重病态,拟合结果完全不能用。 ② 作平移变换
328+347
xi=xi ,
2
i=0,1,L,19
用xi构造正规方程组系数矩阵A1,计算可得
cond2(A1)=4.483868×10
16
比cond2(A0)降低了13个数量级,病态显著改善,拟合效果较好。 ③ 取压缩因子
p=
20
∑(x)
i
i=0
19
≈0.1498
4
作压缩变换 x=pxi,
i
i=0,1,L,19
用xi构造正规方程组系数矩阵A2,计算可得 cond2(A2)=6.839
多项式拟合
又比cond2(A1)降低了3个数量级,是良态的方程组,拟合效果十分理想。
如有必要,在得到的拟合多项式pn(x)中使用原来节点所对应的变量x,可写为
Q)=p x0
+xm
n(xn(p (x2
仍为一个关于x的n次多项式,正是我们要求的拟合多项式。