Está en la página 1de 28

Métodos iterativos para sistemas

lineales
Sea A ∈ Rn×n invertible y b ∈ Rn .
Sea A ∈ Rn×n invertible y b ∈ Rn .

Supongamos que A = M − N, con M invertible. Entonces:

Ax = b ⇐⇒ Mx = Nx + b ⇐⇒ x = M −1 Nx + M −1 b
Sea A ∈ Rn×n invertible y b ∈ Rn .

Supongamos que A = M − N, con M invertible. Entonces:

Ax = b ⇐⇒ Mx = Nx + b ⇐⇒ x = M −1 Nx + M −1 b

Denotemos por G(x) = M −1 Nx + M −1 b. Entonces podemos establecer 2 versiones


(equivalentes) de un algoritmo de punto fijo.

x (0) x (0)
 
: dato inicial : dato inicial
(P) ⇐⇒ (P̃)
x (k+1) = G(x (k) ) Mx (k+1) = Nx (k) + b
Sea A ∈ Rn×n invertible y b ∈ Rn .

Supongamos que A = M − N, con M invertible. Entonces:

Ax = b ⇐⇒ Mx = Nx + b ⇐⇒ x = M −1 Nx + M −1 b

Denotemos por G(x) = M −1 Nx + M −1 b. Entonces podemos establecer 2 versiones


(equivalentes) de un algoritmo de punto fijo.

x (0) x (0)
 
: dato inicial : dato inicial
(P) ⇐⇒ (P̃)
x (k+1) = G(x (k) ) Mx (k+1) = Nx (k) + b

Notemos que en cada paso k (k ≥ 0) del algoritmo (P̃) debemos resolver un sistema
lineal de la forma Mx (k+1) = b̃. Por lo tanto, la idea es seleccionar M y N de manera que
el sistema se pueda resolver de manera sencilla (por ejemplo, M diagonal o triangular).
Sea A ∈ Rn×n invertible y b ∈ Rn .

Supongamos que A = M − N, con M invertible. Entonces:

Ax = b ⇐⇒ Mx = Nx + b ⇐⇒ x = M −1 Nx + M −1 b

Denotemos por G(x) = M −1 Nx + M −1 b. Entonces podemos establecer 2 versiones


(equivalentes) de un algoritmo de punto fijo.

x (0) x (0)
 
: dato inicial : dato inicial
(P) ⇐⇒ (P̃)
x (k+1) = G(x (k) ) Mx (k+1) = Nx (k) + b

Notemos que en cada paso k (k ≥ 0) del algoritmo (P̃) debemos resolver un sistema
lineal de la forma Mx (k+1) = b̃. Por lo tanto, la idea es seleccionar M y N de manera que
el sistema se pueda resolver de manera sencilla (por ejemplo, M diagonal o triangular).

k→∞
Si z es solución del sistema Ax = b, ¿bajo qué condiciones x (k) −→ z?
Denotemos por B = M −1 N (matriz de iteración) y por c = M −1 b.
Denotemos por B = M −1 N (matriz de iteración) y por c = M −1 b.

Notemos que si z es solución del sistema Ax = b se tiene que

Az = b ⇐⇒ z = G(z) ⇐⇒ z = B · z + c (1)
Denotemos por B = M −1 N (matriz de iteración) y por c = M −1 b.

Notemos que si z es solución del sistema Ax = b se tiene que

Az = b ⇐⇒ z = G(z) ⇐⇒ z = B · z + c (1)

Por otro lado, de la definición del algoritmo (P):

x (k+1) = Bx (k) + c, k = 0, 1, . . . (2)


Denotemos por B = M −1 N (matriz de iteración) y por c = M −1 b.

Notemos que si z es solución del sistema Ax = b se tiene que

Az = b ⇐⇒ z = G(z) ⇐⇒ z = B · z + c (1)

Por otro lado, de la definición del algoritmo (P):

x (k+1) = Bx (k) + c, k = 0, 1, . . . (2)

Restando (2) con (1) obtenemos




 x (1) − z = B(x (0) − z)
 x (2) − z B(x (1) − z) = B 2 (x (0) − z)

 =
x (k+1) − z = B(x (k) − z), k = 0, 1, . . . ⇐⇒ ..


 .
B k (x (0) − z)

x (k) − z =

Denotemos por B = M −1 N (matriz de iteración) y por c = M −1 b.

Notemos que si z es solución del sistema Ax = b se tiene que

Az = b ⇐⇒ z = G(z) ⇐⇒ z = B · z + c (1)

Por otro lado, de la definición del algoritmo (P):

x (k+1) = Bx (k) + c, k = 0, 1, . . . (2)

Restando (2) con (1) obtenemos




 x (1) − z = B(x (0) − z)
 x (2) − z B(x (1) − z) = B 2 (x (0) − z)

 =
x (k+1) − z = B(x (k) − z), k = 0, 1, . . . ⇐⇒ ..


 .
B k (x (0) − z)

x (k) − z =

De esto último se concluye que


k→∞ k→∞
x (k) −→ z ⇐⇒ B k −→ 0
Denotemos por B = M −1 N (matriz de iteración) y por c = M −1 b.

Notemos que si z es solución del sistema Ax = b se tiene que

Az = b ⇐⇒ z = G(z) ⇐⇒ z = B · z + c (1)

Por otro lado, de la definición del algoritmo (P):

x (k+1) = Bx (k) + c, k = 0, 1, . . . (2)

Restando (2) con (1) obtenemos




 x (1) − z = B(x (0) − z)
 x (2) − z B(x (1) − z) = B 2 (x (0) − z)

 =
x (k+1) − z = B(x (k) − z), k = 0, 1, . . . ⇐⇒ ..


 .
B k (x (0) − z)

x (k) − z =

De esto último se concluye que


k→∞ k→∞
x (k) −→ z ⇐⇒ B k −→ 0

¿Ahora cómo estudiamos la convergencia de B k ?


k→∞
Caso n = 1: B k −→ 0 ⇐⇒ |B| < 1.
k→∞
Caso n = 1: B k −→ 0 ⇐⇒ |B| < 1.

Caso n > 1: Sea λi ∈ C un valor propio de B y vi un vector propio asociado a λi , entonces

Bvi = λi vi =⇒ B k vi = λki vi
k→∞
Caso n = 1: B k −→ 0 ⇐⇒ |B| < 1.

Caso n > 1: Sea λi ∈ C un valor propio de B y vi un vector propio asociado a λi , entonces

Bvi = λi vi =⇒ B k vi = λki vi

Tomando vi = x 0 − y vemos que:

k→∞
x (k) − z = B k (x (0) − z) = λki vi −→ 0 ⇐⇒ |λi | < 1
k→∞
Caso n = 1: B k −→ 0 ⇐⇒ |B| < 1.

Caso n > 1: Sea λi ∈ C un valor propio de B y vi un vector propio asociado a λi , entonces

Bvi = λi vi =⇒ B k vi = λki vi

Tomando vi = x 0 − y vemos que:

k→∞
x (k) − z = B k (x (0) − z) = λki vi −→ 0 ⇐⇒ |λi | < 1

Luego, una condición necesaria y suficiente para asegurar convergencia es que

ρ(B) = max{|λi | : λi ∈ C es valor propio de B} < 1


k→∞
Caso n = 1: B k −→ 0 ⇐⇒ |B| < 1.

Caso n > 1: Sea λi ∈ C un valor propio de B y vi un vector propio asociado a λi , entonces

Bvi = λi vi =⇒ B k vi = λki vi

Tomando vi = x 0 − y vemos que:

k→∞
x (k) − z = B k (x (0) − z) = λki vi −→ 0 ⇐⇒ |λi | < 1

Luego, una condición necesaria y suficiente para asegurar convergencia es que

ρ(B) = max{|λi | : λi ∈ C es valor propio de B} < 1

Teorema
El algoritmo de punto fijo (P) (≡ (P̃)) converge si y solo si ρ(M −1 N) < 1.
k→∞
Caso n = 1: B k −→ 0 ⇐⇒ |B| < 1.

Caso n > 1: Sea λi ∈ C un valor propio de B y vi un vector propio asociado a λi , entonces

Bvi = λi vi =⇒ B k vi = λki vi

Tomando vi = x 0 − y vemos que:

k→∞
x (k) − z = B k (x (0) − z) = λki vi −→ 0 ⇐⇒ |λi | < 1

Luego, una condición necesaria y suficiente para asegurar convergencia es que

ρ(B) = max{|λi | : λi ∈ C es valor propio de B} < 1

Teorema
El algoritmo de punto fijo (P) (≡ (P̃)) converge si y solo si ρ(M −1 N) < 1.

Observación
Recordemos que ρ(B) ≤ kBk, para toda norma matricial inducida. Por ende, una
condición suficiente (no necesaria) es que kBk < 1.
Mientras más pequeño ρ(B), más rápida es la convergencia.
Métodos iterativos importantes

En adelante escribiremos A = L + D + U, donde

0 0 ··· 0 a11 0 ··· 0 0 a12 ··· a1n


     
a21 0 · · · 0  0 a22 ··· 0  0 0 ··· a2n 
L= . .. .  , D =  .. .. ..  , U =  .. .. .. 
     
 .. .. .. ..
. . ..   . . . .  . . . . 
an1 an2 · · · 0 0 0 ··· ann 0 0 ··· 0
Métodos iterativos importantes

En adelante escribiremos A = L + D + U, donde

0 0 ··· 0 a11 0 ··· 0 0 a12 ··· a1n


     
a21 0 · · · 0  0 a22 ··· 0  0 0 ··· a2n 
L= . .. .  , D =  .. .. ..  , U =  .. .. .. 
     
 .. .. .. ..
. . ..   . . . .  . . . . 
an1 an2 · · · 0 0 0 ··· ann 0 0 ··· 0

Método de Jacobi

M = D, N = −(L + U)
 
n
(k+1) 1  X (k) 
=⇒ Dx (k+1) = b − (L + U)x (k) =⇒ xp = b p − apj xj  (p = 1, . . . , n)
app  
j=1
j6=p

Costo computacional de resolución: n


Método de Gauss - Seidel

M = D + L, N = −U
 
p−1 n
(k+1) 1  X (k)
X (k) 
=⇒ (D + L)x (k+1) = b − Ux (k) =⇒ xp = bp − apj xj − apj xj
app
j=1 j=p+1

(p = 1, . . . , n)

Costo computacional de resolución: n2


Método de Gauss - Seidel

M = D + L, N = −U
 
p−1 n
(k+1) 1  X (k)
X (k) 
=⇒ (D + L)x (k+1) = b − Ux (k) =⇒ xp = bp − apj xj − apj xj
app
j=1 j=p+1

(p = 1, . . . , n)

Costo computacional de resolución: n2


       
4 1 0 0 4 0 0 1
Ejemplo: Sea A = = + + . Entonces la matriz de
−1 2 −1 0 0 2 0 0
| {z } | {z } | {z }
L D U
iteración corresponde a
−1  !
− 14
    
4 0 0 −1 1 2 0 0 −1 0
−(D + L)−1 U = · = =
−1 2 0 0 8 1 4 0 0 0 − 18

Luego, los valores propios de la matriz de iteración corresponden a λ1 = 0 y λ2 = 18 , y por


lo tanto su radio espectral es menor que 1. Por teorema se tiene que el método de Gauss
- Seidel converge.
Definición
Una matriz cuadrada A se llama estrictamente diagonal dominante por filas si
n
X
|ajk | < |ajj |, ∀j = 1, . . . , n
k=1
k6=j
 
3 −2
Ejemplo: A =
−3 5
Definición
Una matriz cuadrada A se llama estrictamente diagonal dominante por filas si
n
X
|ajk | < |ajj |, ∀j = 1, . . . , n
k=1
k6=j La diagonal es mayor a la suma de toda su fila
 
3 −2
Ejemplo: A =
−3 5

Teorema
Si A es estrictamente diagonal dominante, entonces A es invertible y los métodos de
Jacobi y Gauss - Seidel convergen.

Idea: En el caso del método de Jacobi se observa que:


n
1 X
kD−1 (L + U)k∞ = max |ajk | < 1
j=1,...,n |ajj |
k=1
k6=j

Por otro lado, si λ es el valor propio de B = −D−1 (L + U) tal que |λ| = ρ(B) y v es un vector
propio asociado a λ, con kvk∞ = 1, entonces

|λ| = kλvk = kBvk∞ ≤ kBk∞ < 1


Método de S.O.R. (Succesive over relaxation)
Sea ω ∈ R \ {0}.
 
1 1
M= D + L, N= − 1 D − U =⇒ Bω = (D + ωL)−1 ((1 − ω)D − ωU)
ω ω
 
p−1 n
(k+1) (k) ω  X (k)
X (k) 
xp = (1 − ω)xp + bp − apj xj − apj xj (p = 1, . . . , n)
app
j=1 j=p+1

Para ω = 1 se recupera el método de Gauss - Seidel.


Método de S.O.R. (Succesive over relaxation)
Sea ω ∈ R \ {0}.
 
1 1
M= D + L, N= − 1 D − U =⇒ Bω = (D + ωL)−1 ((1 − ω)D − ωU)
ω ω
 
p−1 n
(k+1) (k) ω  X (k)
X (k) 
xp = (1 − ω)xp + bp − apj xj − apj xj (p = 1, . . . , n)
app
j=1 j=p+1

Para ω = 1 se recupera el método de Gauss - Seidel.

Teorema
Sea A ∈ Rn×n simétrica y definida positiva. Entonces

ρ(Bω ) < 1 ⇐⇒ 0 < ω < 2


Matrices Sparse (rala)

Son matrices que contienen muchos ceros, lo cual conlleva a una rebaja en su
almacenamiento y en el número de operaciones.

Ejemplo: Matrices tridiagonales

2 −1 0 0 0
 
−1 4 −2 0 0 
A= 0 −2 4 −3 0 
 
 0 0 −3 6 −2
0 0 0 −2 4
Matrices Sparse (rala)

Son matrices que contienen muchos ceros, lo cual conlleva a una rebaja en su
almacenamiento y en el número de operaciones.

Ejemplo: Matrices tridiagonales

2 −1 0 0 0
 
−1 4 −2 0 0 
A= 0 −2 4 −3 0 
 
 0 0 −3 6 −2
0 0 0 −2 4

Teorema
Si A es simétrica, definida positiva y tridiagonal, entonces el valor ω ∗ óptimoa viene dado
por
2
ω∗ = p
1 + 1 − ρ2 (BJ )
donde BJ es la matriz de iteración de Jacobi.
a
Permite obtener un radio espectral mínimo

También podría gustarte