【矩阵原理】伪逆矩阵(pseudo-inverse)
伪逆矩阵的介绍&定义
矩阵的逆&伪逆
上图中的右逆矩阵根据维度可知,有所问题,可参考下图矩阵的伪逆推导及其结果。
矩阵的伪逆推导
定义:令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,结果如下: I n v A = ( A T A ) − 1 A T InvA=(A^TA)^{-1}A^T InvA=(ATA)−1AT
%直接求伪逆 |
---|
InvA = inv(A’*A)*A’; |
SVD求解
- SVD分解求伪逆
- 原理和公式:
- SVD分解得到的矩阵:U和V是正交阵,S是对角阵
- 正交阵的逆=转置
- 对角阵的逆=非零元素求倒
- Step1: 求解A的SVD分解
- [U,S,V] = svd(A); % A = USV’
- Step2: 将S中的非零元素求倒
- T=S;
- T(find(S~=0)) = 1./S(find(S~=0));
- Step3: 求invA
- svdInvA = V * T’ * U’;
- 原理和公式:
QR求解
- QR分解求伪逆,适用于稀疏矩阵
- 原理:
- QR分解得到的矩阵:Q是正交阵,R是非奇异上三角阵
- 正交阵的逆=转置
- 上(下)三角矩阵的逆也仍然是上(下)三角矩阵。
- 不必用高斯消去法,向前替换法解方程。
- 但是具体的我不知道怎么用程序来写,这里仍旧用了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