Está en la página 1de 6

Factorización LU de matrices cuadradas

Antes de comenzar a ver este tema convendría hacer un repaso de las nociones de
matrices:
 Operaciones con matrices (Suma de matrices, producto por un escalar).
 Matrices cuadradas, matriz inversa de una matriz.
 Matriz fila, matriz columna.
 Matriz diagonal, matriz triangular.

En concreto, sobre este último aspecto tenemos:

a) Matriz diagonal:

 d11 0 0 0 
 
0 d 22 0 0 
D 
 0 0 d33 0 
 
 0 0 0 d 44 

b) Matriz triangular superior (Upper triangular):

 u11 u12 u13 u14 


 
0 u22 u23 u24 
U 
 0 0 u33 u34 
 
 0 0 0 u44 

c) Matriz triangular inferior (Lower triangular):

 l11 0 0 0
 
l21 l22 0 0
L
 l31 l32 l33 0
 
 l41 l42 l43 l44 

En los tres casos citados el determinante de la matriz es el producto de los elementos


de la diagonal.

 Matriz estrictamente dominante diagonalmente.

Se dice que una matriz es estrictamente dominante diagonalmente si cumple:

n
aii   aij
i 1
i j

Las matrices estrictamente dominantes diagonalmente son no singulares (su


determinante es no nulo), además pueden resolverse por eliminación gaussiana sin
intercambio de filas y por tanto pueden siempre factorizarse en la forma A = L.U.
Ejemplo de matriz estrictamente dominante diagonalmente:

6 2 1 1
2 4 1 0 
A
1 1 4 1
 
 1 0 1 3 

Para una matriz cuadrada A es muy útil descomponerla como producto de una matriz
triangular inferior por una triangular superior:

A=L.U

La factorización L.U de una matriz cuadrada tiene la siguiente ventaja:

Al operar con un sistema en la forma A . x = b, si expresamos A = L . U tendremos:

L.U.x=b

Y ahora podemos poner:

U . x = L-1. b

Y teniendo en cuenta que U es triangular y L-1 también es triangular, la solución del


sistema se limita a:

 a ) L1. b  y
U . x  L1. b 
 b) U . x  y
Es decir, se resuelven dos sistemas triangulares (más simple y exacto que resolver uno
no triangular): en a) se obtiene y, finalmente en b) se obtiene x.

La factorización LU de una matriz cuadrada A se podría hacer por el método de Gauss


(consultar las pag. 173-174 de “Curso de Métodos Numéricos” de Virginia Muto), sin
embargo hay otros métodos como el de Doolittle, el de Crout, y el de Cholesky.

 l11 0 0 0   u11 u12 u13 u14 


 
l l 0 0   0 u22 u23 u24 
L.U   21 22  
 l31 l32 l33 0   0 0 u33 u34 
   
 l41 l42 l43 l44   0 0 0 u44 
 a11 a12 a13 a14 
a a a23 a24 
  21 22
 a31 a32 a33 a34 
 
 a41 a42 a43 a44 
Observad arriba que conocida A, tendríamos 16 ecuaciones con 20 incógnitas: lij,
uij, sin embargo, nosotros podemos dar cualquier valor a 4 de ellas. Así hay dos métodos
que se suelen utilizar: a) Método de Doolittle: se toman los cuatro elementos de la
diagonal de L como ‘1’, lii=1 . b) Método de Crout: se toman los cuatro elementos de la
diagonal de Ucomo ‘1’, uii=1.

Nosotros aquí seguiremos el método de Doolittle, con un ejemplo. Sea dada A,


entonces es sencillo hallar L y U, sin más que resolver un sistema:

 u11 u12 u13 u14 


 0 u u23 u24 
U  22
 0 0 u33 u34 
 
 0 0 0 u44 
1 0 0 0  6 2 1  1
l 0 0   2
1 4 1 0 
L   21  A
 l31 l32 1 0  1 1 4  1
   
 l41 l42 l43 1   1 0 1 3 

La forma de operar “manualmente” es:


- 1) Considerar el desarrollo de los elementos de la primera fila de A.
- 2) Considerar el desarrollo de los elementos de la primera columna de A.
- 3) Considerar el desarrollo de los elementos de la segunda fila de A.
- Etc. etc.

a1 j
Es decir, u11  6, u12  2, u13  1, u14  1  uij 
l11
Ahora continuamos con:
a j1
l21u11  2, l31u11  1, l41u11  1  l j1 
u11
1 1 1
Así obtenemos: l21  , l31  , l41   .
3 6 6
Hasta ahora tenemos:

 6 2 1 1 
u u u23 u24 
U   11 22
 0 0 u33 u34 
 0 0 0 u44 


 1 0 0 0  6 2 1  1
 1/ 3 1 0   2
0 4 1 0 
L  A
 1/ 6 l32 1 0  1 1 4  1
   
 1/ 6 l42 l43 1   1 0 1 3 

Seguiríamos con la siguiente fila de U:

1
l21u12  l22u22  a22  u22  (a22  l21u12 )
l22
1
l21u13  l22u23  a23  u23  (a23  l21u13 )
l22
  
En realidad para obtener la segunda fila de U sirve la siguiente fórmula:

i 1
1  
u2 j  
l22 
a 2j  
k 1
l2 k ukj  (j=1, …, 4)

Para una fila i-ésima de U serviría:


i 1
1 
uij   aij   lik ukj 
lii  k 1 

De una manera análoga, la columna i-ésima de L se calcula por la fórmula:

i 1
1 
l ji  
uii 
a ji  
k 1
l jk uki 

ALGORITMO DE FACTORIZACIÓN DE DOOLITTLE.

Entrada: Elementos de A. Tomaremos inicialmente L= eye(4), U = zeros(4).


Salida: Matrices L y U, producto L*U.

Paso 1: Para j = 1, …, n tomar:


a
uij  1 j (primera fila de U).
l11
a
l j1  j1 (primera columna de L).
u11
Paso 2: Para i = 2, 3,…, n-1 seguir paso 3.

Paso 3: Para j = i+1, …, n tomar:

i 1
3-A: uii  aii   lik uki ;
k 1
i 1
4-A: uij  aij   lik ukj ;
k 1
i 1
1 
5-A: l ji 

uii 
a ji  
k 1
l jk uki  ;

Paso 4: Para el último término, un,n :

n 1
Tomar: unn  ann   lnk ukn
k 1

Paso 5: (Salida):
Desplegar L, U y L*U.
MÉTODO DE CHOLESKI

En el caso de que la matriz A, n x n, sea simétrica y definida positiva


(Xt . A . X > 0), entonces A admite una factorización en la forma A = L.Lt, siendo L
triangular inferior.

 l11 0 0 0   l11 l21 l31 l41   a11 a12 a13 a14 


    
l21 l22 0 0   0 l22 l32 l42  a21 a22 a23 a24 
L.L  
t
  
 l31 l32 l33 0   0 0 l33 l43   a31 a32 a33 a34 
     
 l41 l42 l43 l44   0 0 0 l44   a41 a42 a43 a44 

Los 10 elementos de L se obtienen a partir de los elementos conocidos de A:

Algoritmo de Choleski

Entrada: Matriz A, L = zeros(n)


Salida: Matriz A, Matriz L, Matriz producto L*Lt.

Paso 1: Tomar l11  a11

a j1
Paso 2: Para j = 2,…, n tomar l j1  ,
l11

Paso 3: Para i = 2, … , n-1 seguir los pasos 4 y 5.

i 1
Paso 4: Tomar lii  aii   lik2
k 1

Paso 5: Para j = i+1, … , n tomar:


i 1
1 
l ji   a ji   l jk lik 
lii  k 1 

n 1
Paso 6: Tomar lnn  ann   lnk2
k 1

También podría gustarte