常用的矩阵分解方法学习
LU分解、Cholesky分解、QR分解、SVD分解
想到看矩阵分解这一块还是因为看EPnP算法卡在了优化系数这一块,因为里面用到了QR分解,但是我又不会,这次就算是全部学习一下吧。
LU分解
LU分解的结果是将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积。
并非所有矩阵都能进行LU分解,能够LU分解的矩阵需要满足以下三个条件:
1. 矩阵是方阵
2. 矩阵是可逆的
3. 消元过程中没有0主元出现
LU分解的意义
LU分解的意义在于求解大型方程组。
Cholesky分解
Cholesky分解法又称平方根法,是当A为实对称正定矩阵时,LU三角分解法的变形。
Cholesky分解把矩阵分解为一个下三角矩阵以及它的共轭转置矩阵的乘积。与一般的矩阵分解求解方程的方法比较,Cholesky分解效率很高。
Cholesky分解的条件
一、矩阵中的元素共轭对称(复数域的定义,类比于实数对称矩阵)。Hermitiank意味着对于任意向量x和y,(x*)Ay共轭相等
二、正定(矩阵域,类比于正实数的一种定义)。正定矩阵A意味着,对于任何向量x,(x^T)Ax总是大于零(复数域是(x*)Ax>0)
只要矩阵满足上面的分解条件,那么分解出的矩阵是唯一确定的,而且矩阵的对角元素肯定是正数。
如果矩阵是半正定的,其实也可以分解,只不过分解的结果就不唯一了。
但是这样的分解方式频繁地使用开方运算,会影响到最后的精度,增加运算量。为了避免开方,Cholesky分解有个改进的版本。
QR分解
QR分解是将矩阵分解成一个正规正交矩阵Q与上三角矩阵R,所以被成为QR分解法。该算法对对称矩阵和非对称矩阵都适用。推导的话,这边还需要用到施密特正交的计算方法。
- 对要分解的矩阵进行施密特正交化、归一化
- 计算在新正交坐标系内的分解矩阵的表示
- 取出坐标系数组成R矩阵
另外的话,也可以直接对要分解的矩阵左乘上刚刚构建出来的标准正交矩阵Q
QR 分解经常用来解线性最小二乘法问题。
SVD分解
时间:2019年09月08日
作者:hhuchen
机构:河海大学机电工程学院