numpy.linalg.LinAlgError: Singular matrix 問題解決


問題

在對numpy的矩陣用np.linalg.inv方法時報錯

numpy.linalg.LinAlgError: Singular matrix

原因

A=np.matrix([[1,2],[-1,-3]])
print(A)
print(type(A))
B=np.linalg.inv(A)
print(B)
print(type(B))

可以得到結果

[[ 1  2]
 [-1 -3]]
<class 'numpy.matrixlib.defmatrix.matrix'>
[[ 3.  2.]
 [-1. -1.]]
<class 'numpy.matrixlib.defmatrix.matrix'>

說明矩陣A是可逆的

更改數據

A=np.matrix([[0,0],[0,0]])
B=np.linalg.inv(A)

由於A不可逆,則會出現報錯信息:
numpy.linalg.LinAlgError: Singular matrix

我們可以加一個try語句做異常處理

try:
    A = np.array([[0,0],[0,0]])
    print(A)
    B=np.linalg.inv(A)
except:
    print("矩陣不存在逆矩陣")
else:
    print(B)
[[0 0]
 [0 0]]
矩陣不存在逆矩陣

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM