Octaveだと正方行列とその逆行列の乗法で単位行列が得られる。 GNU Octave, version 4.4.1 octave:1> a = ([4,5,7;-4,1,5;-10,3,8]) octave:2> b = inv(a) octave:3> a * b ans = 1.00000 0.00000 0.00000 0.00000 1.00000 0.00000 0.00000 0.00000 1.00000
でもPython3だと単位行列が得られたのかよく分からない。 これで正しいの?
Python 3.7.3 >>> import numpy as np >>> a = np.array([[4,6,7],[-4,1,5],[-10,3,8]]) >>> np.linalg.inv(a) array([[ 0.04666667, 0.18 , -0.15333333], [ 0.12 , -0.68 , 0.32 ], [ 0.01333333, 0.48 , -0.18666667]]) >>> b = np.linalg.inv(a) >>> a @ b array([[ 1.00000000e+00, -4.44089210e-16, 0.00000000e+00], [ 2.77555756e-17, 1.00000000e+00, 0.00000000e+00], [ 1.38777878e-17, 0.00000000e+00, 1.00000000e+00]])