Factorización LU Departamento de Matemáticas, CCIR/ITESM 9 de febrero de 2011 Índice 26.1. Introducción . . . . . . . . . . . . . . 26.2. Factorización LU . . . . . . . . . . . 26.3. Uso de la factorización LU . . . . . . 26.4. Obtención de la factorización LU con 26.5. Factorización LU: ejemplo clave . . . 26.6. Complejidad . . . . . . . . . . . . . . 26.7. Factorización de P A = L U . . . . . 26.8. Notas generales . . . . . . . . . . . . 26.1. . . . . . . . . . . . . . . . . . . . . . elementales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 3 4 5 5 13 Introducción La factorización LU de una matriz es una factorización que resume el proceso de eliminación gaussiana aplicado a la matriz y que es conveniente en terminos del número total de operaciones de punto flotante cuando se desea calcular la inversa de una matriz o cuando se resolverá una serie de sistemas de ecuaciones con una misma matriz de coeficientes. En la lectura, primeramente consideraremos la factorización LU sin intercambio basada en matrices elementales y que es conocida como de Doolittle y posteriormente veremos el algoritmo que da la factorización PA = LU. 26.2. Factorización LU Suponga que la matriz A es una matriz m × n se puede escribir como el producto de dos matrices: A = LU donde L es una matriz triangular inferior m × m y U es una matriz escalonada m × n. Entonces para resolver el sistema: A x = b, escribimos A x = (L U) x = L (U x) . Una posible estrategia de solución consiste en tomar y = U x y resolver para y: L y = b. Como la matriz L es triangular superior este sistema puede resolverse mediante sustitución hacia abajo, lo cual se hace fácilmente en m2 FLOPS. Una vez con los valores encontrados de y, las incógnitas al sistema inicial se resuelve despejando x de U x = y. Nuevamente, como U es escalonada, este sistema puede resolverse en caso de tener soución mediante sustitución hacia atrás, lo cual es sencillo. Estas observaciones nos dan la pauta para ver la conveniencia de una factorización como la anterior, es decir factorizar A como el producto de una matriz L triangular superior, por otra U la cual es escalonada. Esta factorización se llama usualmente Descomposición LU. 26.3. Uso de la factorización LU Ejemplo 26.1 Use la factorización LU de A: 4 −2 1 1 0 0 4 −2 1 3 7 = LU A = 20 −7 12 = 5 1 0 0 −8 13 17 −2 3 1 0 0 −2 para despejar x del sistema: 11 A x = 70 = b 17 Solución Sea y = (y1 , y2 , y3 ) un nuevo vector de incógnitas. Primero resolveremos el sistema triangular inferior L y = b: 1 0 0 11 5 1 0 y = 70 −2 3 1 17 Este sistema escrito en su forma de ecuaciones queda: y1 = 11 5 y1 + y2 = 70 −2 y1 + 3 y2 + y3 = 17 Por eliminación directa de la: primera ecuación: y1 = 11, segunda ecuación: y2 = 70 − 5 y1 = 70 − 5 (11) = 15, y de la tercera: y3 = 17 + 2y1 − 3 y2 = 17 + 2 (11) − 3 (15) = −6. Ahora el sistema U x = y: 4 −2 1 11 0 3 7 x = 15 0 0 −2 −6 El cual escrito en su forma de ecuaciones queda: 4 x1 − 2 x2 + x3 = 11 3 x2 + 7 x3 = 15 − 2 x3 = −6 El cual al ser resuelto por sustitución hacia atrás queda: 2 de la última ecuación: x3 = 3, segunda ecuación: x2 = 5 − 7/3 x3 = 5 − 7/3 (3) = −2, y de la primera: x1 = 11/4 + 1/2x2 − 1/4 x3 = 11/4 + 1/2 (−2) − 1/4 (−3) = 1 26.4. Obtención de la factorización LU con elementales Ejemplo 26.2 Determine una factorización LU de la matriz: 2 3 −1 −6 −6 5 A= 4 18 6 −2 −9 −3 Solución La idea del método es ir acumulando las inversas de las operaciones hechas sobre los renglones la matriz para irla trasnformando en una matriz escalonada. Y más que propiamente las inversas de las operaciones sobre los renglones, las matrices elementales involucradas. Ası́ por ejemplo el primer cálculo que se realiza es hacer un cero debajo de el elemento (1, 1) que es el elemento 2, para ello debemos realizar la operación R2 ← R2 + 3R1 , esta operación tiene como matriz elemental la matriz: 1 0 0 0 3 1 0 0 E1 = 0 0 1 0 0 0 0 1 Ası́ la situación está: 2 3 −1 0 3 3 = B1 E1 A = 4 18 6 −2 −9 −3 En el siguiente paso del proceso de eliminación es R3 ← R3 −2R1 , esta operación tiene como matriz elemental la matriz: 1 0 0 0 0 1 0 0 E2 = −2 0 1 0 0 0 0 1 Ası́ la situación está: 2 3 −1 0 3 2 = B2 E2 E1 A = 0 12 8 −2 −9 −3 En el siguiente paso del proceso de eliminación es R4 ← R4 + R1 , esta operación tiene como matriz elemental la matriz: 1 0 0 0 0 1 0 0 E3 = 0 0 1 0 1 0 0 1 3 Ası́ la situación está: 2 3 −1 0 3 2 = B3 E 3 E 2 E1 A = 0 12 8 0 −6 −4 Observamos que el hipotético caso de que en E3 E2 E1 A = B3 La matriz B3 ya fuera escalonada, es decir la U buscada, entonces: A = E1 −1 E2 −1 E3 −1 U Lo cual indica que lo que debemos acumular son las inversas de las matrices elementales utilizadas. La forma sistemática de ir acumulando las inversas de las Ei s es ir contruyendo la matriz L: 1 0 0 0 −3 1 0 0 L= 2 ? 1 0 −1 ? ? 1 Ası́, en el avance de la conversión a escalonada de A: 2 3 −1 0 3 2 , A ∼ 0 12 8 0 −6 −4 2 0 ∼ 0 0 1 −3 L= 2 −1 0 1 ? ? 1 0 3 −1 −3 1 3 2 = U, L = 2 4 0 0 −1 −2 0 0 0 0 1 ? 0 0 1 ? 0 0 0 1 0 0 0 1 En este caso la matriz U está en la forma escalonada y por consiguiente el proceso se detiene haciendo cero aquellos valores desconocidos. Por consiguiente una factorización de A será: 1 0 0 0 2 3 −1 −3 1 0 0 2 0 3 A = LU = 2 4 1 0 0 0 0 −1 −2 0 1 0 0 0 26.5. Factorización LU: ejemplo clave Ejemplo 26.3 Determine una factorización LU de la matriz: 2 3 −1 −6 −6 5 A= 4 18 6 −2 −9 −3 Solución El método procede ası́. 4 La matriz L inicialmente es la matriz identidad con el mismo número de renglones de A. Si se utilizó la operación Ri → Ri + c Rj entonces en la posición (i, j) de L se coloca −c. La matriz U es la matriz que queda en al escalonar A. Si hubo necesidad de intercambiar renglones para escalonar, A NO admite una factorización L U. Digamos que con las operaciones siguientes 1. R2 → R2 + 3 R1 2. R3 → R3 − 2 R1 3. R4 → R4 + 1 R1 4. R3 → R3 − 4 R2 5. R4 → R4 + 2 R2 la matriz A se escalona y que queda: 2 0 A −→ 0 0 Entonces 1 0 0 −(3) 1 0 L= −(−2) −(−4) 1 −(1) −(2) 0 26.6. 3 −1 3 2 0 0 0 0 0 1 0 0 −3 1 = 0 2 4 1 −1 −2 0 0 1 0 0 0 y U= 0 1 2 0 0 0 3 −1 3 2 0 0 0 0 Complejidad Observe que para la obtención de la factorización LU se realiza la fase 1 del método de eliminación gaussiana. Por consiguiente, la complejidad del algoritmo de factorización LU será O(2/3 n3 ). Teniendo la factorización LU, la aplicación de la sustición hacia atrás o hacia adelante toman cada uno n2 . Por ello es que para resolver un solo sistema de ecuaciones no hay ventaja en utilizar la factorización LU. La ventaja aparece cuando se desean resolver varios sistemas de ecuaciones con la misma matriz de coeficientes. En la primera solución se determina la factorización LU, y en las siguientes bastará sustitución hacia adelante y hacia atrás. O sea que cada siguiente solución tomará sólo 2 n2 FLOPs contrario a los 2/3 n3 de eliminación gaussiana. 26.7. Factorización de P A = L U Frecuentemente, no es posible escalonar una matriz sólo con operaciones de eliminación. En estos casos se requiere realizar intercambio de renglones. Para este tipo de matrices no existe la factorización LU. Lo que aplica es la factorización P A = L U. Donde la matriz P es una matriz de permutación. Estas matrices de permutación se obtienen de la matriz identidad intercambiando renglones. La factorización P A = L U se obtiene de forma análoga a la factorización LU pero se lleva un registro de los renglones que se intercambian y se efectuan los intercambios en una matriz que registra los inversos de las operaciones de eliminación. Algoritmo de P A = L U Entrada: Matriz A n × m 5 Salida: P matriz de permutación n × n, L matriz triangular superior unitaria n × n (lii = 1), U matriz escalonada n × m que cumplen: PA = LU 1. Tome P = In , L = 0, y U = A. 2. Mientras que U no sea escalonada hacer 2.1. Aplicar una operación R de eliminación o de intercambio a U. 2.2. Si R es de la forma Ri ↔ Rj , entonces aplicar R a P y a L. 2.3. Si R es de la forma Ri ← Ri − a Rj ,entonces modificar L haciendo lij = a. 3. Tome L = L + In . Ejemplo 26.4 Determine una factorización P A = L U de la matriz 1 2 −2 1 4 5 −7 6 A= 5 25 −15 −3 6 −12 −6 22 Solución Tomemos U0 = A, P0 = I4 y L0 = 0. 1. Si aplicamos sobre U0 las operaciones de eliminación R2 → R2 − 4 R1 ,R3 → R3 − 5 R1 y R4 → R4 − 6 R1 se obtiene a la nueva matriz U1 : 1 2 −2 1 0 −3 1 2 U1 = 0 15 −5 −8 0 −24 6 16 Estos cambios se registran en L1 y hasta el momento 0 0 4 0 L1 = 5 0 6 0 se tiene: 0 0 0 0 ,P = I 0 0 0 0 2. Si aplicamos sobre U1 las operaciones de eliminación R3 → R3 + 5 R2 y R4 → R4 − 8 R2 se obtiene a la nueva matriz U2 : 1 2 −2 1 0 −3 1 2 U2 = 0 0 0 2 0 0 −2 0 6 Estos cambios se registran en L1 y hasta el momento 0 0 4 0 L2 = 5 −5 6 8 se tiene: 0 0 0 0 , P = P1 0 0 2 0 0 3. Si aplicamos sobre U2 la operación de intercambio R3 ↔ R4 se obtiene la nueva matriz U3 : 1 2 −2 1 0 −3 1 2 U3 = 0 0 −2 0 0 0 0 2 Aplicando la operación de intercambio a L2 y 0 0 4 0 L3 = 6 8 5 −5 a P2 , se tiene: 0 0 0 0 , P3 = 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 4. Puesto que la matriz U3 ya es escalonada, el procedimiento termina y se tiene: 1 2 −2 1 1 0 0 −3 1 2 4 1 U = U3 = ,L = 0 6 0 −2 0 8 0 0 0 2 5 −5 1 0 0 0 0 1 0 0 P = P3 = 0 0 0 1 0 0 1 0 Como ejercicio, compruebe que P A = L U Ejemplo 26.5 Determine una factorización P A = L U de la matriz 0 −3 1 2 2 0 0 0 0 2 2 −2 1 1 A= 1 4 2 −8 8 9 5 1 −5 13 11 Solución Tomemos U0 = A, P0 = I5 y L0 = 0. 1. Si aplicamos sobre U la operación de intercambio R1 ↔ R3 se 1 2 −2 1 0 0 0 0 1 2 U1 = 0 −3 4 2 −8 8 5 1 −5 13 7 0 0 1 0 finalizamos haciendo L = L3 + I y 0 0 0 0 1 0 0 1 obtiene la nueva matriz U: 1 2 2 9 11 Aplicando la operación de intercambio 0 0 L1 = 0 0 0 a L0 y a P0 , se tiene: 0 0 0 0 0 0 0 0 0 0 0 0 , P1 = 0 0 0 0 0 0 0 0 2. Si aplicamos sobre U1 las operaciones de eliminación R4 nueva matriz U2 : 1 2 −2 0 0 0 1 U2 = 0 −3 0 −6 0 0 −9 5 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 → R4 − 4 R1 y R5 → R5 − 5 R1 se obtiene a la 1 0 2 4 8 Estos cambios se registran en L1 y hasta el momento se tiene: 0 0 0 0 0 0 0 0 0 0 L2 = 0 0 0 0 0 , P2 = 4 0 0 0 0 5 0 0 0 0 1 2 2 5 6 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 3. Si aplicamos sobre U2 la operación de intercambio R2 ↔ R3 se obtiene la nueva matriz U3 : 1 2 −2 1 1 0 −3 1 2 2 0 0 0 2 U3 0 0 −6 0 4 5 0 −9 5 8 6 Aplicando la operación de intercambio 0 0 L3 = 0 4 5 a L2 y a P2 , se tiene: 0 0 0 0 0 0 0 0 0 0 0 0 , P3 = 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 Si aplicamos sobre U3 las operaciones de eliminación R4 → R4 − 2 R2 y R5 → R5 − 3 R2 se obtiene a la nueva matriz U4 : 1 2 −2 1 1 0 −3 1 2 2 0 0 0 2 U4 = 0 0 0 −2 0 1 0 0 2 2 0 Estos cambios se registran en L3 y hasta el momento se tiene: 0 0 0 0 0 0 0 0 0 0 L4 = 0 0 0 0 0 , P4 = 4 2 0 0 0 5 3 0 0 0 8 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 5. Si aplicamos sobre U4 la operación de intercambio R2 ↔ R3 1 2 −2 1 0 −3 1 2 0 −2 0 U5 = 0 0 0 0 0 0 0 2 2 Estos cambios se registran en L4 y hasta el momento se tiene: 0 0 0 0 0 0 0 0 0 0 L5 = 4 2 0 0 0 , P5 = 0 0 0 0 0 5 3 0 0 0 se obtiene la nueva matriz U5 : 1 2 1 2 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 6. Si aplicamos sobre U5 la operación de eliminación R5 → R5 + 1 R3 se obtiene a la nueva matriz U6 : 1 2 −2 1 1 0 −3 1 2 2 0 −2 0 1 U6 = 0 0 0 0 0 2 0 0 0 2 1 Estos cambios se registran en L6 y hasta el momento se tiene: 0 0 0 0 0 0 0 0 0 0 0 0 0 , P6 = L6 = 4 2 0 0 0 0 0 5 3 −1 0 0 7. Si aplicamos sobre U6 la operación de intercambio R4 ↔ R5 1 2 −2 1 0 −3 1 2 0 0 −2 0 U7 = 0 0 0 2 0 0 0 0 Estos cambios se registran en L6 y hasta el momento se tiene: 0 0 0 0 0 0 0 0 0 0 0 0 0 , P7 = L7 = 4 2 5 3 −1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 se obtiene la nueva matriz U7 : 1 2 1 1 2 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 8. Puesto que la matriz U7 ya es escalonada, el procedimiento termina y finalizamos haciendo L = L7 + I y se tiene: 1 0 0 0 0 1 2 −2 1 1 0 −3 0 1 1 2 2 0 0 0 0 −2 0 1 , L = 4 2 1 0 0 U = U7 = 0 0 5 3 −1 1 0 0 0 2 1 0 0 0 0 2 0 0 0 0 1 9 P = P7 = 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 Como ejercicio, compruebe que P A = L U Ejemplo 26.6 Determine una factorización P A = L U de la matriz 0 −18 0 14 16 7 8 16 −18 8 9 −16 9 3 −13 21 20 −14 A= 1 2 −2 1 1 −2 0 −3 1 2 2 1 10 −1 −21 28 32 −12 Solución Tomemos U0 = A, P0 = I5 y L0 = 0. 1. Si aplicamos sobre U la operación de intercambio 1 2 8 16 9 3 U1 = 0 −18 0 −3 10 −1 Aplicando la operación de intercambio 0 0 0 0 0 0 L1 = 0 0 0 0 0 0 R1 ↔ R4 se obtiene la nueva matriz U: −2 1 1 −2 −18 8 9 −16 −13 21 20 −14 0 14 16 7 1 2 2 1 −21 28 32 −12 a L0 y a P0 , se tiene: 0 0 0 0 0 0 0 0 0 0 0 0 , P = 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 2. Si aplicamos sobre U1 las operaciones de eliminación R2 → R2 − 8 R1 , R3 → R3 − 9 R1 y R6 → R6 − 10 R1 se obtiene a la nueva matriz U2 : 1 2 −2 1 1 −2 0 0 −2 0 1 0 0 −15 5 12 11 4 U2 = 0 −18 0 14 16 7 0 −3 1 2 2 1 0 −21 −1 18 22 8 Estos cambios se registran en L1 y hasta el 0 0 0 8 0 0 9 0 0 L2 = 0 0 0 0 0 0 10 0 0 momento se tiene: 0 0 0 0 0 0 0 0 0 , P2 = 0 0 0 0 0 0 0 0 0 10 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 3. Si aplicamos sobre U2 la operación de intercambio R2 1 2 −2 0 −3 1 0 −15 5 U3 = 0 −18 0 0 0 −2 0 −21 −1 Aplicando la operación de intercambio a L2 y 0 0 0 0 0 0 0 0 9 0 0 0 L3 = 0 0 0 0 8 0 0 0 10 0 0 0 ↔ R5 se obtiene la nueva matriz U3 : 1 1 −2 2 2 1 12 11 4 14 16 7 0 1 0 18 22 a P2 , se tiene: 0 0 0 0 0 0 , P3 = 0 0 0 0 0 0 0 0 0 1 0 0 8 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 4. Si aplicamos sobre U3 las operaciones de eliminación R3 → R3 − 5 R2 , R4 → R4 − 6 R2 y R6 → R6 − 7 R2 se obtiene a la nueva matriz U4 : 1 2 −2 1 1 −2 0 −3 1 2 2 1 0 0 0 2 1 −1 U4 = 0 0 −6 2 4 1 0 0 −2 0 1 0 0 0 −8 4 8 1 Estos cambios se registran en L3 y hasta el 0 0 0 0 0 0 9 5 0 L4 = 0 6 0 8 0 0 10 7 0 momento se tiene: 0 0 0 0 0 0 0 0 0 , P = 4 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 5. Si aplicamos sobre U4 la operación de intercambio R3 ↔ R5 se obtiene la nueva matriz U5 : 1 2 −2 1 1 −2 0 −3 1 2 2 1 0 0 −2 0 1 0 U5 = 0 −6 2 4 1 0 0 0 0 2 1 −1 0 0 −8 4 8 1 Aplicando la operación de intercambio a L4 y 0 0 0 0 0 0 0 0 8 0 0 0 L5 = 0 6 0 0 9 5 0 0 10 7 0 0 a P4 , se tiene: 0 0 0 0 0 0 , P5 = 0 0 0 0 0 0 11 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 6. Si aplicamos sobre U5 las operaciones de eliminación R4 nueva matriz U6 : 1 2 −2 1 0 −3 1 2 0 0 −2 0 U6 = 0 0 0 2 0 0 0 2 0 0 0 4 Estos cambios se registran en L6 y hasta el 0 0 0 0 0 0 8 0 0 L6 = 0 6 3 9 5 0 10 7 4 1 −2 2 1 1 0 1 1 1 −1 4 1 momento se tiene: 0 0 0 0 0 0 0 0 0 , P6 = 0 0 0 0 0 0 0 0 0 7. Si aplicamos sobre U6 las operaciones de eliminación R5 nueva matriz U7 : 1 2 −2 1 0 −3 1 2 0 0 −2 0 U7 = 0 0 0 2 0 0 0 0 0 0 0 0 Estos cambios se registran en L7 y hasta el 0 0 0 0 0 0 8 0 0 L7 = 0 6 3 9 5 0 10 7 4 → R4 − 3 R3 y R6 → R6 − 3 R3 se obtiene a la 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 → R5 − 1 R4 y R6 → R6 − 2 R4 se obtiene a la 1 −2 2 1 1 0 1 1 0 −2 2 −1 momento se tiene: 0 0 0 0 0 0 0 0 0 , P7 = 0 0 0 1 0 0 2 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 8. Si aplicamos sobre U7 la operación de intercambio R5 ↔ R6 se obtiene la nueva matriz U8 : 1 2 −2 1 1 −2 0 −3 1 2 2 1 0 0 −2 0 1 0 U8 = 0 0 2 1 1 0 0 0 0 0 2 −1 0 0 0 0 0 −2 Aplicando la operación de intercambio a L7 y 0 0 0 0 0 0 0 0 8 0 0 0 L8 = 0 6 3 0 10 7 4 2 9 5 0 1 a P7 , se tiene: 0 0 0 0 0 0 , P8 = 0 0 0 0 0 0 12 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 9. Puesto que la matriz U8 ya es escalonada, se tiene: 1 2 −2 0 −3 1 0 0 −2 U = U8 = 0 0 0 0 0 0 0 0 0 el procedimiento termina y 1 1 −2 1 0 0 1 2 2 1 0 1 0 ,L = 8 0 0 6 2 1 1 10 7 0 2 −1 0 0 −2 9 5 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 0 P = P8 = 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 finalizamos haciendo L = L8 + I y 0 0 0 0 0 0 0 0 1 0 0 0 3 1 0 0 4 2 1 0 0 1 0 1 Como ejercicio, compruebe que P A = L U 26.8. Notas generales A continuación hacermos algunos comentarios generales sobre la factorización LU y su uso. Nota 1 Existen maneras de programar el algoritmo anterior de forma tal que la matriz U y la matriz L queden en una misma matriz cuadrada. Un truco radica en que siendo todos los elementos de la diagonal de U unos, no se requiere el espacio para almacenarlos. También hay forma de programar el algoritmo para que la matriz de permutaciones P se represente por un sólo vector con n valores, con números de 1 al n, que indican cómo deben permutarse los renglones de la identidad. Esto es muy conveniente pues la matriz P es tal que de sus n2 valores todos son cero excepto n que son 1. Usando estas ideas el almacenamiento requerido por el algoritmo de factorización LU puede reducirse de 3 n2 a n2 + n números de punto flotante. Significando un ahorro de espacio aproximandamente 66 %. Nota 2 Si se posee una factorización A = L U de una matriz cuadrada invertible, entonces la inversa de A puede calcularse mediante A−1 = U−1 L−1 El costo de invertir una matriz triangular es de n3 FLOPs lo cual es más económico que invertir una matriz n × n cualquiera que es de 38 n3 FLOPs. Además de los costos para calcular L−1 y U−1 , habrı́a que calcular el producto el cual tiene un costo de n3 FLOPs. Esto nos hace llegar a la conclusión de que el cálculo único de A−1 haciendo uso de la factorización LU toma 3 n3 FLOPs que es más grande que los 38 n3 FLOPs que toma el procedimiento tradicional. Por ello es que no es conveniente esta estrategia de cálculo. Nota 3 Si se desea calcular A−1 B y se posee una factorización LU de A entonces puede aplicarse eliminación gaussiana en la reducción [L|B] → [I|D] aquı́ D = L−1 B lo cual tiene un costo computacional de n3 FLOPs utilizando que L es triangular. Seguido de esto, se aplica también eliminación gaussiana en la reducción [U|D] → [I|E] aquı́ E = U−1 D = U−1 L−1 B = A−1 B lo cual tiene un costo computacional de n3 FLOPs utilizando que U es triangular. Esto da como resultado un proceso de cálculo para A−1 B con un costo 2 n3 FLOPs teniendo disponible una factorización LU. 13 Nota 4 Las matrices de permutación P son fácilmente invertibles al cumplir la relación: P−1 = PT Además, normalmente no es conveniente realizar el producto P B que tiene un costo de n3 FLOPs sino más bien realizar el movimiento de renglones correspondiente. Y más que realizar el movimiento de renglones, se hacen trucos de programación para evitar tales movimientos teniendo un vector que refiere a los renglones de diferentes posiciones. 14