伪逆矩阵(pseudo-inverse)

伪逆矩阵(pseudo-inverse)

  • 伪逆矩阵的介绍&定义
    • 矩阵的逆&伪逆
    • 矩阵的伪逆推导
  • 伪逆矩阵的求法
    • 直接求解:
    • SVD求解
    • QR求解
  • 伪逆矩阵的应用
  • 伪逆矩阵在维基百科中的详细介绍
  • 参考链接

伪逆矩阵的介绍&定义

矩阵的逆&伪逆

伪逆矩阵(pseudo-inverse)_第1张图片
上图中的右逆矩阵根据维度可知,有所问题,可参考下图矩阵的伪逆推导及其结果。

矩阵的伪逆推导

在这里插入图片描述

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


伪逆矩阵在维基百科中的详细介绍

伪逆矩阵(pseudo-inverse)_第2张图片

参考链接

伪逆矩阵
伪逆矩阵(广义逆矩阵)

你可能感兴趣的:(矩阵论,矩阵,matlab,线性代数)