【数学】【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件のフィードバック