伪逆矩阵计算

时间:2017-10-24 19:19:03

标签: python numpy matrix-inverse

我尝试重复从lectures计算伪逆矩阵的例子:

enter image description here

我使用此代码

from numpy import *
# https://classes.soe.ucsc.edu/cmps290c/Spring04/paps/lls.pdf
x = np.array([[-11, 2],[2, 3],[2, -1]]) 
print(x)
# computing the inverse using pinv
a = linalg.pinv(x)
print(a)

我的计算结果与讲座的结果不同。

我的结果:

[[-0.07962213  0.05533063  0.00674764]
 [ 0.04048583  0.2854251  -0.06275304]]

结果形式讲座:

[[-0.148  0.180  0.246]
 [ 0.164  0.189 -0.107]]

我做错了什么?请告诉我!

1 个答案:

答案 0 :(得分:2)

讲义中有一个错误。他们似乎找到了

的伪逆
    [-1   2]
A = [ 2   3]
    [ 2  -1]

(注意A [0,0]从-11到-1的变化。)这是A版本的计算:

In [73]: A = np.array([[-1, 2], [2, 3], [2, -1]]) 

In [74]: A
Out[74]: 
array([[-1,  2],
       [ 2,  3],
       [ 2, -1]])

In [75]: np.linalg.pinv(A)
Out[75]: 
array([[-0.14754098,  0.18032787,  0.24590164],
       [ 0.16393443,  0.18852459, -0.10655738]])

In [76]: np.linalg.pinv(A).dot([0, 7, 5])
Out[76]: array([ 2.49180328,  0.78688525])