3.5.2 Número de Condición

Referencia: Chapra 10.3.2 p300/pdf324, Burden 9Ed 7.5 p470, Rodríguez 4.4.3 p133

El número de condición de una matriz A, es una forma de medir la sensibilidad del resultado del sistema de ecuaciones ante pequeños cambios en los valores de la entrada X.  El número de condición de una matriz se usa para cuantificar su nivel de mal condicionamiento.

Sea A.X=B un sistema de ecuaciones lineales, entonces:

cond(A) = ||A|| ||A-1||

es el número de condición de la matriz A.

Los pequeños errores, por ejemplo por truncamiento, pueden amplificarse y afectar la precisión de la solución. Si el número de condición es cercano a 1 o 'bajo', implica que la matriz está bien condicionada, errores pequeños en los valores tienen poco impacto en la solución.

Instrucción en Python

 np.linalg.cond(A)

Ejemplo: Si la matriz A es la identidad, el número de condición es 1.

A = [[1,0,0],
     [0,1,0],
     [0,0,1]]
>>> np.linalg.cond(A)
1.0

Otro ejemplo: 1Eva_IT2010_T3_MN Precio artículos

A = [[2,2,4,1],
     [2,2,5,2],
     [4,1,1,2],
     [2,5,2,1]]
np.linalg.cond(A)
18.46408777611575

realizando el pivoteo parcial por filas a la matriz A, no afecta el número de condición.

A = [[4,1,1,2],
     [2,5,2,1],
     [2,2,5,2],
     [2,2,4,1]]
np.linalg.cond(A)
18.464087776115733

Se observará que si el número de condición está alejado de 1, es 'alto', al aplicar los métodos iterativos de Jacobi o Gauss-Seidel, resultan NO convergentes. Lo que puede ser un factor para seleccionar el método a usar para encontrar la solución al sistema de ecuaciones.


Tarea

Usando como base los procedimientos desarrollados en Python, elabore un algoritmo para encontrar el número de condición de una matriz.

"el error relativo de la norma de la solución calculada puede ser tan grande como el error relativo de la norma de los coeficientes de [A], multiplicada por el número de condición."

Por ejemplo,

  • si los coeficientes de [A] se encuentran a t dígitos de precisión
    (esto es, los errores de redondeo son del orden de 10–t) y
  • Cond [A] = 10c,
  • la solución [X] puede ser válida sólo para t – c dígitos
    (errores de redondeo ~ 10c–t).

verifique el resultado obtenido con el algoritmo, comparando con usar la instrucción

 np.linalg.cond(A)