伪逆矩阵

原创 2015年11月18日 08:29:30

伪逆矩阵的定义

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


相关文章推荐

pinv--求矩阵的伪逆矩阵

pinv--求矩阵的伪逆矩阵 【功能简介】用于求矩阵的伪逆矩阵。 【语法格式】 1.B=pinv(A) 函数返回矩阵A的伪逆矩阵。如果矩阵A是可逆(非奇异)的,那么pinv(A...

求伪逆的三种方法:直接,SVD,QR及具体的应用

最近在做波达方向的估计的研究,其中涉及到了奇异矩阵的逆,直接通过matlab中的pinv()和inv()计算得到的结果误差较大,于是就诞生了这篇文章,当然,全文并非全部原创。奇异矩阵的求逆主要有三种方...

Moore-Penrose广义逆矩阵

起源设AA是n×nn\times n可逆方正,bb是任意一个nn维向量,则方程组Ax=bAx=b总有解,且解xx可表示为x=A−1b.x=A^{-1}b. 现在设AA是m×nm\times n可逆方...

伪逆(Moore-Penrose)

对于非方矩阵而言,其逆矩阵没有定义。假设在下面的问题中,我们希望通过矩阵A的左逆B来求解线性方程: 等式两边左乘左逆B后,我们得到: 是否存在一个唯一的映射,将A映射到B,取决于问题...

伪逆矩阵(pseudo-inverse)

伪逆矩阵是逆矩阵的广义形式。由于奇异矩阵或非方阵的矩阵不存在逆矩阵,但在matlab里可以用函数pinv(A)求其伪逆矩阵。基本语法为X=pinv(A),X=pinv(A,tol),其中tol为误差,...

左右逆和伪逆

通常我们所说的逆都是放在矩阵左右两边都能成立的逆,即 ,左逆等于右逆,如果A是m*n大小的矩阵,其秩为r,则存在上述的逆需满足条件m=n=r,也就是A为方阵并且满秩(full rank)。right-...

线性代数导论34——左右逆和伪逆

本文是Gilbert Strang的线性代数导论课程笔记。课程地址:http://v.163.com/special/opencourse/daishu.html   第三十四课时:左右逆和伪逆 ...

python numpy使用

本文转自:http://www.xuebuyuan.com/1910480.html python numpy使用 1.建立矩阵 a1=np.array([1,2,3],dtype=in...

求伪逆的三种方法:直接,SVD,QR

求伪逆的三种方法:直接,SVD,QR - [专业理论] 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/shijuanfen...

矩阵 伪逆 计算

摘自: http://robotics.caltech.edu/~jwb/courses/ME115/handouts/pseudo.pd from page 2
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:伪逆矩阵
举报原因:
原因补充:

(最多只允许输入30个字)