Ваш результат на самом деле правильный!
Запустив точно такой же код, который вы указали, но добавив np.around()
,
B= np.array([[3.0, 0.0, 2.0], [2.0, 0.0, -2.0], [0.0, 1.0, 1.0]])
Binv = np.linalg.inv(B)
Bbits= np.around(np.dot(B,Binv),2)
, мы получим следующий вывод:
array([[ 1., 0., 0.],
[-0., 1., 0.],
[ 0., 0., 1.]])
В ваших результатах -5.55111512e-17 - просто ошибка округления!