1. 程式人生 > >兩種求矩陣偽逆的方法

兩種求矩陣偽逆的方法

偽逆矩陣是逆矩陣的廣義形式。由於奇異矩陣或非方陣的矩陣不存在逆矩陣,但在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,那麼S(i,i)=1/D(i,i)。於是pinv(A)=VSU'。 ---------------------   作者:penghuahuijuan   來源:CSDN   原文:https://blog.csdn.net/u014260892/article/details/38581175   版權宣告:本文為博主原創文章,轉載請附上博文連結!