Documentos de Académico
Documentos de Profesional
Documentos de Cultura
9 de febrero de 2011
Índice
26.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
26.2. Factorización LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
26.3. Uso de la factorización LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
26.4. Obtención de la factorización LU con elementales . . . . . . . . . . . . . . . . . . . . . . . . . . 3
26.5. Factorización LU: ejemplo clave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
26.6. Complejidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
26.7. Factorización de P A = L U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
26.8. Notas generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
26.1. 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 susti-
tució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.
y1 = 11
5 y1 + y2 = 70
−2 y1 + 3 y2 + y3 = 17
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
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
0 0 0 1
Ası́ la situación está:
2 3 −1
0 3 3
E1 A =
4 18
= B1
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
E2 E1 A =
0 12
= B2
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
E 3 E 2 E1 A =
0 12
= B3
8
0 −6 −4
Observamos que el hipotético caso de que en
E3 E2 E1 A = B3
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
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 0 3 2
A = LU = 2
4 1 0 0 0 0
−1 −2 0 1 0 0 0
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.
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
26.6. 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,
U matriz escalonada n × m
que cumplen:
PA = LU
1. Tome P = In , L = 0, y U = 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 se tiene:
0 0 0 0
4 0 0 0
L1 = 5 0
,P = I
0 0
6 0 0 0
6
Estos cambios se registran en L1 y hasta el momento se tiene:
0 0 0 0
4 0 0 0
L2 = , P = P1
5 −5 0 0 2
6 8 0 0
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
A= 1 2 −2 1 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 obtiene la nueva matriz U:
1 2 −2 1 1
0 0 0 0 2
U1 = 0 −3
1 2 2
4 2 −8 8 9
5 1 −5 13 11
7
Aplicando la operación de intercambio a L0 y a P0 , se tiene:
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0
L1 = 0 0 0 0 0 , P1 = 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 1
2. Si aplicamos sobre U1 las operaciones de eliminación R4 → R4 − 4 R1 y R5 → R5 − 5 R1 se obtiene a la
nueva matriz U2 :
1 2 −2 1 1
0 0 0 0 2
U2 = 0 −3
1 2 2
0 −6 0 4 5
0 −9 5 8 6
Estos cambios se registran en L1 y hasta el momento se tiene:
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0
L2 = 0 0 0 0 0 , P2 =
1 0 0 0 0
4 0 0 0 0 0 0 0 1 0
5 0 0 0 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
U3 0 0 0 0 2
0 −6 0 4 5
0 −9 5 8 6
Aplicando la operación de intercambio a L2 y a P2 , se tiene:
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 0 0
L3 = 0 0 0 0 0 , P3 = 0 1 0 0 0
4 0 0 0 0 0 0 0 1 0
5 0 0 0 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
U4 = 0
0 0 0 2
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 1 0 0
0 0 0 0 0 1 0 0 0 0
L4 = 0 0 0 0 0 , P4 =
0 1 0 0 0
4 2 0 0 0 0 0 0 1 0
5 3 0 0 0 0 0 0 0 1
8
5. Si aplicamos sobre U4 la operación de intercambio R2 ↔ R3 se obtiene la nueva matriz U5 :
1 2 −2 1 1
0 −3 1 2 2
U5 = 0
0 −2 0 1
0 0 0 0 2
0 0 2 2 0
Estos cambios se registran en L4 y hasta el momento se tiene:
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 0 0
L5 = 4 2 0 0 0 , P5 =
0 0 0 1 0
0 0 0 0 0 0 1 0 0 0
5 3 0 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
U6 = 0
0 −2 0 1
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 1 0 0
0 0 0 0 0 1 0 0 0 0
L6 = 4 2
0 0 0 , P6 =
0 0 0 1 0
0 0 0 0 0 0 1 0 0 0
5 3 −1 0 0 0 0 0 0 1
7. Si aplicamos sobre U6 la operación de intercambio R4 ↔ R5 se obtiene la nueva matriz U7 :
1 2 −2 1 1
0 −3 1 2 2
U7 = 0 0 −2 0 1
0 0 0 2 1
0 0 0 0 2
Estos cambios se registran en L6 y hasta el momento se tiene:
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 0 0
L7 = 4 2
0 0 0 , P7 =
0 0 0 1 0
5 3 −1 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0 0 0
8. Puesto que la matriz U7 ya es escalonada, el procedimiento termina y finalizamos haciendo L = L7 + I y
se tiene:
1 2 −2 1 1 1 0 0 0 0
0 −3 1 2 2 0 1 0 0 0
U = U7 = 0
0 −2 0 1 , L = 4 2
1 0 0
0 0 0 2 1 5 3 −1 1 0
0 0 0 0 2 0 0 0 0 1
9
0 0 1 0 0
1 0 0 0 0
P = P7 =
0 0 0 1 0
0 0 0 0 1
0 1 0 0 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 R1 ↔ R4 se obtiene la nueva matriz U:
−2 1 1 −2
1 2
8
16 −18 8 9 −16
9 3 −13 21 20 −14
U1 = 0 −18
0 14 16 7
0 −3 1 2 2 1
10 −1 −21 28 32 −12
Aplicando la operación de intercambio a L0 y a P0 , se tiene:
0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0
L1 = 0 0 , P 1 =
0 0 0 0
1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 0 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 :
2 −2 1 1 −2
1
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 momento se tiene:
0 0 0 0 0 0 0 0 0 1 0 0
8 0 0 0 0 0 0 1 0 0 0 0
9 0 0 0 0 0 0 0 1 0 0 0
L2 =
0 0 0 , P2 =
0 0 0
1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0
10 0 0 0 0 0 0 0 0 0 0 1
10
3. Si aplicamos sobre U2 la operación de intercambio R2 ↔ R5 se obtiene la nueva matriz U3 :
2 −2 1 1 −2
1
0 −3 1 2 2 1
0 −15 5 12 11 4
U3 = 0 −18
0 14 16 7
0 0 −2 0 1 0
0 −21 −1 18 22 8
2 −2 1 1 −2
1
0 −3 1 2 2 1
0 0 −2 0 1 0
U5 =
0 0 −6 2 4 1
0 0 0 2 1 −1
0 0 −8 4 8 1
11
6. Si aplicamos sobre U5 las operaciones de eliminación R4 → R4 − 3 R3 y R6 → R6 − 3 R3 se obtiene a la
nueva matriz U6 :
2 −2 1 1 −2
1
0 −3 1 2 2 1
0 0 −2 0 1 0
U6 = 0
0 0 2 1 1
0 0 0 2 1 −1
0 0 0 4 4 1
Estos cambios se registran en L6 y hasta el momento se tiene:
0 0 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 1 0
8 0 0 0 0 0 0 1 0 0 0 0
L6 =
0 6 3
, P6 =
0 0 0
1 0 0 0 0 0
9 5 0 0 0 0 0 0 1 0 0 0
10 7 4 0 0 0 0 0 0 0 0 1
2 −2 1 1 −2
1
0 −3 1 2 2 1
0 0 −2 0 1 0
U8 =
0 0 0 2 1 1
0 0 0 0 2 −1
0 0 0 0 0 −2
12
9. Puesto que la matriz U8 ya es escalonada, el procedimiento termina y finalizamos haciendo L = L8 + I y
se tiene:
2 −2 1 1 −2
1 1 0 0 0 0 0
0 −3 1 2 2 1 0 1 0 0 0 0
0 0 −2 0 1 0
,L = 8 0
1 0 0 0
U = U8 = 0
0 0 2 1 1
0 6
3 1 0 0
0 0 0 0 2 −1 10 7 4 2 1 0
0 0 0 0 0 −2 9 5 0 1 0 1
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
Como ejercicio, compruebe que P A = L U
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