首页 > 其他分享 >最小二乘法求解线性方程组公式推导

最小二乘法求解线性方程组公式推导

时间:2023-05-06 17:13:04浏览次数:48  
标签:begin end 推导 sum 线性方程组 cdots pmatrix 乘法 vdots

M行N列方程组如下。其中x,y是已知量,k是未知量:

$${\left\{\begin{matrix} k_{1}x_{1,1}+k_{2}x_{1,2}+ \cdots +k_{N}x_{1,N}=y_{1}\\ k_{1}x_{2,1}+k_{2}x_{2,2}+ \cdots +k_{N}x_{2,N}=y_{2}\\ \vdots \\ k_{1}x_{M,1}+k_{2}x_{M,2}+ \cdots +k_{N}x_{M,N}=y_{M} \end{matrix}\right.}$$

 构造误差函数:

$${ e=\sum_{m=1}^{M}\left ( k_{1}x_{m,1}+k_{2}x_{m,2}+ \cdots +k_{N}x_{m,N}-y_{m} \right )^{2} }$$

 对${k_{n}}$求导,并使导数为零得:

$${\left\{\begin{matrix} \frac{\partial e}{\partial k_{1}}=2 \sum_{m=1}^{M} x_{m,1} \left ( k_{1}x_{m,1}+k_{2}x_{m,2}+ \cdots +k_{N}x_{m,N}-y_{m} \right )=0 \\ \frac{\partial e}{\partial k_{2}}=2 \sum_{m=1}^{M} x_{m,2} \left ( k_{1}x_{m,1}+k_{2}x_{m,2}+ \cdots +k_{N}x_{m,N}-y_{m} \right )=0 \\ \vdots \\ \frac{\partial e}{\partial k_{N}}=2 \sum_{m=1}^{M} x_{m,N} \left ( k_{1}x_{m,1}+k_{2}x_{m,2}+ \cdots +k_{N}x_{m,N}-y_{m} \right )=0 \end{matrix}\right.}$$

 整理得:

$${\left\{\begin{matrix} \sum_{m=1}^{M} x_{m,1}x_{m,1}k_{1}+\sum_{m=1}^{M} x_{m,1}x_{m,2}k_{2}+ \cdots +\sum_{m=1}^{M} x_{m,1}x_{m,N}k_{N}=\sum_{m=1}^{M} x_{m,1}y_{m} \\ \sum_{m=1}^{M} x_{m,2}x_{m,1}k_{1}+\sum_{m=1}^{M} x_{m,2}x_{m,2}k_{2}+ \cdots +\sum_{m=1}^{M} x_{m,2}x_{m,N}k_{N}=\sum_{m=1}^{M} x_{m,2}y_{m}\\ \vdots \\ \sum_{m=1}^{M} x_{m,N}x_{m,1}k_{1}+\sum_{m=1}^{M} x_{m,N}x_{m,2}k_{2}+ \cdots +\sum_{m=1}^{M} x_{m,N}x_{m,N}k_{N}=\sum_{m=1}^{M} x_{m,N}y_{m} \end{matrix}\right. }$$

改写成矩阵形式如下:

$${ \begin{pmatrix} \sum_{m=1}^{M} x_{m,1}x_{m,1} & \sum_{m=1}^{M} x_{m,1}x_{m,2} & \cdots & \sum_{m=1}^{M} x_{m,1}x_{m,N} \\ \sum_{m=1}^{M} x_{m,2}x_{m,1} & \sum_{m=1}^{M} x_{m,2}x_{m,2} & \cdots & \sum_{m=1}^{M} x_{m,2}x_{m,N} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{m=1}^{M} x_{m,N}x_{m,1} & \sum_{m=1}^{M} x_{m,N}x_{m,2} & \cdots & \sum_{m=1}^{M} x_{m,N}x_{m,N} \end{pmatrix} \begin{pmatrix} k_{1}\\ k_{2}\\ \vdots \\ k_{N} \end{pmatrix}= \begin{pmatrix} \sum_{m=1}^{M} x_{m,1}y_{m} \\ \sum_{m=1}^{M} x_{m,2}y_{m} \\ \vdots \\ \sum_{m=1}^{M} x_{m,N}y_{m} \end{pmatrix} }$$

结果就是:

$${ \begin{pmatrix} k_{1}\\ k_{2}\\ \vdots \\ k_{N} \end{pmatrix}= \begin{pmatrix} \sum_{m=1}^{M} x_{m,1}x_{m,1} & \sum_{m=1}^{M} x_{m,1}x_{m,2} & \cdots & \sum_{m=1}^{M} x_{m,1}x_{m,N} \\ \sum_{m=1}^{M} x_{m,2}x_{m,1} & \sum_{m=1}^{M} x_{m,2}x_{m,2} & \cdots & \sum_{m=1}^{M} x_{m,2}x_{m,N} \\ \vdots & \vdots & \ddots & \vdots \\ \sum_{m=1}^{M} x_{m,N}x_{m,1} & \sum_{m=1}^{M} x_{m,N}x_{m,2} & \cdots & \sum_{m=1}^{M} x_{m,N}x_{m,N} \end{pmatrix} ^{-1} \begin{pmatrix} \sum_{m=1}^{M} x_{m,1}y_{m} \\ \sum_{m=1}^{M} x_{m,2}y_{m} \\ \vdots \\ \sum_{m=1}^{M} x_{m,N}y_{m} \end{pmatrix} }$$

 从上式可以看出来,其实它就是公式:

$${\mathbf{K}=\left ( \mathbf{X^{T}}\mathbf{X} \right )^{-1}\mathbf{X^{T}}\mathbf{Y} }$$

标签:begin,end,推导,sum,线性方程组,cdots,pmatrix,乘法,vdots
From: https://www.cnblogs.com/mengxiangdu/p/17377762.html

相关文章

  • 从奈奎斯特采样定理推导FMCW雷达系统性能参数
    公众号【调皮连续波】2023年度会员内容更新公告(04.07)序号类别内容文件路径1行业报告4D毫米波雷达、激光雷达、自动驾驶等4份根目录\雷达行业报告【正文】编辑|  调皮哥的小助理     审核|调皮哥上文从FMCW毫米波雷达系统的性能参数理解4D成像毫米波雷达的设计思路,谈到......
  • FMCW系统性能参数之测量精度公式推导
    公众号【调皮连续波】2023年度会员内容更新公告(04.08)序号类别内容文件路径1无无无【正文】编辑|  调皮哥的小助理     审核|调皮哥连续多篇文章都在说FMCW雷达系统性能参数这个事儿,如:(1)从奈奎斯特采样定理推导FMCW雷达系统性能参数(2)从FMCW毫米波雷达系统的性能参数理解......
  • python 迭代器和推导式的不同处
    迭代器和推导式都是在Python中用于处理可迭代对象的机制,但它们之间有一些关键区别。返回值类型不同:推导式返回一个新的数据结构(列表、集合、字典等),而迭代器返回一个迭代器对象。推导式生成的是一个新的序列或集合,而迭代器则是逐个生成元素。实现方式不同:推导式是一种高级语......
  • python 推导式
    在Python中,列表推导式、字典推导式和集合推导式都是常见的推导式。它们可以让我们使用一种简洁而强大的语法来快速创建新的序列或映射数据类型。列表推导式列表推导式是最常见的一种推导式,用于通过对一个序列中的每个元素应用一个表达式来快速生成一个新的列表。列表推导式的......
  • 带遗忘因子的递推最小二乘法推导
    摘要:最小二乘法的递推形式、直流信号的遗忘递推形式、遗忘递推最小二乘。递推最小二乘法对多组数据\(\vec{x}_i\)和\(y_i\),满足\[y_i=\vec{x}^\mathrm{T}_i\vec{\theta}\]其中\(\vec{x}_i\)是输入数据向量,\(y_i\)是输出数据标量。写成矩阵形式\[\vec{y}=X\vec{\the......
  • 乘法逆元
    问题给定\(a\)和\(b\),保证\(a\)与\(b\)互质,求\(ax\equiv1\pmod{b}\)求解方式1扩展欧几里得能求\(ax+by=\gcd(a,b)\),因为a与b互质,等价于求\(ax+by=1\),即\(ax=1-by\),就等同于求\(ax\equiv1\pmod{b}\)求解方式2根据费马小定理易知当\(b\)为质数时,在\(a^{b-1}\equiv1\pmod{b}\),......
  • python 列表推导式
    Python列表推导式是一种简洁而强大的语法结构,可以让你更快地创建、转换和过滤Python列表。它在Python中非常常用,并且是Python程序员必须掌握的技能之一。具体而言,列表推导式是使用一行代码创建新列表的方法。这个代码行由三部分组成:表达式、迭代器和可选的过滤器。表达式是一个......
  • Python 推导式
    ##########列表推导式###########30以内可以被3整除的整数multiples=[iforiinrange(30)ifi%3==0]print(multiples)#过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母names=['Bob','Tom','alice','Jerry','Wendy','Smith......
  • 快速幂+大整数乘法
    (快速幂+位运算)\(0\lea,b\le10^9\\0\leqp\leq10^9\)快速幂:(1)取模运算法则(a+b)%p=(a%p+b%p)%p(a-b)%p=(a%p-b%p)%p(a*b)%p=(a%p*b%p)%p(2)快速幂可以在O(logk)内算出\(a^k\)modp的值先处理出:\(a^{2^0}\mod\p\)\(a......
  • 矩阵乘法的指令集加速例子
    这里就不介绍基本概念了,直接给代码和对比结果。分别是普通C++代码,SSE加速代码和OpenCV代码。代码基于VS2017、OpenCV430和Qt5.9。CPU型号是IntelCorei5-7400。Matmul1(constMat&a,constMat&b){ASSERT(a.cols==b.rows);#defineCOUNTa.colsMatc=Mat::z......