Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
________________________________________________________________
1
Manuel Dez Minguito
ndice
ndice ................................................................................................................................ 2
Lista de Tablas.................................................................................................................. 2
Lista de Algoritmos .......................................................................................................... 2
Mtodo iterativo de Jacobi ............................................................................................... 5
Mtodo de Gauss Seidel ................................................................................................ 9
Mtodos de relajacin..................................................................................................... 14
Mtodo del descenso ms rpido.................................................................................... 21
Mtodo del gradiente conjugado .................................................................................... 23
Bibliografa................................................................................................................. 26
Lista de Tablas
Tabla 1. Comparativa mtodos de Gauss Seidel y SRS. ............................................. 16
Lista de Algoritmos
Algoritmo 1. Mtodo de Jacobi. ....................................................................................... 8
Algoritmo 2. Mtodo de Gauss Seidel......................................................................... 13
Algoritmo 3. Mtodo de sobre-relajacin sucesiva. ....................................................... 20
Algoritmo 4. Algoritmo formal para el mtodo del descenso ms rpido. .................... 22
Algoritmo 5. Mtodo del descenso ms rpido. ............................................................. 23
Algoritmo 6. Algoritmo formal para el mtodo del gradiente conjugado. ..................... 24
Algoritmo 7. Mtodo del gradiente conjugado.............................................................. 25
________________________________________________________________
2
Manuel Dez Minguito
+u2
+u4
u1
4u2
+u 3
u2
4u 3
u1
u2
= 50
+u5
= 50
+u6
4u 4
+u5
+u 4
4u5
+u6
+u5
4u6
u3
= 150
+u7
u4
u5
u6
=0
+u8
=0
+u9
= 100
4u7
+u8
= 50
+u7
4u8
= 50
+u8
4u9
(0.1)
= 150
A este tipo de matrices se las llama dispersas por el elevado nmero de entradas nulas
que presenta. En estos casos, los mtodos de resolucin de sistemas lineales ms
eficientes suelen ser los llamados mtodos iterativos, en contraposicin con los mtodos
directos. Adems, hay que decir que los mtodos iterativos son mucho menos costosos
computacionalmente que los directos, incluso para rdenes pequeos.
Comparativamente, el nmero de operaciones que tiene lugar en los mtodos directos es
muy elevado, dando lugar a errores por redondeo. Asimismo, necesitan mucha menos
memoria de almacenamiento1.
Las tcnicas iterativas de resolucin de sistemas lineales de orden n n de la forma
Ax = b
(0.2)
donde x , b M n1( ) , A M n ( ) y det(A) 0 , consisten en la construccin de una
sucesin de vectores {x (0), , x (k ), } que converja a la solucin del sistema. Esto es
lim x (k ) = x .
(0.3)
Los mtodos iterativos que vamos a considerar en este captulo son aquellos que se
construyen partiendo de un x (0) arbitrario y despus generando los siguientes de la
forma
x (k +1) = F (x (k ) )
(0.4)
siendo F : n n . En nuestro caso, consideraremos nicamente funciones F de
tipo lineal, es decir F (x ) = Tx + c , siendo c n y T M n ( ) . Por tanto, dado un
vector inicial, la sucesin se genera calculando
x (k ) = Tx (k 1) + c .
(0.5)
Los mtodos directos de resolucin de sistemas de ecuaciones lineales son, por lo general,
computacionalmente costosos, especialmente cuando se incrementa el orden del sistema; sin mencionar
los problemas por errores de redondeo. En estos casos (v.gr. en EDPs), mtodos iterativos de resolucin
de sistemas de ecuaciones lineales suelen resultar ms efectivos que los directos. Otra situacin en la que
aqullos se muestran ms eficientes que estos es cuando la matriz asociada al sistema presenta numerosas
entradas nulas (vase ejemplos del Tema4).
________________________________________________________________
3
Manuel Dez Minguito
+11x 2
x 3
+3x 4 = 25
2x 1
x 2
10x 3
x 4 = 11
3x 2
x 3
+8x 4 = 15 .
(0.6)
1/11
0
1/11
3
/11
(0.7)
T =
1/ 5 1/10
0
1/10
0
3 / 8 1/ 8
0
y
3 / 5
25 /11
c =
11/10
15 / 8
(0.8)
(1)
25 /11
(0)
x
x
1/11
0
1/11
3
/11
2
=
(0.9)
+
x 3(1) 1/ 5 1/10
0
1/10 x 3(0) 11/10
x (0) 15 / 8
x (1) 0
3
/
8
1/
8
0
4
4
Mediante iteraciones sucesivas. Ntese que es importante elegir un vector inicial
prximo a la solucin. Eso har que la convergencia sea ms rpida. Dnde detener el
proceso iterativo? El criterio se establece en funcin del error relativo
x (k +1) x (k )
e=
entre dos pasos iterativos, estos es, si, por ejemplo, e 103 se
(k +1)
x
considera que el proceso ha convergido. En este caso la solucin del sistema es
T
x = (1,2, 1,1) y se alcanza el criterio de convergencia en la iteracin 102.
(
Diremos que un mtodo iterativo converge si converge para cualquier vector inicial.
________________________________________________________________
4
Manuel Dez Minguito
j =1 aii
j i
xi =
.
aii
aii
j =1
(0.11)
j i
Para este mtodo, la matriz A del sistema (0.2) suede dividirse en suma de matriz
diagonal D , triangular superior U y triangular inferior L , esto es, A = D L U 3.
De tal forma que de (0.2) se llega a
Dx = (L + U )x + b
(0.12)
o, puesto que hemos supuesto que aii 0 para todo i , tenemos
x = D 1(L + U )x + D 1b .
(0.13)
a
X
0
j
i ij
j =1
j i
xi
aii
End
If x X 0 < TOL Then
Output k, x i
Output Solucin determinada con xito
3
El signo es arbitrario: slo cambia el signo de los coeficientes de las matrices triangulares.
________________________________________________________________
5
Manuel Dez Minguito
X0 x
End
Output Nmero mximo de iteraciones superado
Output No se he encontrado una solucin
Exit
Los escalares M y TOL representan, respectivamente, el nmero mximo de
iteraciones y la tolerancia admitida. Si est garantizada la convergencia a la solucin
real, se recomienda tomar como criterio que el error relativo sea menor o igual que
TOL . En otro caso, aadir al criterio anterior un nmero mximo de iteraciones M .
Una pequea modificacin que mejora al algoritmo es determinar todas las divisiones
antes de entrar en el proceso iterativo.Una forma de interpretar esto es que el sistema
original (0.2) sea sustituido por D 1Ax = D 1b donde D = (aii ) es matriz diagonal.
% JACOBI ITERATIVE ALGORITHM 7.1
%
% To solve Ax = b given an initial approximation x(0).
%
% INPUT:
the number of equations and unknowns n; the entries
%
A(I,J), 1<=I, J<=n, of the matrix A; the entries
%
B(I), 1<=I<=n, of the inhomogeneous term b; the
%
entries XO(I), 1<=I<=n, of x(0); tolerance TOL;
%
maximum number of iterations N.
%
% OUTPUT: the approximate solution X(1),...,X(n) or a message
%
that the number of iterations was exceeded.
syms('AA', 'OK', 'NAME', 'INP', 'N', 'I', 'J', 'A', 'X1');
syms('TOL', 'NN', 'K', 'ERR', 'S', 'X2', 'FLAG', 'OUP');
TRUE = 1;
FALSE = 0;
fprintf(1,'This is the Jacobi Method for Linear Systems.\n');
fprintf(1,'The array will be input from a text file in the order\n');
fprintf(1,'A(1,1), A(1,2), ..., A(1,n+1), \n');
fprintf(1,'A(2,1), A(2,2), ..., A(2,n+1), \n');
fprintf(1,'..., A(n,1), A(n,2), ..., A(n,n+1)\n');
fprintf(1,'Place as many entries as desired on each line, but
separate\n');
fprintf(1,'entries with ');
fprintf(1,'at least one blank.\n\n\n');
fprintf(1,'The initial approximation should follow in same
format.\n');
fprintf(1,'Has the input file been created? - enter Y or N.\n');
AA = input(' ','s');
OK = FALSE;
if AA == 'Y' | AA == 'y'
fprintf(1,'Input the file name in the form - drive:\\name.ext\n');
fprintf(1,'for example:
A:\\DATA.DTA\n');
NAME = input(' ','s');
INP = fopen(NAME,'rt');
OK = FALSE;
while OK == FALSE
________________________________________________________________
6
Manuel Dez Minguito
________________________________________________________________
7
Manuel Dez Minguito
________________________________________________________________
8
Manuel Dez Minguito
Teorema
k =0
x (k ) = Tx (k 1) + c converja a (I T )1c
asociada al mapa
menor que 1.
En otras palabras, y como corolario, la frmula de iteracin (0.5) da lugar a una
sucesin convergente a la solucin de (0.2), para cualquier vector inicial x (0)
Como corolario al teorema anterior cabe mostrar el resultado siguiente que servir para
dar condiciones suficientes un tanto ms prcticas. Si T < 1 para cualquier norma
matricial , la sucesin {x (k ) }
k =0
x (0)
(0.14)
Ntese que la expresin (0.14) da una idea de lo rpido que puede converger un mtodo,
relacionndolo con el radio espectral. Se puede demostrar que
x x (k ) (T )k x x (0) ,
(0.15)
por tanto, suponiendo que el error relativo e (T )k despus de k iteraciones es 10 ,
tendremos que (T )k 10 . Esto es,
k
.
(0.16)
log (T )
Segn (0.16) es deseable escoger un mtodo con un radio espectral mnimo, de tal
forma que el nmero de iteraciones hasta alcanzar el error relativo prescrito sea mnimo.
Teorema
Si la matriz A del sistema (0.2) es diagonalmente dominante, la sucesin proporcionada
por el mtodo de Jacobi converge a la solucin correcta para cualquier vector inicial
x (0) n .
Este segundo teorema, a efectos computacionales, es ms prctico que el primero.
Comprobar que una matriz es diagonalmente dominante es mucho ms sencillo que
determinar el radio espectral.
Las demostraciones pueden encontrarse en [Burden y Faires, 1985; Kincaid y Cheney,
1990].
j > i . Esto es, en vez de emplear en la iteracin k todas las soluciones de la iteracin
anterior x i(k 1) 1 i n , se emplearan los valores recientemente calculados en la
iteracin k (los x i(k ) ). En tal caso, la frmula de recurrencia ya no sera (0.11) si no la
siguiente
i 1
x i(k ) =
(aij x (jk ) )
j =1
(a x ( ) ) b
k 1
ij
j =i +1
aii
(0.17)
i 1
ij
j =1
a
x
a
X
0
ij j
i ij j
j =1
j =i +1
xi
aii
End
If x X 0 < TOL Then
Output k, x i
Output Solucin determinada con xito
Exit
End
X0 x
________________________________________________________________
10
Manuel Dez Minguito
________________________________________________________________
11
Manuel Dez Minguito
________________________________________________________________
12
Manuel Dez Minguito
________________________________________________________________
13
Manuel Dez Minguito
2 1 0 x 1 2
1 6 2
x 2 = 4
4 3 8 x 3 5
(0.18)
Mtodos de relajacin
Hay que recordar que la rapidez en la convergencia depende del radio de convergencia
que, a su vez, depende del mtodo empleado. Por tanto sera conveniente buscar el
mtodo con el menor radio de convergencia que resuelva un sistema dado para acelerar
la convergencia.
El procedimiento emplea el concepto de vector residual, ya introducido en el tema
anterior (o en los apndices de matrices: vase condicionamiento de matrices).
El residual en los procedimientos iterativos est asociado a cada iteracin, esto es
(0.19)
j =1
j =i
(0.20)
________________________________________________________________
14
Manuel Dez Minguito
a x
(k )
ii
+r
i 1
= bi (aij x
j =1
(k )
j
) (a x ( ) )
k 1
ij
(0.21)
j =i +1
siendo
(0.22)
o bien
rii(k )
.
(0.23)
aii
En contra de lo que cabra pensar en un principio con respecto a la expresin (0.23),
reducir el residual rii(k ) a cero, podra no acelerar el proceso de convergencia. Ntese
que el residual est referido a la diferencia entre dos iteraciones consecutivas, pero no
respecto de la solucin. De hecho, residuales pequeos podran ralentizar la
convergencia. Por el contrario modificando el mtodo de Gauss Seidel a partir de
(0.23) segn
r (k )
(0.24)
x i(k ) = x i(k 1) + ii
aii
con ciertos 0 < conducir a una mejora sustancial de la velocidad de convergencia. A
estos mtodos se los denomina mtodos de relajacin. A los mtodos de relajacin con
0 < < 1 se los denomina de sub-relajacin, mientras que a los que tienen 1 < se
los llama de sobre-relajacin, los cuales pueden emplearse para acelerar la convergencia
de sistemas convergentes por el mtodo de Gauss Seidel. Nos referiremos a estos
ltimos como SRS (Sobre-relajacin sucesiva). Ntese que el mtodo de Gauss Seidel
es tambin un mtodo de relajacin con = 1 .
x i(k ) = x i(k 1) +
Teorema
Si A es simtrica y definida positiva, entonces el mtodo de relajacin converge si y
slo si 0 < < 2 .
En particular vimos antes que para el mtodo de Gauss Seidel haba convergencia para
= 1.
En los mtodos de relajacin se pasa del vector x i(k 1) al x i(k ) en n etapas, a diferencia
del mtodo de Jacobi en el que no hay etapas intermedias. Asimismo en cada una de las
etapas se emplea un vector distinto (vase (0.17) y Algoritmo 2) que se diferencia del
anterior en una componente.
3 4 1 x = 30
(0.26)
2
0 1 4 x 3 24
Gauss Seidel
SRS
x1
3.0134110
3.0000490
x2
3.9888241
4.0002586
x3
-5.0027940
-5.0003486
Teorema
Si A es definida positiva y tridiagonal entonces
1. 0 < (TGS ) = (TJ )2 < 1
2. El ptimo para el mtodo SRS es = 2 / 1 + 1 (TJ )2 .
(0.27)
D = 0 4 0,
0 0 4
por tanto
D 1
1/ 4
0
0
0 .
= 0
1/ 4
0
1/ 4
0
(0.28)
As
________________________________________________________________
16
Manuel Dez Minguito
0
0 0 3 0
1/ 4
1/ 4
D 1(L + U ) = 0
0 3 0 1
1 0
1/ 4 0
0
0
y desarrollando el producto de ambas matrices
0
0.75
0
D 1(L + U ) = 0.75
0
0.25 .
0
0.25
0
(0.29)
(0.30)
det(TJ I 3 ) = 0.75
0.25 = ( 2 0.625) .
(0.31)
0.25
0
De aqu se sigue que
(TJ ) = 0.625
y, de acuerdo con el teorema anterior,
= 2 / 1 + 1 0.625 1.24
(0.32)
(0.33)
bi aij x j aij X 0 j
j =1
j =i +1
x i (1 ) X 0i +
aii
End
X0 x
End
Output Nmero mximo de iteraciones superado
Output No se he encontrado una solucin
Exit
Para resolver Ax = b dado el parmetro y una estimacin inicial x i(0) se debe
introducir el nmero de ecuaciones y de incgnitas ( n ), esto es, el orden del sistema;
las entradas de la matriz A , aij para 1 i, j n ; las entradas del trmino
inhomogneo bi ; cada componente de x i(0) , X 0i ; una tolerancia TOL y el mximo
nmero de iteraciones M .
% SOR ALGORITHM 7.3
%
% To solve Ax = b given the parameter w and an initial approximation
% x(0):
%
% INPUT:
the number of equations and unknowns n; the entries
%
A(I,J), 1<=I, J<=n, of the matrix A; the entries
%
B(I), 1<=I<=n, of the inhomogeneous term b; the
%
entries XO(I), 1<=I<=n, of x(0); tolerance TOL;
%
maximum number of iterations N; parameter w (omega).
%
% OUTPUT: the approximate solution X(1),...,X(n) or a message
%
that the number of iterations was exceeded.
syms('OK', 'AA', 'NAME', 'INP', 'N', 'I', 'J', 'A', 'X1');
syms('TOL', 'NN', 'W', 'K', 'ERR', 'S', 'FLAG', 'OUP');
TRUE = 1;
FALSE = 0;
fprintf(1,'This is the SOR Method for Linear Systems.\n');
OK = FALSE;
fprintf(1,'The array will be input from a text file in the
order:\n');
fprintf(1,'A(1,1), A(1,2), ..., A(1,n+1) \n');
fprintf(1,'A(2,1), A(2,2), ..., A(2,n+1),\n');
fprintf(1,'..., A(n,1), A(n,2), ..., A(n,n+1)\n\n');
fprintf(1,'Place as many entries as desired on each line, but \n');
fprintf(1,'separate entries with at least one blank.\n');
fprintf(1,'The initial approximation should follow in same
format.\n\n\n');
fprintf(1,'Has the input file been created? - enter Y or N.\n');
AA = input(' ','s');
if AA == 'Y' | AA == 'y'
fprintf(1,'Input the file name in the form - drive:\\name.ext\n');
fprintf(1,'for example:
A:\\DATA.DTA\n');
NAME = input(' ','s');
INP = fopen(NAME,'rt');
OK = FALSE;
while OK == FALSE
fprintf(1,'Input the number of equations - an integer.\n');
N = input(' ');
if N > 0
A = zeros(N,N+1);
X1 = zeros(1,N);
for I = 1 : N
________________________________________________________________
18
Manuel Dez Minguito
________________________________________________________________
19
Manuel Dez Minguito
Antes de pasar a la siguiente seccin vamos a resumir los mtodos vistos hasta ahora en
la siguiente tabla. Para ello supondremos que (como, por ejemplo, en (0.13)) la matriz
A se puede descomponer segn A = D L U , siendo D la matriz compuesta por
los elementos de la diagonal principal de A ( diag(A) ) y L y U son las matrices
formadas por los elementos (cambiados de signo) que componen la parte triangular
inferior y triangular superior, respectivamente, de A .
________________________________________________________________
20
Manuel Dez Minguito
v, b Ax / v, Av = 0
(0.36)
El somero esbozo de la demostracin nos sirve para disear el algoritmo, puesto que
sugiere un mtodo iterativo de resolucin. La idea es minimizar q(x ) a lo largo de
distintas trayectorias (dadas por v ). A v tambin se le denomina vector de direccin de
bsqueda. En la iteracin k del algoritmo se tendrn (x (0), x (1), , x (k ) ) y se deber
elegir para cada una de las iteraciones un valor apropiado de v (k ) . La siguiente iteracin
se genera del modo siguiente
x (k ) = x (k 1) + t (k 1)v (k 1)
(0.37)
siendo
t (k ) = v (k ), b Ax (k ) / v (k ), Av (k ) .
(0.38)
Si v (k 1) = 1 (es un vector direccin), x (k ) mide exactamente la distancia recorrida de
x (k 1) a x (k ) .
________________________________________________________________
21
Manuel Dez Minguito
x (k +1) x (k ) + t (k )v (k )
Output k + 1, x (k +1)
End
________________________________________________________________
22
Manuel Dez Minguito
El mtodo del descenso ms rpido se emplea raras veces para resolver problemas
unidimensionales como Ax = b . El mtodo encuentra mucha mayor aplicacin en
problemas multidimensionales.
Teorema
Sea (v (0), , v n
( )
(0.40)
________________________________________________________________
23
Manuel Dez Minguito
x (k +1) = x (k ) + t (k )v (k )
r (k +1) = r (k ) t (k )Av (k )
2
If r (k +1) < Then Stop
2
(k )
(k +1)
, r (k +1) / r (k ), r (k )
v (k +1) = r (k ) + s (k )v (k )
Output k + 1, x (k +1), r (k +1)
End
________________________________________________________________
24
Manuel Dez Minguito
r b Ax
v r
c r, r
Output 0, x (0), r (0)
For k = 1 to k = M
1/2
If v, v
< Then Stop
z Av
t c / v, z
x x + tv
r r tz
d r, r
If d 2 < Then Stop
v r + (d / c ) v
c d
Output k, x , r
End
________________________________________________________________
25
Manuel Dez Minguito
Bibliografa
Burden, R.L. and Faires, J.D., 1985. Numerical Analysis. PWS-Kent Publishing
Company, Boston, EE. UU.
Kincaid, D. and Cheney, W., 1990. Numerical Analysis. Brooks/Cole Publishing,
Pacific Grove, California, EE. UU.
Molina, J.J.Q., 1996. Ecuaciones Diferenciales, Anlisis Numrico y Mtodos
Matemticos. Editorial Santa Rita, Granada.
________________________________________________________________
26
Manuel Dez Minguito