You are on page 1of 10

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

SISTEMAS DE ECUACIONES LINEALES Notas basadas en el libro: Numerical Analisis, Ian Jacques, Colin Judd. METODOS ITERATIVOS Veremos dos mtodos iterativos para la solucin del sistema

Ax = b donde

es una matriz nxn no singular con elementos no nulos en la diagonal principal. Dichos mtodos son el mtodo de Jacobi y el mtodo de GaussSeidel. La idea es partir de un punto (vector) inicial, e ir construyendo una sucesin de puntos (vectores) que converja a la solucin del sistema. A efectos de facilitar el estudio , ser conveniente introducir algo de notacin. La matriz

podemos escribirla como

A = L + U + D , donde L,U , D

son las

partes triangular inferior, triangular superior y diagonal de A respectivamente. Notemos que las matrices L, U no son las mismas de la escalerizacin Gaussiana. Por simplicidad, ilustraremos con un ejemplo 3x3.

a11x1 + a12 x2 + a13 x3 = b1


Sea el sistema

a21x1 + a22 x2 + a23 x3 = b2 a31x1 + a32 x2 + a33 x3 = b3

(1)

En este caso, tenemos que

0 0 0 0 a12 a13 a11 0 0 L = a21 0 0 U = 0 0 a23 D = 0 a22 0 a a 0 0 0 0 0 0 a . 33 31 32


El primer paso es reacomodar la i-sima ecuacin en (1) , de modo que solamente el trmino que involucra a la variable signo de igual.

xi

quede a la izquierda del

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

a 11 x 1 = b 1 a 12 x 2 a 13 x 3
Esto es,

a 22 x 2 = b 2 a 21 x 1 a 23 x 3 a 33 x 3 = b 3 a 31 x 1 a 32 x 2

o, en notacin matricial :

Dx = b ( L + U ) x

(2)

El siguiente paso es dividir ambos lados de la i-sima ecuacin entre el elemento diagonal

aii , obteniendo

x1 = x2 = x3 =

1 ( b 1 a 12 x 2 a 13 x 3 ) a 11 1 a 22 ( b 2 a 21 x 1 a 23 x 3 )

1 ( b 3 a 31 x 1 a 32 x 2 ) a 33

o, en notacin matricial :

x = D 1 (b ( L + U ) x) .

Esta forma de reescribir (1) sugiere la iteracin

x1[m +1] =
[ x 2m +1] = [ x3m +1] =

1 [ [ b1 a12 x 2m ] a13 x3m ] a11

) )
(3)

1 [ b2 a 21 x1[m ] a 23 x3m ] a 22 1 [ b3 a31 x1[m ] a32 x 2m ] a33

o, en notacin matricial : (4) Este es el llamado Mtodo de Jacobi. Para un sistema nxn, el mtodo se define mediante

x [m +1] = D 1 b ( L + U ) x [m ]

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

xi[m +1]

1 = aii

j =n bi aij x [jm ] j =1 j i

Como es usual con los mtodos iterativos, necesitaremos una aproximacin inicial

[ [ x [0 ] = x1[0 ] , x 20 ] ,..., x n0 ]

alguna, lo usual es tomar

x [0 ] = (0,0,...,0) . Estos valores se sustituyen en los


[1]

). Si no disponemos de informacin previa

= x1 , x 2 ,..., x n . Luego lados derechos de (3), obteniendo x sustitumos los nuevos valores en los lados derechos de (3) , obteniendo
[ [ x [2 ] = x1[2 ] , x 22 ] ,..., x n2 ]

[1]

[1]

[1]

) y repetimos el proceso hasta que algn criterio de


x [m +1] x [m ]
,

parada sea satisfecho. Por lo general, el criterio de parada suele ser del tipo

donde el epsilon lo fija el usuario. Otro posible criterio puede ser Ax [m ] b . Para ilustrar, veamos el siguiente ejemplo. Consideremos el sistema

5 x1 + 2 x 2 x3 = 6 x1 + 6 x 2 3x3 = 4 , cuya solucin exacta es x = (1,1,1) . 2 x1 + x 2 + 4 x3 = 7


La iteracin de Jacobi viene dada por:

x1[m +1] =
[ x 2m +1] [ x3m +1]

1 [ [ 6 2 x2m ] + x3m ] 5 1 [ = 4 x1[m ] + 3x3m ] 6 1 [ = 7 2 x1[m ] x2m ] 4

) ) )

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

Como
i

max xi[m +1] xi[m ]

valor

inicial

tomamos

(0,0,0),

paramos

cuando

1 10 2 2

Los resultados se muestran en la siguiente tabla :

m 0 1 2 3 4 5 6 7 8 9 10 11

[m ]
1

[m ]
2

[m ]
3

0 1 . 200 1 . 283 0 . 860 0 . 977 1 . 053 0 . 988 0 . 989 1 . 008 1 . 000 0 . 997 1 . 001

0 0 . 667 1 . 342 0 . 944 0 . 910 1 . 046 1 . 008 0 . 983 1 . 004 1 . 004 0 . 998 1 . 000

0 1 . 750 0 . 983 0 . 773 1 . 084 1 . 034 0 . 962 1 . 004 1 . 010 0 . 995 0 . 999 1 . 002

Vemos que alcanzamos la solucin correcta (hasta dos decimales) en once iteraciones. Consideremos ahora el mismo sistema, pero con la primera y segunda ecuaciones intercambiadas.

x1 + 6 x 2 3 x3 = 4

5 x1 + 2 x 2 x3 = 6 2 x1 + x 2 + 4 x3 = 7
La iteracin de Jacobi queda ahora :
[ [ x1[m +1] = 4 6 x 2m ] + 3 x3m ] [ x 2m +1
m 1

) 1 ] = (6 5 x [ ] + x [ ] ) 2
m 3

[ x3m +1] =

1 [ 7 2 x1[m ] x 2m ] 4

Partiendo de nuevo del (0,0,0), y con el mismo criterio de parada, obtenemos la siguiente tabla :

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

m 0 1

x1[m ] 0 4.000

[ x 2m ] 0 3.000

[ x3m ] 0 1.750

2 8.750 6.125 1.000 3 37.750 24.375 7.656 4 119.282 87.547 23.219 5 459.625 289.596 83.278

Es claro que algo est pasando. Este ejemplo ilustra sobre la necesidad de tener alguna condicin a priori para testear la convergencia (o no) del algoritmo. Resulta interesante notar que en (3), cuando usamos la segunda ecuacin para [m +1] [m +1] calcular x 2 , el valor de x1 ya es conocido, de modo que podramos utilizarlo en el lugar de Como

x1[m ] para calcular

[ x 2m+1] .

x1[m +1]

est ms cerca del verdadero valor

x1 , es de esperar que esto


en vez de

acelere la convergencia, produciendo un mejor valor si en la tercera ecuacin utilizo calcular

[ x3m +1] , cabe esperar que la convergencia sea ms rpida.

x1[m+1]

[ x 2m +1]

[ x 2m +1] . Del mismo modo,

x1[m ]

y x2

[m ]

para

Parecera entonces, que es mejor la iteracin

x1[m +1] =
[ x 2m +1] = [ x3m +1] =

1 [ [ b1 a12 x 2m ] a13 x3m ] a11

) ) )

1 [ b1 a 21 x1[m+1] a 23 x3m ] a 22

1 [ b3 a31 x1[m +1] a32 x 2m +1] a33

Esta se conoce como el mtodo de Gauss-Seidel, y puesto que usa los valores ms recientes apenas se obtienen, uno esperara que converja ms rpido que Jacobi.

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

Como el sistema de ecuaciones (1) puede reescribirse como

a11 x1 = b1 a12 x 2 a13 x3 a 21 x1 + a 22 x 2 = b2 a 23 x3 a31 x1 + a32 x 2 + a33 x3 = b3


en notacin matricial, queda La

(D + L ) x = b U x .
[m ]
puede escribirse entonces como,

(D + L ) x

iteracin

[m +1]

de
1

Gauss-Seidel

x [m +1] = (D + L ) b Ux [m ]
[m+1]

= b U x

) (5)

o lo que es lo mismo,

Para un sistema nxn, el mtodo de Gauss-Seidel se define mediante

xi

i1 n 1 [m+1] = bi aij x j aij x[jm] , i = 1,2,...,n aii j =1 j=i+1

Apliquemos este mtodo al ejemplo anterior. Veamos primero para el sistema

5 x1 + 2 x 2 x3 = 6 x1 + 6 x 2 3x3 = 4

2 x1 + x 2 + 4 x3 = 7
Usaremos el mismo punto inicial y el mismo criterio de parada de antes. La iteracin queda :

x1[m +1] =
[ x 2m +1] [ x3m +1]

1 [ [ 6 2 x 2m ] + x3m ] 5 1 [ = 4 x1[m +1] + 3 x3m ] 6 1 [ = 7 2 x1[m +1] x 2m +1] 4

Los resultados se ven en la siguiente tabla:

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

m x1[m ] 0 1 2 3 4 5 6 7 0 1.200 1.220

[ x 2m ]

[ x3m ]

0.467 1.033 0.980 0.895 0.987 0.998

0.987 0.950 1.019 1.024 1.006 1.003 1.002 0.995 0.994 1.004 0.999 0.999 1.001

Notemos que el algoritmo converge en siete pasos (Jacobi necesit once). Veamos ahora cuando en el sistema original intercambiamos las dos primeras ecuaciones.

x1 + 6 x 2 3 x3 = 4

5 x1 + 2 x 2 x3 = 6 2 x1 + x 2 + 4 x3 = 7
Ahora la iteracin es :

[ [ x1[m +1] = 4 6 x 2m ] 3 x3m ] [ x 2m +1] = [ x3m +1]

) ) )

1 [ 6 5 x1[m +1] + x3m ] 2 1 [ = 7 2 x1[m +1] x 2m +1] 4

( (

Los resultados se muestran en la siguiente tabla :


[ [ m x1[m ] x 2m ] x3m ] 0 0 0 0 1 4.000 7.000 1.500 2 50.500 122.50 7.125 3 760.375 1894.375 95.156

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

La divergencia ya se nota claramente en la tercera iteracin. Antes de que pensemos que Gauss-Seidel es lo ms grande que hay, mencionemos que existen ejemplos donde Jacobi converge ms rpido que Gauss-Seidel, ejemplos donde uno converge y el otro no, y viceversa. Para comprender mejor qu podemos esperar, hagamos el siguiente anlisis. Pongamos A = M + N , entonces la ecuacin Ax = b puede escribirse como ( M + N ) x = b , o lo que es lo mismo x = M 1 ( b Nx ) (6) Esto sugiere la iteracin x[ m +1] = M 1 b Nx[ m] como Gauss-Seidel son casos particulares de (7). Para Jacobi, M = D , N = L + U y para Gauss-Seidel M = D + L, N = U . Si a (7) le restamos (6), obtenemos
x[ x[
m +1] m +1]

(7) . Notemos que tanto Jacobi

x = M 1 b Nx[ ] b + Nx
m

x = M 1 N x [ ] x
m

m +1 m +1 Si llamamos e[ ] = x[ ] x (el error en el paso m+1), llegamos a e[m +1] = M 1 Ne[ m] (8) La matriz M 1 N se llama matriz de iteracin del sistema, y gobierna el cambio en el error de un paso al siguiente. Por comodidad llamemos Q a dicha matriz.

Para Jacobi y Gauss-Seidel tenemos QJ = D 1 ( L + U ) , QG S = ( D + L ) U .


1

Para la convergencia, necesitamos que e[ ] 0 . Veremos una condicin m necesaria y suficiente para que ello ocurra. Previamente definamos el radio espectral de una matriz, ( A) = max{ i }es el mximo de los mdulos de los
m +1

vectores propios de A. Hablando pronto y mal, el radio espectral mide el tamao del mayor valor propio. Teorema (condicin necesaria y suficiente). Supongamos que la matriz Entonces la sucesin M 1 N tiene valores propios i , i = 1,..., n . x[ m +1] = M 1 b Nx[ m] converge sii ( M 1 N ) < 1 . una

Dem. Asumiremos que existe {v1 ,..., vn }/ ( M 1 N )vi = i vi i = 1,..., n

base

de

vectores

propios

e [1] = 1Qv1 + ... + n Qv n = 1 1v1 + .. + n n v n Si multiplicamos tendremos 2 e [2 ] = 1 1 Q v1 + ... + n n Qv n = 1 1 v1 + .. + n 2 v n n

El vector de error inicial, e[0] puede escribirse como combinacin lineal de dicha base, e[0] = 1v1 + ... + n vn . Multiplicando ambos lados por Q = M 1 N tenemos de nuevo,

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

Si repetimos esto, llegaremos a m e [m ] = 1 1 v1 + .. + n m v n (9). n Es claro que im 0 sii


i

< 1 i = 1,..., n , de modo que e[ ] 0 sii ( Q ) < 1 .


m

Observaciones: Existen otras demostraciones para el caso en que la matriz de iteracin no es diagonalizable. A partir de (9) vemos que la tasa de convergencia depende de im de modo que a menor radio espectral, ms rpida ser la convergencia. Como esta condicin puede no ser fcil de chequear en la prctica, veremos otra condicin (condicin suficiente) para la convergencia, ms manejable. Diremos que una matriz A es diagonal dominante cuando para cada fila de la matriz, el mdulo del elemento diagonal es mayor que la suma de los mdulos del resto de la fila, o sea aii >

a
j =1 j i

ij

i = 1,..., n

Teorema (Condicin suficiente): Si la matriz de coeficientes del sistema es diagonal dominante, entonces el algoritmo converge. Dem. Si v es un vector propio de M 1 N asociado al valor propio , entonces M 1 N v = v lo que puede rescribirse como ( M + N ) v = 0 (10). Por el teorema anterior, alcanza con probar que si A es diagonal dominante, entonces ( M 1 N ) < 1 . Supongamos que la mayor componente del vector v es la i-sima, esto es, v j vi j i . La prueba para Jacobi y Gauss-Seidel se harn por separado. Jacobi : Como M = D, N = L + U , la ecuacin (10) queda ( D + L + U ) v = 0 . La i-sima componente de dicha ecuacin es aii vi + aij v j = 0 , y entonces
j =1 j i n

1 aii vi

aij v j , lo cual implica =


j =1 j i

1 aii vi

aij v j
j =1 j i

vi aii vi

a
j =1 j i

ij

De modo que =

1 aii

a
j =1 j i

ij

< 1 por ser A diagonal dominante.

Mtodos Numricos 2003 IMERL - UdelaR

Juan Piccini

Gauss-Seidel : Ahora M = L + D, N = U , entonces la ecuacin (10) queda

( D + L + U ) v = 0 . La i-sima componente de dicha ecuacin es

n i n aij v j (11). Para acotar esto, aij v j + aij v j = 0 , de donde = j =i +1 i j =1 j =i +1 aij v j j =1 cambiaremos el numerador por otro mayor, y el denominador por otro menor.

Numerador :

j = i +1

aij v j vi

j =i +1

aij
i 1 i 1

Denominador :

aij v j aii vi
j =1

aij v j aii vi vi
j =1

a
j =1

ij

Sustituyendo en (11), tenemos que

j =i +1

aij

i 1 aii aij j =1

. Pero < 1 es lo mismo que


ij

j =i +1

aij < aii aij y


j =1

i 1

esto es lo mismo que

a
j =1 j i

< aii , que se cumple por hiptesis.