В NumPy я пытаюсь использовать linalg
для вычисления инверсии матрицы на каждом шаге ньютона -Схема Рафсона (размер проблемы намеренно небольшой, чтобы мы могли инвертировать аналитически вычисленные матрицы Гессе). Однако после того, как я продвинулся далеко в направлении сходимости, Гессиан приближается к сингулярному.
Есть ли какой-либо метод в NumPy, который позволяет мне проверить, считается ли матрица сингулярной (вычисление определителя недостаточно надежно)? В идеале было бы неплохо, если бы был способ использовать блок try
except
, чтобы отловить ошибку сингулярного массива NumPy.
Как мне это сделать? Ошибка NumPy в терминале:
raise LinAlgError, 'Singular matrix'
numpy.linalg.linalg.LinAlgError: Singular matrix