Computación Científica Gustavo Rodríguez Gómez INAOE Agosto Dicembre 2011 1 / 46
Capítulo II 2 / 46
1 Introducción Métodos Directos Sistemas Triangulares Sustitución Hacia Atrás Invertibilidad de una Matriz 2 Descomposición LU Notación Matricial Descomposición de A = LU Inestabilidad del Algoritmo de Descomposición LU 3 Referencias 3 / 46
Introducción Introducción Objetivo: Analizar los aspectos numéricos que se presentan al resolver sistemas de ecuaciones lineales de la forma a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2 a 31 x 1 + a 32 x 2 + + a 3n x n = b 3 (1) a n1 x 1 + a n2 x 2 + + a nn x n = b n. 4 / 46
Introducción Notación Matricial El sistema (1) se puede escribir en forma matricial como: a 11 a 12 a 1n x 1 b 1 a 21 a 22 a 2n x 2 b 2 a 31 a 32 a 3n x 3 = b 3...... a n1 a n2 a nn Meta: Construir un algoritmo de alcance general para resolver sistema de ecuaciones lineales.. x n. b n Denotando las matrices anteriores por A, x, b, la ecuación anterior se reduce a Ax = b 5 / 46
Introducción Ejemplos Entre los problemas que se reducen a la forma (2) se encuentran Discretización de ecuaciones integrales. La solución de (2) se puede escribir como x = A 1 b. En general nunca hay una buena razón para invertir una matriz, ésta operación es muy costosa. 6 / 46
Introducción Ejemplos Entre los problemas que se reducen a la forma (2) se encuentran Discretización de ecuaciones integrales. Linealización local de sistema de ecuaciones no lineales. La solución de (2) se puede escribir como x = A 1 b. En general nunca hay una buena razón para invertir una matriz, ésta operación es muy costosa. 7 / 46
Introducción Ejemplos Entre los problemas que se reducen a la forma (2) se encuentran Discretización de ecuaciones integrales. Linealización local de sistema de ecuaciones no lineales. Ajuste de datos por medio de polinomios, etc. La solución de (2) se puede escribir como x = A 1 b. En general nunca hay una buena razón para invertir una matriz, ésta operación es muy costosa. 8 / 46
Introducción Estrategias para Encontrar Soluciones Considere el siguiente ejemplo 7x = 21. Hay dos formas de encontrar su solución x = 21 7 = 3, x = (7) 1 (21) = 2.9999 9 / 46
Introducción Estrategias para Encontrar Soluciones Considere el siguiente ejemplo 7x = 21. Hay dos formas de encontrar su solución x = 21 7 = 3, x = (7) 1 (21) = 2.9999 La primera ecuación requiere una división, la segunda de una división y una multiplicación. 10 / 46
Métodos Directos Métodos Directos Las técnicas numéricas analizadas para encontrar la solución de (2) no requieren del cálculo de la matriz inversa, se llaman métodos directos. Métodos Directos de solución Ax = b, considere el siguiente sistema de ecuaciones lineales 10x 1 7x 2 = 7 3x 1 + 2x 2 + 6x 3 = 4 5x 1 x 2 + 5x 3 = 6 En notación matricial 10 7 0 3 2 6 5 1 5 x 1 x 2 x 3 = 7 4 6 11 / 46
Métodos Directos Solución Primer paso: Eliminar la variable x 1 de la segunda y tercera ecuación 3 10 10x 1 3 10 7x 2 = 3 10 7 3x 1 + 2x 2 + 6x 3 = 4 0 0.1x 2 + 6x 3 = 6.1 5 10 10x 1 5 10 7x 2 = 5 10 7 5x 1 x 2 + 5x 3 = 6 0 + 2.5x 2 + 5x 3 = 2.5 12 / 46
Métodos Directos Solución El sistema obtenido es 10x 1 7x 2 = 7 0.1x 2 + 6x 3 = 6.1 + 2.5x 2 + 5x 3 = 2.5 13 / 46
Métodos Directos Solución El sistema obtenido es 10x 1 7x 2 = 7 0.1x 2 + 6x 3 = 6.1 + 2.5x 2 + 5x 3 = 2.5 En notación matricial 10 7 0 0 0.1 6 0 2.5 5 x 1 x 2 x 3 = 7 6.1 2.5 14 / 46
Métodos Directos Solución Segundo paso: Eliminar la variable x 2 de la tercera ecuación, a partir de la segunda ecuación. Ya que el coeficiente de de x 2 de la segunda ecuación es pequeño en valor absoluto 0.1, intercambiamos las ecuaciones (2) y (3), esto es 10 7 0 0 2.5 5 0 0.1 6 x 1 x 2 x 3 = Procedemos a eliminar x 2 de la ecuación (3) 7 2.5 6.1 0.1 2.5 2.5x 2 + 0.1 2.5 5x 3 = 0.1 2.5 2.5 0.1x 2 + 6x 3 = 6.1 0 + 6.2x 3 = 6.2 15 / 46
Métodos Directos Solución El nuevo sistema obtenido es 10x 1 7x 2 = 7 2.5x 2 + 5x 3 = 2.1 6.2x 3 = 6.2 16 / 46
Métodos Directos Solución El nuevo sistema obtenido es 10x 1 7x 2 = 7 2.5x 2 + 5x 3 = 2.1 6.2x 3 = 6.2 En notación matricial 10 7 0 0 2.5 5 0 0 6.2 x 1 x 2 x 3 = 7 2.5 6.2 17 / 46
Métodos Directos Solución 1 A partir de la tercera ecuación encontramos el valor de x 3 = 1, sustituyéndolo en la segunda ecuación encontramos el valor de x 2 = 1, finalmente sustituímos este último valor en la primera ecuación para encontrar x 1 = 0. Hemos obtenido la solución del sistema Ax = b. 18 / 46
Métodos Directos Solución 1 A partir de la tercera ecuación encontramos el valor de x 3 = 1, sustituyéndolo en la segunda ecuación encontramos el valor de x 2 = 1, finalmente sustituímos este último valor en la primera ecuación para encontrar x 1 = 0. Hemos obtenido la solución del sistema Ax = b. 2 El método presentado se llama eliminación gaussiana y en general consiste de los siguientes pasos: 19 / 46
Métodos Directos Solución 1 A partir de la tercera ecuación encontramos el valor de x 3 = 1, sustituyéndolo en la segunda ecuación encontramos el valor de x 2 = 1, finalmente sustituímos este último valor en la primera ecuación para encontrar x 1 = 0. Hemos obtenido la solución del sistema Ax = b. 2 El método presentado se llama eliminación gaussiana y en general consiste de los siguientes pasos: 1 Eliminación hacia adelante. 20 / 46
Métodos Directos Solución 1 A partir de la tercera ecuación encontramos el valor de x 3 = 1, sustituyéndolo en la segunda ecuación encontramos el valor de x 2 = 1, finalmente sustituímos este último valor en la primera ecuación para encontrar x 1 = 0. Hemos obtenido la solución del sistema Ax = b. 2 El método presentado se llama eliminación gaussiana y en general consiste de los siguientes pasos: 1 Eliminación hacia adelante. 2 Substitución hacia atrás. 21 / 46
Sistemas Triangulares Sistemas Triangulares Definición Diremos que la matriz A = (a ij ) es triangular superior si a ij = 0 siempre que i > j. Sea A una matriz de orden n triangular superior tal que a ii = 0 para toda i = 1, 2,..., n y forme el sistema Ax = b: a 11 x 1 + a 12 x 2 + + a 1n 1 x n 1 + a 1n x n = b 1 a 22 x 2 + + a 2n 1 x n 1 + a 2n x n = b 2. a n 1n 1 x n 1 + a n 1n x n = b n 1 a nn x n = b n 22 / 46
Sistemas Triangulares Sistemas Triangulares A partir del sistema triangular obtenemos x n = b n a nn, x n 1 = b n 1 a n 1n x n a n 1n 1. 23 / 46
Sistemas Triangulares Sistemas Triangulares A partir del sistema triangular obtenemos x n = b n a nn, x n 1 = b n 1 a n 1n x n a n 1n 1. En general x k = b k n j=k+1 a kj x j a kk 24 / 46
Sustitución Hacia Atrás Sustitución Hacia Atrás Teorema (Sustitución hacia atrás) Dada una matriz A triangular superior de orden n con a ii = 0 para toda i = 1, 2,..., n, y el n-vector b. La solución x de Ax = b es obtenida por for k n to 1 do x k b k n j=k+1 a kj x j a kk cuando k = n las sumatoria n j=n+1 la tomamos con valor 0. El algoritmo de sustitución hacia atrás requiere alrededor de n 2 /2 multiplicaciones. 25 / 46
Invertibilidad de una Matriz Innvertibilidad de una Matriz Teorema Una matriz A triangular superior es invertible todos los elementos de su diagonal son diferentes de cero. 26 / 46
Descomposición LU Descomposición LU Algoritmo de eliminación gaussiana proporciona una estrategia para descomponer una matriz A como el producto de dos matrices A = LU, donde L es una matriz triangular inferior y U es triangular superior. 27 / 46
Descomposición LU Notación Matricial Notación Matricial Eliminación Gaussiana La descomposición de la matriz A como el producto de dos matrices se observa fácilmente si el algoritmo de eliminación gaussiana es puesto en notación matricial. En el primer ejemplo, definimos M 1 = 1 0 0 3 10 1 0 5 10 0 1, Si A y b son las matrices del primer ejemplo, obtenemos 10 7 0 7 M 1 A = 0 0.1 6, M 1 b = 6.1 0 2.5 5 2.5 La matriz M 1 A corresponde a la matriz del sistema obtenido después de eliminar x 1 de las ecuaciones 2 y 3. 28 / 46
Descomposición LU Notación Matricial Notación Matricial Eliminación Gaussiana El intercambio del renglón tres con el dos de la matriz M 1 A se hace a través de la matriz identidad permutando esos renglones, P 2. La variable x 2 se elimina por medio de la matriz M 2 P 2 = M 2 P 2 M 1 }{{} L 1 A = 1 0 0 0 0 1 0 1 0, M 2 = } {{ } U 1 0 0 0 1 0 0 0.04 1 Sistema triangular obtenido equivalente al original 10 7 0 0 2.5 5, M 2 P 2 M 1 b = 0 0 6.2 7 2.5 6.2 29 / 46
Descomposición LU Descomposición de A = LU Descomposición de A 1 La matriz A queda descompuesta como el producto de dos matrices A = M1 1 P2 1 M2 1 U = LU, }{{} L la matriz L es triangular inferior y U triangular superior. 30 / 46
Descomposición LU Descomposición de A = LU Descomposición de A 1 La matriz A queda descompuesta como el producto de dos matrices A = M1 1 P2 1 M2 1 U = LU, }{{} L la matriz L es triangular inferior y U triangular superior. 2 La inversa de las matrices de permutación son ellas mismas. 31 / 46
Descomposición LU Descomposición de A = LU Descomposición de A 1 La matriz A queda descompuesta como el producto de dos matrices A = M1 1 P2 1 M2 1 U = LU, }{{} L la matriz L es triangular inferior y U triangular superior. 2 La inversa de las matrices de permutación son ellas mismas. 3 La inversa de las matrices tipo M es M con los elementos bajo la diagonal cambiados de signo. 32 / 46
Descomposición LU Descomposición de A = LU Descomposición de A en LU Finalmente la factorización es le siguiente 10 7 0 1 0 0 3 2 6 = 3 10 0.04 1 5 5 1 5 10 1 0 }{{} L 10 7 0 0 2.5 5 0 0 6.2 } {{ } U 33 / 46
Descomposición LU Descomposición de A = LU Descomposición de A en LU Hecho En general si A es una matriz n n, podemos encontrar una matriz M triangular inferior y una matriz U triangular superior definidas por M = M n 1 P n 1 M 2 P 2 M 1 P 1, A = (M n 1 P n 1 M 2 P 2 M 1 P 1 ) 1 U, ó }{{} L U = MA 34 / 46
Descomposición LU Descomposición de A = LU Descomposición de A en LU P k es la matriz identidad, permutando sus renglones en igual forma que se intercambiaron los de la matriz A. M k es la matriz identidad modificada insertando los multiplicadores" usados en el k-ésimo paso justo abajo de la diagonal de la k-ésima columna. U es una matriz triangular superior, y el sistema Ux = Mb se resuelve por medio del algoritmo 1, y da la solución del sistema original. Ax = b 35 / 46
Descomposición LU Descomposición de A = LU Descomposición de A en LU Los elementos en la diagonal de la matriz U se llaman pivotes. Si alguno de los pivotes es cero el algoritmo no se puede realizar. Si algún pivote es casi cero el algoritmo de eliminación gaussiana tendrá problemas. 36 / 46
Descomposición LU Inestabilidad del Algoritmo de Descomposición LU Ejemplo de Inestabilidad Ejemplo Supóngase que estamos en un sistema de punto flotante F con β = 10, n = 5 y truncamiento. Considere el siguiente sistema de ecuaciones lineales 10 7 0 3 2.099 6 5 1 5 la solución exacta es (0, 1, 1) t. x 1 x 2 x 3 = 7 3.901 6, 37 / 46
Descomposición LU Inestabilidad del Algoritmo de Descomposición LU Primer Paso Eliminación Gaussiana Solución Primer paso de la eliminación gaussiana, eliminamos x 1 de la segunda y tercera ecuación, obtenemos 10 7 0 x 1 7 0 1 10 3 6 x 2 = 6.001 0 2.5 5 x 3 2.5 38 / 46
Descomposición LU Inestabilidad del Algoritmo de Descomposición LU Segundo Paso Eliminación Gaussiana Solución Segundo paso de la eliminación gaussiana, eliminamos la variable x 2 de la tercera ecuación. El multiplicador seleccionado es 2.5/10 3, obtenemos 10 7 0 0 1 10 3 6 0 0 1.5005 x 1 x 2 x 3 = 7 6.001 1.5005 39 / 46
Descomposición LU Inestabilidad del Algoritmo de Descomposición LU Tercer Paso Eliminación Gaussiana Solución Tercer paso de la eliminación gaussiana, sustitución hacia atrás, obtenemos (x 1, x 2, x 3 ) T = ( 0.35, 1.5, 0.99993) T, solución muy diferente de la exacta (0, 1, 1) T. 40 / 46
Descomposición LU Inestabilidad del Algoritmo de Descomposición LU Análisis del Error 1 Qué origino una solución errónea? 41 / 46
Descomposición LU Inestabilidad del Algoritmo de Descomposición LU Análisis del Error 1 Qué origino una solución errónea? 2 No hay acumulación de errores de redondeo. 42 / 46
Descomposición LU Inestabilidad del Algoritmo de Descomposición LU Análisis del Error 1 Qué origino una solución errónea? 2 No hay acumulación de errores de redondeo. 3 La matriz no está próxima a ser singular. 43 / 46
Descomposición LU Inestabilidad del Algoritmo de Descomposición LU Análisis del Error 1 Qué origino una solución errónea? 2 No hay acumulación de errores de redondeo. 3 La matriz no está próxima a ser singular. 4 Problema. Existe un problema de inestabilidad en el algoritmo, originado por seleccionar un multiplicador grande: 2.5 10 3. 44 / 46
Descomposición LU Inestabilidad del Algoritmo de Descomposición LU Pivoteo Parcial Hecho Si los multiplicadores son en valor absoluto 1, entonces la solución encontrada por el algoritmo de eliminació gaussiana es buena. Hecho Esta técnica se llama pivoteo parcial: en el k-ésimo paso de la eliminación hacia adelante, el pivote se escoge como el elemento más grande en valor absoluto que se encuentre en la k-ésima columna no reducida. El renglón que contiene este pivote se intercambia con el k-ésimo (renglón) para colocar al pivote en la posición (k, k). Este intercambio se hace también en el vector b. 45 / 46
Referencias Referencias Forsythe, George E., et al., Computer Methods for Mathematical Computations, Prentice Hall, Inc., 1977, ISBN 0-13-165332-6. Shampine, L. F., et al., Fundamentals of Numerical Computing, John Wiley & Sons, Inc., 1977, ISBN 0-471-16363-5. 46 / 46