You are on page 1of 8

5.

5 MÉTODOS ITERATIVOS
Se sabe que es posible usar un esquema iterativo que mejore la solución hasta que se
obtenga convergencia. Esta es la esencia de este tipo de métodos empleados para
resolver sistemas de ecuaciones lineales. Los más comunes son el método de jacobi y
el de Gauss-Seidel. Ambos parten del mismo principio, pero el esquema difiere en la
forma de sustentación.
5.5.1 MÉTODO DE JACOBI
El método Jacobi es el método iterativo para resolver sistemas de ecuaciones lineales
más simple y se aplica solo a sistemas cuadrados, es decir a sistemas con tantas
incógnitas como ecuaciones.

1. Primero se determina la ecuación de recurrencia. Para ello se ordenan las ecuaciones


y las incógnitas. De la ecuación i se despeja la incógnita i. En notación matricial se
escribirse como:

x = c + B x (1)

Donde x es el vector de incógnitas. 2. Se toma una aproximación para las soluciones y


a ´esta se le designa por xo 3. Se itera en el ciclo que cambia la aproximación

Xi +1 = c + Bxi

Solución Debemos primeramente despejar de la ecuación la incógnita correspondiente.

x = 0.20 + 0.00 x − 0.40 y

y = 0.00 + 0.25 x + 0.00 y

Escrito en la notación vectorial quedaría:


𝑥 0.20 0.00 − 0.40 𝑥
[𝑦] = [ ]+[ ][ ]
0.00 0.25 0.00 𝑦
Aplicamos la primera iteración partiendo de x0 = 1.00 y y0 = 2.00:

x1 = 0.20 + 0.00 (1.00) − 0.40 (2.00) = −0.60

y1 = 0.00 + 0.25 (1.00) + 0.00 (2.00) = 0.25

Aplicamos la segunda iteración partiendo de x1 = −0.60 y y1 = 0.25:

x2 = 0.20 + 0.00 (−0.60) − 0.40 (0.25) = 0.10

y2 = 0.00 + 0.25 (−0.60) + 0.00 (0.25) = −0.15

Aplicamos la siguiente iteración partiendo de x2 = 0.10 y y1 = −0.15:

x3 = 0.20 + 0.00 (0.10) − 0.40 (−0.15) = 0.26

y3 = 0.00 + 0.25 (0.10) + 0.00 (−0.15) = 0.025

Aplicamos la siguiente iteración partiendo de x3 = 0.26 y y3 = 0.025:

x4 = 0.20 + 0.00 (0.26) − 0.40 (0.025) = 0.190

y4 = 0.00 + 0.25 (0.26) + 0.00 (0.025) = 0.065


Aplicamos la siguiente iteración partiendo de x4 = 0.190 y y4 = 0.065:

x5 = 0.20 + 0.00 (0.19) − 0.40 (0.065) = 0.174

y5 = 0.00 + 0.25 (0.19) + 0.00 (0.065) = 0.0475

Aplicamos la siguiente iteración partiendo de x5 = 0.174 y y5 = 0.0475:

x6 = 0.20 + 0.00 (0.174) − 0.40 (0.0475) = 0.181

y6 = 0.00 + 0.25 (0.174) + 0.00 (0.0475) = 0.0435

Si uno dispone de una hoja de cálculo como EXCEL es fácil realizar los cálculos

anteriores:

Donde Di = máx (|xi − xi+1|, |yi − yi+1|)

Este Di es utilizado como criterio de paro en las iteraciones: Cuando Di es menos que
cierto valor dado (digamos 0.001) uno ya no realiza la siguiente iteración. Si se grafica
las aproximaciones obtenidas en el plano x − y se obtendrá algo como:
La forma más conveniente de expresar estos
métodos es usar la notación matricial. La
matriz A se divide en tres partes,
correspondientes a los tres conjuntos de
coeficientes. La ecuación AX = B será

(L + D + U)X = B
Donde L es una matriz triangular inferior con
ceros e la diagonal, D es la matriz diagonal
que contiene los elementos de la diagonal de
A, y U es una matriz triangular superior con
ceros en la diagonal.
El método de Jacobi para la r-ésima iteración
se escribe como sigue

𝑫𝑿(𝒓) = −(𝑳 + 𝑼)𝑿(𝒓−𝟏) + 𝑩,


(r = 0, 1, ….)
El método de jacobi converge para matrices A que son diagonalmente dominantes, en
el sentido que es matemáticamente preciso. Para determinar si el método es
convergente, si se tiene que la matriz de iteración

− 𝑫−𝟏 (𝑳 + 𝑼)

Además de un término aditivo, − 𝑫−𝟏 𝑩, mapea un conjunto de X en el siguiente. Esta


matriz de iteración tiene valores propios, cada uno de los cuales refleja el factor por el
que se suprime durante una iteración el valor propio particular de algún residual no
deseado. Es evidente que estos factores tienen un módulo menor que 1. Con modulo
menor que uno. La rapidez de convergencia de este método está dada por la rapidez de
disminución del valor propio más lento: es decir, el factor con el modulo más grande. El
módulo de este factor esta, por consiguiente, entre 0 y 1, y se le llama radio espectral
del operador de relajación (𝒑𝒔 ). El número de iteraciones ® necesarias para reducir el
error toral por un factor (𝟏𝟎−𝒑 ) se estima por:
𝑝 ln(10)
𝑟=
− ln( 𝑝𝑠 )
En el límite cuando 𝒑𝒔 tiene a 1, el sistema esta en el punto de ruptura. Aquí puede o
no converger, dependiendo de las condiciones iniciales. La idea de iterar se puede
aplicar fácilmente a ecuaciones simultáneas lineales. Esto se ilustra mediante un
ejemplo numérico.
EJEMPLO
Mediante el método de jacobi resolver el conjunto de ecuaciones lineales dadas por:
10𝑥1 + 𝑥2 + 𝑥3 = 24
−𝑥1 + 20𝑥2 + 𝑥3 = 21
𝑥1 − 2𝑥2 + 100𝑥3 = 300
Despejando de la primera ecuación la primera variable y así sucesivamente, se
obtiene
1
𝑥1 = ( 24 − 𝑥2 − 𝑥3 )
10
1
𝑥2 = ( 21 + 𝑥1 − 𝑥3 )
20
1
𝑥3 = ( 300 − 𝑥1 + 2𝑥2 )
100
Si las primeras aproximaciones son 𝑥1 = 0, 𝑥2 = 0 𝑦 𝑥3 = 0 entonces la siguiente
iteración es
𝑥1 = 2.4, 𝑥2 = 1.05 𝑦 𝑥3 = 3
Y las iteraciones sucesivas son,
𝑥1 = 1.995 , 𝑥2 = 1.02 𝑦 𝑥3 = 2.997
Y después
𝑥1 = 1.9983 , 𝑥2 = 0.9999 𝑦 𝑥3 = 2.9995
La sustitución de los valores 𝒙𝟏 = 𝟐 , 𝒙𝟐 = 𝟏 𝒚 𝒙𝟑 = 𝟑 en el sistema inicial demuestra que
el proceso está convergiendo rápidamente a la solución verdadera. Si se utiliza las
𝒑 𝐥𝐧(𝟏𝟎)
ecuaciones − 𝑫−𝟏 (𝑳 + 𝑼), 𝒓 = − 𝐥𝐧(𝒑𝒔 )
se tiene que el radio espectral y el número de
iteraciones para reducir el error total por un facto (𝟏𝟎−𝟑 )
Son, respectivamente (𝒑𝒔 = 𝟎. 𝟎𝟕𝟓𝟓) y (𝒓 = 𝟑).
Es claro que las iteraciones pueden ser un método muy útil de solución. Se demuestra
ahora que este también puede ser un método inapropiado en ciertas circunstancias. Las
ecuaciones del ejemplo se pueden tomar en orden diferente:

𝒙𝟏 − 𝟐𝒙𝟐 + 𝟏𝟎𝟎𝒙𝟑 = 𝟑𝟎𝟎


𝟏𝟎𝒙𝟏 + 𝒙𝟐 + 𝒙𝟑 = 𝟐𝟒
−𝒙𝟏 + 𝟐𝟎𝒙𝟐 + 𝒙𝟑 = 𝟐𝟏

Con este acomodo, el radio espectral del sistema es (𝒑𝒔 = 𝟐𝟕. 𝟕𝟖𝟎𝟐), lo cual lo hace
𝒑 𝐥𝐧(𝟏𝟎)
divergente. Si se calcula el número de iteraciones con la ecuación 𝒓 = − 𝐥𝐧(𝒑𝒔 )
, se
obtiene un numero negativo, lo cual no tiene sentido.
A continuación se muestra que esta forma de ordenar las ecuaciones es divergente,
resolviendo el sistema numéricamente. Despejando de la primera ecuación la primera
variable y así sucesivamente, se obtiene
𝒙𝟏 = 𝟑𝟎𝟎 + 𝒙𝟐 − 𝟏𝟎𝟎𝒙𝟑
𝒙𝟐 = 𝟐𝟒 − 𝟏𝟎𝒙𝟏 − 𝒙𝟑
𝒙𝟑 = 𝟐𝟏 + 𝒙𝟏 − 𝟐𝟎𝒙𝟐
Utilizando los valores 𝒙𝟏 = 𝟎, 𝒙𝟐 = 𝟎 𝒚 𝒙𝟑 = 𝟎 para a primera aproximación, se obtiene
las aproximaciones sucesivas
𝒙𝟏 = 𝟑𝟎𝟎, 𝒙𝟐 = 𝟐𝟒 𝒚 𝒙𝟑 = 𝟐𝟏
Y
𝒙𝟏 = −𝟏𝟕𝟓𝟐, 𝒙𝟐 = −𝟐𝟗𝟗𝟕 𝒚 𝒙𝟑 = −𝟑𝟖𝟕𝟗
Y no hay probabilidad de que esta secuencia converja a los valores 𝒙𝟏 = 𝟐, 𝒙𝟐 =
𝟏 𝒚 𝒙𝟑 = 𝟑. Por tanto, es crucial obtener algún conocimiento para que se pueda asegurar
que las iteraciones converjan. El método anterior, conocido como el método de jacobi,
para vez se usa porque existen varias mejores que se pueden utilizar para elevar la
rapidez de convergencia. Sin embargo, si se cuenta con una computadora que efectué
los cálculos en paralelo, se recomienda este método por ser altamente paralelizable.

5.5.2 MÉTODO DE GAUSS-SEIDEL


El método de Gauss-Seidel es muy semejante al método de Jacobi. Mientras que en el
de Jacobi se utiliza el valor de las incógnitas para determinar una nueva aproximación,
en el de Gauss-Seidel se va utilizando los valores de las incógnitas recién calculados
en la misma iteración, y no en la siguiente.
Por ejemplo, en el método de Jacobi se obtiene en el primer cálculo x i+1, pero este
valor de x no se utiliza sino hasta la siguiente iteración.
Por ejemplo, en el método de Jacobi se obtiene en el primer cálculo x i+1, pero este
valor de x no se utiliza sino hasta la siguiente iteración. En el método de Gauss-Seidel
en lugar de eso se utiliza de x i+1 en lugar de x i en forma inmediata para calcular el
valor de y i+1 de igual manera procede con las siguientes variables;
Por ejemplo, en el método de Jacobi se obtiene en el primer cálculo x i+1, pero este
valor de x no se utiliza sino hasta la siguiente iteración. En el método de Gauss-Seidel
en lugar de eso se utiliza de x i+1 en lugar de x i en forma inmediata para calcular el
valor de y i+1 de igual manera procede con las siguientes variables; siempre se utilizan
las variables recién calculadas.
EJEMPLO

 Ejemplo Partiendo de ( x = 1, y = 2) aplique dos iteraciones del método de Gauss-


Seidel para resolver el sistema: "
5x+2y=1
x−4y=0
Solución Debemos primeramente despejar de la ecuación la incógnita correspondiente.
x = 0.20 + 0.00 x − 0.40y
y = 0.00 + 0.25 x + 0.00y

Aplicamos la primera iteración partiendo de x 0 = 1.00 y y 0 = 2.00:


x 1 = 0.20 + 0.00 (+1.000) − 0.40 (2.00) = − 0.600
y 1 = 0.00 + 0.25 ( − 0.600) + 0.00 (2.00) = − 0.15
Aplicamos la segunda iteración partiendo de x 1 = − 0.600 y y 1 = − 0.15:
x 2 = 0.20 + 0.00 ( − 0.600) − 0.40 ( − 0.15) = 0.26
y 2 = 0.00 + 0.25 ( 0.26) + 0.00 ( − 0.15) = 0.065
 Ejemplo Partiendo de (x = 1, y = 2, z = 0) aplique dos iteraciones del método de
Gauss-Seidel para resolver el sistema:
10 x + 0 y − z = − 1
4 x + 12 y − 4 z = 8
4 x + 4 y + 10 z = 4
Solución Debemos primeramente despejar de la ecuación la incógnita correspondiente.
x = − 0.10 + 0.00 x + 0.00 y + 0.10 z
y = 0.66 − 0.33 x + 0.00 y + 0.33 z
z = 0.40 − 0.40 x − 0.40 y + 0.00 z
Aplicamos la primera iteración partiendo de x 0 = 1.00, y 0 = 2.00, y z = 0.00:
x 1 = − 0.10 + 0.00(1.00) + 0.00 (2.00) + 0.10 (0.00) = − 0.1
y 1 = 0.66 − 0.33( − 0.10) + 0.00 (2.00) + 0.33 (0.00) = 0.70
z 1 = 0.40 − 0.40( − 0.10) − 0.40 ( 0.70) + 0.00 (0.00) = 0.16
Aplicamos la primera iteración partiendo de x 0 = 1.00, y 0 = 2.00, y z = 0.00:
x 1 = − 0.10 + 0.00(1.00) + 0.00 (2.00) + 0.10 (0.00) = − 0.1
y 1 = 0.66 − 0.33( − 0.10) + 0.00 (2.00) + 0.33 (0.00) = 0.70
z 1 = 0.40 − 0.40( − 0.10) − 0.40 ( 0.70) + 0.00 (0.00) = 0.16
Aplicamos la segunda iteración partiendo de x 1 = − 0.10 y y 1 = 0.70 y z 1 = 0.16:
x 1 = − 0.10 + 0.00( − 0.10) + 0.00 (0.70) + 0.10 (0.16) = − 0.084
y 1 = 0.66 − 0.33( − 0.084) + 0.00 (0.70) + 0.33 (0.16) = 0.748
z 1 = 0.40 − 0.40( − 0.084) − 0.40 ( 0.748) + 0.00 (0.16) = 0.134
 Utilice el método iterativo de gauss-seidel para encontrar las soluciones
aproximadas de
10𝑥1 + 𝑥2 + 2𝑥3 = 6
−𝑥1 + 11𝑥2 − 𝑥3 + 3𝑥4 = 25
2𝑥1 − 𝑥2 + 10𝑥3 − 𝑥4 = −11
3 𝑥2 − 𝑥3 + 8𝑥4 = 15
Comenzando con x=(0,0,0,0)2 e iterando hasta que
||𝑥 (𝑘) − 𝑥 (𝑘−1) ||∞
|||𝑥 (𝑘) ||∞
< 10−3

La solución está por el método de gauss-seidel escribimos el sistema, para cada k = 1,


2,….. Como

(𝑘) 1 (𝑘−1) 1 (𝑘−1) 3


𝑥1 = 𝑥 − 𝑥3 +
10 2 5 5

(𝑘) 1 (𝑘) 1 (𝑘−1) 3 (𝑘−1) 25


𝑥2 = 𝑥1 + 𝑥3 − 𝑥 +
11 11 11 4 11

(𝑘) 1 (𝑘) 1 (𝑘) 1 (𝑘−1) 11


𝑥3 =− 𝑥1 + 𝑥2 + 𝑥 −
5 10 10 4 10

(𝑘) 3 (𝑘) 1 (𝑘) 15


𝑥4 =− 𝑥 + 𝑥3 +
8 2 8 8
Cuando 𝑥 (0) = (0,0,0,0)1 , 𝑡𝑒𝑛𝑒𝑚𝑜𝑠 𝑥 (1) =(0.6000, 2.3272, -0.9873, 0.8789)´. Las
iteraciones subsecuentes generan los valores de la tabla

k 0 1 2 3 4 5
(𝑘) 0.0000 0.6000 1.030 1.0065 1.0009 1.0001
𝑥1
(𝑘) 0.0000 2.3272 2.037 2.0036 2.0003 2.0000
𝑥2
(𝑘) 0.0000 -0.9873 -1.014 -1.0025 -1.0003 -1.0000
𝑥3
(𝑘) 0.0000 0.8789 0.9844 0.9983 0.9983 1.0000
𝑥4

Dado que

||𝑥 (5) − 𝑥 (5−1) ||∞ 0.0008


= = 4 ∗ 10−4
|||𝑥 (5) ||∞ 2.000

Se acepta 𝑥 (5) como una aproximación razonable a la solución. Note que en el método
de Jacobi requirió el doble de iteraciones para alcanzar el mismo grado de exactitud.
Si se quiere expresar el método de Gauss-Seidel en forma matricial, multiplicamos
ambos lados de la ecuación por 𝑎Ü y reunimos todos los k-ésimos términos de iteración,
los que nos da
(𝑘) (𝑘) (𝑘) (𝑘−1) (𝑘−1)
𝑎𝑖1 𝑥3 + 𝑎𝑖2 𝑥2 + ⋯ + 𝑎𝑖𝑖 𝑥𝑖 = −𝑎𝑖,𝑖+1 𝑥𝑖+1 − ⋯ − 𝑎𝑖𝑛 𝑥𝑛 + 𝑏𝑖

Por cada i= 1, 2, …, n. al escribir todas las n ecuaciones obtenemos


(𝑘) (𝑘−1) (𝑘−1) (𝑘−1)
𝑎11 𝑥1 = −𝑎12 𝑥2 − 𝑎13 𝑥3 … − 𝑎1𝑛 𝑥𝑛 + 𝑏1 ,
(𝑘) (𝑘) (𝑘−1) (𝑘−1)
𝑎21 𝑥1 + 𝑎22 𝑥2 = −𝑎23 𝑥3 − ⋯ − 𝑎2𝑛 𝑥𝑛 + 𝑏2
(𝑘) (𝑘) (𝑘)
𝑎𝑛1 𝑥1 + 𝑎𝑛2 𝑥2 + ⋯ + 𝑎𝑛𝑛 𝑥𝑛 = +𝑏𝑛𝑖

Y con las definiciones de D, L y U, tenemos que el método de Gauss-Seidel esta


representado por

(𝐷 − 𝐿)𝑥 (𝑘) = 𝑈𝑥 (𝑘−1) + 𝑏


Y

𝑥 (𝑘) = (𝐷 − 𝐿)−1 𝑈𝑥 (𝑘−1) + (𝐷 − 𝐿)−1 𝑏 . 𝑝𝑎𝑟𝑎 𝑐𝑎𝑑𝑎 𝑘 = 1, 2, ….

Si usamos 𝑇𝑔 = (𝐷 − 𝐿)−1 𝑈 𝑦 𝐶𝑔 = (𝐷 − 𝐿)−1 𝑏, 𝑒𝑙 𝑚é𝑡𝑜𝑑𝑜 𝑑𝑒 𝐺𝑎𝑢𝑠𝑠 −


𝑆𝑒𝑖𝑑𝑒𝑙 𝑡𝑖𝑒𝑛𝑒 𝑙𝑎 𝑓𝑜𝑟𝑚𝑎

𝑥 (𝑘) = 𝑇𝑔 𝑥 (𝑘−1) + 𝐶𝑔

Para que la matriz triangular inferior D-L sea no singular, es necesario y suficiente que
𝑎𝑖𝑖 ≠ 0 para cada i=1, 2,…..n.
Método iterativo de Gauss-Seidel

Para resolver Ax = b dada un aproximación inicial 𝑥 (0) :


ENTRADA el número de ecuaciones e incógnitas n; los elementos 𝑎𝑖𝑗 , 1 ≤ 𝑖, 𝑗 ≤ 𝑛 de la
matriz A; los elementos 𝑏𝑖 , 1 ≤ 𝑖 ≤ 𝑛 de b; los elementos 𝑋𝑂𝑖 , 1 ≤ 𝑖 ≤ 𝑛 de 𝑋𝑂 = 𝑥 (0) , la
tolerancia TOL; el número de iteraciones N
SALIDA la solución aproximada 𝑥𝑖 , . . , 𝑥𝑛 o el mensaje de que se rebaso el numero de
iteraciones
Paso1: haga k=1
Paso2: mientras (k ≤ N) haga los pasos 3-6
Paso3: para i = 1,…, n
1
Haga 𝑥1 = 𝑎 [− ∑𝑖−1 𝑛
𝑗=1 𝑎𝑖𝑗 𝑥𝑗 − ∑𝑗=𝑖+1 𝑎𝑖𝑗 𝑋𝑂𝑗 + 𝑏𝑖
𝑖𝑖

Paso4: Si||x – XO|| < TOL entonces SALIDA (𝑥𝑖 , . . , 𝑥𝑛 ):


(procedimiento terminado exitosamente)
PARAR
Paso5: Haga k=k+1
Paso6: Para i=1,….., n tome 𝑋𝑂𝑖 = 𝑥𝑖
Paso7: Salida (´Número máximo de iteraciones excedido´);
(Procedimiento terminado exitosamente)
Parar

You might also like