伪逆矩阵计算
Pseudo inverse matrix calculation
我尝试重复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]]
我做错了什么?请告诉我!
讲义有误。看来他们找到了
的伪逆
[-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])
我尝试重复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]]
我做错了什么?请告诉我!
讲义有误。看来他们找到了
的伪逆 [-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])