【数学】【PYTHON】行列の逆行列を求める。

【数学】【PYTHON】行列のかけ算を行う | 自分、ぼっちですが何か? (taki-lab.site)

逆行列とは、元の行列にかけ算を行うと、単位行列にる行列のことです。

Pythonでは、linalg.inv()の関数を使用すると、一瞬で計算できます。

>>> import numpy as np
>>> A = np.matrix([[5, 3], [2, 1]])
>>> B = np.linalg.inv(A)
>>> B
matrix([[-1.,  3.],
        [ 2., -5.]])

で、試しにA×Bを計算して単位行列になるかどうかを計算してみたんですが、

>>> (A * B).astype(np.int64)
matrix([[1, 0],
        [0, 0]])

ん?

単位行列なら右下が1になるはずなんだが?

astype(np.int64)とは、inv()を計算すると、出力が浮動小数になるため、整数に変換する関数なんですが、

ちなみに、astype(np.int64)を取り除くと、

>>> (A * B)
matrix([[ 1.00000000e+00, -8.88178420e-16],
        [ 2.22044605e-16,  1.00000000e+00]])

e-16は小さい値なので、整数化するとほぼ0ですが、

右下はどうみても1ですね。

???

「【数学】【PYTHON】行列の逆行列を求める。」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください