Está en la página 1de 29

Cálculo Numérico

Sistema de Ecuaciones Lineales.

Prof. Raúl Manzanilla 1


Sistemas de Ecuaciones Lineales

Métodos iterativos (métodos estacionarios)

Sea A una matriz invertible y el un sistema lineal Ax=b (1)

Def. Se denomina método iterativo de resolución a aquel que genera una


(i = 0,1,2,…) a partir de un vector dado x(0).
sucesión de vectores x(i)
Forma de los métodos considerados x(i+1) = H x(i) + c. (2)
Def. Se dice que un método iterativo de resolución (2) es consistente
con el sistema (1) si x, solución de (1), satisface x = H x + c.
Def. Se dice que un método iterativo de resolución del sistema (1) es
convergente si para todo vector inicial x(0) se verifica:
lim x (i )  x  A 1b.
i 
Obs. Los conceptos de consistencia y de convergencia deben
distinguirse. Todo método convergente es consistente, pero no todo
método consistente debe ser necesariamente convergente.

Prof. Raúl Manzanilla 2


Sistemas de Ecuaciones Lineales

Métodos iterativos
Ejemplo. Sea el método iterativo x ( i 1) 3 x (i )  2 A 1b.
Es evidente que el método es consistente con (1).
Para x = A-1b se tiene

en consecuencia, el limite de la sucesión x(i), si existe, debe ser x, ya


z diferente de x, se debería verificar que
que si fuese otro vector
x(i+1)-x=3x(i)-2A-1b-x=3(x(i)-x) ⟹ z-x=3(z-x)
lo cual es un absurdo.
No obstante es evidente que lim x (i )  x, salvo para el caso x(0) = x
i 
ya que para cualquier otro vector x(0) distinto de x, el vector diferencia
entre x(i+1) y x es 3 veces el vector diferencia entre x(i) y x, lo que indica
que dicho vector diferencia aumenta con i en vez de tender hacia 0 como
ocurriría si convergiese la sucesión hacía el único límite posible que
acabamos de indicar que es x.
Por lo tanto el método no es convergente.
Prof. Raúl Manzanilla 3
Sistemas de Ecuaciones Lineales

Métodos iterativos

Los métodos iterativos que vamos a considerar consisten en


descomponer la matriz A de la forma
A=M-N (2)
donde A, M, N son matrices nxn.

Reemplazando (2) en (1) se obtiene

(M  N )x b  Mx Nx  b.

Ahora, supongamos que M es invertible, entonces


x M  1Nx  M  1b.
Se propone el método iterativo siguiente
x (i 1)  Hx (i )  c
(3)
con H M N 1
y c M b. 1

Prof. Raúl Manzanilla 4


Sistemas de Ecuaciones Lineales

Métodos iterativos

Obs. Si la sucesión {x(i)} definida en (3) converge a un vector y,


entonces y es la solución de (1) (el método es consistente con (1)).
Prueba.
Dado que (3) es cierto para todos los índices i, se puede tomar límite a
ambos lados de dicha ecuación, lo cual nos dice que:
lim x(i 1) lim (Hx(i)  c)
i  i 

Como lim x(i 1) lim x(i) (es la misma sucesión) se tiene que:
i  i 

i 
 i 

lim x ( i 1) H lim x ( i )  c  y Hy  c
 y M  1 Ny  M  1b  My  Ny  b
 ( M  N ) y b  Ay b

Prof. Raúl Manzanilla 5


Sistemas de Ecuaciones Lineales
Método de Richardson

Sea A es una matriz invertible, A (a ij )1i , j n resolver Ax=b

Sea M=I, N=I-A, luego A=M-N


Así, la iteración (3) se escribe como
x (i 1) (I  A )x (i )  b  x (i )  b  Ax (i )

x (i 1)  x (i )  r (i ) (4)

donde r (i ) b  Ax (i ) es el vector residual.

Obs. Para detener el proceso iterativo se pueden utilizar los siguientes


criterios de parada:
a)cuando el número de iteraciones alcanza un número máximo

b)dado 𝜀 cuando x (i 1)  x (i )   o b  Ax (i )  


(𝜀 es la tolerancia)
Prof. Raúl Manzanilla 6
Sistemas de Ecuaciones Lineales
Método de Richardson (cont.)
Leer A=( aij ), b, n, x, 𝜀, maxit
Para k = 1 hasta maxit
Para i = 1 hasta n construcción del
n
vector residual
ri bi  a ij xj
Fin para j 1

norma_r = abs(r1)
Para i = 2 hasta n
s = abs(ri)
cálculo de la
Algoritmo Si s > norma_r entonces norma inf del
de norma_r = s vector residual
Richardson Fin si
Fin para
Si norma_r < 𝜀 detener si la norma
del vector residual es
break menor que 𝜀
Fin si
Para i = 1 hasta n nueva
x i = x i + ri aproximación
Fin para
Prof. Raúl Manzanilla Fin para 7
Sistemas de Ecuaciones Lineales
Ejemplo: Iteración de Richardson x (i 1) (I  A )x (i )  b
 1 1  11 
1    A = [1,1/2,1/3; 1/3,1,1/2; 1/2,1/3,1]
Resolver  2 3   y1   18 
1     11  b = [11/18; 11/18; 11/18]
el 1 1
3  y2  
sistema 2     18 
1 1   y 3   11 
 1  
2 3   18  T
x1  0.611 0.611 0.611
 0 x i  x i  1 eps 
0
 
usando x   0 x10  0.279 0.279 0.279
T

 0
  
T
x198  0.333 0.333 0.333
 1 1
 0   
 2 3
1 1 5
Notar que I  A    0   ⟹ I  A   1
3 2 6
 1 1 
  0 
 2 3 
Prof. Raúl Manzanilla 8
Sistemas de Ecuaciones Lineales
Método de Jacobi
Sea A es una matriz invertible, A (aij )1i , j n se quiere resolver Ax b.
Sea A D  E  F
E (e ij )1i , j n con F ( f ij )1i , j n con D (dij )1i , j n con
 0 si i  j  0 si i  j  0 si i  j
eij   f ij   dij  
 aij si i  j  aij si i  j aij si i  j
- triángulo inferior de A - triángulo superior de A
diagonal principal de A
(sin la diagonal principal) (sin la diagonal principal)

Supongamos que los elementos de aii, i=1,…,n son no nulos.


Definimos M=D y N=E+F.
Así, se tiene el método iterativo
x (i 1) D  1(E  F )x (i )  D  1b (5)
H c
Obs. Para detener el proceso iterativo se procede igual que en el método
de Richardson.
Prof. Raúl Manzanilla 9
Sistemas de Ecuaciones Lineales
Método de Jacobi (cont.)
….
Leer A=( aij ), b, n, xi, 𝜀 Mientras vecdif > 𝜀
x1 = s + b 1
construcción

Para i = 1 hasta n Para i = 2 hasta n-1


xn = ss + bn
de c

bi = bi / aii s=0
Para j = 1 hasta i-1 vecdif = abs(x1 - xi1)
Fin para
Para i = 2 hasta n

cálculo de la norma
Para i = 2 hasta n-1 s = s + aij * xij

inf de x(i+1) - x(i)


cálculo de x(i+1) a
Para j = 1 hasta i-1 Fin para s = abs(xi - xii)

partir de x(i)
aij = -aij / aii Para j = i+1 hasta n Si s > vecdif
Fin para s = s + aij * xii vecdif = s
Para j = i+1 hasta n Fin para Fin si
construcción

aij = -aij / aii xi = s + bi Fin para


de H

Fin mientras
Fin para Fin para
Fin para s = 0; ss = 0 Obs.
 No se detiene el
Para j = 2 hasta n Para j = 2 hasta n
algoritmo por número
a1j = -a1j / a11 s = s + a1j * xij
máximo de iteraciones.
an,j-1 = -an,j-1 / ann ss = ss + an,j-1 * xij-1  No se cuenta el
Fin para Fin para número de iteraciones
realizadas
vecdif = 5 ...
Prof. Raúl Manzanilla 10
Sistemas de Ecuaciones Lineales
Método de Jacobi (cont.)
El algoritmo del método de Jacobi, mostrado en la lámina anterior, se
puede simplificar de la siguiente manera:
(i 1)
Partiendo de la ecuación (5) x D  1(E  F )x (i )  D  1b se tiene que:

D x(i 1) (E  F)x(i)  b


La fila j-ésima de este sistema es:
n
(i 1)
a jj x
j   a jk xk(i)  bj (j 1,2,  , n)
k 1
k j

de donde  
n
x(ji 1)  1  bj   a jk xk(i)  , (j 1,2, , n). (**)
a jj  k 1

 k j 

siempre que a jj 0, para j 1,2,  , n.

Prof. Raúl Manzanilla 11


Sistemas de Ecuaciones Lineales
Método de Jacobi (cont.)
Con esta última ecuación se puede escribir el algoritmo del método de
Jacobi como se muestra a continuación:
Leer A=( aij ), b, n, x, 𝜀, maxit
Para m = 1 hasta maxit
Para j = 1 hasta n número de la fila
suma = 0
construcción del Para k = 1 hasta n número de la columna
nuevo iterado, Si k ≠ j entonces
ecuación (**)
suma = suma + a(j,k) * x(k)
Fin si
Fin para
z(j) = (b(j) – suma) / a(j,j)
Fin para
detener el Si abs (z - x) < 𝜀
proceso iterativo return
Fin si
x=z
Fin para
Prof. Raúl Manzanilla 12
Sistemas de Ecuaciones Lineales
Ejemplo: Iteración de Jacobi x (i 1) D  1(E  F )x (i )  D  1b
 1 1  11 
1    A = [1,1/2,1/3; 1/3,1,1/2; 1/2,1/3,1]
Resolver  2 3   y1   18 
1     11  b = [11/18; 11/18; 11/18]
el 1 1
3  y2  
sistema 2     18 
1 1   y 3   11 
 1  
2 3   18 

 0 x i  x i  1 eps
  T
usando x 0
  0 x198  0.333 0.333 0.333
 0
 
Obs. En este ejemplo la matriz de iteración coincide con la de Richardson.

 1 1
 0   
 2 3
1 1 5
Notar que D  1 ( E  F )  
 3
0  
2
⟹ D 1 (E  F )  1
 1
 6
1 
  0 
 2 3 
Prof. Raúl Manzanilla 13
Sistemas de Ecuaciones Lineales
Método de Gauss-Seidel

Sea A es una matriz invertible, A (aij )1i , j n se quiere resolver Ax b.

Sea A=D-E-F con D, E, F como en el método de Jacobi,


para el método iterativo(3) se toma
M=D-E y N=F
y se tiene el método de Gauss-Seidel
H c
( D  E ) x (i 1) Fx (i )  b  x (i 1) ( D  E )  1 F x ( i )  ( D  E )  1 b (6)

el cual, representado en forma matricial es

 a11 0  0   x1(i 1)   0  a12   a1n   x1(i )   b1 


       
                  
          .
0 0  an  1,n
       
a   (i 1) 
ann   x n   0   
0   x n   bn 
 (i ) 
 n1 
D-E F
Prof. Raúl Manzanilla 14
Sistemas de Ecuaciones Lineales
Método de Gauss-Seidel

Sea A es una matriz invertible, A (aij )1i , j n se quiere resolver Ax b.

Sea A=D-E-F con D, E, F como en el método de Jacobi,


para el método iterativo(3) se toma
M=D-E y N=F
y se tiene el método de Gauss-Seidel
H c
( D  E ) x (i 1) Fx (i )  b  x (i 1) ( D  E )  1 F x ( i )  ( D  E )  1 b (6)

el cual, representado en forma matricial es

 a11 0  0   x1(i 1)   0  a12   a1n   x1(i )   b1 


       
                  
          .
0 0  an  1,n
       
a   (i 1) 
ann   x n   0   
0   x n   bn 
 (i ) 
 n1 
D-E F
Prof. Raúl Manzanilla 15
Sistemas de Ecuaciones Lineales
Método de Gauss-Seidel

En (6) no hay porque invertir la matriz D-E, se procede como en el


método de sustitución hacia delante, es decir
n
( i 1)
x1 (  a1 j x (ji )  b1 ) / a11
j 2
Obs. Notemos que esto
n
( i 1) ( i 1) corresponde a aprovechar
x 2 ( a x21 1  a 2j x (ji )  b2 ) / a22
j 3 en el paso k, los valores
 x (ji 1) , j 1,  , k  1
n 2 ya calculados.
xn( i11) (  an  1, j x (ji 1)  an  1,n xn( i )  bn  1 ) / an  1, n  1
j 1
n 1
( i 1)
x n (  anj x (ji 1)  bn ) / ann
j 1

Ejercicio. Escribir el algoritmo de Gauss-Seidel utilizando el criterio de


parada (b) ( x
(i 1)
 x (i )   ) y usando la iteración (D  E )x (i 1) Fx (i )  b.

Prof. Raúl Manzanilla 16


Sistemas de Ecuaciones Lineales
Ejemplo: Iteración de Gauss-Seidel
x ( i 1) ( D  E )  1 Fx ( i )  ( D  E )  1 b
 1 1  11 
1    A = [1,1/2,1/3; 1/3,1,1/2; 1/2,1/3,1]
Resolver  2 3   y1   18 
1     11  b = [11/18; 11/18; 11/18]
el 1 1
3   y 2  
sistema 2   18 
1 1   y 3   11 
 1  
2 3   18 

 0 x i  x i  1 eps
0
  T
usando x   0  x 36  0.333 0.333 0.333
 0
 

 0  0.5  0.333 
 
⟹ (D  E) 1 F
1
Notar que ( D  E ) F  0 0.167  0.389  0.833  1

 0  0.194 0.296 
 

Prof. Raúl Manzanilla 17


Sistemas de Ecuaciones Lineales
Métodos de Relajación Sucesiva (SOR: successive over relaxation)
Se quiere resolver el sistema Ax=b con A invertible, A = D-E-F,
siendo D la diagonal de A, -E el triángulo inferior y -F el triángulo
superior.
Si ω > 0, se tiene
Ax b  {  E  D  F } x b
sumando y restando D
 { D  E  (1   )D  F } x b
 { D  E } x  {F  (1   )D } x  b.

Se propone la iteración
{ D  E } x (i 1)  {F  (1   )D } x (i )  b (7)
M N

Mx (i 1) Nx (i )  b (7a)

Prof. Raúl Manzanilla 18


Sistemas de Ecuaciones Lineales
Métodos de Relajación Sucesiva (cont.)

Debemos tener M invertible y no se impone ninguna condición sobre N.


Mx (i 1) Nx (i )  b

 a11 0  0 
 
 a 21  
M  D  E  
 D
 0 

 a
 -ωE
 n1  ann 

 (1   )a11  a12   a1n 



0   
 ωF
 
N F  (1   )D  

 
 0  (1   )ann 

(1-ω)D
El nuevo vector iterado se calcula como en el método de Gauss-Seidel,
usando (7A), donde no hace falta calcular la inversa de M=D-ωE.
Prof. Raúl Manzanilla 19
Sistemas de Ecuaciones Lineales
Métodos de Relajación Sucesiva (cont.)
Obs. Según la escogencia de ω el método recibe los nombres de:

Si 0 < ω < 1 se denomina de sub-relajación

Si ω > 1 se denomina de sobre-relajación

La iteración (7) se conoce como SOR hacia delante: se tomó

M = D - ωE y N = ωF + (1-ω)D.
Si tomamos en (7)

M = D - ωF y N = ωE + (1-ω)D

el método se denomina SOR hacia atrás.

Ejercicio. Escribir el algoritmo SOR hacia delante utilizando el criterio


(i 1)
de parada (b) ( x  x (i )   ).
Prof. Raúl Manzanilla 20
Sistemas de Ecuaciones Lineales
Comparación de métodos iterativos
x(i+1)=Hx(i)+C
Ax=b
H=M-1N y c=M-1b
A=D-E-F=M-N
Mx(i+1)=Nx(i)+c
Nombre
del Jacobi Gauss-Seidel SOR
método
Descomposición
A=D-(E+F) A=(D-E)-F
A=M-N
Matriz 1
D  1   
H=M-1N=I-M-1A D (E  F )  I  D A
1 1 1
(D  E ) F   E  D F
    
método iterativo

Descripción D  E  x (k 1)
de una Dx (k 1) (E  F )x (k )  b  D  E  x (k 1)  Fx (k )  b
iteración   1   D  F  x (k )  b

Prof. Raúl Manzanilla 21


Sistemas de Ecuaciones Lineales
Almacenamiento compacto de matrices esparcidas (ralas)

Una matriz se denomina esparcida o rala cuando la mayoría de sus


entradas son ceros.
Estas matrices aparecen en ciencia e ingeniería, por ejemplo, cuando se
resuelve numéricamente ecuaciones diferenciales parciales.
Cuando se almacenan y manipulan
este tipo de matrices en un
computador, es beneficioso usar
algoritmos y estructuras de datos
especiales que tomen en cuenta la
estructura esparcida de estas
matrices.

Veremos 3 esquemas de
almacenamiento para la
matriz A.

Prof. Raúl Manzanilla 22


Sistemas de Ecuaciones Lineales
Almacenamiento compacto de matrices esparcidas (ralas) –
Esquema 1
La matriz A se almacena a través de tres arreglos XA, IF, IC,
los cuales se describen a continuación:

XA: arreglo unidimensional real que contiene los elementos no
nulos de la matriz, tomados fila por fila, comenzando desde la
primera. Su dimensión es igual al número de elementos no nulos de
la matriz.

IF: arreglo unidimensional entero que contiene los apuntadores al
comienzo de cada fila de la matriz en A sobre el vector XA. Su
dimensión es igual al orden de la matriz más uno.

IC: arreglo unidimensional entero que contiene los índices de las
columnas de los elementos de la matriz en A. Su dimensión es igual
a la de XA.
Así, en la i-ésima fila de la matriz hay IF(i+1)-IF(i) elementos no
nulos, los cuales están almacenados consecutivamente en
XA(IF(i)), XA(IF(i)+1), . . ., XA(IF(i+1)-1),
y los índices de columna están almacenados consecutivamente en
IC(IF(i)), IC(IF(i)+1), . . ., IC(IF(i+1)-1).
Prof. Raúl Manzanilla 23
24

Sistemas de Ecuaciones Lineales


Almacenamiento compacto de matrices esparcidas (ralas) –
Esquema 1
 0.1 1.1 0 0  5.0 
 
 3.0 1.0 0 0 0 
A  0 0 4.3 0 0 
 
 5.2 0 0  1.0 4.8 
 0 0 0 .3 0  2 .0 
 

XA   0.1 1.1  5.0 3.0 1.0 4.3 5.2  1.0 4.8 0.3  2.0 

IF  1 4 6 7 10 12

IC  1 2 5 1 2 3 1 4 5 3 5 

A = [0.1 1.1 0 0 -5.0; 3.0 1.0 0 0 0; 0 0 4.3 0 0; 5.2 0 0 -1.0 4.8; 0 0 0.3 0 -2.0];
Sistemas de Ecuaciones Lineales
Almacenamiento compacto de matrices esparcidas (ralas) –
Esquema 2
Para representar una matriz esparcida A de dimensión nn usaremos el
esquema denominado "indexado por filas" que contempla dos vectores de
nombres sa e ija, donde sa almacena los elementos distintos de cero de A
e ija almacena valores enteros correspondientes a apuntadores de filas y
columnas para A.
Las reglas para el llenado de sa e ija son las siguientes (todos los vectores
arrancan en 1 y no en 0):

Prof. Raúl Manzanilla 25


Sistemas de Ecuaciones Lineales
Almacenamiento compacto de matrices esparcidas (ralas) –
Esquema 2
En las primeras n posiciones de sa se almacenan los elementos de la
diagonal de A (inclusive si los elementos son ceros).
La posición n+1 en sa es arbitraria.
Las entradas en sa correspondientes a la posiciones mayores o iguales a
n+2 contienen las entradas no diagonales de A, ordenadas por fila, y
dentro de cada fila ordenadas por columna.
Cada una de las primeras n posiciones de ija almacena el índice sobre el
vector sa donde comienza cada fila de A para los elementos fuera de la
diagonal principal. Así ija(k+1) - ija(k) nos da el número de elementos no
diagonal distinto de cero de la fila k de la matriz A.
La posición 1 sobre ija es siempre n+2. Esta información puede ser
usada para conocer la dimensión de la matriz A.
La posición n+1 sobre ija es 1 mas que el índice en sa del último
elemento no diagonal. Esta información puede ser usada para conocer el
número de elementos no diagonales distintos de cero en A, es decir
ija(n+1) -1 -(n+1).

Prof. Raúl Manzanilla 26


Sistemas de Ecuaciones Lineales
Almacenamiento compacto de matrices esparcidas (ralas) –
Esquema 2
Las entradas en ija en las posiciones mayores o iguales a n+2 contienen
los números de las columnas del elemento respectivo en sa.
Los vectores sa e ija tienen la misma longitud, es decir ija(ija(1)-1)-1.

Ejemplo del llenado de los vectores sa e ija para la matriz A :


inicio de filas
ija  7 8 8 10 11 12 3 2 4 5 4 
3 0 1 0 0
  número de columna
0 4 0 0 0 de los elementos
fuera de la diagonal
A  0 7 5 9 0
 
0 0 0 0 2
0 sa  3 4 5 0 5 x 1 7 9 2 6
 0 0 6 5  diagonal elementos fuera de
la diagonal

Así, ija(1) = 7 = 5 + 2 entonces n = 5, el número de elementos fuera de la


diagonal distintos de cero es ija(5+1)-1 -(5+1) = 5, la dimensión de los
vectores sa e ija es ija(ija(1)-1)-1 = 11.
Prof. Raúl Manzanilla 27
Sistemas de Ecuaciones Lineales
Almacenamiento compacto de matrices esparcidas (ralas) –
Esquema 3
Uno de estos formatos de almacenamiento es el denominado coordenado
mediante el cual se almacenan los elementos no nulos de una matriz
empleando tres vectores correspondientes a los índices de la fila, columna
y a su valor correspondiente en la matriz.
Por ejemplo, dada la matriz A
 0.0  1.0 0.0 2.0 0.0 
 
 1 .1 0.0  3.6 0. 0 0.0 
A  2.1 0.0 0.0 0. 0 1.0 
 
 0 .0 0.0 0.0  100.0  2.0 
  2.7 0.0 5 . 1 0 . 0  2 .7 
 
y denotando por F(i), C(i), S(i), para i =1,…,n, las componentes de los
vectores fila (F), columna (C) y entrada no nula de la matriz (S), se tiene
que el almacenamiento coordenado de A viene dado por:

Prof. Raúl Manzanilla 28


Sistemas de Ecuaciones Lineales
Almacenamiento compacto de matrices esparcidas (ralas) –
Esquema 3
F 1 1 2 2 3 3 4 4 5 5 5

C  2 4 1 3 1 5 4 5 1 3 5

S   1.0 2.0 1.1  3.6 2.1 1.0  100.0  2.0  2.7 5.1  2.7 

Es de hacer notar que la matriz A fue recorrida por filas para generar el
almacenamiento coordenado.

Prof. Raúl Manzanilla 29

También podría gustarte