您的位置:首页 > 其它

伪逆矩阵

2015-11-18 08:29 218 查看


伪逆矩阵的定义

定义:令A是任意mXn矩阵,称矩阵G是A的广义逆矩阵,若G满足下述条件(Moore-penrose条件):
(1)GAG = G; 
(2)AGA = A;
(3)AG为hermitian矩阵,即(AG)^H=AG;
(4)GA为hermitian矩阵,即(GA)^H=GA;



伪逆矩阵的求法

① 直接求解:

求导,令导数为0,结果如下: InvA=(ATA)-1AT

% 直接求伪逆

InvA = inv(A'*A)*A';


② SVD求解

%% SVD分解求伪逆

% 原理和公式:1. SVD分解得到的矩阵:U和V是正交阵,S是对角阵

%            2. 正交阵的逆=转置

%            3. 对角阵的逆=非零元素求倒

% Step1: 求解A的SVD分解

[U,S,V] = svd(A); % A = U*S*V'

% Step2: 将S中的非零元素求倒

T=S;

T(find(S~=0)) = 1./S(find(S~=0));

% Step3: 求invA

svdInvA = V * T' * U';


③ QR求解

%% QR分解求伪逆

% 适用于稀疏矩阵

% 原理和公式:1. QR分解得到的矩阵:Q是正交阵,R是非奇异上三角阵

%            2. 正交阵的逆=转置

%            3. 上(下)三角矩阵的逆也仍然是上(下)三角矩阵。不必用高斯消去法,向前替换法解方程。

%               但是具体的我不知道怎么用程序来写,这里仍旧用了matlab的函数。

[Q,R] = qr(A);

InvR =  inv(R'*R)*R';

qrInvA =InvR*Q';



伪逆矩阵的应用

(1)信号的检测干扰消除

 a=floor(10*rand(4,3))

a =

     7     4     2

     7     6     6

     1     7     6

     4     7     1

------------------------------------------------------------------------

b=inv(a'*a)*a'

b =

    0.1018    0.0650   -0.0959   -0.0180

   -0.0263   -0.0767    0.0578    0.1658

   -0.0296    0.1149    0.0903   -0.1719

-------------------------------------------------------------------------

b*a

ans =

    1.0000   -0.0000    0.0000

   -0.0000    1.0000   -0.0000

   -0.0000   -0.0000    1.0000

--------------------------------------------------------------------------

看到没Moore-Penrose伪逆满足(a)^+*a=xij当i=j时xij=1;否则为0。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  伪逆矩阵