Está en la página 1de 12

Descomposici on LU de matrices

Jos e L. Vieitez IMERL, Facultad de Ingenier a, Universidad de la Rep ublica 23 de agosto de 2006
Abstract Descomposici on LU de una matriz A = (aij ), i, j = 1, . . . , n.

Hechos b asicos

Para escalerizar la matriz A = ((ai,j )), n n, por el m etodo de Gauss se usan 3 operaciones elementales: 1. Intercambio de las las i y j , Ai con Aj : equivale a multiplicar a la izquierda la matriz A por la matriz n n, Pi,j , obtenida de la identidad In intercambiando las las i y j . 2. Multiplicaci on de la la Ai por el n umero k = 0: equivale a multiplicar a la izquierda la matriz A por la matriz n n, In + (k 1)Ei,i , donde Ei,j denota la matriz que tiene todas las entradas nulas menos la (i, j ) que vale 1. 3. Suma a la la Aj de la la Ai , i = j , multiplicada por el n umero : equivale a multiplicar a la izquierda la matriz A por la matriz n n, In + Ej,i . Observaci on 1.0.1. Si se hace la multiplicaci on a derecha por la matriz correspondiente se intercambian las columnas, se multiplica una columna por un n umero o se suma a una columna un m ultiplo de otra. En el proceso de escalerizaci on puede no ser preciso cambiar las de lugar, pero si fuera necesario hacerlo, una observaci on importante es que se puede suponer que el intercambio se ha realizado todo al comienzo de la escalerizaci on. Esto es as porque en el M etodo de Escalerizaci on de Gauss el intercambio de las se hace en

el momento de elegir un pivot. Si denotamos por A(h) a la matriz obtenida tras h pasos de escalerizaci on, y esa matriz es de la forma: b1,1 b1,2 b1,n 0 b2,2 b2,n 0 0 b3,3 b3,n (h) A = 0 0 bj,j bj,n 0 0 b b j +1 ,j j +1 ,n . . . . . . . . . . . . . . . 0 0 bn,j bn,n Entonces el pivoteo (parcial) implica la b usqueda de un elemento bt,j , t = j, . . . , n, no nulo y de m odulo m aximo para disminuir los errores num ericos que se introducen en las operaciones (si no se tiene en cuenta esto, casi que lo u nico que interesa es que bt,j = 0). Pero esto afecta solo a las las que en ese momento ocupan los lugares entre j y n. Por tanto aquellas las que ya fueron pivot no aparecen en posibles intercambios: si intercambio al comienzo la la 1 con la 4 y luego la la 3 con la 4 (que era la vieja la 1), equivale a hacer de una vez: la la 1 al lugar de la la 3, la la 3 a la la 4 y la la 4 a la la 1. Se puede entonces suponer que al comienzo un gnomo u or aculo nos dijo c omo conven a intercambiar las las y hacerlo desde el comienzo. Si hacemos esto, en lugar de escalerizar A escalerizamos P A donde P es una matriz que intercambia las las de A (una matriz de permutaci on). la matriz P es andole esa permutaci on a las simplemente la que se obtiene de la identidad In aplic las.

Descomposici on LU sin intercambio de las

Supongamos entonces por el momento que no precisamos alterar el orden entre las las de A y que el rango de A es n (o sea, A es no singular). Observamos lo siguiente: al comienzo de la escalerizaci on a cada la A2 , . . . , An le sumamos la primera la A1 multiplicada por l2,1 , . . . , ln,1 respectivamente, donde lj,1 = aj,1 /a1,1 .

1 Denotando por L j,1 a la matriz

1 L j,1

1 0 0 1 lj 1 0 0 . . . . . . 0

0 0 0 0 1 0 0 . . . . . . . . . 0 1

se ve f acilmente que su inversa Lj,1 se obtiene simplemente cambiando el signo de la entrada (j, 1) (multiplique ambas matrices!): 1 0 0 0 0 1 0 0 lj 1 0 1 0 0 Lj,1 = 0 . . . . . . . . . . . . . . . 0 0 1 La matriz A(1) que tiene todas las entradas en la primera columna iguales a 0, excepto la entrada (1, 1) que vale a1,1 , se escribe:
1 1 1 1 (1) L n,1 Ln1,1 L3,1 L2,1 A = A

o equivalentemente A = L2,1 L3,1 Ln1,1 Ln,1 A(1) . Repitiendo el proceso de escalerizaci on con A(1) obtenemos una matriz A(2) que tiene nulas todos las entradas de la segunda columna (excepto la entrada (2, 2)). Con la adopci on obvia de notaci on queda:
1 1 1 1 1 1 (2) L n,2 L4,2 L3,2 Ln,1 L3,1 L2,1 A = A

o equivalentemente A = L2,1 L3,1 Ln,1 L3,2 L4,2 Ln,2 A(2) . Aqu la matriz Li,j , i = j , se obtiene sum andole a la matriz identidad In la matriz n n que tiene todas sus entradas nulas excepto la que ocupa el lugar (i, j ) que vale li,j . 3

Continuando con el proceso de escalerizaci on mientras sea posible se obtiene al nal una matriz A(n) = U triangular superior (pues A es de rango m aximo por hip otesis) tal que A se va a escribir A = L2,1 L3,1 Ln,1 L3,2 Ln,2 Ln1,n2 Ln,n2 Ln,n1 U . Armamos que: 1. el producto L2,1 L3,1 Ln,1 L3,2 Ln,2 Ln1,n2 Ln,n2 Ln,n1 es una matriz triangular inferior. Esto es obvio pues todas las matrices Li,j son triangulares inferiores y el producto de dos matrices triangulares inferiores es una matriz triangular inferior. 2. L2,1 L3,1 Ln,1 es la matriz L1 = 1 l2,1 l3,1 lj 1 . . . ln,1 Del mismo modo L3,2 L4,2 Ln,2 da la matriz L2 = Y en general Li+1,i Li+2,i Ln,i 4 1 0 0 0 . . . 0 0 1 l3,2 lj,2 . . . ln,2 0 0 1 0 . . . 0 1 . . . 0 0 0 0 0 . . . 1 0 1 0 0 . . . 0 0 0 1 . . . 0 1 . . . 0 0 0 0 0 . . . 1

da la matriz Li que tiene sus entradas sobre la diagonal principal iguales a 1, cada entrada (j, i) de la columna i por debajo de la diagonal (j > i) igual a lj,i , y el resto de las entradas iguales a 0. 3. Finalmente el producto L1 L2 1 l2,1 l3,1 lj,1 . . . da la matriz con entradas 0 0 0 1 0 0 l3,2 1 0 0 lj,2 0 1 0 . . . . . . . . . . . . 0 1

ln,1 ln,2 0

Para ver esto observar que multiplicar L2 por L1 a la izquierda equivale a sumarle a la segunda la de L2 la primera (que es (1, 0, . . . , 0)) multiplicada por l2,1 , a la tercera la de L2 la primera multiplicada por l3,1 , etc. 4. Haciendo primero Ln2 Ln1 , al resultado multiplic andolo a a izquierda por Ln3 y as hasta llegar a L1 se puede ver, con argumentos similares a los ya expuestos, que la matriz L obtenida de este modo es simplemente 1 0 0 0 l2,1 1 0 0 l3,1 l3,2 1 0 0 L= l 1 0 j,1 lj,2 lj,3 . . . . . . . . . . . . . . . ln,1 ln,2 ln,n1 1 donde los coecientes lj,i son los que se obtienen al aplicar el m etodo de escalerizaci on de Gauss. Se concluye que A = LU donde L es triangular inferior con los elementos de la diagonal principal iguales a 1 y los coecientes lj,i obtenidos como se ilustra m as arriba y U es la matriz que se obtiene de A luego de la escalerizaci on. Adem as las matrices L, U tales que A = LU son u nicas (con L con unos en la diagonal principal) pues si LU = A = L U entonces L 1 L = U U 1 . Pero U y U son matrices triangulares superiores por lo que U 1 es triangular superior y el 5

producto U U 1 es triangular superior. An alogamente L 1 L es triangular inferior. Se concluye de la igualdad que todos los elementos de L 1 L = U U 1 que no est en en la diagonal principal son nulos. Pero como los de la diagonal principal de L y L son unos nalmente queda que L 1 L = U U 1 = In . O sea, L = L y U = U .

Descomposici on LU en el caso general

Finalmente observemos que en el caso general no va a ser posible realizar la descomposici on LU de la matriz A sin permutar las las de A, en ese caso realizamos la descomposici on LU de P A donde P es la matriz de permutaci on que intercambia las las de A de modo que se pueda escalerizar P A sin pivoteo. Va a quedar P A = LU . Observaci on 3.0.2. Por otro lado, si el rango de A es menor que n (A es una matriz singular) en el proceso de escalerizaci on de Gauss nos damos cuenta ya que encontraremos en alg un paso j de la escalerizaci on, j = 1, . . . , n 1, que todas las las Fk k = j + 1, . . . , n tienen elementos ak,j +1 = 0. M as aun, para las las Fk luego del paso j de escalerizaci on con k = j +1, . . . , n consideremos el m aximo mk de todos los elementos |ak,h | con h = j + 1, . . . , n. Entonces en aritm etica de punto otante debemos cuidar que el valor normalizado alculo que de |ak,j +1 |/mk no sea tan chico que introduzca tales errores en el c hagan imposible continuar. Esto depende de la precisi on usada. Estar amos, si ak,j +1 /mk 0 para todo k = j + 1, . . . , n, frente a un caso en que la matriz es casi singular. En ese caso un programa que realice la escalerizaci on (o la descomposici on LU) debe detenerse avisando que la matriz A es casi singular. Pero hab amos supuesto que un or aculo nos dec a qu e las deb amos intercambiar, c omo hacer si el gnomo que nos sopla al principio el intercambio de las no aparece? O sea, a priori no s e que intercambios de las debo hacer. No ser a muy econ omico tener que escalerizar una vez la matriz y volver a repetir todo de vuelta. Supongamos entonces que no tenemos al or aculo y que descubrimos luego de h pasos de escalerizaci on aplicados directamente a A, que en la matriz A(h) obtenida es necesario intercambiar la la i, Fi , con la j , Fj , siendo j > i > h. Eso equivale a multiplicar a izquierda la matriz A(h) por la matriz Pij que se obtiene a partir de la identidad In cambiando en esta u ltima la la i con la j . Ejemplo: si quiero

intercambiar la la 1 con la 2 multiplico a izquierda por la matriz P12 0 1 0 0 1 0 0 0 0 1 0 P12 = 0 0 0 1


1 El intercambio de la la i con la j se representa por la ecuaci on matricial Pij L (h) A =

1 Pij A(h) donde en Lh hemos incluido el producto de todas las transformaciones ele1 mentales aplicadas a A para obtener A(h) . Obs ervese que la matriz L (h) restringida 1 1 = 0 si h = k , lkk = 1. Esta observaci on a las columnas k i tiene entradas lhk 1 1 1 permite probar que Pij L(h) es lo mismo que L(h) Pij donde L(h) es la matriz que

1 se obtiene de L (h) intercambiando la la i con la la j pero dejando la entrada 1 en la diagonal principal sin mover. Ejemplo: supongamos que A es 4 4 y que van dos pasos de la escalerizaci on y 1 all vemos que es preciso intercambiar la la 3 con la 4. Esto se escribir a : P34 L 2 A 1 0 0 0 1 0 0 0 0 1 0 0 l21 1 0 0 0 0 0 1 l31 l32 1 0 A 0 0 1 0 l41 l42 0 1

que es lo mismo que

1 0 l21 1 l41 l42 l31 l32

0 0 1 0

0 1 0 0 0 0 1 0

0 1 0 0

0 0 0 1

0 0 A 1 0

Resulta entonces que no perdemos nada al ir realizando los intercambios de la en el momento en que lo precisamos.

Algoritmo para hallar la descomposici on LU de P A.


Entrada: A = ((aij )) matriz n n de rango n. Salida: L, U P matrices n n que realizan la igualdad LU = P A. 1. ) Hacer P la matriz identidad n n, hacer L la matriz identidad n n. (Valores iniciales de P y L). 7

Esto sugiere entonces que realicemos el siguiente

2. ) Para i variando entre 1 y n hacer: 3. ) Si aii = 0 buscar el primer j > i tal que aij = 0. Intercambiar en P la la i con la la j , intercambiar en A la la i con la j , intercambiar en L la la i con la j , para la matriz L dejar incambiada la diagonal principal (donde la entrada es 1). 4. ) Para j > i hasta que j = n, hacer lji = aji . aii

Cambiar la la Fj de A por Fj lji Fi . Insertar en la entrada (j, i) de L el valor lji . 5. ) Tomar como nuevas matrices A, P y L a las obtenidas con las transformaciones anteriores. (Ver nota al pie del algoritmo). 6. ) Volver al paso 2. ) incrementando en 1 el valor de i. (repetir todo de nuevo hasta que i = n). 7. ) Al nalizar tenemos como u ltimo valor de A a la matriz U , y las correspondientes P y L. Nota: Los elementos aij a los que reere el algoritmo anterior NO son los originales seguimos de A, sino los que se obtienen al ir aplicando los sucesivos pasos. As llamando A a la matriz que se va obteniendo luego de varias etapas de escalerizaci on alogas como es usual en programaci on. Es lo que anteriormente llamamos A(h) . An consideraciones valen para L y P . Si este algoritmo se realiza con un dispositivo electr onico (un computador) y a que almacenarlo aparte (tomar un se deseara guardar el valor original de A habr duplicado) ya que al nal del algoritmo el valor modicado de A es la matriz U . M as aun, los lugares que van a ser 0 pueden almacenar los valores de L excepto los de la diagonal principal, pero estos no se precisan almacenar ya que lii = 1 para todo i = 1, . . . , n donde (lij ) = L. Para resolver el sistema Ax = b lo hacemos resolviendo P Ax = P b, o sea, LU x = P b. En la pr actica tampoco se precisa construir la matriz P . Alcanza con llevar control de las las que intercambiamos en la escalerizaci on o que puede hacerse con un vector de orden ord que al principio se inicializa como ord(k ) = k para todo k = 1, . . . , n. Al intercambiar la la i con la j simplemente llevamos cuenta de ello haciendo ord(i) = j, ord(j ) = i. Al resolver Ax = b, usando la

descomposici on LU, realizamos los mismos intercambios entre las las de la matriz columna b. La informaci on de estos cambios est an almacenados en ord.

Ejemplos de bolsillo.
A= a11 a12 a21 a22 l21 = a21 a11

Si A es una matriz 2 2

entonces si a11 = 0 calculamos y la matriz L queda simplemente L=

1 0 l21 1

La matriz U es la que resulta de la escalerizaci on que en este caso queda U= donde a22 = a22 l21 a12 = a22 a11 a12 0 a22 a21 a12 . a11

Si fuera preciso permutar las las de A (esto es imprescindible si a11 = 0, pero en la pr actica debe hacerse tambi en si a11 normalizado es casi nulo, a11 /m1 0) entonces escalerizar amos la matriz P A PA = a21 a22 a11 a12

donde P es la matriz elemental que realiza el intercambio de la primera y segunda la de A al multiplicar A a la izquierda por P P = Si A es una matriz 3 3 a11 a12 a13 A = a21 a22 a23 a31 a32 a33 9 0 1 1 0 .

entonces, si a11 = 0, l21 y l31 se calculan simplemente como l21 = a21 , a11 l31 = a31 a11

la matriz A luego de escalerizada para anular las entradas (2, 1) y (3, 1) - lo que se logra cambiando la la 2, A2 , por la la 2 menos la la 1 multiplicada por l21 , A2 l21 A1 y cambiando la la 3, A3 , por la la 3 menos la la 1 multiplicada por l31 , A3 l31 A1 - queda a11 a12 a13 A(1) = 0 a22 a23 0 a32 a33 donde a22 = a22 l21 a12 , a 23 = a23 l21 a13 , a 32 = a32 l31 a12 y a33 = a33 l31 a13 . Finalmente, si a22 = 0 calculamos l32 = a32 a22

y escalerizmos restando a la tercera la de A(1) la segunda. Obtenemos la matriz U a11 a12 a13 U = 0 a22 a23 0 0 a33 donde a33 = a33 l32 a23 . La matriz L va 1 L = l21 l31 a ser simplemente 0 0 1 0 l32 1

En general para obtener L se van almacenando en los lugares (j, i) los coecientes lji , j > i, que aparecen en el m etodo de escalerizaci on de Gauss, siendo lji =
aji
( h)

anule la entrada (j, i) (aqu A(h) representa la matriz obtenida luego de h pasos de escalerizaci on). La entradas en la diagonal principal de L son el n umero 1 y el resto de las entradas (las que est an por encima de la diagonal principal) son nulas. La matriz U va a ser la que se obtiene al nalizar la escalerizaci on de A. Otra vez, si es preciso intercambiar las en A en realidad vamos a estar haciendo la

( h) aii

el factor necesario para que al sustituir la la Aj

(h)

por Aj

(h)

lji Ai

(h)

se

10

descomposici on LU de P A y al resolver Ax = b lo haremos hallando la soluci on de LU x = P b.

Ejemplos num ericos


2 1 1 A = 1 1 2 0 1 4 Aqu l21 = 1 2 . Restando a la segunda la la primera multiplicada por l21 = como nueva segunda la 1 5 ). (0 2 2 Como la entrada (3, 1) es nula l31 = 0. La matriz obtenida es 2 1 1 5 A(1) = 0 1 2 2 0 1 4 El coeciente l32 vale l32 = 1
1 2 1 2

queda

= 2

Sustituyendo en A(1) la tercera la por la tercera la menos la segunda multiplicada por l32 obtenemos la matriz U 2 1 1 5 U = 0 1 2 2 0 0 1 La matriz L queda 0 0 1 0 . L= 1 2 0 2 1 1 0 1 4 1 A= 2 1 1 1 2 como en este caso a11 = 0 debo intercambiar la la 1 con otra. Es claro que si intercambio primero la la 1 con la la 3 y luego la la 1 con la la 2 caigo en el ejemplo ya visto (esto es algo articioso, normalmente uno har a un intercambio 11

Si ahora A fuera la matriz

s olo, por ejemplo la primera la con la segunda, lo hacemos para aprovechar lo ya hecho). La matriz P en ese caso ser a 0 1 0 P = 0 0 1 1 0 0 Si quiero resolver Ax = b con 3 b= 5 1

En este caso, como ya dijimos, aplicando LU debo intercambiar las las de b seg un la matriz P resolviendo LU x = P b. En este caso P b es 5 b = 1 . 3 La descomposici on LU se usa cuando hay que resolver el sistema Ax = b para varios b distintos. En el fondo puede verse como un modo de aprovechar la informaci on que se obtiene al escalerizar A de modo de re-usarla otras veces. Puede usarse para calcular la inversa de A, A1 , ya que en este caso se debe resolver Ax = ej para j = 1, . . . , n con ej la matriz columna (vector) que tiene todas sus entradas nulas excepto la de la la j que vale 1. Observaci on 4.0.3. Dado que det(P A) = det(L) det(U ) resulta, puesto que L y U son matrices triangulares y lii = 1 i = 1, . . . , n, que
n

det(P A) = det(U ) =
i=1

uii

donde U = (uij ). Si nos interesa calcular el valor de det(A) debemos saber el de det(P ) ya que det(P A) = det(P ) det(A). Esto puede hacerse en la descomposici on LU simplemente deniendo una variable detP que se inicializa en 1 y que se mulon de tiplica por 1 cada vez que se intercambia una la por otra en la escalerizaci A. O sea, hacemos detP := detP cada vez que se intercambian las. Al nalizar tenemos el valor de detP que ser a1 o 1 de donde resulta
n

det(A) = detP det(U ) = detP


i=1

uii .

12

También podría gustarte