Subido por sergio sordo lopez

Complementos del tema 3. Métodos iterativos

Anuncio
Manuel José Fernández, mjfg@uniovi.es
METODOS NUMERICOS. Curso 2020-2021
3. METODOS NUMÉRICOS PARA LA RESOLUCIÓN DE SISTEMAS
LINEALES (Continuación)
Si la matriz cuadrada A del sistema de ecuaciones lineales Ax = b es de orden muy grande, la
propagación de los errores de redondeo cuando utilizamos un método directo puede ser también muy
grande y por tanto los resultados obtenidos pueden diferir considerablemente de los auténticos.
En los métodos iterativos, a partir de un vector inicial (“semilla”) y mediante un algoritmo
conveniente se obtiene una sucesión de vectores que bajo determinadas condiciones converge a la
solución del sistema.
Dado el sistema de n ecuaciones lineales con n incógnitas Ax = b , se determina una matriz B de
orden n y un vector c  R n de tal manera que el sistema x = Bx + c , es decir, ( I − B) x = c sea
equivalente al sistema de partida.
 
Elegimos x ( 0  R n como vector inicial y definimos la sucesión de vectores x ( m dada por:
x ( m+1 = Bx ( m + c ,
m0
Así, por ejemplo, x (1 = Bx (0 + c
x ( 2 = Bx (1 + c
Definición.
Sea x ( m  una sucesión de vectores de R n y
 

una norma definida sobre R n .

 
lim x ( m = x  lim x ( m − x = 0  lim xi( m = xi
m →
m →
m →
i = 1 , . . . , n
Se verifica que todas las normas definidas sobre R ( n son equivalentes respecto a la convergencia, es
decir, si una sucesión de vectores converge a un vector con una norma determinada, el resultado se
sigue verificando con cualquier otra norma. Por tanto la definición anterior es independiente de la
norma utilizada.
Convergencia de un método iterativo.
Sea Ax = b el sistema a resolver y x = Bx + c un sistema equivalente.
Teorema.
Si
 
B  1 para alguna norma matricial subordinada, entonces la sucesión de vectores x ( m
definida por x ( m+1 = Bx ( m + c m  0 , siendo x ( 0 un vector arbitrario, converge a la solución del
sistema x = Bx + c que existe y es única.
Método de Jacobi.
Consideremos un sistema de n ecuaciones lineales con n incógnitas Ax = b , con det(A)  0
aii  0
y
i = 1,..., n , es decir, con matriz de coeficientes cuadrada e invertible y entradas diagonales
no nulas.
1
Manuel José Fernández, mjfg@uniovi.es
a
a
b1 a12
−
x 2 − 13 x3 − ... − 1n x n
a11 a11
a11
a11
a 23
a
b2 a 21
x2 =
−
x1 −
x3 − ... − 2 n x n
a 22 a 22
a 22
a 22
'
x1 =
a11 x1 + a12 x 2 + . . . + a1n x n = b1 
a 21 x1 + a 22 x 2 + . . . a 2 n x n = b2 

'

'


'

a n1 x1 + a n 2 x 2 + . . . + a nn x n = bn 
0
 x1   b1 / a11  
  
 
 x 2   b2 / a 22   − a 21 / a 22
 '   '  − a /a
 =
 +  31 33
.
 '   '  
 '   '  
.
  
 
 x  b / a   − a / a
 n   n nn   n1 nn
'
'
a n ,n −1
bn a n1
an2
xn =
−
x1 −
x 2 − ... −
x n −1
a nn a nn
a nn
a nn
− a12 / a11
. .
.
0
. .
.
− a32 / a33
0 .
.
.
. .
.
.
. .
.
− a n 2 / a nn
. . − a n ,n −1 / a nn
− a1n / a11 

− a 2 n / a 22 

.

.


.


0

 x1 
 
 x2 
 ' 
 
 ' 
 ' 
 
x 
 n
Por tanto, si definimos:
si i = j
0

B = (bij ) / bij =  aij
−
 aii
si i  j
c = (ci ) /
,
ci =
bi
aii
resulta que el sistema x = Bx + c es equivalente al sistema Ax = b . El método iterativo de Jacobi
se corresponde con esta elección de B y de c .
x ( 0  R n , se construye la sucesión de vectores
Elegido el vector inicial
x
( m+1
= Bx
(m
+c
x 
(m
de la forma
m  0.
0
 x1 ( m +1  
 ( m +1  
 x2
  − a 21 / a 22

 − a /a
 '  =  31 33
 '  
.

 
.
 '  
 x ( m +1   − a n1 / a nn
 n
 
− a12 / a11
. .
.
0
. .
.
− a32 / a33
0 .
.
.
. .
.
.
. .
.
− a n 2 / a nn
. . − a n ,n −1 / a nn
2
− a1n / a11 

− a 2 n / a 22 

.

.


.


0

 x1 ( m   b1 / a11 
 (m  

 x 2   b2 / a 22 

 

 '  + '  =
 '   ' 

 

 '   ' 
 x (m   b / a 
 n   n nn 
Manuel José Fernández, mjfg@uniovi.es
a
a
a


(m
(m
(m
 − 12 x 2 − 13 x3 − . . . − 1n x n

a11
a11
a11


a2n (m 
a 21 ( m a 23 ( m

 − a x1 − a x3 − . . . − a x n

22
22
22


'
= 
+


'


'


a n ,n −1
 a n1 ( m a n 2 ( m
(m 
 − a x1 − a x 2 − . . . − a x n −1 
nn
nn
nn


 b1 / a11 


 b2 / a 22 
 ' 


 ' 
 ' 


b / a 
 n nn 
A nivel de componentes:
xi
( m +1
=
bi
−
aii
n

j =1, j i
aij
aii
xj
(m
i = 1, . . . , n
Algoritmo de Jacobi.
Dado el sistema Ax = b de orden n con aii  0
i = 1,..., n . Elegir un vector x ( 0 de orden n .
Para m = 0 , 1 , 2, . . .
xi
( m +1
=
1 
bi −
aii 
n
a
j =1 , j  i
ij
(m 
xj 

i = 1 , ..., n
Ejercicio.
Estudiar la convergencia del algoritmo de Jacobi aplicado al sistema:
4 x1 + x 2 + x3 = 6

 x1 + 2 x 2 + x3 = 5
 x + x + 3x = 3
2
3
 1
y realizar tres iteraciones a partir del vector nulo.
Solución.
 4 1 1


A =  1 2 1
 1 1 3


BJ

;
= max1 / 2 , 1 , 2 / 3 = 1
− 1/ 4 − 1/ 4
 0


BJ =  − 1 / 2
0
− 1/ 2
 − 1/ 3 − 1/ 3
0 

BJ
;
1
= max5 / 6 , 7 / 12 , 3 / 4 = 5 / 6  1
Por tanto, el algoritmo de Jacobi es convergente(a la única solución del sistema) independientemente
del vector inicial elegido.
3
Manuel José Fernández, mjfg@uniovi.es
Para hallar las iteraciones podemos seguir dos caminos:
1) Sin usar explícitamente la matriz de iteración B .
x1 =
x
6 − x 2 − x3
4
0
 
= 0
0
 
(0
;
;
x2 =
5 − x1 − x3
2
6−0−0 3

  
4

 2
5
−
0
−
0
(1
 = 5
x =

 2
2
3−0−0 1

  
3

  
;
x3 =
;
3 − x1 − x 2
3
 6 − (5 / 2) − 1   5 


 
4

  8 
5 − (3 / 2) − 1   5 
x (2 = 
=

  4 
2
 3 − (3 / 2) − (5 / 2)   1 

 − 
3

  3
 6 − (5 / 4) + (1 / 3)   61 


 
4
 1.27 

  48 


5 − (5 / 8) + (1 / 3)   113 
(3

  2.35 
x =
=

  48 
2
 0.37 
 3 − (5 / 8) − (5 / 4)   3 




 
3

  8 
2) Usando la matriz de iteración
x
(0
3/ 2
0
 5/8 

 



(2
(1
(1
(0
=  0  , x = Bx + c = c =  5 / 2  ; x = Bx + c =  5 / 4  ;
 1 
0
 − 1/ 3

 



Nota.
La solución exacta del sistema es
x1 = 1
x2 = 2
 61 / 48 


x = 113 / 48 
 3/8 


(3
x3 = 0
Definición.
A = (aij )nxn es estrictamente diagonal dominante por filas(e.d.f.) : aii 

n
a ij
j =1 , j  i
aii

1
n
a
ij
i = 1,..., n
j =1 , j  i
i = 1,..., n
Corolario.
Una condición suficiente (no necesaria) para que el algoritmo de Jacobi sea convergente, sea cual sea
el vector inicial elegido, es que la matriz de coeficientes del sistema Ax = b sea estrictamente
diagonal dominante por filas.
Demostración.
Veamos que el hecho de que A sea e.d.f. equivale a que
4
BJ

1
Manuel José Fernández, mjfg@uniovi.es
BJ

 n aij 
n

 n

= max  bij  = max   bij + bii  = max  
 1
1 i  n
 j =1  1i  n  j =1 , j i
 1i  n  j =1 , j i aii 
y basta con aplicar el teorema de convergencia visto.
Ejemplo:
 3 2 0 


A = − 2 4 1 
 1 3 − 5


;
0 
 0 − 2/3


B J = 1 / 2
0
− 1/ 4 ;
1 / 5 3 / 5
0 

BJ

2 3 4
= max  , ,   1
3 4 5
Método de Gauss-Seidel.
Modificamos el algoritmo de Jacobi de tal manera que en el cálculo de la componente x i( m +1
i = 2,..., n , se usen los valores de las componentes x1( m +1 , x 2( m +1 , . . ., xi(−m1+1 ya calculadas,
(m
(m
(m
reemplazando a x1 , x 2 , . . ., xi −1 respectivamente.
a
a
a


(m
(m
(m
− 12 x 2 − 13 x3 − . . . − 1n x n


a11
a11
a11
 x1
 

 ( m +1  
a2n (m
a 21 ( m +1 a 23 ( m

 x2
 
−
x1
−
x3 − . . . −
xn

a 22
a 22
a 22

 

 ' = 
'
+
 '  

'

 

 '  
'

 x ( m +1   a
a n,n −1
a n 2 ( m +1
( m +1
( m +1 
 n

n1
−
x2
− ... −
x n −1
 − a x1

a nn
a nn
 nn

( m +1
 b1 / a11 


 b2 / a 22 
 ' 


 ' 
 ' 


b / a 
 n nn 
Algoritmo de Gauss-Seidel.
Dado el sistema Ax = b de orden n con
aii  0
i = 1,..., n . Elegir un vector x ( 0 de orden
n . Para m = 0 , 1 , 2, . . .
xi
( m +1
=
i −1
1 
( m +1
−
bi −  aij x j
aii 
j =1
n
a
j =i +1
ij
(m 
xj 

i = 1 , ..., n
Dado el sistema Ax = b , ¿Cómo se determina la matriz B de iteración y el vector c del método?
5
Manuel José Fernández, mjfg@uniovi.es
a11 x1 + a12 x 2 + . . . + a1n x n = b1 
a 21 x1 + a 22 x 2 + . . . a 2 n x n = b2 

'

'


'

a n1 x1 + a n 2 x 2 + . . . + a nn x n = bn 
 a11 0

 a 21 a 22
 '

 '
a
 n1 a n 2
.
.
0
.
.
.
a11x1 = −a12 x2 − ... − a1n x n + b1
a 21x1 + a 22 x2 = −a 23 x3 − ... − a 2 n x n + b2
'
'
'
a n1 x1 + a n 2 x2 + ... + a nn x n = bn
0   x1   0 − a12
  
0   x2   0
0



'
' ='
  
0  '  '
a nn   x n   0
0
− a13
.
− a 23
0
.
.
.
− a1n 

− a2n 


− a n−1,n 
0 
 x1   b1 
   
 x 2   b2 
 '  + ' 
   
 '   ' 
 x  b 
 n  n
S
L
Ax = b  Lx = Sx + b  x = L−1 Sx + L−1b
Resulta:
−1
BG − S = L S =
 a11 0

 a 21 a 22
 '

 '
a
 n1 a n 2
 a11

 a 21
−1
c = L b = . '
 '

 a n1
.
.
0
.
.
.
0
a 22
.
0
.
.
an2
.
.
0 

0 
' 

0 
a nn 
0 

0 
' 

0 

a nn 
−1
−1
 0 − a12

0
0
'

'
0
0

− a13
.
− a 23
0
.
.
.
 b1 
 
 b2 
 ' 
 
 ' 
b 
 n
Ejercicio.
Estudiar la convergencia del algoritmo de Gauss-Seidel aplicado al sistema:
4 x1 + x 2 + x3 = 6

 x1 + 2 x 2 + x3 = 5
 x + x + 3x = 3
2
3
 1
y realizar dos iteraciones a partir del vector nulo.
6
− a1n 

− a2n 


− a n−1,n 
0 
Manuel José Fernández, mjfg@uniovi.es
Solución.
 4 1 1


A =  1 2 1
 1 1 3


=
−1
BG − S
;
 4 0 0   0 − 1 − 1

 

−1
= L S =  1 2 0   0 0 − 1 =
 1 1 3  0 0
0 

 
0
0
0   0 − 1 − 1
 1/ 4




0   0 0 − 1 =  0
 − 1/ 8 1/ 2
 − 1 / 24 − 1 / 6 1 / 3   0 0
0
0 



BG −S
− 1/ 4 − 1/ 4 

1/ 8 − 3 / 8
1 / 24 5 / 24 
= max1 / 2 , 1 / 2 , 1 / 4 = 1 / 2  1

Por tanto el algoritmo de Gauss-Seidel es convergente(a la única solución del sistema) sea cual sea el
vector inicial elegido.
Nota.
Para obtener la inversa de L , resolvemos tres sistemas por el método de sustitución progresiva.
Para hallar las iteraciones podemos seguir dos caminos:
1) Sin usar explícitamente la matriz de iteración B .
x1 =
6 − x 2 − x3
4
;
x2 =
5 − x1 − x3
2
;
x3 =
3 − x1 − x 2
3
6−0−0
 6 − (7 / 4) + (1 / 12) 

  3 

  13 

 

4
4
2 
0

  12 



 
5
−
(
13
/
12
)
+
(
1
/
12
)
5
−
(
3
/
2
)
−
0
7
(
2
= 2 
=
 ; x =
=  0  ; x (1 = 

  1 

  4 
2
2
0
 3 − (13 / 12) − 2   − 
 3 − (3 / 2) − (7 / 4)   1 
 
−

  36 

 

3
3

  12 


x (0
2) Usando la matriz de iteración
x (0
0
0  6  3/ 2 
 1/ 4
 13 / 12 
0








 
0   5  =  7 / 4  ; x ( 2 = Bx (1 + c =  2 
=  0  ; x (1 = c =  − 1 / 8 1 / 2
 − 1 / 36 
 − 1 / 24 − 1 / 6 1 / 3   3   − 1 / 12 
0




  
 
Nota:
Para estudiar la convergencia de un método iterativo, en el caso de que las normas infinito y uno de
la matriz de iteración sean mayores o iguales a uno, recurrimos a los valores propios de B .
7
Manuel José Fernández, mjfg@uniovi.es
Definición.
Sean B una matriz cuadrada de orden n e I la matriz identidad del mismo orden. Si desarrollamos
det(B − I ) obtenemos un polinomio de grado n , con variable  , que recibe el nombre de
polinomio característico de la matriz B .
P( ) = det(B − I ) =
b11 − 
b12
b21
b22 − 
'
'
bn1
bn 2
'
b1n
b2 n
'
bnn − 
= (−1) n n + ...
Los valores propios de B son los ceros de su polinomio característico, es decir, son las raíces de su
ecuación característica P( ) = 0 .
Teorema.
El algoritmo definido por x ( m+1 = Bx ( m + c m  0 , es convergente, independientemente del vector
inicial x ( 0 elegido  todos los valores propios de B son, en módulo, menores estrictamente que
uno.
Notas:
Si   R ,
Si   C
  1    (−1 , 1)
y
 = a + bi ,
Si localizamos un valor propio  de
 1 
a 2 + b 2  1  a2 + b2  1
B que verifique
 1
podríamos garantizar la no
convergencia del algoritmo (sin necesidad de localizar los restantes valores propios).
Si P( ) es de grado impar entonces existe, al menos, un valor propio real. Los valores propios
complejos (si los hay) siempre se presentan por pares. Resulta que si a + bi es valor propio entonces
a − bi también lo es.
Si P( ) tiene coeficientes racionales siempre podemos obtener un polinomio equivalente con
coeficientes enteros.
Si P( ) tiene coeficientes enteros, una condición necesaria para que P( ) = 0 tenga una raíz entera
es que tal raíz sea divisor del término independiente y una condición necesaria para que tenga una raíz
racional es que el numerador sea un divisor del término independiente y el denominador lo sea del
coeficiente principal.
8
Descargar