ANÁLISIS NUMÉRICO
ICM ESPOL
3.4 Sist istema emas Mal Mal Co Condicion ionado ados Al resolver un sistema de ecuaciones lineales, es necesario analizar si el resultado calculado es confiable pues puede ocurrir que los valores obtenidos no tengan la precisión esperada. Un caso especial se presenta en sistemas que son sensibles a los errores de redondeo introducidos en los datos y en los cálculos. Para describir esta situación suponga el siguiente sistema 2 3.01
x1
5
4
x2
7
6
La solución obtenida con un método directo es: 223.25
X
150.00
Realicemos un cambio muy pequeño en alguno de los coeficientes del sistema 2
3 .0 1
x1
5
4.01
6
x2
7
La solución solución obtenida obtenida con el mismo método directo directo es completamente completamente diferente diferente X
127.3894 86.3053
Si suponemos que los coeficientes de la matriz representan datos obtenidos mediante algún tipo de medición y que el cálculo de la solución es un proceso que puede introducir errores, entonces esto debe interpretarse como un indicio de que la solución es afectada fuertemente por los pequeños errores de los coeficientes, en consecuencia la solución no es confiable. Estos Estos sistemas sistemas son muy sensibles sensibles a los cambios cambios en los los coeficien coeficientes tes y también a los errores errores de redondeo redondeo en el cálculo cálculo de la la solución solución y se denomin denominan an sistema sistemas s mal condicio condicionad nados. os. Una interpretación gráfica ayuda a entender este problema. En el ejemplo se observa que los coeficientes coeficientes correspond correspondiente ientess de las ecuaciones ecuaciones tienen valores valores muy cercanos. Cada ecuación es una recta en el plano y sus pendientes tendrán valores muy cercanos, por lo tanto, tanto, al graficarlas se obtendrán rectas casi paralelas: Ecuación 1: Ecuación 2:
x1 = -3.01 -3.01/2 /2 x2 + 5/2 = -1.505 -1.505 x2 + 2.50 x1 = -6/4 -6/4 x2 + 7/4 = -1.500 x2 + 1.75
Geométr Geomé tric icam amen ente te,, la soluc solució iónn del del sist sistema ema es la inte inters rsec ecci ción ón de amb ambas as rect rectas as.. Si tien tienen en pendientes pendientes muy cercana cercanas, s, la intersecci intersección ón no estará estará claramente claramente defin definida. ida. En consecu consecuencia, encia, al cambiarr alguno de los coefici cambia coeficiente entes, s, el el punto punto de interse intersección cción se desplazará desplazará significativ significativamente. amente.
Ing. Luis Rodríguez Ojeda, MSc.
ANÁLISIS NUMÉRICO
ICM ESPOL
Según lo anterior, un procedimiento experimental para detectar si un sistema lineal es mal condicionado consiste en modificar ligeramente el valor de alguno de los coeficientes y observar si el vector solución cambia significativamente. Si se detecta este problema, debe entenderse que el sistema contiene ecuaciones muy cercanas o que tienen algún tipo de relación, y por lo tanto deben revisarse los datos y las consideraciones usadas para generar el modelo matemático. Esta situación puede extenderse a sistemas con más ecuaciones. Para cuantificar el nivel de mal condicionamiento de un sistema se utilizan las siguientes definiciones:
3.4.1 Definiciones La norma de un vector o de una matriz es una manera de expresar la magnitud de sus componentes Sean X: vector de n componentes A: matriz de nxn componentes Algunas definiciones comunes para la norma n
n
X
xi
X
max xi ,i
1,2,...,n
X
i 1
i 1 n
A
x 2 )1/ 2
(
max
n
ai,j , j
1,2,...,n
A
max
i 1
n
ai,j ,i
1,2,...,n
j 1
A
n
ai,j2 )1/ 2
( i 1
j 1
Las dos primeras se denominan norma 1 y norma infinito, tanto para vectores como para matrices. La tercera es la norma euclideana. Ejemplo. Dada la siguiente matriz 5 3 2
A
4
8
4
2
6
1
Calcule la norma infinito (norma por fila). Esta norma es el mayor valor de la suma de las magnitudes de los componentes de cada fila Fila 1: |5| + |-3| + |2| = 10 Fila 2: |4| + |8| + |-4| = 16 Fila 3: |2| + |6| + |1| = 9 Por lo tanto, la norma por fila de la matriz es 16
3.4.2 Algunas Propiedades de Normas Sea A: matriz de nxn componentes. (También se aplican a vectores) a) A 0 b) kA =k A , k c) A B d) AB
A
B
A B
Ing. Luis Rodríguez Ojeda, MSc.
ANÁLISIS NUMÉRICO
ICM ESPOL
3.4.3 Número de condición El número de condición de una matriz es una definición para cuantificar su nivel de mal condicionamiento. Definición: Número de condición
Sea AX = B un sistema de ecuaciones lineales, entonces -1 cond(A) = || A || || A || es el número de condición de la matriz A. Si la matriz tiene filas “casi” linealmente dependientes, su determinante tomará un valor muy pequeño y su inversa tendrá valores muy grandes, siendo esto un indicio de que la matriz es mal condicionada o casi singular. Cotas para el número de condición: cond(A) = || A || || A -1 || || A A-1 || = || I || = 1 |A|
0
||A-1||
cond(A) 1
cond(A)
El número de condición no cambia si la matriz es multiplicada por alguna constante: cond(kA)=||kA|| ||(kA) -1|| = k ||A|| ||1/k A -1|| = k ||A|| 1/k ||A-1|| = ||A|| ||A -1||
Ejemplo.
0.010 0.005
A
0.025 0.032
;
B
1000A
A
Determinante Norma1 Norma1 de la inversa Número de condición
0.000195 0.0370 292.3077 10.8154
10
5
25 32 B
195 37 0.2923 10.8154
Si la matriz tiene valores muy pequeños, su determinante será muy pequeño, su inversa contendrá valores grandes y la norma de la matriz inversa también tendrá un valor grande. Si el número de condición solo dependiera de esta norma, tendría un valor grande aunque la matriz no sea mal condicionada. Por esto, y usando la propiedad anotada anteriormente, es necesario multiplicar por la norma de la matriz original para que el número de condición no dependa únicamente del determinante de esta matriz. Ejemplo. Calcule el número de condición de la matriz del ejemplo inicial
A =
A
1
2 3.01 4
6
,
150 75.25 100
50
, cond(A) = || A || || A-1 || = 2252.5 (número de condición grande)
Ing. Luis Rodríguez Ojeda, MSc.
ANÁLISIS NUMÉRICO
ICM ESPOL
Una matriz puede considerarse mal condicionada si una ligera variación en la matriz de coeficientes produce un cambio muy significativo en el vector solución. Para el ejemplo inicial de este capítulo, sean A: matriz original A’: matriz perturbada X: vector solución con la matriz original X’: vector solución con la matriz perturbada E: matriz o vector con la variación Porcentaje de variación de la matriz de coeficientes E = A’- A =
100 ||E ||
2
3.01
4.01
6
100(0.01)
2 3.01
-
4
6
=
0
0
0.01 0
1%
Porcentaje de variación en la solución: E = X’- X =
100||E ||
223.25 150.00
127.3894
-
=
86.3053
100(95.8606)
-95.8606 63.6947
95.86%
La variación en la solución es muy significativa respecto a la variación en la matriz de coeficientes. Se concluye que es un sistema mal condicionado.
3.4.4 El número de condición y el error en la solución calculada Sea el sistema de ecuaciones lineales AX = B Suponer que debido a errores de medición los coeficientes de la matriz A tienen un error E. Sea A A E , la matriz con los errores de medición, y suponer que el vector B es exacto Entonces, al resolver el sistema se tendrá una solución X diferente a la solución esperada X A X=B Es importante determinar cuan grande es la diferencia X X Combinando los sistemas AX = B y AX = B X = A 1B = A 1 ( AX ) = A 1 (A E)X = A 1A X A 1E X = I X A 1EX = X A 1E X
X = A 1EX
X
X
X
A
1
E X
X
X
A
1
A
E A
X
De donde, se puede escribir || X
X ||
|| X ||
cond(A)
|| E || ||A||
Cota para el error relativo en la solución
A es la matriz utilizada en el modelo matemático E es la matriz de perturbaciones o errores en la matriz de datos X es el vector solución calculado
Ing. Luis Rodríguez Ojeda, MSc.
ANÁLISIS NUMÉRICO
ICM ESPOL
La expresión establece que la magnitud del error relativo en la solución está relacionada con el error en los datos de la matriz y con el número de condición de la matriz A. El número de condición es un factor que amplifica al error en los datos E Ejemplo. Encuentre una cota para el error en la solución calculada para el ejemplo inicial.
Considere que la norma del error de la matriz de coeficientes es 0.01 Con la definición anterior: || X
X ||
|| X ||
cond(A)
|| E || ||A||
= 2252.5(
0.01 ) = 2.2525 = 225.25% 10
Lo cual significa que la respuesta pudiera variar en más del 100%, por lo tanto no se puede confiar en ninguno de los dígitos de la respuesta calculada.
3.4.5 Un procedimiento para calcular la inversa de una matriz Para calcular el número de condición de una matriz, se requiere conocer su inversa. Un algoritmo para encontrar esta matriz se puede obtener extendiendo el método de GaussJordan visto anteriormente. Sea A una matriz cuadrada cuyo determinante es diferente de cero. Sean t 1 , t 2 , . . . ,tm 1 , tm las transformaciones lineales del método de Gauss-Jordan que transforman la matriz A en la matriz identidad I:
t m t m-1 . . . t 2 t1 A = I Entonces se puede escribir t m t m-1 . . . t 2 t1 A
1
A = A 1I
t m t m-1 . . . t 2 t1 I = A
1
Lo cual significa que las mismas transformaciones que convierten A en la matriz I , convertirán la matriz I en la matriz A 1 . Para aplicar este algoritmo, si es de interés conocer la matriz A 1 se puede aumentar la matriz I a la matriz anterior : A| B|I Las transformaciones aplicadas simultáneamente proporcionarán el vector solución X y la matriz identidad A 1
Ing. Luis Rodríguez Ojeda, MSc.
ANÁLISIS NUMÉRICO
ICM ESPOL
Ejemplo. Con el Método de Gauss-Jordan resuelva el
sistema de ecuaciones siguiente y
simultáneamente obtenga la matriz inversa: 4x1
2x 2
5x3
18.00
2x1
5x2
8x3
27.30
2x1
4x 2
3x3
16.20
Solución. La matriz aumentada es:
A |B
4 2 5
18.00
1 0 0
2 5 8
27.30
0
2
16.20
0 0 1
4 3
1 1
Cálculos
Normalizar fila 1 y reducir filas 2 y 3 1.0000 0 0
0.5000 4.0000 3.0000
1.2500 5.5000 0.5000
4.5000 18.3000 7.2000
0.2500 -0.5000 -0.5000
0 0 1.0000 0 0 1.0000
Normalizar fila 2 y reducir filas 1 y 3 1.0000 0 0.5625 0 1.0000 1.3750 0 0 -3.6250
2.2125 4.5750 -6.5250
0.3125 -0.1250 0 -0.1250 0.2500 0 -0.1250 -0.7500 1.0000
Normalizar fila 3 y reducir filas 1 y 2 1.0000 0 0 0 1.0000 0 0 0 1.0000
1.2000 2.1000 1.8000
0.2931 -0.2414 0.1552 -0.1724 -0.0345 0.3793 0.0345 0.2069 -0.2759
Entonces la solución es 1.2 X
2.1 1.8
La matriz inversa A
1
0.2931
0.2414
0.1552
0.1724
0.0345
0.3793
0.0345
0.2069
0.2759
Ing. Luis Rodríguez Ojeda, MSc.
ANÁLISIS NUMÉRICO
ICM ESPOL
3.4.6 Funciones Especiales de MATLAB para Normas y Número de Condición Cálculo de normas de vectores y matrices en MATLAB Sea a un vector o una matriz norm(a, 1) norm(a, inf) cond(a, 1) cond(a, inf)
para obtener la norma 1 (norma de columna) para obtener la norma infinito (norma de fila) número de condición con la norma 1 número de condición con la norma infinito
Ejemplo. Calcule el número de condición de la matriz A
2 3.01 4
6
Escribimos en la pantalla de comandos de MATLAB: >> a=[2, 3.01; 4, 6]; >> norm(a,inf) ans = 10 >> inv(a) ans = -150.0000 75.2500 100.0000 -50.0000
(Matriz) (Norma de fila
>> cond(a,inf) ans = 2.2525e+003
(Calcular el número de condición)
(Obtención de la inversa)
(Matriz muy mal condicionada)
Ing. Luis Rodríguez Ojeda, MSc.