Путаница по поводу обратной матрицы numpy - PullRequest
0 голосов
/ 04 мая 2020

У меня есть матрица 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.]])

Как это возможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...