关闭

伪逆矩阵

标签: 伪逆矩阵
2892人阅读 评论(0) 收藏 举报
分类:

伪逆矩阵的定义

定义:令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。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12233次
    • 积分:186
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:4篇
    • 译文:1篇
    • 评论:2条
    最新评论