工程数学 计算方法 第四章 插值与曲线拟合方法 最小二乘法

工程数学 计算方法 第四章 插值与曲线拟合方法 最小二乘法

最小二乘法

线性拟合/只含最高次项和常数项的拟合

求曲线拟合时,若:

  1. 数值点很多;
  2. yi本身时测量值,不准确

此时没必要拟合使得 P ( x i ) = y i P(x_i)=y_i P(xi)=yi,只需要使 P ( x i ) − y i P(x_i)-y_i P(xi)yi,尽可能小即可。

如何判断“尽可能小”?如何衡量大小?

类似范数。

无穷范数,求最大值最小:太复杂;
1-范数,绝对值求和:不可导,求解困难;
2-范数,平方和最小,可导,可行。

给定数据点 ( x i , y i ) ,   i = 1 , 2 , . . . , m (x_i,y_i),\,i=1,2,...,m (xi,yi),i=1,2,...,m。设拟合曲线为 p ( x ) = a + b x n p(x)=a+bx^n p(x)=a+bxn,显然 p ( x i ) = a + b x i n ≠ y i p(x_i)=a+bx_i^n \neq y_i p(xi)=a+bxin=yi 。记 e i = p ( x i ) − y i e_i=p(x_i)-y_i ei=p(xi)yi e 1 , e 2 , . . . , e m e_1,e_2,...,e_m e1,e2,...,em 为残差。
e 1 , e 2 , . . . , e m 总 体 最 小 ⇔ e = ( e 1 , e 2 , . . . , e m ) T 的 长 度 最 小 Q ( a , b ) = ∥ e ∥ 2 2 = e 1 2 + e 2 2 + . . . + e m 2 = ∑ i = 1 m ( p ( x i ) − y i ) 2 = ∑ i = 1 m ( a + b x i n − y i ) 2 = m i n e_1,e_2,...,e_m总体最小 \Leftrightarrow e=(e_1,e_2,...,e_m)^T的长度最小\\ \begin{aligned} Q(a,b)&=\Vert e\Vert _2^2 \\&=e_1^2+e_2^2+...+e_m^2 \\&=\sum_{i=1}^m(p(x_i)-y_i)^2 \\&=\sum_{i=1}^m(a+bx_i^n-y_i)^2 \\&=min \end{aligned} e1,e2,...,eme=(e1,e2,...,em)TQ(a,b)=e22=e12+e22+...+em2=i=1m(p(xi)yi)2=i=1m(a+bxinyi)2=min
求拟合曲线即求min取最小时的(a,b)的值。

求最小:求偏导
{ ∂ Q ∂ a = 0   ∂ Q ∂ b = 0 ⟺ { m a + b ∑ i = 1 m x i n = ∑ i = 1 m y i   a ∑ i = 1 m x i n + b ∑ i = 1 m x i 2 n = ∑ i = 1 m x i n y i \left\{\begin{aligned} \frac{\partial Q}{\partial a}=0\\\,\\ \frac{\partial Q}{\partial b}=0\\ \end{aligned}\right. \Longleftrightarrow \left\{\begin{aligned} ma+b\sum_{i=1}^mx_i^n&=\sum_{i=1}^my_i\\\,\\ a\sum_{i=1}^mx_i^n+b\sum_{i=1}^mx_i^{2n}&=\sum_{i=1}^mx_i^ny_i \end{aligned}\right. aQ=0bQ=0ma+bi=1mxinai=1mxin+bi=1mxi2n=i=1myi=i=1mxinyi
该方程称为正规方程组(法方程),解方程可得a,b。

注意:

  1. 正规方程组的解存在且唯一;
  2. 正规方程组的解时最小二乘拟合问题的解。

二次拟合

设拟合曲线为 p ( x ) = a 0 + a i x + a 2 x 2 p(x)=a_0+a_ix+a_2x^2 p(x)=a0+aix+a2x2,求
Q ( a 0 , a 1 , a 2 ) = ∑ i = 1 m ( p ( x i ) − y i ) 2 = ∑ i = 1 m ( a 0 + a i x i + a 2 x i 2 − y i ) 2 = m i n Q(a_0,a_1,a_2)=\sum_{i=1}^m(p(x_i)-y_i)^2=\sum_{i=1}^m(a_0+a_ix_i+a_2x_i^2-y_i)^2=min Q(a0,a1,a2)=i=1m(p(xi)yi)2=i=1m(a0+aixi+a2xi2yi)2=min
求偏导解方程即可。可用矩阵的形式写:
( m ∑ i = 1 m x i ∑ i = 1 m x i 2 ∑ i = 1 m x i ∑ i = 1 m x i 2 ∑ i = 1 m x i 3 ∑ i = 1 m x i 2 ∑ i = 1 m x i 3 ∑ i = 1 m x i 4 ) ( a 0 a 1 a 2 ) = ( ∑ i = 1 m y i ∑ i = 1 m x i y i ∑ i = 1 m x i 2 y i ) \left(\begin{matrix} m & \sum_{i=1}^mx_i & \sum_{i=1}^mx_i^2\\ \sum_{i=1}^mx_i & \sum_{i=1}^mx_i^2 & \sum_{i=1}^mx_i^3\\ \sum_{i=1}^mx_i^2 & \sum_{i=1}^mx_i^3 & \sum_{i=1}^mx_i^4\\ \end{matrix}\right) \left(\begin{array}{c} a_0\\a_1\\a_2 \end{array}\right)= \left(\begin{array}{c} \sum_{i=1}^my_i\\ \sum_{i=1}^mx_iy_i\\ \sum_{i=1}^mx_i^2y_i\\ \end{array}\right) mi=1mxii=1mxi2i=1mxii=1mxi2i=1mxi3i=1mxi2i=1mxi3i=1mxi4a0a1a2=i=1myii=1mxiyii=1mxi2yi

应用:解矛盾方程

懒写了。

秩(A,b)不等于秩(A)时方程组无解,称为矛盾方程。

求均方误差 m i n ∥ A x − b ∥ 2 2 min\Vert Ax-b\Vert _2^2 minAxb22极小意义下的解,即最小二乘意义下的矛盾方程的解。

大体就是右边移到左边,左边求平方和为Q,求Q最小时的值。

推导可得法方程为 A T A X = A T b A^TAX=A^Tb ATAX=ATb

应试

线性拟合/二次拟合。

eg:给数值点和拟合曲线的形式 p ( x ) = a + b x n p(x)=a+bx^n p(x)=a+bxn,求拟合的a,b:

解题过程: Q ( a , b ) = ∑ i = 1 m ( p ( x i ) − y i ) 2 = ∑ i = 1 m ( a + b x i n − y i ) 2 Q(a,b)=\sum_{i=1}^m(p(x_i)-y_i)^2=\sum_{i=1}^m(a+bx_i^n-y_i)^2 Q(a,b)=i=1m(p(xi)yi)2=i=1m(a+bxinyi)2, 求偏导解方程。
一般过程写为矩阵形式(其实好像无所谓,我就不会写矩阵形式,写方程形式一样的,反正最后都是要写方差解系数的)。
(拟合二次和常数项,题不抄了,看解题步骤就好)
解:由数据可得法方程为
( 5 5072 5072 6355364 ) ( a b ) = ( 271.4 344382.5 ) \left(\begin{array}{c} 5 & 5072\\ 5072& 6355364 \end{array}\right) \left(\begin{array}{c} a\\b \end{array}\right)= \left(\begin{array}{c} 271.4\\344382.5 \end{array}\right) (5507250726355364)(ab)=(271.4344382.5)

{ 5 a + 5072 b = 271.4 5072 a + 6355364 b = 344382.5 \left\{\begin{matrix} 5a+5072b=271.4\\ 5072a+6355364b=344382.5 \end{matrix}\right. {5a+5072b=271.45072a+6355364b=344382.5
解得
{ a = − 3.612 b = 0.057 \left\{\begin{matrix} a=-3.612\\ b=0.057 \end{matrix}\right. {a=3.612b=0.057
所以拟合曲线为
p ( x ) = − 3.612 + 0.057 x 2 p(x)=-3.612+0.057x^2 p(x)=3.612+0.057x2

其实我也不知道第一步的法方程是怎么得到的,我是直接算出方程之后改写成第一步的形式的,法方程不写也无所谓的,写偏导之后的那个方程组也可以。

最后一步一定要写出拟合曲线的方程,题目是求拟合曲线的,不是解方程的,不写出来要扣分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值