Aurora, miembro de este gran equipo, nos hizo el favor de redactar este tutorial porque domina perfectamente este tema.
linalg.cond(x, p=None)
[source]-
Calcular el número de condición de una matriz.
Esta función es capaz de devolver el número de condición usando una de siete normas diferentes, dependiendo del valor de
p
(ver Parámetros a continuación).- Parámetros
-
x(…, M, N) array_like
-
La matriz cuyo número de condición se busca.
pNone, 1, -1, 2, -2, inf, -inf, ‘fro’, optional
-
Orden de la norma:
pag
norma para matrices
Ninguna
2-norma, calculada directamente usando el
SVD
‘para’
norma frobenius
inf
max(suma(abs(x), eje=1))
-inf
min(suma(abs(x), eje=1))
1
max(suma(abs(x), eje=0))
-1
min(suma(abs(x), eje=0))
2
2-norma (mayor valor individual)
-2
menor valor singular
inf significa el objeto numpy.inf, y la norma de Frobenius es la norma de la raíz de la suma de los cuadrados.
- Devoluciones
-
cfloat, inf
-
El número de condición de la matriz. Puede ser infinito.
Ver también
numpy.linalg.norm
notas
El número de condición de
x
se define como la norma dex
veces la norma de la inversa dex
[1]; la norma puede ser la norma L2 habitual (raíz de la suma de los cuadrados) o una de varias otras normas de matriz.Referencias
1
-
G. Strang, Álgebra lineal y sus aplicaciones, Orlando, FL, Academic Press, Inc., 1980, pág. 285.
Ejemplos
>>> from numpy import linalg as LA >>> a = np.array([[1, 0, -1], [0, 1, 0], [1, 0, 1]]) >>> a array([[ 1, 0, -1], [ 0, 1, 0], [ 1, 0, 1]]) >>> LA.cond(a) 1.4142135623730951 >>> LA.cond(a, 'fro') 3.1622776601683795 >>> LA.cond(a, np.inf) 2.0 >>> LA.cond(a, -np.inf) 1.0 >>> LA.cond(a, 1) 2.0 >>> LA.cond(a, -1) 1.0 >>> LA.cond(a, 2) 1.4142135623730951 >>> LA.cond(a, -2) 0.70710678118654746 # may vary >>> min(LA.svd(a, compute_uv=False))*min(LA.svd(LA.inv(a), compute_uv=False)) 0.70710678118654746 # may vary
Recuerda algo, que tienes la opción de comentar tu experiencia .