Você está na página 1de 6

Metodos iterativos

para sistemas de ecuaciones lineales


Natalia Boal - Manuel Palacios - Sergio Serrano
Departamento de Matematica Aplicada
Objetivos
Trabajar con los metodos iterativos habituales (Jacobi, Gauss-Seidel y relajacion) para
la resolucion numerica de sistemas de ecuaciones lineales.
Analizar las principales caractersticas y propiedades de estos metodos.
1. Metodos iterativos clasicos
La forma clasica de construir metodos iterativos para la resoluci on numerica de sistemas
lineales Ax = b se basa en considerar una descomposicion de la matriz A en la forma A =
M N, con M regular. De manera que, dada una aproximaci on inicial x
(0)
, para m 0, se
dene la recurrencia
x
(m+1)
= (M
1
N) x
(m)
+ (M
1
b) M x
(m+1)
= N x
(m)
+ b. (1)
La matriz B = M
1
N se denomina matriz de iteracion del metodo. Los metodos as cons-
truidos son todos consistentes y su convergencia depende del radio espectral de la matriz
B.
Los metodos iterativos cl asicos responden todos a la estructura (1); en cada uno de ellos
se considera una elecci on distinta de la matriz M.
1.1. Metodo de Jacobi
Consideremos el sistema Ax = b donde la matriz A la suponemos inversible con a
jj
= 0 para
todo j y la escribimos en la forma A = D E F con
D =
_
_
_
_
_
_
a
11
0 . . . 0
0 a
22
. . . 0
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . a
nn
_
_
_
_
_
_
, E =
_
_
_
_
_
_
0 0 . . . 0
a
21
0 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
a
n1
. . . a
n(n1)
0
_
_
_
_
_
_
,
F =
_
_
_
_
_
_
0 a
12
. . . a
1n
.
.
.
.
.
.
.
.
.
.
.
.
0 . . . 0 a
(n1)n
0 0 . . . 0
_
_
_
_
_
_
.
Matem aticas II Metodos iterativos para sistemas de ecuaciones lineales 2
El metodo de Jacobi se dene tomando M = D, por lo que N = M A = E + F. As,
a partir de un vector inicial x
(0)
, se construye una sucesi on de vectores {x
(m)
} mediante la
iteraci on
Dx
(m+1)
= (E + F)x
(m)
+b.
Mirando la relaci on anterior componente a componente, se tiene que
x
(m+1)
i
=
_
_

i1

j=1
a
ij
x
(m)
j

n

j=i+1
a
ij
x
(m)
j
+ b
i
_
_
/a
ii
, i = 1, 2, ..., n. (2)
Se puede comprobar que todas las componentes de la soluci on en la iteracion m+1 dependen
de las componentes de la iteracion anterior.
Nota. Como hemos visto en teora, si la matriz A es estrictamente diagonal dominante, enton-
ces el metodo de Jacobi converge. Por ello, es conveniente preparar el sistema reordenando
las ecuaciones de forma que en la diagonal principal de la matriz de coecientes se coloquen
los coecientes de mayor valor absoluto de cada una de las ecuaciones. De esta forma, si la
nueva matriz A es estrictamente diagonal dominante, el metodo convergera.
A continuaci on aparece el contenido de un chero .m que dene una funcion en Octave,
llamada met jacobi, que implementa este metodo.
met jacobi.m
function [x,iter]=met_jacobi(A,b,x0)
% M etodo iterativo de Jacobi aplicado al sistema Ax=b
%
% Valores de entrada: A matriz de coeficientes
% b vector (columna) de terminos independientes
% x0 vector (columna) inicial
%
% Valores de salida: x aproximacion a la solucion
% iter numero de iteraciones realizadas
max_iter=100; % Fijamos un n umero m aximo de iteraciones
tol=eps; % y una tolerancia
[n,m]=size(A); % N umero de filas y columnas de A, deben coincidir m y n
x_new=x0; % Tomamos el vector inicial
iter=0; % Inicializamos el contador de iteraciones a 0
do % Empezamos el bucle principal del metodo
iter=iter+1; % Vamos aumentando el contador de iteraciones
x_old=x_new; % Actualizamos el valor de la aproximacion calculada
Matem aticas II Metodos iterativos para sistemas de ecuaciones lineales 3
for i=1:n
x_new(i)=(-A(i,1:i-1)*x_old(1:i-1)-A(i,i+1:n)*x_old(i+1:n)+b(i))/A(i,i);
end % Calculamos la nueva aproximacion
dif=norm(x_new-x_old); % Criterio de parada: || x_new - x_old || < tol
until (dif<=tol | iter==max_iter)
% Acabamos el bucle principal del m etodo, porque hemos conseguido convergencia
% o porque hemos superado el numero maximo de iteraciones.
if dif>tol % no conseguimos convergencia
disp(N umero m aximo de iteraciones superado)
end
x=x_new; %

Ultimo valor calculado
Ejercicio 1.1 Comprueba que el programa funciona correctamente sobre el sistema
_
_
_
5 1 1
1 3 0
1 1 6
_
_
_
_
_
_
x
y
z
_
_
_ =
_
_
_
7
1
11
_
_
_
tomando como vector inicial x
(0)
= (0, 0, 0)
t
. (Solucion exacta: (1, 0, 2)
t
.)
1.2. Metodo de Gauss-Seidel
El metodo de Gauss-Seidel se dene tomando M = DE, por lo que N = F. De este modo,
dado un vector inicial x
(0)
, la sucesi on de vectores {x
(m)
} se construye seg un la siguiente
recurrencia,
(D E) x
(m+1)
= Fx
(m)
+b.
Mirando la relaci on anterior componente a componente, se tiene que
x
(m+1)
i
=
_
_

i1

j=1
a
ij
x
(m+1)
j

n

j=i+1
a
ij
x
(m)
j
+ b
i
_
_
/a
ii
, i = 1, 2, ..., n. (3)
Se puede comprobar que cada componente de la solucion depende de los ultimos valores
calculados de las restantes componentes.
Ejercicio 1.2 Compara las formulas (2) y (3) y modica el programa del metodo de Jacobi
para construir una funcion en Octave, llamada met gauss seidel, con los mismos argu-
mentos que met jacobi, en la que se implemente el metodo de Gauss-Seidel.
Ejercicio 1.3 Chequea la funcion met gauss seidel con el sistema del ejercicio 1.1.
Matem aticas II Metodos iterativos para sistemas de ecuaciones lineales 4
1.3. Metodo de relajacion
La familia de metodos de relajaci on se dene tomando M =
1

D E con = 0, por lo que


N =
1

D + F. En estos metodos iterativos, a partir de un vector inicial x


(0)
, se construye
una sucesion de vectores {x
(m)
} tal que
(D E) x
(m+1)
= ((1 )D + F) x
(m)
+ b,
o bien, componente a componente
x
(m+1)
i
=

a
ii
_
_

i1

j=1
a
ij
x
(m+1)
j

n

j=i+1
a
ij
x
(m)
j
+ b
i
_
_
+ (1 )x
(m)
i
, i = 1, 2, ..., n. (4)
Ejercicio 1.4 Compara las formulas (3) y (4) y construye una funcion en Octave, llamada
met relajacion con argumentos de entrada: la matriz del sistema A, el vector de terminos
independientes b, el vector inicial x
(0)
y el parametro . Para ello te puedes ayudar de la
funcion met gauss seidel.
Ejercicio 1.5 Chequea la funcion met relajacion con el sistema del ejercicio 1.1.
Ejercicio 1.6 Aplica el metodo de Jacobi al sistema
_
_
_
1 1 6
5 1 1
1 3 0
_
_
_
_
_
_
x
y
z
_
_
_ =
_
_
_
11
7
1
_
_
_
tomando como vector inicial x
(0)
= (0, 0, 0)
t
. Explica el resultado y como obtener una aproxi-
macion adecuada. Compara la solucion obtenida con la del ejercicio 1.1.
2. Analisis de la convergencia
Todos los metodos iterativos descritos en la secci on anterior son consistentes por construccion,
luego la convergencia de estos viene determinada por el valor del radio espectral de la matriz
de iteraci on. En la practica no se calcula este valor puesto que ello puede ser mas costoso que
la resolucion del propio sistema. Sin embargo, con una nalidad academica y con objeto de
ilustrar los resultados teoricos estudiados, vamos a calcular con la ayuda de Octave la matriz
de iteracion y el radio espectral del metodo de Jacobi en el sistema lineal:
_
_
_
1 2 3
4 2 6
2 3 1
_
_
_
_
_
_
x
y
z
_
_
_ =
_
_
_
11
7
1
_
_
_. (5)
Las ordenes seran las siguientes:
Matem aticas II Metodos iterativos para sistemas de ecuaciones lineales 5
octave:1> A=[1 2 3;4 2 6;2 3 -1]
A =
1 2 3
4 2 6
2 3 -1
octave:2> D=diag(diag(A))
D =
1 -0 -0
-0 2 -0
-0 -0 -1
octave:3> E = - tril(A,-1)
E =
-0 -0 -0
-4 -0 -0
-2 -3 -0
octave:4> F = - triu(A,1)
F =
-0 -2 -3
-0 -0 -6
-0 -0 -0
octave:5> M=D; N=(E+F); Bj=inv(M)*N
Bj =
-0 -2 -3
-2 -0 -3
2 3 -0
octave:6> rho_Bj=max( abs (eig(Bj) ) )
rho_Bj = 3.8730
Ejercicio 2.1 Para el sistema de ecuaciones lineales (5) calcula la matriz de iteracion, B
GS
,
del metodo de Gauss-Seidel y la matriz de iteracion, B

, del metodo de relajacion (con =0.5).


Nota: A efectos de comprobaci on, (B
G
) =8.4244 y (B

) =2.0607,
B
G
=
_
_
_
0 2 3
0 4 3
0 8 3
_
_
_, B

=
_
_
_
0.5 1 1.5
0.5 1.5 0
0.25 1.25 1
_
_
_.
Ejercicio 2.2 Analiza la convergencia de los metodos de Jacobi y Gauss-Seidel para resolver
los sistemas
Matem aticas II Metodos iterativos para sistemas de ecuaciones lineales 6
(S1)
_

_
x + 2y 2z = 1,
x + y + z = 3,
2x + 2y + z = 5,
(S2)
_

_
2x y z = 2,
2x + 2y + 2z = 6,
x y + 2z = 0.
Que conclusion sacas de dicho analisis?
Nota. En los siguientes ejercicios, por defecto y para todos los metodos, consideraremos como
vector inicial el vector nulo.
Ejercicio 2.3 Utiliza el metodo de Jacobi para resolver el sistema
_

_
4x + 2y + z = 5,
x + y + 3z = 4,
2x + 5y + z = 1.
a) Como evoluciona el error? Calcula el radio espectral de la matriz de iteracion del metodo
y relacionalo con el resultado obtenido.
b) Es posible reordenar las ecuaciones del sistema de forma que el metodo converja? Razo-
na la respuesta y, en caso armativo, explica como hacerlo e indica cual es el resultado
que se obtiene.
c) Que ocurrira si resolvemos el sistema reordenado con el metodo de Gauss-Seidel?
d) Resuelve el sistema reordenado con el metodo de relajacion utilizando los valores del
parametro =0.5, 0.8, 1, 1.6, 1.7 y 2.1 y anota el n umero de iteraciones necesario para
obtener convergencia.
La funcion pintar relaj(A,ini,fin) dibuja la graca del radio espectral de la matriz
de iteracion del metodo de relajacion frente al valor del parametro , con [ini, fin].
Ay udate de esta funcion para justicar los resultados obtenidos.
e) Usando la funcion pintar relaj(A,ini,fin) obten un valor aproximado del valor opti-
mo de . Utiliza dicho valor para obtener un valor aproximado de la solucion del sistema
lineal. Comprueba que con este valor se alcanza convergencia de forma mas rapida que
en los casos anteriores.
f ) El valor optimo calculado en el apartado anterior encaja con alg un resultado teorico
conocido?
Ejercicio 2.4 Sea el sistema de ecuaciones denido al ejecutar la instruccion sisttridiag.
a) Estudia la convergencia de los metodos de Jacobi y Gauss-Seidel sin calcular su radio
espectral.
b) Sabemos que una condicion necesaria para que el metodo de relajacion converja es que el
parametro de relajacion pertenezca al intervalo (0, 2). En este ejemplo en concreto esta
tambien es condicion suciente, por que?
c) Sin resolver numericamente, ordena de mas rapido a mas lento los metodos de
relajacion con =0.5, 0.78, 1 y 1.67.
d) Resuelve numericamente y comprueba que la ordenacion que has dado es correcta.

Você também pode gostar