Académique Documents
Professionnel Documents
Culture Documents
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
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.
(1)
xi
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) .
x1[m +1] =
[ x 2m +1] = [ x3m +1] =
) )
(3)
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 ]
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 ]
= 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]
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
x1[m +1] =
[ x 2m +1] [ x3m +1]
) ) )
Juan Piccini
Como
i
valor
inicial
tomamos
(0,0,0),
paramos
cuando
1 10 2 2
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 :
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
[ x 2m+1] .
x1[m +1]
x1[m+1]
[ x 2m +1]
x1[m ]
y x2
[m ]
para
x1[m +1] =
[ x 2m +1] = [ x3m +1] =
) ) )
1 [ b1 a 21 x1[m+1] a 23 x3m ] a 22
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.
Juan Piccini
(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,
xi
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]
Juan Piccini
[ x 2m ]
[ x3m ]
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 :
) ) )
( (
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]
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 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
base
de
vectores
propios
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,
Juan Piccini
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
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
Juan Piccini
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
j =i +1
aij
i 1 aii aij j =1
j =i +1
i 1
a
j =1 j i