Está en la página 1de 9

N UNIVERSIDAD

PRIVADA DEL NORTE

MÉTODOS NUMÉRICOS PARA INGENIERÍA

Tema: MÉTODOS ITERATIVOS PARA SISTEMAS DE ECUACIONES LINEALES

1. Método de iteración de Jacobi.


Ejemplo 1 Consideremos el sistema de ecuaciones:

4x − y + z = 7
4x − 8y + z = −21 (1)
−2x + y + 5z = 15

Estas ecuaciones las podemos escribir como:

7+y−z
x = 4
21+4x+z
y = 8 (2)
15+2x−y
z = 5

lo que sugiere el siguiente proceso iterativo:

7+yk −zk
xk+1 = 4
21+4xk +zk
yk+1 = 8 (3)
15+2xk −yk
zk+1 = 5

Vamos a comprobar que si empezamos con P0 = (x0 , y0 , z0 ) = (1, 2, 2), entonces la iteración (3)
parece converger a la solución (2, 4, 3).

Sustituyendo x0 = 1, y0 = 2 y z0 = 2 en el miembro derecho de la relación (3), obtenemos:

Facultad de Ingeniería Departamento de Ciencias

1
N UNIVERSIDAD
PRIVADA DEL NORTE

7+2−1
x1 = 4 = 1,75
21+4+2
y1 = 8 = 3,375
15+2−2
z1 = 5 = 3,00

El nuevo punto P1 = (1 .75, 3.375, 3. 00) está más cerca de (2, 4, 3) que P0 . En la Tabla 1 se
muestra cómo los puntos {Pk } generados por la iteración (3) a (2, 4, 3).

TABLA 1. Convergencia del método iterativo de Jacobi para el sistema (1)

k xk yk zk
0 1.0 2.0 2.0
1 1.75 3.375 3.0
2 1.84375 3.875 3.025
3 1.9625 3.925 2.9625
4 1.99062500 3.97656250 3.00000000
5 1.99414063 3.99531250 3.00093750
.. .. .. ..
. . . .
15 1.99999993 3.99999985 2.99999993
.. .. .. ..
. . . .
19 2.00000000 4.00000000 3.00000000

Este proceso se conoce como método de iteración de Jacobi y puede usarse para
resolver algunas clases de sistemas lineales. Tras 19 pasos, vemos que, al aplicarlo al sistema
(3), conseguimos 9 cifras decimales de aproximación (2 .00000000, 4.00000000, 3.00000000 ).

En la resolución numérica de ecuaciones en derivadas parciales suelen aparecer sistemas


de ecuaciones lineales con incluso 100000 incógnitas; en estos sistemas la matriz de los coefi-
cientes es dispersa; es decir, un alto porcentaje de los elementos de la matriz son iguales a cero.
Si hay algún tipo de patrón en la distribución de los elementos distintos de cero (ejemplo: los
sistemas tridiagonales), entonces un método iterativo puede resultar muy eficaz en la resolución
de estos sistemas tan enormes.

Algunas veces el método iterativo de Jacobi no funciona. Vamos a realizar un experimento


para comprobar que una reordenación de las ecuaciones del sistema original puede tener como
consecuencia que el método iterativo de Jacobi aplicado al nuevo sistema produzca una sucesión
de puntos divergente.

Facultad de Ingeniería Departamento de Ciencias

2
N UNIVERSIDAD
PRIVADA DEL NORTE

Ejemplo 2 Reordenemos el sistema (1) como sigue:

−2x + y + 5z = 15
4x − 8y + z = −21 (4)
4x − y + z = 7

−15+y+5z
x = 3
21+4x+z
y = 8
(5)
z = 7 − 4x + y

entonces el método iterativo de Jacobi es, en este caso,

−15+yk +5zk
xk+1 = 3
21+4xk +zk
yk+1 = 8 (6)
7−4xk +yk
zk+1 = 5

Veamos que si empezamos con el punto P0 = (x0 , y0 , z0 ) = (1, 2, 2), entonces el proceso iterativo
(6) diverge.

TABLA 2. Divergencia del método iterativo de Jacobi para el sistema (4)

k xk yk zk
0 1.0 2.0 2.0
1 -1.5 3.375 5.0
2 6.6875 2.5 16.375
3 34.6875 8.015625 -17.25
4 -46.617188 17.8125 -123.73438
5 -307.929688 -36.150391 211.28125
6 502.62793 -124.929688 1202.56836
.. .. .. ..
. . . .

Sustituimos x0 = 1, y0 = 2 y z0 = 2 en el miembro derecho de (6) y obtenemos los nuevos


valores x1 , y1 y z1 siguientes:

Facultad de Ingeniería Departamento de Ciencias

3
N UNIVERSIDAD
PRIVADA DEL NORTE

−15+2+10
x1 = 2 = −1,5
21+4+2
y1 = 8 = 3,375
z1 = 7−4+2 = 5,00

El nuevo punto P1 = (−1 .5, 3.375, 5.00 ) está más lejos de la solución (2, 4, 3) que P0 . De hecho
el proceso iterativo (6) diverge como se muestra en la Tabla 2.

2. Método iterativo de Gauss-Seidel


Algunas veces podemos acelerar la convergencia. Observemos que en el método iterativo de Jacobi
(3) se produce tres sucesiones {xk }, {yk } y {zk } que convergen, respectivamente a 2, 4 y 3. Puesto
que xk+1 es, probablemente, mejor aproximación al lı́mite que xk , serı́a razonable usar xk+1 en
vez de xk a la hora de calcular yk+1 y, de forma semejante, serı́a mejor usar xk+1 e yk+1 en el
cálculo de zk+1 . El siguiente ejemplo muestra lo que ocurre cuando se aplica este razonamiento
al sistema de ecuaciones del ejemplo 1.

Ejemplo 3 Consideremos el sistema de ecuaciones dado en (1) y el proceso iterativo, llamado


método de Gauss-Seidel, sugerido por (2):
7+yk −zk
xk+1 = 4
21+4xk+1 +zk
yk+1 = 8
(7)
15+2xk+1 −yk+1
zk+1 = 5

TABLA 3. Convergencia del método iterativo de Gauss-Seidel para el sistema (1)

k xk yk zk
0 1.0 2.0 2.0
1 1.75 3.75 2.95
2 1.95 3.96875 2.98625
3 1.995625 3.99609375 2.99903125
.. .. .. ..
. . . .
8 1.99999983 3.99999988 2.99999996
9 1.99999998 3.99999999 3.00000000
10 2.00000000 4.00000000 3.00000000

Facultad de Ingeniería Departamento de Ciencias

4
N UNIVERSIDAD
PRIVADA DEL NORTE

Veamos que si empezamos con P0 = (x0 , y0 , z0 ) = (1, 2, 2), entonces el proceso iterativo (7)
converge a la solución (2, 4, 3).

Sustituyendo y0 = 2 y z0 = 2 en la primera ecuación de (7) obtenemos

7+2−2
x1 = = 1,75
4

Sustituyendo ahora x1 = 1,75 y z0 = 2 en la segunda ecuación de (7) obtenemos

21 + 4 (1,75) + 2
y1 = = 3,75
8

Finalmente, sustituyendo x1 = 1,75 e y1 = 3,75 en la tercera ecuación de (7) obtenemos

15 + 2 (1,75) − 3,75
z1 = = 2,95
5

El nuevo punto P1 = (1 .75, 3.75, 2.95 ) está más cerca de (2, 4, 3) que P0 y es mejor que el
punto obtenido en el ejemplo 1. En la Tabla 3 se muestra cómo los puntos {Pk } generados por
la iteración (7) convergen a (2, 4, 3).

A la vista de los ejemplos 2 y 3, se hace necesario disponer de algún criterio que determine
si el método iterativo de Jacobi converge. Para ello damos la siguiente definición.

Definición 1 Se dice que una matriz A de orden N × N es de diagonal estrictamente


dominante cuando

N
X
|akk | > |akj | para k = 1, 2, . . . , N (8)
j=1,j6=k

Esto significa que en cada fila de la matriz, el tamaño del elemento que está en la diagonal
principal debe ser mayor que la suma de los tamaños de todos los demás elementos de la fila. La
matriz de los coeficientes del sistema lineal (1), en el ejemplo 1, es de diagonal estrictamente
dominante porque

Facultad de Ingeniería Departamento de Ciencias

5
N UNIVERSIDAD
PRIVADA DEL NORTE

En la primera fila: |4| > |−1| + |1|

En la segunda fila: |−8| > |4| + |1|

En la tercera fila: |5| > |−2| + |1|

Todas las filas verifican la relación (8) de la definición 1; por tanto, la matriz de los coeficientes
A del sistema lineal (1) es de diagonal estrictamente dominante.

La matriz de los coeficientes A del sistema lineal (4), en el ejemplo (2), no es de diagonal
estrictamente dominante, porque

En la primera fila: |−2| < |1| + |5|

En la segunda fila: |−8| > |4| + |1|

En la tercera fila: |1| < |4| + |−1|

Vamos a considerar ahora los procesos iterativos de Jacobi y Gauss-Seidel con mayor
generalidad. Supongamos que tenemos un sistema de ecuaciones lineales

a11 x1 + a12 x2 + . . . + a1j xj + . . . + a1N xN = b1


a21 x1 + a22 x2 + . . . + a2j xj + . . . + a2N xN = b2
.. .. .. .. ..
. . . . .
(9)
aj1 x1 + aj2 x2 + . . . + ajj xj + . . . + ajN xN = bj
.. .. .. .. ..
. . . . .
aN 1 x1 + aN 2 x2 + . . . + aN j xj + . . . + aN N xN = bN

 
(k) (k) (k) (k)
Sea Pk = x1 , x2 , . . . , xj , . . . , xN el k-ésimo punto obtenido, de manera que el siguiente
 
(k+1) (k+1) (k+1) (k+1)
punto es Pk+1 = x1 , x2 , . . . , xj , . . . , xN . El superı́ndice (k) de las coordenadas
de Pk nos permite identificar las coordenadas que pertenecen a dicho punto. Las fórmulas de
(k+1)
iteración usan la fila j-ésima de (9) para despejar xj como una combinación lineal de los
valores previamente obtenidos:

Método iterativo de Jacobi:

Facultad de Ingeniería Departamento de Ciencias

6
N UNIVERSIDAD
PRIVADA DEL NORTE

(k) (k) (k) (k)


(k+1) bj − aj1 x1 − . . . − ajj−1 xj−1 − ajj+1 xj+1 − . . . − ajN xN
xj = (10)
ajj

para j = 1, 2, . . . , N

En el método iterativo de Jacobi se usan todas las coordenadas del punto anterior en la
obtención de las coordenadas del punto nuevo, mientras que en el método iterativo de Gauss-
Seidel se emplean las coordenadas nuevas conforme se van generando:

Método Iterativo de Gauss-Seidel:

(k+1) (k+1) (k) (k)


(k+1) bj − aj1 x1 − . . . − ajj−1 xj−1 − ajj+1 xj+1 − . . . − ajN xN
xj = (11)
ajj

para j = 1, 2, . . . , N

Teorema 1 (Método iterativo de Jacobi). Supongamos que A es una matriz de diagonal estric-
tamente dominante. Entonces el sistema de ecuaciones lineales AX = B tiene solución única
X = P . Además, el proceso iterativo dado por la fórmula (10) produce una sucesión de vectores
{Pk } que converge a P cualquiera que sea el vector de partida P0 .

Puede probarse que el método iterativo de Gauss-Seidel también converge cuando la matriz
A es de diagonal estrictamente dominante ası́ como para matrices simétricas definidas positivas.
Normalmente el método de Gauss-Seidel converge más rápidamente que el de Jacobi, por lo que
es el que se suele preferir. Se dan casos, sin embargo, en los que el método de Jacobi converge
pero el de Gauss-Seidel no.

Programa 1 (Método iterativo de Jacobi). Resolución de un sistema lineal AX = B mediante


la generación de una sucesión {Pk } que converge a la solución, a partir de un punto inicial P0 .
Una condición sificiente para que el método sea aplicable es que A sea de diagonal estrictamente
dominante.

function X=jacobi(A,B,P,delta,max1)

%Datos
% - A es una matriz invertible de orden NxN.
% - B es una matriz de orden Nx1.
% - P es una matriz de orden Nx1: el punto inicial.

Facultad de Ingeniería Departamento de Ciencias

7
N UNIVERSIDAD
PRIVADA DEL NORTE

% - delta es la tolerancia para P.


% - max1 es el número máximo de iteraciones.
%Resultados
% - X es una matriz de orden Nx1:
% la aproximación a la solución de AX=B generada por el método
% iterativo de Jacobi
N=length(B);
for k=1:max1
for j=1:N
X(j)=(B(j)-A(j,[1:j-1,j+1:N])*P([1:j-1,j+1:N]))/A(j,j);
end
err=abs(norm(X’-P));
relerr=err/(norm(X)+eps);
P=X’;
if(err<delta)|(relerr<delta)
break
end
end
X=X’;

Programa 2 (Método iterativo de Gauss-Seidel). Resolución de un sistema lineal AX = B


mediante la generación de una sucesión {Pk } que converge a la solución, a partir de un punto
inicial P0 . Una condición suficiente para que el método sea aplicable es que A sea de diagonal
estrictamente dominante.

function X=gseid(A,B,P,delta,max1)

%Datos
% - A es una matriz invertible de orden NxN.
% - B es una matriz de orden Nx1.
% - P es una matriz de orden Nx1: el punto inicial.
% - delta es la tolerancia para P.
% - max1 es el número máximo de iteraciones.
%Resultados
% - X es una matriz de orden Nx1:
% la aproximación a la solución de AX=B generada por el método
% iterativo de Gauss-Seidel

N=length(B);
for k=1:max1

Facultad de Ingeniería Departamento de Ciencias

8
N UNIVERSIDAD
PRIVADA DEL NORTE

for j=1:N
if j==1
X(1)=(B(1)-A(1,2:N)*P(2:N))/A(1,1);
elseif j==N
X(N)=(B(N)-A(N,1:N-1)*(X(1:N-1))’)/A(N,N);
else
% X contiene la aproximación k-ésima
% y P la k-1-ésima.
X(j)=(B(j)-A(j,1:j-1)*X(1:j-1)-A(j,j+1:N)*P(j+1:N))/A(j,j);
end
end
err=abs(norm(X’-P));
relerr=err/(norm(X)+eps);
P=X’;
if(err<delta)|(relerr<delta)
break
end
end
X=X’;

Índice
1. Método de iteración de Jacobi. 1

2. Método iterativo de Gauss-Seidel 4

Facultad de Ingeniería Departamento de Ciencias

También podría gustarte