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