2016-07-24 72 views
1

我在numpy python中使用矩陣。我有矩陣A,然後我計算它的逆矩陣。現在我將A和它的逆相乘,我沒有得到單位矩陣。任何人都可以指出這裏有什麼問題嗎?Python numpy:矩陣乘法給出錯誤結果

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 

回答

4

您正在使用的矩陣轉置矩陣(而不是反過來)點...

In [16]: np.dot(A.I, A) 
Out[16]: 
matrix([[ 1., 0.], 
     [ 0., 1.]]) 

跟轉你有你得到了下述結果:

In [17]: np.dot(A.T, A) 
Out[17]: 
matrix([[25, 18], 
     [18, 13]]) 
1

以下是另一種方法:

I僅適用於matrix

您可以使用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.]])