Factorización triangular

Factorización triangular.

 

Supongamos que la matriz de coeficientes A de un sistema lineal Ax=b admite una factorización triangular como la siguiente.

 

    | a11 a12 a13 |    | 1         |  | u11 u12 u13 |

A=  | a21 a22 a23 | =  | l21 1   0 |= | 0   u22 u23 |

    | a31 a32 a33 |    | l31 l32 1 |  | 0   0   u33 |

 

Entonces la solución la podemos plantear como

 

LUx = b

 

El cual se puede solucionar resolviendo primero Ly=b y luego el sistema Ux=y.

 

Ejemplo.

 

Resolver el sistema de ecuaciones

 

 x1 +  2x2 +  4x3 +  x4 = 21

2x1 +  8x2 +  6x3 + 4x4 = 52

3x1 + 10x2 +  8x3 + 8x4 = 79

4x1 + 12x2 + 10x3 + 6x4 = 82

 

    | 1  2  4  1 |     | 1  0  0  0 |   | 1  2  4  1 |

A = | 2  8  6  4 |  =  | 2  1  0  0 | * | 0  4 –2  2 |

    | 3 10  8  8 |     | 3  1  1  0 |   | 0  0 –2  3 |

    | 4 12 10  6 |     | 4  1  2  1 |   | 0  0  0 –6 |

 

 

Primero resolvemos el sistema de ecuaciones

 

 y1                    = 21

2y1 +  y2              = 52

3y1 +  y2 +   y3 +     = 79

4y1 +  y2 +  2y3 +  y4 = 82

 

El cual corresponde a un sistema triangular inferior

 

y1 =  21

y2 =  10

y3 =   6

y4 = -24

 

En general

 

x1 = b1/ a1,1

xk = (bkSj=1,k-1  akj  xj)/akk

 

y posteriormente solucionamos

 

 x1 + 2x2  + 4x3 +  x4 = 21

      4x2  - 2x3 + 2x4 = 10

           - 2x3 + 3x4 =  6

                 - 6x4 =-24

 

utilizando sustitución hacia atrás tenemos

 

X = [1,2,3,4]T

 

Implementación.

 

Como vimos una matriz factorizada, fácilmente puede ser resuelta utilizando los métodos de sustitución hacia adelante y sustitución hacia atrás. ¿Pero como hacemos la factorización? Comenzaremos por escribir el sistema

 

  | a11 a12 a13 |    | 1         |  | u11 u12 u13 |

  | a21 a22 a23 | =  | l21 1   0 |= | 0   u22 u23 |

  | a31 a32 a33 |    | l31 l32 1 |  | 0   0   u33 |

 

A = LU

 

Si multiplicamos el primer renglón de L por la primera columna de U tenemos

 

u11 = a11

u12 = a12

u13 = a13

 

 

Ahora hacemos lo mismo para el segundo renglón de L con U

 

l21 u11 = a21          => l21 = a21/u11 = a21/a11

l21 u12 + u22 = a22     => u22 = a22 - l21 u12 = a22 - a21 a12/a11

l21 u13 + u23 = a23     => u23 = a23 - l21 u13 = a23 - a21 a13/a11

 

Multiplicando el tercer renglón de L por U tenemos:

 

l31 u11 = a31                => l31 = a31/u11 = a31/a11

l31 u12 + l32 u22 = a32        => l32 = (a22 – l31 u12)/a22

l31 u13 + l32 u23 + u33 = a33   => u33 = a33 – l31 u13 - l32 u23

 

Podemos notar lo siguiente, en este caso la triangulación la podemos hacer en dos pasos.

 

Paso I. Dado la matriz A hacemos

 

a11

a12

a13

a21/a11

a22 - a21 a12/a11

a23 - a21 a13/a11

a31/a11

a32 – a31 a12/a11

a33 – a31 a13/a11

 

a11

a12

a13

a’21

a’22

a’23

a’31

a’32

a’33

 

Paso II. Dado A modificada

 

 

a11

a12

a13

a’21

a’22

a’23

a’31

a’32/ a’22

a’33 – a’32a’23/a22

 

a11

a12

a13

a’21

a’’22

a’’23

a’31

a’’32

a’’33

 

Note que para calcular la matriz triangular superior se podría aplicar, el método de eliminación gaussiana y la matriz diagonal inferior es simplemente los cocientes

 

ajk = ajk/akk

 

Ejemplo:

 

Hacer la factorización LU de la siguiente matriz.

 

1

2

4

1

2

8

6

4

3

10

8

8

4

12

10

6

 

Paso 1.

 

1

2

4

1

2

4

-2

2

3

4

-4

5

4

4

-6

2

 

Paso 2.

 

1

2

4

1

2

4

-2

2

3

1

-2

3

4

1

-4

0

 

Paso 3.

 

1

2

4

1

2

4

-2

2

3

1

-2

3

4

1

-2

6

 

Regresar.