Documente Academic
Documente Profesional
Documente Cultură
Presentaci
on
Este apunte contiene las notas sobre algunos temas del curso Calculo Numerico II, curso
regular de la Licenciatura en Matematica Aplicada, de la Facultad de Ingeniera Qumica
de la Universidad Nacional del Litoral.
Este apunte fue escrito durante el dictado del curso en el segundo cuatrimestre de
2012, y fue revisado durante el 2013. Cualquier sugerencia u observacion sobre errores
sera agradecida por los autores del apunte y tambien por los futuros alumnos del curso.
Santa Fe, agosto de 2016
Algunos comentarios sobre Calculo Numerico:
El objetivo es el desarrollo de algoritmos para el calculo de soluciones, en general,
sera aproximado.
El estudio de los algoritmos se enfoca principalmente en ver la relacion entre costo
computacional y error de aproximacion.
Indice general
1 Problemas a valores iniciales
1.1 Existencia, unicidad y estabilidad de soluciones . . . . . . . . .
1.2 Metodos numericos de un paso . . . . . . . . . . . . . . . . . . .
1.2.1 Introduccion. Metodo de Euler . . . . . . . . . . . . . .
1.2.2 Analisis para metodos de un paso . . . . . . . . . . . . .
1.2.3 Metodos de Runge-Kutta . . . . . . . . . . . . . . . . . .
1.2.4 Metodos de Runge-Kutta-Fehlberg (RKF) . . . . . . . .
1.3 Estabilidad de metodos numericos . . . . . . . . . . . . . . . . .
1.3.1 Region de estabilidad para los metodos de Runge-Kutta
1.3.2 Metodo Retro-Euler o Euler implcito . . . . . . . . . . .
1.4 Metodos multipaso . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.1 Metodos multipaso de Adams . . . . . . . . . . . . . . .
1.4.2 Midpoint . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5 Analisis de metodos multipaso . . . . . . . . . . . . . . . . . . .
1.5.1 Convergencia y orden de metodos multipaso . . . . . . .
1.5.2 Criterios para la convergencia de metodos multipaso . . .
1.5.3 Estabilidad para metodos multipaso . . . . . . . . . . . .
1.6 Un metodo predictor-corrector . . . . . . . . . . . . . . . . . . .
1.7 Formulas de diferenciacion hacia atras (BDF) . . . . . . . . . .
2 Problemas a valores de borde
2.1 Problemas a valores en los extremos . . . . . . . . . . . . .
2.2 Metodo de shooting o de disparo . . . . . . . . . . . . . .
2.3 Diferencias finitas para problemas a valores en los extremos
2.3.1 Estabilidad . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Analisis del error . . . . . . . . . . . . . . . . . . .
2.3.3 Condicion de borde para la derivada . . . . . . . .
2.4 Diferencias finitas en dos dimensiones . . . . . . . . . . . .
2.5 Elementos finitos para problemas a valores de borde . . . .
2.5.1 Formulacion debil . . . . . . . . . . . . . . . . . . .
2.5.2 Aproximacion de Galerkin . . . . . . . . . . . . . .
2.5.3 Elementos finitos . . . . . . . . . . . . . . . . . . .
2.5.4 Analisis del error . . . . . . . . . . . . . . . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
7
13
13
16
18
19
21
23
24
25
25
28
28
30
32
36
41
41
.
.
.
.
.
.
.
.
.
.
.
.
46
46
47
48
50
51
52
53
55
55
56
58
61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
66
67
71
75
79
82
82
84
87
88
89
92
95
95
99
99
100
102
103
5 M
etodos iterativos para sistemas lineales
113
5.1 Normas de vectores y matrices. N
umero de condicion . . . . . . . . . . . 113
5.1.1 Normas de vectores . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.1.2 Normas de matrices . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.1.3 N
umero de condicion y error relativo . . . . . . . . . . . . . . . . 120
5.2 Metodos iterativos estacionarios . . . . . . . . . . . . . . . . . . . . . . . 122
5.2.1 Convergencia del metodo de Jacobi . . . . . . . . . . . . . . . . . 125
5.2.2 Convergencia del metodo de Gauss-Seidel . . . . . . . . . . . . . . 126
5.2.3 Convergencia del metodo SOR . . . . . . . . . . . . . . . . . . . . 128
5.2.4 Convergencia del metodo de Richardson . . . . . . . . . . . . . . 129
5.3 Metodos de descenso para matrices sdp . . . . . . . . . . . . . . . . . . . 132
5.3.1 Metodo del descenso mas pronunciado (Steepest descent) . . . . . 133
5.3.2 Metodo del gradiente conjugado . . . . . . . . . . . . . . . . . . . 135
5.3.3 Cotas de error para el metodo del gradiente conjugado . . . . . . 137
5.3.4 El metodo del gradiente conjugado como metodo directo . . . . . 140
5.3.5 Implementacion del metodo del gradiente conjugado . . . . . . . . 141
5.3.6 Precondicionamiento de un sistema y metodo del GC precondicionado147
5.3.7 Gradiente conjugado para problemas no simetricos . . . . . . . . 153
5.4 GMRes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
5.4.1 La propiedad de minimizacion y sus consecuencias . . . . . . . . . 154
5.4.2 Un resultado de convergencia para GMRes . . . . . . . . . . . . . 156
5.4.3 Precondicionamiento para GMRes . . . . . . . . . . . . . . . . . . 157
5.4.4 Implementacion de GMRes . . . . . . . . . . . . . . . . . . . . . . 158
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
187
187
190
194
195
Captulo 1
Problemas a valores iniciales
En este captulo veremos metodos numericos para problemas a valores iniciales de ecuaciones diferenciales ordinarias.
Un problema a valores iniciales (PVI) para una ecuacion diferencial ordinaria (EDO)
es un problema de la forma
(
y 0 = f (t, y)
(PVI)
y(t0 ) = y0 .
Aqu f : I D Rd , D Rd , I R es un intervalo (de tiempo) que contiene a t0 , e
y0 Rd es el dato inicial.
Definici
on 1.1. Se dice que y C 1 (J) es solucion de (PVI) sobre J, donde J es un
intervalo si
(1) J I;
(2) y(t) D y y 0 (t) = f (t, y(t)), para todo t J;
(3) t0 J, y(t0 ) = y0 .
Ejemplo 1.2. Si consideramos el PVI
(
y 0 = 5y,
y(0) = 3,
0
0
y
=
2y
y
3y
,
1
2
1
1
y
2y
1
1 y2 3y1
=
,
y 0 = y y + 5y ,
y2
y1 y2 + 5y2
1 2
2
2
Es equivalente a
y1 (0) = ,
y
y (0) = .
2
y2 (0) = .
6
Ejemplo 1.4. El modelo para un pendulo ideal de longitud L y masa m, bajo el efecto
de una fuerza de gravedad g, sin rozamiento es
gL
00
= m sin()
(0) = 0 ,
0
(0) = v0 .
Si bien no parece
a simple vista un PVI porque hay derivadas de orden dos, si definimos
y2
f (t, y) =
y
y0 = 0
v
gL
sin(y
)
0
1
m
Observaci
on 1.5. Para entender un poco mejor este tipo de problemas es importante
observar que si y es una solucion de (PVI) sobre J entonces
Z t
y(t) = y0 +
f (x, y(s)) ds,
para todo t J.
(1.1)
t0
1.1
Para desarrollar y estudiar metodos numericos hace falta comprender bien lo que se
quiere calcular. Por ello, comenzaremos estudiando algunas propiedades cualitativas de
las (soluciones de las) ecuaciones diferenciales.
Existencia y unicidad
El siguiente teorema da condiciones suficientes para que (PVI) tenga solucion, y en caso
que la tenga, sea u
nica.
Teorema 1.6. Sea I = [a, b], D = Rd , f : I D Rd continua tal que satisface una
condicion Lipschitz en la variable y, mas precisamente:
|f (t, y) f (t, z)| U |y z|,
para todo y, z D, t I.
(1.2)
y0 (t) = y0 ,
Z
yk+1 (t) = y0 +
t [a, b],
k = 0, 1, . . . .
Luego
Z t
|y2 (t) y1 (t)| f (s, y1 (s)) f (s, y0 (s)) ds U max |y1 (s) y0 | |t t0 |
s[a,b]
t0
|
{z
}
A
= U A|t t0 |,
Z t
Z t
|y3 (t) y2 (t)| f (s, y2 (s)) f (s, y1 (s)) ds U |y2 (s) y1 (s)| ds
t0
t0
Z t
U 2 A |s t0 | ds
t0
U 2 |t t0 |2
,
=A
2
..
.
Por induccion llegamos a que
|yk+1 (t) yk (t)| A
U k |t t0 |k
k!
t[a,b]
U k |b a|k
.
k!
Entonces, como
yn (t) = y0 +
n
X
yk (t) yk1 (t)
k=1
(U (ba))k
s[a,b]
t0
y por lo tanto
Z
y(t) = y0 +
t [a, b].
t0
Finalmente, y es solucion de (1.1) y por ser f continua, resulta que y es solucion de (PVI).
Para ver la unicidad, supongamos que y1 , y2 son soluciones de (PVI). Entonces
Z t
y1 (t) y2 (t) =
f (s, y1 (s)) f (s, y2 (s)) ds.
t0
t0
t t0 .
0.
Lema 1.7 (Gronwall). Sea g : [a, b] R continua con g(t) 0 en [a, b] y g(a) = g0 .
Supongamos que se cumple alguna de las siguientes hipotesis:
Rt
(1) U 0, g(t) g0 + U a g(s) ds, t [a, b];
(2) U R, g diferenciable en (a, b) y g 0 (t) U g(t), t [a, b].
Entonces
g(t) g0 eU (ta) ,
t [a, b].
Demostraci
R t on. Supongamos primero que se cumple (1). En ese caso definimos G(t) =
g0 + U a g(s) ds y vemos que la hipotesis implica
G0 (t) = U g(t) U G(t) (aqu es importante que U 0).
Luego G0 (t) U G(t) 0 y multiplicando por eU (ta) 0 obtenemos
d U (ta)
e
G(t) 0,
dt
que a su vez implica
eU (ta) G(t) eU (aa) G(a) = g0 ,
t [a, b].
t [a, b].
d U (ta)
e
g(t) = eU (ta) g 0 (t) U eU (ta) g(t) 0,
dt
y por lo tanto
eU (ta) g(t) eU (aa) g(a) = g0 ,
t [a, b].
t [a, b].
Observaci
on 1.9. Si debilitamos la condicion de Lipschitz (1.2) de f por la de localmente
Lipschitz, es decir, si solo suponemos que para cada D Rd acotado existe una constante
UD tal que
|f (t, y) f (t, z)| UD |y z|,
para todo y, z D, t I.
entonces solo se puede garantizar existencia local de la solucion. Es decir, existe > 0
tal que (PVI) tiene solucion en (t0 , t0 + ) I.
Un ejemplo de existencia local viene dado por el PVI
(
y0 = y2
y(0) = 1.
En este caso, el intervalo I es todo R, pero la u
nica solucion es
y(t) =
1
,
1t
que solo existe en (, 1). Se dice que hay un blow-up en t = 1 o que la solucion explota
en t = 1.
Observaci
on 1.10. Si solo suponemos que f es continua en ambas variables, se puede asegurar existencia local (con una demostracion mas complicada) pero no se puede
asegurar la unicidad de soluciones. El tpico ejemplo viene dado por el PVI siguiente:
(
y0 = 2 y
y(0) = 0.
En este caso, el intervalo I es todo R, y cualquiera sea c 0 la siguiente funcion es una
solucion del PVI en todo R:
(
0,
t c,
y(t) =
2
(t c) , t > c.
En casos como este suele decirse que hay bifurcaciones.
Estabilidad de soluciones
El concepto de estabilidad para problemas a valores iniciales se refiere a la dependencia
de la solucion sobre el dato inicial. A lo largo de esta seccion consideraremos lo que
ocurre para t a la derecha del punto donde se da la condicion inicial, es decir t t0 = a.
En el siguiente teorema se establece el resultado principal de esta seccion.
10
f
(t, y)x x U |x|2 ,
y
t [a, b], y R, x Rd .
(1.3)
t [a, b].
Observaci
on 1.12. En el caso d = 1, la condicion (1.3) es equivalente a
L
f
(t, y) U,
y
t [a, b], y R.
d
X
ii yi2 .
i=1
i=1
llegamos a que
min |x|2 xT Ax max |x|2 .
Demostracion del Teorema 1.11. Sean y(t) y z(t) como en las hipotesis del teorema, entonces
(y z)0 (t) = y 0 (t) z 0 (t) = f (t, y(t)) f (t, z(t)).
Observemos que si, fijado t, definimos : [0, 1] Rd por (s) = f (t, sy(t) + (1 s)z(t))
entonces (0) = f (t, z(t)) y (1) = f (t, y(t)). Luego
Z 1
Z 1
f
d
ds =
(t, sy(t)+(1s)z(t))(y(t)z(t)) ds.
f (t, y(t))f (t, z(t)) = (1)(0) =
0 ds
0 y
11
Es decir
Z
f
(t, sy(t) + (1 s)z(t))(y z)(t) ds,
0 y
y multiplicando a ambos lados escalarmente por el vector (y z)(t),
Z 1
f
0
(y z) (t) (y z)(t) =
(t, sy(t) + (1 s)z(t))(y z)(t) (y z)(t) ds.
0 y
El miembro izquierdo satisface
1d
|(y z)(t)|2 ,
(y z)0 (t) (y z)(t) =
2 dt
y por (1.3) el integrando satisface
0
(y z) (t) =
L|(y z)(t)|2
f
(t, sy(t) + (1 s)z(t))(y z)(t) (y z)(t) U |(y z)(t)|2 .
y
Por lo tanto,
d
|(y z)(t)|2 2U |(y z)(t)|2 .
dt
Finalmente, por la desigualdad de Gronwall diferencial, aplicada a la funcion g(t) =
|(y z)(t)|2 obtenemos
2L|(y z)(t)|2
t 0.
t 0,
f
= 2.
y
t 0.
t 0.
Es decir que las soluciones se alejan exponencialmente a medida que t crece. En este
caso L = U = 2.
12
1.2
M
etodos num
ericos de un paso
Los metodos numericos para ecuaciones diferenciales ordinarias brindan una manera de
calcular valores aproximados de la solucion exacta y(t) en un conjunto discreto de puntos
del intervalo [a, b] donde interesa calcular la solucion.
En general se obtiene una sucesion a = t0 < t1 < t2 < < tN = b de instantes de
tiempo y valores (vectores) Y0 , Y1 , . . . , YN que sean aproximaciones de y0 , y(t1 ), . . . , y(tN ).
1.2.1
Introducci
on. M
etodo de Euler
Y1 = Y0 + (t1 t0 )f (t0 , Y0 ).
= y0
= Y0 + t1 f (t0 , Y0 )
= Y1 + t2 f (t1 , Y1 )
= Y2 + t3 f (t2 , Y2 )
..
.
%
%
%
%
%
%
a = inter(1); b = inter(2);
h = (b-a)/N;
t = linspace(a,b,N+1);
Y = zeros(N+1,length(Y0));
Y(1,:) = Y0;
for i = 1:N
Y(i+1,:) = Y(i,:) + h * f(t(i), Y(i,:));
end
An
alisis del error
El metodo de Euler, como otros metodos numericos, produce una sucesion {(tn , Yn )}N
n=0 ,
con Yn yn := y(tn ). Queremos estudiar el error global en := |Yn y(tn )| y en particular
estamos interesados en
max en = max |Yn y(tn )|.
1nN
atn b
yn0 = f (t, yn ),
yn (tn ) = Yn .
tn t b,
Por lo tanto
en = |Yn y(tn )| = |Yn y0 (tn )|
|Yn yn1 (tn )| + |yn1 (tn ) yn2 (tn )| + + |y1 (tn ) y0 (tn )|
n1 + n2 + + 0 .
Por lo tanto, el maximo error global puede acotarse por
max en
1nN
n N
n=0
Observaci
on 1.15. Si suponemos1
max en e
N
1
X
max n .
(1.4)
0nN 1
f
U , con U R, de manera analoga obtenemos
y
U+ (ba)
1nN
N
1
X
n eU+ (ba) N
n=0
max n ,
0nN 1
(
U, si U 0,
donde U+ = max{U, 0} =
0, si U < 0.
Hasta aqu, el analisis que hemos hecho es independiente del metodo, si es Euler o
alg
un otro. Veamos como se puede acotar n para el metodo de Euler.
Una herramienta muy utilizada para estimar y acotar el error en los metodos numericos
es el Teorema de Taylor, que enunciamos a continuacion:
Teorema 1.16 (Teorema de Taylor). Sea f C n+1 (I), donde I es un intervalo que
contiene a t0 . Entonces, para cada t I existe t entre t0 y t tal que
f (t) = f (t0 )+(tt0 )f 0 (t0 )+
(t t0 )2 00
(t t0 )n (n)
(t t0 )n+1 (n+1)
f (t0 )+ +
f (t0 )+
f
(t ).
2!
n!
(n + 1)!
h2
h2 00
yn (n ) = Yn + hf (tn , Yn ) + yn00 (n )
{z
} 2
|
2
Yn+1
para alg
un n , con tn < n < tn+1 . Por lo tanto,
n = |yn (tn+1 ) Yn+1 | = |yn (tn+1 ) [Yn + hf (tn , Yn )]| =
h2 00
|y (n )|
2 n
M h2
,
2
n = 0, 1, . . . , N 1.
15
0nN
max n N
0nN 1
Mh
M h2
M (b a)
= |{z}
Nh
=
h.
2
2
2
ba
Concluimos entonces que si todas las soluciones de la EDO tienen derivada segunda
acotada uniformemente por M , el metodo de Euler produce una solucion con maximo
M (b a)
error acotado por
h = Const.h. Se dice que el metodo de Euler es de orden uno
2
(la potencia de h). La demostracion que hemos visto es muy simple, y analizando el caso
f
0, permite entender la idea general que si un metodo produce en un paso un error
y
de orden hk+1 entonces el error global sera de orden hk . Lo negativo de la demostracion
vista es que requiere que todas las trayectorias tengan derivada segunda acotada, en la
seccion siguiente veremos que se puede mejorar la demostracion requiriendo que solo la
solucion exacta y = y0 tenga derivada segunda acotada. Por otro lado, vale la pena notar
que como y 0 = f (t, y),
y 00 (t) = ft (t, y(t)) + fy (t, y(t))y 0 (t) = ft (t, y(t)) + fy (t, y(t))f (t, y(t)),
por lo que la hipotesis se puede verificar mirando la funcion ft + fy f sin conocer las
soluciones exactas.
1.2.2
An
alisis para m
etodos de un paso
n)
y por lo tanto n = y (
h.
2
El teorema general para el analisis del error es el siguiente:
16
h2 00
y (n ),
2
n = 1, 2, . . . , N,
y, z Rd , t [a, b], h h0 .
Entonces, si h h0 ,
en = |Yn y(tn )| e
K(tn t0 )
eK(tn t0 ) 1
,
|Y0 y0 | + n
K
donde n = max1in |i |.
Demostracion. Consideremos 1 n N fijo, y 0 i n, entonces
Yi = Yi1 + h(ti1 , Yi1 , h),
y(ti ) = y(ti1 ) + h(ti1 , y(ti1 ), h) + hi .
Entonces, para ei := |Yi y(ti )|,
ei ei1 + h|(ti1 , Yi1 , h) (ti1 , y(ti1 ), h)| + h|i |
ei1 + hKei1 + h|i | = (1 + hK) ei1 + h|i |
| {z }
Ah
n .
Ah ei1 + h max |j | = Ah ei1 + h
1jn
| {z }
n
Por lo tanto
e1 Ah e0 + h
n ,
e2 Ah e1 + h
n A2h e0 + hAh n + h
n = A2h e0 + h(1 + Ah )
n ,
e3 Ah e2 + h
n A3h e0 + Ah h(1 + Ah ) + h
n = A3h e0 + h(1 + Ah + A2h )
n ,
..
.
n .
en Anh e0 + h(1 + Ah + + Ahn1 )
Ahora bien, Anh = (1 + hK)n enhK , pues 0 < 1 + x ex para x 0. Entonces
1 + Ah + + An1
=
h
(1 + hK)n 1
enhK 1
Anh 1
=
,
Ah 1
1 + hK 1
hK
y por lo tanto
enhK 1
n .
K
Como nh = tn t0 se sigue la afirmacion del teorema.
en enhK e0 +
17
Observaci
on 1.18. Si N 0 cuando h 0 entonces
max |Yn y(tn )| 0,
1nN
cuando h 0,
1.2.3
M
etodos de Runge-Kutta
Hemos visto el metodo de Euler, que resulta de orden uno, y en cada paso realiza una
evaluacion de la funcion f . Nos preguntamos: Se podra definir un metodo que utilizando
dos evaluaciones de f en cada paso resulte de orden 2? La respuesta es positiva, veamos
como puede lograrse.
Proponemos un metodo como el siguiente:
k1 = hf (tn , Yn )
k = hf (t + h, Y + k )
2
n
n
1
| {z }
= h f + hft + hf fy + O (h + k1 ) .
Aqu hemos utilizado el teorema de Taylor, y O 2 (h + k1 )2 = O(h2 ) depende de derivadas segundas de f (y/o terceras de y). Luego
h(tn , y(tn ), h) = ak1 + bk2
= h af n + bf n + hftn + hf n fyn + O(h2 )
h
i
n
2
n
n n
= (a + b)hf + bh ft + f fy + O(h3 ).
18
Luego
hn+1 = (y(tn+1 ) y(tn )) h(tn , y(tn ), h)
i
h
i
h
1 ih n
ft + f n fyn + O(h3 ).
= h (a + b) 1 f n + h2 b
2
Por lo tanto, resulta que n = O(h2 ) si
a+b=1
1
b = .
2
k1 = hf (tn , Yn )
k2 = hf (tn + h, Yn + k1 )
(RK2)
Yn+1 = Yn + k1 + k2
2
Cabe aclarar que el metodo convergira con orden dos cuando las derivadas de hasta orden
tres de y (y dos de f ) esten acotadas.
De manera analoga, pero con cuentas mas engorrosas puede deducirse el metodo de
Runge-Kutta de orden cuatro:
k1 = hf (tn , Yn )
k1
h
k2 = hf (tn + , Yn + )
2
2
h
k2
(RK4)
k3 = hf (tn + , Yn + )
2
2
k4 = hf (tn + h, Yn + k3 )
k1 + 2k2 + 2k3 + k4
Y
n+1 = Yn +
6
Cabe aclarar aqu que el metodo de Runge-Kutta de orden cuatro convergira con ese
orden cuando las derivadas de hasta orden cinco de y (y cuatro de f ) esten acotadas.
1.2.4
M
etodos de Runge-Kutta-Fehlberg (RKF)
j1
X
ji ki ),
j = 2, 3, . . . , 6,
i=1
5
X
j kj ,
j=1
Yn+1 = Yn +
6
X
j kj ,
j=1
yn0 = f (t, yn ),
yn (tn ) = Yn .
Luego
n = |Yn+1 yn (tn+1 )| |Yn+1 Yn+1 | + |Yn+1 yn (tn+1 )| |Yn+1 Yn+1 | = O(h5 ).
{z
} |
{z
}
|
O(h5 )
O(h6 )
La idea del metodo adaptativo es la siguiente: Fijar los parametros 0 < A << 1,
0 < P < 1 < Q, y una tolerancia tol; en cada paso hacer lo siguiente:
(1) Dado (tn , Yn ) y hn+1 , calcular Yn+1 e Yn+1
(2) Calcular Tn = |Yn+1 Yn+1 |
2
Los valores pueden encontrarse en las tablas 6.25 y 6.26 de la pagina 430 de [A]
20
n=0
N
X
Tn
n=0
N
X
hn tol
n=0
ba
= tol,
0nN +1
si
f
U.
y
El paso marcado con (*) sirve para agrandar el paso de discretizacion hn cuando el
error es mucho mas peque
no que lo deseado. Esto permite ahorrar operaciones.
El paso marcado con (**) permite reducir el paso de discretizacion hn cuando el
error es mas grande que lo permitido.
Observaci
on 1.22. La idea de este metodo RKF45 es la base de la funcion ode45 de
matlab, que tiene ademas otros algoritmos adaptativos para EDOs: ode23, ode15s,
ode23s. Los que terminan en s estan dise
nados para problemas stiff, que usan metodos
f
tiene autovalores muy
implcitos y son especialmente aptos para problemas donde
y
negativos.
1.3
Estabilidad de m
etodos num
ericos
En general, un metodo numerico se dice estable cuando los errores cometidos en pasos
iniciales o intermedios no se propagan o crecen mucho hacia los pasos siguientes. Las perturbaciones pueden deberse, por ejemplo, a errores de redondeo, o a calculos aproximados
de algunas cantidades. En el caso de metodos para PVI, es usual que el calculo de f tenga
errores dado que puede provenir de la resolucion de alg
un otro problema no-lineal.
21
Yn+1 = Yn + h(t
n , Yn , h),
Yn+1 = Yn + h(tn , Yn , h).
1nN
N
1
X
n + n ,
n=0
f
U . Por lo tanto, el efecto de los errores cometidos en todos los
y
pasos se propaga acorde a la estabilidad de la ecuacion diferencial, independientemente
del metodo que se utilice.
Donde U R cumple
El concepto de estabilidad mas estudiado en metodos numericos para ecuaciones diferenciales tiene que ver con el comportamiento del metodo al resolver el siguiente PVI
para C:
(
y 0 = y, t > 0,
y(0) = 1,
cuya solucion exacta para = R + iI es
t
R t
y(t) = e = e
cos I t + i sin I t .
La misma se mantiene acotada para todo t 0 si y solo si R = Re 0.
Definici
on 1.23. La region de estabilidad de un metodo numerico para EDO se define
como el conjunto de h C tal que el metodo aplicado a
(
y 0 = y, t > 0,
y(0) = 1,
produce una sucesion {Yn }
n=1 acotada.
La motivacion principal para esta definicion es que si un metodo numerico no produce
soluciones acotadas para C con R 0, entonces no podemos esperar que funcione
bien en problemas mas complejos.
Consideramos valores de complejos porque estan relacionados con los autovalores
en el caso en que queramos resolver sistemas de ecuaciones diferenciales ordinarias. En
el caso de sistemas, las soluciones exactas de los PVI son acotadas cuando todos los
autovalores tengan parte real negativa o cero.
22
1.3.1
Regi
on de estabilidad para los m
etodos de Runge-Kutta
Regi
on de estabilidad para el m
etodo de Euler.
Notemos que el metodo de Euler aplicado al problema modelo produce la sucesion
Y0 = 1,
Yn+1 = Yn + hYn = (1 + h)Yn = (1 + h)n+1 ,
por lo que la sucesion {Yn }
a acotada si y solo si |1 + h| 1. Por lo tanto, la
n=1 ser
region de estabilidad para el metodo de Euler es
REuler = {z C : |1 + z| < 1} = B(1, 1).
Observaci
on 1.24.
Se consideran n
umeros complejos, pues el comportamiento para problemas vectof
, que pueden ser complejos.
riales esta relacionado con los autovalores de
y
Si Re > 0 no hay ning
un valor de h > 0 tal que h R, pero la solucion exacta
tampoco es acotada.
Si < 0, h debe satisfacer h 2/, as que debe ser muy peque
no cuando || es
grande.
Cuando se quieren dise
nar metodos mas estables, se entiende que se desean metodos
con una mayor region de estabilidad.
f
con autovalores de parte real muy
y
negativa (que exige h muy peque
no) se dice que la EDO es stiff (rgida). Esta
situacion es muy com
un en problemas que involucran reacciones qumicas.
Regi
on de estabilidad para RK2.
Dado Yn , el metodo RK2 aplicado al problema modelo produce el siguiente Yn+1 :
k1 = hYn ,
k2 = h(Yn + k1 ) = h(Yn + hYn ) = [h + (h)2 ]Yn ,
k1 + k2
h h (h)2
= Yn 1 +
+
+
Yn+1 = Yn +
2
2
2
2
2
(h)
.
= Yn 1 + h +
2
2 n
Luego, Yn = 1 + h + (h)
y el metodo es estable si y solo si
2
h RRK2
z2
:= {z C : |1 + z + | 1}.
2
Figura 1.1: Regiones de estabilidad para metodos de Runge-Kutta. Euler o RK1 (izquierda), RK2 (medio), RK4 (derecha).
Regi
on de estabilidad de RK4.
Analogamente a como se hizo para RK2 se puede ver que la region de estabilidad de RK4
es
3
4
2
z
z
z
RRK4 := z C : 1 + z +
+
+ 1 ,
2
3!
4!
que se ilustra en la Figura 1.1.
Las regiones de estabilidad de los metodos explcitos de un paso vistos hasta el momento son bastante peque
nas. Regiones de estabilidad mas grandes se obtienen al utilizar
metodos implcitos.
1.3.2
M
etodo Retro-Euler o Euler implcito
Este metodo implica resolver, en cada paso, una ecuacion o sistema de ecuaciones que
en general sera no lineal. En cada paso se puede resolver con un metodo tipo Newton
(por ejemplo). Este metodo tiene un costo adicional de resolver un sistema no lineal en
cada paso de tiempo, pero permite tomar
f h mucho mas grande que el metodo de Euler
f
< 0 y es grande (ecuaciones stiff). Veamos la region
explcito, en especial cuando
y
y
de estabilidad de Retro Euler (RE). Si aplicamos la definicion Yn+1 = Yn + hf (tn+1 , Yn+1 )
al problema modelo y 0 = y obtenemos que
1 n+1
1
Yn+1 = Yn + hYn+1
Yn+1 =
Yn =
Y0 .
1 h
1 h
Por lo tanto, el metodo resultara estable cuando h pertenezca a la region de estabilidad
1
n
o
RRE = z C :
1 = {z C : |1 z| 1} = B(1, 1)c ,
1z
que contiene a todo el semiplano complejo {z C : Re z 0}. En este caso se dice que
el metodo es incondicionalmente estable, pues h no debe cumplir ninguna condicion para
que el metodo sea estable, cuando Re 0.
1.4
M
etodos multipaso
Los metodos multipaso utilizan el valor de Yn y tambien algunos valores de Ynj para
el calculo de Yn+1 . Si bien los metodos de Runge-Kutta realizan varios calculos o pasos
para calcular el valor de Yn+1 a partir de Yn , no se consideran multipaso.
1.4.1
M
etodos multipaso de Adams
Los metodos multipaso de Adams constituyen una familia de metodos multipaso, que se
construyen a partir de la idea que se presenta a continuacion.
Consideremos el PVI
(
y 0 = f (t, y), en [a, b],
y(a) = y0 .
Los metodos multipaso de Adams parten de la siguiente igualdad, que se cumple para la
solucion del (PVI):
Z tn+1
Z tn+1
0
y(tn+1 ) = y(tn ) +
y (t) dt = y(tn ) +
f (t, y(t)) dt, n = 0, 1, . . . , N. (1.5)
tn
tn
tn
M
etodos explicitos: Elegimos qk Pk como el polinomio que interpola a f (t, y(t)) en
t = tnj , j = 0, 1, . . . , k, como son k + 1 puntos, qk esta unvocamente determinado.
En este caso, resulta que la integral a la derecha de (1.6) es una formula que
involucra h, y fnj := f (tnj , y(tnj )), para j = 0, 1, . . . , k, y que denotaremos con
FkAB (h, fn , fn1 , . . . , fnk ). Mas precisamente, tenemos
y(tn+1 ) y(tn ) + FkAB (h, fn , fn1 , . . . , fnk ).
En base a esta igualdad aproximada se define el metodo de Adams-Bashforth de
orden k + 1 como
Yn+1 = Yn + FkAB (h, f (tn , Yn ), f (tn1 , Yn1 ), . . . , f (tnk , Ynk )),
(1.7)
(1.8)
tn
tn+1
tn+1
fn + (t tn )
q1 (t) dt =
tn
tn
fn fn1
dt
tn tn1
= hfn +
h fn fn1
3fn fn1
=h
.
2
h
2
h
3f (tn , Yn ) f (tn1 , Yn1 ) .
2
Yn+1 = Yn +
Ejemplos de M
etodos de Adams-Moulton.
Si consideramos k = 0, q0 es el polinomio de grado cero (funcion constante) que interpola
f (tn+1 , y(tn+1 )) = fn+1 y resulta
F0AM (h, fn+1 )
tn+1
tn+1
q0 (t) dt =
tn
tn+1
q1 (t) dt = h
tn
fn + fn+1
h
= fn + fn+1 .
2
2
i
hh
5f (tn+1 , Yn+1 ) + 8f (tn , Yn ) 1f (tn1 , Yn1 ) .
12
27
1.4.2
Midpoint
El metodo resulta
Yn+1 = Yn1 + 2hf (tn , Yn ).
En la proxima seccion haremos un analisis de error y estabilidad de metodos multipasos en general, sin importar como hayan sido obtenidos.
1.5
An
alisis de m
etodos multipaso
p
X
aj Ynj + h
p
X
bj f (tnj , Ynj ),
(1.9)
j=1
j=0
para alg
un p N y algunos valores aj , bj . Diremos que este metodo es de p + 1 pasos si
ap 6= 0 o bp 6= 0.
Notemos que si b1 = 0 el metodo resulta explcito mientras que si b1 6= 0 el metodo
resulta implcito. Aqu estamos considerando dado un intervalo [a, b] donde se quiere
hallar la solucion, y una particion uniforme, es decir, dado N N, h = (b a)/N ,
tn = a + nh, n = 0, 1, . . . , N .
Recordemos que estamos queriendo resolver un PVI para la ecuacion y 0 = f (t, y), y
entonces
f (tnj , Ynj ) y 0 (tnj ).
Definici
on 1.25 (Error de truncamiento). El error (local) de truncamiento del metodo
multipaso (1.9) se define, para y C 1 [a, b] y para p n N como
" p
#
p
X
X
Tn (y) = y(tn+1 )
aj y(tnj ) + h
bj y 0 (tnj ) .
j=0
j=1
Esta cantidad mide cuanto falla la formula al predecir el valor de y(tn+1 ) usando algunos
valores de y(tnj ) e y 0 (tnj ).
Definici
on 1.26 (Consistencia). Se dice que el metodo multipaso (1.9) es consistente si
para toda y C 2 [a, b] se cumple que
h (y) := max
pnN
|Tn (y)|
0,
h
cuando h 0.
(1.10)
Esta condicion de consistencia sera necesaria para la convergencia del metodo multipaso, es decir, para que el maximo error max1nN |Yn y(tn )| tienda a cero (ver
Proposiciones 1.311.33 y Teorema 1.28 a continuacion).
El orden de un metodo multipaso se define como sigue:
28
Definici
on 1.27 (Orden). Se dice que el metodo multipaso (1.9) es de orden m para
m N, si para toda y C m+1 [a, b] se cumple que
h (y) = O(hm ),
cuando h 0,
(1.11)
o, lo que es lo mismo, para cada y C m+1 [a, b] existen C R y h0 > 0 tales que
h (y)
C,
hm
p
X
bj fnj
j=0
Donde los n
umeros bj , j = 0, 1, . . . , p se determinan de manera que
h
p
X
tn+1
bj fnj =
Q(t) dt,
tn
j=0
Por lo que acabamos de recordar sobre la definicion del metodo, resulta que, si q Pp
cumple q(tnj ) = y 0 (tnj ) entonces
h
p
X
R tn+1
tn
q(t) dt,
tn
j=0
tn+1
bj y (tnj ) =
y 0 (t) dt resulta
Z
tn+1
Tn (y) =
tn
Seg
un la formula del error de interpolacion, si y C p+1 , y tn t tn+1
|y 0 (t) q(t)| =
para alg
un (tnp , tn+1 ). Luego, si M := max[a,b] |y (p+1) | resulta
|y 0 (t) q(t)|
h 2h ph (p + 1)h
M hp+1 M,
(p + 1)!
y luego
Z
tn+1
|Tn (y)|
M hp+1 dt = M hp+2 .
tn
Finalmente, resulta
|Tn (y)|
M hp+1 ,
pnN
h
y el metodo de Adams-Bashforth de orden p + 1 tiene orden p + 1.
h (y) = max
Orden de los m
etodos de Adams-Moulton.
Analogamente se demuestra que los metodos de Adams-Moulton de orden p + 1 tienen
orden p + 1. Queda como ejercicio.
1.5.1
Convergencia y orden de m
etodos multipaso
El siguiente teorema relaciona los conceptos de consistencia y orden con los de convergencia y orden de convergencia del metodo multipaso.
Teorema 1.28. Consideremos el PVI
(
y 0 = f (t, y),
y(a) = y0 ,
en [a, b],
t [a, b],
y, z Rd .
Si lo resolvemos utilizando
P el metodo multipaso (1.9), y suponemos que los coeficientes
aj 0, j = 0, 1, . . . , p y pj=0 aj = 1, entonces, si los errores iniciales satisfacen
h (y) = max |Yi y(ti )| 0,
0ip
cuando h 0,
el metodo es convergente y
max |Yn y(tn )| c1 (h) + c2 (h),
0nN
Ejemplo 1.30. Si queremos utilizar el metodo de Adams-Bashforth orden dos, que cumple h (y) = O(h2 ). Que metodo deberamos utilizar para el calculo de Y1 para que el
error global del metodo sea O(h2 )? Se puede usar Euler? La respuesta es afirmativa,
pues si utilizamos Euler, se cumple que
|y(t1 ) Y1 |
h2
max |y 00 (t)|.
2 t0 tt1
Aunque el error global del metodo de Euler es de orden uno, el error local cometido en
un paso es de orden dos, y por eso se puede utilizar.
De manera analoga, para que el error global al utilizar el metodo de Adams-Bashforth
de orden tres sea efectivamente O(h3 ), basta con utilizar RK2 para el calculo de Y1 y Y2 ,
pero no es suficiente utilizar Euler.
Demostracion del Teorema 1.28. Sea y la solucion del PVI, que cumple y 0 (t) = f (t, y(t))
y observemos que para n p,
y(tn+1 ) =
p
X
aj y(tnj ) + h
j=1
j=0
Yn+1 =
p
X
p
X
aj Ynj + h
j=0
p
X
bj f (tnj , Ynj ).
j=1
p
X
aj enj + h
j=0
p
X
j=1
p
X
aj |enj | + h
j=0
p
p
X
aj |enj | + h
j=0
j=1
aj En + h U
j=0
| {z }
1
j=1
p
|bj | U y(tnj ) Ynj + hh (y)
{z
}
|
enj
j=1
{z
C
Resumiendo,
|en+1 | En + hCEn+1 + hh (y),
n = p, p + 1, . . . , N.
y por lo tanto,
max |ek | = En+1 En + hCEn+1 + hh (y),
n = p, p + 1, . . . , N,
0kn+1
n = p, p + 1, . . . , N.
1
=: c3 , resulta 1 hC >
Si consideramos h < 2C
1 + 2hC < 2, por lo que
En+1
1
2
1
1hC
= 1 + hC + (hC)2 +
h
1
En +
h (y) (1 + 2hC)En + 2hh (y),
1 hC
1 hC
n = p, p + 1, . . . , N.
Por lo tanto,
Ep+1 (1 + 2hC)Ep + 2hh (y),
Ep+2 (1 + 2hC)Ep+1 + 2hh (y)
(1 + 2hC)2 Ep + (1 + 2hC)2hh (y) + 2hh (y),
Ep+3 (1 + 2hC)Ep+2 + 2hh (y)
(1 + 2hC)3 Ep + (1 + 2hC)2 2hh (y) + (1 + 2hC)2hh (y) + 2hh (y)
h
i
= (1 + 2hC)3 Ep + (1 + 2hC)2 + (1 + 2hC) + 1 2hh (y),
..
.
Ep+n
h
i
n1
(1 + 2hC) Ep + (1 + 2hC)
+ + (1 + 2hC) + 1 2hh (y)
|{z}
n
h (y)
= (1 + 2hC)n h (y) +
(1 + 2hC)n 1
2hh (y).
1 + 2hC 1
c1 1
h (y),
C }
| {z
c2
1.5.2
Las siguientes proposiciones dan condiciones necesarias y suficientes sobre los coeficientes
aj , bj que definen el metodo multipaso (1.9) para que cumplan las definiciones de consistencia y orden anteriores. Estas condiciones permiten saber si un metodo converge, y
cual es su orden, verificando ciertas condiciones algebraicas sobre los coeficientes.
32
Proposici
on 1.31. El metodo multipaso (1.9) es consistente si y solo si
p
X
aj = 1 y
p
X
jaj +
bj = 1.
(1.12)
j=1
j=0
j=0
p
X
con R2 (t) =
tn
Luego
Tn (y) = Tn (
=
) + Tn (y 0 (tn )( tn )) + Tn (R2 )
{z
}
|
y(tn )
| {z }
funci
on constante
y(tn )Tn (1) + y 0 (tn )Tn (
funci
on lineal
tn ) + Tn (R2 ).
p
X
aj 1
j=0
p
X
bj 0 = 1
j=1
"
Tn (( tn )) = (tn+1 tn )
p
X
=h
j=0
aj (tnj tn ) + h
j=0
" p
X
aj =: c0 ,
#
bj 1
j=1
aj (jh) + h
j=0
p
X
p
X
bj = h 1
j=1
" p
X
j=0
jaj +
p
X
#)
bj
=: c1 h.
j=1
" p
X
aj R2 (tnj ) + h
j=0
Como R2 (t) =
con
Rt
p
X
#
bj R20 (tnj ) .
j=1
Rt
(t s)y 00 (s) ds, tenemos R20 (t) = tn y 00 (s) ds y resulta Tn (R2 ) = n h2
(
)
p
X
X
1
|Tn (R2 )|
M 1+
|aj |j 2 +
|bj |j ,
|n | :=
h2
2
j=0
j=1
tn
con
c0 = 1
p
X
#
p
p
X
X
bj ,
(j)aj
c1 = 1
"
aj ,
j=0
j=0
|n | C.
j=1
Luego
Tn (y)
1
= y(tn )c0 + y 0 (tn )c1 + hn .
h
h
Si se cumple (1.12), entonces c0 = c1 = 0 y para y C 2 [a, b] resulta
h (y) = max
pnN
|Tn (y)|
Ch 0,
h
Proposici
on 1.33. El metodo multipaso (1.9) es de orden m si y solo si es consistente
y ademas
p
p
X
X
i
(j) aj + i
(j)i1 bj = 1,
i = 2, 3, . . . , m.
(1.13)
j=0
j=1
m
X
(t tn )i
i=0
i!
(i)
1
con Rm+1 (t) =
m!
tn
m
X
y (i) (tn )
i=0
i!
Tn (( tn )i ) + Tn (Rm+1 ).
P
Para i = 0, (t tn )0 = 1, y ya vimos que Tn (1) = 1 pj=0 aj =: c0 . Para i = 1, ya
hP
i
Pp
p
vimos que Tn ( tn ) = c1 h, con c1 = 1
ja
+
b
j
j=0
j=1 j . Para i general
"
Tn (( tn )i ) = (tn+1 tn )i
p
X
aj (tnj tn )i + h
= hi
aj (jh)i + h
= hi
ibj (jh)i1
p
X
X
i
(j)i1 bj
1
(j) aj + i
"
bj i(tn+1 tn )i1
j=1
j=0
j=1
j=0
" p
X
p
X
#)
=: ci hi .
j=1
j=0
As, para i = 0, 1, . . . , m,
Tn (( tn )i ) = ci hi ,
p
X
c0 = 1
aj ,
j=0
" p
#
p
X
X
c =1
(j)i aj +
(j)i1 bj ,
con
j=0
Por lo tanto
Tn (y) =
m
X
ci y (i) (tn )
i=0
i!
i = 1, 2, . . . , m.
j=1
hi + Tn (Rm+1 ).
donde |n | C,
(1.14)
con C una constante que depende del maximo de |y (m+1) | en [a, b] y de los coeficientes
aj , bj que definen el metodo multipaso.
Si vale (1.14) entonces resulta que
Tn (y) =
m
X
ci y (i) (tn )
i=0
i!
hi + n hm+1 ,
y por lo tanto
m
h + |n |hm .
pnN
h
i!
i=0
para y C m+2 . Si vale (1.13) entonces c0 = c1 = = cm = 0 y por lo tanto
h (y) |n |hm Chm ,
por lo que el metodo es de orden m.
Supongamos ahora que el metodo es de orden m, entonces, para h 0 resulta
h (y)
C.
hm
35
n :=
(1.15)
Rt
1
Recordemos ahora que Rm+1 (t) = m!
(t s)m y (m+1) (s), luego, para j = 1, 0, 1, . . . , p,
tn
Z tnj
1
1
pm+1
m
(m+1)
m
Rm+1 (tnj ) =
(tnj s) y
(s) ds
|j|h(|j|h) M
M hm+1 ,
m! tn
m!
m!
si M := maxatb |y (m+1) (t)|. Por otro lado, para j = 1, 0, 1, . . . , p,
Z tnj
0
m m
m1 (m+1)
Rm+1 (tnj ) = 1
m(tnj s)
y
(s) ds
p M hm .
m! tn
m!
Luego, a partir de (1.15) y de las dos u
ltimas acotaciones obtenemos
m+1
p
p
X
X
p
M
n 1 +
=: C.
|aj | + m
|bj |
m!
j=0
j=1
Claramente C depende de la definicion del metodo y de M := max[a,b] |y (m+1) |, y la
demostracion esta concluida.
1.5.3
Estabilidad para m
etodos multipaso
Recordemos que el estudio de regiones de estabilidad se basa en considerar el comportamiento del metodo numerico cuando es aplicado al PVI particular
(
y 0 = y, t > 0,
y(0) = 1,
con especial atencion al caso C, Re 0.
La region de estabilidad del metodo multipaso (1.9) se define como sigue:
R = {h C : {Yn }n0 es acotada, para cualquier eleccion de Y0 , Y1 , . . . , Yp } .
Se entiende que la sucesion {Yn }n0 se define a partir de Y0 , Y1 , . . . , Yp con la formula del
metodo multipaso, mas precisamente
Yn+1 =
p
X
j=0
aj Ynj + h
p
X
bj f (tnj , Ynj ),
j=1
36
n = p, p + 1, . . . .
p
X
aj Ynj + h
j=0
p
X
bj Ynj
j=1
p
p
X
X
bj Ynj
a
Y
+
h
Y
=
j nj
n+1
j=1
j=0
Y
0
(1.16)
Y
1
.. arbitrarios,
Y
p
sean acotadas.
Para h fijo, la ecuacion en (1.16) es una ecuacion en diferencias de orden p + 1,
donde la incognita es la sucesion {Yn }n0 y las condiciones iniciales son los valores preestablecidos de Y0 , Y1 , . . . , Yp . Similarmente a lo que ocurre con EDO de orden p + 1, las
soluciones de la ecuacion en diferencias (1.16) son combinaciones lineales de p + 1 soluciones linealmente independientes. Dichas soluciones se obtienen proponiendo soluciones
de la forma Yn = rn para alg
un r C. En este caso r debe satisfacer
r
n+1
p
X
aj r
nj
+ h
j=0
p
X
bj rnj ,
n p.
j=1
p+1
p
X
aj r
pj
+ h
j=0
p
X
bj rpj ,
j=1
p+1
p
X
j=0
ij nj rin ,
i=0 j=0
37
donde Nr es el n
umero de races distintas de q(r) y ij se determinan para cumplir las
condiciones iniciales (valores de Y0 , Y1 , . . . , Yp ). La sucesion obtenida resulta acotada para
cualquier eleccion de ij si y solo si las races simples de q(r) tienen modulo menor o igual
a uno y las m
ultiples tienen modulo menor (estricto) que uno.
Ademas, la sucesion obtenida tiende a cero para cualquier eleccion de ij si y solo
si todas las races de q(r) tienen modulo menor que uno (tanto las simples como las
m
ultiples). Esto se debe a que si ri C, |ri | < 1, entonces
nk rin 0,
cuando n ,
para cualquier k Z.
Para simplificar el analisis definiremos la region de estabilidad fuerte de un metodo,
como el conjunto de h C tales que la sucesion {Yn }n0 tiende a cero. Mas precisamente,
definimos
R = {h C : {Yn }n0 tiende a cero, para cualquier eleccion de Y0 , Y1 , . . . , Yp } .
Por lo tanto, h R si y solo si todas las races del polinomio q(r) tienen modulo
menor (estricto) que uno, sin importar la multiplicidad.
Regi
on de estabilidad de Adams-Bashforth de orden 2 (AB2)
El metodo AB2 tiene la formula
Yn+1 = Yn +
i
hh
3f (tn , Yn ) f (tn1 , Yn1 ) .
2
i
hh
= Yn + 3Yn Yn1 =
2
3h
1+
2
Yn
h
Yn1 .
2
con soluciones
1+
r1,2 =
3h
2
1+
2
3h 2
2
4 h
2
=
38
1 3h
+
2
4
s
1 3h
+
2
4
2
h
.
2
s
2
1 3h
h
1 3h
+
2
4
2
4
2
Para graficarla utilizamos el siguiente codigo en matlab:
% reg_estab_AB2.m
[re,im] = meshgrid(-2:.05:1,-2:.05:2);
z = re + i*im;
d = sqrt((1/2+3/4*z).^2-z/2);
r1 = (1/2+3/4*z)+d;
r2 = (1/2+3/4*z)-d;
val = max(abs(r1),abs(r2));
contour(re, im, val, [.02:.02:1])
grid
axis equal
title(Region de estabilidad de AB2)
print -djpeg reg_estab_AB2
print -deps2c reg_estab_AB2
Regi
on de estabilidad de Adams-Moulton de orden 2 (AM2)
El metodo AM2 tiene la formula
Yn+1
i
hh
= Yn + f (tn , Yn ) + f (tn+1 , Yn+1 ) .
2
h
2
h
2
< 1.
z
2
z
2
<1 .
Re z < 0.
Por lo tanto
RAM 2 = {z C : Re z < 0}.
Regiones de estabilidad para AB3, AM3.
Analogamente a como se hizo para AB2 y AM2, puede verse que las regiones de estabilidad
de AB3 y AM3 son las siguientes:
5z
23z 2 16z
3
)r
r+
RAB3 = z C : max |ri | < 1, con ri cero de r + (1 +
,
i=1,2,3
12
12
12
8z
z
5z 2
RAM 3 = z C : max |ri | < 1, con ri cero de (1 + )r + (1 + )r
i=1,2
12
12
12
Las regiones se pueden graficar con los siguientes codigos para matlab:
% reg_estab_AB3.m
[re,im] = meshgrid(-6:.05:1,-4:.05:4);
i = sqrt(-1);
z = re + i*im;
[n,m] = size(z);
val = zeros(n,m);
for ii=1:n
for jj=1:m
Z = z(ii,jj);
p = [-1 1+23/12*Z -16/12*Z 5/12*Z];
val(ii,jj) = max(abs(roots(p)));
end
end
% reg_estab_AM3.m
[re,im] = meshgrid(-6:.05:1,-4:.05:4);
i = sqrt(-1);
z = re + i*im;
[n,m] = size(z);
val = zeros(n,m);
for ii=1:n
for jj=1:m
Z = z(ii,jj);
p = [-1+5/12*Z 1+8/12*Z -Z/12];
val(ii,jj) = max(abs(roots(p)));
end
end
Como puede verse en la Figura 1.2 el metodo implcito tiene una region de estabilidad
mayor que el metodo explcito del mismo orden.
40
1.6
Un m
etodo predictor-corrector
1.7
F
ormulas de diferenciaci
on hacia atr
as (BDF)
Las formulas de diferenciacion hacia atras, o BDF, por su sigla en ingles (Backward Differentiation Formulas) constituyen otra manera de obtener metodos multipaso. Tratando
de obtener mayores regiones de estabilidad las BDF proveen metodos implcitos. La propuesta es la siguiente. Dado un entero positivo p, sea q Pp el polinomio de grado
p que interpola y(t) en tnj , para j = 1, 2, . . . , p 1. Notemos que ahora estamos
interpolando y(t) y no f (t, y(t)) como hacamos con los metodos de Adams. Si llamamos
`j,n a la funcion de la base de Lagrange3 para polinomios correspondiente a los puntos
3
La funci
on de Lagrange `j,n Pk (p) cumple `j,n (tnj ) = i,j para i = 1, 0, 1, . . . , p 1. Una
f
ormula est
a dada por
Q
(t tni )
`j,n (t) =
1ip
i6=j
(tnj tni )
1ip
i6=j
41
tnj , j = 1, 2, . . . , p 1, entonces
q(t) =
p1
X
j=1
p1
X
j=1
En base a esta aproximacion se obtiene el metodo BDF de orden p+1: Yn+1 es la solucion
de:
p1
X
Ynj `0j,n (tn+1 ) = f (tn+1 , Yn+1 ),
j=1
p1
X
j=0
`0
(tn+1 )
j,n
para = h`0 1(tn+1 ) y j = `1,n
. Resulta que j y son constantes fijas, indepen(tn+1 )
1,n
dientes de la particion, siempre que esta sea uniforme.
Para p = 1 se obtiene = 1 = 1 y resulta el metodo de Euler implcito.
Para p = 2, resulta = 23 , 1 = 43 , 2 = 13 .
9
2
6
, 1 = 18
, 2 = 11
, 3 = 11
.
Para p = 3, resulta = 11
11
Un aspecto muy interesante de estos metodos es que sus regiones de estabilidad contienen a todo el eje real negativo, para p < 6.
Ejercicios
1.1. Explicar por que falla el metodo de Euler al aproximar la solucion y(t) =
1
para t 0, del PVI y 0 = y 3 , y(0) = 0.
32
2
t
3
1.2. La trayectoria de una partcula que se mueve en el plano esta dada por la curva
(x1 (t), x2 (t)), donde las funciones x1 y x2 son la solucion del siguiente sistema de ecuaciones diferenciales:
0
x1 (t) = x2 (t)
Resolver este sistema en el intervalo [0, 20] con el metodo de Euler utilizando paso h = 0.05
y graficar la trayectoria de la partcula, sabiendo que en tiempo t = 0 se encontraba en
el punto (1, 1). Realizar nuevamente el grafico utilizando la solucion obtenida con el
comando ode45 de Matlab.
1.3. Resolver los siguientes PVI mediante los metodos de Euler, RK2 y RK4. Estudiar
el orden experimental de convergencia de cada metodo.
42
(a)
dy = y y 2
dx
x
x
y(1) = 1
1<x<2
dy
= y + (2 + x)|x|
dx
y(1) = e 1
1<x<1
y(0) = 1
y 0 (0) = 0
y 00 (0) = 1
Comparar los resultados con los valores de la solucion exacta y(t) = cos t. Estudiar el
orden experimental de convergencia en terminos del paso h.
1.5. Considerar el problema
(
y 0 (t) = 500y(t) sen(t) + 500 cos(t),
y(0) = 1,
0 t 2,
h
[23f (tn , Yn ) 16f (tn1 , Yn1 ) + 5f (tn2 , Yn2 )]
12
2 t 3,
tn+1
y(tn+1 ) = y(tnr ) +
tnr
para alg
un r 0, y para todo n r. Se aproxima la integral mediante una cuadratura
k
X
de la forma
i f (ti , y(ti )) que resulte exacta para polinomios de grado menor o igual
i=0
para n = 1, , N 1
Y1 = 5h2 .
44
Determinar YN en cada caso y notar que este debera ser una aproximacion de y(1) =
0. Converge el metodo? Explicar por que esto no contradice el Teorema 1.28 visto
en clase.
1.11. Resolver numericamente el siguiente PVI
dy = y 2 ,
0 x 10,
dx
y(0) = 1,
usando los metodos:
(a) Midpoint;
(b) Predictor-corrector: Euler-Trapecio;
(c) Predictor-corrector: Midpoint-Trapecio;
1
Sabiendo que la solucion exacta es y(x) = 1+x
, determinar el orden experimental de
convergencia de cada uno de los metodos propuestos. Cree usted que alg
un metodo es
mejor que otro? Por que?
h
[23f (tn , Yn ) 16f (tn1 , Yn1 ) + 5f (tn2 , Yn2 )]
12
i
h h
(P )
9f (tn+1 , Yn+1 ) + 19f (tn , Yn ) 5f (tn1 , Yn1 ) + f (tn2 , Yn2 )
= Yn +
24
Yn+1 = Yn +
Yn+1
y 0 = 1 2y 2 ,
0 t 10,
1 + t2
y(0) = 0,
cuya solucion exacta es y(t) = t/(1+t2 ). Considerar los valores iniciales exactos para
comenzar con el metodo predictor y determinar empricamente el orden del metodo
predictorcorrector. Comparar con el orden teorico calculado en el item anterior.
1.14. Obtener las formulas BDF de dos, tres y cuatro pasos. Determinar el orden de
cada una de ellas y graficar sus regiones de estabilidad.
45
Captulo 2
Problemas a valores de borde
En este captulo consideramos problemas de ecuaciones diferenciales de segundo orden
donde las condiciones no se dan en un mismo punto, sino en el borde del dominio. Consideraremos intervalos en una dimension y tambien dominios bidimensionales.
2.1
x (a, b),
(2.1)
dy
(b)
dx
= ;
(iii)
dy
(a)
dx
=
, y(b) = ;
(iv)
dy
(a)
dx
=
,
dy
(b)
dx
= ;
con y dados.
Observaci
on 2.1. Cuando hemos considerado problemas a valores iniciales, los datos
estan dados en un solo punto. Si tenemos una EDO de orden dos y prescribimos el valor
dy
de y y dx
en un mismo punto, la solucion es u
nica (bajo la hipotesis de Lipscthitzidad,
dy
por supuesto). En cambio, si prescribimos valores de y y/o dx
en diferentes puntos, la
teora es un poco mas complicada.
Ejemplo 2.2. Consideremos el problema a valores de borde (PVB) siguiente:
d2 y
= 2 y,
2
dx
en (0,1),
y(0) = 0,
y(1) = 0.
Para problemas a valores de borde como los que consideramos aqu, no hay una teora
general para problemas no-lineales. Los estudios existentes se centran en diferentes clases
de problemas no-lineales, y quedan fuera del alcance de este curso. Aqu consideraremos
la siguiente familia de ecuaciones lineales de segundo orden:
dy
d2 y
+ q(x)y = g(x),
+ p(x)
2
dx
dx
x (a, b),
(2.2)
dy
d2 y
+
p(x)
= g(x),
dx2
dx
dy
(a) =
,
dx
dy
(b) = .
dx
2.2
M
etodo de shooting o de disparo
x (a, b),
El siguiente paso es hallar el valor de t tal que r(t) = 0, lo que puede aproximarse usando
alg
un metodo numerico para (sistemas de) ecuaciones no-lineales. Es interesante notar
47
que si f (x, y, y)
= p(x)y + q(x)y g(x) (es decir, la EDO es lineal), entonces la funcion
r(t) tambien es lineal, y el valor de t que logra r(t) = 0 puede hallarse calculando y t solo
dos veces.
Si resolvemos el PVI por un metodo numerico de los vistos en el captulo anterior, con
paso h, entonces obtenemos una funcion rh (t) = Yht (b). El metodo entonces consiste en
aplicar alg
un metodo iterativo para la solucion de ecuaciones (no lineales) a la ecuacion
rh (t) = 0. Aqu se ve la necesidad de contar con metodos que converjan en pocas
iteraciones, y que necesiten pocas evaluaciones de la funcion rh (t), dado que la evaluacion
de rh (t) requiere del calculo de la solucion de un PVI en un intervalo.
Si bien la idea es interesante, los metodos de shooting no son muy utilizados en la
practica, y no pueden generalizarse a problemas a valores de borde en 2 y 3 dimensiones.
Los metodos numericos mas utilizados para problemas a valores de borde son los metodos
de diferencias finitas y los de elementos finitos.
2.3
dy
d2 y
+
p(x)
+ q(x)y = g(x), x (a, b),
dx2
dx
y(a) = , y(b) = .
(diferencia adelantada),
(diferencia atrasada),
(diferencia centrada),
y tambien
dy
+ h2 ) dx
(x h2 )
h
y(x+h)y(x)
y(x)y(xh)
h
h
h
y(x + h) 2y(x) + y(x h)
=
.
h2
d2 y
(x)
dx2
dy
(x
dx
48
(diferencia centrada) 2
h
2h
i = 1, 2, . . . , N 1,
y(x0 ) = y(a) = ,
y(xN ) = y(b) = .
Definimos entonces la solucion aproximada {Yi }N
i=0 , reemplazando y(xi ) por Yi y
por = en la expresion anterior:
2
h
2h
i = 1, 2, . . . , N 1,
(2.3)
Y0 = ,
YN = .
Esto u
ltimo resulta un sistema de N + 1 ecuaciones con N + 1 incognitas Y0 , Y1 , . . . , YN ,
que resultaran aproximaciones de y(x0 ), y(x1 ), . . . , y(xN ).
La implementacion computacional consiste en armar el sistema lineal y resolverlo
mediante alg
un metodo apropiado para dicho sistema. Denotando por pi , qi , gi a p(xi ),
q(xi ) y g(xi ), respectivamente, el sistema resulta:
Y0
Y1 g1
g2
Mh ... = .. ,
(2.4a)
YN 1 .
gN 1
YN
con
1
h12
Mh =
..
0
0
p1
2h
2
h2
h12
0
+ q1
..
.
...
0
p2
2h
0
1
h2 +
2
h2
p1
2h
+ q2
..
.
0
...
...
0
p2
h12 + 2h
..
.
1
h2 pN2h1
...
2
h2
...
...
..
.
..
.
+ qN 1 h12
0
p1
Y1
g1 + h12 + 2h
)
Y2
g2
..
.
.
Mh . =
YN 2
gN 2
pN 1
1
YN 1
gN 1 + h2 2h
49
0
0
..
.
(2.4b)
pN 1
+ 2h
1
(2.5a)
con
2
+ q1
h2
1
p2
h2 2h
Mh =
0
..
.
h12 +
2
h2
p1
2h
+ q2
..
.
..
.
...
0
h12 +
..
.
..
.
p2
2h
...
..
.
..
.
..
.
1
h2 pN2h1 h12
0
..
.
..
.
0
+
pN 1
2h
(2.5b)
y con
Y0 = ,
YN = .
(2.5c)
Vale la pena observar que la matriz Mh del sistema (2.5) sera simetrica si p 0.
2.3.1
Estabilidad
Para ver que el sistema tiene solucion y para el analisis del error cometido por el metodo
numerico, lo que haremos es esencialmente acotar la inversa de la matriz Mh . Estudiaremos el caso mas sencillo en que q > 0 en [a, b]. El resultado es tambien valido si
solo suponemos q 0 en [a, b] pero la demostracion es mas complicada, y queda fuera
del alcance de este curso. Los interesados pueden encontrarla en la Seccion 4.1 de [LT].
Teorema 2.7. Sea Mh la matriz definida en (2.4) y supongamos que q(x) > 0 para
2
y e = (e0 , e1 , . . . , eN )T y = (0 , 1 , . . . , N )T
todo x [a, b]. Entonces, si h max[a,b]
|p|
satisfacen Mh e = , resulta que
n 1o
kek max 1,
k k ,
(2.6)
50
i = 1, 2, . . . , N 1.
Sea ahora i un ndice tal que kek = |ei |. Pueden ocurrir dos casos:
(1) i = 0 o i = N . En este caso, kek = |ei | = |i | k k , es decir
kek k k .
(2) 1 i N 1. En este caso
2 + h2 kek = 2 + h2 |ei | 2kek + h2 k k ,
y entonces h2 kek h2 k k que implica
kek
1
k k .
Demostracion. Para ver que el sistema tiene solucion para cualquier , y g basta ver
que la u
nica solucion del problema homogeneo es la trivial. Esta u
ltima afirmacion se
sigue del Teorema 2.7, pues = 0 implica e = 0. La acotacion es tambien consecuencia
del mismo teorema, aplicado a = [ g1 g2 . . . gN 1 ]T .
2.3.2
An
alisis del error
Las formulas de diferencias finitas que hemos utilizado en la obtencion del metodo cumplen las siguientes identidades para alg
un :
dy
(x) =
dx
dy
(x) =
dx
dy
(x) =
dx
d2 y
(x) =
dx2
y(x + h) y(x) h d2 y
+
()
h
2 dx2
y(x) y(x h) h d2 y
()
+
h
2 dx2
y(x + h) y(x h) h2 d3 y
+
()
2h
3 dx3
y(x + h) 2y(x) + y(x h) h2 d4 y
+
()
h2
12 dx4
51
si y es C 2 ,
si y es C 2 ,
si y es C 3 ,
si y es C 4 .
y(x0 ) Y0
y(x1 ) Y1
..
.
e=
y(xn1 ) YN 1
y(xN ) YN
resulta que
0h
h
1
Mh e = .. =: h ,
.
Nh
con 0h = 0, Nh = 0,
ih
h2 d3 y
h2 d4 y
(i ) + p(xi )
(i ),
=
12 dx4
3 dx3
para alg
un i , i [a, b],
i = 1, 2, . . . , N 1.
En consecuencia, k h k Ch2 con C una constante que depende de las derivadas hasta
orden cuatro de la solucion exacta y y del coeficiente p de la ecuacion diferencial.
Como consecuencia del Teorema 2.7 obtenemos que
Corolario 2.10. Supongamos que q(x) > 0 para todo x [a, b] y que h 2/ max[a,b] |p|.
Entonces existe una u
nica solucion {Yi }N
i=0 de (2.4), que cumple
max |y(xi ) Yi | Ch2 ,
0iN
con C una constante que depende de las derivadas hasta orden cuatro de la solucion
exacta y, de y del coeficiente p.
2.3.3
Condici
on de borde para la derivada
dy
d2 y
+ p(x)
+ q(x)y = g(x), x (a, b),
2
dx
dx
dy
(a) = 0, y(b) = .
dx
dy
y(x1 ) y(x0 ) h d2 y
(a) =
+
(),
dx
h
2 dx2
si y C 2 .
Este error hara que el error (global) del metodo sea O(h) solo por culpa de la aplicacion
de esta condicion de borde.
Utilizando diferencias centradas.
Esta manera es un poco anti-natural, pero es mas precisa que la anterior. La idea es
utilizar diferencias centradas, a traves de la aproximacion
y(a + h) y(a h) h2 d3 y
dy
(a) =
+
(),
dx
2h
3 dx3
si y C 3 .
2.4
de manera similar. Lo complicado es numerar los nodos con un solo ndice, y encontrar
la manera automatica de armar la matriz del sistema, pero pensando un poco es posible.
Consideremos el problema modelo sobre el dominio = (0, 1) (0, 1) R2 que
R tal que
consiste en hallar u = u(x, y), u :
u + p(x, y) u + q(x, y)u = g(x, y),
u(x, y) = (x, y),
(x, y) ,
(x, y) .
(2.7)
R2 y q, g :
R son funciones continuas.
Aqu suponemos que p :
Dado N N, definimos h = 1/N y xi = ih, yj = jh i, j = 0, 1, . . . , N , y resulta,
denotando ui,j = u(xi , yj ),
2u
2u
(x
,
y
)
+
(xi , yj )
i
j
x2
y 2
ui+1,j 2ui,j + ui1,j h2 4 u
ui,j+1 2ui,j + ui,j1 h2 4 u
=
+
(
,
y
)
+
+
(xi , i,j )
i,j j
h2
12 x4
h2
12 y 4
i
4u
ui+1,j + ui,j+1 4ui,j + ui1,j + ui,j1 h2 h 4 u
+
(
,
y
)
+
(x
,
)
=
i,j j
i i,j
h2
12 x4
y 4
u(xi , yj ) =
Para las derivadas parciales de primer orden tenemos, igual que antes,
u
ui+1,j ui1,j h2 3 u i,j
(xi , yj ) =
+
( , yj ),
x
2h
3 x3
ui,j+1 ui,j1 h2 3 u
u
(xi , yj ) =
+
(xi , i,j ).
y
2h
3 y 3
satisface
Por lo tanto, si la solucion u(x, y) de (2.7) es C 4 en ,
ui+1,j ui,j+1 + 4ui,j ui1,j ui,j1
h2
u
u
ui,j+1 ui,j1
i+1,j
i1,j
+ p1i,j
+ p2i,j
+ qi,j ui,j = gi,j + O(h2 )
2h
2h
para i, j = 1, 2, . . . , N 1. Aqu p1 , p2 denotan las componentes del campo vectorial p y
(k)
pi,j , qi,j , gi,j denotan la evaluacion de p(k) , q y g en (xi , yj ), respectivamente.
A partir de estas expresiones, definimos Ui,j , aproximaciones de ui,j a traves de las
siguientes igualdades:
Ui+1,j Ui,j+1 + 4Ui,j Ui1,j Ui,j1
h2
(1) Ui+1,j Ui1,j
(2) Ui,j+1 Ui,j1
+ pi,j
+ pi,j
2h
2h
+ qi,j Ui,j = gi,j ,
i, j = 1, 2, . . . , N 1,
U0,j = (0, yj ),
Ui,0 = (xi , 0),
UN,j = (1, yj ),
Ui,N = (xi , 1),
j = 0, 1, . . . , N,
i = 0, 1, . . . , N.
(2.8)
0i,jN
con C una constante que depende de derivadas de hasta orden cuatro de u y de los
coeficientes p(x, y), q(x, y) de la EDP.
Observaci
on 2.11. Para implementarlo debemos numerar los nodos e incognitas con un
solo ndice, por ejemplo k = (i 1)(N + 1) + j. Al hacer esto, el sistema resulta con una
matriz pentadiagonal en lugar de tridiagonal.
2.5
2.5.1
(2.9)
Formulaci
on d
ebil
Z
=
a
=0
dy dv
dx.
dx dx
v V.
v, w V,
(2.10)
v V,
v V.
B[y, v] = `(v),
(2.11)
Tanto (2.10) como su formulacion equivalente (2.11) son formulaciones debiles de la ecuacion (2.9). Es importante destacar que la formulacion debil no plantea la b
usqueda de
una funcion y sobre [a, b] que cumpla cierta propiedad en cada punto del intervalo [a, b]
(que son infinitos). En lugar de eso plantea hallar una funcion y definida en [a, b] que
cumpla una identidad integral, para muchas (infinitas) funciones de prueba v.
2.5.2
Aproximaci
on de Galerkin
V Vh .
B[Y, V ] = `(V ),
(2.12)
B[Y, i ] = `(i ),
i = 1, 2, . . . , N.
N
X
Yj j (x),
j=1
56
Yj B[j , i ] = `(i ),
i = 1, 2, . . . , N.
j=1
y Fi = `(i ),
i, j = 1, 2, . . . , N.
(2.13)
v, w V,
y coercitiva
Z b 2
Z b 2
dv
dv
2
2
B[v, v] =
+ q(x)v dx =: kvkV
+ v 2 dx 0,
dx
dx
a
a
v V.
(2.14)
Esto implica que la matriz K es simetrica, pues Kij = B[j , i ] = B[i , j ] = Kji .
Para V RN , resulta que
V T K V =
N
X
i,j=1
Vi Vj B[j , i ] =
N
X
B[Vj j , Vi i ] = B
N
hX
i,j=1
Vj j ,
j=1
N
X
i
Vi i = B[V, V ] = kV k2V ,
i=1
P
en definida positiva y en consecuencia
si V (x) = N
j=1 Vj j (x). Por lo tanto K es tambi
invertible. Hemos demostrado entonces el siguiente teorema.
Teorema 2.12. Supongamos que q(x) > 0 en [a, b] y que la forma bilineal B :
V V R y el funcional lineal ` : V R estan definida por
Z b
Z b
dv dw
B[v, w] =
+ qvw dx, `(v) =
gv dx,
a
a dx dx
para v, w V. Entonces, cualquiera sea el espacio de dimension finita Vh V existe
una u
nica aproximacion de Galerkin Y definida por
Y Vh :
B[Y, V ] = `(V ),
V Vh .
57
la u
ltima desigualdad es la de Cauchy-Schwartz, que vale porque la norma k kV es
la generada por el producto escalar B[, ]. Resumiendo, tenemos que, cualquiera sea
V Vh ,
ky Y k2V ky Y kV ky V kV
ky Y kV ky V kV .
El u
ltimo teorema nos dice que la aproximacion de Galerkin es la mejor aproximacion
desde el espacio de dimension finita Vh , pero no nos da una medida de el error. Para poder
cuantificar el error hace falta precisar que espacio estamos considerando. Hay muchas
posibilidades, pero los mas usados, por varios motivos, son los espacios de elementos
finitos.
2.5.3
Elementos finitos
Esencialmente los espacios de elementos finitos son los que se obtienen particionando el
dominio en un n
umero finito de elementos, que en una dimension son intervalos y en mas
dimensiones pueden ser triangulos/tetraedros, o tambien cuadrilateros/hexaedros.
Consideraremos los elementos finitos de Lagrange, que se definen como sigue, en
dimension 1. Tomemos una particion a = x0 < x1 < < xN = b del intervalo
[a, b] y llamemos h = max xi xi1 . El parametro h es un indicador de cuan fina es
{z }
1iN |
hi
[xi1 ,xi ]
[xi1 ,xi ]
Pr , i = 1, 2, . . . , N } V
Pr , i = 1, 2, . . . , N y V (a) = 0}.
(2.15)
di
1
= .
dx
hi
Por lo tanto
xi
xi1
11
1
di1 di
= hi
= .
dx dx
hi hi
hi
Para calcular la otra integral, utilizamos la regla de Simpson, que sera exacta para q
constante sobre [xi1 , xi ], llamando mi = xi12+xi al punto medio de [xi1 , xi ] tenemos:
Z
xi
i
hi h
qi1 i dx
q(xi1 ) i1 (xi1 ) i (xi1 ) +4q(mi ) i1 (mi ) i (mi ) +q(xi ) i1 (xi ) i (xi )
| {z } | {z }
| {z } | {z }
| {z } | {z }
6
xi1
=1
=0
=1/2
=0
=1/2
hi
q(mi ).
6
1
q(mi )hi
+
,
hi
6
i = 2, 3, . . . , N.
Para calcular los elementos que estan sobre la diagonal, observamos que para i =
1, 2, . . . , N ,
b
Z xi+1
di di
di di
Ki,i =
+ qi i dx =
+ qi i dx
a dx dx
xi1 dx dx
Z xi+1
Z xi
di di
di di
+ qi i dx +
+ qi i dx.
=
dx dx
xi
xi1 dx dx
Z
Luego, haciendo calculos analogos a los que hicimos en el parrafo anterior obtenemos
Ki,i =
h1
hi
1 i
hi1
i
1h
+ hi q(mi ) + (hi + hi+1 )q(xi ) + hi+1 q(mi+1 ) ,
6
para i = 1, 2, . . . , N 1, y
KN,N
i
1h
1
+ hN q(mN ) + hN q(xN ) .
hN
6
xi+1
gi dx =
a
xi
g dx =
xi1
xi+1
g dx +
xi1
g dx,
xi
i
1h
2hi g(mi ) + (hi + hi+1 )g(xi ) + 2hi+1 g(mi+1 ) ,
6
para i = 1, 2, . . . , N 1, y
FN
i
1h
2hN g(mN ) + hN g(xN ) .
6
60
=1
2.5.4
An
alisis del error
El analisis del error es muy sencillo una vez que se tiene el resultado de optimalidad del
Teorema 2.13. En efecto, como ku U kV ku V kV para toda V Vrh entonces
ku U kV ku U kV ,
si U Vrh es la interpolada de Lagrange de u. La interpolada de Lagrange de u es la
funcion U Vrh que cumple:
j
j
U xi1 + (xi xi1 ) = u xi1 + (xi xi1 ) ,
r
r
0 j r,
i = 1, 2, . . . , N.
Es decir:
Si r = 1, U es la funcion lineal a trozos sobre la particion, que coincide con u en
los nodos xi de la particion.
Si r = 2, U es la funcion cuadratica a trozos sobre la particion, que coincide con u
en los nodos xi de la particion y en los puntos medios de cada subintervalo [xi1 , xi ].
Para r N generico, U es un polinomio de grado r en cada intervalo [xi1 , xi ] y
coincide con u en r + 1 puntos de dicho intervalo, que llamaremos
j
nij = xi1 + (xi xi1 ),
r
j = 0, 1, . . . , r.
i=1,2,...,N
Luego
Z
xi
xi1
|u(x) U (x)|2 dx
xi
xi1
61
M
(r + 1)!
2
h2(r+1) dx,
|u(x) U (x)|2 dx
Z b
a
M
(r + 1)!
2
2(r+1)
dx (b a)
M
(r + 1)!
2
h2(r+1) . (2.16)
d
Por otro lado, como u U tiene r +1 ceros en [xi1 , xi ], la funcion dx
(u U ) = du
ddxU
dx
tiene r ceros en ese intervalo, y por lo tanto ddxU es un polinomio de grado r 1 que
en r puntos. Analogamente, obtenemos que
coincide con du
dx
2
Z b
2
M
d
u(x) U (x) dx (b a)
h2r .
dx
r!
a
(2.17)
ku
Z b
Z b
2
d
=
q(x)|u(x) U (x)|2 dx
u(x) U (x) dx +
dx
a
a
2
2
M
M
2(r+1)
h
+ (b a)
h2r .
(b a)Q
(r + 1)!
r!
Como h b a obtenemos
"
2
3
ku U k (b a) Q
V
M
(r + 1)!
2
+ (b a)
M
r!
2 #
h2r .
Ejercicios
2.1. Demostrar que:
(a) Si y es C 2 ,
dy
(x)
dx
y(x+h)y(x)
h
h d2 y
(),
2 dx2
para alg
un (x, x + h).
(b) Si y es C 2 ,
dy
(x)
dx
y(x)y(xh)
h
h d2 y
(),
2 dx2
para alg
un (x h, x).
(c) Si y es C 3 ,
dy
(x)
dx
y(x+h)y(xh)
2h
(d) Si y es C 4 ,
d2 y
(x)
dx2
h2 d3 y
(),
3 dx3
y(x+h)2y(x)+y(xh)
h2
+
62
para alg
un (x h, x + h).
h2 d4 y
(),
12 dx4
para alg
un (x h, x + h).
u0 (0) = 0 u(1) = 0.
(b) Plantear la discretizacion del problema usando el metodo de diferencias finitas, discretizando la condicion de borde u0 (0) = 0 de las dos maneras descriptas en clase.
(c) Calcular el orden experimental de convergencia que se obtiene con cada una de las
discretizaciones.
(d) Existe alguna diferencia entre estos ordenes de convergencia? Si existe, a que cree
usted que se debe?
* 2.3. (a) Plantear la discretizacion del problema del ejercicio anterior usando el metodo
de elementos finitos con polinomios lineales a trozos.
(b) Graficar ku uh kL [0,1] en terminos de h y analizar el orden experimental de convergencia.
2.4. Utilizar el metodo de diferencias finitas para hallar la solucion del siguiente problema
de conveccion-difusion estacionario:
d2 y dy
+
+ 2y = 1,
dx2 dx
y(0) = 0, y(1) = 0.
0.003
0 < x < 1,
Utilizar N = 10, 20, 50, 100, 200, 500, 1000, 2000, . . . . Para que valor de N le parece que
la solucion hallada es razonable? Como se relaciona con los resultados de la teora?
2.5. La ecuacion para el estado estacionario de la temperatura en una barra unidimensional de longitud 1 con un termino fuente, que se encuentra aislada en x = 1 y se mantiene
constantemente a temperatura 0 en x = 0 es
2
y 00 (x) = e(x1/2)
x (0, 1),
y(0) = 0 y 0 (1) = 0.
Calcular y graficar el perfil de temperatura en la barra. Decir cual es la maxima temperatura alcanzada.
2.6. Consideremos el problema de difusion
u(x, y) = sen(x) sen(y),
u(x, y) = 0
cuya solucion exacta es u(x, y) = 21 2 sen(x) sen(y). Resolver por el metodo de diferencias finitas visto en clase y calcular el orden experimental de convergencia.
63
i
ui+1,j + ui,j+1 4ui,j + ui1,j + ui,j1 h2 h 4 u
4u
+
(,
y
)
+
(x
,
)
j
i
h2
12 x4
y 4
2.8. Suponer que q(x, y) > 0 para (x, y) [0, 1]2 . Demostrar que si h < 2/ max |p(k) |,
N
k = 1, 2, y si {ei,j }N
i,j=0 y {i,j }i,j=0 satisfacen
ei+1,j ei,j+1 + 4ei,j ei1,j ei,j1
h2
e
e
i1,j
(2) ei,j+1 ei,j1
(1) i+1,j
+ pi,j
+ qi,j ei,j = i,j
+ pi,j
2h
2h
e0,j = 0,j , eN,j = N,j ,
ei,0 = i,0 , ei,N = i,N ,
i, j = 1, 2, . . . , N 1,
j = 0, 1, . . . , N,
i = 0, 1, . . . , N,
entonces
1
max |ei,j | max{1, } max |i,j |.
0i,jN
0i,jN
Concluir que bajo las mismas hipotesis sobre p, q, h, el sistema (2.8) tiene solucion u
nica
y se cumple que
1
max |Ui,j | max{1, } max{max ||, max |g|},
0i,jN
y tambien que
max |u(xi , yj ) Ui,j | Ch2 ,
0i,jN
con C una constante que depende de derivadas de hasta orden cuatro de u y de los
(x, y) .
en .
Utilizar N = 10, 20, 50, 100, 200, 500, 1000, 2000, . . . . Para que valor de N le parece que
la solucion hallada es razonable? Como se relaciona con los resultados de la teora?
64
Captulo 3
Problemas a valores iniciales y de
borde. Ecuaciones parab
olicas
lineales
En este captulo consideraremos la ecuacion del calor (difusion) no-estacionaria en una
y dos dimensiones. La ecuacion del calor es el ejemplo clasico de ecuacion parabolica
lineal. Para fijar ideas sin complicar la notacion, estudiaremos el caso en que no hay
conveccion ni reaccion, y las condiciones de borde de tipo Dirichlet. Mas precisamente,
en una dimension, estudiaremos metodos numericos para la ecuacion
2u
u
k
= f (x, t),
t
x2
u(0, t) = (t), u(L, t) = (t),
u(x, 0) = u0 (x),
0 < x < L,
0 < t < T,
(3.1)
0 t T,
0 x L.
Aqu, L, k son parametros positivos fijos y f (x, t), (t), (t), u0 (x) son los datos del
problema. La incognita es la funcion u = u(x, t) que esta definida para 0 x L,
0 t T.
En dos dimensiones, estudiaremos metodos numericos para la ecuacion sobre =
(0, L) (0, L),
2
u
u 2u
t k x2 + y 2 = f (x, y; t),
u(x, y; t) = (x, y; t),
(x, y) ,
(x, y) ,
(x, y) .
0 < t < T,
0 t T,
Aqu, L, k son parametros positivos fijos y f (x, y; t), (x, y; t), u0 (x, y) son los datos del
problema. La incognita es la funcion u = u(x, y; t) que esta definida para 0 x L,
0 y H, 0 t T .
65
3.1
0 < x < L,
0 < t < T,
u(L, t) = (t),
0 t T,
y condicion inicial
u(x, 0) = u0 (x),
0 x L.
,
i
x2
h2
i = 1, 2, . . . , N,
h2 4 u
(i,t , t) para alg
un i,t (xi1 , xi+1 ).
12 x4
Definimos ahora ui (t) u(xi , t), i = 0, 1, . . . , N como las soluciones del siguiente
sistema de ecuaciones diferenciales, que resulta de reemplazar la derivada espacial de
orden dos, por su aproximacion por un cociente incremental:
u0 (t) = (t),
ui (xi+1 , t) 2u(xi , t) + u(xi1 , t)
dui
=k
+ f (xi , t),
dt
h2
uN (t) = (t).
Si agregamos a este sistema las condiciones iniciales ui (0) = u0 (xi ), i = 1, 2, . . . , N
1, hemos obtenido un PVI para el vector u = (u1 , u2 , . . . , uN 1 )T . En forma matricial/vectorial, el PVI puede escribirse como
2 1
f (x1 , t) + hk2 (t)
1 2 1
f (x2 , t)
1
d
..
.
.
.
.
.
.
u
=
k
u
, 0 < t < T,
.
.
.
.
dt
h
1
2
1
f
(x
,
t)
N
2
1 2
f (xN 1 , t) + h2 (t)
{z
}
|
Mh
u0 (x1 )
u (x2 )
u(0) =
.
..
0
u (xN 1 )
(3.2)
66
Para resolverlo se pueden utilizar algunos de los metodos para problemas a valores iniciales, y el error cometido por la discretizacion de estos metodos se combinara con el error
cometido en la semi-discretizacion espacial aqu introducida. Para comprender mejor el
rol de ambas discretizaciones, veremos a continuacion tres discretizaciones temporales
concretas: Euler explcito, Euler implcito y trapecio.
3.1.1
Euler explcito
En esta seccion utilizaremos el metodo de Euler explcito para discretizar el PVI (3.2).
Utilizamos un parametro de discretizacion temporal t := T /M , para alg
un M N (el
n
parametro de discretizacion espacial es h) y llamamos U a la aproximacion de u(tn ),
n+1
n
donde tn = n t. Luego, reemplazando ddtu (tn ) por U tU obtenemos
U n+1 U n
= kMh U n + F n ,
t
es decir
n = 0, 1, 2, . . . ,
U n+1 = U n ktMh U n + tF n ,
= (I ktMh )U n + tF n ,
u0 (x1 )
u0 (x2 )
U 0 = u(0) =
.
..
.
0
u (xN 1 )
con F n =
,
f (xN 2 , tn )
k
f (xN 1 , tn ) + h2 (tn )
n = 0, 1, 2, . . . , M 1
(3.3)
Para comprender mejor el efecto de cada paso temporal, desmenuzamos lo que quiere
decir la formula U n+1 = (I ktMh )U n + tF n para cada componente:
U1n+1
Uin+1
UNn+1
1
t n
t
t
= 1 2k 2 U1 + k 2 U2n + tf (x1 , tn ) + k 2 (tn ),
h
h
h
t n
t n
t n
= k 2 Ui1 + 1 2k 2 Ui + k 2 Ui+1 + tf (xi , tn ),
i = 1, 2, . . . , N 2,
h
h
h
t
t
t
= 1 2k 2 UNn 1 + k 2 UNn 2 + tf (xN 1 , tn ) + k 2 (tn ).
h
h
h
U1n+1
Uin+1
UNn+1
1
kt
h2
Definiendo =
Implementaci
on en MATLAB
Existen al menos dos maneras de implementar este metodo en MATLAB. La primera,
y mas natural a partir de (3.3) consiste en ensamblar la matriz I ktMh (usando
spdiags) y luego realizar un producto matriz vector en cada paso.
%% Ecuacion del calor en un intervalo
%% Resolucion con Euler EXPLICITO
%% Datos del problema
% Longitud del intervalo y tiempo final
L = 1;
T = 2;
% coeficiente de difusividad
k = 1;
% dato inicial y termino fuente
u0 = @(x) sin(pi*x);
f = @(x,t) zeros(size(x));
% datos de borde
alpha = @(t) 0;
beta = @(t) 0;
%% Parametros de resolucion
N = 20; M = 800;
h = L/N; dt = T/M;
%% Resolucion - Inicializacion
x = linspace(0,L,N+1); U = u0(x);
plot(x,U); title(Condicion inicial); ejes = axis;
pause
%% Ensamblado de la matriz
ksobreh2 = k/h^2; unos = ones(N-1,1);
Mat = -unos*(dt*ksobreh2*[-1 2 -1]);
Mat(:,2) = Mat(:,2) + unos;
Mat = spdiags(Mat, [-1 0 1], N-1, N-1);
% ahora M tiene I - k dt Mh
%% Resolucion
t = 0;
while (t < T)
F = f(x(2:N),t) ;
F(1) = F(1) + ksobreh2*U(1);
F(N-1) = F(N-1) + ksobreh2*U(N+1);
U(2:N) = Mat * U(2:N) + dt*F;
t = t+dt;
U(1) = alpha(t); U(N+1) = beta(t);
plot(x,U); title(sprintf(Solucion a tiempo t=%6.4f,t)); axis(ejes);
pause(1/24);
end
Estabilidad
Observemos que por la desigualdad triangular, para i = 1, 2, . . . , N 1 se cumple
n
n
|Uin+1 | |Ui1
| + 1 2|Uin | + |Ui+1
| + t|f (xi , tn )|.
Si =
kt
1
h2
,
o
lo
que
es
lo
mismo
t
resulta 1 2 0 y entonces
h2
2
2k
n
n
|Uin+1 | |Ui1
| + 1 2 |Uin | + |Ui+1
| + t|f (xi , tn )|
n
max |Uj | + t max |f (xj , tn )|,
0jN
1jN 1
n
o
max |(tn )|, |(tn )|, max |Ujn | + t max |f (x, tn )|,
1jN 1
0xL
para i = 1, 2, . . . , N 1.
Por lo tanto,
n
o
max |Uin+1 | max max |(t)|, max |(t)|, max |Ujn | + t
0iN
0tT
1jN 1
0tT
max
0xL,0tT
|f (x, t)|,
para n = 0, 1, . . . , M 1.
A partir de esta desigualdad podemos demostrar facilmente el siguiente teorema o
resultado de estabilidad condicional :
1
kt
Teorema 3.1. Dados N, M N, si h = L/N y t = T /M satisfacen que := 2
h
2
entonces definiendo
= max |(t)|,
0tT
= max |(t)|,
0tT
f =
max
0xL,0tT
|f (x, t)|,
0iN,0nM
u0 } + T f.
kUin k max{
, ,
0xL
Acotaci
on del error
En primer lugar observemos que error cometemos al aplicar la formula en diferencias a la
solucion exacta u(x, t) del problema. Para ello, comenzamos deduciendo, por teorema de
4u 2u
y
son continuas, entonces, dado 1 i N 1 y 0 n M 1,
Taylor, que si
x4 t2
para alg
un tn < i,n < tn+1 y alg
un xi1 < i,n < xi+1 se cumple
u(xi , tn+1 ) u(xi , tn )
=
t
u(xi+1 , tn ) 2u(xi , tn ) + u(xi1 , tn )
=
h2
Luego, multiplicando la segunda igualdad por el
obtenemos
u
t 2 u
(xi , tn )
(xi , i,n ),
t
2 t2
2u
h2 4 u
(x
,
t
)
(i,n , tn ).
i
n
x2
12 x4
coeficiente de difusividad k y restando,
)
+
k
(i,n , tn ), (3.5)
i
i,n
2 t2
12 x4
donde hemos utilizado que u es solucion de la ecuacion diferencial, y por ende
2u
u
(xi , tn ) k 2 (xi , tn ) = f (xi , tn ).
t
x
tenemos que
Multiplicando (3.5) por t y recordando que = kt
h2
h
i
u(xi , tn+1 ) u(xi , tn ) u(xi+1 , tn ) 2u(xi , tn ) + u(xi1 , tn )
h t 2 u
i
h2 4 u
= tf (xi , tn ) + t
(x
,
k
(
,
t
)
i i,n
i,n n ,
2 t2
12 x4
es decir
u(xi , tn+1 ) = u(xi1 , tn ) + (1 2)u(xi , tn ) + u(xi1 , tn ) + tf (xi , tn )
i
h t 2 u
h2 4 u
(xi , i,n ) k
(i,n , tn ) .
+ t
2 t2
12 x4
Recordamos que por definicion, U0n = (tn ) = u(0, tn ) y UNn = (tn ) = u(L, tn ), y
para todo i = 1, 2, . . . , N 1 se cumple (ver (3.4))
n
n
Uin+1 = Ui1
+ 1 2 Uin + Ui+1
+ tf (xi , tn ).
Restando estas igualdades de las expresiones anteriores vemos que el error eni , definido
por
eni := u(xi , tn ) Uin
satisface, para n = 0, 1, . . . , M 1,
en+1
= 0,
0
i
h t 2 u
n
h2 4 u
n
n
(x
,
k
(
,
t
)
en+1
=
e
+
1
2
e
+
e
+
t
i i,n
i,n n ,
i1
i
i+1
i
2 t2
12 x4
i = 1, 2, . . . , N 1,
n+1
eN = 0.
70
Una vez que hemos obtenido la ecuacion para el error, recurrimos al teorema de
estabilidad Teorema 3.1 aplicado a en en lugar de U n , y obtenemos el siguiente
teorema de estimacion del error.
Teorema 3.2. Supongamos que la solucion u(x, t) del problema (3.1) cumple que
4
2
u
u
M2 .
(x,
t)
M
,
y
max
(x,
t)
max
1
0xL, 0tT x4
0xL, 0tT t2
kt
1
entonces el
2
h
2
maximo error
cometido
por
el
m
e
todo
de
diferencias
finitas
expl
cito
(3.3)
es menor o
M2 2
M1
t +
h . Mas precisamente, si Uin , 0 i N , 0 n M son
igual que T
2
12
obtenidos con las formulas (3.3), entonces
M1
M2 2
n
max
|u(xi , tn ) Ui | T
t +
h MT (t + h2 ),
0iN, 0nM
2
12
Dados N, M N, si h = L/N y t = T /M satisfacen que :=
3.1.2
Euler implcito
En esta seccion utilizaremos el metodo de Euler implcito para discretizar el PVI (3.2),
con la esperanza de obtener estabilidad para valores mayores de t.
Utilizamos, como antes, un parametro de discretizacion temporal t := T /M , para
alg
un M N (el parametro de discretizacion espacial es h) y llamamos U n a la aproximan+1
n
cion de u(tn ), donde tn = n t. Luego, reemplazando ddtu (tn+1 ) por U tU obtenemos
U n+1 U n
= kMh U n+1 + F n+1 ,
t
con
F n+1
n = 0, 1, 2, . . . ,
=
,
f (xN 2 , tn+1 )
k
f (xN 1 , tn+1 ) + h2 (tn+1 )
es decir
U n+1 + ktMh U n+1 = U n + tF n+1 .
71
u0 (x1 )
u0 (x2 )
0
U = u(0) =
,
..
.
0
u (xN 1 )
(3.6)
con
(tn+1 )
.
.
=
.
+
.
f (xN 2 , tn+1 )
0
k
f (xN 1 , tn+1 )
(tn+1 )
h2
F n+1
f (x1 , tn+1 )
f (x2 , tn+1 )
..
.
h2
Implementaci
on en MATLAB
Para esta version implcita del metodo de diferencias finitas para la ecuacion del calor,
hay que resolver, en cada paso de tiempo, un sistema lineal para la matriz I ktMh . La
siguiente implementacion consiste en ensamblar esta matriz y resolver el sistema indicado
en cada paso de tiempo.
72
Estabilidad
Para comprender mejor el efecto de cada paso temporal, y para ver si el sistema de ecuaciones tiene solucion, desmenuzamos lo que quiere decir la formula (I + ktMh )U n+1 =
U n + tF n+1 en terminos de sus componentes: Recordando que = kt
resulta, para
h2
73
n = 0, 1, . . . , M 1
(tn+1 ) + (1 + 2)U1n+1 U2n+1 = U1n + tf (x1 , tn+1 ),
n+1
n+1
Ui1
+ (1 + 2)Uin+1 Ui+1
= Uin + tf (xi , tn+1 ),
i = 1, 2, . . . , N 2,
n+1
n
UNn+1
2 + (1 + 2)UN 1 (tn+1 ) = UN 1 + tf (xN 1 , tn+1 ).
Si llamamos, como antes, U0n = (tn ) y UNn = (tn ), entonces, para todo n = 0, 1, 2, . . . , M
1 se cumple
n+1
n+1
Ui1
+ (1 + 2)Uin+1 Ui+1
= Uin + tf (xi , tn+1 ),
i = 1, 2, . . . , N 1. (3.7)
Luego, para i = 1, 2, . . . , N 1,
n+1
n+1
(1 + 2)Uin+1 = Ui1
+ Ui+1
+ Uin + tf (xi , tn+1 ),
que implica
n+1
n+1
(1 + 2)|Uin+1 | |Ui1
| + |Ui+1
| + |Uin | + t|f (xi , tn+1 )|
kU n+1 k + kU n+1 k + kU n k + t max |f (x, tn+1 )|.
(3.8)
0xL
= max |(t)|,
0tT
= max |(t)|,
0tT
f =
max
0xL,0tT
|f (x, t)|,
0xL
0nM
n = 0, 1, . . . , M 1.
(3.9)
(3.10)
que implica
kU n+1 k kU n k + t max |f (x, tn+1 )|.
0xL
Acotaci
on del error
En primer lugar observemos que error cometemos al aplicar la formula en diferencias a
la solucion exacta u(x, t) del problema. Analogamente a como se hizo para el metodo
explcito, por teorema de Taylor deducimos que
h
i
u(xi , tn+1 ) u(xi , tn ) u(xi+1 , tn+1 ) 2u(xi , tn+1 ) + u(xi1 , tn+1 )
h t 2 u
i
h2 4 u
= tf (xi , tn+1 ) + t
(x
,
k
(
,
t
)
i i,n
i,n n+1 ,
2 t2
12 x4
para alg
un i,n (xi1 , xi+1 ) y alg
un i,n (tn , tn+1 ), es decir
u(xi1 , tn+1 ) + (1 + 2)u(xi , tn+1 ) u(xi1 , tn+1 ) = u(xi , tn ) + tf (xi , tn+1 )
i
h t 2 u
h2 4 u
(xi , i,n ) k
(i,n , tn+1 ) .
+ t
2 t2
12 x4
Uin
h t 2 u
i
h2 4 u
n+1
n+1
n
en+1
+
(1
+
2)e
e
=
e
+
t
(x
,
k
(
,
t
)
i i,n
i,n n+1 ,
i
i1
i
i+1
2 t2
12 x4
i = 1, 2, . . . , N 1,
n+1
eN = 0.
Apelando al Teorema 3.4 aplicado a en en lugar de U n , obtenemos el siguiente
teorema de estimacion del error.
Teorema 3.6. Supongamos que la solucion u(x, t) del problema (3.1) cumple que
4
2
u
u
M1 ,
M2 .
(x,
t)
y
max
(x,
t)
max
0xL, 0tT x4
0xL, 0tT t2
Dados N, M N, si h = L/N y t = T /M , entonces el maximo error
cometido por el
M1
M2 2
metodo de diferencias finitas implcito (3.6) es menor o igual que T
t +
h .
2
12
Mas precisamente, si Uin , 0 i N , 0 n M son obtenidos con las formulas (3.6),
entonces
M1
M2 2
n
max
|u(xi , tn ) Ui | T
t +
h MT (t + h2 ),
0iN, 0nM
2
12
si M = max{M1 /2, M2 /12}.
3.1.3
M
etodo del trapecio. Crank-Nicolson
En esta seccion proponemos una discretizacion de segundo orden para la variable tiempo,
utilizando el metodo del trapecio. Obtenemos as un metodo de orden t2 + h2 . Utilizamos, como antes, un parametro de discretizacion temporal t := T /M , para alg
un
75
con F n+1/2
U n+1 U n
k
= Mh U n+1 + U n + F n+1/2 , n = 0, 1, 2, . . . ,
t
2
f (x1 , tn+1/2 ) + 2hk 2 (tn ) + (tn+1 )
f (x2 , tn+1/2 )
1 n
..
=
F + F n+1
, es decir
.
f (xN 2 , tn+1/2
)
k
f (xN 1 , tn+1/2 ) + 2h2 (tn ) + (tn+1 )
k
k
U n+1 + tMh U n+1 = U n tMh U n + tF n+1/2 .
2
2
u0 (x1 )
u0 (x2 )
U 0 = u(0) =
.
..
.
0
u (xN 1 )
n = 0, 1, 2, . . . , M 1,
(3.11)
Aqu tn+1/2 = nt +
t
2
= (n + 1/2)t.
76
(3.12)
V T Mh V = ,
V T V = V V T = I,
k
k
(I t) = V T (I tMh )V,
2
2
,
Ui
=
Ui + t
Fi
k
k
1 + 2 ti
1 + 2 ti
i = 0, 1, . . . , N . Ahora bien, cualquiera sea t > 0
1 k t
1
i
2
<
1,
y
< 1,
1 + k2 ti
1 + k2 ti
por lo que
n+1 n
n+1/2
U
U
+
t
F
i i
i
,
y luego, por la desigualdad triangular en RN +1 ,
!
!
!
N
N
N
1/2
1/2
1/2
X
X
X
n+1 2
n 2
n+1/2 2
+ t
,
Ui
U i
Fi
i=0
i=0
i=0
= max |(t)|,
0tT
0tT
max kU n k2
2 + 2 + kU 0 k2
0nM
M
X
n=0
+ +
1/2
kU 0 k22
N
X
!1/2
|f (xi , tn+1/2 )|2
i=0
+T N +1
max
0xL,0tT
|f (x, t)|.
k
(
,
t
)
+ t
i i,n
i,n n+1 ,
3 t3
12 x4
para alg
un i,n (xi1 , xi+1 ) y alg
un i,n (tn , tn+1 ).
Analogamente a lo hecho en secciones anteriores, vemos que el error eni := u(xi , tn )Uin
satisface, para n = 0, 1, . . . , M 1,
en+1
= 0,
0
n+1
en+1
en+1
ei1 + (1 )eni eni+1
i1 + (1 + )ei
i+1 =
2
2
2
2
h t2 3 u
i
h2 4 u
+ t
(x
,
k
(
,
t
)
,
i
i,n
i,n
n+1
3 t3
12 x4
i = 1, 2, . . . , N 1,
n+1
eN = 0.
Apelando al Teorema 3.7 aplicado a en en lugar de U n , obtenemos el siguiente
teorema de estimacion del error.
Teorema 3.8. Supongamos que la solucion u(x, t) del problema (3.1) cumple que
3
4
u
u
max
(x, t) M1 ,
y
max
(x, t) M2 .
3
4
0xL, 0tT t
0xL, 0tT x
Dados N, M N, si h = L/N y t = T /M , entonces el maximo error, medido en
norma k k2 cometido por el metodo de Crank-Nicolson (3.11) es menor o igual que
78
M 1 2 M2 2
N + 1T
t +
h . Mas precisamente, si Uin , 0 i N , 0 n M son
3
12
obtenidos con las formulas (3.11), entonces
N
X
1/2
M1 2 M2 2
n 2
max
|u(xi , tn )Ui |
T N +1
t +
h MT N + 1(t2 +h2 ),
0nM
3
12
i=0
U
|
|e
|
Observaci
on 3.9. El termino N1+1 N
=
es
i n
i
i=0
i=0 i
N +1
una aproximacion por la regla del rectangulo de la integral
Z L
1/2
e(x, tn )2 dx
.
0
De esta manera, el teorema 3.8 establece una estimacion del maximo (en t) error en
L2 (0, L).
3.2
2
u 2u
u
=k
+
+ f (x, y; t),
(x, y) , 0 < t < T,
t
x2 y 2
(3.13)
u(x, y; t) = (x, y; t),
(x, y) , 0 t T,
)
.
i,j
j
i
i,j
h2
12 x4
y 4
u(xi , yj ) =
79
Resulta entonces el siguiente PVI para un sistema de ecuaciones diferenciales ordinarias para ui,j , i, j = 0, 1, . . . , N :
ui,j (t) = (xi , yj ; t),
dui,j
ui+1,j + ui,j+1 4ui,j + ui1,j
=k
dt
h2
si i = 0 o i = N o j = 0 o j = N ;
+ ui,j1
+ f (xi , yj , t),
si 0 < i < N y 0 < j < N ;
Ejercicios
3.1. Demostrar el Teorema 3.1.
3.2. Consideremos la ecuacion de difusion
u 2 u
2 = 0,
0 < x < 1, 0 < t < 2,
t
x
u(0, t) = 0, u(L, t) = 0,
0 t 2,
u(x, 0) = sen(x), 0 x 1,
2
u 2 u
2 = 0,
0 < x < 1, 0 < t < 1,
t
x
u(0, t) = 0, u(L, t) = 0,
0 t 1,
(a) Considerar los tres metodos de diferencias finitas estudiados con N = 50. Calcular
el maximo error con t = 1/40, 1/80, 1/160, 1/320, 1/640, 1/1280, 1/2560, 1/5120,
1/10240, y el tiempo de cpu utilizado. Determinar que metodo es mejor para cada
t.
(b) Determinar que metodo y con que parametro t (de los probados) es mejor cuando
se quiere un error menor a 0.01, 0.001, 0.0001.
3.4. Repetir el ejercicio anterior pero en el intervalo temporal 0 t 10.
3.5. Demostrar que cualquiera sea t > 0, los autovalores de (I + k2 tMh )1 (I k2 tMh )
y de (I + k2 tMh )1 tienen modulo menor que uno. Ayuda: seguir los siguientes pasos.
(a) Demostrar que Mh es diagonalizable y que todos sus autovalores son positivos.
(b) Demostrar que los autovectores de Mh coinciden con los de I k2 tMh .
(c) Demostrar que los autovalores de I k2 tMh son 1 k2 t, con autovalor de Mh ,
con el mismo autovector correspondiente.
(d) Demostrar que los autovalores de (I + k2 tMh )1 son (1 + k2 t)1 , con autovalor
de Mh , con el mismo autovector correspondiente.
(e) Demostrar que los autovalores de (I + k2 tMh )1 (I k2 tMh ) son (1 k2 t)/(1 +
k
t), con autovalor de Mh , con el mismo autovector correspondiente.
2
3.6. Demostrar el Teorema 3.7.
3.7. Demostrar el Teorema 3.8.
3.8. Obtener e implementar los metodos de Euler explcito, implcito y de Crank-Nicolson
para el problema de difusion bidimensional.
3.9. Demostrar que el metodo de Euler explcito para difusion bidimensional es estable
kt
1
para = 2 .
h
2
3.10. Demostrar resultados de estabilidad incondicional analogos a los de los Teoremas 3.4 y 3.7 para difusion bidimensional.
3.11. Demostrar resultados de acotacion del error analogos a los de los Teoremas 3.2, 3.6
y 3.8 para difusion bidimensional.
81
Captulo 4
M
etodos directos para sistemas
lineales
Para determinar un spline c
ubico interpolante se debe resolver un sistema lineal cuya
matriz es tridiagonal. En general es de gran tama
no. En problemas de optimizacion
y en discretizaciones de ecuaciones diferenciales surge la necesidad de resolver sistemas
lineales. En particular con matrices de gran tama
no y ralas (sparse), o sea, con pocas
(relativamente) entradas no nulas.
Dada A Rnn no-singular y b Rn , queremos hallar x R tal que Ax = b.
Los metodos de resolucion de sistemas lineales se clasifican en directos e iterativos.
Directos: Son aquellos que llegan a la solucion en un n
umero finito de pasos (en ausencia
de errores de redondeo), el ejemplo mas conocido es el metodo de eliminacion de
Gauss. En general se utilizan para sistemas no muy grandes.
Iterativos: Estos metodos generan una sucesion {xk }kN Rn tal que xk converge a la
solucion x del sistema Ax = b. Algunos ejemplos son el metodo de Jacobi, GaussSeidel, SOR (Sobrerrelajacion sucesiva), Metodo del descenso mas pronunciado,
Gradiente conjugado. Se utilizan para sistemas muy grandes, donde una tolerancia
deseada puede lograrse con pocas iteraciones, que resultan en un costo (mucho)
menor al de resolver el sistema por un metodo directo.
4.1
colj (xy T ) = x yj = yj x.
a11 a12
a21 a22
A = ..
..
.
.
an1 an2
. . . a1n
. . . a2n
..
..
. .
. . . ann
b1
b2
b = ..
.
bn
Ax = b
que escribir
Sabemos de Algebra
Lineal que las siguientes afirmaciones son equivalentes para una
nn
matriz dada A R :
(1) Para todo b Rn , existe x Rn tal que Ax = b.
(2) Si b Rn y existe x Rn tal que Ax = b, entonces tal x es u
nico.
(3) Si Ax = 0 entonces x = 0.
(4) Las columnas de A son linealmente independientes.
(5) Las filas de A son linealmente independientes.
(6) Existe A1 Rnn tal que A A1 = A1 A = I.
(7) det(A) 6= 0.
Observaci
on 4.1. Si A R3030 y det(A) = 1, entonces
det(0.1 A) = (0.1)30 det(A) = 1030 det(A) = 1030 .
Este ejemplo nos muestra que el determinante peque
no no indica si una matriz es casi
singular. El n
umero de condicion da informacion de este tipo, y lo veremos mas adelante.
83
4.2
Definici
on 4.2. Se dice que una matriz L Rnn es triangular inferior si `ij = 0
siempre que i < j. Se dice que una matriz L Rnn es triangular inferior unitaria si
es triangular inferior y ademas `ii = 1, i = 1, 2, . . . , n. Esquematicamente, una matriz
triangular inferior luce de la siguiente forma
`11 0
0
0 ... 0
`21 `22 0
0 ... 0
..
.. . . . .
.
L = ..
.
. ..
.
.
.
.
.
.
..
..
.. 0
..
`n1 `n2 `n3 `n4 . . . `nn
y en la triangular inferior unitaria todas las entradas de la diagonal son unos.
Si L es triangular inferior y quiero resolver el sistema Lx = b, observamos que det(L) =
`11 `22 . . . `nn 6= 0 si y solo si `ii 6= 0 para todo i = 1, 2, . . . , n. Por lo tanto, el sistema
tendra solucion u
nica si todos los elementos de la diagonal son no nulos. Para resolverlo
observamos como luce:
`11 x1
= b1
`21 x1 + `22 x2
= b2
`31 x1 + `32 x2 + `33 x3
= b3
..
.
`n1 x1 + `n2 x2 + + `nn xn = bn .
(4.1)
for i = 1:n
x(i) = x(i) - L(i,1:i-1) * x(1:i-1);
x(i) = x(i) / L(i,i);
end
Aunque no sea inmediato, este sistema tambien puede resolverse accediendo a la
matriz L por columnas, observemos que se puede hacer lo siguiente, a partir de (4.1):
(1) Calcular x1 = b1 /`11 .
(2) Restar `i1 x1 a bi , para i = 2, . . . , n.
(3) Dividir b2 `21 x1 (ya calculado) por `22 , obteniendo x2 .
(4) Restar `i2 x2 a bi , para i = 3, . . . , n.
(5) . . .
Escribamos el codigo matlab que resulta mas claro
function x = triinf_cols(L,b)
% function x = triinf_cols(L,b)
% Resuelve el sistema L x = b
% suponiendo L triangular inferior cuadrada
% con todos los elementos de la diagonal no nulos.
% Solo se utilizan las componentes L_ij con i >= j,
% el resto de la matriz se ignora.
%
% Se accede la matriz L por columnas.
n = length(b);
x = b;
x(1) = x(1) / L(1,1);
for i = 2:n
x(i:n) = x(i:n) - x(i-1) * L(i:n,i-1);
x(i) = x(i) / L(i,i);
end
Conteo de operaciones.
Para conocer la complejidad del algoritmo, y entender acerca del costo computacional
hacemos un conteo de operaciones. Los tres algoritmos presentados realizan el mismo
n
umero de operaciones, las diferentes velocidades dependeran de como se almacenen las
matrices en matlab y que modo de acceso sea mas rapido. Contemos las operaciones de
triinf_cols
86
Momento
antes del for
primera iteracion
segunda iteracion
tercera iteracion
..
.
u
ltima iteracion
total
multiplicaciones
sumas
n1
n2
n3
..
.
n1
n2
n3
..
.
divisiones
1
1
1
1
..
.
1
(n 1)n/2
1
(n 1)n/2
1
n
4.3
Definici
on 4.4. Se dice que una matriz U Rnn es triangular superior si uij = 0
siempre que i > j. Esquematicamente, una matriz triangular superior luce de la siguiente
forma
0
0 u33 u34
...
u3n
.
..
..
U = .
...
...
.
.
0
.
.
.
..
..
..
.
.
u(n1)(n1) u(n1)n
0
0
0 ...
0
unn
La resolucion de sistemas U x = b con U triangular superior es analoga a sistemas
triangulares inferiores, haciendo lo que se conoce como sustitucion hacia atras (backward
substitution). Tambien se puede implementar por filas o por columnas. Queda como
ejercicio.
87
4.4
Matrices llenas. M
etodo de Gauss
(1)
ak1
(0)
filak (A ) = filak (A )
fila1 (A(0) ),
(1)
a11
k = 2, 3, . . . , n.
|{z}
mk1
(1)
b1
(1)
bk
=
=
(0)
b1 ,
(0)
bk
(0)
mk1 b1 ,
k = 2, 3, . . . , n.
ak2
(1)
a22
fila2 (A(1) ),
k = 3, . . . , n.
|{z}
mk2
(2)
(1)
(2)
(1)
(2)
(1)
b 1 = b1 ,
b2 = b2 ,
(1)
bk = bk mk2 b2 ,
k = 3, . . . , n.
k = 1, . . . , j,
(j1)
(j)
(j1)
filak (A ) = filak (A
akj
(j1)
ajj
filaj (A(j1) ),
k = j + 1, . . . , n.
| {z }
mkj
(j)
(j1)
(j)
(j1)
bk = b1
bk = bk
k = 1, . . . , j,
(j1)
mkj b2
k = j + 1, . . . , n.
88
operaciones sobre A
[1d + (n 1)m + (n 1)r]
[1d + (n j)m + (n j)r]
operaciones sobre b
(1m + 1r)
(1m + 1r)
cuantas veces
(n 1)
(n j)
k=1
k=1
k=1
(n 1)n
(n 1)n(2n 1)
2
1
1
2
+2
= n3 n2 n
= n3 .
2
6
3
2
6
3
Total de operaciones al reducir a forma triangular, realizadas sobre el lado derecho b:
=
n1
X
2(n j) = 2
j=1
n1
X
j = (n 1)n = n2 n.
j=1
Hasta aqu, el total de operaciones para reducir a forma triangular un sistema con el
metodo de Gauss es
2
1
1
2
2 3 1 2 1
n n n + n2 n = n3 + n2 n
= n3 .
3
2
6
3
2
6
3
Si sumamos el n
umero de operaciones para la eliminacion hacia atras (n2 ), obtenemos
que para resolver un sistema con el metodo de Gauss, hacen falta
2 3 1 2 7
2
3
7
2
n + n n + n2 = n3 + n2 n
= n3
3
2
6
3
2
6
3
4.5
operaciones.
Factorizaci
on LU
1
0 0 0
m21 1 0 0
Pn
j=1
j=
n(n+1)
2
89
Pn
j=1
j2 =
n(n+1)(2n+1)
6
n3
3
n2
2
+ n3 .
0
m21
1
0
0 0
0
1
0 0
0
0
con g2 = m32 ,
..
.
y G2 = I g2 eT2 .
mn2
A(j) = Gj A(j1) ,
0
..
.
0
con gj =
,
m(j+1)j
.
..
mnj
y Gj = I gj eTj .
1
0
0
m21
1
0
n1
1
=I+
gj eT = m31 m32
..
.
.
..
..
j=1
.
mn1 mn2 mn3
0
0
0
= L.
..
.
1
..
.
Conclusi
on:
(j1)
operaciones.
operaciones.
Observaci
on 4.6. Las matrices L y U se almacenan (en general) en el mismo lugar en
que estaba la matriz original A. Los multiplicadores mij se almacenan en la posicion
(i, j) que es justamente la posicion donde se produce un cero.
La descomposicion LU puede programarse de la siguiente manera en matlab:
Primera version:
function [L,U] = EleU(A)
% function [L,U] = EleU(A)
% descomposicion LU
% L sera triangular inferior unitaria
% U sera triangular superior
% LU = A
n = size(A,1);
L = eye(n);
for j = 1:n
for i = j+1:n
L(i,j) = A(i,j) / A(j,j);
A(i,j) = 0;
A(i,j+1:n) = A(i,j+1:n) - L(i,j)*A(j,j+1:n);
end
end
U = A;
Una version un poco mas eficiente aprovechando las operaciones vectorizadas de
matlab es la siguiente:
91
4.6
Podra suceder que a11 = 0 o que aj,j = 0, en cuyo caso el algoritmo no funciona. Mas
a
un, puede verse que no es posible hallar ` y u11 , u12 , u22 tales que
0 1
1 0 u11 u12
=
.
` 1
1 1
0 u22
Este simple ejemplo muestra que no siempre es posible hallar una factorizacion LU de A,
con L triangular inferior unitaria y U triangular superior.
El siguiente teorema da una condicion suficiente para que el algoritmo visto funcione
y logre la factorizacion LU .
Teorema 4.7. Sea A una matriz de nn. Si A1:k,1:k es no singular, es decir, det(A1:k,1:k ) 6=
0, para todo k = 1, 2, . . . , n 1. Entonces existe descomposicion LU de A. Mas precisamente, existe L triangular inferior unitaria y U triangular superior tales que A = LU .
Ademas, si A es invertible, esta descomposicion LU es u
nica.
(0)
a11 a12 a13 . . .
a1(k+1)
(1)
(1)
(1)
a2(k+1)
0 a22 a23 . . .
(2)
(2)
0 a33 . . .
a3(k+1)
=
0
..
..
..
.
.
.
.
.
.
.
.
.
0
(k)
a(k+1)(k+1)
y por lo tanto
(k)
(k)
como esta cantidad es no nula por hipotesis, resulta que a(k+1)(k+1) 6= 0, que es lo que se
quera demostrar.
Supongamos ahora que A es no singular. Para demostrar la unicidad de la descomposicion LU supongamos que hay matrices L1 , L2 , U1 , U2 , tales que Li es triangular inferior
unitaria y Ui es triangular superior, i = 1, 2, con
L1 U1 = L2 U2 = A.
1
1
1
Luego L1
es
2 L1 = U2 U1 . Como L2 L1 resulta triangular inferior unitaria, y U2 U1
triangular superior, tenemos que
1
L1
2 L1 = U2 U1 = I,
por lo que L1 = L2 y U1 = U2 .
Pivoteo.
Para poder resolver sistemas que no cumplen con las hipotesis del Teorema 4.7 se utiliza el
pivoteo. El pivoteo (parcial) consiste en intercambiar, en el paso j-esimo de la eliminacion
(j1)
de Gauss, la fila j con la fila k, que contiene al elemento de Aj:n,j con maximo valor
absoluto, antes de realizar las operaciones por filas. De esta manera, uno se asegura
que nunca divide por cero, y ademas que divide por el elemento de modulo maximo, de
los posibles pivotes. Esto es beneficioso pues dividir por n
umeros peque
nos aumenta la
propagacion de errores de redondeo.
El algoritmo luce de la siguiente manera:
function [L,U,p] = EleUpiv(A)
% function [L,U,p] = EleUpiv(A)
% descomposicion LU con pivoteo
% L sera triangular inferior unitaria
% U sera triangular superior
2
Esto es cierto por la forma especial de las matrices Gj , pero no es cierto en general; demostrar.
93
Con Pi una matriz de permutacion que se obtiene intercambiando la fila i con una fila
k i y Gi = I gi eTi ,
gi = (0, . . . , 0, m(i+1),i , . . . , mni )T ,
y m`i =
(P i A(i1) )`i
.
(P i A(i1) )ii
n1
=G
n2
2G
1 P A,
...G
donde
k = P n1 . . . P k+1 Gk P k+1 . . . P n1
G
= I P n1 . . . P k+1 gk eTk = I gk eTk .
|
{z
}
gk
4.7
Factorizaci
on de Cholesky. Matrices sdp
4.7.1
Matrices sim
etricas y definidas positivas (sdp)
Definici
on 4.10. Se dice que una matriz A Rnn es simetrica y definida positiva, o
brevemente sdp si
AT = A
xT Ax > 0,
x Rn \ {0}.
Observaci
on 4.11. Vale la pena observar lo siguiente:
xT Ax = (Ax) x. Luego, si A es sdp el coseno del angulo entre Ax y x es > 0, por
lo que el angulo entre x y Ax es agudo. Si pensamos en la transformacion x Ax,
vemos que transforma x en otro vector Ax que apunta en una direccion parecida a
x
Si A es sdp, entonces A es invertible. En efecto, Ax = 0 implica xT Ax = 0, lo que
implica x = 0, por lo que la u
nica solucion del problema homogeneo Ax = 0 es la
trivial.
Si A es sdp, entonces es diagonalizable, con todos sus autovalores reales y positivos.
Es decir, existe U Rnn ortogonal U T U = I con A = U U T y es diagonal con
todos los elementos de la diagonal positivos.
Si R Rmn , entonces RT R es simetrica y semi-definida positiva, pues xT RT Rx =
(Rx)T (Rx) = |Rx|2 0 para todo x Rn .
Si las n columnas de R son linealmente independientes, entonces RT R es sdp (sera
necesario que n m).
aT
, con R, a Rn1 y A R(n1)(n1) ,
Si A es sdp y escribimos A =
a A
entonces > 0 y A es sdp. En otras palabras, si A Rnn es sdp, entonces a11 y
A2:n+1,2:n+1 es sdp.
Si A es sdp, aii = eTi Aei > 0, i = 1, 2, . . . , n. Es decir, si A es sdp, entonces todos
los elementos de la diagonal son positivos.
Sabemos que toda matriz se puede escribir como suma de una simetrica mas una
antisimetrica:
A AT
A + AT
+
.
A=
2 }
2 }
| {z
| {z
parte sim
etrica de A
parte antisim
etrica de A
A AT
2
x = xT
A AT
2
xT
A AT
2
x = 0.
En consecuencia
T
x Ax = x
A + AT
2
x+x
A AT
2
x=x
A + AT
2
x.
Por lo tanto, si una matriz A cumple xT Ax > 0 para todo x Rn \ {0}, luego su
T
parte simetrica A+A
es sdp.
2
Teorema 4.12. Si A Rnn es sdp, entonces existe R triangular superior (de n n)
tal que A = RT R.
Observaci
on 4.13. Vale la pena observar lo siguiente:
96
rT
0T rT
aT
,
=
=
A=
r RT R + rrT
r RT 0 R
a A
con = a11 , R, r Rn1 y A , R R(n1)(n1) , con R triangular superior. Para
que valga la igualdad se debera cumplir:
1. 2 = ;
2. r = a;
3. RT R + rrT = A .
Para que se cumplan las dos primeras, basta con elegir = > 0, (recordemos que
= a11 > 0) y r = 1 r. Para que se cumpla la tercera, observemos que debemos hallar
R R(n1)(n1) , triangular superior, tal que
RT R = A rrT .
Si podemos demostrar que A rrT es sdp, el argumento se sigue por induccion.
Veamos que A rrT es sdp. Queremos ver que dado y Rn1 \ {0}, se cumple
T
y (A rrT )y > 0, y para esto veremos si
es cierto que existe x Rn \ {0} tal que
T
T
T
x Ax = y
= y
a A y
a + A y
= 2 + aT y + y T a + y T A y = 2 + 2aT y + y T A y.
Debemos elegir R para que este u
ltimo termino sea igual a
y T (A rrT )y = y T A y y T rrT y = y T A y (rT y)2 .
As, nos queda planteada la siguiente ecuacion para :
0 = 2 + 2aT y + y T A y [y T A y (rT y)2 ]
= 2 2 + 2aT y + (rT y)2 ] = 2 2 + 2rT y + (rT y)2 ]
= ( + rT y)2 .
97
Por
tanto,
tomando = rT y/ se cumple esa ecuacion. Finalmente, tomando x =
lo
rT y/
se cumple que xT Ax = y T (A rrT )y > 0 porque A es sdp.
y
Por lo tanto, A rrT es sdp, y el teorema queda demostrado por induccion.
Observaci
on 4.14. Dada A una matriz sdp, existe una u
nica matriz R triangular superior, con elementos de la diagonal positivos, tal que A = RT R.
Observaci
on 4.15. Si D es la matriz diagonal que en la diagonal tiene los mismos
elementos que R, entonces
T 1
DR = LU,
A = RT R = R
D } |{z}
| {z
L
4.8
Factorizaci
on QR
4.8.1
Mnimos cuadrados
Consideremos la situacion en que se quiere fitear una lista dada de puntos (Xi , Yi ), i =
1, 2, . . . , n, por una funcion cuadratica. Lo mas usual es hacer lo que se conoce por
mnimos cuadrados, que consiste en hallar los parametros , , que minimizan el
funcional
n
X
J(, , ) =
[(Xi2 + Xi + ) Yi ]2 .
i=1
Si definimos
X12 X1
X 2 X2
2
A = ..
..
.
.
Xn2 Xn
1
1
.. ,
.
1
Y1
Y2
b = .. ,
.
Yn
x = ,
El problema consiste en minimizar |Ax b|2 , el cuadrado de la norma eucldea del vector
Ax b.
Consideremos entonces el problema de minimizar |Ax b| para A Rnm , b Rn ,
con n m.
Si recordamos que Ax es una combinacion lineal de las columnas de A, el problema
equivale a hallar el elemento del espacio columna de A que esta mas cerca de b. Dado
que usamos la norma eucldea, esto equivale a hallar x Rm tal que Ax b es ortogonal
a las columnas de A. Es decir
T
col
fila1 (AT )(Ax b) = 0
1 (A) (Ax b) = 0
.
.
T
T
colm (A) (Ax b) = 0
filam (A )(Ax b) = 0
Llegamos as a que para minimizar |Ax b| debemos resolver las ecuaciones normales
AT Ax = AT b.
99
4.8.2
Matrices ortogonales
Definici
on 4.17. Se dice que una matriz Q Rnm es ortogonal si QT Q = I.
Observaci
on 4.18. Vale la pena observar lo siguiente:
Si Q es ortogonal, la entrada ij de QT Q es ij , por lo que
ij = (QT Q)ij = filai (QT ) colj (Q) = coli (Q)T colj (Q) = coli (Q) colj (Q).
Por lo tanto, las columnas de Q forman un conjunto ortonormal, y en consecuencia
las columnas de Q son linealmente independientes. Como son m columnas ll.ii. en
Rn necesariamente n m.
Si P y Q son matrices ortogonales y el n
umero de columnas de P coincide con el
n
umero de filas de Q, entonces P Q es ortogonal, pues
(P Q)T P Q = QT P T P Q = QT IQ = QT Q = I.
Si Q es ortogonal, entonces |Qx| = |x| y (Qx) (Qy) = x y. En efecto
(Qx) (Qy) = (Qx)T (Qy) = xT QT Qy = xT Iy = xT y.
Recordemos que queremos encontrar una manera de minimizar |Axb| para A Rnm
y b Rn con n m. La idea es hallar una manera mejor que la de recurrir a las ecuaciones
normales.
Observemos el siguiente razonamiento. Por un lado, si Q Rnn es ortogonal, el
problema equivale a minimizar |QT (Ax b)|2 (como Q es cuadrada, QT tambien es
ortogonal).
Supongamos que es posible encontrar Q Rnn ortogonal tal que
R1
mm
T
Q A=R=
0 (n m) m
con R1 Rmm triangular superior. Luego,
|QT (Ax b)|2 = |QT Ax QT b|2 = |Rx c|2 ,
c1
R1 x
T
m
nm
donde c = Q b =
con c1 R y C2 R
. Ademas, Rx =
. Por lo tanto,
c2
0
queremos minimizar
|QT (Ax b)|2 = |Rx c|2 = |R1 x c1 |2 + |c2 |2 .
El mnimo se logra tomando x la solucion del sistema triangular R1 x = c1 y el mnimo
da |c2 |2 .
100
Conclusi
on:
Dada A Rnm , (n m), b Rn , si existe Q Rnn ortogonal tal que
R1
Q A=R=
0
T
4.8.3
Ortogonalizaci
on de Gram-Schmidt
normalizamos
restamos a v2 la componente en la direccion de u1 ,
(proyectamos en el subespacio ortogonal a u1 )
u2 = w2 /kw2 k,
normalizamos
w3 = v3 (v3 u1 )u1 (v3 u2 )u2 , restamos a v3 las componente en la direccion de u1 y u2 ,
(proyectamos en el subespacio ortogonal a u1 y u2 )
u3 = w3 /kw3 k,
normalizamos
..
.
De esta manera, resulta que ui es una combinacion lineal de v1 , . . . , vi , y el factor de vi
es no nulo. As, resulta que
x x x ... x
0 x x . . . x
v1 v2 . . . vm = u1 u2 . . . um 0 0 x . . . x,
|
{z
} |
{z
} .. .. . . . . ..
. .
.
. .
A
Q1
0 0 ... 0
{z
R1
4.8.4
Matrices de Householder
2.
Observaci
on 4.24. Vale la pena observar lo siguiente, para una matriz H = I uuT de
Householder:
H es simetrica: H T = H (inmediato)
H es ortogonal. En efecto
H T H = HH = (I uuT )(I uuT ) = I 2uuT + u |{z}
uT u uT = I 2uuT + 2uuT = I.
|u|2
Observar lo siguiente:
HX = (I uuT )X = X uuT X = X u(uT X).
Si hacemos primero uT X nos lleva 2nk operaciones, luego multiplicar u por lo
obtenido u(uT X) nos lleva nk operaciones mas. Finamente, hacer X menos
ese resultado nos lleva nk operaciones, totalizando 4nk operaciones!
La idea es que la matriz Q sea una composicion o producto de matrices de Householder.
Veamos como puede construirse una transformacion de Householder con ciertas propiedades.
Teorema 4.25. Sea x un vector unitario (|x| = 1) y definamos
u=
1
(x e1 ),
1 x1
1 . . .
0 . . .
HA = ..
..
.. , o col1 (HA) = e1 ,
.
.
.
0 ...
donde representa n
umeros no necesariamente nulos.
103
2:
1
(x e1 )T (x e1 )
1 x1
xT x 2eT1 x + eT1 e1
1
1 x1
1
1 x1
=
(1 2x1 + 1) = 2
= 2.
1 x1
1 x1
=
1
1
1 x1
(x e1 )T x =
(xT x eT1 x) =
= 1 x1 .
1 x1
1 x1
1 x1
Por lo tanto
Hx = x u(uT x) = x
1
(x e1 ) = x (x e1 ) = e1 .
1 x1 u = x 1 x1
1 x1
Observaci
on 4.27. Conviene elegir el signo de manera que 1 x1 sea lo mas grande
posible, pues dividira otros n
umeros. Observemos que |x| = 1 implica 1 x1 1, y
que:
si x1 esta cerca de 1 = 1 x1 estara cerca de cero, y
si x1 esta cerca de 1 = 1 + x1 estara cerca de cero.
Para evitar inconvenientes, y para que los divisores que aparezcan sean lo mas grandes
posibles, elegiremos el signo positivo cuando x1 > 0 y negativo cuando x1 < 0.
Observaci
on 4.28. Si |x| =
6 1, entonces tomamos
u= q
1
1
x1
|x|
x
e1 ),
|x|
1
1+
x1
|x|
x
+ e1 ),
|x|
H = I uuT .
|x|
0
HA = .. =: R,
= A = |{z}
H R.
.
Q
0
Supongamos valido el teorema para m (y todo n m) y demostremoslo para m + 1.
Sea A Rn(m+1) con columnas linealmente independientes. Sea x = col1 (A) 6= 0,
tomemos = 1 si x1 0, o = 1 si x1 < 0 y
u= q
1
1+
x1
|x|
x
+ e1 ),
|x|
H = I uuT .
Luego
|x| rT
HA =
,
0
A
con r Rm y A R(n1)m .
linealmente
ortogonal
independientes. Por la hipotesis inductiva, existe Q R
= R1 R(n1)(m1) con R
1 R(m1)(m1) triangular superior tal que A = Q
R.
R
0
Luego
|x| rT
1 0T |x| rT
HA =
,
R
= 0 Q
0
Q
0
R
y por lo tanto
1 0T |x| rT
A=H
.
0 Q
0
R
| {z } |
{z
}
Q
Implementaci
on.
Para implementar el algoritmo seguiremos los pasos de la demostracion del teorema.
Dada A Rnm (con sus columnas linealmente independientes), hacemos
x = col1 (A),
= sgn(x1 ),
1
x
u1 = q
(
+ e1 ),
x1 |x|
1 + |x|
105
H1 = I uuT .
1 r1T
H1 A =
,
0 A1
Y tambien
r1T
= HA:,2:m .
A1
con 1 = |x|, y
1 r1T
.
A = H1
0 A1
Ahora hacemos
x = col1 (A1 ) Rn1 ,
= sgn(x1 ),
1
x
u2 = q
+ e1 ),
(
x1 |x|
1 + |x|
H2 = I u2 uT2 R(n1)(n1) .
Entonces
2 r2T
H2 A1 =
,
0 A2
Y tambien
r2T
= H2 (A1 ):,2:m1 .
A2
con 2 = |x|, y
2 r2T
A1 = H2
,
0 A2
por lo que
A = H1
r1T
1
0 A1
T
1
r1T
1
T
r1 T
1 0
0 2 r2T .
r = H1
= H1
0 H2
0 H2 2 2
0 A2
0 0 A2
Ahora hacemos
x = col1 (A2 ) Rn2 ,
= sgn(x1 ),
1
x
(
+ e1 ),
u3 = q
x1 |x|
1 + |x|
H3 = I u3 uT3 R(n2)(n2) .
Entonces
3 r3T
H3 A2 =
,
0 A3
Y tambien
r3T
= H3 (A2 ):,2:m2 .
A3
con 3 = |x|, y
3 r3T
A2 = H3
,
0 A3
por lo que
1
r1T
T
1 0T
2
r2 T
A = H1
0 H2 0
r
0 H3 3 3
0 A3
1 0
T
= H1 1 0 0 1
0 H2
0
As sucesivamente . . . .
El algoritmo para matlab luce as:
106
1
r1T
2
r2T
0
0
3 r3T
H3
0
0 A3
[n, m] = size(A);
R = A;
U = zeros(n, m);
for i = 1:m
normx = norm(R(i:n, i));
u = R(i:n, i)/normx;
if (u(1) >= 0)
sg = 1;
else
sg = -1;
end
u(1) = u(1) + sg;
u = u / sqrt(1+sg*R(i,i)/normx);
U(1:n-i+1, i) = u;
R(i,i) = -sg*normx;
R(i+1:n,i) = 0;
R(i:n,i+1:m) = R(i:n,i+1:m) - u*(u*R(i:n,i+1:m));
end
Esta funcion se complementa con qrsolve, que utiliza la descomposicion QR dada
por qrhouse para resolver un problema de mnimos cuadrados.
107
108
Ejercicios
4.1. Demostrar las siguientes afirmaciones:
(a) Si A y B son matrices triangulares inferiores (unitarias) entonces AB es triangular
inferior (unitaria).
(b) Si A es triangular inferior unitaria entonces A es invertible y A1 es triangular inferior
unitaria.
4.2. Utilizando las funciones tic y toc de MatLab, comparar los tiempos de ejecucion
de las funciones triinf, triinf_filas y triinf_cols para la resolucion de sistemas
lineales con matrices triangulares inferiores.
4.3. Considerar la funcion triinf_cols para resolver sistemas triangulares inferiores,
y basandose en esto, crear la funcion triinfM que resuelva varios sistemas simultaneamente. Mas precisamente, si L es una matriz triangular inferior y b es una matriz cuyas
columnas representan varios terminos independientes, entonces x=triinfM(L,b) resuelve
los distintos sistemas donde la j-esima columna de x contiene la solucion del sistema cuyo
lado derecho es la j-esima columna de b.
4.4. Basandose en la funcion triinf_cols, crear la funcion trisup para resolver sistemas
lineales de matrices triangulares superiores.
4.5. Crear la funcion [l,u] = TridiLU(d,dmenos,dmas) que calcule la factorizacion LU
sin pivoteo de una matriz tridiagonal A donde
A = diag(dmenos(2:n),-1) + diag(d) + diag(dmas(1:n-1),1)
Los vectores l y u son tales que
L = diag(ones(n,1)) + diag(l(2:n),-1)
U = diag(u) + diag(dmas(1:n-1),1)
Ademas:
(a) Realizar el conteo de operaciones realizadas por TridiLU y comparar con la cantidad
de operaciones realizadas por la funcion EleU desarrollada en clase.
(b) Crear las funciones TriInfBidi y TriSupBidi para resolver sistemas triangulares
bidiagonales, donde los argumentos de entrada sean vectores.
(c) Considerar un sistema lineal asociado a la matriz A de N N (N = 100, 1000, 10000)
donde
2 1
1 2 1
1
2
1
A=
.
.
.
1 2 1
1 2
109
Comparar los tiempos necesarios para hallar la solucion del sistema utilizando las funciones EleU, triinf_cols y trisup por un lado, y TridiLU, TriInfBidi y TriSupBidi
por otro lado.
4.6. Sean gj = (0 . . . 0 mj+1,j . . . mn,j )T para j = 1, 2, . . . , n 1 vectores de Gauss.
Sean Gj := I gj eTj las transformaciones de Gauss asociadas a gj , j = 1, 2, . . . , n 1.
Demostrar que:
T
(a) G1
j = I + gj ej , para j = 1, 2, . . . , n 1.
Pn1 T
1
1
(b) G1
1 G2 . . . Gn1 = I +
j=1 gj ej .
0 1
4.7. Demostrar que la matriz A =
no tiene una factorizacion LU.
1 1
1
1+
4.8. Considerar A =
yb=
.
1 1
2
Explicar que sucede (Ayuda: pensar que ocurre con los errores de redondeo al hacer
la eliminacion de Gauss.)
4.9. Resolver el sistema del ejercicio anterior utilizando la funcion EleUpiv en vez de
EleU. Realizar la misma tabla y explicar que ocurre.
4.10. Investigar como funciona la funcion lu de MatLab. Comparar con la funcion
EleUpiv.
4.11. Demostrar que si una matriz A Rnn es estrictamente diagonalmente dominante
(e.d.d), es decir que sus elementos aij verifican
|aii | >
n
X
|aij |,
i = 1, 2, . . . , n,
j=1
j 6= i
entonces resulta ser no singular. (Sugerencia: Probar que Ax = 0 x = 0)
4.12. Demostrar que si A es e.d.d., el sistema Ax = b se puede resolver por Eliminacion
de Gauss sin intercambios de renglones.
110
4.13. Una matriz cuadrada A Rnn se dice simetrica y definida positiva (spd) si AT = A
y satisface xT Ax > 0 para todo vector x Rn , x 6= 0. Decimos que es semi-definida
positiva si xT Ax 0 para todo x Rn . Demostrar:
(a) Si R Rmn , entonces RT R es simetrica y semi-definida positiva.
(b) Si las columnas de R Rmn son linealmente independientes, entonces RT R es spd.
(c) Si A es spd, entonces
(i) A es invertible (o no singular).
(ii) Todos los autovalores de A son positivos.
(iii) Los elementos de la diagonal de A son positivos.
(iv) a2ij < aii ajj para cada i 6= j.
(v) max1i,jn |aij | max1in |aii |.
(d) Si A es spd de orden n y si la escribimos de la forma
aT
A=
T
a
A
con R y A cuadrada de orden n 1, entonces > 0 y A es spd.
4.14. Programar una version recursiva de la factorizacion de Cholesky. Comparar el
funcionamiento de esta con el de la funcion cholesky dada en clase para matrices de
diferentes ordenes de la forma
2 1
1
2 1
0
1
2 1
A=
.
.
.
.
.
.
.
.
.
.
0
1
2 1
1
2
4.15. Realizar una funcion en MATLAB de nombre MinCuad(A,b) que resuelva las ecuaciones normales correspondientes al sistema Ax = b. Que pasa si para un sistema rectangular con mas filas que columnas escribimos A\b en MATLAB? Verificar y comparar el
resultado arrojado por esta u
ltima formula y el obtenido por la funcion MinCuad(A,b).
Utilizando la funcion help de MATLAB indagar el funcionamiento del smbolo \ y de la
funcion pinv e informar brevemente.
4.16. Supongamos que el precio de una casa depende principalmente de dos variables:
su edad (x1 ) y el area de su superficie cubierta (x2 ) en metros cuadrados. Se propone el
modelo lineal
y = 0 + 1 x1 + 2 x2 .
Se observaron cinco casas seleccionadas aleatoriamente del mercado y se obtuvieron los
siguientes datos:
111
Precio en
miles (y)
50
40
52
47
65
Edad en
a
nos (x1 )
1
5
5
10
20
Superficie cubierta
en m2 100 (x2 )
1
1
2
2
3
Captulo 5
M
etodos iterativos para sistemas
lineales
En este captulo describiremos algunos metodos iterativos para sistemas lineales. Los
primeros se denominan estacionarios y consisten en una iteracion de la forma xk+1 =
M xk + c, con M y c fijos. Los u
ltimos son no estacionarios y estan basados en metodos
de descenso, que sirven para matrices sdp.
5.1
5.1.1
x X.
Si el espacio es de dimension finita, entonces todas las normas son equivalentes. Esto
puede demostrarse viendo que cualquier norma es equivalente a la norma uno, que, dada
una base {v1 , v2 , . . . , vn } de X se define como
kvk1 =
n
X
|xi |,
si v =
i=1
n
X
i=1
113
xi vi .
si p = .
1in
n
X
|xi |,
kxk2 =
i=1
n
X
!1/2
|xi |2
i=1
1in
Otro ejemplo de norma muy utilizada es la norma generada por una matriz sdp A.
Dada una matriz A Rnn simetrica y definida positiva, la misma genera el producto
escalar
(x, y)A = xT Ay,
y este a su vez genera una norma
1/2
5.1.2
Normas de matrices
En esta seccion hablaremos sobre las normas en el espacio de las matrices. Prestaremos
especial atencion a las llamadas normas inducidas, que se definen como sigue.
Definici
on 5.3. Dada una norma k k del espacio de vectores Rn , se define la norma
inducida por esta como
kAk = maxn
xR
x6=0
kAxk
,
kxk
A Rnn .
La norma inducida se denota con el mismo smbolo de la norma que la induce, as, por
ejemplo
Pn
kAxk1
i=1 |(Ax)i |
kAk1 = maxn
= maxn P
,
n
xR
xR
kxk1
|xi |
i=1
x6=0
x6=0
P
1/2
( ni=1 |(Ax)i |2 )
kAxk2
kAk2 = maxn
= maxn Pn
,
1/2
xR
xR
kxk2
( i=1 |xi |2 )
x6=0
x6=0
kAk = maxn
xR
x6=0
kAxk
max1in |(Ax)i |
= maxn
.
xR
kxk
max1in |xi |
x6=0
114
x6=0
Observaci
on 5.5. Utilizando la homogeneidad de la norma puede demostrarse que
kAk = maxn
xR
0<kxk1
kAxk
= maxn kAxk = maxn kAxk,
xR
xR
kxk
0<kxk1
kxk=1
1jn
kAk = max
1in
n
X
i=1
n
X
j=1
(A) = kAk2 .
Entonces T es de la forma
1
0
T = ...
0
0
t12 t13 . . .
t1n
2 t23 . . .
t2n
.. .
.. ..
..
.
.
.
.
. . . 0 n1 t(n1)n
... 0
0
n
116
z 0 0
... 0
0 z 2 0
... 0
.
.
2
n
.
.
.
.
.
.
.
.
Dz = diag(z, z , . . . , z ) = .
.
.
.
.
n1
0 0 . . . z
0
0 0 ...
0
zn
As,
z1 zt12 zt13
...
zt1n
0 z 2 2 z 2 t23
...
z 2 t2n
..
.
T
.
.
.
.
.
.
.
Dz U AU = Dz T = .
,
.
.
.
.
n1
n1
0
...
0
z n1 z t(n1)n
0
...
0
0
z n n
y
Dz U AU T Dz1 = Dz T Dz1
..
..
..
..
= ...
,
.
.
.
.
0
...
0
n1 z 1 t(n1)n
0
...
0
0
n
1jn
j1
X
z ij |tij | < ,
i=1
y entonces
kDz U AU T Dz1 k1 = max |j | +
1jn
j1
X
i=1
Faltara ver que kDz U AU T Dz1 k1 es una norma inducida de A. Definimos entonces la
norma kxk = kDz U xk1 para x Rn (que resulta una norma, verificar), y observemos que
kAk = maxn
xR
x6=0
kDz U Axk1
kDz U A(Dz U )1 yk1
kAxk
= maxn
= maxn
= kDz U AU T Dz1 k1 .
xR k Dz U x k1
yR
kxk
kyk1
| {z }
x6=0
y6=0
y
117
k N0 .
cuando k .
cuando k .
Ak x = k x.
As,
kAk xk = ||k kxk
para cualquier norma k k de Rn . Por (4), kAk xk 0 y por ende ||k kxk 0. Como
x es un autovector, es no nulo, y por lo tanto ||k 0 cuando k . Por lo tanto
|| < 1. Como (A) era arbitrario, resulta (A) = max(A) || < 1.
Teorema 5.11. Sea A Rnn . Entonces, cualquiera sea la norma inducida k k, resulta
(A) = lim kAk k1/k .
k
Demostracion. Veamos primero que (A) kAk k1/k . Sea (A) y sea x un autovector
asociado a . Entonces
Ax = x
=
||k =
Ak x = k x
kAk xk
kAk k
kxk
|| kAk k1/k
Veamos ahora que el lmite de kAk k1/k es (A). Sea > 0 y definimos
A =
1
A
(A) +
=
(A)
1
(A)
(A) =
< 1.
(A) +
(A) +
Por el Teorema anterior, lim kAk k = 0 y por lo tanto, existe k0 N tal que
k
kAk k =
kAk k
< 1,
((A) + )k
k k0 .
k k0 .
Demostraci
on del Teorema 5.8 de descomposici
on de Schur.
Demostracion del Teorema 5.8. Haremos la demostracion por induccion sobre el orden n
de la matriz. Si n = 1, entonces A = [a11 ], 1 = a11 y el teorema es valido con T = [a11 ]
y U = [1].
Supongamos que la afirmacion del teorema es valida para n 1 con n > 1 y demostremosla para n.
Sean 1 , 2 , . . . , n los autovalores de A y sea x un autovector correspondiente a 1 con
kxk22 = xT x = 1 y x1 0; notemos que si 1 es complejo, entonces algunas componentes
de x pueden ser complejas, en ese caso, si x1 no fuera un n
umero real no-negativo,
dividimos todas las componentes de x por x1 y luego lo normalizamos. Utilizaremos la
transformacion de Householder
H = I u
uT ,
con u =
1
(x + e1 ),
1 + x1
y Hx = e1 ,
He1 = x.
T = HAH y
Entonces HAH
T ) = HAHe1 = HAx = 1 Hx = 1 e1 .
col1 (HAH
Es decir,
1 v T
T
HAH =
,
0 A
con v Rn1
y A R(n1)(n1) .
Ademas,
(A)
T)
(HAH
= 1 o (A),
T ) = ( 1 ) det(I A).
Por lo tanto, (A)
= {2 , . . . , n }.
pues det(I HAH
Por la hipotesis inductiva, existe U unitaria (de orden n 1) tal que
U AU T = T,
y luego
Es decir, U T TU = A,
T
1
vT
1 0T
1 U T vT 1 0
T
HAH =
=
,
0 U
0 U T TU
0 U T
0
T
y finalmente
1 0T
T
HAH
0 U
| {z }
1 0T
1 vT
=
.
0 T
0 U T
| {z } | {z }
T
U
119
5.1.3
N
umero de condici
on y error relativo
si b = A
x,
kbbk
.
kbk
kx
xk
kxk
Observemos lo siguiente
k
x xk = kA1b A1 bk kA1 kkb bk,
Ademas,
kAxk = kbk
kbk kAkkxk.
Luego,
kb bk
k
x xk
kAkkA1 k
.
kxk
kbk
(5.1)
Analogamente
kb bk = kA
x Axk kAkk
x xk,
y
kxk = kA1 bk kA1 kkbk.
Por lo tanto
1
k
x xk
kb bk
.
kAkkA1 k kbk
kxk
De (5.1)(5.2) obtenemos que
1
kb bk
k
x xk
1 kb bk
kAkkA
k
.
kAkkA1 k kbk
kxk
kbk
(5.2)
(5.3)
Definici
on 5.12. Dada una norma inducida k k en el espacio de las matrices de n n,
se define el n
umero de condicion para esa norma como
(A) = kAkkA1 k,
A Rnn .
(A)
,
(A) kbk
kxk
kbk
para b = A
x.
120
calculable
1
kA1 k = (A).
||
1
min
121
5.2
M
etodos iterativos estacionarios
Queremos dise
nar metodos iterativos para resolver el problema Ax = b con A Rnn no
singular b Rn dados.
M
etodo de Richardson.
Una primera idea surge de observar que, si 6= 0,
Ax = b
x = x (Ax b)
x = (I A)x + b,
para alg
un n
umero R. A partir de esta igualdad podemos definir la iteracion
xk+1 =
(I A)
| {z }
xk + b,
k = 0, 1, 2, . . . ,
matriz de iteraci
on
Ax = b
M
etodo de Gauss-Seidel.
Si miramos el metodo de Jacobi, y pensamos en una implementacion secuencial donde
se calcula primero x1k+1 , luego x2k+1 , y as sucesivamente, uno podra pensar que si sabe
que el metodo converge, entonces x1k+1 es mejor que x1k , y entonces proponer que para
calcular x2k+1 se utilice x1k+1 en su lugar. Si la misma idea se aplica para el calculo de
x3k+1 , y los que siguen, resulta el metodo de Gauss-Seidel:
x1k+1 = b1 (a12 x2k + + a1n xnk ) /a11
x2k+1 = b2 (a21 x1k+1 ) (a23 x3k + + a2n xnk ) /a22
x3k+1 = b3 (a31 x1k+1 + a32 x2k+1 ) (a34 x4k + + a3n xnk ) /a33 .
..
.
n1
xnk+1 = bn (an1 x1k+1 + an2 x2k+1 + + an(n1) xk+1
) /ann
Si descomponemos A = L + D + U como antes, esta iteracion puede verse en forma
matricial como
xk+1 = (L + D)1 U xk + (L + D)1 b,
|
{z
}
matriz de iteraci
on
M
etodo de Sobrerrelajaci
on Sucesiva (SOR).
Dado un n
umero R \ {0}, consideramos la siguiente particion de A:
1
1
A = ( D + L) + (
D + U ),
con A = L + D + U como antes. Esto nos conduce al metodo de SOR que consiste en
1
1
xk+1 = ( D + L)1 [b (
D + U )xk ]
1
1
1
= ( D + L)1 (
D + U ) xk + ( D + L)1 b.
|
{z
}
matriz de iteraci
on
k = 0, 1, . . . ,
Demostracion. (): Si (M ) < 1 entonces existe una norma inducida k k tal que
kM k < 1. Veamos que I M es invertible para concluir que existe u
nica solucion de
x = M x + c y luego demostrar que xk converge a x.
Observemos que como kM k < 1 entonces
N
X
N
X
1
< ,
1 kM k
k=0
k=0
k=0
P
P
k
k
y entonces
k=0 M converge absolutamente. Definimos N =
k=0 M y vemos que
k
kM k
kM k
N (I M ) = N N M =
Mk
k=0
kM kk =
M kM =
k=0
Mk
k=0
M k = I.
k=1
(I M )x = c
tiene solucion u
nica que llamamos x. Veamos que cualquiera sea x0 Rn , si definimos
xk+1 = M xk + c,
k = 0, 1, 2, . . . ,
cuando k ,
cualquiera sea x0 . Esto implica que M k y 0 para todo y Rn y por el Teorema 5.10
resulta (M ) < 1.
Observaci
on 5.19. Notemos que por el Teorema 5.10, la condicion (M ) < 1 es equivalente a que exista una norma inducida k k tal que kM k < 1.
Observaci
on 5.20. La norma kM k < 1 da tambien una nocion de la reduccion del error
en cada iteracion, pues
kx xk+1 k kM kkx xk k,
k = 0, 1, 2, . . . .
5.2.1
Convergencia del m
etodo de Jacobi
La convergencia del metodo de Jacobi esta garantizada para matrices estrictamente diagonalmente dominantes.
Definici
on 5.21. Una matriz A Rnn se dice estrictamente diagonalmente dominante
(edd) si
X
|aii | >
|aij |,
para todo i = 1, 2, . . . , n.
j6=i
k = 0, 1, . . . ,
converge a la u
nica solucion de Ax = b a partir de cualquier iteracion inicial x0 .
Ademas,
kx xk+1 k J kx xk k , k = 0, 1, 2, . . . ,
P
con J = max1in
|aij |
,
|aii |
j6=i
MJ
y observemos que
a21
a22
.
1
.
MJ = D (L + U ) =
.
..
.
an1
ann
a12
a11
0
...
a13
a11
a23
a22
...
..
.
... ...
a1n
a11
a2n
a22
...
...
...
..
.
an(n1)
ann
..
.
,
o mas precisamente
(MJ )ii = 0,
aij
,
aii
si i 6= j.
X |aij |
(MJ )ij =
1in
n
X
j=1
1in
j6=i
|aii |
= max
1in
|aij |
< 1,
|aii |
j6=i
xk , i = 1, 2, . . . , n,
xik+1 =
aii
a
ii
j6=i
y claramente la solucion de Ax = b satisface
xi =
X aij
bi
x,
aii
aii
j6=i
Luego
xik+1 xi =
| {z }
X aij
X |aij |
X |aij |
eik+1
j6=i
i = 1, 2, . . . , n.
(xjk xj ),
aii | {z }
i = 1, 2, . . . , n,
ejk
y por lo tanto
|eik+1 |
j6=i
|aii |
|ejk |
j6=i
P
Si definimos J = max1in
|aij |
|aii |
j6=i
|aii |
kek k
max
1in
X |aij |
j6=i
!
kek k .
|aii |
resulta
kek+1 k J kek k ,
y J < 1 por ser A edd.
5.2.2
Convergencia del m
etodo de Gauss-Seidel
k = 0, 1, 2, . . . .
i
, con 1 = 0, i =
Mas a
un, GS = max1in 1
i
P |aij |
j>i |aii | , j = 1, 2, . . . , n 1, n = 0.
|aij |
j<i |aii | ,
i = 2, 3, . . . , n, i =
126
o bien
(L + D)xk+1 = b U xk .
Ademas la solucion exacta satisface (L + D)x = b U x. Luego
D(xk+1 x) = L(xk+1 x) U (xk x),
y definiendo ek = xk x tenemos que
ek+1 = D1 Lek+1 D1 U ek .
Para i = 1, 2, . . . , n
eik+1 = filai (D1 L)ek+1 filai (D1 U )ek ,
y entonces
|eik+1 | k filai (D1 L)k1 kek+1 k + k filai (D1 U )k1 kek k = i kek+1 k + i kek k .
Puesto que A es edd, resulta i < 1 y i < 1. Dado k, sea i0 tal que kek+1 k = |eik+1 |,
entonces
kek+1 k (1 i0 ) i0 kek k ,
=
kek+1 k
i
i0
kek k .
kek k max
1in 1 i
1 i0
|
{z
}
GS
Para asegurar que el algoritmo converge, y finalizar la demostracion del teorema, falta
i
i
< 1, i = 1, 2, . . . , n. Veremos que
< i + i < 1. La u
ltima
ver que
1 i
1 i
desigualdad vale por el teorema anterior de convergencia del metodo de Jacobi. Para ver
la primera, observemos que
i + i
i
i i2 + i i i i
i
=
=
(1 i i ) 0.
{z
}
1 i
1 i
1 i |
>0
Observaci
on 5.24. Del u
ltimo paso de la demostracion anterior concluimos que para
matrices edd,
i
J = max (i + i ) max
= GS ,
1in
1in 1 i
y por lo tanto, para este tipo de matrices, el metodo de Gauss-Seidel funciona mejor o
igual al de Jacobi.
127
5.2.3
Convergencia del m
etodo SOR
{z
}
|
MSOR
con x0 dado.
Para estudiar la convergencia de este metodo, vemos primero el siguiente teorema:
Teorema 5.25. Sea A Rnn sdp. Si A = A1 + A2 con A1 invertible y tal que AT1 A2
es sdp, entonces (A1
1 A2 ) < 1.
Demostracion. Puesto que A es spd, sabemos que kxkA = (xT Ax)1/2 es una norma en
Rn , y denotemos tambien con k kA a la norma inducida por esta en Rnn . Veremos que
1
kA1
1 A2 kA = max kA1 A2 xkA < 1,
(5.4)
kxkA =1
y por lo tanto
2
2
T
T
T
T
T
kA1
1 A2 xkA = ky xkA = (y x) A(y x) = y Ay x Ay y Ax + x Ax.
(5.5)
1
Como A es simetrica, xT Ay = y T Ax y como y = A1
1 Ax, resulta que x = A A1 y, por lo
que
xT Ay = y T Ax = y T A(A1 A1 y) = y T A1 y = y T AT1 y.
Reemplazando esto u
ltimo en (5.5), resulta
2
T
T
T
T
kA1
1 A2 xkA = y Ay 2y (A1 + A1 )y + x Ax
= xT Ax + y T (A A1 AT1 )y = xT Ax y T (AT1 A2 )y
| {z }
| {z }
A2
=K sdp
= x Ax y Ky
| {z }
< x Ax = kxkA = 1.
Por lo tanto
1
(A1
1 A2 ) kA1 A2 xkA < 1.
Teorema 5.26 (Convergencia del metodo SOR). Si A es sdp, entonces el metodo SOR
converge a partir de cualquier x0 Rn , si (0, 2).
Demostracion. Se deja como ejercicio. Se logra aplicando el teorema anterior.
128
Si bien el teorema anterior da una condicion suficiente para que SOR converja, el
siguiente teorema dice que no es posible obtener un algoritmo convergente si se toma
/ (0, 2).
Teorema 5.27. Dada una matriz invertible A Rnn , y b Rnn , si
/ (0, 2) entonces
la matriz de iteracion del metodo SOR tiene radio espectral mayor o igual a uno.
Demostracion. Recordemos que la matriz de iteracion de SOR es
1
1
D + U ),
MSOR
= ( D + L)1 (
y su determinante es
)=
det(MSOR
det( 1
D + U)
det( 1
D)
1 n n det(D)
= ( 1)n .
=
=
1
1
det(D)
det( D + L)
det( D)
Si
/ (0, 2) entonces | 1| > 1. Pero ademas
( 1)n = (MSOR
) ,
(MSOR
) 1.
5.2.4
Convergencia del m
etodo de Richardson
k = 0, 1, 2, . . . ,
con 6= 0 y x0 dados.
Consideremos A sdp, y estudiemos (I A). Como A es sdp, sus autovalores i son
todos positivos y podemos ordenarlos:
0 < 1 2 n .
Ademas, los autovalores de I A son 1 i , mas precisamente
(I A) = {1 1 , . . . , 1 n } [1 n , 1 1 ].
Por lo tanto
(I A) = max{|1 n |, |1 1 |}.
As,
(I A) < 1
|1 n | < 1 y |1 1 | < 1
1 < 1 n < 1 y 1 < 1 1 < 1
2
2
y 0<<
0<<
n
1
2
0<<
,
n
pues 1 n .
Concluimos entonces que
129
max
1
1-aln
1-al1
1/ln
alpha
1/l1
2
.
1 + n
n
.
1
21
n 1
=
=
1 + n
n + 1
n
1
n
1
1
+1
2 (A) 1
kx xk k2 ,
2 (A) + 1
2
,
1 + n
k = 0, 1, 2, . . . ,
donde 2 (A) es el n
umero de condicion de A con respecto a la norma eucldea de vectores,
que satisface
max{ : (A)}
2 (A) = kAk2 kA1 k2 =
.
min{ : (A)}
130
Es importante observar que el decrecimiento del error (en norma eucldea) es mas lento
cuando el n
umero de condicion de la matriz es mas grande. El mismo decrecimiento del
error ocurre cuando se mide el mismo en la norma generada por A, mas precisamente, se
tiene el siguiente teorema.
Teorema 5.30. Si A es sdp, y aplicamos el metodo de Richardson con opt =
a partir de cualquier x0 obtenemos
kx xk+1 kA
2 (A) 1
kx xk kA ,
2 (A) + 1
2
,
1 + 2
k = 0, 1, 2, . . . ,
2 (A)1
,
2 (A)+1
es
wT
2 (A)1
2 (A)+1
2 (A) 1
.
2 (A) + 1
131
5.3
M
etodos de descenso para matrices sdp
y Rn , y 6= x .
5.3.1
M
etodo del descenso m
as pronunciado (Steepest descent)
La idea es dise
nar un metodo iterativo para hallar la solucion x del sistema Ax = b,
moviendonos en la direccion del maximo descenso de . Mas precisamente, dado xk
Rn , nos movemos en la direccion del descenso mas pronunciado rk := (xk ) =
b Axk para obtener xk+1 ; esto es, definimos
xk+1 = xk + rk ,
eligiendo R de manera que (xk + rk ) sea lo mas chico posible.
Si consideramos h() := (xk + rk ), para R, tenemos que el mnimo de h se
Tr
k
. Lo verificaremos en clase.
alcanza en = rrkkT Ar
k
n
As, dado x0 R , la iteracion del metodo del descenso mas pronunciado esta dada
por
xk+1 = xk + rk ,
k 0,
donde rk = b Axk y =
rk T rk
.
rk T Ark
Observaci
on 5.34. Si quisieramos minimizar (xk + dk ) como funcion de , donde
T
rk
n
dk R es alguna direccion dada, entonces dicho valor de vendra dado por = ddkT Ad
,
k
k
donde rk = b Axk .
Algoritmo Steepest descent (te
orico)
Sean A sdp y b Rn . Sea x0 Rn .
r0 = b Ax0 ;
k = 0;
mientras rk 6= 0
% krk k > tol
T
rk
;
= rrkkT Ar
k
xk+1 = xk + rk ;
rk+1 = b Axk+1 ;
k = k + 1;
fin
Observaci
on 5.35. Recordemos que para la iteracion de Richardson
xk+1 = xk (Axk b) = xk + rk ,
donde rk = b Axk . As, el metodo del descenso mas pronunciado es como la iteracion
de Richardson, pero eligiendo un valor de en cada paso.
Observaci
on 5.36. En principio en cada iteracion del metodo de Steepest descent se
calculan dos productos mat-vec por iteracion: Ark y Axk+1 .
Notemos que
rk+1 = b Axk+1 = b A(xk + rk ) = b Axk Ark = rk Ark .
Reemplazando en el algoritmo anterior la lnea rk+1 = b Axk+1 ; por rk+1 = rk Ark ;
podemos reducir el costo a un solo producto mat-vec por iteracion.
133
Observaci
on 5.37. Notemos que en el algoritmo anterior no hace falta conocer la matriz
A, es suficiente disponer de una rutina matriz-vector, esto es, saber como actua A sobre
cada vector x, o sea, conocer la accion Ax, para cada x. Esto puede resultar mucho mas
eficiente en algunos casos.
Ejemplo 5.38. Si A es de 22, las curvas de nivel de son elipses.Cuanto mayor es el co
max (A)
0
max (A)
.
ciente min (A) mas alargadas son. Pensemos por ejemplo en A =
0
min (A)
Cuanto mas alargadas, mas lenta sera la convergencia.
En clase haremos una explicacion mas detallada de lo anterior.
Finalmente, establecemos un resultado de convergencia para el metodo que estamos
estudiando.
Teorema 5.39. Sea A sdp, b Rn , y x la solucion de Ax = b. Sea x0 Rn y sea
{xk }kN la sucesion generada por el metodo del descenso mas pronunciado. Entonces,
kxk+1 x kA
2 (A) 1
kxk x kA ,
2 (A) + 1
k 0.
(5.6)
xR
k+1
2 (A) 1
kxk x kA ,
2 (A) + 1
kxk+1 x kA
2 (A) 1
kxk x kA ,
2 (A) + 1
y por lo tanto,
5.3.2
M
etodo del gradiente conjugado
x0 + span{r0 , r1 , . . . , rk }
|
{z
}
k 0,
M
etodo del gradiente conjugado. (Version preliminar 1)
Sean A sdp y b Rn . Sea x0 Rn .
r0 = b Ax0 ;
k = 0;
mientras rk 6= 0
xk+1 = argminxx0 +span{r0 ,r1 ,...,rk } (x);
rk+1 = b Axk+1 ;
k = k + 1;
fin
A continuacion, nos abocaremos al estudio de ciertas propiedades interesantes del
metodo del gradiente conjugado y de su convergencia. Posteriormente, analizaremos si
hay alguna manera computacional relativamente economica para calcular efectivamente
los xk s.
En el siguiente lema demostramos que los residuos rk son ortogonales.
Lema 5.40. Sea {rk }kN0 la sucesion de residuos del metodo del gradiente conjugado.
Entonces,
rk {r0 , r1 , . . . , rk1 },
k 1.
Demostracion. Sea k 1 arbitrario y fijo. Puesto que xk =
argmin
(x), se
tiene que
(xk ) (x),
x x0 + span{r0 , . . . , rk1 }.
Sea span{r0 , . . . , rk1 } arbitrario. Entonces (xk ) (xk + t), para todo t R.
As, la funcion f (t) := (xk + t) alcanza su mnimo en t = 0, y por lo tanto, f0 (0) = 0.
Puesto que
f0 (t) = T (xk + t),
t R,
se tiene que
f0 (0) = T (xk ) = T (Axk b) = 0,
| {z }
=rk
Observaci
on 5.41. Si rk 6= 0 entonces {r0 , r1 , . . . , rk } es linealmente independiente.
Lema 5.42. Si rk 6= 0 entonces
span{r0 , r1 , . . . , rk } = span{r0 , Ar0 , . . . , Ak r0 },
para todo k 0.
(Hip. ind.)
A
|{z}
Kk+2 .
Kk+2 ,
pues Kk+1
5.3.3
k1
X
i=0
k1
X
i=0
k1
X
i=0
k1
X
i Ai r0
i Ai (b Ax0 )
i Ai (Ax Ax0 )
i Ai+1 (x x0 )
i=0
k1
X
!
i Ai+1 (x0 x )
i=0
= pk (A)(x0 x ),
donde pk (z) = 1
Pk1
i=0
k 0.
pP k
(5.7)
para todo x Rn ,
y as,
kp(A)kA kp(A)k2 .
En consecuencia, para demostrar (5.7) es suficiente demostrar que
kp(A)k2 max |p()|,
(A)
p P k.
(5.8)
Puesto que A es simetrica, tenemos que A es diagonalizable y que existe una base
ortonormal de vectores propios. Si 1 , . . . , n son los autovalores de A, entonces,
1 0 . . . 0
0 2 . . . 0
T
A = V V ,
donde = ..
.. . .
.. ,
.
. .
.
0 0 . . . n
138
k1
X
i=0
k1
X
i A
i+1
=I
k1
X
i (V V T )i+1
i=0
i V i+1 V T = V
i=0
k1
X
!
i i+1 V T = V p()V T .
i=0
p() =
p(1 )
0
0
p(2 )
..
..
.
.
0
0
...
...
...
0
0
..
.
. . . p(n )
!k
p
2 (A) 1
p
kx0 x kA ,
2 (A) + 1
k 0.
T0 (x) = 1,
T1 (x) = x,
x [1, 1],
(5.9)
n +1
2
n 1
2
, definimos
pk (x) :=
Tk (x())
P k.
Tk (x(0))
Para aplicar el Corolario 5.44, tenemos que acotar max |pk ()|. Puesto que max |Tk (x)|
(A)
x[1,1]
1, se tiene que
max |pk ()| = max |pk ()| = max
(A)
1 n
1 n
|Tk (x())|
1
,
|Tk (x(0))|
|Tk (x(0))|
(5.10)
y en consecuencia, es suficiente acotar por debajo |Tk (x(0))|. Por un lado, llamando
c = 2 (A) = n1 , tenemos
n + 1
c+1
1
x(0) =
=
=
n 1
c1
2
c1
c+1
.
+
c+1
c1
| {z }
| {z }
=:z
= z1
z + z 1
2
Tk (x) =
z k + z k
.
2
As,
1
c 1 k
c + 1 k
c 1 k c + 1 k
k1
Tk (x(0)) =
+
+
= (1)
,
2
2
c+1
c1
c+1
c1
y luego,
1 c + 1 k
|Tk (x(0))|
.
2
c1
(5.11)
5.3.4
El m
etodo del gradiente conjugado como m
etodo directo
Es claro que el metodo del gradiente conjugado converge en a lo sumo n pasos, ya que si
rn = b Axn fuera no nulo, el conjunto {r0 , r1 , . . . , rn } sera linealmente independiente
en Rn , lo cual no es posible. Mas a
un, tenemos el siguiente resultado.
Teorema 5.46. Sea A sdp y b Rn . Si A tiene k autovalores distintos entonces el
metodo del gradiente conjugado para resolver el sistema Ax = b converge a la solucion en
a lo sumo k pasos, partiendo de cualquier valor inicial.
Demostracion. Sean 1 , 2 , . . . , k los k n autovalores distintos de A. Definamos
pk (z) :=
(1 z)(2 z) . . . (k z)
P k.
1 2 . . . k
140
Puesto que max(A) |pk ()| = 0, del Corolario 5.44 se sigue que
kxk x kA max |pk ()| kx0 x kA = 0,
(A)
{z
}
|
=0
5.3.5
Implementaci
on del m
etodo del gradiente conjugado
(xk+1 xk )T A = 0,
Kk .
Kk
Ademas, si Kk ,
(xk+1 xk )T A = T A(xk+1 xk ) = T (Axk+1 b + b Axk ) = T (rk rk+1 ) = 0,
| {z } | {z }
=rk+1
=rk
dT
k+1 rk
T
dk+1 Adk+1
xk+1 xk A Kk ,
es decir, xk+1 xk es una direccion en Kk+1 que es A-ortogonal a Kk . Por lo tanto, existe
k+1 R tal que
xk+1 xk = k+1 dk+1 ,
o sea,
xk+1 = xk + k+1 dk+1 .
Puesto que xk+1 = argmin (x), tenemos que k+1 debe satisfacer que
xx0 +Kk+1
dTk+1 rk
.
dTk+1 Adk+1
dT
k+1 rk
;
dT
k+1 Adk+1
(Hip. ind.)
A-ortogonal
y veamos que si rk 6= 0,
Kk+1 = span {d1 , . . . , dk+1 } .
|
{z
}
A-ortogonal
k
X
i di .
i=1
j = 1, . . . , k.
143
As,
dTk+1 Adj
rkT
k
X
!
i dTi
Adj =
rkT Adj
i=1
k
X
i=1
y de aqu,
j =
rkT Adj
,
dTj Adj
j = 1, . . . , k.
j = 1, . . . , k 1.
Finalmente, esta u
ltima afirmacion se cumple ya que Adj Kj+1 Kk , para j =
1, . . . , k 1, teniendo en cuenta que rk {r0 , r1 , . . . , rk1 } = Kk .
Ahora que tenemos una formula para calcular las direcciones de b
usqueda dk el algoritmo queda de la siguiente manera:
M
etodo del gradiente conjugado. (Version preliminar 3)
Sean A sdp y b Rn . Sea x0 Rn .
r0 = b Ax0 ;
k = 0;
mientras rk 6= 0
si k = 0
d1 = r0 ;
sino
rT Ad
k+1 = dkT Adkk ;
k
dk+1 = rk + k+1 dk ;
fin si
dT rk
k+1 = dT k+1
;
Adk+1
k+1
krk k22
rkT rk
=
,
kdk+1 k2A
dTk+1 Adk+1
144
k+1 =
krk k22
rkT rk
=
.
T
krk1 k22
rk1
rk1
dT
k+1 rk
T
dk+1 Adk+1
rkT rk
T
dk+1 Adk+1
Por otro lado, puesto que rk = b Axk = b Axk1 + A(xk1 xk ) = rk1 k Adk
se tiene que
Adk =
T
rk1
rk1
dT
Ad
k
k
k+1 =
1
(rk1 rk ).
k
y que rk rk1 ,
rkT Adk
rkT (rk1 rk )
rkT rk
=
=
,
T
dTk Adk
k dTk Adk
rk1
rk1
Antes de escribir como queda el algoritmo del metodo del gradiente conjugado hacemos
una observacion respecto del criterio de parada. Sabemos que
=r
z }|k {
kxk x k2
k b Axk k2
2 (A)
.
kx k2
kbk2
Dada una tolerancia tol, lo usual es pedir que
krk k2 < tol kbk2 ,
y as, el error relativo a la salida del algoritmo sera
kxk x k2
2 (A) tol .
kx k2
Ahora s, presentamos el algoritmo para el metodo del gradiente conjugado.
145
M
etodo del gradiente conjugado.
Sean A sdp y b Rn y sean
x Rn (iterando inicial),
tol R+ (tolerancia para el error relativo),
maxiter N (tope de iteraciones).
r = b Ax; % residuo inicial
= rT r; % = krk22
TOL = tol2 bT b; % TOL = tol2 kbk22
k = 0;
2
mientras ( > TOL y k < maxiter) % krk
> tol
kbk2
si k = 0
d = r;
sino
= old
;
d = r + d;
fin si
w = Ad;
= dTw ;
x = x + d;
r = r w; % rk+1 = b Axk+1 = b Axk + A(xk xk+1 ) = rk k+1 Adk+1
old = ;
= rT r;
k = k + 1;
fin
Observaci
on 5.53. (1) Notemos que, al igual que ocurra con el metodo del descenso
mas pronunciado, no es necesario almacenar la matriz A, sino que es suficiente con
disponer de una rutina para calcular el producto Ax, para cada vector x.
(2) Almacenamiento. Se necesitan guardar cuatro vectores: x, w, d y r.
(3) Costo por iteracion.
1 producto mat-vec (Ad).
2 productos escalares (dT w y rT r).
3 operaciones axpy, es decir, del tipo ax + y, con a R, x, y Rn (d = r + d,
x = x + d y r = r w).
(4) Notar que no es necesario almacenar una base para el espacio de Krylov (d1 , . . . , dk , . . . ).
Esta es una ventaja que se tiene por el hecho de que A es sdp. Existen metodos de
espacios de Krylov para matrices que no son sdp (por ejemplo, GMRes), pero en este
caso es necesario ir guardando las direcciones de b
usqueda.
146
5.3.6
Precondicionamiento de un sistema y m
etodo del GC precondicionado
x 6= 0.
c2
c1
1 es peque
no diremos que M es un buen precondiconador de A.
El sistema Ax = b es equivalente al sistema M Ax = M b. Aunque A y M son sdp,
no podemos garantizar que M A es sdp y por lo tanto, no podemos utilizar el metodo del
gradiente conjugado para resolver el sistema M Ax = M b.
Si S denota la raz cuadrada de M , es decir, si S es sdp y tal que S 2 = M , se tiene
que
Si
Ax = b
M Ax = M b
S 2 Ax = S 2 b
SAx = Sb.
M
etodo del gradiente conjugado aplicado a SASy = Sb.
Sea y0 Rn .
r0 = Sb SASy0 ;
0 = k
r0 k22 ;
k = 0;
mientras k 6= 0
si k = 0
d1 = r0 ;
sino
k
k+1 = k1
;
dk+1 = rk + k+1 dk ;
fin si
wk+1 = SAS dk+1 ;
k+1 = dT wk ;
k+1
k+1
yk+1 = yk +
k+1 dk+1 ;
rk+1 = rk
k+1 wk+1 ;
k+1 = k
rk+1 k22 ;
k = k + 1;
fin
Definamos ahora xk := Syk . Si yk converge a la solucion y de SASy = Sb, entonces
xk converge a la solucion x de Ax = b. Mas concretamente, puesto que 2 (SAS) cc21 ,
tenemos que
qc
kyk y kSAS 2 q
c1
c2
c1
1
+1
k
ky0 y kSAS ,
k 0.
(5.12)
2
c1
c2
c1
+1
k
kx0 x kA ,
k 0.
(5.13)
k 1.
k+1 =
rkT SSrk
rkT M rk
(Srk )T (Srk )
rkT rk
=
,
=
=
dTk+1 Adk+1
dTk+1 Adk+1
dTk+1 SAS dk+1
(S dk+1 )T (S dk+1 )
k+1 =
rkT rk
rkT M rk
=
.
T
T
rk1
rk1
rk1
M rk1
Antes de escribir como queda el algoritmo, hacemos una observacion sobre el criterio
de parada. Puesto que
kyk y k2
k
rk k2
2 (SAS)
,
ky k2
kSbk2
se tiene que
kxk x kM 1
krk kM
2 (SAS)
.
kx kM 1
kbkM
En general, se suele parar el algoritmo cuando
krk kM
< tol,
kbkM
donde tol es una tolerancia dada.
149
M
etodo del gradiente conjugado precondicionado.
Sean A sdp y b Rn y sean
M sdp (precondicionador de A, i.e., M A1 ),
x Rn (iterando inicial),
tol R+ (tolerancia para el error relativo en norma M ),
maxiter N (tope de iteraciones).
r = b Ax; % residuo inicial
z = M r,
= rT z; % = krk2M
TOL = tol2 bT M b; % TOL = tol2 kbk2M
k = 0;
M
mientras ( > TOL y k < maxiter) % krk
> tol
kbkM
si k = 0
d = z; %d = M r
sino
= old
;
d = z + d;
fin si
w = Ad;
= dTw ;
x = x + d;
r = r w;
z = M r,
old = ;
= rT z;
k = k + 1;
fin
Observaci
on 5.54. (1) Notemos que finalmente para implementar el GCP no se necesita conocer (calcular) la raz cuadrada S del precondicionador M . Esto fue una
herramienta teorica en la deduccion del metodo.
(2) El costo de este algoritmo es solo un producto mat-vec mas por iteracion que el
gradiente conjugado sin precondicionar.
(3) No es necesario conocer M , basta con disponer de una rutina M .
En general, un buen precondicionador para una matriz A sdp es una matriz M sdp
tal que
La accion M es facil de calcular.
150
1
c1
kx0 x kA ,
k 0.
kxk x kA 2 q
c2
+
1
c1
c1
x 6= 0,
con
c2
1.
c1
Precondionadores gen
ericos
Existen algunos precondicionadores genericos, es decir, que se construyen para cualquier
A, pero en estos casos, no deberamos esperar un cambio dramatico en la convergencia de
un metodo iterativo aplicado al sistema precondicionado respecto del metodo aplicado al
sistema sin precondicionar.
Consideremos el sistema
Ax = b.
Si M es una matriz invertible, entonces
Ax = b
M Ax = M b
x = (I M A)x + M b.
Precondicionamiento diagonal.
Para el metodo de Jacobi, la matriz de iteracion viene dada por
BJ = D1 (L + U ),
donde D, L y U son la parte diagonal, la parte triangular inferior estricta, y la parte
triangular superior estricta de A, respectivamente. Buscamos MJ tal que I MJ A = BJ ,
o equivalentemente,
MJ A = I + D1 (L + U ) = D1 (D
L + U}).
| + {z
=A
Luego,
MJ = D1 .
Esta eleccion para la matriz M se conoce como precondicionamiento diagonal o de Jacobi.
Notemos que la accion MJ es facil de realizar.
Precondicionador de Gauss-Seidel sim
etrico.
Recordemos que la matriz de iteracion del metodo de Gauss-Seidel viene dada por
BGS = (L + D)1 U.
Por otro lado, el metodo de Gauss-Seidel hacia atras tiene la matriz de iteracion
BBGS = (U + D)1 L.
Finalmente, el metodo de Gauss-Seidel simetrico consiste en aplicar una vez Gauss-Seidel
(hacia adelante) y una vez Gass-Seidel hacia atras. As, la matriz de iteracion en este
caso viene dada por
BSGS = BBGS BGS = (U + D)1 L(L + D)1 U.
Si A es simetrica, se tiene que U = LT y
BSGS = (LT + D)1 L(L + D)1 LT .
En este caso, el precondicionador de Gauss-Seidel simetrico esta definido por
MSGS = (LT + D)1 D(L + D)1 ,
ya que
I MSGS A = I (LT + D)1 D(L + D)1 (L + D + LT )
= (LT + D)1 (LT + D D(I + (L + D)1 LT ))
= (LT + D)1 (LT D(L + D)1 LT )
= (LT + D)1 (LT ((L + D)1 LT )1 D)(L + D)1 LT
{z
}
|
=L
= BSGS .
Notar que MSGS consiste en resolver un sistema triangular inferior, multiplicar una
matriz diagonal por un vector y finalmente resolver un sistema triangular superior.
152
Precondicionadores de factorizaci
on incompleta.
Supongamos que A = RT R + E, donde R es una matriz triangular superior y E es
peque
na. Podemos tomar
M = (RT R)1 = R1 (RT )1 ,
observando que la accion M consiste en resolver un sistema triangular inferior (con
sustitucion hacia adelante) seguido de un sistema triangular superior (con sustitucion
hacia atras).
La funcion cholinc de MatLab calcula factorizaciones incompletas de matrices.
5.3.7
Supongamos que tenemos una matriz invertible A, no necesariamente simetrica, y consideramos el sistema
Ax = b.
CGNR.
El sistema Ax = b es equivalente al sistema normal dado por
AT Ax = AT b,
donde ahora s, la matriz del sistema, es decir, AT A, es sdp. Por lo tanto, podemos
aplicar el metodo del gradiente conjugado a este sistema, observando que no es necesario
calcular el producto AT A, sino que es suficiente proveer la rutina AT (A). Por otro
lado, es importante mencionar que este metodo puede no resultar conveniente ya que
2 (AT A) 2 (A)2 ,
y as, el n
umero de condicion del sistema normal empeora si 2 (A) es grande.
Puesto que GC aplicado al sistema normal minimiza k x kAT A sobre x0 + Kk en el
nivel k y puesto que
kxx k2AT A = (xx )T AT A(xx ) = (A(xx ))T A(xx ) = kA(xx )k22 = kAxbk22 ,
este metodo se conoce como CGNR (Conjugate Gradient on the Normal equations to
minimize the Residual).
CGNE.
El sistema Ax = b es equivalente al siguiente:
(
AAT y = b
x = AT y.
En este caso, podemos aplicar GC para resolver el sistema AAT y = b, puesto que AAT
es sdp. Notemos que en cada paso k, se minimiza k y kAAT sobre x0 + Kk . Tomando
x = AT y, se tiene que
kyy k2AAT = (yy )T AAT (yy ) = (AT (yy ))T AT (yy ) = kAT (yy )k22 = kxx k22 ,
y por esto, este metodo se conoce como CGNE (Conjugate Gradient on the Normal
equations to minimize the Error).
153
5.4
5.4.1
GMRes
La propiedad de minimizaci
on y sus consecuencias
x = x0 +
k1
X
j Aj r0 ,
j=0
y luego
r = b Ax = b Ax0
k1
X
j A
j+1
r0 = r0
j=1
k
X
j1 Aj r0 .
j=1
que implica
krk k2 kp(A)r0 k2 kp(A)k2 kr0 k2 ,
(5.15)
para todo p P k .
Inmediatamente tenemos el siguiente corolario.
Corolario 5.56. Sea A una matriz no singular y sea xk la k-esima iteracion de GMRes.
Entonces, cualquiera sea p P k
krk k2
kp(A)k2 .
kr0 k2
Podemos ahora aplicar el corolario para demostrar que GMRes termina en un n
umero
finito de pasos.
154
Teorema 5.57. Sea A Rnn una matriz no singular, entonces GMRes encontrara la
solucion, a lo sumo, en n pasos.
Demostracion. El polinomio caracterstico de A es p(z) = det(A zI), y es de grado n.
Como A es no singular, resulta p(0) = det(A) 6= 0 y entonces consideramos el polinomio
residual
p(z)
P n.
p(z) :=
p(0)
El Teorema de Cayley-Hamilton dice que el polinomio caracterstico de una matriz A
aplicado a la misma matriz A da la matriz nula. En este caso, p(A) = 0, y por lo tanto
p(A) = 0, que a su vez, por el Teorema 5.55, implica
rn = b Axn = 0,
y xn es la solucion.
En la seccion 5.3.2 hemos usado que para A simetrica hay una base ortonormal de
autovectores, es decir A = V V T , con V ortogonal y diagonal, conteniendo los autovalores de A en la diagonal. Esto sirvio para construir polinomios que permitieron obtener
cotas para el decrecimiento del error. No podemos hacer lo mismo si A no es simetrica.
Sin embargo, si suponemos A diagonalizable, podemos usar (5.15) e informacion sobre
los autovalores de A para obtener cotas de decrecimiento similares a las obtenidas para GC. Supongamos que A es diagonalizable, y entonces existe una matriz no singular
(posiblemente compleja) V tal que
A = V V 1 .
Aqu es una matriz diagonal (posiblemente compleja) con los autovalores de A sobre
la diagonal, y las columnas de V son los autovectores correspondientes. Ademas, Ak =
V k V 1 . Si A es normal1 las columnas de V son ortonormales y V 1 = V T = V H .
Se puede usar la estructura de matrices diagonalizables para probar el siguiente resultado, analogo al Corolario 5.44 para GC.
Teorema 5.58. Sea A = V V 1 una matriz no singular diagonalizable, con diagonal
y sea xk la k-esima iteracion de GMRes. Entonces, para todo p P k , resulta
krk k2
2 (V ) max |p(z)|.
z(A)
kr0 k2
(5.16)
155
kek k
ke0 k
kk
(A) krkbk
. Por lo tanto, el criterio de parada garantizara que
kek k2
2 (A),
kx k2
es decir, el error relativo estara acotado por la tolerancia multiplicada por el n
umero
de condicion de A.
5.4.2
El siguiente teorema simple nos dice que si A esta cerca de la matriz identidad I, el
residuo tiende a cero de manera lineal.
Teorema 5.61. Sea A una matriz tal que kI Ak2 < 1. Entonces
krk k2 k kr0 k2 ,
k = 1, 2, . . . .
(A)
.
(A) kAxk
kxk
kAxk
La base para demostrar esto era que, en general, para S Rnn invertible,
kyk kS 1 Syk kS 1 kkSyk,
y
156
kSyk kSkkyk,
y Rn .
En consecuencia,
kSyk
kyk kS 1 kkSyk,
kSk
1
kS 1 kkS yk
1
kSk
,
k
yk
kS yk
y, y Rn .
Finalmente
1
kSyk
kyk
1 kSyk
kSkkS
k
,
kSkkS 1 k kS yk
k
yk
kS yk
y, y Rn ,
o lo que es lo mismo
1 kSyk
kyk
kSyk
(S)k
,
(S) kS yk
k
yk
kS yk
y, y Rn .
(5.17)
Aplicando esta u
ltima desigualdad para S = A, y = ek := x xk , y = e0 := x x0 ,
obtenemos
kek k2
kAek k2
krk k2
2 (A)
= 2 (A)
2 (A)k .
ke0 k
kAe0 k2
kr0 k2
En sntesis, si kI Ak2 = < 1, el metodo GMRes produce soluciones aproximadas que
satisfacen
kek k2 2 (A)ke0 kk ,
k = 1, 2, . . . .
5.4.3
El precondicionamiento para GMRes es diferente del que se hace para GC. No debemos
ahora preocuparnos porque el sistema precondicionado sea sdp y todo se reduce a hallar
una matriz M que sea aproximada a A para que se logre kI M Ak2 =: I < 1 o
kI AM k2 =: D < 1.
Precondicionador a izquierda.
Si disponemos de una matriz M que sea aproximada a A1 de manera que
kI M Ak2 = I < 1,
podemos utilizar GMRes para resolver el sistema equivalente
M Ax = M b,
y las iteraciones de GMRes satisfaran
krk k2
kek k2
2 (M A)
2 (M A)kI ,
ke0 k2
kr0 k
aqu rk = M b M Axk . Si ademas 2 (M A) << 2 (A), el residuo relativo es mas aproximado al error relativo y el criterio de parada sera mas preciso.
157
Precondicionador a derecha.
Si disponemos de una matriz M que sea aproximada a A1 de manera que
kI AM k2 = D < 1,
entonces consideramos el siguiente problema equivalente a Ax = b:
AM y = b,
x = M y.
La idea es entonces resolver (AM )y = b utilizando GMRes y luego obtener x multiplicando M por y. En este caso, el residuo satisface
krk k2
kD ,
kr0 k2
donde rk = b AM yk , que coincide con b Axk y luego el error relativo cumple
kek k2
krk k2
2 (A)
2 (A)kD .
ke0 k2
kr0 k
Si bien se gana en velocidad de convergencia, puede no ganarse nada en como se relaciona
el residuo con el error.
Un aspecto importante de GMRes precondicionado es que no hace falta modificar el
algoritmo, basta con aplicar el algoritmo al sistema M Ax = M b o a AM y = b y luego
calcular x = M y.
5.4.4
Implementaci
on de GMRes
X
y2
z Kk z =
y` v` = v1 v2 . . . vk .. ,
|
{z
} .
`=1
Vk
yk
| {z }
y
para y Rk .
(5.18)
Este es un problema estandar de mnimos cuadrados que podra resolverse, por ejemplo,
con una factorizacion QR de AVk . El problema es que sera necesario calcular el producto
de A por Vk en cada iteracion del algoritmo.
Si utilizamos ortogonalizacion de Gram-Schmidt, podemos representar la solucion
de (5.18) eficientemente. La ortogonalizacion de Gram-Schmidt aplicada al espacio de
Krylov Kk se llama proceso de Arnoldi. Dados xk , b, un mapeo A, y una dimension
k, el proceso de Arnoldi resulta:
Algoritmo de Arnoldi.
Dada A Rnn , x0 , b Rn y k N.
r0 = b Ax0 ;
v1 = r0 /kr0 k2 ;
Para i = 1, 2, . . . , k 1, hacer
wi+1 = Avi ;
zi+1
i
X
T
= wi+1
(wi+1
vj )vj ;
j=1
i
X
(AviT vj )vj = 0.
j=1
Entonces x = A1 b x0 + Ki .
Demostracion. Por la construccion del algoritmo, Avj Kj+1 para j = 1, 2, . . . , i, y
por hipotesis {v1 , v2 , . . . , vi } es una base ortonormal de K
i . Como zi+1 = 0 resulta que
Avi Ki , y luego AKi Ki . Si armamos la matriz Vi = v1 v2 . . . vi , resulta que
AVi = Vi H,
con H una matriz de i i, que es no singular pues A lo es. Tomando = kr0 k2 y
e1 = (1, 0, . . . , 0)T Ri tenemos
kri k2 = kb Axi k2 = kr0 A(xi x0 )k2 .
Como xi x0 Ki existe y Ri tal que xi x0 = Vi y, y como r0 = Vi e1
kri k2 = kVi e1 AVi yk2 = kVi e1 Vi Hyk2 = kVi (e1 Hy)k2 = ke1 Hyk2 ,
159
la u
ltima igualdad es consecuencia de que Vi es ortogonal. La eleccion y = H 1 e1 es la
que da kri k2 = 0 que es el mnimo residuo sobre x0 + Ki .
1 i k + 1, 1 j k.
Por la construccion de Arnoldi, la matriz H R(k+1)k cuyas entradas son las hij recien definidas resulta una matriz Hessenberg superior2 . En efecto, por la construccion,
vi+1 vj para j = 1, 2, . . . , i, y Avj span{v1 , v2 , . . . , vj+1 }, luego vi+1 Avj para
j = 1, 2, . . . , i 1.
Ademas, a menos que el proceso termine prematuramente, construye matrices Vk con
columnas ortonormales, tal que
AVk = Vk+1 Hk .
Luego, para alg
un yk Rk ,
rk = b Axk = r0 A(xk x0 ) = Vk+1 (e1 Hk yk ).
Es decir, xk = x0 + Vk yk , con yk = argmin ke1 Hk yk2 . Mas a
un, rk = b Axk puede
yRk
La entrada del algoritmo es una iteracion inicial x Rn , el vector del lado derecho
b Rn , un mapeo A que representamos con A y la tolerancia . Limitamos ademas
el maximo de iteraciones por kmax . La salida del algoritmo sera el vector x que satisfaga
kb Axk2 kbk2 o bien que se obtenga despues de kmax iteraciones.
2
160
M
etodo GMRes. (Version preliminar 1)
Dada A Rnn , x0 , b Rn , > 0 y kmax N.
r0 = b Ax0 ;
= = kr0 k2 ;
v1 = r0 /;
k=0
Mientras > kbk2 y k < kmax , hacer
k = k + 1;
w = Avk
Para j = 1, . . . , k, hacer
hjk = wT vj ;
% = (Avk )T vj
Fin Para
vk+1 = w
Pk
j=1
hjk vj ;
% (*!)
hk+1,k = kvk+1 k2 ;
vk+1 = vk+1 /hk+1,k ;
yk = argminyRk ke1 Hk yk k2 ;
= ke1 Hk yk k2 ;
% (*)
% (**)
Fin Mientras
xk = x0 + Vk yk .
Observaci
on 5.63. Vale la pena hacer algunas observaciones:
El vector xk se calcula solo al final, y no se necesita durante las iteraciones.
Este metodo requiere que se almacene la base ortonormal del espacio de Krylov a
medida que se ejecuta la iteracion. Esto quiere decir que para realizar k iteraciones
de GMRes se deben almacenar k vectores de longitud n. Para problemas con n
grande, esto puede ser un problema. Una manera de implementar esto es restringir
kmax a lo que permita la memoria disponible, ejecutar GMRes y chequear el residuo
b Axk al finalizar, si k = kmax (si k < kmax entonces ya se logro el objetivo).
Si la norma del residuo es mayor que kbk2 , entonces se vuelve a llamar a GMRes
con x0 = xkmax . No hay una teora de convergencia para el algoritmo con restart,
y en efecto, puede disminuir la velocidad de convergencia. Sin embargo, cuando
funciona (muy a menudo), reduce significativamente el costo de almacenamiento de
la iteracion.
Este algoritmo puede implementarse facilmente en matlab y el paso (*) puede
resolverse directamente con la barra invertida \ en O(k 3 ) operaciones. Esto esta
bien cuando k << n, que es lo mas usual. Otra opcion, mas recomendable es usar
qrhouse y qrsolve que permiten resolver los pasos (*) y (**) simultaneamente.
161
Un problema mas grave con este algoritmo es que los vectores vj pueden no ser
ortogonales por errores de cancelacion. Si esto ocurre, el residuo y la solucion
aproximada pueden ser poco precisos. Un remedio parcial a este problema consiste
en reemplazar la ortogonalizacion de Gram-Schmidt clasica de (*!) por la siguiente
modificacion
vk+1 = Avk ;
Para j = 1, . . . , k
T
vj )vj ;
vk+1 = vk+1 (vk+1
Fin Para
Los dos algoritmos coinciden cuando la precision de los calculos es infinita, pero la
forma modificada manteniene mejor la ortogonalidad en la practica.
7
Para ver
la influencia de esta mejora, basta tomar = 10 , considerar la matriz A =
1 1 1
0 y ortogonalizar usando matlab utilizando Gram-Schmidt y su modificacion.
0
Hacer y ver cuanto se diferencia V T V de la matriz identidad en cada caso.
Con la modificacion propuesta a Gram-Schmidt, el algoritmo resulta:
M
etodo GMRes. (Version preliminar 2)
Dada A Rnn , x0 , b Rn , > 0 y kmax N.
r0 = b Ax0 ;
= = kr0 k2 ;
v1 = r0 /;
k=0
Mientras > kbk2 y k < kmax , hacer
k = k + 1;
vk+1 = Avk
Para j = 1, . . . , k, hacer
T
hjk = vk+1
vj ;
% (**)
Fin Mientras
xk = x0 + Vk yk .
162
% (*)
A
un con la modificacion a Gram-Schmidt, se puede perder la ortogonalidad en las
columnas de Vk . Se puede chequear la perdida de ortogonalidad y reortogonalizar si es
necesario, o usar metodos mas estables para crear la matriz V . Estas implementaciones
mas complejas son necesarias cuando A es mal condicionada o si kmax es grande. No
entraremos en mas detalles en este curso. El algoritmo GMRes ya viene implementado
en matlab y se llama gmres.
Observaci
on 5.64. Una u
ltima observacion es que la matriz Hk+1 contiene a la Hk en
el sentido de que se agrega una fila en cada iteracion. Una manera de hacer mas eficientes los pasos (*)(**) se obtiene manteniendo la factorizacion QR de Hk y calculando
solo lo necesario para obtener la factorizacion QR de Hk+1 . Con una implementacion
eficiente que tenga en cuenta esto, se logra que cada iteracion de GMRes necesite O(nk)
operaciones
Existen otros metodos iterativos basados en espacios de Krylov, pero escapan a este
curso, y los vistos alcanzan para tener una idea sobre las bases de estos metodos.
Ejercicios
5.1. (a) * Demostrar que k k1 y k k definen normas en Rn .
(b) * Demostrar que
kxk kxk2 kxk1
kxk1
nkxk2 nkxk ,
para todo x Rn . Demostrar que estas estimaciones son sharp, mostrando que existe
alg
un x para el que se cumple la igualdad en cada una de estas estimaciones.
(c) Dibujar el conjunto {x R2 : kxk = 1} para las normas k k1 , k k2 , k k y k kA .
2 0
Para la norma k kA tomar A =
.
0 1
* 5.2. Si kk denota una norma en Rn , entonces en el espacio de las matrices cuadradas de
orden n se define la norma inducida que denotamos con el mismo smbolo de la siguiente
manera:
kAxk
.
kAk := max
x6=0 kxk
Demostrar que:
(a) k k es efectivamente una norma en Rnn .
kAxk
.
0<kxk1 kxk
kxk=1
n
X
1jn
1in
|aij |
i=1
n
X
|aij |
j=1
o
n
T
: es autovalor de A A
(c) kAk2 = max
(d) Si A es simetrica, kAk2 = max {|| : es autovalor de A}
5.5. Sea (A) := max{|| : autovalor de A} el radio espectral de A. Demostrar que:
(a) (A) kAk para cualquier norma inducida y para toda matriz A.
(b) (A) puede ser cero aunque A no lo sea.
5.6. Sea k k una norma en Rn y sea G Rnn una matriz invertible. Demostrar que
kxkG := kGxk,
x Rn ,
A Rnn .
5.11. Programar los metodos de Jacobi, Gauss-Seidel, y SOR y utilizarlos para resolver
los siguientes sistemas.
2
1 1
x1
1
0 x2 = 12 , (ii )
(i ) 2 10
1 1
4
x3
2
10
1
2
3
4
x1
12
1
9 1
2 3 x2 27
2 1
7
3 5
x3 = 14
3
2
3 12 1 x4 17
4 3 5 1 15
x5
12
5.12. Encontrar una matriz A para la cual sea imposible encontrar de manera que la
iteracion de Richardson xk+1 = xk + Axk b converja para todo x0 .
5.13. Sea A Rnn spd. Demostrar que existe una u
nica matriz B Rnn spd tal que
1
2
B = A. En este caso, la matriz B se denota por A 2 y se llama la raz cuadrada de A.
5.14. Sea A una matriz spd y b Rn , y sea : Rn R definida por
1
(x) = xT Ax bT x.
2
Demostrar que si x es la solucion exacta de Ax = b, entonces
1
(y) = (x ) + ky x k2A .
2
5.15. Para resolver el sistema lineal Ax = b con el metodo del descenso mas pronunciado y con el metodo del gradiente conjugado en MATLAB, programar las funciones
[x, iter, X] = DescMasPron(A,b,x0,tol,max_iter) y
[x, iter, X] = GradConj(A,b,x0,tol,max_iter), respectivamente. Aqu, x0 es el
iterando inicial, tol es una tolerancia para la norma 2 del residuo, max_iter es la cantidad maxima de iteraciones permitidas, x es la aproximacion obtenida con las iter
iteraciones realizadas, y las columnas de la matriz X son las sucesivas aproximaciones generadas por el metodo. Realizar la programacion de manera que el el primer argumento
A pueda ser tanto la matriz del sistema en forma explcita como una rutina que devuelve
el producto matriz-vector para cada vector dado.
Importante: Puede calcular solo un producto matriz-vector por iteracion.
2 1
1
* 5.16. Dada la matriz A =
y el vector b =
, dibujar las curvas de nivel de
1 3
2
la energa del sistema Ax = b y sus gradientes. Observar las direcciones de los mismos.
Intentar determinar visualmente la posicion del mnimo de dicha funcion.
165
(a) Determinar la solucion del sistema mediante el metodo del descenso mas pronunciado,
tratando de visualizar las aproximaciones y las direcciones que se toman en cada paso.
Considerar una tolerancia de 103 .
(b) Determinar la solucion del sistema mediante el metodo del gradiente conjugado,
visualizando las aproximaciones y las direcciones que se toman en cada paso hasta
llegar a la solucion.
5.17. Consideramos el problema de hallar la funcion u que satisface
x (0, 1)
u00 (x) = f (x),
u(0) = u(1) = 0,
donde f (x) = 2 sen(x). Se puede verificar facilmente que la solucion de este problema
u(x) = sen(x). Dada una particion del intervalo [0, 1] en N + 1 intervalos de igual longitud [x0 , x1 ], [x1 , x2 ], [x2 , x3 ], . . ., [xN , xN +1 ] donde x0 = 0 y xN +1 = 1, la discretizacion
de este problema por diferencias finitas se reduce a resolver el sistema Ax = b donde A
es la matriz tridiagonal cuadrada de tama
no N que tiene 2 sobre la diagonal principal y
1 en las otras posiciones no-nulas, y el vector b = h2 (f (x1 ), f (x2 ), . . . , f (xN ))T , donde
h = N1+1 es la longitud de cada subintervalo.
El vector solucion x aproxima los valores de la solucion u en los puntos x1 , x2 , . . . , xN ,
es decir, x (u(x1 ), u(x2 ), . . . , u(xN ))T .
Considerando distintos valores de N (N = 10, 50, 100, ...):
(a) Cargar la matriz A en formato sparse, utilizando la funcion spdiags de MATLAB.
Cargar tambien el vector de terminos independientes b.
(b) Utilizar los metodos de Jacobi, Gauss-Seidel y SOR para resolver el sistema lineal.
Realizar un grafico del error (en escala logartmica) de cada metodo en funcion de
la cantidad de iteraciones. Obtener conclusiones.
Sugerencia: Para calcular el error, utilizar como solucion exacta la solucion del
sistema dada por el comando \ de MALTAB.
(c) Investigar el comportamiento de los metodos del descenso mas pronunciado y del
gradiente conjugado para resolver el sistema lineal.
5.18. Crear una funcion mat_vec que para cada vector x devuelva el resultado de Ax,
sin realizar realizar el producto de manera explcita, donde
2 1
1
2 1
0
1
2
1
A=
.
.. .. ..
.
.
.
0
1
2 1
1
2
Ayuda: Tratar de interpretar la accion de A sobre un vector dado x, y transformarlo
seg
un esta accion sin utilizar la matriz A.
166
u(x, 0) = u(x, 1) = 0,
x [0, 1]
u(0, y) = u(1, y) = 0,
y [0, 1]
donde f (x, y) = 2 [x(x 1) + y(y 1)]. Si consideramos una malla uniforme de tama
no
1
h = N +1 , sobre la que los nodos interiores se enumeran de izquierda a derecha y de abajo
hacia arriba, la discretizacion de este problema por diferencias finitas se reduce a resolver
el sistema Ax = b donde A es la matriz cuadrada de tama
no N 2 expresada en bloques
como
B IN
IN B IN
IN B IN
A=
,
.
..
IN B IN
IN B
4
1
1
4
1
1
4
1
.
, e IN es la
.
1
1
4
4
1
167
Cual de las dos cotas es mejor? Graficar el comportamiento de las cotas como
funcion de k y sacar conclusiones.
5.21. Sea A Rnn . Demostrar que si S Rnn es invertible, entonces (S 2 A) =
(SAS).
5.22. Sean A y S sdp, y M = S 2 . Demostrar que si
c1
xT M x
c2 ,
xT A1 x
entonces
2 (SAS)
x Rn \ {0},
c2
.
c1
x Rn \ {0},
con
c2
peque
no.
c1
5.23. (a) Modificar la funcion GradConj del Ejercicio 5.15 para implementar el metodo
del gradiente conjugado precondicionado a traves de la funcion
[x, iter, X] = GradConjP(A,b,precon,x0,tol,max_iter). Aqu, precon es el
precondicionador a usar, dado como matriz en forma explcita o como una rutina
que devuelve el producto matriz-vector para cada vector dado.
(b) Comparar el comportamiento del metodo del gradiente conjugado usual y del metodo
precondicionado con un precondicionador adecuado para la resolucion del sistema del
Ejercicio 5.17 y/o 5.19.
5.24. Comparar el comportamiento del metodo del gradiente conjugado y de GMRes
para resolver el sistema lineal dado en el ejercicio 5.17.
5.25. Consideramos el problema de hallar la funcion u que satisface
x (0, 1)
u00 (x) + u0 = f (x),
u(0) = u(1) = 0,
2 1
0
1
1
2 1
0
0
1
0
1
2 1
1
0
1
1
1
A= 2
+
,
.
.
.
.
.
.
.
.
.
.
.
.
2h
h
.
.
.
.
.
.
0
1
2 1
0
1
0
1
1
2
1
0
168
169
Captulo 6
Sistemas de ecuaciones no lineales
En este captulo estudiaremos metodos para resolver sistemas de ecuaciones no lineales.
En general, para n N, un sistema de n ecuaciones con n incognitas (x1 , x2 , . . . , xn )
viene dado por
f1 (x1 , x2 , . . . , xn ) = 0
f2 (x1 , x2 , . . . , xn ) = 0
(6.1)
..
f (x , x , . . . , x ) = 0,
n
f1 (x)
f2 (x)
+ 4x22 = 1.
Cuando un sistema de n ecuaciones con n incognitas es lineal, la solucion o las soluciones representan la interseccion de n hiperplanos en Rn , y en este caso sabemos que existen
solo tres posibilidades, a saber: tiene una u
nica solucion, tiene infinitas soluciones, o no
tiene ninguna. En el caso de un sistema no lineal de n ecuaciones con n incognitas la
solucion o las soluciones (si existen) corresponden a la interseccion de n hipersuperficies
170
en Rn y pueden darse todas las posibilidades, es decir, puede no tener solucion, o puede
tener una cantidad finita o infinita de soluciones.
La necesidad de resolver sistemas de ecuaciones no lineales surge, por ejemplo, cuando
se quiere hallar el mnimo de una funcion de varias variables f : Rn R. Sabemos que
si f es diferenciable y alcanza su mnimo en un valor x Rn entonces
f (x ) = 0,
es decir, x debe ser solucion del sistema no lineal (6.2) con F (x) := f (x).
Otra situacion en donde surge la necesidad de resolver un sistema de ecuaciones no
lineales, es al aplicar el metodo de Euler implcito para resolver un problema de valores
iniciales (PVI); ver Seccion 1.3.2.
En este captulo estudiaremos metodos numericos para resolver sistemas de ecuaciones
no lineales. Antes de presentar estos metodos, recordamos algunos conceptos de calculo
en varias variables. En lo que sigue, k k denota una norma en Rn .
Definici
on 6.3 (Funcion diferenciable). Sea D Rn abierto y sea F : D Rn . Decimos
que F es diferenciable en x0 D si existe J Rnn tal que
lim
xx0
f1
f1
f1
T
(x0 ) x
(x
)
(x
)
f
(x)
f
(x
)
0
0
1
1
0
x1
x
n
2
f2 (x)
f2 (x0 ) f2 (x0 ) f2 (x0 ) f2 (x0 )T
x
x
x
0
n
1
2
, si F (x) = .. ;
F (x0 ) =
=
.
.
.
.
.
.
..
..
..
..
.
.
T
fn
fn
fn
fn (x0 )
fn (x)
(x0 ) x (x0 ) x (x0 )
x
1
f1 (x)
f2 (x)
6.1
M
etodos de punto fijo
k = 0, 1, . . .
(6.3)
Observaci
on 6.5. Sea F (x) = Ax b, donde A Rnn y b Rn . Si reescribimos el
sistema F (x) = 0 como x = G(x) donde G(x) = M x + c, para M Rnn y c Rn ,
entonces la iteracion de punto fijo (6.3) es un metodo iterativo estacionario para el sistema
lineal F (x) = 0 (Ax = b). As, podemos pensar la iteracion de punto fijo (6.3) como
una generalizacion al caso de sistemas no lineales de los metodos iterativos estacionarios
definidos para sistemas lineales.
Definici
on 6.6 (Punto fijo). Decimos que x D es un punto fijo de G : D Rn Rn
si
x = G(x ).
Definici
on 6.7 (Punto de atraccion). Sea G : D Rn Rn y sea x D un punto
fijo de G. Decimos que x es un punto de atraccion de G, o equivalentemente, que la
iteracion (6.3) converge localmente a x , si existe > 0 tal que para todo x0 B(x , )
se cumple que xk+1 := G(xk ) B(x , ), para todo k = 0, 1, . . . y
lim xk = x .
k = 0, 1, . . .
x, y D.
Definici
on 6.11 (Contraccion). Decimos que G : D Rn Rn es una contraccion en
D con la norma k k si G es Lipschitz continua con constante 0 < < 1, es decir, si existe
(0, 1) tal que
kG(x) G(y)k kx yk,
x, y D.
Teorema 6.12 (Contraction Mapping Theorem). Sea D Rn cerrado. Sea G : D D
una contraccion en D (con alguna norma k k) con constante 0 < < 1. Entonces, existe
un u
nico punto fijo x de G en D y x es un punto de atraccion de G. Mas a
un, para
todo x0 D, la iteracion
xk+1 = G(xk ),
k = 0, 1, . . .
k = 0, 1, . . .
k
kx1 x0 k,
1
k = 0, 1, . . .
k = 0, 1, 2, . . .
esta bien definida. Demostraremos ahora que {xk }kN0 es una sucesion de Cauchy.
Puesto que G es una contraccion, tenemos que
kxi+1 xi k = kG(xi ) G(xi1 )k kxi xi1 k i kx1 x0 k,
y luego, para k N0 y p N,
kxk+p xk k
k+p1
k+p1
kxi+1 xi k
i=k
k
!
i
kx1 x0 k
i=k
k+p
k
kx1 x0 k
kx1 x0 k.
1
1
173
Teniendo en cuenta que < 1, concluimos que {xk }kN es una sucesion de Cauchy en
Rn . En consecuencia, existe x Rn tal que
lim xk = x .
Puesto que D es cerrado y que {xk }kN D, se tiene que x D. Por otro lado, puesto
que G es continua se tiene que
lim G(xk ) = G(x ),
y como G(xk ) = xk+1 , tenemos que x = G(x ), es decir, que x es un punto fijo de G.
Es facil verificar que x es el u
nico punto fijo de G. En efecto, si y D es un punto
fijo de G distinto de x , entonces
ky x k = kG(y ) G(x )k ky x k < ky x k,
lo cual no puede ocurrir.
Hasta aqu hemos demostrado que G tiene un u
nico punto fijo x D, y que para
cualquier x0 D, la iteracion de punto fijo xk+1 = G(xk ), para k N0 , esta bien definida
y converge a x . Solo resta ver que la convergencia es lineal y la estimacion de error.
Usando nuevamente que G es una contraccion, tenemos que
kxk+1 x k = kG(xk ) G(x )k kxk x k,
k = 0, 1, 2, . . . ,
k
kx1 x0 k,
1
k N0 , p N,
x, y Rn ,
se tiene que
(M ) kM k = sup
zRn
kG(z) G(0)k
kM zk
= sup
< 1.
kzk
kzk
zRn
Por otro lado, si (M ) < 1, por el Teorema 5.7 sabemos que existe una norma inducida
k k tal que kM k < 1, y por lo tanto,
kG(x) G(y)k = kM x + c (M y + c)k = kM (x y)k kM kkx yk,
x, y Rn ,
Rb
h1 (t) dt
h1 (t)
a
Z b
h2 (t)
R b h (t) dt
2
H(t)dt := a .
.. , entonces
.
.
.
.
a
Rb
hn (t)
hn (t) dt
a
Definici
on 6.15 (Conjunto convexo en Rn ). Un conjunto D Rn es convexo si para
todo para de puntos de D, el segmento que los une esta contenido en D, esto es, si
x, y D,
t [0, 1],
tx + (1 t)y D.
El siguiente teorema es una generalizacion del Teorema Fundamental del Calculo para
funciones de varias variables.
Teorema 6.16 (Teorema Fundamental del Calculo). Sea D Rn convexo. Si G : D
Rn es continuamente diferenciable en D entonces
Z 1
G(y) G(x) =
G0 (x + t(y x))(y x) dt,
x, y D.
0
Demostracion. Sea G =
g1
g2
..
.
gn
hi (t) := gi (x + t(x y)), para t [0, 1]. Entonces, h0i (t) = gi (x + t(x y))T (y x) y
por el Teorema Fundamental del Calculo tenemos que
Z 1
Z 1
0
gi (y) gi (x) = hi (1) hi (0) =
hi (t) dt =
gi (x + t(x y))T (y x) dt,
0
x, y D;
t[0,1]
aqu, k k denota tanto una norma de Rn como la norma inducida por ella en el espacio
de las matrices.
175
x, y D.
0
0
Finalmente, una aplicacion inmediata del teorema anterior nos permite establecer el
siguiente corolario.
Corolario 6.19. Sea D Rn convexo. Si G : D Rn es continuamente diferenciable
en D y existe > 0 tal que
kG0 (x)k ,
x D,
entonces
kG(x) G(y)k kx yk,
6.2
x, y D.
El m
etodo de Newton
La primera pregunta importante que surge es bajo que hipotesis la iteracion de Newton
esta bien definida. Notemos que en particular se necesita que la matriz jacobiana de F
sea invertible. Los siguientes resultados nos llevaran a saber en que circunstancias esto
ocurre.
Lema 6.20 (Perturbacion de la matriz Identidad). Sea M Rnn . Si kM k < 1 para
alguna norma inducida, entonces I M es invertible y
k(I M )1 k
1
.
1 kM k
kA1 k
.
1 kA1 kkEk
kA1 k
kA1 k
.
1 kM k
1 kA1 kkEk
=:E
1
,
2kC(x )1 k
si x B(x , ).
Por el lema anterior, tenemos que C(x) es invertible para todo x B(x , ) y que
kC(x)1 k
kC(x )1 k
kC(x )1 k
<
= 2kC(x )1 k.
1 kC(x )1 kkC(x) C(x )k
1 kC(x )1 k 2kC(x1 )1 k
177
k = 0, 1, 2, . . .
converge localmente a x .
Velocidad de convergencia superlineal: Si x0 se elige suficientemente cerca de x
entonces
kxk+1 x k
lim
= 0.
k kxk x k
Demostracion.
Tomando C = F 0 en el Corolario 6.22 tenemos la buena definicion del metodo de
Newton.
Puesto que F (x ) = 0, se tiene que x = G(x ). Ademas, se puede demostrar (ver
Ejercicio 6.8) que G es diferenciable en x y que G0 (x ) = 0. Por el Teorema de Ostrowsky
(Teorema 6.8), ya que (G0 (x )) = 0 < 1, se tiene que x es un punto de atraccion de G.
Puesto que G es diferenciable en x tenemos que
lim
xx
x B(x , ).
(6.5)
k = 0, 1, 2, . . .
k = 0, 1, 2, . . .
Observaci
on 6.25 (Condiciones suficientes para que se cumpla (6.5)). Si F 0 es Lipschitz
continua en un entorno de x entonces en particular se cumple (6.5). Por otro lado, F 0 es
fi
es Lipschitz continua, para i, j = 1, 2, . . . , n. Notemos
Lipschitz continua si y solo si x
j
2
fi
esten acotadas en un entorno de x , para
ademas que para esto es suficiente que xj x
k
i, j, k = 1, 2, . . . , n. Finalmente, notemos tambien que para que se cumpla la u
ltima
condicion, es suficiente que F sea dos veces continuamente diferenciable en un entorno
2f
i
de x , es decir, que xj x
sean continuas en un entorno de x , para i, j, k = 1, 2, . . . , n.
k
Demostracion del Teorema 6.24. Veamos primero que (6.5) implica que
kF (x) F (x ) F 0 (x )(x x )k
L
kx x k2 ,
2
x B(x , ).
(6.6)
x B(x , ).
En consecuencia,
Z 1
0
0
kF (x) F (x ) F (x )(x x )k =
(F
(x
+
t(x
x
))
F
(x
))(x
x
)
dt
0
Z 1
kF 0 (x + t(x x )) F 0 (x )kkx x k dt
Z0 1
Lkt(x x )kkx x k dt
0
Z 1
2
= Lkx x k
t dt
0
L
= kx x k2 ,
2
179
x B(x , ) B(x , 0 ).
=:c
6.2.1
En esta seccion nos proponemos estudiar en que casos el metodo de Newton converge
partiendo de cualquier valor inicial.
Observaci
on 6.26 (Convergencia global de metodos de punto fijo). Si G : Rn Rn
es una contraccion, entonces por el Teorema 6.12 tenemos que partiendo de cualquier
x0 Rn , la iteracion
xk+1 := G(xk ),
k = 0, 1, 2, . . .
converge a un punto fijo x de G (que existe y es u
nico).
La observacion anterior nos da un resultado de convergencia global, pero es dficil que
la hipotesis se cumpla en problemas concretos. A continuacion veremos un resultado de
convergencia global para el metodo de Newton, bajo ciertas hipotesis sobre la funcion F ,
que incluyen el concepto de convexidad.
Definici
on 6.27 (Funcion convexa). Decimos que una funcion f : Rn R es convexa si
f (tx + (1 t)y) tf (x) + (1 t)f (y),
180
t [0, 1], x, y Rn .
f1
f2
..
.
fn
todo i = 1, 2, . . . , n.
Proposici
on 6.28 (Caracterizacion de las funciones convexas). Sea f : Rn R diferenciable. Entonces, f es convexa si y solo si
f (y) f (x) f (x)T (y x),
x, y Rn .
(6.7)
(6.8)
(6.9)
y
Multiplicando (6.8) por t y (6.9) por 1 t y sumando miembro a miembro, obtenemos
tf (x) + (1 t)f (y) f (z) f (z)T (tx tz + (1 t)y z + tz) = f (z)T 0,
de donde se sigue (6.7) y por lo tanto, que f es convexa.
Teorema 6.29 (Teorema de Newton-Baluev: Convergencia global del metodo de Newton). Sea F : Rn Rn convexa. Supongamos que F es continuamente diferenciable en
Rn , que F 0 (x) es invertible y que las entradas de F 0 (x)1 son no negativas, para todo
x Rn . Entonces, si existe x Rn tal que F (x ) = 0, este cero es u
nico y la iteracion
xk+1 := xk F 0 (xk )1 F (xk ),
181
k = 0, 1, , 2, . . .
(1)
(2)
(n)
(i)
(i)
x(i)
xk+1 xk x1 ,
i = 1, 2, . . . , n.
Observaci
on 6.30. Notemos que si n = 1, es decir, si F : R R entonces la matriz
jacobiana de F en x es la derivada de F en x, y las hipotesis del teorema anterior equivalen
a pedir que F C 1 , F convexa y que F 0 (x) > 0 para todo x R. En este caso, si existe un
cero x de F , este es u
nico y la sucesion del metodo de Newton converge decrecientemente
a x , partiendo de cualquier x0 R.
Demostracion del Teorema 6.29. En esta demostracion utilizaremos la notacion x 0
para un vector x = (x(1) , x(2) , . . . , x(n) )T Rn si satisface
x(i) 0,
i = 1, 2, . . . , n.
Sea F =
f1
f2
..
.
k = 0, 1, , 2, . . .
(6.10)
fn
1, 2, . . . , n. Para cada k N0 , de la Proposicion 6.28, y teniendo en cuenta (6.10), se
sigue que
fi (xk+1 ) fi (xk ) fi (xk )T (xk+1 xk ) = fi (xk ),
i = 1, 2, . . . , n,
y as,
fi (xk+1 ) 0,
i = 1, 2, . . . , n.
Ahora vamos a demostrar que {xk }kN es una sucesion decreciente, para cada i =
1, 2, . . . , n. En efecto, puesto que las entradas de F 0 (xk )1 son no negativas y que
F (xk ) 0, de (6.10) se sigue que
xk+1 xk = F 0 (xk )1 F (xk ) 0,
lo que significa que
(i)
(i)
xk+1 xk ,
i = 1, 2, . . . , n.
(i)
(i)
Por otro lado, veamos que {xk }kN esta acotada inferiormente por x , para cada i =
1, 2, . . . , n; es decir, veamos que para k = 1, 2, . . . se tiene que
(i)
x(i)
xk ,
i = 1, 2, . . . , n.
182
(6.11)
i = 1, 2, . . . , n,
=0
o equivalentemente,
fi (xk ) fi (xk )T (x xk ) 0,
i = 1, 2, . . . , n.
La u
ltima desigualdad puede reescribirse en la nueva notacion como
F (xk ) F 0 (xk )(x xk ) 0.
Ya que las entradas de F 0 (xk )1 son no negativas, tenemos que
F 0 (xk )1 [F (xk ) F 0 (xk )(x xk )] 0.
En consecuencia,
0
z }| {
F 0 (xk )1 F (xk ) +(xk x ) 0,
{z
}
|
0
y por lo tanto,
xk x 0,
de donde se sigue (6.11). Puesto que toda sucesion monotona decreciente y acotada
inferiormente converge, tenemos que existe y (i) R tal que
(i)
lim xk = y (i) ,
i = 1, 2, . . . , n.
Definiendo y :=
y (1)
y (2)
..
.
y (n)
lim xk = y.
Ejercicios
6.1. Consideremos la iteracion de punto fijo asociada a una funcion G : R R.
(a) Si G(x) := x x3 , demostrar que aunque G0 (0) = 1(6< 1), el punto 0 es un punto de
atraccion de G.
(b) Si G(x) := x + x3 , demostrar que G0 (0) = 1, y que el punto 0 no es un punto de
atraccion de G.
6.2. Sea G : D Rn Rn . Sea x D un punto fijo de G. Demostrar que si G
es continuamente diferenciable en un entorno de x y (G0 (x )) < 1, entonces G es una
contraccion en alguna bola cerrada centrada en x .
6.3. Supongamos que G : Rn Rn tiene la propiedad que para todo conjunto cerrado y
acotado C Rn existe una constante C < 1 tal que
kG(x) G(y)k C kx yk,
x, y C.
1
2
y=
1 + (x + y)2
1
2
1 + (x y)2
ex
x=1+h
1 + y2
y=
1
+ h tan1 (x2 + y 2 ).
2
Mostrar que si h se elige suficientemente chico, entonces este sistema tiene una u
nica
solucion x dentro de alguna region rectangular. Mas a
un, mostrar que la iteracion de
punto fijo (propuesta en la forma que viene dado el sistema) converge a dicha solucion.
6.6. El Teorema 6.16 puede interpretarse tambien como la generalizacion del Teorema
del Valor Medio del Calculo Diferencial a funciones de valores vectoriales. En el siguiente
ejemplo se muestra que una generalizacion, quizas mas natural que la del mencionado
teorema, no es posible.
Sea G : R2 R2 definida por
3
x
x1
G 1 =
.
x2
x21
Sean x = (0, 0)T e y = (1, 1)T . Demostrar que no existe ning
un z R2 tal que
G(x) G(y) = G0 (z)(x y).
184
x2 y 2 = 1,
6.11. (a) El siguiente sistema tiene cuatro ceros en el dominio (4, 4) (4, 4)
f (x, y) = x2 + xy 3 9 = 0,
g(x, y) = 3x2 y y 3 4 = 0
(a) x2 + y 2 2x 2y + 1 = 0
(b) x2 + 2xy + y 2 x + y 4 = 0
x + y 2xy = 0.
5x2 6xy + 5y 2 + 16x 16y + 12 = 0.
k = 0, 1, . . .
f (x(1) )
2 1
1
f (x(2) )
2 1
0
f (x(3) )
1
2
1
(x) = h2
A=
,
,
..
.. .. ..
.
.
.
.
f (x(n1) )
0
1
2 1
1
2
f (x(n) )
con x = (x(1) , x(2) , x(3) , . . . , x(n1) , x(n) )T y f (t) = t3 .
(a) Usando que A es invertible, demostrar que el metodo de Newton aplicado al sistema
F (x) = 0 converge localmente a x = 0.
(b) Estudiar el orden de convergencia del metodo de Newton para este caso.
6.18. Considerar las funciones F : R R dadas por F (x) = tan1 x y F (x) = 2x+sen x.
Mostrar que para ambas funciones se satisfacen todas las hipotesis del Teorema 6.29 (de
Newton-Baluev), excepto la convexidad, y que la iteracion de Newton correspondiente no
converge globalmente.
186
Captulo 7
M
etodos num
ericos para problemas
de autovalores
A lo largo de esta seccion consideraremos matrices y vectores con componentes complejas.
Ademas, denotaremos con AH a la matriz conjugada transpuesta de A, y analogamente
para vectores. De esta manera, el producto escalar de x, y Cn es x y = y H x, y como
trabajamos sobre los complejos, y x = xH y = y H x = x y.
7.1
187
Autovalores a izquierda.
Una matriz A es singular si y solo si su conjugada transpuesta AH es singular. En
AH es singular. Por lo tanto, los autovalores
particular, I A es singular si y solo si I
H
de A son los conjugados de los autovalores de A.
De esta manera, si A es hermtica (AH = A) resulta que sus autovalores son reales.
es un autovalor de AH , existe un autovector y que satisface AH y = y,
que en
Si
terminos de la matriz original se lee
y H A = y H .
El vector y H se llama autovector a izquierda de A correspondiente a . Claramente, los
autovectores a izquierda de A son los conjugados transpuestos de los autovectores de AH .
Matrices reales
Si la matriz A Rnn , entonces los coeficientes de su polinomio caracterstico son reales.
Sabemos que las races complejas de polinomios con coeficientes reales ocurren de a pares
x) es tambien un autopar.
conjugados. Mas a
un, si (, x) es un autopar de A, entonces (,
Multiplicidad y matrices defectuosas
La multiplicidad de un autovalor como raz del polinomio caracterstico se llama multiplicidad algebraica del autovalor.
La multiplicidad geometrica de un autovalor es la dimension del espacio generado por
todos los autovectores correspondientes a ese autovalor, es decir:
multiplicidad geometrica de = dim v Cn : Av = v}.
Siempre ocurre que
multiplicidad geometrica de multiplicidad algebraica de .
Puede ocurrir que la multiplicidad geometrica de un autovalor sea estrictamente menor
que la algebraica. En ese caso se dice que el autovalor es defectuoso. Si una matriz contiene
un autovalor defectuoso, tambien se dice que la matriz es defectuosa.
Un ejemplo de matriz defectuosa es
2 1
A=
,
0 2
donde = 2 es un autovalor de multiplicidad algebraica 2 y geometrica 1.
Por u
ltimo recordamos que si una matriz es defectuosa, entonces no es diagonalizable.
Es decir, si A es defectuosa, no existe una matriz invertible V y una matriz diagonal
tal que A = V V 1 .
Si una matriz es no defectuosa, entonces es diagonalizable, es decir, existe una matriz
invertible V y una matriz diagonal tal que A = V V 1 .
188
1 0 0 ...
0 1 0 . . .
.. ..
.
.
0 0
Jm () = . .
.
.
.
.. . . . . . . . .
0 0 . . . 0
0
...
la forma
0
0
..
.
.
..
.
1
0
Matrices hermticas
Para saber si una matriz es diagonalizable, casi no hay otra opcion que tratar de calcular
los autovectores y ver que ocurre. Sin embargo, hay una clase muy importante de matrices
que se saben diagonalizables, y son las hermticas. Las matrices de componentes reales y
simetricas son hermticas.
Si A Cnn es hermtica, entonces aii = a
ii , y luego los elementos de la diagonal son
reales.
Es interesante observar que si U es unitaria, es decir U H = U 1 , entonces la transformacion de similaridad U H AU es hermtica, en efecto,
(U H AU )H = U H AH (U H )H = U H AU.
Por otro lado, por el Teorema 5.8 de descomposicion de Schur existe U unitaria tal que
U H AU = T con T triangular superior tal que
diag(T ) = (1 , 2 , . . . , n ),
Pero por lo antedicho, T es hermtica y los elementos de su diagonal son reales, como
ademas es triangular superior, resulta diagonal. Por lo tanto
Si A Cnn es hermtica, entonces existe una matriz unitaria U tal que
U H AU = diag(1 , . . . , n ),
donde los n
umeros i son reales. Equivalentemente, toda matriz hermtica tiene
autovalores reales y sus autovectores pueden elegirse para formar una base ortonormal
de Cn .
Vale la pena observar que las matrices hermticas son una subclase de la clase de
matrices normales. Una matriz A se dice normal si AAH = AH A. Se puede demostrar
que para matrices normales, la matriz T de Schur es diagonal, aunque sus autovalores
pueden ser complejos.
189
7.2
El m
etodo de las potencias
Los metodos generales para hallar autovalores y autovectores son necesariamente iterativos. Para ver esto, definamos
p(t) = c0 + c1 t + c2 t2 + + cn1 tn1 + tn ,
y consideremos la siguiente matriz asociada:
cn1 cn2
1
0
1
Cp = 0
.
.
..
..
0
...
. . . c1 c0
... 0
0
...
...
0 .
..
... ...
.
0
1
0
Es facil ver que el polinomio caracterstico de Cp es p. En consecuencia, cualquier algoritmo para resolver el problema general de autovalores se puede usar para resolver
ecuaciones polinomiales.
En el siglo XIX Niels Abel demostro que no es posible hallar por metodos directos las
races de polinomios de grado mayor o igual a 5. Por lo tanto no hay manera de resolver
problemas generales de autovalores para matrices de orden 5 por metodos directos, y
debemos recurrir a metodos iterativos.
Mas a
un, la funcion roots de matlab calcula los ceros de un polinomio recurriendo
a un algoritmo iterativo para el calculo de autovalores de la matriz asociada al mismo.
La idea del primer metodo que veremos es que al aplicar repetidas veces una matriz a
un mismo vector, se destaca el efecto del autovalor de modulo maximo. Ya vislumbramos
esto cuando vimos que para toda matriz A y cualquier norma inducida kAk k1/k (A).
Dado un vector inicial u0 , definimos
uk = k1 Auk1 ,
con k1 = kAuk1 k
k = 1, 2, . . . .
(7.1)
Los factores de escala k1 estan para evitar que kuk k tienda a cero o a infinito.
A partir de (7.1) tenemos que
uk = k1 . . . 0 Ak u0 .
Para analizar la convergencia, supondremos que podemos ordenar los autovalores de
A (repetidos acorde a su multiplicidad algebraica) de la siguiente manera:
|1 | > |2 | |3 | |n |.
Si esto ocurre decimos que 1 es el autovalor dominante de A, y es necesariamente simple.
En este caso, por la descomposicion de Jordan, hay una matriz
X = x1 X 2 ,
x1 Cn , kx1 k2 = 1, X2 Cn(n1) ,
tal que
X
1 0T
AX =
,
0 B
con B C(n1)(n1) .
190
uk =
k1 . . . 0 k1
0
.
(B/1 )k w0
0 x1 + X2 (B/1 )k w0
,
k0 x1 + X2 (B/1 )k w0 k2
k = 1, 2, . . . ,
k1 = kAuk1 k,
cuando k ,
1
uk x1 k = kuk k x1 k
k
1 siempre que x1
1 .
y que k x1
La cota sobre la tasa de convergencia es consecuencia de que dado > 0 existe una
constante C, dependiente de B y tal que
k(B/1 )k k C((B/1 ) + )k C(|2 /1 | + )k .
Si y1H u0 6= 0, decimos que u0 tiene una componente no nula en la direccion de x1 .
Esta condicion no puede verificarse directamente pues no conocemos y1 . Mas a
un,
no es suficiente que y1H u0 sea no nulo, debera ser grande relativo a ku0 k para que
el metodo converga en un n
umero razonable de iteraciones. En general, salvo que
se conozca algo del problema, u0 se elige al azar.
El metodo de las potencias es muy atractivo por su simplicidad, cada iteracion
requiere un producto matriz-vector y una normalizacion (escalamiento).
Sin embargo, el metodo de las potencias tiene desventajas importantes. Solo garantiza converger a un autovalor dominante, que en general podra no existir. Por
ejemplo, si la matriz A es real y el autovalor de modulo maximo es complejo, su
complejo conjugado es tambien de modulo maximo, y no hay autovalor dominante.
A
un cuando haya un autovalor dominante 1 , si |2 | es cercano a |1 | entonces la
convergencia puede ser demasiado lenta.
En sntesis, el metodo de las potencias se considera una herramienta para un
proposito especial, para casos en que uno sabe que tiene un autovalor dominante con |2 |/|1 | peque
no. No se considera un algoritmo general.
El cociente de Rayleigh.
Supongamos que tenemos una aproximacion x de un autovector de A y queremos obtener
una aproximacion del autovalor correspondiente. Una manera natural sera hallar el
n
umero C que minimiza
kAx xk2 .
Esto es un problema de mnimos cuadrados con x jugando el rol de la matriz, Ax el rol
del vector a ser aproximado, y el u
nico parametro a ajustar. Las ecuaciones normales
entonces lucen as:
(xH x) = xH (Ax),
por lo que
=
xH Ax
.
xH x
xH Ax
El cociente H
se llama cociente de Rayleigh y juega un papel preponderante en la
x x
teora y practica computacional de problemas de autovalores.
192
x = xH A(x x) + (xH xH )A
x.
Por lo tanto
(kA
| |
xk2 + kAxk2 )kx xk2 2kAk2 kx xk2 .
sera cercano a .
Por lo tanto, si el autovector x es cercano a x, el autovalor
193
Observaci
on 7.4. Consideremos el algoritmo anterior, pero supongamos que cambiamos
las lneas uk+1 = Avk por
uk+1 : solucion del sistema Au = vk .
Es decir, uk+1 = A1 vk . En ese caso, estaramos aproximando el autovalor dominante de
A1 , que es el inverso del autovalor de modulo mnimo de A.
7.3
M
etodo de las potencias inversas
Una posible mejora para el metodo de las potencias sera transformar la matriz para que
los autovalores esten mejor ubicados, de manera que la convergencia sea mas rapida. Una
opcion sera trasladar (shift) la matriz, cambiandola por AI de manera que el cociente
entre el modulo del autovalor dominante y el sub-dominante sea mayor. El cambio mas
dramatico se obtiene cuando se combina una traslacion con una inversion.
Sea una aproximacion de un autovalor simple 1 de A. Recordemos que los autovalores de A I son i , mas precisamente
(A I) = (A) = { : (A)},
y los autovalores de (A I)1 son (i )1 , o bien,
1
1
: (A) .
(A I)
=
Por supuesto, en las lneas donde dice uk+1 = (A I)1 vk debe entenderse:
uk+1 : solucion del sistema (A I)u = vk .
El metodo de las potencias inversas puede ser muy rapido si conocemos un parametro
shift cercano al autovalor buscado, y podra combinarse con el de las potencias de la
seccion anterior, para acelerar la convergencia una vez que se sabe que se esta cerca. No
conviene ir actualizando con k en cada paso, pues cuando estamos cerca, la matriz
(A I) es muy cercana a ser singular.
Observaci
on 7.5. Las ventajas del metodo de las potencias inversas es que converge
muy rapido y que se pueden obtener todos los autovalores, siempre que se tenga una
buena aproximacion de cada uno de ellos. Las desventajas son que se requiere una buena
aproximacion del autovalor buscado y que debe resolverse un sistema en cada iteracion.
Aunque cada paso del algoritmo es mas costoso, pues se debe resolver un sistema de
ecuaciones, igualmente puede llegar a ser conveniente, por dos razones:
Si la matriz es llena y/o peque
na, puede factorizarse antes de comenzar la iteracion,
y en cada paso, la resolucion llevara O(n2 ) operaciones correspondientes a resolver
dos sistemas triangulares.
Si la matriz es grande y rala (sparse) se puede utilizar un metodo iterativo, y
probablemente la convergencia sera rapida si en cada resolucion del sistema lineal
se utiliza la uk del paso anterior.
7.4
Algoritmo QR
tal que tii son los autovalores de A. La demostracion de esta descomposicion se baso en
el conocimiento de los autovalores y autovectores. El objetivo ahora es dise
nar metodos
para calcular los autovalores y por eso debemos hallar una manera iterativa y constructiva
de hallar la descomposicion de Schur.
El algoritmo QR es un algoritmo iterativo para hallar la descomposicion de Schur de
una matriz A. Comenzando con A0 = A, procede a reducir A iterativamente a forma
triangular por una sucesion de transformaciones de similaridad unitarias:
Ak+1 = QH
k Ak Qk ,
k = 0, 1, 2, . . . .
195
Ejercicios
7.1. Demostrar que el algoritmo QR mantiene la hermiticidad de las matrices. Mas
precisamente, sea A Cnn hermtica, demostrar que si
A = QR,
QH Q = I,
entonces A es hermtica.
A que tiende la sucesion de matrices {Ak }k1 producida por el algoritmo QR cuando
A es hermtica? Que se puede decir de la sucesion {Pk }k1 ?
R
cumplen
7.2. Sea A Cnn una matriz no singular. Demostrar que si Q, R, Q,
R,
A = QR = Q
H Q
= I,
QH Q = Q
entonces existen n
umeros complejos i , |i | = 1, i = 1, 2, . . . , n tales que
= QS,
Q
= S H R,
R
con S = diag(1 , 2 , . . . , n ).
2 1
1
2 1
0
1
2
1
AN =
RN N .
... ... ...
0
1
2 1
1
2
(a) Demostrar que si 1 i N , el vector xi RN definido por (xi )j = sen( Nij
) es un
+1
i
2
autovector de A correspondiente al autovalor i = 4 sen 2(N +1) .
(b) Verificar el orden de convergencia de los autovalores para distintos valores de N (5,
15, 50). Comparar con el orden previsto por la teora.
196
Bibliografa
[A] K.E. Atkinson, An introduction to Numerical Analysis, 2nd edition, John Wiley &
Sons, 1989. 20
[LT] Stig Larsson, Vidar Thomee, Partial Differential Equations with Numerical Methods,
Springer, 2005. 50
[St] G.W. Stewart, Afternotes goes to graduate school, SIAM, 1996. 103
197