CI165 — Analise de Algoritmos Iterativos´ · PDF fileCI165 — Analise de Algoritmos Iterativos
Métodos iterativos para resolver SELjoaquin/mn11/clase08.pdf · Introducción a los métodos...
Transcript of Métodos iterativos para resolver SELjoaquin/mn11/clase08.pdf · Introducción a los métodos...
Clase No. 8 (Parte 1):
Métodos iterativos para resolversistemas de ecuaciones lineales
MAT–251 Dr. Alonso Ramírez ManzanaresDepto. de MatemáticasUniv. de Guanajuatoe-mail: [email protected]: http://www.cimat.mx/salram/met_num/
Dr. Joaquín Peña AcevedoCIMAT A.C.e-mail: [email protected]
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 1 / 22
Matrices estrictamente diagonal dominante
Proposición
Sea A una matriz estrictamente diagonal dominante. Entonces la matriz esinvertible.
Por contradicción, supongamos que es singular. Entonces podemos hallarx 6= 0 tal que Ax = 0. Supongamos que
|xk | = max1≤i≤n
|xi|.
Entonces
n∑
j=1
akjxj = 0 =⇒ akkxk = −n∑
j=1j 6=i
akjxj
|akk | |xk | ≤n∑
j=1j 6=i
|akj| |xj| =⇒ |akk | ≤n∑
j=1j 6=i
|akj||xj||xk |
≤n∑
j=1j 6=i
|akj|
lo cual es una contradicción.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 2 / 22
Normas para vectores
Definición de norma vectorial
Una norma en Rn es una función ‖ · ‖ : Rn → R que tiene las propiedades:1 ‖x‖ ≥ 0 ∀x ∈ Rn,2 ‖x‖ = 0 si y sólo si x = 0,3 ‖αx‖ = |α| ‖x‖ ∀x ∈ Rn, α ∈ R,4 ‖x+y‖ ≤ ‖x‖+ ‖y‖ ∀x,y ∈ Rn.
Ejemplos: Para x = (x1,x2, ...,xn)>
‖x‖2 =
√
√
√
√
n∑
i=1
x2i (Norma l2)
‖x‖1 =n∑
i=1
|xi| (Norma l1)
‖x‖∞ = max1≤i≤n
|xi| (Norma l∞)
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 3 / 22
Normas para matricesDefinición de norma matricial
Una norma en Rn×n es una función ‖ · ‖ : Rn×n → R que tiene las propiedadespara todo A,B ∈ Rn×n y α ∈ R:
1 ‖A‖ ≥ 0 y ‖A‖ = 0 si y sólo si A = 0,2 ‖αA‖ = |α| ‖A‖,3 ‖A+B‖ ≤ ‖A‖+ ‖B‖,4 ‖AB‖ ≤ ‖A‖‖B‖.
Ejemplos: Para A = [aij],
‖A‖F =
n∑
i=1
n∑
j=1
a2ij
1/2
(Norma de Frobenius)
‖A‖∞ = max1≤i≤n
n∑
j=1
|aij| (Norma l∞)
‖A‖ = maxx 6=0
‖Ax‖‖x‖
(Norma natural)
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 4 / 22
Introducción a los métodos iterativos
Una separación de A es una descomposición A =Q−P, con Q una matriz nosingular.
Una separación puede producir un método iterativo:
b = Ax =Qx−Px =⇒ x =Q−1(Px+b) =Mx+ c
Queremos un método en el que demos un vector inicial x0 y generemos unasucesión mediante
xt =Mxt−1 + c (1)
tal que xt → x∗, donde x∗ es la solución del sistema Ax = b.
En el proceso iterativo, como la matriz M y el vector c no cambian, se diceque el método es estacionario.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 5 / 22
Introducción a los métodos iterativos
Una separación de A es una descomposición A =Q−P, con Q una matriz nosingular.
Una separación puede producir un método iterativo:
b = Ax =Qx−Px =⇒ x =Q−1(Px+b) =Mx+ c
Queremos un método en el que demos un vector inicial x0 y generemos unasucesión mediante
xt =Mxt−1 + c (1)
tal que xt → x∗, donde x∗ es la solución del sistema Ax = b.
En el proceso iterativo, como la matriz M y el vector c no cambian, se diceque el método es estacionario.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 5 / 22
Introducción a los métodos iterativos
Tenemos que la solución x∗ de Ax = b satisface
x∗ =Mx∗ + c (2)
Restando (2) de (1) se obtiene
xt − x∗ =M(xt−1 − x∗)
=⇒ ‖xt − x∗‖ ≤ ‖M‖ ‖xt−1 − x∗‖
Proposición
Si ‖M‖ < 1, entonces la sucesión {xt}, con xt = Mxt−1 + c, converge paracualquier x0.
‖xt − x∗‖ ≤ ‖M‖ ‖xt−1 − x∗‖ < ‖xt−1 − x∗‖
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 6 / 22
Introducción a los métodos iterativos
Tenemos que la solución x∗ de Ax = b satisface
x∗ =Mx∗ + c (2)
Restando (2) de (1) se obtiene
xt − x∗ =M(xt−1 − x∗)
=⇒ ‖xt − x∗‖ ≤ ‖M‖ ‖xt−1 − x∗‖
Proposición
Si ‖M‖ < 1, entonces la sucesión {xt}, con xt = Mxt−1 + c, converge paracualquier x0.
‖xt − x∗‖ ≤ ‖M‖ ‖xt−1 − x∗‖ < ‖xt−1 − x∗‖
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 6 / 22
Un comentario sobre las normas en Rn
En general, no conocemos x∗. Por ello, un criterio para terminar de iterar elalgoritmo es cuando se cumpla
‖xt − xt−1‖1+ ‖xt‖
< tol o‖Axt −b‖1+ ‖b‖
< tol
Proposición
Si ‖ · ‖a y ‖ · ‖b son dos normas en Rn, entonces existen constantes α, β ∈ Rtales que para todo x ∈ Rn
α‖x‖a ≤ ‖x‖b ≤ β‖x‖a
En general, cuando dos normas cumplen las desigualdades anteriores sedice que son equivalentes.
Desde el punto de vista computacional, esto nos da la libertad de usar enlos algoritmos una norma que no sea costosa de calcular y que nointroduzca demasiados errores al calcularla.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 7 / 22
Un comentario sobre las normas en Rn
En general, no conocemos x∗. Por ello, un criterio para terminar de iterar elalgoritmo es cuando se cumpla
‖xt − xt−1‖1+ ‖xt‖
< tol o‖Axt −b‖1+ ‖b‖
< tol
Proposición
Si ‖ · ‖a y ‖ · ‖b son dos normas en Rn, entonces existen constantes α, β ∈ Rtales que para todo x ∈ Rn
α‖x‖a ≤ ‖x‖b ≤ β‖x‖a
En general, cuando dos normas cumplen las desigualdades anteriores sedice que son equivalentes.
Desde el punto de vista computacional, esto nos da la libertad de usar enlos algoritmos una norma que no sea costosa de calcular y que nointroduzca demasiados errores al calcularla.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 7 / 22
Un comentario sobre las normas en Rn
En general, no conocemos x∗. Por ello, un criterio para terminar de iterar elalgoritmo es cuando se cumpla
‖xt − xt−1‖1+ ‖xt‖
< tol o‖Axt −b‖1+ ‖b‖
< tol
Proposición
Si ‖ · ‖a y ‖ · ‖b son dos normas en Rn, entonces existen constantes α, β ∈ Rtales que para todo x ∈ Rn
α‖x‖a ≤ ‖x‖b ≤ β‖x‖a
En general, cuando dos normas cumplen las desigualdades anteriores sedice que son equivalentes.
Desde el punto de vista computacional, esto nos da la libertad de usar enlos algoritmos una norma que no sea costosa de calcular y que nointroduzca demasiados errores al calcularla.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 7 / 22
Método de Jacobi
Queremos resolver Ax = b haciendo una separación de la matrizA = [aij] =Q−P. Dado que x =Q−1(Px+b), conviene elegir Q de modo quesu inversa sea fácil de calcular.
En el método de Jacobi se elige
Q =
a11 0 · · · 00 a22 · · · 0...
.... . .
...0 0 · · · ann
, P =
0 −a22 · · · −a1n−a21 0 · · · −a2n
......
. . ....
−an1 −an2 · · · 0
Si b = (b1, ...,bn)>, xt−1 = (xt−11 ,xt−1
2 , ...,xt−1n
)>, entonces parai = 1,2, ...,n, la componente i-ésima de xt está dada por
xti=
1
aii
bi −n∑
j=1j 6=i
aijxt−1j
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 8 / 22
Método de Jacobi
Queremos resolver Ax = b haciendo una separación de la matrizA = [aij] =Q−P. Dado que x =Q−1(Px+b), conviene elegir Q de modo quesu inversa sea fácil de calcular.
En el método de Jacobi se elige
Q =
a11 0 · · · 00 a22 · · · 0...
.... . .
...0 0 · · · ann
, P =
0 −a22 · · · −a1n−a21 0 · · · −a2n
......
. . ....
−an1 −an2 · · · 0
Si b = (b1, ...,bn)>, xt−1 = (xt−11 ,xt−1
2 , ...,xt−1n
)>, entonces parai = 1,2, ...,n, la componente i-ésima de xt está dada por
xti=
1
aii
bi −n∑
j=1j 6=i
aijxt−1j
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 8 / 22
Método de Jacobi
Queremos resolver Ax = b haciendo una separación de la matrizA = [aij] =Q−P. Dado que x =Q−1(Px+b), conviene elegir Q de modo quesu inversa sea fácil de calcular.
En el método de Jacobi se elige
Q =
a11 0 · · · 00 a22 · · · 0...
.... . .
...0 0 · · · ann
, P =
0 −a22 · · · −a1n−a21 0 · · · −a2n
......
. . ....
−an1 −an2 · · · 0
Si b = (b1, ...,bn)>, xt−1 = (xt−11 ,xt−1
2 , ...,xt−1n
)>, entonces parai = 1,2, ...,n, la componente i-ésima de xt está dada por
xti=
1
aii
bi −n∑
j=1j 6=i
aijxt−1j
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 8 / 22
Convergencia del método de Jacobi
Note que
M =Q−1P = I−Q−1A
donde I es la matriz identidad de tamaño n. Entonces
‖M‖∞ = max1≤i≤n
n∑
j=1j 6=i
|aij||aii|
Si para todo i tenemos que
|aii| >n∑
j=1j 6=i
|aij| =⇒ ‖M‖∞ < 1
y por tanto la sucesión es convergente.
Proposición
Si la matriz A es estrictamente diagonal dominante, entonces el método deJacobi converge para cualquier vector inicial x0.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 9 / 22
Ejemplo 1.
A =
15 5 0 2 65 14 0 1 −14 2 −18 1 63 6 2 12 05 −4 4 1 15
Elegimos
x∗ =
100020003000−2000−1000
, =⇒ b = Ax∗ =
1500032000−54000−3000−8000
Iniciamos con x0 =
00000
.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 10 / 22
Ejemplo 1.
t=1 t=3 t=5 t=7 t=9 t=11x1 1000.000 1065.794 996.807 996.451 998.268 999.303x2 2285.714 2191.327 2050.923 2012.788 2003.548 2001.011x3 3000.000 2853.889 2986.866 2997.922 2999.722 3000.026x4 -250.000 -1872.778 -1969.974 -1995.201 -1999.320 -1999.953x5 -533.333 -919.048 -982.239 -992.414 -997.533 -999.193
t=13 t=15 t=17 t=19 t=21 t=23x1 999.747 999.912 999.970 999.990 999.997 999.999x2 2000.297 2000.090 2000.028 2000.009 2000.003 2000.001x3 3000.031 3000.015 3000.006 3000.002 3000.001 3000.000x4 -2000.023 -2000.016 -2000.007 -2000.003 -2000.001 -2000.000x5 -999.736 -999.914 -999.972 -999.991 -999.997 -999.999
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 11 / 22
Otra condición suficiente.
Decimos que v es un eigenvector de la matriz A si existe λ ∈ R tal que
Av = λv,
y llamamos a λ es un eigenvalor asociado a v.
El radio espectral ρ(A) de una matriz A se define como
ρ(A) = max{ |λ| : λ es eigenvalor de A}
Proposición
Sea A una matriz n× n. Entonces ρ(A) ≤ ‖A‖ para cualquier norma natural.Además, Ak → 0 si y sólo si ρ(A) < 1.
Proposición
La sucesión xt =Mxt−1 + c converge para cualquier x0 si ρ(M) < 1.
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 12 / 22
Ejemplo 2.Consideremos las matrices de la forma
A=
1 0 0 · · · 0 0 0−1 2 −1 · · · 0 0 0
0 −1 2 · · · 0 0 0...
......
. . ....
......
0 0 0 · · · 2 −1 00 0 0 · · · −1 2 −10 0 0 · · · 0 0 1
50 100 150 200
3.90
3.92
3.94
3.96
3.98
4.00
Dimension
Rad
io e
spec
tral
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 13 / 22
Ejemplo 2.
Fijamos n = 100. Sea b = (0.5,0,0, ...,0,0,0.5)>. Entonces, inicializamos elmétodo de Jacobi con el siguiente vector x0:
0 20 40 60 80 100
0.0
0.5
1.0
1.5
3
Componente
Res
ulta
do p
arci
al
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 14 / 22
Ejemplo 2.
0 20 40 60 80 100
0.0
0.5
1.0
1.5
4
Componente
Res
ulta
do p
arci
al
0 20 40 60 80 100
0.0
0.5
1.0
1.5
13
ComponenteR
esul
tado
par
cial
Iteración 1 Iteración 10
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 15 / 22
Ejemplo 2.
0 20 40 60 80 100
0.0
0.5
1.0
1.5
23
Componente
Res
ulta
do p
arci
al
0 20 40 60 80 100
0.0
0.5
1.0
1.5
53
ComponenteR
esul
tado
par
cial
Iteración 20 Iteración 50
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 16 / 22
Ejemplo 2: Iteración 350
0 20 40 60 80 100
0.0
0.5
1.0
1.5
350
Componente
Res
ulta
do p
arci
al
0 20 40 60 80 100
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
A*x
^t
0 50 100 150 200 250 300 350
0.1
0.2
0.3
0.4
0.5
Iteracion
Err
or
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 17 / 22
Ejemplo 2: Iteración 950
0 20 40 60 80 100
0.0
0.5
1.0
1.5
950
Componente
Res
ulta
do p
arci
al
0 20 40 60 80 100
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
A*x
^t
0 200 400 600 800
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
Err
or
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 18 / 22
Ejemplo 2: Iteración 1250
0 20 40 60 80 100
0.0
0.5
1.0
1.5
1250
Componente
Res
ulta
do p
arci
al
0 20 40 60 80 100
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
A*x
^t
0 200 400 600 800 1000 1200
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
Err
or
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 19 / 22
Ejemplo 2: Iteración 1550
0 20 40 60 80 100
0.0
0.5
1.0
1.5
1550
Componente
Res
ulta
do p
arci
al
0 20 40 60 80 100
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
A*x
^t
0 500 1000 1500
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
Err
or
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 20 / 22
Ejemplo 2: Iteración 1850
0 20 40 60 80 100
0.0
0.5
1.0
1.5
1850
Componente
Res
ulta
do p
arci
al
0 20 40 60 80 100
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
A*x
^t
0 500 1000 1500
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
Err
or
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 21 / 22
Ejemplo 2: Iteración 2150
0 20 40 60 80 100
0.0
0.5
1.0
1.5
2150
Componente
Res
ulta
do p
arci
al
0 20 40 60 80 100
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
A*x
^t
1000 1200 1400 1600 1800 2000
0.00
50.
006
0.00
70.
008
Iteracion
Err
or
0 500 1000 1500 2000
0.0
0.1
0.2
0.3
0.4
0.5
Iteracion
Err
or
Joaquín Peña (CIMAT) Métodos Numéricos (MAT–251) 12.09.2011 22 / 22