重磅!一文读懂线性方程组的求解方法

本文详细总结了线性方程组的解法,包括方阵的直接法(如高斯消去、LU分解等)和迭代法(如雅可比、高斯-赛德尔、SOR),以及非方阵情况下的最小二乘解法。通过正规方程、SVD和QR分解探讨了超定方程组的求解,并讨论了欠定方程组的最小二范数解。内容涵盖数值稳定性、计算量及矩阵秩的影响。


线性方程组的求解是计算机视觉工程实践中经常碰到的问题,这篇文章对其常见解法进行整理和总结.先上结论:

在这里插入图片描述

针对线性方程组 A x = b Ax=b Ax=b的求解问题,我们按照系数矩阵 A A A的性质进行分类讨论。

1. A A A为方阵

  • d e t ( A ) ≠ 0 det(A)\neq0 det(A)=0

    方程组有唯一解.

  • d e t ( A ) = 0 det(A)=0 det(A)=0

    • r ( A ) < r ( A , b ) r(A)<r(A,b) r(A)<r(A,b),则方程组无解
    • r ( A ) = r ( A , b ) < n r(A)=r(A,b)<n r(A)=r(A,b)<n,则方程组有无穷多解

求解方法在数值分析这门课程中有详细介绍,可分为两类:

直接法

直接法主要针对低阶稠密矩阵(200阶以内)

  • Gauss消去法及其改进(列选主元的Gauss消去法)
  • 直接三角分解法(LU分解,LDU分解,Cholesky分解(针对对称正定矩阵),Gauss消去法的代数实质就是LU分解)

迭代法

迭代法主要针对大型矩阵,而且在实际中,这类矩阵通常在结构上有特点,比如稀疏

  • 雅可比迭代法
  • 高斯-赛德尔迭代法
  • 超松弛(SOR)迭代法

2. A A A为非方阵且 A ∈ R m × n , m > n A\in R^{m\times n},m>n ARm×n,m>n

行数大于列数,即方程数目大于未知数个数.此时方程组称为超定方程组,一般来说无精确解,但可以求其最小二乘解.所谓的最小二乘解是指:在欧几里得空间中以2-范数作为距离,使得向量 A x Ax Ax b b b之间距离最小的 x x x.这个问题在优化理论中被称为线性最小二乘问题(这个概念与非线性最小二乘相对应,两者的区别见https://www.jianshu.com/p/bf6ec56e26bd),即我们的目标转换为下式:
min ⁡ x ∈ R n ∥ A x − b ∥ 2 \min_{x\in{R^n}}{ {\lVert{Ax-b}\rVert}_{2}} xRnminAxb2

先给出三个定理,说明超定方程组最小二乘解的存在性和唯一性

  • 定理1

    超定方程组必存在最小二乘解,且 x x x是方程组的最小二乘解的充要条件是: x x x A T A x = A T b A^TAx=A^Tb ATAx=ATb的解

  • 定理2

    r ( A ) = n < m r(A)=n<m r(A)=n<m,超定方程组存在唯一最小二乘解

  • 定理3

    r ( A ) < n < m r(A)<n<m r(A)<n<m,则超定方程组有无穷多个最小二乘解,其中2-范数最小的解称为方程组的最小二范数解,且该解是唯一的

下面按照 A A A的秩分类讨论.

2.1. r ( A ) = n < m r(A)=n<m r(A)=n<m

此情形对应于定理2

正规方程法

证明:
∥ A x − b ∥ 2 2 = ( A x − b ) T ∗ ( A x − b ) ∥ A x − b ∥ 2 2 = x T A T A x − b T A x − x T A T b + b T b 求 导 并 令 导 数 为 0 : ∂ ∥ A x − b ∥ 2 2 ∂ x = 2 A T A x − 2 A T b = 0 得 到 方 程 : A T A x = A T b 因 为 r ( A T A ) = r ( A ) , 所 以 d e t ( A T A ) ≠ 0 x = ( A T A ) − 1 A T b {\lVert{Ax-b}\rVert}_2^2={(Ax-b)}^T*(Ax-b)\\ {\lVert{Ax-b}\rVert}_2^2=x^TA^TAx-b^TAx-x^TA^Tb+b^Tb\\ 求导并令导数为0: {\partial{ { {\lVert{Ax-b}\rVert}_2}^2}\over{\partial{x}}}=2A^TAx-2A^Tb=0\\ 得到方程:A^TAx=A^Tb\\ 因为r(A^TA)=r(A),所以det(A^TA)\neq0\\ x=(A^TA)^{-1}A^Tb Axb22=(Axb)T(Axb)Axb22=xTATAxbTAxxTATb+bTb0:xAxb22=2ATAx2ATb=0:ATAx=ATbr(ATA)=r(A),det(ATA)=0x=(ATA)1ATb
A T A x = A T b A^TAx=A^Tb ATAx=ATb称为正规方程组, ( A T A ) − 1 A T (A^TA)^{-1}A^T (ATA)1AT称为广义逆

缺点:

  1. 数值不稳定
  2. 需要求逆,计算量大
SVD法

这里先给出矩阵的SVD(奇异值分解)的定义:

对于任意给定的 A ∈ R m × n A\in R^{m\times n} ARm×n,都存在正交矩阵 U ∈ R m × m U\in R^{m\times m} URm×m, V ∈ R n × n V\in R^{n\times n} VRn×n使得 A = U S V T A=USV^T A=USVT

其中:

U U U的列向量为 A A T AA^T AAT的特征向量

V V V的列向量为 A T A A^TA ATA的特征向量

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值