计算R中矩阵的伪逆

时间:2014-04-14 11:46:43

标签: r matrix

我正在尝试计算矩阵的伪逆,称之为M,这可能看起来如下:

M=matrix(c(-1,-1,1,0,0,1),nrow=2,ncol=3)

我需要的是这个矩阵的左逆,这样:

M_inv_l M = I

使用MASS包,我能找到正确的反向:

M_inv_r=ginv(M)

M M_inv_r = I。

有没有办法计算左逆而不是右逆?我无法在论坛上找到答案。

由于

2 个答案:

答案 0 :(得分:0)

全行秩矩阵具有左逆:

> M %*% ginv(M)
             [,1]          [,2]
[1,] 1.000000e+00 -2.220446e-16
[2,] 1.110223e-16  1.000000e+00

完整列级的矩阵具有右逆:

> ginv(t(M)) %*% t(M)
              [,1] [,2]
[1,]  1.000000e+00    0
[2,] -5.551115e-17    1

请参见the Wikipedia article on generalized inverses

答案 1 :(得分:-1)

我认为这一般不可行 - 你试图解决只有6个值的9个线性方程。具体来说,请查看逆向的第一行:

-1* Minv[1,1] + -1*Minv[1,2] = 1                     [1]
 1* Minv[1,1] +  0*Minv[1,2] = 0 => Minv[1,1]=0      [2]
 0* Minv[1,1] +  1*Minv[1,2] = 0 => Minv[1,2]=0      [3]

应该清楚的是,将[2]和[3]代入[1]会产生矛盾。