Ingeniería asistida por Ordenador. Sistemas lineales II

Anuncio
97
INDICE
1. INTRODUCCIÓN.
2. MÉTODO DE JACOBI.
3. MÉTODO DE GAUSS-SEIDEL.
98
INTRODUCCIÓN
Como hemos visto, la solución de los sistemas lineales por métodos exactos puede
ser muy costosa cuando el número de ecuaciones es muy grande. Los métodos iterativos
proporcionan soluciones aproximadas partiendo de un valor inicial para la solución
x ( 0) , y por medio de una fórmula de iteración van obteniendo aproximaciones cada vez
más precisas x (1) ,..., x ( n ) que, idealmente, convergerán a la solución del sistema.
Con el propósito de medir la bondad de la aproximación que se obtiene por un
método iterativo y poder hacer estimaciones a priori, se precisan conceptos teóricos que
dependen principalmente del concepto de autovalor.
No estudiaremos aquí estos conceptos, limitándonos a exponer dos métodos
iterativos muy conocidos. Remitimos por tanto al alumno a la bibliografía propuesta
para el estudio de dichas técnicas, así como para el análisis de las condiciones para la
convergencia de estos métodos.
99
MÉTODO DE JACOBI
Consideremos un ejemplo que nos ayude a visualizar la forma en que opera el
método de Jacobi. Consideremos el sistema
ì5 x1 + x 2 − x3 = −7
ï
í − x1 + 3x 2 = 1
ï x + x + 6 x = 11
2
3
î 1
despejando las incógnitas diagonales obtenemos
1
ì
ï x1 = 5 (−7 − x 2 + x3 )
ïï
1
í x 2 = (1 + x1 )
3
ï
ï x = 1 (11 − x − x )
1
2
ïî 3 6
podemos definir entonces el proceso iterativo
ì ( s +1) 1
= (−7 − x 2( s ) + x3( s ) )
ï x1
5
ïï
1
( s +1)
(s)
í x 2 = (1 + x1 )
3
ï
1
(
s
+
1
)
ïx
= (11 − x1( s ) − x 2( s ) )
ïî 3
6
Si tomamos como solución inicial el vector (0,0,0) e iteramos hasta que la diferencia
entre 2 pasos de la iteración sea más pequeña que 0,001 vemos que el proceso converge
hacia la solución del sistema en 8 iteraciones.
Para formalizar la idea del método pongámoslo en forma matricial, es decir
dividimos A en su parte diagonal D su parte estrictamente superior U y su parte
estrictamente inferior L (Estas matrices no tienen nada que ver con la factorización LU
de A), podemos escribir entonces
(D + L + U ) x = b
de donde despejamos la parte diagonal para producir una fórmula iterativa
x ( s +1) = − D −1 ( L + U ) x ( s ) + D −1b
Podemos desarrollar la fórmula anterior en componentes para obtener las
correspondientes fórmulas recursivas, pero como Matlab nos permite realizar
operaciones sobre matrices, podemos implementar este método directamente.
100
MÉTODO DE GAUSS-SEIDEL
Analicemos de nuevo el sistema anterior escribiéndolo como antes en la forma
1
ì
ï x1 = 5 (−7 − x 2 + x3 )
ïï
1
í x 2 = (1 + x1 )
3
ï
ï x = 1 (11 − x − x )
1
2
ïî 3 6
En cada iteración del método de Jacobi se usan los valores de la iteración anterior,
pero parece mejor usar los valores ya calculados en la iteración actual, ya que serán más
precisos. Esta modificación del método de Jacobi da lugar al método de Gauss-Seidel
cuyo proceso iterativo en este caso sería
ì ( s +1) 1
= (−7 − x 2( s ) + x3( s ) )
ï x1
5
ïï
1
( s +1)
( s +1)
í x 2 = (1 + x1 )
3
ï
1
ï x ( s +1) = (11 − x ( s +1) − x ( s +1) )
1
2
ïî 3
6
Si iteramos como antes desde (0,0,0) usando estas ecuaciones y con la misma
tolerancia que antes observaremos que el método converge a la solución en sólo 4
pasos.
La forma matricial del método es
(D + L + U )x = b
( D + L) x = −Ux + b
x = −( D + L) −1Ux + ( D + L) −1 b
Obtenemos entonces la fórmula iterativa
x ( s +1) = −( D + L) −1Ux ( s ) + ( D + L) −1 b
101
Descargar