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