Está en la página 1de 29

Métodos de factorización LU

Idea

Supongamos que podemos escribir A como

A=L·U

con L y U matrices triangulares inferior y superior, respectivamente.


Con esto el sistema Ax = b se transforma en

Ax = LUx = L (Ux) = b
| {z }
z
Idea

Supongamos que podemos escribir A como

A=L·U

con L y U matrices triangulares inferior y superior, respectivamente.


Con esto el sistema Ax = b se transforma en

Ax = LUx = L (Ux) = b
| {z }
z

Definiendo z = Ux podemos transformar el sistema original en el siguiente sistema:


     
Lz = b L 0 z b
⇐⇒ =
Ux = z 0 U x z
Idea

Supongamos que podemos escribir A como

A=L·U

con L y U matrices triangulares inferior y superior, respectivamente.


Con esto el sistema Ax = b se transforma en

Ax = LUx = L (Ux) = b
| {z }
z

Definiendo z = Ux podemos transformar el sistema original en el siguiente sistema:


     
Lz = b L 0 z b
⇐⇒ =
Ux = z 0 U x z

El primer sistema lineal Lz = b se puede resolver usando sustitución descendente.


Idea

Supongamos que podemos escribir A como

A=L·U

con L y U matrices triangulares inferior y superior, respectivamente.


Con esto el sistema Ax = b se transforma en

Ax = LUx = L (Ux) = b
| {z }
z

Definiendo z = Ux podemos transformar el sistema original en el siguiente sistema:


     
Lz = b L 0 z b
⇐⇒ =
Ux = z 0 U x z

El primer sistema lineal Lz = b se puede resolver usando sustitución descendente.


Con esto obtenemos z y podemos usarlo para obtener x, a partir del segundo sistema,
usando sustitución ascendente.
Idea

Supongamos que podemos escribir A como

A=L·U

con L y U matrices triangulares inferior y superior, respectivamente.


Con esto el sistema Ax = b se transforma en

Ax = LUx = L (Ux) = b
| {z }
z

Definiendo z = Ux podemos transformar el sistema original en el siguiente sistema:


     
Lz = b L 0 z b
⇐⇒ =
Ux = z 0 U x z

El primer sistema lineal Lz = b se puede resolver usando sustitución descendente.


Con esto obtenemos z y podemos usarlo para obtener x, a partir del segundo sistema,
usando sustitución ascendente.

Observación
Una vez realizada la factorización LU, se requierirán exactamente 2n2 flops para resolver
el sistema original. Por lo tanto el número de operaciones totales de este método radica
principalmente en el modo de descomponer la matriz A.
Matrices elementales
Una matriz elemental E es aquella que se obtiene al efectuar una OEF sobre una matriz
identidad In .

(1) Eij : Matriz obtenida mediante la operación Eij sobre In .


 
1 0 0 0
Eij 0 0 0 1
Ejemplo: I4 −→ E24 =  0 0 1 0

0 1 0 0
(2) Ei (α): Matriz obtenida mediante
 la operación
 Ei (α) sobre In .
1 0 0 0
E2 (α) 0 α 0 0 
Ejemplo: I2 −→ E2 (α) = 
0 0 1 0 

0 0 0 1
(3) Eij (β): Matriz obtenida mediante la operación Eij (β) sobre In .
 
1 0 0 0
E31 (α)  0 1 0 0
Ejemplo: I4 −→ E31 (β) =  
β 0 1 0 
0 0 0 1
Matrices elementales
Una matriz elemental E es aquella que se obtiene al efectuar una OEF sobre una matriz
identidad In .

(1) Eij : Matriz obtenida mediante la operación Eij sobre In .


 
1 0 0 0
Eij 0 0 0 1
Ejemplo: I4 −→ E24 =  0 0 1 0

0 1 0 0
(2) Ei (α): Matriz obtenida mediante
 la operación
 Ei (α) sobre In .
1 0 0 0
E2 (α) 0 α 0 0 
Ejemplo: I2 −→ E2 (α) = 
0 0 1 0 

0 0 0 1
(3) Eij (β): Matriz obtenida mediante la operación Eij (β) sobre In .
 
1 0 0 0
E31 (α)  0 1 0 0
Ejemplo: I4 −→ E31 (β) =  
β 0 1 0 
0 0 0 1

Observación
E
Una OEF B → B̃, cuya matriz elemental asociada corresponde a E, equivale a establecer
que B̃ = EB.
  E2,1 (2)    
1 −3 2 E3,1 (−4)
1 −3 2 E3,2 (−3)
1 −3 2
Ejemplo: A = −2 8 −1 −→ 0 2 3  −→ 0 2 3 
4 −6 5 0 6 −3 0 0 −12
  E2,1 (2)    
1 −3 2 E3,1 (−4)
1 −3 2 E3,2 (−3)
1 −3 2
Ejemplo: A = −2 8 −1 −→ 0 2 3  −→ 0 2 3 
4 −6 5 0 6 −3 0 0 −12
Lo anterior se puede expresar mediante matrices elementales como sigue:
     
1 −3 2 1 0 0 1 −3 2
−2 8 −1 = −2 1 0 · 0 2 3
4 −6 5 0 0 1 4 6 5
| {z }
E21 (−2)
  E2,1 (2)    
1 −3 2 E3,1 (−4)
1 −3 2 E3,2 (−3)
1 −3 2
Ejemplo: A = −2 8 −1 −→ 0 2 3  −→ 0 2 3 
4 −6 5 0 6 −3 0 0 −12
Lo anterior se puede expresar mediante matrices elementales como sigue:
     
1 −3 2 1 0 0 1 −3 2
−2 8 −1 = −2 1 0 · 0 2 3
4 −6 5 0 0 1 4 6 5
| {z }
E21 (−2)

     
1 −3 2 1 0 0 1 −3 2
0 2 3  = 0 1 0 · 0 2 3
4 6 5 4 0 1 0 6 5
  E2,1 (2)    
1 −3 2 E3,1 (−4)
1 −3 2 E3,2 (−3)
1 −3 2
Ejemplo: A = −2 8 −1 −→ 0 2 3  −→ 0 2 3 
4 −6 5 0 6 −3 0 0 −12
Lo anterior se puede expresar mediante matrices elementales como sigue:
     
1 −3 2 1 0 0 1 −3 2
−2 8 −1 = −2 1 0 · 0 2 3
4 −6 5 0 0 1 4 6 5
| {z }
E21 (−2)

     
1 −3 2 1 0 0 1 −3 2
0 2 3  = 0 1 0 · 0 2 3
4 6 5 4 0 1 0 6 5

     
1 −3 2 1 0 0 1 −3 2
0 2 3  = 0 1 0 · 0 2 3
0 6 5 0 3 1 0 0 5
  E2,1 (2)    
1 −3 2 E3,1 (−4)
1 −3 2 E3,2 (−3)
1 −3 2
Ejemplo: A = −2 8 −1 −→ 0 2 3  −→ 0 2 3 
4 −6 5 0 6 −3 0 0 −12
Lo anterior se puede expresar mediante matrices elementales como sigue:
     
1 −3 2 1 0 0 1 −3 2
−2 8 −1 = −2 1 0 · 0 2 3
4 −6 5 0 0 1 4 6 5
| {z }
E21 (−2)

     
1 −3 2 1 0 0 1 −3 2
0 2 3  = 0 1 0 · 0 2 3
4 6 5 4 0 1 0 6 5

     
1 −3 2 1 0 0 1 −3 2
0 2 3  = 0 1 0 · 0 2 3
0 6 5 0 3 1 0 0 5

Luego:
        
1 0 0 1 0 0 1 0 0 1 −3 2 1 0 0 1 −3 2
A = −2 1 0·0 1 0·0 1 0  · 0 2 3 = −2 1 0 · 0 2 3
0 0 1 4 0 1 0 3 1 0 0 5 4 3 1 0 0 5
| {z } | {z }
L U
Factorización LU sin pivote
Consiste en generar una factorización de A mediante una representación matricial del
método de Gauss sin intercambiar filas.
Factorización LU sin pivote
Consiste en generar una factorización de A mediante una representación matricial del
método de Gauss sin intercambiar filas.

a11 a12 a13 ··· a1n


 
a21 a22 a23 ··· a2n 
a a32 a33 ··· a3n 
 
Sea A := A(1) =  31
 . .. .. .. 

 .. ..
. . . . 
an1 an2 an3 ··· ann
Factorización LU sin pivote
Consiste en generar una factorización de A mediante una representación matricial del
método de Gauss sin intercambiar filas.

a11 a12 a13 ··· a1n


 
a21 a22 a23 ··· a2n 
a a32 a33 ··· a3n 
 
Sea A := A(1) =  31
 . .. .. .. 

 .. ..
. . . . 
an1 an2 an3 ··· ann

a
Paso 1: Para cada j > 1, definir mj1 := a j1 y aplicar Ej1 (−mj1 ) sobre A(1) .
11
Esto es, reemplazar la fila j por la suma entre la fila j y la fila 1 multiplicada por −mj1 . Con
ello:
 

1 0 0 ··· 0
 a11 a12 a13 · · · a1n
(2) (2) (2)
m21 1 0 · · · 0  0 a22 a23 · · · a2n 

(2)
(aij = aij − mj1 a1j

(2) (2) (2) 
m 0 1 · · · 0
  
A(1) =  31

·
  0 a 32
a 33
· · · a3n 
 . .. .. . . .  .

 .. .. .. .. .. 
. . . ..   .
.
. . . . 
 con i > 1)
mn1 0 0 · · · 1 (2) (2) (2)
| {z } | 0 an2 an3 · · · ann
(1)
{z }
:=L
:=A(2)
(2)
a
j2
Paso 2: Para cada j > 2, definir mj2 := (2)
y aplicar Ej2 (−mj2 ) sobre A(2) .
a
22
Esto es, reemplazar la fila j por la suma entre la fila j y la fila 2 multiplicada por −mj2 . Con ello:
a a12 a13 ··· a1n 
11
1 0 0 ··· 0
 
(2) (2) (2)
0 1 0 ··· 0  0 a22 a23 ··· a2n 

 (3) (2) (2)
0

m32 1 ··· 0  0
 
0
(3)
a33 ···
(3) 
a3n  (aij = aij − mj2 a2j ,
(2)
A =
.
· 
. . . . .  .

. . . . 

. . . . . . . .. .  con i > 2)
. . . . .   . . . . 
0 mn2 0 ··· 1 (3) (3)
| {z } 0 0 an3 ··· ann
:=L(2)
| {z }
:=A(3)
(2)
a
j2
Paso 2: Para cada j > 2, definir mj2 := (2)
y aplicar Ej2 (−mj2 ) sobre A(2) .
a
22
Esto es, reemplazar la fila j por la suma entre la fila j y la fila 2 multiplicada por −mj2 . Con ello:
a a12 a13 ··· a1n 
11
1 0 0 ··· 0
 
(2) (2) (2)
0 1 0 ··· 0  0 a22 a23 ··· a2n 

 (3) (2) (2)
0

m32 1 ··· 0  0
 
0
(3)
a33 ···
(3) 
a3n  (aij = aij − mj2 a2j ,
(2)
A =
.
· 
. . . . .  .

. . . . 

. . . . . . . .. .  con i > 2)
. . . . .   . . . . 
0 mn2 0 ··· 1 (3) (3)
| {z } 0 0 an3 ··· ann
:=L(2)
| {z }
:=A(3)
(k)
a
jk
Paso k: Para cada j > k, definir mjk := (k)
y aplicar Ejk (−mjk ) sobre A(k) .
a
kk
Esto es, reemplazar la fila j por la suma entre la fila j y la fila k multiplicada por −mjk . Con ello:

a11 a12 ··· a1k a1,k+1 ··· a1n


 
1 0 ··· 0 0 ··· 0  (2) (2) (2) (2)
 0 a22 ··· a2k a2,k+1 ··· a2n  
0 1 ··· 0 0 ··· 0   
  . . . . . . 
. . . . .  .

. .. . .. . . . 
. . . . . . . . .

. . . . . .  
(k)
 (k) (k) (k) 
0 0 · · · a a ··· akn 

A = 0 0 ··· 1 0 ··· 0 · 
kk k,k+1
  
0 0 ··· mk+1,k 1 ··· 0 
 0 (k+1) (k+1) 
   0 ··· 0 ak+1,k+1 ··· ak+1,n 

. . . . . . 
  
. . . . . .  . . . . . . 
. . . . . .  .. . . . . . 
. . . . . 
0 0 ··· mnk 0 ··· 1 
(k+1) (k+1)

| {z } 0 0 ··· 0 an,k+1 ··· an,n
:=L (k) | {z }
:=A(k+1)

(k+1) (k) (k)


(aij = aij − mjk akj , con i > k)
Después de (n − 1) pasos obtenemos

A = L(1) · L(2) · · · L(n−1) · A(n)

Con ello
1 0 0 ··· 0
 
m21 1 0 ··· 0
m m32 1 ··· 0 i
 
L = L(1) · L(2) · · · L(n−1) =  31 , U = A(n)
 . .. .. .. .. 
 .. . . . .
mn1 mn2 mn3 ··· 1

i
Por teorema, el producto de matrices triangulares inferiores es una matriz inferior
Después de (n − 1) pasos obtenemos

A = L(1) · L(2) · · · L(n−1) · A(n)

Con ello
1 0 0 ··· 0
 
m21 1 0 ··· 0
m m32 1 ··· 0 i
 
L = L(1) · L(2) · · · L(n−1) =  31 , U = A(n)
 . .. .. .. .. 
 .. . . . .
mn1 mn2 mn3 ··· 1

Teorema
Sea A ∈ Rn×n una matriz invertible. Entonces A admite una factorización LU si y solo si la
eliminación de Gauss se puede llevar a cabo sin intercambiar filas.
La eliminación de Gauss calcula la descomposición LU en asintóticamente en n3 flops.

i
Por teorema, el producto de matrices triangulares inferiores es una matriz inferior
Observación
La descomposición anterior no se puede llevar a cabo si nos encontramos con un
elemento en la diagonal que es 0 en algún paso.
Observación
La descomposición anterior no se puede llevar a cabo si nos encontramos con un
elemento en la diagonal que es 0 en algún paso.

Por ejemplo:  
0 1
A=
1 0
En este caso la matriz A es invertible, pero no es posible realizar ni siquiera el primer paso
de eliminación de Gauss
 (pues a11 = 0. Sin embargo, al realizar un cambio de filas vemos
1 0
que: A = E21 ·
0 1
Factorización LU con pivote parcial

(k)
En el paso k, antes de realizar el reemplazo de filas, buscamos el elemento alk más
grande en móduloii , i.e.:
(k) (k)
|alk | ≥ max |aik |
i=k+1,...,n

ii (k)
Si A es invertible, entonces alk 6= 0
Factorización LU con pivote parcial

(k)
En el paso k, antes de realizar el reemplazo de filas, buscamos el elemento alk más
grande en móduloii , i.e.:
(k) (k)
|alk | ≥ max |aik |
i=k+1,...,n

Posteriormente aplicamos la operación elemental Elk (cambiamos las filas l y k) y con ello:

a11 a12 ··· a1k ··· a1n a11 a12 ··· a1k ··· a1n
   
a21 a22 ··· a2k ··· a2n  a21 a22 ··· a2k ··· a2n 
 . .. .. ..   . .. .. .. 
   
 .. ..  .. ..
 . . . . 
  . . . .  
 (k) (k)   (k) (k) 
 0 0 ··· akk ··· akn   0 0 · · · alk ··· aln 
A(k)
   
 ..
= .. .. ..   = Elk  ..
· .. .. .. 
 . . . .   . . . . 


 0 (k) (k)   (k) (k) 
 0 ··· alk ··· aln  
 0
 0 · · · akk ··· akn  
 . .. .. ..   . .. .. .. 
 .   . 
 . . . .   . . . . 
(k) (k) (k) (k)
0 0 ··· ank ··· ann 0 0 · · · ank ··· ann
| {z }
Ã(k)

ii (k)
Si A es invertible, entonces alk 6= 0
(k)
ajk
Luego, para cada j > k, definimos m̃jk := (k) y aplicamos la operación Ejk (−m̃jk ) sobre
alk
Ã(k) . Con ello:

a11 a12 ··· a1k a1,k+1 ··· a1n


 
1 0 ··· 0 0 ··· 0  (2) (2) (2) (2)
 0 a22 ··· a2k a2,k+1 ··· a2n 

0 1 ··· 0 0 ··· 0  
.
  . . .. . . . 
. . . . 

.. . . . . . 
. . . . . 
. . . . . .

. . . . . .
 
(k)   (k) (k) (k) 
A = Elk ·  · 0 0 ··· alk al,k+1 ··· aln 

0 0 ··· 1 0 ··· 0 


|{z}  0 0 ··· m̃k+1,k 1 ··· 0  (k+1) (k+1) 
  0 0 ··· 0 ãk+1,k+1 ··· ãk+1,n 
P (k) 

  
. . . . . .  
. . . . . .  . . . . . . 
. . . . . .  . . . . . . 
 . . . . . . 
0 0 ··· m̃nk 0 ··· 1 
(k+1) (k+1)

| {z } 0 0 ··· 0 ãn,k+1 ··· ãn,n
:=L̃(k) | {z }
:=Ã(k+1)
(k+1) (k)
(ãij = aij − m̃jk alj )
(k)
ajk
Luego, para cada j > k, definimos m̃jk := (k) y aplicamos la operación Ejk (−m̃jk ) sobre
alk
Ã(k) . Con ello:

a11 a12 ··· a1k a1,k+1 ··· a1n


 
1 0 ··· 0 0 ··· 0  (2) (2) (2) (2)
 0 a22 ··· a2k a2,k+1 ··· a2n 

0 1 ··· 0 0 ··· 0  
.
  . . .. . . . 
. . . . 

.. . . . . . 
. . . . . 
. . . . . .

. . . . . .
 
(k)   (k) (k) (k) 
A = Elk ·  · 0 0 ··· alk al,k+1 ··· aln 

0 0 ··· 1 0 ··· 0 


|{z}  0 0 ··· m̃k+1,k 1 ··· 0  (k+1) (k+1) 
  0 0 ··· 0 ãk+1,k+1 ··· ãk+1,n 
P (k) 

  
. . . . . .  
. . . . . .  . . . . . . 
. . . . . .  . . . . . . 
 . . . . . . 
0 0 ··· m̃nk 0 ··· 1 
(k+1) (k+1)

| {z } 0 0 ··· 0 ãn,k+1 ··· ãn,n
:=L̃(k) | {z }
:=Ã(k+1)
(k+1) (k)
(ãij = aij − m̃jk alj )

Al final obtendremos
A = P (1) L̃(1) · P (2) L̃(2) · · · P (n−1) L̃(n−1)
siendo L(k) las matrices de la eliminación de Gauss y P (k) las matrices de permutación de
filas (si no hay cambio de filas, entonces P (k) = In ).
Observación
La inversa de una matriz de permutación (intercambio) es igual a su traspuesta, i.e.:
Eij = EijT .
El producto L(k) · P (k+1) , siendo P (k+1) = Eij (matriz de permutación), corresponde a
realizar un intercambio de columnas (i y j) en la matriz L(k) . El resultado puede
expresarse posteriormente como el producto entre una matriz de permutación de
filas P̃ (k+1) y una matriz triangular inferior L̃(k) .
De los puntos anteriores es posible establecer que el resultado del método LU con pivote
parcial genera la siguiente descomposición

P ·A=L·U

Siendo P una matriz de permutación.


Observación
La inversa de una matriz de permutación (intercambio) es igual a su traspuesta, i.e.:
Eij = EijT .
El producto L(k) · P (k+1) , siendo P (k+1) = Eij (matriz de permutación), corresponde a
realizar un intercambio de columnas (i y j) en la matriz L(k) . El resultado puede
expresarse posteriormente como el producto entre una matriz de permutación de
filas P̃ (k+1) y una matriz triangular inferior L̃(k) .
De los puntos anteriores es posible establecer que el resultado del método LU con pivote
parcial genera la siguiente descomposición

P ·A=L·U

Siendo P una matriz de permutación.

Ahora bien, si consideramos el sistema Ax = b y obtenemos la factorización P · A = L · U,


entonces

Ax = b ⇐⇒ P · Ax = P · b ⇐⇒ (L · U)x = P · b

Con ello, el sistema a resolver corresponde a



Lz = Pb
Ux = z
Descomposición LU con pivote total

Involucra también cambios de columnas en las matrices A(k) . En este caso la


descomposición será de la forma

P ·A·Q =L·U

Siendo P y Q matrices de permutación de filas y columnas, respectivamente.

También podría gustarte