\qquad看了很多关于最小二乘解的博客,事实上都没有找到自己想要的证明过程,后来学了矩阵函数时才彻底搞明白了这件事情,所以和大家简单分享如下:
\qquad已知矩阵Am×n(m>n)A_{m×n}(m>n)Am×n​(m>n)是列满秩的,则超定方程组Ax=BAx=BAx=B的最小二乘解为
x=(ATA)−1ATBx=(A^TA)^{-1}A^TBx=(ATA)−1ATB
\qquad需要说明的是根据线性代数的知识,rank(ATA)=rank(AAT)=rank(A)=nrank(A^TA)=rank(AA^T)=rank(A)=nrank(ATA)=rank(AAT)=rank(A)=n,而ATAA^TAATA的维数是n×n,所以ATAA^TAATA一定可逆。事实上MATLAB矩阵求伪逆用的也是这个公式(只不过令B=EmB=E_mB=Em​)。
\qquad最小二乘法是让近似解代入的等式右边的B∗B^*B∗与BBB的度量最小,为了和向量的模长兼容,这里取的是矩阵的Frobenius范数(详见这里)因此问题转换为
x∗=argmin⁡x∣∣B∗−B∣∣Fs.t.Ax∗=B∗x^*=arg\min_{x}||B^*-B||_F\\ s.t.Ax^*=B^*x∗=argxmin​∣∣B∗−B∣∣F​s.t.Ax∗=B∗
为了简便起见,我们仅讨论B是向量的情况(事实上矩阵的情况也可以通过向量化的方法加以解决),即Ax=bAx=bAx=b。

该问题也等价为
F(x)=(Ax−b)T(Ax−b)x∗=argmin⁡xF(x)F(x)=(Ax-b)^T(Ax-b)\\ x^*=arg\min_{x}F(x) F(x)=(Ax−b)T(Ax−b)x∗=argxmin​F(x)
将F(x)F(x)F(x)展开如下:
F(x)=(Ax−b)T(Ax−b)=(xTA−bT)(Ax−b)=xT(ATA)x−bTAx−ATbx+bTb=xT(ATA)x−2xT(ATb)+bTb\begin{aligned} F(x)&=(Ax-b)^T(Ax-b)\\ &=(x^TA-b^T)(Ax-b)\\ &=x^T(A^TA)x-b^TAx-A^Tbx+b^Tb\\ &=x^T(A^TA)x-2x^T(A^Tb)+b^Tb \end{aligned} F(x)​=(Ax−b)T(Ax−b)=(xTA−bT)(Ax−b)=xT(ATA)x−bTAx−ATbx+bTb=xT(ATA)x−2xT(ATb)+bTb​
需要说明的是bTAxb^TAxbTAx是数,因此它等于本身的转置等于ATbxA^TbxATbx,下面就是求F(x)F(x)F(x)的最小值,由于AATAA^TAAT是半正定的(因为xT(AAT)x=(ATx)T(ATx)≥0x^T(AA^T)x=(A^Tx)^T(A^Tx)\geq0xT(AAT)x=(ATx)T(ATx)≥0),而因为之前我们证明了AAA列满秩时ATAA^TAATA可逆,因此ATAA^TAATA必定没有零特征值,所以AATAA^TAAT是正定的。这样,F(x)F(x)F(x)的极值点就一定是极小值点(即严格凸优化问题)。下面无非就是求导的问题:
∂F(x)∂x=(ATA+(ATA)T)x−2(ATb)=2(ATA)x−2(ATb)\frac{\partial F(x)}{\partial x}=(A^TA+(A^TA)^T)x-2(A^Tb)\\= 2(A^TA)x-2(A^Tb) ∂x∂F(x)​=(ATA+(ATA)T)x−2(ATb)=2(ATA)x−2(ATb)
令其等于0,求得
x∗=(ATA)−1ATbx^*=(A^TA)^{-1}A^Tbx∗=(ATA)−1ATb
这就是F(x)F(x)F(x)的极小值点即最小二乘解。
不清楚矩阵函数求导的同志可以看一下如下的公式:
dA(x)B(x)dx=dA(x)xB(x)+A(x)dB(x)dxdxTAxdx=(A+AT)xdCTxdx=dxTCdx=C\begin{aligned} &\frac{dA(x)B(x)}{dx}=\frac{dA(x)}{x}B(x)+A(x)\frac{dB(x)}{dx}\\ &\frac{dx^TAx}{dx}=(A+A^T)x\\ &\frac{dC^Tx}{dx}=\frac{dx^TC}{dx}=C \end{aligned} ​dxdA(x)B(x)​=xdA(x)​B(x)+A(x)dxdB(x)​dxdxTAx​=(A+AT)xdxdCTx​=dxdxTC​=C​

超定方程组的最小二乘解相关推荐

  1. 超定方程组最小二乘matlab,超定方程组的最小二乘解.ppt

    超定方程组的最小二乘解 数 学MATH 第二节 超定方程组的最小二乘解 设方程组Ax=b中, A=(aij)m?n, b是m 维已知向量, x是n 维解向量,当 m>n 即方程组中方程的个数多于 ...

  2. 求解线性超定方程组的最小二乘解[n个未知数,大于n个方程组](附代码)

    本文针对n个未知数,大于n个方程组.求解未知数的问题,matlab代码. 一.首先,请注意,本文说的是线性超定方程组,方程组是线性的,不含有未知数的出发以及乘方. 求线性超定方程组,有这么几种方法: ...

  3. matlab 线性方程组 最小二乘解,超定方程组的最小二乘解

    #include #include #include #define m 4//n #define n 2 void line_fun(double a[n][n],double b[n],doubl ...

  4. 求超定方程组的最小二乘解(matlab)

    A=[2 43 -510 -124 11]; b=[10-13-2625]; x=zeros(2,1); m=A'*b n=A'*A x=n\m 结果: m =-179 692n =129 -83-8 ...

  5. 求超定方程组最小二乘解的三种方法

    目录 1.超定线性方程组与最小二乘解 2.求解超定方程组的三种方法 3.参考链接 1.超定线性方程组与最小二乘解     超定线性方程组:方程的个数大于解个数,方程组是无解的,但是我们可以求得其最小二 ...

  6. MATLAB当中线性方程组、不定方程组、奇异方程组、超定方程组的介绍

    系列文章目录 MATLAB绘图函数的相关介绍--海底测量.二维与三维图形绘制 MATLAB求函数极限的简单介绍 文章目录 一.线性方程组 1.1.线性方程组简介 1.2.矩阵的初等变换 1.3.MAT ...

  7. 用matlab解方程组例子,Matlab求解超定方程组实例

    Matlab求解超定方程组实例 对于超定方程组,特别是非线性方程组,可以用Matlab基于最小二乘算法来进行求解,例如,求解下列方程组: 一个三个未知数,九个方程的非线性方程组: cos(x3)*si ...

  8. 超定方程组最小二乘法(内含代码)

    超定方程组最小二乘法 今天做了一个计算方法的作业,在网上没有找到类似的参考资料,很多同学用Python直接调用库函数来写很方便,但是我认为用c或者c++来写对初学者来说是更大的锻炼: 代码已经调试好了 ...

  9. 最小二乘以及最小二乘求解超定方程组最优解的推导

    ~~~~ 这里写自定义目录标题 采用求导的方法 采用投影矩阵的方法 举例实现 采用求导的方法 偶尔看到斯坦福吴恩达教授的机器学习第二节课,才明白了最小二乘的的推理过程,下面的推理看不懂的话,推荐去看一 ...

  10. 超定方程的最小二乘解的三维几何解释

    原始方程 Ax=bAx = bAx=b,解为 x=A−1bx = A^{-1}bx=A−1b,matlab描述 x = A\b 超定方程乘以 ATA^TAT 变为方阵 ATAx=ATbA^TAx = ...

最新文章

  1. JSP HTML区别
  2. c html canvas,HTML5 canvas
  3. 66 http的无状态协议和cookie概述
  4. pvr转png工具_图片如何转换格式?最好用的3个转换工具都在这了
  5. 两个页面用url传值 和设置页面字段为不可编辑或是只读
  6. 并发编程学习之阻塞队列BlockingQueue和LinkedBlockingQueue
  7. EXCEL自定义填充柄
  8. (转)解决office软件无法卸载也无法安装的顽固问题
  9. JHOST邀请码,2012年7月31日申请,2012年8月31日过期
  10. shutdown关机命令 C语言 关机程序(恶搞 )
  11. 你嘴角三十度的微笑,百度搜索不到--2010最拽的100句话
  12. 被互联网租房套路割韭菜的年轻人
  13. 10万行代码电商项目
  14. 【折腾服务器 1】妖板 Intel N5105 + i226 主板安装 ESXi 7.0 教程
  15. mysql8.0.15mis百度网盘_mysql-installer-community-8.0.15.0数据库的安装
  16. 高阶数学的力量系列001:用L'Hospital法则证明一些等价无穷小
  17. 项目文件快速搜索神器
  18. 4月11日Win10创意者更新来袭:微软股价创新高
  19. 【实验五 一维数组】7-7 去掉重复的数据
  20. 如何选择云服务器配置?怎么买最划算?

热门文章

  1. Spring Cloud构建微服务架构(五)服务网关 原创 2016-07-12 翟永超 Spring Cloud 被围观 53984 次 通过之前几篇Spring Cloud中几个核心组件的介
  2. Spring入门到精通:第二章 IOC容器(XML方式):7.IOC容器Bean管理XML方式-bean作用域
  3. MS17010漏洞利用总结
  4. 当鼠标移动到上面时的应用
  5. 纬地道路纵断面设计教程_道路BIM模型快速生成
  6. 【毕业设计】基于大数据的抖音短视频数据分析与可视化 - python 大数据 可视化
  7. Dell服务器误删阵列恢复操作
  8. win10录屏怎么用_不会用电脑录屏怎么办?教你两种录屏方式,少学一个都遗憾...
  9. windows扫雷的模拟实现(C语言)
  10. sin30度用c语言转换弧度制,【数学】弧度和角度的转换