Está en la página 1de 7

2.

2 La factorización LU ³ 79

2.1 Problemas de computadora

1. Reúna los fragmentos de código presentados en esta sección para crear un programa en Matlab
que realice la eliminación gaussiana “simple” (es decir, sin permitir el intercambio de renglones).
Úselo para resolver los sistemas del ejercicio 2.
2. Sea H la matriz de Hilbert de n  n, cuya entrada (i, j) es 1/(i  j  1). Utilice el programa en
Matlab del problema de computadora 1 para resolver Hx  b, donde b es un vector que contiene
sólo unos, para (a) n  2 (b) n  5 (c) n  10.

2.2 LA FACTORIZACIÓN LU
Si se lleva la idea de la forma tabular un paso adelante, se llega a la forma matricial de un sistema de
ecuaciones. A largo plazo, la forma matricial ahorrará tiempo por la simplificación de los algoritmos y
su análisis.

2.2.1 Forma matricial de la eliminación gaussiana


El sistema (2.1) puede escribirse como Ax  b en forma de matriz, o
    
1 1 x1 3
= . (2.10)
3 −4 x2 2

Por lo general, se indicará la matriz de coeficientes con A y el vector del lado derecho con b.
En la forma matricial de los sistemas de ecuaciones, se interpreta x como un vector columna y Ax
como la multiplicación matriz-vector. Se desea encontrar una x de tal forma que el vector Ax sea
igual al vector b. Por supuesto, esto es equivalente a que Ax y b coincidan en todos sus componen-
tes, que es exactamente lo que requiere el sistema original (2.1).
La ventaja de escribir los sistemas de ecuaciones en forma matricial es que pueden utilizarse
operaciones con matrices, como la multiplicación de matrices, a fin de dar seguimiento de los pasos
de la eliminación gaussiana. La factorización LU es una representación matricial de esta elimina-
ción. Consiste en escribir la matriz de coeficientes A como un producto de una matriz triangular
inferior L y una matriz triangular superior U. La factorización LU es una versión de la eliminación
gaussiana surgida de una larga tradición en ciencia e ingeniería: fragmentar un objeto complicado
en partes más simples.

DEFINICIÓN 2.2 Una matriz L de m  n es triangular inferior si sus entradas satisfacen lij  0 para i  j. Una
matriz U de m  n es triangular superior si sus entradas satisfacen uij  0 para i j. U

EJEMPLO 2.4 Encuentre la factorización LU para la matriz A (2.10).


Los pasos de la eliminación son los mismos que para la forma tabular estudiada anteriormente:
  × renglón
RESTE 33  rENGLØ N 11  
1 1 resta 1 1
−→ from row 2 −→ = U.
3 −4 del renglón 2 0 −7
(2.11)
La diferencia es que ahora se almacena el multiplicador 3 utilizado en el paso de eliminación.
Tenga en cuenta que se ha definido U como la matriz triangular superior que muestra el resultado
de la eliminación gaussiana. Defina L como la matriz triangular inferior de 2  2 con unos en la
diagonal principal y el multiplicador 3 en la ubicación (2,1):
 
1 0
.
3 1
80 ³ CAPÍTULO 2 Sistemas de ecuaciones

A continuación, compruebe que


    
1 0 1 1 1 1
LU = = = A. (2.12)
3 1 0 −7 3 −4

En breve se analizará la razón por la que esto funciona, pero primero deben mostrarse los
pasos con un ejemplo de 3  3.

EJEMPLO 2.5 Encuentre la factorización LU de


⎡ ⎤
1 2 −1
A = ⎣ 2 1 −2 ⎦. (2.13)
−3 1 1

Ésta es la matriz de coeficientes del sistema (2.4). Los pasos de la eliminación proceden de la
misma forma que antes:

⎡ ⎤ ⎡ ⎤
1 2 −1 RESTE 2 2×RENGLØ N1 1 1 2 −1
⎣ 2 resta  renglón
1 −2 ⎦ −→ DEL rEN 2 −→ ⎣ 0 −3 0 ⎦
del renglón 2
−3 1 1 −3 1 1
⎡ ⎤
−3 
RESTE 3 × renglón
rENGLØ N 11 1 2 −1
resta
−→ from row 3 −→ ⎣ 0 −3 0 ⎦
del renglón 3
0 7 −2
⎡ ⎤
− 73 −
subtract
resta
7
× row 22
3renglón 1 2 −1
−→ from row 3 −→ ⎣ 0 −3 0 ⎦ = U.
del renglón 3 0 0 −2

La matriz triangular inferior L está formada, como en el ejemplo anterior, al poner unos en la dia-
gonal principal y los multiplicadores en el triángulo inferior, en las posiciones específicas que se
utilizaron para la eliminación. Esto es,
⎡ ⎤
1 0 0
L=⎣ 2 1 0 ⎦. (2.14)
−3 − 73 1

Por ejemplo, observe que 2 es la entrada (2, 1) de L, porque fue el multiplicador utilizado para
eliminar la entrada (2, 1) de A. Ahora verifique que
⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 1 2 −1 1 2 −1
⎣ 2 1 0 ⎦⎣ 0 −3 0 ⎦=⎣ 2 1 −2 ⎦ = A. (2.15)
−3 − 73 1 0 0 −2 −3 1 1

La razón de que este procedimiento proporcione la factorización LU se deriva de tres hechos


sobre las matrices triangulares inferiores.

HECHO 1 Sea Lij(c) la matriz triangular inferior, cuyas únicas entradas diferentes de cero son unos en la
diagonal principal y c en la posición (i, j). Entonces A A Lij(c)A representa la operación por
renglón “restar c veces el renglón j del renglón i”.
2.2 La factorización LU ³ 81

Por ejemplo, la multiplicación por L21(c) resulta en


⎡ ⎤ ⎡ ⎤⎡ ⎤
a11 a12 a13 1 0 0 a11 a12 a13
A = ⎣ a21 a22 a23 ⎦ −→ ⎣ −c 1 0 ⎦ ⎣ a21 a22 a23 ⎦
a31 a32 a33 0 0 1 a31 a32 a33
⎡ ⎤
a11 a12 a13
= ⎣ a21 − ca11 a22 − ca12 a23 − ca13 ⎦ . U
a31 a32 a33

HECHO 2 Lij(c)1  Lij(c).


Por ejemplo,
⎡ ⎤−1 ⎡ ⎤
1 0 0 1 0 0
⎣ −c 1 0 ⎦ =⎣ c 1 0 ⎦.
0 0 1 0 0 1

Usando los hechos 1 y 2, es posible entender la factorización LU del ejemplo 2.4. Puesto que el
paso de eliminación puede representarse mediante
    
1 0 1 1 1 1
L21 (−3)A = = ,
−3 1 3 −4 0 −7

se pueden multiplicar ambos lados de la izquierda por L21(3)1 para obtener


    
1 1 1 0 1 1
A= = ,
3 −4 3 1 0 −7 U
que es la factorización LU de A.
Para manejar matrices de n  n para n 2, se necesita un hecho más.

HECHO 3 Se cumple la siguiente ecuación de producto matricial.


⎡ ⎤⎡ ⎤⎡ ⎤ ⎡ ⎤
1 1 1 1
⎣ c1 1 ⎦⎣ 1 ⎦⎣ 1 ⎦ = ⎣ c1 1 ⎦.
1 c2 1 c3 1 c2 c3 1
Este hecho permite reunir las Lij inversas en una matriz, que se convierte en la L de la factori-
zación LU. Para el ejemplo 2.5, esto equivale a
⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤ ⎡ ⎤
1 1 1 1 2 −1 1 2 −1
⎣ 1 ⎦ ⎣ 1 ⎦ ⎣ −2 1 ⎦ ⎣ 2 1 −2 ⎦ = ⎣ 0 −3 0 ⎦ = U
7
3 1
3 1 1 −3 1 1 0 0 −2
⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤
1 1 1 1 2 −1
A = ⎣ 2 1 ⎦⎣ 1 ⎦⎣ 1 ⎦ ⎣ 0 −3 0 ⎦
1 −3 1 − 73 1 0 0 −2
⎡ ⎤⎡ ⎤
1 1 2 −1
= ⎣ 2 1 ⎦ ⎣ 0 −3 0 ⎦ = LU . (2.16)
−3 − 73 1 0 0 −2 U

2.2.2 Sustitución hacia atrás con la factorización LU


Ahora que se ha expresado el paso de eliminación de la eliminación gaussiana como un producto
matricial LU, ¿cómo puede traducirse el paso de sustitución hacia atrás? Más importante aún,
¿cómo puede obtenerse la solución x?
82 ³ CAPÍTULO 2 Sistemas de ecuaciones

Una vez que se conocen L y U, el problema Ax  b puede escribirse como LUx  b. Defina
un nuevo vector “auxiliar” c  Ux. Entonces, la sustitución hacia atrás es un procedimiento de dos
pasos:
(a) Resolver Lc  b para c.
(b) Resolver Ux  c para x.
Ambos pasos son directos puesto que L y U son matrices triangulares. Esto se demuestra con
los dos ejemplos utilizados previamente.

EJEMPLO 2.6 Resuelva el sistema (2.10), utilizando la factorización LU (2.12).


El sistema tiene factorización LU
    
1 1 1 0 1 1
= LU =
3 −4 3 1 0 −7

a partir de (2.12), y el lado derecho es b [3, 2]. El paso (a) es


    
1 0 c1 3
= ,
3 1 c2 2

que corresponde al sistema


c1 + 0c2 = 3
3c1 + c2 = 2.
Comenzando en la parte superior, las soluciones son c1  3, c2  7.
El paso (b) es
    
1 1 x1 3
= ,
0 −7 x2 −7

que corresponde al sistema


x1 + x2 = 3
−7x2 = −7.
Comenzando en la parte inferior, las soluciones son x2  1, x1  2. Lo anterior concuerda con el
cálculo “clásico” de la eliminación gaussiana realizado antes.

EJEMPLO 2.7 Resuelva el sistema (2.4), utilizando la factorización LU (2.15).


El sistema tiene factorización LU
⎡ ⎤ ⎡ ⎤⎡ ⎤
1 2 −1 1 0 0 1 2 −1
⎣ 2 1 −2 ⎦ = LU = ⎣ 2 1 0 ⎦ ⎣ 0 −3 0 ⎦
−3 1 1 −3 − 3 1
7 0 0 −2

a partir de (2.15), y b  (3, 3, 6). El paso de Lc  b es


⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 c1 3
⎣ 2 1 0 ⎦ ⎣ c2 ⎦ = ⎣ 3 ⎦ ,
−3 − 3 17 c3 −6

que corresponde al sistema


c1 = 3
2c1 + c2 = 3
7
−3c1 − c2 + c3 = −6.
3
2.2 La factorización LU ³ 83

Comenzando en la parte superior, las soluciones son c1  3, c2  3, c3  4.


El paso Ux  c es
⎡ ⎤⎡ ⎤ ⎡ ⎤
1 2 −1 x1 3
⎣ 0 −3 0 ⎦ ⎣ x2 ⎦ = ⎣ −3 ⎦ ,
0 0 −2 x3 −4

que se corresponde al sistema

x1 + 2x2 − x3 = 3
−3x2 = −3
−2x3 = −4,

y se resuelve de abajo hacia arriba para obtener x  [3, 1, 2].

2.2.3 Complejidad de la factorización LU


Ahora que se ha analizado el “cómo” de la factorización LU, a continuación se presentan algunos
conceptos acerca del “porqué”. La eliminación gaussiana clásica involucra tanto a A como a b en
el paso de eliminación dentro del cálculo. Por mucho, ésta es la parte más compleja del proceso,
como ya se ha visto. Ahora, suponga que es necesario resolver una serie de problemas distintos con
la misma A y diferente b. Es decir, se presenta la serie de problemas

Ax = b1
Ax = b2
..
.
Ax = bk

con varios vectores bi del lado derecho. La eliminación gaussiana clásica requiere aproximada-
mente 2kn3/3 operaciones, donde A es una matriz de n  n, puesto que debe comenzarse desde
el principio para cada problema. Por otro lado, con el enfoque LU las bi (i  1,…, k) del lado
derecho no entran en los cálculos hasta que se termina la eliminación (la factorización A  LU).
Al aislar los cálculos que involucran a A de bi, puede resolverse la serie anterior de ecuaciones
con una sola eliminación, seguida de dos sustituciones hacia atrás (Lc  bi, Ux  c) para cada
nueva bi. El número aproximado de operaciones con el enfoque LU es, por lo tanto, 2n3/3  2kn2.
Cuando n2 es pequeña en comparación con n3 (es decir, cuando n es grande), ésta es una diferen-
cia significativa.
Incluso cuando k  1, no hay algún trabajo de cálculo adicional que realice el enfoque A 
LU, en comparación con la eliminación gaussiana clásica. Aunque parece haber una sustitución

ANOTACIÓN Resumen La razón principal de la existencia del enfoque de factorización LU para la eliminación
gaussiana es la ubicuidad de problemas con la forma Ax  b1, Ax  b2 … Con frecuencia, A es lo que se
denomina una matriz estructural, dependiendo sólo del diseño de un sistema mecánico o dinámico, y
b corresponde a un “vector de carga”. En ingeniería estructural, el vector de carga proporciona las fuer-
zas aplicadas en diferentes puntos de la estructura. Entonces, la solución x corresponde a los esfuerzos
sobre la estructura inducidos por esa combinación particular de cargas. La solución repetida de Ax 
b para las diversas b se utiliza para probar los posibles diseños estructurales. En la comprobación en la
realidad 2 se presenta este análisis para la carga de una viga.
84 ³ CAPÍTULO 2 Sistemas de ecuaciones

hacia atrás extra que no forma parte de la eliminación gaussiana clásica, estos cálculos “extras”
remplazan justo los cálculos ahorrados durante la eliminación debido a que la b del lado derecho
estaba ausente.
Si todas las bi estuvieran disponibles al principio, podrían resolverse los k problemas de ma-
nera simultánea en el mismo número de operaciones. Sin embargo, en las aplicaciones típicas,
se solicita resolver algunos de los problemas Ax  bi, antes de que otras bi estén disponibles. El
enfoque LU permite un manejo eficiente de todos los problemas presentes y futuros que involucren
la misma matriz de coeficientes A.

EJEMPLO 2.8 Suponga que se necesita un segundo para factorizar la matriz A de 300  300 como A  LU.
¿Cuántos problemas Ax  b1, … , Ax  bk pueden resolverse en el siguiente segundo?
Las dos sustituciones hacia atrás para cada bi requieren un total de 2n2 operaciones. Por lo
tanto, el número aproximado de bi que puede manejarse por segundo es
2n3
n
3
= = 100.
2n2 3
La factorización LU es un paso importante hacia delante en la búsqueda de una ejecución eficaz de
la eliminación gaussiana. Lamentablemente, no toda matriz permite tal factorización.
 
0 1
EJEMPLO 2.9 Demuestre que A = 1 1
no tiene una factorización LU.

La factorización debe tener la forma


      
0 1 1 0 b c b c
= = .
1 1 a 1 0 d ab ac + d

Al igualar los coeficientes se obtiene b  0 y ab  1, que es una contradicción.


El hecho de que no todas las matrices tengan una factorización LU significa que se requiere
más trabajo antes de poder declarar que la factorización LU es un algoritmo general para la elimi-
nación gaussiana. El problema relacionado de dominancia se describe en la siguiente sección. En
la sección 2.4 se presenta la factorización PA  LU, que da solución a ambos problemas.

2.2 Ejercicios

1. Encuentre la factorización LU de las matrices dadas. Compruebe mediante la multiplicación de


matrices.
1 2 1 3 3 −4
(a) (b) (c)
3 4 2 2 −5 2

2. Encuentre la factorización LU de las matrices dadas. Compruebe mediante la multiplicación de


matrices. ⎡ ⎤
⎡ ⎤ ⎡ ⎤ 1 −1 1 2
3 1 2 4 2 0 ⎢ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ 0 2 1 0 ⎥
(a) ⎣ 6 3 4 ⎦ (b) ⎣ 4 4 2 ⎦ (c) ⎢ ⎥
⎣ 1 3 4 4 ⎦
3 1 5 2 2 3
0 2 1 −1

3. Resuelva el sistema encontrando la factorización LU y después realice la sustitución hacia atrás


en dos pasos.

3 7 x1 1 2 3 x1 1
(a) = (b) =
6 1 x2 −11 4 7 x2 3
2.3 Fuentes de error ³ 85

4. Resuelva el sistema encontrando la factorización LU y después realice la sustitución hacia atrás


en dos pasos.
⎡ ⎤⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
3 1 2 x1 0 4 2 0 x1 2
⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
(a) ⎣ 6 3 4 ⎦ ⎣ x2 ⎦ = ⎣ 1 ⎦ (b) ⎣ 4 4 2 ⎦ ⎣ x2 ⎦ = ⎣ 4 ⎦
3 1 5 x3 3 2 2 3 x3 6

5. Resuelva la ecuación Ax  b, donde


⎡ ⎤⎡ ⎤ ⎡ ⎤
1 0 0 0 2 1 0 0 1
⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ 0 1 0 0 ⎥⎢ 0 1 2 0 ⎥ ⎢ 1 ⎥
A=⎢ ⎥⎢ ⎥ ªªªY b= ⎢ ⎥.
⎣ 1 3 1 0 ⎦⎣ 0 0 −1 1 ⎦ ⎣ 2 ⎦
4 1 2 1 0 0 0 1 0

6. Dada la matriz A de 1000  1000, su computadora puede resolver los 500 problemas Ax  b1, … ,
Ax  b500 en exactamente un minuto, utilizando los métodos de factorización A  LU. ¿Cuánto de
ese minuto su computadora estará trabajando en la factorización A  LU? Redondee su respuesta
al segundo más cercano.
7. Suponga que su computadora puede resolver 1000 problemas del tipo Ux  c, donde U es una
matriz triangular superior de 500  500, cada segundo. Calcule cuánto tiempo se tardará en re-
solver el problema completo de la matriz Ax  b de 5000  5000. Dé su respuesta en minutos y
segundos.
8. Suponga que su computadora puede resolver un sistema lineal Ax  b de 2000  2000 en 0.1
segundos. Estime el tiempo requerido para resolver 100 sistemas de 8000 ecuaciones con 8000
incógnitas, con la misma matriz de coeficientes y utilizando el método de factorización LU.
9. Sea A una matriz de n  n. Suponga que su computadora puede resolver 100 problemas Ax  b1,
… , Ax  b100 mediante el método LU en la misma cantidad de tiempo requerida para resolver el
primer problema Ax  b0. Estime n.

2.2 Problemas de computadora

1. Utilice los fragmentos de código para la eliminación gaussiana que se han presentado en la
sección previa, con el fin de escribir un script de Matlab que tome una matriz A como entra-
da y a L y U como salida. No se permiten intercambios renglones, el programa debe diseñarse
para detenerse si encuentra un pivote cero. Verifique su programa al factorizar las matrices del
ejercicio 2.
2. Añada la sustitución hacia atrás en dos pasos a su script del problema de computadora 1, y utilí-
celo para resolver los sistemas del ejercicio 4.

2.3 FUENTES DE ERROR

Como se ha descrito hasta ahora, en la eliminación gaussiana existen dos fuentes potenciales de
error principales. El concepto de mal condicionamiento se refiere a la sensibilidad de la solución a
los datos de entrada. Se analizará el número de condición, utilizando los conceptos de error hacia
atrás y hacia delante del capítulo 1. Puede hacerse muy poco para evitar errores de cálculo en la
solución de ecuaciones matriciales mal condicionadas, por lo que es importante tratar de reconocer
y evitar las matrices mal condicionadas siempre que sea posible. La segunda fuente de error es la
dominancia, que puede evitarse en la gran mayoría de los problemas mediante una simple correc-
ción llamada pivoteo parcial, éste es el objeto de estudio de la sección 2.4.

También podría gustarte