Você está na página 1de 26

MATRICES:

DESCOMPOSICIÓN LU,
DESCOMPOSICIÓN DE CHOLESKY Y
MÉTODO DE GAUSS-SEIDEL

Jorge Eduardo Ortiz Triviño


jeortizt@unal.edu.co
http:/www.docentes.unal.edu.co
Representación de ecuaciones
algebraicas lineales en forma matricial

AX   B
 a11 a12 a13   x1  b1 
a    
 21 a22 a23   x2   b2 
a31 a32 a33   x3  b3 

• Una manera formal para obtener la solución usando algebra


matricial es multiplicando cada lado de la ecuación por la inversa de
A
• No resulta muy eficiente por la
A AX   A B
1 1
obtención de la inversa de la
matriz
Como A A  I X   A1B
1

• Es necesario métodos
numéricos
Métodos numéricos para la solución de
ecuaciones algebraicas lineales
1. Eliminación de Gauss

2. Descomposición LU  valiosa para casos donde se necesita


evaluar muchos vectores del lado derecho. Permite hacer
eficiente el cálculo de la matriz inversa

3. Método de Gauss-Seidel  método iterativo


Eliminación de Gauss
• Este método involucra una combinación de ecuaciones para
eliminar las incógnitas

• Es uno de los métodos más antiguos y sigue siendo uno de los


algoritmos de mayor importancia
Eliminación de Gauss
Eliminación de incógnitas
• La estrategia básica es multiplicar las ecuaciones por constantes,
de tal forma que se elimine una de las incógnitas cuando se
combinen las ecuaciones
• El resultado es una sola ecuación que se puede resolver para la
incógnita restante
• Este valor se sustituye en las ecuaciones originales para calcular la
otra variable
• Este método representa la base para la eliminación de Gauss
• Se puede extender a grandes sistemas de ecuaciones
desarrollando un esquema sistemático para eliminar incógnitas y
sustituir hacia atrás
Eliminación de Gauss
Eliminación de Gauss simple  el método consiste en dos fases
1. Eliminación de incógnitas
– Reduce el conjunto de ecuaciones a un sistema triangular superior
– Primero se elimina la primera incógnita, x1, desde la segunda hasta la
n-enésima fila, multiplicando por a21/a11 a la primera ecuación, luego
restando ésta a la segunda
– El procedimiento es repetido para las ecuaciones restantes
– Para este paso la ecuación 1 es la ecuación pivote y a11 es el coeficiente
pivote
2. Solución por sustitución hacia atrás
– Al finalizar la eliminación, la ecuación n puede resolverse para xn
 n 1
b
xn  n n 1 n
ann n 1  n 1
bi   aij
j i 1
xj
Para evaluar las x restantes xi  n 1
a ii
Eliminación de Gauss
• Ejemplo

A = [3 -0.1 -0.2 B = [7.85


0.1 7 -0.3 -19.3
0.3 -0.2 10]; 71.4];

– Eliminación

A =[ 3.0000 -0.1000 -0.2000 B ={7.8500 A =[3.0000 -0.1000 -0.2000 B ={7.8500


0 7.0033 -0.2933 -19.5617 0 7.0033 -0.2933 -19.5617
0.3000 -0.2000 10.0000] 71.4000} 0 -0.1900 10.0200] 70.6150}

A =[3.0000 -0.1000 -0.2000 B ={7.8500 X ={3.0000


Sustitución
0 7.0033 -0.2933 -19.5617 -2.5000
0 0 10.0120] 70.0843}
7.0000}
Eliminación de Gauss
• Número de operaciones de punto flotante para Gauss simple

% debido a
n Eliminación Sustitución total
eliminación
10 375 55 430 87.21%
100 338,250 5,050 343,300 98.53%
1000 3.34E+08 500,500 3.34E+08 99.85%

• Para un sistema que se hace cada vez más grande, el tiempo de


cálculo se incrementa considerablemente

• La mayor parte del esfuerzo ocurre en el paso de la eliminación. Por


lo que se hace necesario hacer más eficiente el procedimiento
Descomposición LU e Inversión de
matrices
Descomposición LU
• El principal atractivo de este método es que el paso de eliminación,
que consume tiempo, se puede reformular de tal manera que
involucre sólo operaciones sobre los elementos de la matriz de
coeficientes, A
• De esta forma, es muy adecuado para aquellas situaciones donde
se debe evaluar muchos vectores {B}
• El método de eliminación de Gauss puede implementarse como una
descomposición LU
• La descomposición LU proporciona un medio eficaz para calcular la
matriz inversa, la cual a su vez permite evaluar la condición de un
sistema
Descomposición LU
• Partiendo de un sistema de • Ahora, suponga que existe una matriz
ecuaciones lineales de la forma, triangular inferior con números 1 sobre
AX   B la diagonal
 1 0 0
L  l21 1 0
Este se puede ordenar como,
AX  B  0 l31 l32 1
El primer paso de la eliminación de
Gauss resulta en un sistema con una que tiene la siguiente propiedad
matriz triángular superior LU X  D  AX  B
u11 u12 u13   x1   d1 
0 u   x   d  si esta propiedad se cumple, de las
 22 u 23  2   2  reglas de multiplicación de matrices se
 0 0 u33   x3  d 3  obtiene,

Que puede ser expresada como,


LU   A
LD  B
U X   D U X  D  0
Descomposición LU

Estrategia para resolver el sistema


1. Paso de descomposición LU: la matriz [A], se factoriza o
descompone en matrices triangulares inferior [L] y superior [U]
2. Paso de sustitución: [L] y [U] se usan par determinar una solución
{X} para un vector {B}. Este paso consta de dos subpasos:
– Se determina el vector intermedio {D} resolviendo [L]{D}={B} por
sustitución hacia delante, debido a que [L] es una matriz triangular
inferior
– Se determina {X} resolviendo [U]{X}={D} por sustitución hacia atrás
Descomposición LU
Descomposición LU con base en la eliminación de Gauss
• Partiendo de una matriz de coeficientes, se llega a una matriz triangular
superior
 a11 a12 a13  a11 a12 a13 
a a23  U    0 a22 ' a23 ' 
 21 a22
a31 a32 a33   0 0 a33 ' '
• Para llegar a esta matriz [U]
– se multiplicó la fila 1 por el factor f21 = a21/a11 y La matriz triangular inferior
restando el resultado a la fila 2 se eliminó a21 que tiene la propiedad
requerida para la
– se multiplicó la fila 1 por el factor f31 = a31/a11 y
descomposición LU es
restando el resultado a la fila 3 se eliminó a31
– se multiplicó la fila 2 por el factor f32 = a32’/a22’ y
restando el resultado a la fila 3 se eliminó a32’ 1 0 0
L   f 21 1 0
 f 31 f 32 1
Descomposición LU
Descomposición LU con base en la eliminación de Gauss
1. Paso de descomposición LU: la matriz [A], se factoriza o
descompone en matrices triangulares inferior [L] y superior [U]
2. Paso de sustitución: [L] y [U] se usan par determinar una solución
{X} para un vector {B}. Este paso consta de dos subpasos:
– Se determina el vector intermedio {D} resolviendo [L]{D}={B} por
sustitución hacia delante
i 1
d1  b1; di  bi   lij b j para i  2,, n
j 1

– Se determina {X} resolviendo [U]{X}={D} por sustitución hacia atrás


n

d
di  u d
j i 1
ij j

xn  n ; xi  para i  n  1, n  1,,1
unn uii
Matriz inversa

• Para una matriz cuadrada [A], hay otra matriz [A]-1 conocida como la
inversa de [A], para la cual se cumple,
[A] [A]-1 = [A]-1[A] = I

• La matriz inversa se puede calcular en una forma de columna por


columna a partir de vectores unitarios como vector de constantes del
sistema de ecuaciones lineales algebraicas

• Por ejemplo, para determinar la primera columna de la matriz inversa


se resuelve el sistema con el vector de constantes B=[1 0 0]T
para determinar la segunda columna se usa B=[0 1 0]T
y así sucesivamente
Matriz inversa (Tarea)
• La descomposición LU representa la mejor forma para implementar el
cálculo de la matriz inversa, ya que una vez obtenida la
descomposición LU de la matriz A se puede calcular su inversa
resolviendo cada columna con los vectores unitarios como
constantes
A = [ 3 -0.1 -0.2
• Tarea: Determinar la inversa de 0.1 7 -0.3
0.3 -0.2 10]
Análisis de error y condición del sistema

• La matriz inversa permite determinar si un sistema está mal


condicionado, para esto existen 3 métodos:
1. Escalar la matriz de coeficientes [A], de tal manera que el
elemento más grande en cada fila sea 1. Si al invertir la matriz
escalada existen elementos de la inversa [A]-1 que sean varios
ordenes de magnitud mayores que la unidad, es probable que el
sistema esté mal condicionado
2. Multiplicar la inversa por la matriz de coeficientes original y
verificar que [A][A]-1  I. Si no es así, indica que el sistema está mal
condicionado
3. Invertir la matriz inversa y verificar que el resultado está lo
suficientemente cercano a la matriz original. Si no es así, indica que
el sistema está mal condicionado
Número de condición de una matriz

cond A  A  A1

• Este número mide la sensibilidad de la solución de un sistema de


ecuaciones lineales a errores en los datos
• Valores cercanos a 1 indican que el sistema está bien condicionado
• Valores grandes indican que la matriz es casi singular
Descomposición de Cholesky

• La descomposición o factorización de Cholesky expresa una matriz


simétrica como el producto de una matriz triangular y su transpuesta

A = L∙LT  L: matriz triangular inferior

• No todas las matrices simétricas se pueden factorizar de esta forma

• Las matrices que tienen este tipo de factorización son las matrices
simétricas definidas positivas. Esto implica que todos los elementos
de la diagonal sean positivos y que los elementos fuera de la
diagonal no sean muy grandes
Descomposición de Cholesky

• Los términos de la descomposición se pueden multiplicar entre si.


El resultado se puede expresar en forma simple por relaciones
recurrentes
i 1
aki   lij lkj
• Para la fila k j 1
lki  , para i 1,2,, k - 1
lii
k 1
lkk  akk   lkj
2

j 1
Descomposición de Cholesky
 6 15 55   7.85
• Ejemplo,  
A  15 55 225 B    19.3 
55 225 979  71.4 
 
Para k = 1 l11  a11  6  2.4495
a21 15
l21    6.1237 l22  a22  l21  55  6.1237  4.1833
2 2
Para k = 2
l11 2.4495
a31 a32  l21l31
Para k = 3 l31   22.454 l32   20.916
l11 l22
l33  a33  l31  l32  6.1106
2 2

Sustitución hacia adelante Sustitución hacia atrás


2.4495 0 0 
 3.2047   24.1964 
L  6.1237 4.1833 0  
D   9.3049
  
X   28.2154
22.454 20.916 6.1106  31.7616   5.1982 
   
Método de Gauss-Seidel

• Este es un método iterativo

• Dado un conjunto de ecuaciones, AX = B

• Si los elementos de la diagonal son diferentes de cero, se puede


resolver la ecuación i para la variable i, donde i = 1…n
 
bi    aij xi 

xi   j i 
aii

• Se puede empezar el proceso de solución al escoger los valores


iniciales de las variables x (xi = 0)
Método de Gauss-Seidel

• Los valores iniciales se sustituyen en la primera ecuación para


calcular un nuevo valor para x1
• Este nuevo valor de x1 junto con los demás valores iniciales se
sustituyen en la segunda ecuación para calcular un nuevo valor
para x2
• Este proceso se repite hasta calcular los nuevos valores de las n
variables
• Después se regresa a la primera ecuación y se repite todo el
procedimiento hasta que la solución converja a la solución real
• La convergencia se puede verificar usando el criterio,
j 1
x x
j
 a ,i  i ji 100%   s
xi
Criterio de convergencia del método de
Gauss-Seidel
• Este método es similar en esencia al método de iteración de
punto de fijo que se usa para el cálculo de raíces de una
ecuación
• Presenta las mismas desventajas:
1. En algunos casos no converge
2. En algunos casos la convergencia es lenta
• Las condiciones suficientes para la convergencia de dos
ecuaciones no lineales también aplican para ecuaciones lineales
cuando se usa Gauss-Seidel

u v u v
 1  1
x1 x1 x2 x2
Criterio de convergencia del método de
Gauss-Seidel
• En el caso de dos ecuaciones el método de Gauss-Seidel se
expresa como

x1  u x1 , x2   x2  vx1 , x2  
b1 a12 b2 a21
 x2  x1
a11 a11 a22 a22

• Las derivadas parciales de estas ecuaciones con respecto a las


variables son
u u  a12 v  a21 v
0   0
x1 x2 a11 x1 a22 x2

• Para que se cumplan las condiciones suficientes de convergencia

a12 a21
1 1
a11 a22
Criterio de convergencia del método de
Gauss-Seidel
• El valor absoluto de la pendiente de las ecuaciones rectas debe ser
menor que la unidad para asegurar convergencia
• Rerformulando,
a11  a12 a22  a21
• El elemento diagonal debe ser mayor que el elemento fuera de la
diagonal para cada fila (sistemas diagonal dominantes)
n
• Generalizando para n ecuaciones aii   aij
j 1
j i

• El criterio es suficiente pero no necesario para convergencia


Mejoras a la convergencia por medio de
relajación
• La relajación representa una ligera modificación al método de Gauss-Seidel
y está diseñada para mejorar la convergencia
• Después de calcular cada nuevo valor de x, ese valor se modifica por un
promedio ponderado de los resultados de las iteraciones anterior y actual:
 xi  1   xi
nuevo nuevo anterior
xi
: es el coeficiente de relajación que tiene un valor entre 0 y 2
– Si  = 1  el resultado no se modifica
– Si 0 <  < 1  el resultado es un promedio ponderado de xinuevo y xianterior
(subrelajación), se usa para hacer que un sistema no convergente,
converja o converja más rápido al amortiguar sus oscilaciones
– Si 1 <  < 2  se le da una ponderación extra al valor actual
(sobrerelajación), acelera la convergencia de un sistema que ya es
convergente. También es conocida como sobrerelajación simultánea o
sucesiva, SOR