两种求矩阵伪逆的方法

伪逆矩阵是逆矩阵的广义形式。由于奇异矩阵或非方阵的矩阵不存在逆矩阵,但在matlab里可以用函数pinv(A)求其伪逆矩阵。基本语法为X=pinv(A),X=pinv(A,tol),其中tol为误差,pinv为pseudo-inverse的缩写:max(size(A))*norm(A)*eps。函数返回一个与A的转置矩阵A' 同型的矩阵X,并且满足:AXA=A,XAX=X.此时,称矩阵X为矩阵A的伪逆,也称为广义逆矩阵。pinv(A)具有inv(A)的部分特性,但不与inv(A)完全等同。 如果A为非奇异方阵,pinv(A)=inv(A),但却会耗费大量的计算时间,相比较而言,inv(A)花费更少的时间。

机器视觉中,finite camera的投影矩阵P为一个3*4,秩为3 的矩阵,矩阵P的伪逆如下:

矩阵P的伪逆为:

如果A列满秩,那么pinv(A)=(A'*A)^{-1}*A'。

如果A行满秩,那么pinv(A)=pinv(A')'。
如果秩亏损,那么只好先做奇异值分解A=UDV',U,V是正交阵,D是对角阵。
然后取对角阵S,如果D(i,i)=0,那么S(i,i)=0,如果D(i,i)<0或者D(i,i)>0,那么S(i,i)=1/D(i,i)。于是pinv(A)=VSU'。
-----------------------------------------------------------------------------------------------------------

原文:https://blog.csdn.net/u014260892/article/details/38581175  

你可能感兴趣的:(高数)