





Для большие массивы переполнение / переполнение может произойти при использовании numpy.linalg.det, или вы можете получить inf или -inf в качестве ответа.
Во многих из этих случаев вы можете использовать numpy.linalg.slogdet (см. документацию):
sign, logdet = np.linalg.slogdet(M)
где sign - знак, а logdet - логарифм определителя. Определитель можно вычислить просто:
det = np.exp(logdet)
Для разреженных матриц (двумерных массивов) я настоятельно рекомендую другой подход, основанный на разложении LU.
Есть ли способ получить определенное без ошибок округления?