1. ホーム
  2. プログラミング言語
  3. その他

numpy.linalg.LinAlgError: 特異行列の問題は解決されました

2022-01-22 07:06:56
<パス

質問

に関する質問の場合 numpy 行列を np.linalg.inv メソッドで実行します。

numpy.linalg.LinAlgError: 特異 マトリックス

理由

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

結果を取得することができます

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

行列Aは転置可能であることを示す

データを変更する

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

  • 1
  • 2

Aはリバーシブルではないので、エラーメッセージが報告されます。
numpy.linalg.LinAlgError: 特異な行列

例外処理を行うために try 文を追加することができます。

try:
    A = np.array([[0,0],[0,0]])
    print(A)
    B=np.linalg.inv(A)
except:
    print("matrix does not exist inverse matrix")
else:
    print(B)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
[[0 0]]
 [0 0]]
The matrix does not have an inverse matrix

  • 1
  • 2
  • 3