Как попробовать - исключить недопустимую матричную операцию из-за сингулярности в NumPy

В NumPy я пытаюсь использовать linalg для вычисления инверсии матрицы на каждом шаге ньютона -Схема Рафсона (размер проблемы намеренно небольшой, чтобы мы могли инвертировать аналитически вычисленные матрицы Гессе). Однако после того, как я продвинулся далеко в направлении сходимости, Гессиан приближается к сингулярному.

Есть ли какой-либо метод в NumPy, который позволяет мне проверить, считается ли матрица сингулярной (вычисление определителя недостаточно надежно)? В идеале было бы неплохо, если бы был способ использовать блок try except , чтобы отловить ошибку сингулярного массива NumPy.

Как мне это сделать? Ошибка NumPy в терминале:

raise LinAlgError, 'Singular matrix'
numpy.linalg.linalg.LinAlgError: Singular matrix
19
задан ely 6 February 2012 в 05:06
поделиться