Мой друг и я выполнил эти строки кода в Python 2
и Python 3
:Numpy инвертирует необратимая матрица
import numpy as np
mat = np.array([[1,0,0],[-1,3,3],[1,2,2]])
np.linalg.inv(mat)
который возвращает:
array([[ 1.00000000e+00, 0.00000000e+00, 0.00000000e+00],
[ 1.50119988e+16, 6.00479950e+15, -9.00719925e+15],
[ -1.50119988e+16, -6.00479950e+15, 9.00719925e+15]])
Что странно Дано:
np.linalg.matrix_rank(mat)
возвращает 2
, что указывает на то, что матрица равна не обратимый.
Я понимаю из этой темы, что, вероятно, связано с тем, как numpy и python обрабатывают числа с плавающей запятой, хотя моя матрица состоит из целых чисел.
Есть ли какая-то особая причина, почему mat
нарушает обратную реализацию numpy?
Просьба уточнить: Вы имеете в виду «матрица _invertible_» или «матрица не _invertible_»? – DyZ