视觉SLAM常见的QR分解SVD分解等矩阵分解方式求解满秩和亏秩最小二乘问题(最全的方法分析总结)

本文详细介绍了矩阵分解的基本概念及其在最小二乘问题中的应用。内容涵盖QR分解、LDLT分解、Cholesky分解及SVD分解,并讨论了它们在解决不同条件下线性方程组的能力。

关于这个问题的内容比较多,也整理了相当一段时间,在写内容之前,我需要引用一些牛人的名人名言,以壮士气。
(1)故不积跬步,无以至千里;不积小流,无以成江海-荀子
(2)只收藏,不点赞的同学,人心都是肉长的。。。地主家也没有余粮啊。。。我想说的是。。。不赞不是好码农-马克.wangshuai
(纯粹copy)

内容一
首先直接给出AX=B解的情况:
(1)R(A)< r(A|B),方程组无解
(2)r(A)=r(A|B)=n,方程组有唯一解
(3)r(A)=r(A|B) < n,方程组有无穷解
(4)r(A)>r(A|B),这种情况不存在
其中r()代表矩阵的秩,A|B是增广矩阵,n是X未知数个数。通过下面的例子理解下这个结论,假设x=[x1,x2],其实就便沉了一个二元一次方程组求解问题。
(1)A[1,1;0,0],B=[1,1],AX=B方程组变成了下式,这自然没有解,因为方程组的第二个式子是的0=1,与事实不符。
这里写图片描述

(2)A[1,1;0,1],B=[1,1],AX=B方程组变成了下式,这自然有唯一解,解为X=[0,1].
这里写图片描述
(3)A[1,1;0,0],B=[1,0],AX=B方程组变成了下式,这自然有无穷解,因为第二项消掉了,方程只剩下第一项,一个方程式,两个未知量。
这里写图片描述

这里就引出最小二乘问题,最小二乘问题就是用来解决第二、三种情况求最优解。当出现第二种情况下(也就是A满秩下,称为满秩最小二乘问题),为了提高效率通常使用QR分解、LTLD分解、Cholesky分解和SVD分解(奇异分解)等。当出现第三种情况时(也就是A秩亏,称为亏秩最小二乘问题),只能使用SVD分解方法,其他方法将失效。下面分别介绍QR分解、LTLD分解、cholesky分解和SVD分解的方法,然后探讨其对最小二乘的解法。


内容二:
这里有必要提下线性最小二乘问题
这里写图片描述
可见一般在视觉SLAM中后端优化就是约束项大于未知数的个数(超定问题),采用最小二乘问题求解


内容三:
为什么需要矩阵分解
个人认为,首先,当数据量很大时,将一个矩阵分解为若干个矩阵的乘积可以大大降低存储空间;其次,可以减少真正进行问题处理时的计算量,毕竟算法扫描的元素越少完成任务的速度越快,这个时候矩阵的分解是对数据的一个预处理;再次,矩阵分解可以高效和有效的解决某些问题;最后,矩阵分解可以提高算法数值稳定性,关于这一点可以有进一步的说明。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值