我尝试重复从lectures计算伪逆矩阵的例子:
我使用此代码
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]]
我做错了什么?请告诉我!
答案 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])