数据点的最小二乘多项式拟合

一、问题:

给定一个数据点的集合:

{ (xi, yi) | i = 1, 2, …, n}

现在使用m次多项式函数 y = amxm + am-1xm-1 + … + a2x2 + a1x + a0 对其进行拟合,使得拟合的误差平方和最小。

求能达到此目标的参数 [am , am-1 , …, a2 , a1 , a0]T 的值。

二、解:

CodeCogsEqn (10)

CodeCogsEqn (11)CodeCogsEqn (14)

特别地,当 m=3 时,y = a3x3 + a2x2 + a1x + a0 的拟合参数

CodeCogsEqn (13)

当 m=2 时,y =  a2x2 + a1x + a0 的拟合参数

CodeCogsEqn (15)

当 m=1 时,y =  a1x + a0 的拟合参数

数据点的最小二乘线性拟合

这时其实是一种线性拟合。将以上矩阵求逆,相乘,计算出来后为:

数据点的最小二乘线性拟合

其中CodeCogsEqn (20)CodeCogsEqn (21)

参见:数据点的最小二乘线性拟合

三、证明:

当 m=1 时的证明,见 数据点的最小二乘线性拟合

这里给出 m=3 时的推导过程。

每个原始数据点为(xi,yi),其拟合的点为CodeCogsEqn10_thumb,对每个xi,其拟合值CodeCogsEqn-24_thumb与原始值yi的误差计为:

CodeCogsEqn-18_thumb

其中CodeCogsEqn (23),作为yi的拟合值。所以

CodeCogsEqn (25)

于是

CodeCogsEqn-210_thumb5

CodeCogsEqn (26)

CodeCogsEqn-212_thumb

则有

CodeCogsEqn (27)

为了简便起见,令

CodeCogsEqn (28) CodeCogsEqn (29)

CodeCogsEqn (31)CodeCogsEqn (32)

CodeCogsEqn (33)

CodeCogsEqn (30)

现在来求能够使上式达到最小值的参数a3 , a2 , a1 , a0

分别对 a3 , a2 , a1 , a0 求偏微分,得:

CodeCogsEqn (34)

CodeCogsEqn (36)

CodeCogsEqn (37)

CodeCogsEqn (38)

CodeCogsEqn (39), 即

 CodeCogsEqn (40)

上式即为如下线性方程组:

CodeCogsEqn (41)

由之前的记号,上式就是:

CodeCogsEqn (42)

解此线性方程组,得:

CodeCogsEqn (13)

证毕。

Comments (1) -

  • 此多项式拟合算法,只适用于3次及以下的多项式拟合过程。即只适用于y = a*x + b, y = a*x^2 + b*x + c, y = a*x^3 + b*x^2 + c*x + d。

    对于4次及以上,还有待探索。

Add comment

Loading