У меня есть матрица a
matrix([[1.0e+00, 9.0e+01],
[9.0e+01, 8.1e+03]])
Когда я спрашиваю numpy ('1.18.1')
об обратном a
, я получаю:
matrix([[ 3.65365555e+12, -4.05961727e+10],
[-4.05961727e+10, 4.51068586e+08]])
Когда я умножаю их (a*a.I
), я получаю:
matrix([[1. , 0. ],
[0. , 1.00048828]])
Насколько я понимаю, для того, чтобы сначала вычислить обратную матрицу, нам нужно вычислить определитель a
, равный 1/(90*90-8100*1)
, что приводит к 1/0
и деление на ноль не является допустимой операцией в numpy
. Это первое, что я не понимаю.
Во-вторых, у меня есть матрица b
:
matrix([[1.00e+00, 1.30e+02],
[1.30e+02, 1.69e+04]])
Обратное значение:
matrix([[ 1.80143985e+16, -1.38572296e+14],
[-1.38572296e+14, 1.06594074e+12]])
Когда я умножаю их (b*b.I
), я получаю:
matrix([[0., 0.],
[0., 0.]])
Как это возможно?