tutorial solve not name linalg jordan gauss functions python numpy linear-algebra

python - not - numpy linalg solve



Cómo intentar, excepto una operación de matriz ilegal debido a la singularidad en NumPy (2)

En NumPy, estoy tratando de usar linalg para calcular inversos matriciales en cada paso de un esquema de Newton-Raphson (el tamaño del problema es intencionalmente pequeño, por lo que podemos invertir matrices de arpillera calculadas analíticamente). Sin embargo, después de avanzar hacia la convergencia, la arpillera se acerca al singular.

¿Hay algún método dentro de NumPy que me permita probar si una matriz se considera singular (el determinante informático no es lo suficientemente robusto)? Idealmente, sería bueno si hubiera una forma de usar un bloque de try except para detectar el error de matriz singular de NumPy.

¿Cómo haría esto? El error NumPy dado en el terminal es:

raise LinAlgError, ''Singular matrix'' numpy.linalg.linalg.LinAlgError: Singular matrix


La respuesta de wim ya no funciona para las versiones actuales de NumPy (estoy usando 1.13 en el momento de escribir esto). En su lugar haz:

import numpy as np try: # your code that will (maybe) throw except np.linalg.LinAlgError as e: if ''Singular matrix'' in str(e): # your error handling block else: raise


La sintaxis sería así:

import numpy as np try: # your code that will (maybe) throw except np.linalg.LinAlgError as err: if ''Singular matrix'' in str(err): # your error handling block else: raise