Ax=b常见解法对比

1. 参考

https://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html

2. 问题来源

  1. 在解决平面拟合、直线拟合等问题时,我们经常会利用多维空间中的多个点来构建超定方程 A x = b \mathbf{Ax=b} Ax=b,然后利用最小二乘法求解该方程组来获得待拟合对象的参数。
  2. 在基于优化的slam框架中,我们经常会构建类似于 ∑ i = 1 n ∣ ∥ f ( x , l i ) ∥ 2 2 \sum_{i=1}^{n}\left|\| f(\mathbf{x},l_{i}) \right\|_{2}^{2} i=1nf(x,li)22 残差方程,然后通过最小化该残差方程结果来获得最优的状态 x \mathbf{x} x,但由于该方程是个非线性方程,需要通过迭代法来求解,求解过程中最重要的步骤就是通过求解 J T J Δ x = − J T f J^{T}J\Delta x=-J^{T}f JTJΔx=JTf 方程来获得迭代增量。可见该方程也是形如 A x = b \mathbf{Ax=b} Ax=b

3. 求解方法对比

在这里插入图片描述
结论:1. 从速度上来看,Cholesky分解方法速度是最快的,并且精度较好,但其要求矩阵A是对称正定的;2. 精度最好最稳定的是SVD分解法,但求解速度慢;3. LU分解和QR分解速度和精确性居中,但其要求矩阵A是满秩的。 因此基于上面的结论我们可以找到第2节两个问题的较合理的求解方法,对于问题1这种拟合问题,由于矩阵A是非满秩的,因此只有SVD分解方法可用,对于问题2,由于其矩阵 A = J T J A=J^{T}J A=JTJ是个对称正定阵,因此可考虑使用求解速度最快的LDLT方法。

注: 上述结论中的“要求”都是基于对应的分解方法原理来说的,可通过下面原理部分了解。

4. 原理

4.1 LU分解

LU分解也称为三角分解,将线性方程组的系数矩阵分解成一个上三角和一个下三角矩阵,形如 A = L U A=LU A=LU
具体分析见参考: https://zhuanlan.zhihu.com/p/54943042

4.2 QR分解

任意一个满秩矩阵A,都可以唯一的分解成 A = Q R A = QR A=QR 的形式,其中Q为正交矩阵,R是具有正对角元的上三角矩阵。
具体分析见参考: https://zhuanlan.zhihu.com/p/84415000

4.3 Choesky分解

Cholesky 分解是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解,形如 A = L L T A=LL^{T} A=LLT
具体分析见参考: https://zhuanlan.zhihu.com/p/112091443

4.4 SVD分解

SVD分解是将矩阵分解成 A = U Σ V T A=U\Sigma V^{T} A=UΣVT,其中 U U U是一个 m × m m\times m m×m的矩阵, Σ \Sigma Σ 是一个 m × n m\times n m×n 的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值, V V V 是一个 n × n n\times n n×n 的矩阵。 U U U V V V 都是正交矩阵。
具体分析见参考: https://zhuanlan.zhihu.com/p/29846048

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值