You are on page 1of 4

ANLISIS NUMRICO

3.5

ICM ESPOL

Mtodos iterativos para resolver sistemas de ecuaciones lineales

Dado un sistema de ecuaciones lineales


a1,1x1 + a1,2x2 + ... + a1,nxn = b1
a2,1x1 + a2,2x2 + ... + a2,nxn = b2
. . . .

an,1x1 + an,2x2 + ... + an,nxn = bn


Expresado abreviadamente en notacin matricial: AX = B
Para usar un mtodo iterativo, es necesario expresar el sistema en la forma X = G(X) con la misma
idea usada en el mtodo del punto fijo para resolver una ecuacin no lineal.
Una forma simple para obtener esta forma consiste en re-escribir el sistema despejando de la
ecuacin i la variable xi a condicin de que ai,i sea diferente de 0
Se obtiene el sistema:
x1 = 1/a1,1 (b1 a1,2x2 a1,3x3 - ... a1,nxn)
x2 = 1/a2,2 (b2 a2,1x1 a2,3x3 - ... a2,nxn)
. . . .

xn = 1/an,n (bn an,1x1 an,2x2 - ... an,n-1xn-1)


El cual puede escribirse con la notacin de sumatoria:
n
1
(bi - ai,j x j ); i = 1, 2, ..., n;
xi =
ai,i
j 1,j i
Este sistema est en la forma X = G(X) la cual sugiere su uso iterativo.

3.5.1 Mtodo de Jacobi


Utilizamos un superndice para indicar iteracin:
(k+1)

(k)

= G(X ), k=0, 1, 2, ....

(iteracin)

Este esquema iterativo constituye el mtodo de Jacobi, el cual se puede expresar en forma
desarrollada:

xi(k 1) =
(0)

1
(bi ai,i

j 1,j i

ai,j x (k)
j ); i = 1, 2, ..., n; k = 0, 1, 2, ...
(1)

(2)

es el vector inicial. A partir de este vector se obtienen sucesivamente los vectores X , X , ...
(k)

Si el mtodo converge, entonces X

tiende a la solucin X a medida que k crece:

X X
(k)

Ejemplo. Dadas las ecuaciones:


5x1 3x2 + x3 = 5
2x1 + 4x2 x3 = 6
2x1 3x2 + 8x3 = 4
Formule un esquema iterativo con el mtodo de Jacobi:
(k+1)
(k)
(k)
x1
= 1/5 (5 + 3x2 x3 )
(k+1)
(k)
(k)
x2
= 1/4 (6 2x1 + x3 )
(k+1)
(k)
(k)
x3
= 1/8 (4 2x1 + 3x2 )
k = 0, 1, 2, ...

Ing. Luis Rodrguez Ojeda, MSc.

ANLISIS NUMRICO

ICM ESPOL

(0)

(0)

(0)

Realice dos iteraciones, comenzando con los valores iniciales: x1 = x2 = x3 = 1


k=0:

(1)

(0)

(0)

(2)

(1)

(1)

x1 = 1/5 (5 + 3x2 x3 ) = 1/5 (5 + 3(1) (1)) = 1/5 (7) = 1.4


(1)
(0)
(0)
x2 = 1/4 (6 2x1 + x3 ) = 1/4 (6 2(1) + (1)) = 1/4 (5) = 1.25
(1)
(0)
(0)
x3 = 1/8 (4 2x1 + 3x2 ) = 1/8 (4 2(1) + 3(1)) = 1/8 (5) = 0.625

k=1:

x1 = 1/5 (5 + 3x2 x3 ) = 1/5 (5 + 3(1.25) (0.625)) = 1.6250


(2)
(1)
(1)
x2 = 1/4 (6 2x1 + x3 ) = 1/4 (6 2(1.4) + (0.625)) = 0.9563
(2)
(1)
(1)
x3 = 1/8 (4 2x1 + 3x2 ) = 1/8 (4 2(1.4) + 3(1.25)) = 0.6188

3.5.2 Un anlisis de convergencia del mtodo de Jacobi


Existen varios estudios de la convergencia de estos mtodos iterativos. El siguiente anlisis de la
convergencia de la frmula de Jacobi consiste en escribir el sistema de la siguiente manera:
x1 = b1/a1,1 + ( a1,2x2 a1,3x3 ... a1,nxn)/a1,1
x2 = b2/a2,2 + ( a2,1x1 a2,3x3 ... a2,nxn)/a2,2
.. . .

xn = bn/an,n + ( an,1x1 an,2x2 ... an,n-1xn-1)/an,n


Expresado en notacin matricial:
0
x1 b1 / a1,1
x b / a a / a
2 2 2,2 2,1 2,2

:
:
:


x 2 bn / an,n an,1 / an,n

a1,2 / a1,1
0

a1,3 / a1,1
a2,3 / a2,2

an,2 / an,n

an,3 / an,n

... a1,n / a1,1 x1


... a2,n / a 2,2 x 2

:
...
:

...
0
xn

Simblicamente:
X=C+DX

(1)

La forma iterativa de esta ecuacin:


(k+1)
(k)
X
=C+DX

(2)

De la resta de las ecuaciones (1) y (2) se obtiene


(k+1)
(k)
X-X
= D (X - X )
Si se define el error en la forma usual, pero vectorialmente:
(k)
(k)
E =X-X
(k+1)
(k+1)
E
=X-X
Se obtiene una relacin para los errores entre dos iteraciones consecutivas
(k+1)
(k)
E
=DE

(3)

Esta relacin expresa que la convergencia del mtodo est ligada a la estructura de la matriz D.
Para tener una medida para la convergencia, se toma la norma de la ecuacin del error (3)
|| E

(k+1)

|| || D || || E

(k)

||, k = 0, 1, 2, ...

Esta relacin establece como una condicin suficiente para la convergencia del mtodo de Jacobi
que la norma de la matriz D sea menor que uno.

Ing. Luis Rodrguez Ojeda, MSc.

ANLISIS NUMRICO

ICM ESPOL

Observando la forma de la matriz D se concluye que para obtener || D || < 1, en cada fila de la
matriz A la magnitud del elemento en la diagonal debe ser mayor que la suma de la magnitud de
los otros elementos de la fila. Si la matriz A cumple esta propiedad se dice que es diagonal
dominante. Esta propiedad constituye una condicin suficiente para la convergencia:
n

i (|ai,i| >

j 1,ji

| ai,j | ) || D || < 1 E

(k+1)

0, k

(k)

X, k

3.5.3 Orden de convergencia


La frmula (3) expresa que la convergencia del mtodo iterativo de Jacobi es de primer orden:
(k+1)

(k)

= O(E )

3.5.4 Criterio para terminar el proceso iterativo


Si la frmula iterativa converge, se puede escribir:
(k)
X X, k
(k+1)
X
X, k
(k+1)
(k)
|| X
- X || 0, k
Entonces, para cualquier valor positivo arbitrariamente pequeo, en alguna iteracin k se tendr:
|| X

(k+1)

(k)

-X

|| <

Y se dice que el vector calculado tiene precisin

3.5.5 Instrumentacin computacional del mtodo de Jacobi


La siguiente es una instrumentacin computacional muy simple del Mtodo de Jacobi. Est
diseada para recibir un vector X y entregar un nuevo vector calculado X. La convergencia ser
controlada desde la ventana de comandos interactivamente.

function x = Jacobi(a,b,x)
n=length(x);
t=x;
for i=1:n
s=sum(a(i,1:n)*t)-a(i,i)*t(i);
x(i) = (b(i) - s)/a(i,i);
end

%t es asignado con el vector x ingresado


%Se usan los valores anteriores de x

Uso de la funcin Jacobi para el ejemplo anterior:


>> a= [5, -3, 1; 2, 4, -1;2, -3, 8];
>> b= [5; 6; 4];
>> x= [1; 1; 1];
>> x= Jacobi(a,b,x)

Vector inicial
Repita este comando y observe la convergencia

Ing. Luis Rodrguez Ojeda, MSc.

ANLISIS NUMRICO

ICM ESPOL

3.5.6 Mtodo de Gauss-Seidel


Se diferencia del mtodo anterior en que utiliza los valores mas recientes del vector X, es decir
aquellos que ya estn calculados en la misma iteracin, en lugar de los valores de la iteracin
anterior como en el mtodo de Jacobi. Por este motivo, podemos suponer que el mtodo de
Gauss-Seidel converge o diverge ms rpidamente que el mtodo de Jacobi.

xi(k 1) =

1
(bi ai,i

i1

j 1

j i 1

ai,j x(kj 1) - ai,j x(k)


j );

i = 1, 2, ..., n; k = 0, 1, 2, ...

Ejemplo. Dadas las ecuaciones:


5x1 3x2 + x3 = 5
2x1 + 4x2 x3 = 6
2x1 3x2 + 8x3 = 4
Formule un esquema iterativo con el mtodo de Gauss-Seidel:
(k+1)
(k)
(k)
x1
= 1/5 (5 + 3x2 x3 )
(k+1)
(k+1)
(k)
x2
= 1/4 (6 2x1
+ x3 )
(k+1)
(k+1)
(k+1)
x3
= 1/8 (4 2x1
+ 3x2
)
(0)

(0)

(0)

Comenzando con el vector inicial: x1 = x2 = x3 = 1, realice dos iteraciones:


(1)
(0)
(0)
k=0:
x1 = 1/5 (5 + 3x2 x3 ) = 1/5 (5 + 3(1) (1)) = 1.4
(1)
(1)
(0)
x2 = 1/4 (6 2x1 + x3 ) = 1/4 (6 2(1.4) + (1)) = 1.05
(1)
(1)
(1)
x3 = 1/8 (4 2x1 + 3x2 ) = 1/8 (4 2(1.4) + 3(1.05)) = 0.5438
k=1:
(2)
(1)
(1)
x1 = 1/5 (5 + 3x2 x3 ) = 1/5 (5 + 3(1.05) (0.5438))=1.5212
(2)
(2)
(1)
x2 = 1/4 (6 2x1 + x3 ) = 1/4 (6 2(1.5212) + (0.5438)) = 0.8753
(2)
(2)
(2)
x3 = 1/8 (4 2x1 + 3x2 ) =1/8 (4 2(1.5212) + 3(0.8753))=0.4479

3.5.7 Instrumentacin computacional del mtodo de Gauss-Seidel


Similar a la frmula de Jacobi. La siguiente funcin en MATLAB recibe un vector X y entrega un
nuevo vector calculado X en cada iteracin.

function x = GaussSeidel(a,b,x)
n=length(x);
for i=1:n
s=sum(a(i,1:n)*x)-a(i,i)*x(i);
x(i) = (b(i) - s)/a(i,i);
end

%Usa y actualiza el mismo vector x

Resuelva el ejemplo anterior usando esta funcin:


>> a = [5, -3, 1; 2, 4, -1;2, -3, 8];
>> b = [5; 6; 4];
>> x = [1; 1; 1];
>> x = GaussSeidel(a, b, x)

Vector inicial
Repita este comando y observe la convergencia

Ing. Luis Rodrguez Ojeda, MSc.

You might also like