Python numpy:矩阵乘法给出错误结果
我在numpython中使用矩阵。我有一个矩阵a,然后我计算它的逆。现在我将A与其逆矩阵相乘,我不会得到单位矩阵。有人能指出这里出了什么问题吗Python numpy:矩阵乘法给出错误结果,python,numpy,matrix,Python,Numpy,Matrix,我在numpython中使用矩阵。我有一个矩阵a,然后我计算它的逆。现在我将A与其逆矩阵相乘,我不会得到单位矩阵。有人能指出这里出了什么问题吗 A = matrix([ [4, 3], [3, 2] ]); print (A.I) # prints [[-2 3], [ 3 -4]] - correct print A.dot(A.T) # prints [[25 18], [18 13]] - Incorrect p
A = matrix([
[4, 3],
[3, 2]
]);
print (A.I) # prints [[-2 3], [ 3 -4]] - correct
print A.dot(A.T) # prints [[25 18], [18 13]] - Incorrect
print A*(A.T) # prints [[25 18], [18 13]] - Incorrect
您正在使用矩阵上的点和转置矩阵(不是逆矩阵) 通过转置,您得到了显示的结果:
In [17]: np.dot(A.T, A)
Out[17]:
matrix([[25, 18],
[18, 13]])
您正在使用矩阵上的点和转置矩阵(不是逆矩阵) 通过转置,您得到了显示的结果:
In [17]: np.dot(A.T, A)
Out[17]:
matrix([[25, 18],
[18, 13]])
以下是另一种方法:
I
仅适用于矩阵
您可以使用np.linalg.inv(x)
进行inverse
In [11]: import numpy as np
In [12]: A = np.array([[4, 3], [3, 2]])
In [13]: B = np.linalg.inv(A)
In [14]: A.dot(B)
Out[14]:
array([[ 1., 0.],
[ 0., 1.]])
以下是另一种方法:
I
仅适用于矩阵
您可以使用np.linalg.inv(x)
进行inverse
In [11]: import numpy as np
In [12]: A = np.array([[4, 3], [3, 2]])
In [13]: B = np.linalg.inv(A)
In [14]: A.dot(B)
Out[14]:
array([[ 1., 0.],
[ 0., 1.]])