最小二乘法
Jackie

最小二乘法

插值法在整个区间上不能高次插值,误差过大,而分段插值光滑性有限

拟合方法能够回避插值方法的不足,可以利用原函数更多的信息,精度更好

与分段插值相比,都是利用更多的节点,但是拟合曲线的光滑性要远远好处插值的结果

对于给定数据(xi,yi),i=1,2,…,m,在函数空间Φ(x)中存在唯一函数:

φ(x)=a0φ0(x)+a1φ1(x)++anφn(x)\varphi^*(x) = a_0^* \varphi_0(x) + a_1^* \varphi_1(x) + \cdots + a_n^* \varphi_n(x)

使残差平方和最小

最小二乘解的系数a0*,a1*,…,an*可通过解正则方程组

a0(φk,φ0)+a1(φk,φ1)++an(φk,φn)=(φk,f)k=0,1,,n(1)a_0 (\varphi_k, \varphi_0) + a_1 (\varphi_k, \varphi_1) + \cdots + a_n (\varphi_k, \varphi_n) = (\varphi_k, f) \quad k = 0, 1, \ldots, n\quad \quad \quad (1)

求得。用最小二乘解φ*(x)来拟合数据(xi,yi),i=1,2,…,m的平方误差为

δ22=(y,y)(φ,φ)\|\delta\|_{2}^{2} = (y, y) - (\varphi^{*}, \varphi^{*})

引进向量f=(f(xi))Tφ0=(1,1,1,1)T,φ1=(xi)T,φ2=(xi2)T,以此类推

向量内积

内积时一定要带权函数,例如

(φk,φi)=j=0mρ(xj)φk(xj)φi(xj)(\varphi_k, \varphi_i) = \sum_{j=0}^{m} \rho(x_j) \varphi_k(x_j) \varphi_i(x_j)

(f,φi)=j=0mρ(xj)yjφi(xj)(f, \varphi_i) = \sum_{j=0}^{m} \rho(x_j) y_j \varphi_i(x_j)


用加权最小二乘法进行拟合是对于观测数据(xi,f(xi)),i=1,2,…,m要求在某函数类Φ(x)中寻求一个函数φ(x),使

i=1mωiεi2=i=1mωi[φ(xi)f(xi)]2\sum_{i=1}^{m} \omega_i \varepsilon_i^2 = \sum_{i=1}^{m} \omega_i [\varphi(x_i) - f(x_i)]^2

为最小。式中ωi为一组正数,反映数据(xi,f(xi))特性的权,此时正则方程组仍如式(1),只是其中

{(φk,φj)=i=1mωiφk(xi)φj(xi)(φk,f)=i=1mωiφk(xi)f(xi)\left\{ \begin{array}{l} (\varphi_{k}, \varphi_{j}) = \sum_{i=1}^{m} \omega_{i} \varphi_{k}(x_{i}) \varphi_{j}(x_{i}) \\ (\varphi_{k}, f) = \sum_{i=1}^{m} \omega_{i} \varphi_{k}(x_{i}) f(x_{i}) \end{array} \right.

线性拟合

设已知数据点(xi,yi),i=1,2,…,m分布大致为一条直线,利用最小二乘原理,构造拟合直线y=a0+a1x,该直线不是通过所有数据点(xi,yi),而是使如下残差平方和最小

i=1m[yi(a0+a1xi)]2\sum_{i=1}^{m} \left[ y_i - (a_0 + a_1x_i) \right]^2

此时正则方程组成为

(i=1m1i=1mxii=1mxii=1mxi2)(a0a1)=(i=1myii=1mxiyi)\begin{pmatrix} \sum_{i=1}^{m} 1 & \sum_{i=1}^{m} x_i \\ \sum_{i=1}^{m} x_i & \sum_{i=1}^{m} x_i^2 \end{pmatrix} \begin{pmatrix} a_0 \\ a_1 \end{pmatrix} = \begin{pmatrix} \sum_{i=1}^{m} y_i \\ \sum_{i=1}^{m} x_i y_i \end{pmatrix}

二次拟合

构造拟合曲线为y=a0+a1x+a2x2,有

[φ0φ0φ0φ1φ0φ2φ1φ0φ1φ1φ1φ2φ2φ0φ2φ1φ2φ2][a0a1a2]=[fφ0fφ1fφ2]\begin{bmatrix} \varphi_0\varphi_0 & \varphi_0\varphi_1 & \varphi_0\varphi_2 \\ \varphi_1\varphi_0 & \varphi_1\varphi_1 & \varphi_1\varphi_2 \\ \varphi_2\varphi_0 & \varphi_2\varphi_1 & \varphi_2\varphi_2 \end{bmatrix} \begin{bmatrix} a_0 \\ a_1 \\ a_2 \end{bmatrix} = \begin{bmatrix} f\varphi_0 \\ f\varphi_1 \\ f\varphi_2 \end{bmatrix}

有的拟合函数y=f(x)可通过变换化为线性模型

xi 1 2 3 4 5 6 7 8
yi 15.3 20.5 27.4 36.6 49.1 65.6 87.8 117.6
zi 2.72785 3.02042 3.31054 3.60005 3.89386 4.18358 4.47506 4.76729

S(x)=aebx两边取对数

解:设z=lny,则z=A+bx,其中A=lna,由zi=lnyi得对z(x)作线性拟合曲线

取φ0(x)=1,φ1(x)=x,权函数ρ(x)=1,则φ0=(1,1,1,1,1,1,1,1,1)T1=(1,2,3,4,5,6,7,8)T,

z=(2.72785,3.02042,3.31054,3.60005,3.89386,4.18358,4.47506,4.76729)T,

得正则方程组

{8A+36b=29.9786536A+204b=147.13503\begin{cases} 8A+36b=29.97865\\ 36A+204b=147.13503 \end{cases}

解得A*=2.43686,b*=0.29122,于是有

a=eA=11.43707a^*=e^{A^*}=11.43707

拟合曲线为:

φ(x)=11.43707e0.29122x\varphi^*(x)=11.43707e^{0.29122x}

用最小二乘法求方程组的近似解

{3x2y=12x+y=2x4y=13x+2y=3\left\{ \begin{array}{l} 3x - 2y = 1 \\ 2x + y = 2 \\ x - 4y = -1 \\ 3x + 2y = -3 \end{array} \right.

解:设

G(x,y)=(3x2y1)2+(2x+y2)2+(x4y+1)2+(3x+2y+3)2G(x, y) = (3x - 2y - 1)^2 + (2x + y - 2)^2 + (x - 4y + 1)^2 + (3x + 2y + 3)^2

Gx=Gy=0\frac{\partial G}{\partial x} = \frac{\partial G}{\partial y} = 0

{6(3x2y1)+4(2x+y2)+2(x4y+1)+6(3x+2y+3)=04(3x2y1)+2(2x+y2)8(x4y+1)+4(3x+2y+3)=0\left\{ \begin{array}{l} 6(3x - 2y - 1) + 4(2x + y - 2) + 2(x - 4y + 1) + 6(3x + 2y + 3) = 0 \\ -4(3x - 2y - 1) + 2(2x + y - 2) - 8(x - 4y + 1) + 4(3x + 2y + 3) = 0 \end{array} \right.

{23x2y=32x+25y=2\left\{ \begin{array}{l} 23x - 2y = -3 \\ -2x + 25y = -2 \end{array} \right.

解得:x=-0.138354,y=-0.091068

 评论
评论插件加载失败
正在加载评论插件