最小二乘法
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=1m1∑i=1mxi∑i=1mxi∑i=1mxi2)(a0a1)=(∑i=1myi∑i=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)T,φ1=(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}

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

{3x−2y=12x+y=2x−4y=−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)=(3x−2y−1)2+(2x+y−2)2+(x−4y+1)2+(3x+2y+3)2G(x, y) = (3x - 2y - 1)^2 + (2x + y - 2)^2 + (x - 4y + 1)^2 + (3x + 2y + 3)^2

令

∂G∂x=∂G∂y=0\frac{\partial G}{\partial x} = \frac{\partial G}{\partial y} = 0

有

{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\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.

即

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

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

 评论
评论插件加载失败
正在加载评论插件
由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务