Sunteți pe pagina 1din 197

Calculo Numerico II

Apuntes sobre algunos temas de


C
alculo Numerico II
Licenciatura en Matematica Aplicada
Facultad de Ingeniera Qumica
Universidad Nacional del Litoral
Eduardo M. Garau, Pedro Morin
18 de agosto de 2016

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.

A veces los resultados no son tan elegantes como en Algebra


o Analisis. Esto se
debe a que estamos mas cerca del mundo real y mas lejos del mundo ideal en el que
se desarrollan estas teoras.
Tendremos en cuenta la eficiencia a traves de la economa de calculo. Si bien un
calculo puede tardar 10 milisegundos en realizarse, hay que tener en cuenta que
dicho calculo puede formar parte de un proyecto mas grande, donde ese calculo
deba repetirse 104 o 106 veces, o incluso mas.
Utilizaremos para la implementacion y verificacion experimental el matlab. Algunas de las cosas que programaremos ya estan implementadas. Igualmente implementaremos una version propia porque estamos aprendiendo los fundamentos y
esto ayuda a comprender, y porque puede suceder que en alguna situacion necesitemos implementar alg
un algoritmo en otro lenguaje, por ejemplo dentro de alg
un
proyecto mayor.

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

3 Problemas a valores iniciales y de borde. Ecuaciones parab


olicas lineales
3.1 Diferencias finitas para la ecuacion del calor unidimensional . . . . . . .
3.1.1 Euler explcito . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Euler implcito . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3 Metodo del trapecio. Crank-Nicolson . . . . . . . . . . . . . . . .
3.2 Diferencias finitas para la ecuacion del calor bidimensional . . . . . . . .
4 M
etodos directos para sistemas lineales

4.1 Breve repaso de Algebra


Lineal . . . . . . . . . . . .
4.2 Matrices triangulares inferiores . . . . . . . . . . . .
4.3 Matrices triangulares superiores . . . . . . . . . . . .
4.4 Matrices llenas. Metodo de Gauss . . . . . . . . . . .
4.5 Factorizacion LU . . . . . . . . . . . . . . . . . . . .
4.6 Problemas con la factorizacion LU. Pivoteo . . . . . .
4.7 Factorizacion de Cholesky. Matrices sdp . . . . . . .
4.7.1 Matrices simetricas y definidas positivas (sdp)
4.8 Factorizacion QR . . . . . . . . . . . . . . . . . . . .
4.8.1 Mnimos cuadrados . . . . . . . . . . . . . . .
4.8.2 Matrices ortogonales . . . . . . . . . . . . . .
4.8.3 Ortogonalizacion de Gram-Schmidt . . . . . .
4.8.4 Matrices de Householder . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

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

6 Sistemas de ecuaciones no lineales


170
6.1 Metodos de punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.2 El metodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
6.2.1 Convergencia global del metodo de Newton . . . . . . . . . . . . . 180
7 M
etodos num
ericos para problemas de autovalores
7.1 Repaso de definiciones y propiedades elementales . .
7.2 El metodo de las potencias . . . . . . . . . . . . . . .
7.3 Metodo de las potencias inversas . . . . . . . . . . .
7.4 Algoritmo QR . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

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,

con f : R R R, f (t, y) = 5y, la familia de soluciones que cumple la ecuacion


diferencial y 0 = 5y es la clase de todas las funciones y(t) = Ce5t con C constante
arbitraria. Al imponer la condicion inicial y(0) = 3 se tiene que la solucion al PVI es la
que corresponde a C = 3, es decir y(t) = 3e5t es la solucion sobre R.
Ejemplo 1.3. El siguiente PVI corresponde a un modelo de los mas elementales de
predador-presa:

 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

el vector y = 0 , es equivalente al problema (PVI) con



 
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

Recprocamente, si y C(J) y se cumple (1.1) para f continua, entonces y C 1 (J) y


por el teorema fundamental del calculo, y es solucion de (PVI).

1.1

Existencia, unicidad y estabilidad de soluciones

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)

Si t0 I, y0 D, entonces existe una u


nica solucion de (PVI) en [a, b].
Demostracion. Para la demostracion utilizaremos el metodo de las aproximaciones sucesivas de Piccard. Definimos yk : I R inductivamente como sigue:
t [a, b],

y0 (t) = y0 ,
Z

yk+1 (t) = y0 +

f (s, yk (s)) ds,


t0

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!

max |yk+1 (t) yk (t)| A

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

y como la serie k=0 A k!


= AeU (ba) converge, resulta que yn converge uniformemente a una funcion continua y en [a, b].
Ademas, cualquiera sea t [a, b],
Z t

Z t


f (s, yk (s)) ds
f (s, y(s)) ds U (b a) max |yk (s) y(s)| 0,

t0

s[a,b]

t0

y por lo tanto
Z

y(t) = y0 +

f (x, y(s)) ds,

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

Si consideramos t t0 resulta que


Z t
Z t
|y1 (t) y2 (t)|
|f (s, y1 (s)) f (s, y2 (s))| ds U
|y1 (s) y2 (s)| ds.
t0

t0

Por el Lema de Gronwall (Lema 1.7) resulta que


|y1 (t) y2 (t)| 0 eU (tt0 ) = 0,
8

t t0 .

Para el caso t t0 hacemos el cambio de variables = t t0 y obtenemos


Z
|y1 (t0 s) y2 (t0 s)| ds, 0.
|y1 (t0 ) y2 (t0 )| U
0

Nuevamente por la desigualdad de Gronwall,


|y1 (t0 ) y2 (t0 )| 0 eU = 0,

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].

Finalmente, por la hipotesis (1),


g(t) G(t) eU (ta) g0 ,

t [a, b].

Supongamos ahora que se cumple la hipotesis (2). Entonces


g 0 (t) U g(t) 0


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].

Multiplicando ambos miembros por eU (ta) obtenemos la afirmacion del lema.


Observaci
on 1.8. El resultado que se obtiene bajo la hipotesis (1) se conoce como Lema
de Gronwall integral y el que se obtiene bajo la hipotesis (2) es el Lema de Gronwall
diferencial. Para el primero hace falta que U 0 mientras que el segundo vale para
cualquier valor de U R. Tambien vale el siguiente resultado que se demuestra de
manera analoga al Lema de Gronwall diferencial.
9

Sea g : [a, b] R continua con g(t) 0 en [a, b] y g(a) = g0 . Si U R, g es


diferenciable en (a, b) y g 0 (t) Lg(t), t [a, b], entonces
g(t) g0 eL(ta) ,

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

Teorema 1.11. Sea I = [a, b] y supongamos que f : I Rd Rd es continua de ambas


variables, diferenciable con respecto a y Rd , con matriz diferencial

d
fi
f
=
.
y
yj i,j=1
Supongamos ademas que existen constantes L, U tales que
L|x|2

f
(t, y)x x U |x|2 ,
y

t [a, b], y R, x Rd .

(1.3)

Si y, z denotan soluciones a los siguientes problemas,


(
(
z 0 = f (t, z),
y 0 = f (t, y),
z(a) = z0 .
y(a) = y0 ,
entonces
|y0 z0 |eL(ta) |y(t) z(t)| |y0 z0 |eU (ta) ,

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.

Si d 1 y A es una matriz de d d, entonces Ax x = xT Ax siempre que x sea un vector


columna. Si A es simetrica, L|x|2 xT Ax U |x|2 se cumple tomando L, U iguales
al mnimo y maximo autovalor de A, respectivamente. En efecto, si A es simetrica,
es diagonalizable con A = V V T , donde V , son matrices reales con V ortogonal
(V T V = V V T = I) y diagonal con los autovalores de A sobre la diagonal. Luego
T
x y = y T y =
xT Ax = |{z}
xT V V
|{z}
yT

d
X

ii yi2 .

i=1

Si llamamos max = max1id ii , min = min1id ii , y observamos que


d
X

yi2 = |y|2 = y T y = xT V V T x = xT x = |x|2 ,

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

|y0 z0 |2 e2L(ta) |(y z)(t)|2 |y0 z0 |2 e2U (ta) ,


que inmediatamente implica la afirmacion del teorema.
Ejemplo 1.13. Consideremos el PVI siguiente
(
y 0 = 2y + et ,
y(0) = y0 .
La solucion esta dada por
y(t) = et + (y0 1)e2t ,

t 0.

La diferencia entre las soluciones y, z con dato inicial y0 , z0 es


y(t) z(t) = (y0 z0 )e2t ,

t 0,

y se acercan exponencialmente a medida que t crece. En este caso L = U =

f
= 2.
y

Ejemplo 1.14. Consideremos el siguiente PVI:


(
y 0 = 2y 3et ,
y(0) = y0 .
Este problema tiene solucion
y(t) = et + (y0 1)e2t ,

t 0.

En particular, la solucion para y0 = 1 es y(t) = et , que luce estable. Sin embargo, la


diferencia entre dos soluciones con dato inicial y0 , z0 es
y(t) z(t) = (y0 z0 )e2t ,

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

Si interpretamos geometricamente un PVI vemos que resolver el problema consiste en


hallar la curva del plano que pasa por (t0 , y0 ) y que en cada punto (t, y) de la curva, la
tangente tiene pendiente f (t, y).
A partir de esta interpretacion surge la siguiente idea.
A partir del punto (t0 , Y0 ) avanzar por un peque
no paso de tiempo con la
pendiente que debe tener la curva en (t0 , Y0 ), es decir, con pendiente f (t0 , Y0 ),
hasta un punto (t1 , Y1 ).
Mas precisamente:
Y1 Y0
= f (t0 , Y0 )
t1 t0

Y1 = Y0 + (t1 t0 )f (t0 , Y0 ).

Es decir, una vez decidido el paso de tiempo t1 = t1 t0 , Y1 se calcula a partir de


la formula Y1 = Y0 + t1 f (t0 , Y0 ).
Si repetimos este procedimiento a partir de (t1 , Y1 ) obtenemos el siguiente metodo,
llamado Metodo de Euler :
Y0
Y1
Y2
Y3

= y0
= Y0 + t1 f (t0 , Y0 )
= Y1 + t2 f (t1 , Y1 )
= Y2 + t3 f (t2 , Y2 )
..
.

En matlab podra programarse de la siguiente manera, para t = h = (b a)/N


constante:
function [t,Y] = euler(f, inter, Y0, N)
% function [t,Y] = euler(f, [a, b], Y0, N)
% Resuelve la ecuacion y = f(t,y)
% por el metodo de Euler, en el intervalo [a,b]
% con condicion inicial y(a) = Y0.
% Se utiliza delta t = (b-a) / N.
% Es decir, N es el numero de pasos del metodo.
% f(t,Y) es una funcion de dos argumentos,
%
t: escalar
13

%
%
%
%
%
%

Y: vector columna del mismo tamano que Y0


(retorna un vector columna)
Salida:
t: vector columna de instantes de tiempo en que se calcula Y
Y: matriz donde la fila i es la aproximacion de y(t(i))

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

Para realizar un primer analisis observamos que en general Y1 6= y(t1 ) y que en el


primer paso ya cometemos alg
un error. En el segundo paso, comenzamos a partir de
(t1 , Y1 ) que no se encuentra en la trayectoria de la solucion buscada sino en otra, y a
partir de ah, el error se propagara y a la vez se combinara con los errores de los pasos
siguientes. Para ver el efecto de todos los errores locales sobre el error global hace falta
ser mas precisos.
Supongamos que el metodo produjo una sucesion {(tn , Yn )}N
n=0 , con Yn y(tn ). Definimos yn (t) como la solucion (exacta) del siguiente PVI
(
(PVI)n

yn0 = f (t, yn ),
yn (tn ) = Yn .

tn t b,

Es decir, yn es la solucion de la EDO cuyo grafico pasa por (tn , Yn ). Entonces, n :=


yn (tn+1 ) Yn+1 es el error local que produjo el metodo en el paso n. Es decir, n mide
cuanto nos alejamos en el paso n de la solucion que pasa por (tn , Yn ).
f
0, es decir, vale (1.3) con
Para fijar ideas, consideremos el caso escalar en que
y
U = 0. Entonces, por el Teorema 1.11 resulta que las soluciones yn no se alejan entre s,
mas precisamente, si t tj+1 ,
|yj (t) yj+1 (t)| |yj (tj+1 ) yj+1 (tj+1 )| = |yj (tj+1 ) Yj+1 | = j .
14

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)!

Usando el teorema de Taylor y considerando que h = (b a)/N y que tj = t0 + jh,


j = 0, 1, . . . , N , tenemos que
yn (tn+1 ) = yn (tn ) + hyn0 (tn ) +

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

y si existe M > 0 tal que maxatb |yn00 (t)| M , n = 0, 1, . . . , N 1, entonces


n

M h2
,
2

n = 0, 1, . . . , N 1.

De ahora en adelante, cuando escribamos A B con A una matriz de d d o un escalar y B una


matriz de d d o un escalar, entenderemos que Ax x Bx x, para todo x Rd .

15

Finalmente, acotamos el error global usando (1.4):


max |Yn y(tn )| N

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

Consideremos el metodo de un paso general


Yn = Yn1 + h(tn1 , Yn1 , h),
donde representa la formula que se utiliza, y que involucra a la funcion f . Para el
metodo de Euler, (t, Y, h) = f (t, Y ).
El error local de truncamiento de este metodo se define como n que cumple
y(tn ) = y(tn1 ) + h(tn1 , y(tn1 ), h) + hn ,
con y la solucion de (PVI), es decir,
hn = y(tn ) [y(tn1 ) + h(tn1 , y(tn1 ), h)].
En palabras, hn mide el error que cometera el metodo al realizar un paso, a partir de
(tn1 , y(tn1 )), donde y es la solucion del PVI original.
Con el Teorema de Taylor estimamos n para el metodo de Euler,
hn = y(tn ) [y(tn1 ) + hf (tn1 , y(tn1 ))] = y(tn ) [y(tn1 ) + hy 0 (tn1 )] =
00

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

Teorema 1.17. Consideremos el metodo de un paso


Yn = Yn1 + h(tn1 , Yn1 , h),

n = 1, 2, . . . , N,

con h = (b a)/N . Supongamos que es Lipschitz continua de la segunda variable, para


h suficientemente peque
no. Mas precisamente, supongamos que existe h0 > 0 tal que
|(t, y, h) (t, z, h)| K|y z|,

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,

si tambien e0 0 cuando h 0. Si bien todos los metodos numericos proponen Y0 = y0


suele ocurrir en la practica que y0 no se conoce exactamente, sino con alg
un error, por
ejemplo, un error de medicion, y es por eso que se hace necesario considerar este error al
realizar el analisis del error del metodo.
Definici
on 1.19. Si h := N = O(hp )bajo ciertas hipotesis de regularidad de la
solucion y de (PVI)entonces max1nN en = O(hp ) (si y0 = Y0 ) y por eso se dice que
el metodo es de orden p.
Observaci
on 1.20. El metodo de Euler es de orden uno, si la solucion exacta tiene y 00
2
acotada. En efecto, h
h maxatb |y 00 (t)| h2 y por lo tanto h = O(h).

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

Yn+1 = Yn + ak1 + bk2

| {z }

h(tn ,Yn ,h)

Se pueden elegir , a, b para que h = O(h2 )?


Recordemos que hn+1 = y(tn+1 )(y(tn ) + h(tn , y(tn ), h)). Denotamos entonces con
ki a las correspondientes a y en lugar de Y , mas precisamente
k1 = hf (tn , y(tn )) =: hf n
k2 = hf (tn + h, y(tn ) + k1 )
h
i
2
2

= h f (tn , y(tn )) + hft (tn , y(tn )) + k1 fy (tn , y(tn )) + O (h + k1 )


h
i
= h f n + hftn + k1 fyn + O 2 (h + k1 )2
h
i
n
n
n n
2
2

= 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

Por otro lado, aplicando Taylor a la solucion exacta y obtenemos


h3
h2 00
y (tn ) + y 000 (n )
2
6
i
2h
h
= hf n +
ftn + f n fyn + O(h3 ).
2

y(tn+1 ) y(tn ) = hy 0 (tn ) +

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

Este sistema de ecuaciones no-lineales tiene infinitas soluciones, y da bastante libertad


de eleccion. La eleccion natural o mas simetrica es a = b = 1/2, = 1 y da el clasico
metodo de Runge-Kutta de orden dos:

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)

Son metodos de paso adaptativo, basados en los de Runge-Kutta. El error local de


truncamiento se estima en terminos de la diferencia entre una solucion calculada Yn+1 y
otra solucion Yn+1 asociada a un metodo de orden superior. El objetivo es lograr un error
global menor que una tolerancia dada, a un costo bajo.
19

El metodo RKF45 se dise


na de la siguiente manera. Primero se buscan dos metodos
de Runge-Kutta, uno de orden 4 y otro de orden 5, pero de manera que los calculos
realizados para uno de ellos sirvan para el otro. Aqu se aprovecha la libertad de eleccion
de los coeficientes ki en la definicion del metodo.
Sin demostrar todos los detalles, con el objetivo de comprender como se define el
metodo, decimos lo siguiente:
Es posible elegir j , ji , i = 1, 2, . . . , j 1, j = 2, 3, . . . , 6, j , j = 1, 2, . . . , 5, j ,
j = 1, 2, . . . , 6 de manera que se cumple lo siguiente2 . Si definimos
k1 = hf (tn , Yn ),
kj = hf (tn + j h, Yn +

j1
X

ji ki ),

j = 2, 3, . . . , 6,

i=1

con h = hn+1 = tn+1 tn , y


Yn+1 = Yn +

5
X

j kj ,

j=1

Yn+1 = Yn +

6
X

j kj ,

j=1

entonces Yn+1 corresponde a un metodo de Runge-Kutta de orden 4 y Yn+1 a uno de


orden 5. Es importante destacar que si bien j 6= j , los coeficientes j y ji son los
mismos para ambos metodos. Por lo tanto el costo, medido en n
umero de evaluaciones
de la funcion f (t, y), es el mismo tanto para calcular Yn+1 como para calcular Yn+1 y Yn+1
simultaneamente.
En la notacion de la Seccion 1.2.1 resulta que
n := |Yn+1 yn (tn+1 )| = O(h5 ),
n := |Yn+1 yn (tn+1 )| = O(h6 ),
donde

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

(3) Si Tn < hn+1 tol/(b a)


Aceptar Yn+1 y definir tn+1 = tn + hn+1 .
Si Tn < Ahn tol/(b a) % (*) si es mucho mas peque
no que lo deseado
hn+2 = Qhn+1 % agrandar un poco h para la proxima
Fin Si
Si no
% no aceptamos Yn+1
hn+1 = P hn+1 % (**) achicar h y re-calcular
Ir a (1)
Fin Si
(4) n = n + 1;
Observaci
on 1.21.
que

Cuando el algoritmo termina, digamos, en N pasos, resulta


N
X

n=0

N
X

Tn

n=0

N
X
hn tol
n=0

ba

= tol,

y por lo tanto, en virtud del Comentario 1.15,


max |y(tn ) Yn | eU+ (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

Cuando consideramos un metodo de un paso generico, tenemos los siguientes calculos:


valor calculado
valor ideal

Yn+1 = Yn + h(t
n , Yn , h),
Yn+1 = Yn + h(tn , Yn , h).

El error local es ahora


n = |Yn+1 yn (tn+1 )| |Yn+1 Yn+1 | + |Yn+1 yn (tn+1 )| .
|
{z
} |
{z
}
n

Analogamente a lo hecho en la Seccion 1.2.1 obtenemos


max |Yn y(tn )| eU+ (ba)

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.

Cuando un problema y 0 = f (t, y) tiene

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

La region R de estabilidad de RK2 puede verse en la Figura 1.1.


23

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

El metodo de Euler se puede obtener a partir de la formula de Taylor alrededor de tn , en


efecto
y(tn+1 ) = y(tn ) + hy 0 (tn ) + O(h2 )
y(tn+1 ) y(tn ) + hf (tn , y(tn ))
Yn+1 = Yn + hf (tn , Yn )
Si usamos la formula de Taylor alrededor de tn+1 obtenemos
y(tn ) = y(tn+1 ) hy 0 (tn+1 ) + O(h2 )
y(tn+1 ) = y(tn ) + hy 0 (tn+1 ) + O(h2 )
y(tn+1 ) y(tn ) + hf (tn+1 , y(tn+1 ))
Yn+1 = Yn + hf (tn+1 , Yn+1 )
El metodo de Euler implcito o Retro Euler se define entonces por la iteracion
Yn+1 = Yn + hf (tn+1 , Yn+1 ),
Es decir, Yn+1 es la solucion Y de la ecuacion algebraica
Y = Yn + hf (tn+1 , Y ).
24

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

Consideremos, una particion uniforme de [a, b], es decir, h = (b a)/N y tn = a + nh,


n = 0, 1, . . . , N .
Si ahora fijamos k N y tomamos n k, podemos definir el polinomio qk Pk que
interpola a f (tnj , y(tnj )) para ciertos ndices j entre 1 y k. Entonces, resultara que
Z tn+1
Z tn+1
y(tn+1 ) = y(tn ) +
f (t, y(t)) dt y(tn ) +
qk (t) dt.
(1.6)
tn

tn

Tenemos al menos dos opciones para elegir el polinomio qk :


25

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)

para n = k, k + 1, . . . , N 1, que resulta un metodo explcito, pues Yn+1 esta


despejado a la izquierda de la igualdad. Los (primeros) valores Y1 , Y2 , . . . , Yk
deben calcularse por otro metodo. Mas adelante veremos como elegirlos de manera
adecuada para mantener la precision del metodo.
M
etodos implcitos: Elegimos qk Pk como el polinomio que interpola a f (t, y(t))
para t = tnj , j = 1, 0, 1, . . . , k 1 (nuevamente k + 1 puntos). En este caso,
resulta que la integral a la derecha de (1.6) es una formula que involucra h, fnj ,
j = 1, 0, . . . , k1, y que denotaremos con FkAM (h, fn+1 , fn , fn1 , . . . , fnk+1 ). Mas
precisamente, tenemos
y(tn+1 ) y(tn ) + FkAM (h, fn , fn1 , . . . , fnk+1 ).
En base a esta igualdad aproximada se define el metodo de Adams-Moulton de orden
k + 1 como
Yn+1 = Yn + FkAM (h, f (tn+1 , Yn+1 ), f (tn , Yn ), . . . , f (tnk+1 , Ynk+1 ),

(1.8)

para n = k 1, k, . . . , N 1, que resulta un metodo implcito, pues Yn+1 es solucion


de la ecuacion
Y = Yn + FkAM (h, f (tn+1 , Y ), f (tn , Yn ), . . . , f (tnk+1 , Ynk+1 ).
Como antes, los primeros valores Y1 , Y2 , . . . , Yk1 deben calcularse por otro metodo. Mas adelante veremos como elegirlos de manera adecuada para mantener la
precision del metodo.
Ejemplos de m
etodos de Adams-Bashforth.
Si consideramos k = 0, q0 es el polinomio de grado cero (funcion constante) que interpola
f (tn , y(tn )) y resulta
Z tn+1
Z tn+1
AB
F0 (h, fn ) =
q0 (t) dt =
f (tn , y(tn )) dt = hf (tn , y(tn )).
tn

tn

El metodo de Adams-Bashforth de orden uno es entonces


Yn+1 = Yn + hf (tn , Yn ),
26

y coincide con el metodo explcito de Euler.


Si consideramos k = 1, q1 es el polinomio de grado uno (funcion lineal) que interpola
f (t, y(t)) en t = tn , tn1 y resulta, denotando fn = f (tn , y(tn )),
F1AB (h, fn , fn1 )

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

El metodo de Adams-Bashforth de orden dos es entonces


Yn+1 = Yn +


h
3f (tn , Yn ) f (tn1 , Yn1 ) .
2

Analogamente se obtiene el metodo de Adams-Bashforth de orden tres que resulta


i
hh
23f (tn , Yn ) 16f (tn1 , Yn1 ) + 5f (tn2 , Yn2 ) .
12

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

fn+1 dt = hfn+1 = hf (tn+1 , y(tn+1 )).


tn

El metodo de Adams-Moulton de orden uno es entonces


Yn+1 = Yn + hf (tn+1 , Yn+1 ),
y coincide con el metodo de Euler implcito o Retro-Euler.
Si consideramos k = 1, q1 es el polinomio de grado uno (funcion lineal) que interpola
f (t, y(t)) en t = tn+1 , tn y resulta
F1AM (h, y(tn ))

tn+1

q1 (t) dt = h
tn


fn + fn+1
h
= fn + fn+1 .
2
2

El metodo de Adams-Moulton de orden dos es entonces


i
hh
Yn+1 = Yn + f (tn , Yn ) + f (tn+1 , Yn+1 ) .
2
Este metodo se conoce tambien como metodo del trapecio, dado que coincide con el metodo
que se obtiene reemplazando la integral de la derecha en (1.5) por la regla del trapecio.
Analogamente se obtiene el metodo de Adams-Moulton de orden tres que resulta
Yn+1 = Yn +

i
hh
5f (tn+1 , Yn+1 ) + 8f (tn , Yn ) 1f (tn1 , Yn1 ) .
12
27

1.4.2

Midpoint

Otro metodo multipaso, que no pertenece a la familia de los metodos de Adams es el


metodo Midpoint, que surge de observar que
Z tn+1
f (t, y(t)) dt y(tn1 ) + 2hf (tn , y(tn )).
y(tn+1 ) = y(tn1 ) +
tn1

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

Consideremos un metodo multipaso generico como el que sigue:


Yn+1 =

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

para todo 0 < h < h0 .

A continuacion obtendremos acotaciones para h (y), para los metodos de Adams. Lo


haremos partiendo de la definicion de los mismos, considerando que surgen de reemplazar
el integrando en (1.7) por un polinomio que interpola f (t, y(t)) en ciertos puntos.
Orden de los m
etodos de Adams-Bashforth.
Consideremos el metodo de Adams-Bashforth the orden p + 1, que luce
Yn+1 = Yn + h

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

para Q Pp que cumple Q(tnj ) = fnj , j = 0, 1, . . . , p.


El error local de truncamiento es, para y C 1
p
h
i
X
Tn (y) = y(tn+1 ) y(tn ) + h
bj y 0 (tnj ) .
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

y como y(tn+1 ) = y(tn ) +

tn+1

bj y (tnj ) =

y 0 (t) dt resulta
Z

tn+1

Tn (y) =

y 0 (t) q(t) dt.

tn

Seg
un la formula del error de interpolacion, si y C p+1 , y tn t tn+1
|y 0 (t) q(t)| =

(t tn )(t tn1 ) . . . (t tnp ) (p+2)


|y
()|,
(p + 1)!
29

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],

para f : [a, b] Rd que satisface la condicion de Lipschitz


|f (t, y) f (t, z)| U |y z|,

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

para constantes c1 , c2 que dependen de la constante Lipschitz de f .


Si el metodo es de orden m, las primeras Yn , n = 0, 1, . . . , p se eligen de manera que
(h) = O(hm ), y la solucion exacta y C m+1 [a, b], entonces la velocidad de convergencia
del metodo es O(hm ).
Observaci
on 1.29. Observemos que si utilizamos un metodo multipaso con orden h (y) =
m
O(h ), el metodo resultara de orden O(hm ) solo si la manera de calcular los primeros
Y1 , Y2 , . . . , Yp garantiza que h (y) = O(hm ).
30

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 , y(tnj ) +Tn (y),


|
{z
}
y 0 (tnj )

bj f (tnj , Ynj ).

j=1

Definiendo en := y(tn ) Yn obtenemos


en+1 =

p
X

aj enj + h

j=0

p
X

bj [f (tnj , y(tnj ) f (tnj , Ynj )] + Tn (y),

j=1

y luego, por la desigualdad triangular y la condicion Lipschitz de f , definiendo En :=


max0jn |ej |, tenemos que
|en+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

|bj | |f (tnj , y(tnj )) f (tnj , Ynj )| + hh (y)

j=1
p



|bj | U y(tnj ) Ynj + hh (y)
{z
}
|
enj

|bj | En+1 + hh (y).

j=1

{z
C

Resumiendo,
|en+1 | En + hCEn+1 + hh (y),

n = p, p + 1, . . . , N.

Como E1 E2 EN , resulta que, para k n


|ek+1 | Ek + hCEk+1 + hh (y) En + hCEn+1 + hh (y),
31

y por lo tanto,
max |ek | = En+1 En + hCEn+1 + hh (y),

n = p, p + 1, . . . , N,

0kn+1

que a su vez implica


(1 hC)En+1 En + hh (y),

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

Recordando que (1 + 2hC)n e2hnC e2hN C = e2(ba)C =: c1 obtenemos


Ep+n c1 h (y) +

c1 1
h (y),
C }
| {z
c2

que inmediatamente implica la afirmacion del teorema.

1.5.2

Criterios para la convergencia de m


etodos multipaso

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

Demostracion. Observemos que Tn es lineal, es decir, si , R y v, w C 2 , entonces


Tn (v + w) = Tn (v) + Tn (w).
Por el teorema de Taylor (ver Teorema 1.32), si y C 2
Z

y(t) = y(tn ) + y (tn )(t tn ) + R2 (t),

con R2 (t) =

(t s)y 00 (s) ds.

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 ).

Ahora bien, por un lado


Tn (1) = 1

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

Por otro lado,


Tn (R2 ) = R2 (tn+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 M = max[a,b] |y 00 |. En sntesis, |n | C, con C una constante que depende del


maximo de |y 00 | en [a, b] y de los coeficientes aj , bj que definen el metodo multipaso.
Resumiendo, tenemos que
Tn (y) = y(tn )c0 + hy 0 (tn )c1 + h2 n ,
33

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

para h 0, por lo que el metodo es consistente.


2
Para probar la recproca, supongamos que h (y)
0 cuando h 0 para toda y C .
1
En particular, para y = 1, resulta h (y) = h c0 luego c0 debe ser cero. Para y(t) = t
resulta ahora h (y) = c1 y por lo tanto debe ser c1 = 0.
En la proposicion anterior y en la que sigue usamos la siguiente version del teorema
de Taylor, cuya demostracion puede encontrarse en cualquier libro de Calculo en una
variable.
Teorema 1.32. Si y C k+1 (a, b) y x0 (a, b), entonces, para x (a, b),
(x x0 )2 00
(x x0 )k (k)
y (x0 ) + +
y (x0 ) + Rk+1 (x),
2!
k!
Z
Z
1 x
1 x
k (k+1)
con Rk+1 (x) =
(s x0 ) y
(x0 + x s) ds =
(x s)k y (k+1) (s) ds.
k! x0
k! x0
y(x) = y(x0 ) + (x x0 )y 0 (x0 ) +

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

Observemos que la condicion (1.12) es equivalente a las condiciones (1.13) para i =


0, 1.
Demostracion. La demostracion sigue los mismos pasos de la demostracion de la proposicion anterior. Comenzamos viendo que por el teorema de Taylor,
y(t) =

m
X
(t tn )i
i=0

i!

(i)

y (tn ) + Rm+1 (t)

1
con Rm+1 (t) =
m!

(t s)m y (m+1) (s) ds.

tn

Luego, por la linealidad de Tn resulta


Tn (y) =

m
X
y (i) (tn )
i=0

i!

Tn (( tn )i ) + Tn (Rm+1 ).

Veamos que es Tn (( tn )i ), para i = 0, 1, . . . , m.


34

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 ).

Veremos a continuacion que


Tn (Rm+1 ) = n hm+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

|Tn (y)| X |ci y (i) (tn )| i1


h (y) = max

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

Considerando los casos particulares y = ti , i = 0, 1, . . . , m obtenemos que


h (y) = ci y (i) (tn )hi1 = ci i!hi1
y luego h (y)/hm = ci i!him1 es acotado solo si ci = 0.
Para finalizar la demostracion falta ver que vale (1.14). Por definicion de Tn ,
Tn (Rm+1 )
hm+1
#
"
p
p
X
X
1
0
bj Rm+1
(tnj ) .
aj Rm+1 (tnj ) h
= m+1 Rm+1 (tn+1 )
h
j=1
j=0

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, . . . .

En el caso modelo f (t, y) = y resulta


Yn+1 =

p
X

aj Ynj + h

j=0

p
X

bj Ynj

j=1

y el problema de hallar la region de estabilidad se traduce en hallar el conjunto de los h


para los que todas las sucesiones obtenidas a partir de

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

Dividiendo por rnp obtenemos la ecuacion equivalente


r

p+1

p
X

aj r

pj

+ h

j=0

p
X

bj rpj ,

j=1

que es a su vez equivalente a


q(r) := (1 hb1 )r

p+1

p
X

(aj + hbj )rpj = 0.

j=0

Dado h C, q(r) es un polinomio de grado p + 1 en r y tiene p + 1 ceros r0 , r1 , . . . , rp .


Si un ri es un zero simple de q entonces rin es una solucion de la ecuacion en (1.16).
Si ri es un cero m
ultiple con multiplicidad mi de q, entonces las soluciones linealmente
independientes son
rin , nrin , n2 rin , . . . , nmi 1 rin .
La solucion general de (1.16) resulta entonces
Nr m
i 1
X
X

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

Si consideramos f (t, y) = y tenemos


Yn+1

i
hh
= Yn + 3Yn Yn1 =
2

3h
1+
2


Yn

h
Yn1 .
2

Buscamos soluciones de la forma Yn = rn , que entonces r debe satisfacer




3h n h n1
n+1
r ,
r
= 1+
r
2
2


3h
h
2
r = 1+
r
,
2
2
es decir, la ecuacion cuadratica


3h
h
r 1+
r+
= 0,
2
2
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

Luego, la region de estabilidad fuerte del metodo AB2 es

 s
2


1 3h
h
1 3h
+

RAB2 = z C : max{|r1 |, |r2 |} < 1, con r1,2 =


.

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

Si consideramos f (t, y) = y tenemos



i 
hh
h
h
Yn+1 = Yn + Yn + Yn+1 = 1 +
Yn +
Yn+1 .
2
2
2
En este caso, resulta


h
h
Yn+1 = 1 +
Yn +
Yn+1 ,
2
2




h
h
Yn+1 1
= Yn 1 +
,
2
2
1 + h
2
.
Yn+1 = Yn
1 h
2
Luego Yn tiende a cero si y solo si

1 +


1

h
2
h
2




< 1.

Por lo tanto, la region de estabilidad resulta




1 +
RAM 2 = z C :
1
39

z
2
z
2




<1 .

Esta region de estabilidad




1 + z2


1 z < 1
2

puede hallarse analticamente, pues



z
z

1 + < 1
2
2



2
z 2
z


1 + < 1
2
2

2 
2 
2 
2
Re z
Im z
Re z
Im z
1+
+
< 1
+
2
2
2
2
2
2
(Re z)
(Re z)
1 + Re z +
< 1 Re z +
4
4
Re z < Re z

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

contour(re, im, val, [.5:.02:1])


grid
axis equal
title(Region de estabilidad de AB3)

contour(re, im, val, [.02:.02:1])


grid
axis equal
title(Region de estabilidad AM3)

print -djpeg reg_estab_AB3


print -deps2c reg_estab_AB3

print -djpeg reg_estab_AM3


print -deps2c reg_estab_AM3

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

Figura 1.2: Regiones de estabilidad para metodos de Adams-Bashforth (izquierda) y


Adams-Moulton (derecha) de orden tres.

1.6

Un m
etodo predictor-corrector

La idea de un metodo predictor-corrector es predecir Yn+1 con un metodo explcito,


y despues corregir el valor colocando la prediccion en el lado derecho de una formula
implcita. El objetivo es lograr un metodo que al final resulta explcito pero que gane un
poco de estabilidad al usar la formula implcita. Por ejemplo, si usamos las formulas de
Adams-Bashforth-Moulton de orden 3, el metodo resulta:
i
hh
(P)
23f (tn , Yn ) 16f (tn1 , Yn1 ) + 5f (tn2 , Yn2 ) ,
Prediccion (AB3): Yn+1 = Yn +
12
i
hh
(P)
Correccion (AM3): Yn+1 = Yn +
5f (tn+1 , Yn+1 ) + 8f (tn , Yn ) 1f (tn1 , Yn1 ) .
12
Queda como ejercicio hallar y graficar la region de estabilidad de este metodo, y tambien
demostrar que tiene un error global de orden O(h3 ).

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

y(tnj )`j,n (t).

j=1

La idea de las BDF es aproximar y 0 (tn+1 ) por q 0 (tn+1 ), es decir


q 0 (tn+1 ) =

p1
X

y(tnj )`0j,n (tn+1 ) y 0 (tn+1 ) = f (tn+1 , y(tn+1 )).

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

que despejando resulta


Yn+1 =

p1
X

j Ynj + hf (tn+1 , Yn+1 ),

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)

x02 (t) = 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

Solucion exacta: y(x) = x/(1 + ln(x))


(b)

dy
= y + (2 + x)|x|
dx

y(1) = e 1

1<x<1

Solucion exacta: y(x) = x|x| + ex


1.4. Resolver numericamente con al menos dos metodos diferentes, el PVI
(3)
y + 4y 00 + 5y 0 + 2y = 4 sen t 2 cos t

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,

cuya solucion exacta es y(t) = cos(t).


Resolverlo numericamente con el metodo de Euler y el metodo de Euler implcito,
usando N = 10, 20, 50, 100, 200, 500, 1000, 2000, 5000, 10 000, . . . .
Graficar algunas soluciones para ver lo que ocurre.
Elaborar una tabla con el error global producido por cada uno de los metodos para
cada N . Determinar el valor de N (de entre los utilizados) para el que el error global en
cada caso esta acotado por 103 , 104 , 105 y 106 . Obtener conclusiones.
1.6. Considerar el metodo de AdamsBashforth de tres pasos siguiente
Yn+1 = Yn +

h
[23f (tn , Yn ) 16f (tn1 , Yn1 ) + 5f (tn2 , Yn2 )]
12

para n = 2, 3, , N 1, en la resolucion del PVI


y 0 = 1 + (t y)2 ,

2 t 3,

con condicion inicial y(2) = 1, cuya solucion es y(t) = t + 1/(1 t).


Para aplicar el metodo se necesitan tres valores iniciales Y0 = 1, Y1 e Y2 . Estos dos
u
ltimos deberan obtenerse mediante alg
un otro metodo apropiado.
Determinar empricamente el orden del metodo dado calculando los valores iniciales
mediante
43

(a) el metodo de Euler,


(b) el metodo RK2,
(c) el metodo RK4.
1.7. Acotar el error local de truncamiento para el metodo de AdamsMoulton de p pasos
(AMp+1 ). Cual es el orden global del metodo?
1.8. Determinar el orden del metodo Midpoint y determinar la region de estabilidad.
1.9. Se pueden obtener metodos multipasos para el PVI
(
y 0 = f (t, y),
t0 t b,
y(t0 ) = y0 .
mediante integracion numerica. En efecto, integrando la ecuacion diferencial sobre el
intervalo [tnr , tn+1 ], se obtiene
Z

tn+1

f (t, y(t)) dt,

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

que k, para alg


un 0 k n y para alg
un conjunto de puntos nodales {ti }.
Obtener un metodo de dos pasos usando la regla de Simpson para la integral sobre el
intervalo [tn1 , tn+1 ]. Estudiar la consistencia, la convergencia y determinar la region de
estabilidad. Este metodo se conoce con el nombre de Metodo de Milne.
1.10. Dado el metodo explcito de dos pasos
Yn+1 = 4Yn + 5Yn1 + h[4f (tn , Yn ) + 2f (tn1 , Yn1 )],

para n = 1, , N 1

con valores iniciales Y0 e Y1 .


(a) Demostrar que es consistente.
(b) Determinar el orden.
(c) Considerar la aplicacion de este metodo multipaso al PVI
(
y 0 = 0 = f (t, y)
0t1
y(0) = 0
con
i) Y0 = Y1 = 0.
ii) Y0 = h2 ,

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?

1.12. Hallar la region de estabilidad del metodo predictor-corrector presentado en la


Seccion 1.6. Comparar con las regiones de AB3 y AM3.
1.13. Considerar el siguiente metodo predictorcorrector
(P )

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

(a) Determinar el orden de cada una de las formulas dadas.


(b) Aplicar el metodo predictor-corrector para determinar una aproximacion a la solucion
del PVI

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

Problemas a valores en los extremos

En esta seccion consideraremos problemas sobre intervalos de R con condiciones de borde


que estan separadas. Mas precisamente, consideramos problemas como
dy
d2 y
= f (x, y, ),
2
dx
dx

x (a, b),

(2.1)

con alguno de los siguientes pares de condiciones de borde separadas:


(i) y(a) = , y(b) = ;
(ii) y(a) = ,

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.

La funcion y 0 es solucion, pero tambien y(x) = sen(x) es solucion, y por ende


hay infinitas soluciones. Cuales son? Este ejemplo es importante para saber que no es
suficiente tener dos condiciones para garantizar unicidad.
46

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)

con p, q, g : [a, b] R funciones continuas dadas.


Los siguientes teoremas que enunciamos sin demostracion dan condiciones suficientes
para la unicidad de soluciones.
Teorema 2.3. Consideremos el problema (2.2) con condiciones de borde (i), (ii) o (iii)
y supongamos que q(x) 0 en [a, b]. Si el problema tiene solucion, entonces es u
nica.
Observaci
on 2.4. En el ejemplo anterior, con m
ultiples soluciones, q(x) = 2 < 0.
Teorema 2.5. Consideremos el problema (2.2) con condiciones de borde (iv) y supongamos que q(x) 0 en [a, b] y que existe x0 [a, b] tal que q(x0 ) > 0. Si el problema tiene
solucion, entonces es u
nica.
Observaci
on 2.6. La hipotesis que exista x0 tal que q(x0 ) > 0 es necesaria. En efecto,
supongamos que y es solucion de

dy
d2 y
+
p(x)
= g(x),
dx2
dx

dy
(a) =
,
dx

dy

(b) = .
dx

Entonces, para cualquier constante C, u(x) = y(x) + C tambien es solucion. Verificar.

2.2

M
etodo de shooting o de disparo

Consideremos como ejemplo el problema


d2 y
dy
= f (x, y, ), x (a, b),
2
dx
dx
y(a) = , y(b) = .
El metodo de shooting consiste en resolver un problema a valores iniciales y ajustar
o aproximar la pendiente inicial para lograr que y(b) = . Mas precisamente, un metodo
de shooting para este problema consiste en definir r : R R como r(t) = y t (b) , para
t R, donde y t es solucion del siguiente PVI
t
d2 y t
t dy
=
f
(x,
y
,
),
dx2
dx
y t (a) = ,
dy t
(a) = t.
dx

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

Diferencias finitas para problemas a valores en


los extremos

Consideremos el problema a valores de borde

dy
d2 y
+
p(x)
+ q(x)y = g(x), x (a, b),
dx2
dx
y(a) = , y(b) = .

El metodo de diferencias finitas consiste en lo siguiente, particionar el intervalo [a, b]


en N N subintervalos de longitud h := ba
, y reemplazar las derivadas de la ecuacion
N
por diferencias finitas.
Sabemos que si h es peque
no entonces
dy
y(x + h) y(x)
(x)
dx
h
dy
y(x) y(x h)
(x)
dx
h
dy
y(x + h) y(x h)
(x)
dx
2h

(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

Si llamamos xi = a + ih, i = 0, 1, . . . , N tenemos que

y(xi+1 ) + 2y(xi ) y(xi1 )


y(xi+1 ) y(xi1 )

+ q(xi )y(xi ) g(xi ),


+ p(xi )

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:

Yi+1 + 2Yi Yi1


Yi+1 Yi1

+ q(xi )Yi = g(xi ),


+ p(xi )

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

que es equivalente al sistema de (N 1) (N 1) siguiente


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)

donde hemos denotado kvk = max0iN |vi |.


Demostracion. Supongamos que q, h, e y cumplen las hipotesis del teorema. Entonces

e0
0
e1 1

Mh .. = .. ,
. .
eN
N
que a su vez implica que e0 = 0 , eN = N y

p
 p
2
1
1
i
i
+ qi ei =
+
ei1 +
+
ei+1 + i ,
i = 1, 2, . . . , N 1.
h2
2h h2
2h h2
Por lo tanto




 hp
i hpi
2
2+h qi |ei |
+1 +
+1 max{|ei1 |, |ei+1 |}+h2 |i |,
i = 1, 2, . . . , N 1.
2
2



2
Como h
resulta h|p2 i | 1 y entonces1 hp2 i + 1 + hp2 i + 1 = 2 y por
max[a,b] |p|
lo tanto

2 + h2 qi |ei | 2kek + h2 |i |,
i = 1, 2, . . . , N 1.
1

Pues |1 + x| + |1 x| = 2 para |x| 1.

50

Como q(x) > 0 para todo x [a, b] resulta



2 + h2 |ei | 2kek + h2 k k ,

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 .

Resumiendo, siempre se cumple que kek k k o kek 1 k k , y esto es equivalente


a (2.6), que es lo que se quera demostrar.
Observaci
on 2.8. Si p 0 el resultado del teorema anterior vale para todo h > 0.
La cota (2.6) es un resultado de estabilidad pues acota la solucion e en terminos
del lado derecho y lo mas importante, es que la cota no depende del parametro de
discretizacion h.
La existencia de solucion es consecuencia de la estabilidad, en efecto, tenemos el
siguiente corolario.
Corolario 2.9. Sea Mh la matriz definida en (2.4) y supongamos que q(x) > 0 para
2
todo x [a, b]. Entonces, si h max[a,b]
, existe una u
nica solucion {Yi }N
i=0 de (2.4), que
|p|
ademas cumple
n 1o
max{||, ||, max |g|}.
max |Yi | max 1,
0iN
[a,b]

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 .

Luego, si definimos el vector error

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

Consideremos el problema a valores de borde

dy
d2 y
+ p(x)
+ q(x)y = g(x), x (a, b),
2
dx
dx
dy
(a) = 0, y(b) = .
dx

La diferencia con el problema que hemos estado estudiando se encuentra en la condidy


cion de borde en x = a donde se prescribe el valor de dx
(a) en lugar del valor de y(a).
Para fijar ideas supondremos que se prescribe el valor cero. Nos preguntamos de que
manera puede introducirse esta condicion en el sistema. Hay varias y solo veremos dos
de ellas:
(1) Utilizando diferencias adelantadas.
(2) Utilizando diferencias centradas.
52

Utilizando diferencias adelantadas.


Esta manera es la mas sencilla y natural. Dado que la funcion esta definida a la derecha
de x = a, parece natural utilizar la aproximacion
dy
y(x1 ) y(x0 )
(a)
,
dx
h
0
= 0 en lugar de Y0 = . El problema es que el error
e imponer en (2.3) la ecuacion Y1 Y
h
de truncamiento de esta primera ecuacion es de orden O(h) pues

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 .

Lo bueno de esta opcion es que el error de truncamiento de la condicion de borde es


O(h2 ). Lo aparentemente complicado es la aparicion del punto x1 := a h que cae
fuera del dominio, y se denomina nodo ficticio de la particion. Como agregamos un nodo
y eliminamos una ecuacion (Y0 = ) debemos agregar dos ecuaciones. La primera que
dy
(a) = 0, y es
agregamos es la que representa la condicion de borde dx
Y1 Y1 = 0.
Como ahora el borde se traslado hacia la izquierda, el a = x0 es como un nodo interior,
y entonces imponemos sobre el la ecuacion diferencial, a traves de
Y1 Y1
Y1 + 2Y0 Y1
+ p(x0 )
+ q(x0 )Y0 = g(x0 ).
2
h
2h
Notamos que si usamos la primera de estas ecuaciones para reemplazar Y1 por Y1 en
la segunda, podemos ignorar directamente Y1 y solo tenemos que cambiar en (2.3) la
ecuacion Y0 = por
2Y0 2Y1
+ q(x0 )Y0 = g(x0 ).
h2
El analisis de error para estos casos es similar al anterior y se deja como ejercicio.

2.4

Diferencias finitas en dos dimensiones

El metodo de diferencias finitas se extiende naturalmente a dominios bidimensionales de


forma rectangular o que sean uniones finitas de rectangulos, y el analisis puede hacerse
53

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.

Esto resulta en un sistema de (N + 1)2 ecuaciones lineales con (N + 1)2 incognitas.


54

(2.8)

Procediendo como en el Teorema 2.7 se demuestra que si h es suficientemente peque


no,
el sistema tiene solucion u
nica y ademas se cumple 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
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

Elementos finitos para problemas a valores de


borde

Consideremos el problema a valores de borde


d2 y
dy
+ q(x)y = g(x), x (a, b),
2 + p(x)
dx
dx
dy
(b) = 0.
y(a) = 0,
dx

2.5.1

(2.9)

Formulaci
on d
ebil

Comenzamos observando lo siguiente: si y es una solucion y v es una funcion perteneciente


al espacio V, con
V = {v C 0 [a, b] : v es C 1 a trozos y v(a) = 0},
entonces, integrando por partes obtenemos
Z b
Z b
d2 y
dy b
dy dv
2 v dx = v +
dx
dx
dx a
a
a dx dx
Z b
dy
dy dv
dy
=
(a) v(a) (b) v(b) +
dx
|{z} |dx{z }
dx
a dx dx
=0

Z
=
a

=0

dy dv
dx.
dx dx

Por lo tanto, si y es una solucion de (2.9), resulta que


Z b
Z b
dy dv
dy
yV:
+ p v + qyv dx =
gv,
dx
a dx dx
a
Si definimos B : V V R por
Z b
dv dw
dv
B[v, w] =
+ p w + qvw dx,
dx
a dx dx
resulta una forma bilineal, es decir,
55

v V.

v, w V,

(2.10)

B[1 v1 + 2 v2 , w] = 1 B[v1 , w] + 2 B[v2 , w] para 1 , 2 R y v1 , v2 , w V.


B[v, 1 w1 + 2 w2 ] = 1 B[v, w1 ] + 2 B[v, w2 ] para 1 , 2 R y v, w1 , w2 V.
Si definimos el funcional ` : V R como
Z b
g(x) dx + v(b)g(b),
`(v) =

v V,

este resulta lineal, pues


para 1 , 2 R y v1 , v2 V.

`(1 v + 2 v2 ) = 1 `(v1 ) + 2 `(v2 ),

La ecuacion (2.10) puede entonces escribirse como


yV:

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

El metodo de elementos finitos se basa en las aproximaciones de Galerkin, que se definen


como sigue: considerar un subespacio Vh de dimension finita del espacio V, y definir la
aproximacion de Galerkin Y por
Y Vh :

V Vh .

B[Y, V ] = `(V ),

(2.12)

Es decir, la aproximacion de Galerkin se obtiene resolviendo el mismo tipo de problema,


cambiando solamente el espacio por uno de dimension finita, con la esperanza de que el
mismo pueda calcularse en tiempo finito.
Sea {1 , 2 , . . . , N } una base del espacio Vh de dimension finita N . Entonces, como
B[, ] es bilineal y ` es lineal, el problema es equivalente a:
Y Vh :

B[Y, i ] = `(i ),

i = 1, 2, . . . , N.

Ademas, si existe tal solucion Y se tiene que escribir como


Y (x) =

N
X

Yj j (x),

j=1

para ciertos valores Yj R, j = 1, 2, . . . , N .


Por lo tanto, la solucion de (2.12) existe si y solo si existe solucion Y = [Y1 Y2 . . . YN ]T
del sistema
N
hX
i
B
Yj j , i = `(i ), i = 1, 2, . . . , N,
j=1

56

que, nuevamente por la bilinealidad de B[, ] es equivalente al sistema


N
X

Yj B[j , i ] = `(i ),

i = 1, 2, . . . , N.

j=1

En forma matricial, el sistema se escribe como


K Y = F ,

con Kij = B[j , i ],

y Fi = `(i ),

i, j = 1, 2, . . . , N.

(2.13)

Para fijar ideas, consideraremos de ahora en adelante el caso particular en que p 0


y q(x) > 0, x [a, b]. En ese caso resulta que la forma bilineal es, ademas simetrica
B[v, w] = B[w, v],

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 .

Como ya mencionamos, estamos considerando el caso particular de ecuacion en que


p 0 y q(x) > 0 en [a, b]. En este caso, B[v, w] es un producto escalar en V, Vh ,
que ademas genera la norma k kV definida en (2.14). Por esta razon, la aproximacion de
Galerkin da una aproximacion optima de la solucion exacta y.
Teorema 2.13. Bajo las hipotesis del Teorema 2.12, la aproximacion de Galerkin Y es
una aproximacion optima de y en el siguiente sentido:
ky Y kV = min ky V kV .
V Vh

57

Demostracion. Sea y la solucion de (2.11) y Y la solucion de (2.12), entonces, para


V Vh V se cumple que
)
B[y, V ] = `(V )
= B[y Y, V ] = 0.
B[Y, V ] = `(V )
Es decir, el error y Y es ortogonal al espacio de dimension finita Vh ; esta propiedad se
conoce como ortogonalidad de Galerkin. En otras palabras, Y es la proyeccion ortogonal
de la solucion exacta y sobre el espacio de aproximacion Vh , y por lo tanto sera la funcion
de Vh mas cercana a y en la norma correspondiente al producto escalar en el que vale la
ortogonalidad. Mas precisamente, cualquiera sea V Vh ,
ky Y k2V = B[y Y, y Y ] = B[y Y, y V ] + B[y Y, V Y ] ky Y kV ky V kV ,
|
{z
}
=0

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 .

Luego, ky Y kV min ky V kV y como Y Vh , vale la igualdad.


V Vh

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

la particion, y lo usaremos tambien como subndice del espacio obtenido. Definimos el


espacio de elementos finitos de Lagrange de grado r N como
Vrh = {V C 0 [a, b] : V
= {V C 0 [a, b] : V

[xi1 ,xi ]
[xi1 ,xi ]

Pr , i = 1, 2, . . . , N } V
Pr , i = 1, 2, . . . , N y V (a) = 0}.

(2.15)

Es decir, Vrh es el conjunto de funciones continuas en [a, b] que cumplen la condicion


de borde (esencial) de valer cero en x = a y que restringidas a cada subintervalo de la
particion, son polinomios de grado r.
58

Fijada la particion y el grado polinomial, la solucion discreta se define como la funcion


Y que cumple
Y Vrh :
B[Y, V ] = `(V ), V Vh .
Para calcularla, debemos definir una base, y luego ensamblar la matriz K y el lado
derecho F de (2.13).
Consideremos el caso r = 1 de elementos lineales a trozos. Se define la base nodal
como la base de funciones i Vh = V1h , i = 1, 2, . . . , N , que cumplen
(
1 si i = j,
i (xj ) = ij =
0, si i 6= j.
Con esta definicion, el soporte de la funcion de base i es el intervalo [xi1 , xi+1 ] para
i = 1, 2, . . . , N 1 y el soporte de N es [xN 1 , xN ] = [xN 1 , b].

De esta manera, | sop(i ) sop(j )| = 0 si |i j| > 1 y esto implica que


Z
Z b
dj di
dj di
+ qj i dx =
+ qj i dx = 0, si |i j| > 1,
Kij =
sop(i )sop(j ) dx dx
a dx dx
que a su vez nos dice que la matriz sera tridiagonal.
Ensamblado de la matriz y el lado derecho
Veremos ahora cuanto valen las componentes Kij y las Fi de la matriz K del sistema a
resolver y del lado derecho F , considerando elementos finitos lineales, es decir r = 1.
Ya vimos que Kij = 0 si |i j| 2, por lo tanto, para cada i = 1, 2, . . . , N debemos
calcular Ki,i1 , Ki,i y Ki,i+1 .
Para i = 2, 3, . . . , N ,
Z b
di1 di
Ki,i1 =
+ qi1 i dx
dx dx
a
Z xi
Z xi
di1 di
=
dx +
qi1 i dx
dx
xi1 dx
xi1
Ahora calculemos las integrales. Como estamos considerando elementos lineales, las derivadas de i,1 , i son constantes sobre cada intervalo [xi1 , xi ] y
di1
1
= ,
dx
hi
59

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

Recordando que K es simetrica, tenemos que


Ki1,i = Ki,i1 =

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

El lado derecho F tiene componentes


Z
Fi = `(i ) =

xi+1

gi dx =
a

xi

g dx =
xi1

xi+1

g dx +
xi1

g dx,
xi

y usando la regla de Simpson para las integrales obtenemos


Fi

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.

Utilizando el teorema del error de interpolacion tenemos el siguiente resultado:


Teorema 2.14. Si utilizamos elementos finitos de grado r y u C r+1 entonces
ku U kV ku U kV Chr ,
con h =

max |xi xi1 | y C una constante que depende de M := max[a,b] |u(r+1) |, de

i=1,2,...,N

la longitud del (b a) del intervalo donde esta planteado el problema y de Q = max q, el


[a,b]

maximo del coeficiente q(x) de la ecuacion diferencial.


Demostracion. Dado un i fijo, U es un polinomio de grado r que coincide con u en r + 1
puntos nij , j = 0, 1, . . . , r del intervalo [xi1 , xi ]. Luego, por el teorema del error de
interpolacion del error, para cada x [xi1 , xi ] existe x [xi1 , xi ] tal que
(x ni0 )(x ni1 ) . . . (x nir ) (r+1)
u(x) U (x) =
u
(x ),
(r + 1)!
y como |x nij | (xi xi1 ) h, j = 0, 1, . . . , r, resulta
|u(x) U (x)|

(xi xi1 )r+1


M
max |u(r+1) |
hr+1 .
[x
,x
]
(r + 1)!
(r + 1)!
i1 i

Luego
Z

xi

xi1

|u(x) U (x)|2 dx

xi

xi1

61

M
(r + 1)!

2

h2(r+1) dx,

y por lo tanto, sumando para i desde 1 hasta N obtenemos


b

|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)

Sumando (2.16) y (2.17) obtenemos que


U k2V

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 .

Tomando raz cuadrada a ambos lados de esta u


ltima desigualdad obtenemos lo que se
h

2 i1/2
2
M
+ (b a) M
quera demostrar para C = (b a)3 Q (r+1)!
.
r!
Observaci
on 2.15. Utilizando argumentos de dualidad puede demostrarse que si solo
miramos el error L2 se obtiene un orden de convergencia mayor, en efecto
ku U kL2 (a,b) Chr+1 ,
para una constante C que depende de M := max[a,b] |u(r+1) |, de Q y de (b a). Pero la
demostracion queda fuera del alcance de este curso.

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).

2.2. Considerar el siguiente problema a valores de borde





 2
3
9
00
+ 1 cos
x , x (0, 1),
u (x) = u(x)
4
2

(a) Verificar que u(x) = cos 3
x es solucion.
2

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),

(x, y) := (0, 1)2 ,

con condiciones de Dirichlet homogeneas


(x, 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

2.7. Demostrar que


u(xi , yj ) =

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

coeficientes p(x, y), q(x, y) de la EDP, si la solucion exacta u de (2.7) es C 4 en .


2.9. Consideremos el problema de difusion reaccion
u(x, y) + ex+y u(x, y) = 1,

(x, y) := (0, 1)2 ,

con condiciones de Dirichlet inhomogeneas


u(x, y) = 1 x

(x, y) .

(a) Plantear la discretizacion del problema mediante el metodo de diferencias finitas


(discretizacion de 5 puntos).
(b) Resolver el sistema para un valor de h peque
no y graficar la solucion obtenida. Graficar la solucion para diferentes h y elegir el h para el cual ya no se observen cambios
significativos.
2.10. Utilizar el metodo de diferencias finitas para hallar la solucion del siguiente problema de conveccion-difusion estacionario en = (0, 1) (0, 1):
 
2
0.001 u +
u = 1,
en ,
1
u = 0,

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),

u(x, y; 0) = u0 (x, y),

(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

Diferencias finitas para la ecuaci


on del calor unidimensional

Consideramos entonces la ecuacion del calor unidimensional


2u
u
= k 2 + f (x, t),
t
x

0 < x < L,

0 < t < T,

con condiciones de borde


u(0, t) = (t),

u(L, t) = (t),

0 t T,

y condicion inicial
u(x, 0) = u0 (x),

0 x L.

Para obtener un metodo numerico basado en diferencias finitas tomamos un entero


positivo N y definimos los nodos xi = ih, i = 0, 1, . . . , N , con h = L/N . Observamos que
u(xi+1 , t) 2u(xi , t) + u(xi1 , t)
2u
(x
,
t)

,
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:

con un error de aproximacion

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 )

f (x1 , tn ) + hk2 (tn )


f (x2 , tn )
..
.

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

y reordenando, resulta, para n = 0, 1, . . . , M 1



= (tn ) + 1 2 U1n + U2n + tf (x1 , tn ),

n
n
+ 1 2 Uin + Ui+1
+ tf (xi , tn ),
i = 1, 2, . . . , N 2,
= Ui1

= UNn 2 + 1 2 UNn 1 + (tn ) + tf (xN 1 , t).

Definiendo =

Si llamamos U0n = (tn ) y UNn = (tn ), entonces, para todo i = 1, 2, . . . , N 1 se cumple



n
n
Uin+1 = Ui1
+ 1 2 Uin + Ui+1
+ tf (xi , tn ).
(3.4)
67

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

Otra posibilidad es escribir un codigo matrix-free, que se obtiene reemplazando las


secciones %% Ensamblado de la matriz y %% Resolucion por la siguiente
68

%% Resolucion sin ensamblado (matrix-free)


ksobreh2 = k/h^2;
lambda = dt*ksobreh2;
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) = lambda*U(1:N-1) + (1-2*lambda)*U(2:N) + lambda*U(3:N+1) + 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)|,

u0 = max |u0 (x)|,

si U n se definen por (3.3) resulta


max

0iN,0nM

u0 } + T f.
kUin k max{
, ,

Demostracion. La demostracion de este teorema se deja como ejercicio.


69

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,

u(xi+1 , tn ) 2u(xi , tn ) + u(xi1 , tn )


u(xi , tn+1 ) u(xi , tn )
k
t
h2
t 2 u
h2 4 u
= f (xi , tn )
(x
,

)
+
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 :=

si M = max{M1 /2, M2 /12}.


kt
1

puede ser muy exigente en algunas


2
h
2
2
situaciones, pues si h es peque
no, h es bastante mas peque
no, y esto forzara a tener t
mucho mas peque
no que el error de aproximacion deseado, implicando un gran esfuerzo
computacional. Este problema de estabilidad se debe a que el sistema de ecuaciones
diferenciales ordinarias (3.2) es rgido o stiff, pues los autovalores de Mh van de 1 a 1/h2 .
Para resolver esta restriccion se recurre a metodos implcitos o semi-implcitos, como los
que veremos en las secciones siguientes.
Observaci
on 3.3. La restriccion :=

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 (x1 , tn+1 ) + hk2 (tn+1 )


f (x2 , tn+1 )
..
.

=
,

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

El metodo resulta entonces

(I + ktMh )U n+1 = U n + tF n+1 , n = 0, 1, 2, . . . , M 1,

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

Observamos inmediatamente que este metodo implica la resolucion de un sistema de


ecuaciones en cada paso de tiempo. Esto es siempre mas costoso que realizar las operaciones de un paso de tiempo del metodo explcito de la seccion anterior. Lo importante,
que veremos aqu, es que no hay restricciones sobre t para obtener estabilidad.

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

%% Ecuacion del calor en un intervalo


%% Resolucion con Euler IMPLICITO
%% 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 = 40;
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) ;
t = t+dt;
U(1) = alpha(t); U(N+1) = beta(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 );
plot(x,U); title(sprintf(Solucion a tiempo t=%6.4f,t)); axis(ejes);
pause(1/24);
end

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

A partir de esta acotacion, podemos demostrar el siguiente resultado de estabilidad incondicional :


Teorema 3.4. Dados N, M N, si h = L/N y t = T /M , entonces definiendo

= max |(t)|,
0tT

= max |(t)|,
0tT

f =

max

0xL,0tT

u0 = max |u0 (x)|,

|f (x, t)|,

0xL

si U n se definen por (3.6) resulta


u0 } + T f.
max kU n k max{
, ,

0nM

Demostracion. La afirmacion del teorema se sigue, por induccion, a partir de la siguiente


acotacion:
kU n k } + tf,
kU n+1 k max{
, ,

n = 0, 1, . . . , M 1.

(3.9)

En efecto, por (3.8) resulta


(1 + 2)|Uin+1 | kU n+1 k + kU n+1 k + kU n k + t max |f (x, tn+1 )|,
0xL

(3.10)

para i = 1, 3, . . . , N 1 y n = 0, 1, . . . , M 1. Fijado n, sea i tal que kU n+1 k = |Uin+1 |.


Si 1 i N 1 entonces por (3.10)
Si i = 0 o i = N entonces kU n+1 k max{
, }.
(1 + 2)kU n+1 k kU n+1 k + kU n+1 k + kU n k + t max |f (x, tn+1 )|,
0xL

que implica
kU n+1 k kU n k + t max |f (x, tn+1 )|.
0xL

En consecuencia, vale (3.9).


Observaci
on 3.5. En la demostracion de este resultado de estabilidad, solo se utiliza
kt
que = 2 es positivo, pero no hace falta que sea menor que 1/2. Por eso se dice que el
h
metodo de Euler implcito es incondicional o absolutamente estable para este problema.
74

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

Restando la igualdad (3.7) de esta u


ltima expresion, vemos que el error eni := u(xi , tn )
satisface, para n = 0, 1, . . . , M 1,
en+1
= 0,
0

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

M N (el parametro de discretizacion espacial es h) y llamamos U n a la aproximacion


de u(tn ), donde tn = n t.
u
por una diferencia
Para obtener un metodo de orden dos en t aproximamos
t
u
)
u(tn )
centrada, mas precisamente, reemplazamos
y Mh u(tn+1/2 ) por
(tn+1/2 ) por u(tn+1t
t
1
1
Mh (
u(tn ) + u(tn+1 )), obteniendo el siguiente metodo
2

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

El metodo resulta entonces


k
k
(I + tMh )U n+1 = (I 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)

Observamos inmediatamente que este metodo tambien implica la resolucion de un sistema


de ecuaciones en cada paso de tiempo. Esto es siempre mas costoso que realizar las
operaciones de un paso de tiempo del metodo explcito. Lo importante, que veremos
aqu, es que no hay restricciones sobre t para obtener estabilidad, y ademas el error es
de orden cuadratico en t.
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 + k2 tMh .
La implementacion se deja como ejercicio.
Estabilidad
Para estudiar la estabilidad del metodo de Crank-Nicolson observamos que, para n =
0, 1, 2, . . . , M 1,
k
k
(I + tMh )U n+1 = (I tMh )U n + tF n+1/2 ,
2
2
1

Aqu tn+1/2 = nt +

t
2

= (n + 1/2)t.

76

(3.12)

Como Mh es simetrica, existe una base ortonormal de autovectores {Vi }N


i=0 de Mh con
N
correspondientes autovalores {i }i=0 . Estos autovalores i son todos positivos (ver ejercicio 3.5). Por lo tanto, si V es la matriz que tiene V0 , V1 , . . . , VN como columnas resulta
Mh = V V T ,

V T Mh V = ,

V T V = V V T = I,

con = diag(0 , 1 , . . . , N ). Ademas, cualquiera sea t > 0, V diagonaliza tambien a


(I k2 tMh ):
k
k
(I tMh ) = V (I t)V T ,
2
2

k
k
(I t) = V T (I tMh )V,
2
2

Multiplicando (3.12) por V T a izquierda obtenemos


k
k
V T (I + tMh )V V T U n+1 = V T (I tMh )V V T U n + tV T F n+1/2 , ,
2
2
y llamando U n = V T U n , F n = V T F n , resulta
k
k
(I + t)U n+1 = (I t)U n + tF n+1/2 .
2
2
Como (I k2 t) = diag(1 k2 t0 , 1 k2 t1 , . . . , 1 k2 tN ), resulta que cada componente de U n+1 satisface
1 k2 ti n
1
n+1/2
n+1

,
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

que podemos escribir como


kU n+1 k2 kU n k2 + tkF n+1/2 k2 .
2
2
2
2
Como U n 2 = (U n )T U n = (U n )T V V T U n = (U n )T U N = U n 2 y F n+1/2 2 = F n+1/2 2
resulta
n+1



U U n + t F n+1/2 .
2
2
2
A partir de esta u
ltima acotacion se demuestra el siguiente resultado de estabilidad
incondicional para el metodo de Crank-Nicolson.
77

Teorema 3.7. Dados N, M N, si h = L/N y t = T /M , entonces definiendo


= max |(t)|,

= max |(t)|,
0tT

0tT

si U n se definen por (3.11) resulta



2 1/2

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)|.

Demostracion. La demostracion de este teorema se deja como ejercicio.


Acotaci
on del error
Para acotar el error utilizaremos la estabilidad del metodo y el hecho que
i
h
u(xi , tn+1 ) u(xi , tn ) u(xi+1 , tn+1 ) 2u(xi , tn+1 ) + u(xi1 , tn+1 )
2
i
h
=
u(xi+1 , tn ) 2u(xi , tn ) + u(xi1 , tn ) + tf (xi , tn+1/2 )
2
i
h t2 3 u
h2 4 u
(x
,

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

si M = max{M1 /3, M2 /12}. Si dividimos por N + 1 obtenemos




N
1/2
 1 X
M1 2 M2 2
n 2
|u(xi , tn ) Ui |
T
t +
h MT (t2 + h2 ).
max
0nM N + 1
3
12
i=0


Demostracion. La demostracion se deja como ejercicio.


1/2 
1/2

P
PN
1
n 2
n 2
|u(x
,
t
)

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

Diferencias finitas para la ecuaci


on del calor bidimensional

En dos dimensiones, estudiaremos metodos numericos para la ecuacion sobre = (0, L)


(0, L),

 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,

u(x, y; 0) = u0 (x, y),


(x, y) .
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 .
Todo lo hecho en la seccion anterior puede repetirse en este problema bidimensional.
2u 2u
+ 2 de la siguiente manera, por cocientes increLo esencial es aproximar u =
x2
y
mentales. Dado N N, definimos h = L/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
ui+1,j + ui,j+1 4ui,j + ui1,j + ui,j1 h2 h 4 u
4u
=
+
(
,
y
)
+
(x
,

)
.
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 ;

ui,j (0) = u (xi , yj ),


si 0 i N y 0 j N.
Los metodos de Euler explcito, implcito y el del trapecio se obtienen de manera
analoga a lo hecho en la seccion anterior, aunque debemos admitir que un poco mas
engorrosa.
La descripcion de dichos metodos y su analisis de estabilidad y acotacion del error se
deja como ejercicio.

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

cuya solucion exacta es u(x, t) = sen(x)e t .


(a) Resolverla con el metodo de diferencias finitas que utiliza Euler explcito, tomando
N = 20, y M = 10, 20, 40, 80, 160. Explique que observa y para que valor de M la
solucion es razonable.
(b) Verificar el orden experimental de convergencia. Para esto, fijar = 1/4, tomar
N = 20, 40, 80, 160, 320, 640, 1280 y M para que = t/h2 se mantenga igual a 1/4.
3.3. Considerar el problema

u 2 u

2 = 0,
0 < x < 1, 0 < t < 1,

t
x
u(0, t) = 0, u(L, t) = 0,
0 t 1,

u(x, 0) = sen(x) + sen(2x), 0 x 1,


2
2

cuya solucion exacta es u(x, t) = sen(x)e t + 21 sen(2x)e4 t .


80

(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

Breve repaso de Algebra


Lineal

Algunas observaciones elementales.


Durante este curso, los vectores seran columna. De este modo, si x, y Rn , entonces
Producto escalar: x y = xT y R.
Producto tensorial : x y = x y T es una matriz de n n de rango uno, con
filai (xy T ) = xi y T

colj (xy T ) = x yj = yj x.

Si A Rnm y B Rmp entonces AB Rnp y


82

(AB)ij = filai (A) colj (B);


filai (AB) = filai (A)B;
colj (AB) = A colj (B).
Si A Rnm y x Rm , entonces Ax Rn y Ax es una combinacion lineal de las
columnas de A,
Ax = x1 col1 (A) + x2 col2 (A) + + xm colm (A),
es decir Ax col(A), el espacio columna de A.
Si A Rnm y x Rn , entonces xT A R1m , es un vector filia de m componentes,
y es ademas una combinacion lineal de las filas de A:
xT A = x1 fila1 (A) + x2 fila2 (A) + + xn filam (A).
Sistemas lineales de n n.
Si

a11 a12
a21 a22

A = ..
..
.
.
an1 an2

. . . a1n
. . . a2n

..
..
. .
. . . ann


b1
b2

b = ..
.
bn

entonces es lo mismo escribir

Ax = b

que escribir

a11 x1 + a12 x2 + + a1n xn = b1


a21 x1 + a22 x2 + + a2n xn = b2
..
.
an1 x1 + an2 x2 + + ann xn = bn

En matlab/octave/SciLab se resuelve con x=A\b

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

Matrices triangulares inferiores

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

`31 `32 `33 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)

Claramente se ve que la solucion de este sistema se puede obtener de la siguiente forma,


respetando el orden de las operaciones:
x1 = b1 /`11
x2 = (b2 `21 x1 )/`22
x3 = (b3 `31 x1 `32 x2 )/`33
..
.
xn = (bn `n1 x1 `n2 x2 + `n(n1) xn1 )/`nn .
Este procedimiento se conoce como sustitucion hacia adelante (forward substitution),
y es muy simple de programar en matlab.
Primera version, como se hara en un lenguaje tipo C o Fortran:
function x = triinf(L,b)
% function x = triinf(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,
84

% el resto de la matriz se ignora.


n = length(b);
x = zeros(size(b)); % solo para reservar memoria
for i = 1:n
x(i) = b(i);
for j = 1:i-1
x(i) = x(i) - L(i,j) * x(j);
end
x(i) = x(i) / L(i,i);
end
Segunda version, un poquito mejorada
function x = triinf(L,b)
% function x = triinf(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.
n = length(b);
x = b;
for i = 1:n
for j = 1:i-1
x(i) = x(i) - L(i,j) * x(j);
end
x(i) = x(i) / L(i,i);
end
En matlab conviene vectorizar las operaciones, evitando en lo posible el uso de loops
o ciclos. La vectorizacion inmediata de esta funcion se obtiene de reemplazar el loop
interno por un producto escalar, lo cual implica acceder a la matriz L por filas:
function x = triinf_filas(L,b)
% function x = triinf_filas(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 filas.
n = length(b);
x = b;
85

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

Por lo tanto el total de operaciones es (n 1)n + n = n2 .


Observaci
on 4.3. Vale la pena hacer algunos comentarios a esta altura:
Cualquiera de las tres versiones que implementamos es mas lenta que escribir L\b
en matlab. Esto se debe a que las rutinas internas de matlab estan programadas
y ya compiladas en lenguaje de maquina. En cambio triinf sera interpretado por
matlab y traducido a medida que se ejecuta.
Las versiones vectorizadas son mas rapidas que las no vectorizadas.
Para lenguajes de programacion como Fortran, C, C++, Python, etc., existen rutinas optimizadas para las operaciones siguientes:
saxpy : z x + y, con escalar y x, y vectores.
dot : a x y, con x, y vectores.
Para vectores largos las rutinas reparten el trabajo en varios procesadores (paralelizan).

4.3

Matrices triangulares superiores

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

u11 u12 u13 u14


...
u1n
0 u22 u23 u24
...
u2n

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

Consideremos el problema de resolver A x = b con A Rnn , b Rn dados, y A invertible.


El metodo de eliminacion de Gauss consiste en realizar operaciones elementales sobre la
matriz A y el lado derecho b de manera que el sistema se transforme en un sistema
triangular superior.
M
etodo de Gauss.
Primer paso [A = A(0) A(1) , b = b(0) b(1) ] Restar de las filas 2 a n un m
ultiplo de
la fila 1, para obtener ceros debajo de a11 . Esto se logra de la siguiente manera:
fila1 (A(1) ) = fila1 (A(0) ),
(1)

(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.

Segundo paso [A(1) A(2) , b(1) b(2) ]: Restar de las filas 3 a n un m


ultiplo de la fila
2, para obtener ceros debajo de a22 . Esto se logra de la siguiente manera:
fila1 (A(2) ) = fila1 (A(1) ),
fila2 (A(2) ) = fila2 (A(1) ),
(1)

filak (A(2) ) = filak (A(1) )

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.

Paso j (j n) [A(j1) A(j) , b(j1) b(j) ]: Restar de las filas j + 1 a n un m


ultiplo
de la fila j, para obtener ceros debajo de ajj . Esto se logra de la siguiente manera:
filak (A(j) ) = filak (A(j1) ),

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

Al finalizar el paso n 1 obtenemos el sistema


A(n1) x = b(n1) ,
equivalente al original, con la ventaja que A(n1) = U es triangular superior, y puede
resolverse por sustitucion hacia atras.
Conteo de operaciones
Observemos que donde sabemos que el resultado sera cero, no hacemos las operaciones, sino que directamente colocamos un cero. Denotaremos con d, m, r las divisiones,
multiplicaciones y restas, respectivamente.
Paso
1
j, 2 j n 1

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)

Total de operaciones para la triangulacion sobre la matriz A:1


n1
n1
n1
n1
X
X
X
X
(1 + 2k)k =
k+2
k2
(1 + 2(n j))(n j) =
j=1

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

Recordando que filai (GA) = filai (G)A, observamos que

1
0 0 0
m21 1 0 0

A(1) = m31 0 1 0 A(0) .


..
.. . . . . ..
.
.
. .
.
mn1 0 0 1
1

Estamos usando las f


ormulas

Pn

j=1

j=

n(n+1)
2

89

Pn

j=1

j2 =

n(n+1)(2n+1)
6

n3
3

n2
2

+ n3 .

Mas precisamente, el primer paso de la eliminacion de Gauss se escribe

0
m21

si g1 = .. , y G1 = I g1 eT1 , entonces A(1) = G1 A(0) = G1 A.


.
mn1
Analogamente, el segundo paso se escribe

1
0
0 0
0
1
0 0

A(2) = 0 m32 1 0 A(1) = G2 A(1) ,


..
..
.
.
.
.
0 . . ..
0 mn2 0 1

0
0

con g2 = m32 ,
..
.

y G2 = I g2 eT2 .

mn2

El j-esimo paso resulta

A(j) = Gj A(j1) ,

0
..
.

0
con gj =
,
m(j+1)j
.
..
mnj

y Gj = I gj eTj .

Las matrices Gj = I gj eTj se llaman matrices de Gauss.


Es facil verificar que (Gj )1 = (I gj eTj )1 = I + gj eTj , y que

(G1 )1 (G2 )1 . . . (Gn1 )1

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)

El metodo de eliminacion de Gauss produce (si ajj


6= 0, j = 1, 2, . . . , n 1) una
factorizacion A = LU con U triangular superior, L triangular inferior unitaria, ademas
(j1)
(j1)
Lij = mij = aij /ajj , es el multiplicador si i > j.
Observaci
on 4.5.
Si A = LU , resolver Ax = b se desglosa en la resolucion de dos
sistemas triangulares:
Ax = b = L |{z}
U x = b.
y

Resolvemos primero Ly = b (n2 n operaciones).


A continuacion resolvemos U x = y (n2 operaciones).
90

Una vez obtenida la factorizacion ( 23 n2 12 n2 16 n operaciones), la resolucion del


sistema lleva
2 2 1 2 1
2
3
7
n n n + 2n2 n = n2 + n2 n operaciones.
3
2
6
3
2
6
Esto es exactamente lo mismo que resolver por el metodo de Gauss, y no debera
sorprendernos.
Observemos ademas, que el vector y obtenido al resolver el primer sistema triangular
inferior coincide con b(n1) .
La utilidad de la factorizacion se ve al resolver muchos sistemas con igual matriz
A y diferentes lados derechos b. Para resolver k sistemas utilizando el metodo de
Gauss cada vez se necesitan
2
3
7
2
k( n2 + n2 n)
= k n3
3
2
6
3

operaciones.

Si se factoriza primero y luego se resuelven los dos sistemas triangulares k veces, se


necesitan
1
1
2
2
( n2 n2 n) + k(2n2 n)
= n3 + kn2
3
2
6
3

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

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-1
L(j+1:n,j) = A(j+1:n,j) / A(j,j);
A(j+1:n,j) = 0;
A(j+1:n,j+1:n) = A(j+1:n,j+1:n) - L(j+1:n,j)*A(j,j+1:n);
end
U = A;

4.6

Problemas con la factorizaci


on LU. Pivoteo
(j1)

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.

Demostracion. Basta ver que en el proceso de eliminacion de Gauss, resulta siempre


(j1)
aj,j 6= 0 para j = 1, 2, . . . , n 1. Demostremos esto por induccion. Si j = 1,
(0)

a1,1 = a11 = det(A1:1,1:1 ) 6= 0.


(j1)

Supongamos que aj,j

6= 0, j = 1, 2, . . . , k, y recordemos que A(k) = Gk Gk1 . . . G2 G1 A.


92

Como las matrices Gj son matrices de Gauss, resulta que2


(k)

A1:k+1,1:k+1 = Gk1:k+1,1:k+1 . . . G21:k+1,1:k+1 G11:k+1,1:k+1 A1:k+1,1:k+1


(0) (0) (0)

(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)

det(A1:k+1,1:k+1 ) = det(Gk1:k+1,1:k+1 ) . . . det(G21:k+1,1:k+1 ) det(G11:k+1,1:k+1 ) det(A1:k+1,1:k+1 )


(0) (1)

(k)

= a11 a22 . . . a(k+1)(k+1) ,


(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

% LU = A(p,:) % permutacion p de las filas de A


n = size(A,1);
L = zeros(n,n);
p = [1:n];
for j = 1:n-1
[M, k] = max(abs(A(j:n,j)));
k = k+j-1; % k=1 corresponde a fila j
% registramos la permutacion
p([k j]) = p([j k]);
% intercambiamos filas de L y de A
L([k j],:) = L([j k],:);
A([k j],:) = A([j k],:);
% ahora eliminamos
L(j+1:n,j) = A(j+1:n,j) / A(j,j);
A(j+1:n,j) = 0;
A(j+1:n,j+1:n) = A(j+1:n,j+1:n) - L(j+1:n,j)*A(j,j+1:n);
end
L = L + eye(n);
U = A;
Observaci
on 4.8. Este pivoteo se conoce como pivoteo parcial. El pivoteo total consiste
(j1)
en hallar el elemento de Aj:n,j:n con modulo maximo e intercambiar filas y columnas. Es
mas complicado y en la practica no se observan beneficios significativos con respecto al
pivoteo parcial.
Permutaciones.
Para describir formalmente el proceso de la factorizacion LU con pivoteo necesitamos
hablar de permutaciones. Una matriz de permutacion elemental es una matriz que se
obtiene intercambiando dos filas de una matriz identidad. Ademas, la matriz de permutacion P que se obtiene intercambiando las filas j y k de una matriz identidad, es la
misma que se obtiene intercambiando las columnas j y k de la identidad.
Es facil ver que si P se obtiene intercambiando la fila j y k de una matriz identidad,
entonces
P P = I,
P T = P,
P A = se obtiene intercambiando las filas j y k de A,
AP = se obtiene intercambiando las columnas j y k de A.
Luego, los pasos del metodo de Gauss con pivoteo se pueden escribir de la siguiente
manera:
A(1) = G1 P 1 A(0) = G1 P 1 A
A(2) = G2 P 2 A(1) = G2 P 2 G1 P 1 A
..
.
U = A(n1) = Gn1 P n1 Gn2 P n2 . . . G2 P 2 G1 P 1 A
94

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

Teorema 4.9. Si U = A(n1) de la eliminacion de Gauss con pivoteo, entonces


Gn1 P n1 Gn2 P n2 . . . G2 P 2 G1 P 1 A = U,
con U triangular superior, y ademas
P A = LU
con P = P n1 P n2 . . . P 2 P 1 y L triangular inferior unitaria con |`ij | 1. Ademas, la
k-esima columna de L, debajo de la diagonal, es una permutacion de los multiplicadores
del paso k, mas precisamente
Lk+1:n,k = (P n1 . . . P k+2 P k+1 gk )k+1:n .
Demostracion. Por la construccion, se ve que U es triangular superior, veamos ahora que
P A = LU y L tiene las caractersticas mencionadas, como para cualquier permutacion
ocurre que P P = I, resulta
U = Gn1 P n1 Gn2 P n2 . . . G2 P 2 G1 P 1 A
= Gn1 (P n1 Gn2 P n1 )(P n1 P n2 Gn3 P n2 P n1 )
(P n1 P n2 P n3 Gn4 P n3 P n2 P n1 ) . . .
P n1 . . . P 3 P 2 G1 P 2 P 3 . . . P n1
n1 n2
P
P {z
. . . P 3 P 2 P }1 A
|
P

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}.

Se dice semi -definida positiva si xT Ax 0, x Rn .


95

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

Como xT Ax R, resulta xT Ax = (xT Ax)T = xT AT x, y por lo tanto,


xT

 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

La factorizacion de Cholesky es una factorizacion LU con L = RT y U = R (L no


es necesariamente unitaria).
La matriz R se llama factor de Cholesky de A.
En base a uno de los comentarios anteriores al enunciado, vemos que podramos
haber enunciado el teorema de la siguiente manera:
Sea A Rnn , entonces A es sdp si y solo si existe R triangular superior
(no singular) tal que A = RT R.
Demostracion. La demostracion es constructiva. Observemos que si existiera tal matriz
R debera cumplir que

  2

 


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

y T (A rrT )y = xT Ax. Proponemos x =


con R a determinar. Veamos:
y

 


 aT
 + aT y

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

con L triangular inferior unitaria y U triangular superior. As, a partir de la factorizacion


de Cholesky se puede obtener la factorizacion LU y viceversa, a partir de la factorizacion
LU se puede obtener el factor de Cholesky.
Implementacion en matlab. Esta es una primera implementacion, motivada por la
demostracion del Teorema 4.12.
function R = cholesky(A)
% function R = cholesky(A)
% dada A una matriz sdp
% devuelve el factor R de Cholesky.
% R es triangular superior y cumple A = RR
% IMPLEMENTACION RECURSIVA (ineficiente)
n = size(A,1);
if (n==1)
R = sqrt(A);
else
rho = sqrt(A(1,1));
r = 1/rho*A(2:n,1);
R = [rho
,
r
zeros(n-1,1) , cholesky(A(2:n,2:n)-r*r) ];
end
Una version un poco mas eficiente se obtiene eliminando la recursion.
function R = cholesky(A)
% function R = cholesky(A)
% dada A una matriz sdp
% devuelve el factor R de Cholesky.
% R es triangular superior y cumple A = RR
% primera version no-recursiva
n = size(A,1);
R = zeros(size(A));
for i=1:n-1
98

% primero calculamos la fila i


R(i,i) = sqrt(A(i,i));
R(i,i+1:n) = 1/R(i,i) * A(i,i+1:n);
% Ahora actualizamos el resto de la matriz (hacia abajo)
A(i+1:n,i+1:n) = A(i+1:n,i+1:n) - R(i,i+1:n)*R(i,i+1:n); % (*)
end
R(n,n) = sqrt(A(n,n));
Observaci
on 4.16. El u
ltimo algoritmo presentado podra hacerse mas eficiente si al
momento de actualizar la matriz en el paso (*), solo se actualiza la parte triangular
superior de A(i+1:n,i+1:n). De esta manera el n
umero de operaciones se reduce aproximadamente a la mitad. La factorizacion de Cholesky ya esta programada eficientemente
en matlab, la funcion correspondiente se llama chol.

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

col1 (A)T (Ax b) = 0


fila2 (AT )(Ax b) = 0
=
= AT (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

Si las columnas de A son linealmente independientes, entonces AT A Rmm es sdp y el


sistema tiene solucion u
nica x = (AT A)1 AT b. Por este motivo, (AT A)1 AT se conoce
usualmente como pseudoinversa de A.

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

con R1 triangular superior no singular, entonces, el x que minimiza |Axb|2 es la solucion


de
R1 x = (QT b)1:m
2

2
y ademas, Ax b = (QT b)m+1:n .
Observaci
on 4.19. Observemos que a los efectos de hallar la solucion x del problema de
mnimos cuadrados, basta con obtener las primeras m columnas de Q y las primeras m
filas de R. Si llamamos Q y R a estas sub-matrices de las Q y R anteriores, el problema
consiste en hallar Q Rnm ortogonal y R Rmm triangular superior tales que A = QR.
A esto nos abocaremos en lo que sigue.
Observaci
on 4.20. Planteando el sistema normal hace falta primero efectuar el proT
ducto A A, luego factorizar (via Cholesky, por ejemplo) y luego resolver dos sistemas
triangulares. Utilizando la factorizacion QR de la Observacion 4.19 hay que obtener la
factorizacion, y luego resolver Rx = QT b. Que es mas costoso computacionalmente?
Para poder responder esta pregunta debemos primero saber el costo de hallar la
factorizacion QR y saber cuando es posible.
Observemos que si Q Rnm es ortogonal y R Rmm triangular superior tales que
A = QR, entonces, teniendo en cuenta que R es triangular superior:

r11
0

col1 (A) = Q col1 (R) = Q .. = r11 col1 (Q),
.
0

r12
r22


col2 (A) = Q col2 (R) = Q 0 = r12 col1 (Q) + r22 col2 (Q),
..
.
0
..
.
Es decir, la columna i-esima de Q es ortonormal a las columnas 1, . . . , i 1 y es combinacion lineal de las primeras i columnas de A. Esto tiene una gran reminiscencia de la
ortogonalizacion de Gram-Schmidt. Veamos que este procedimiento nos conduce a una
factorizacion QR.
101

4.8.3

Ortogonalizaci
on de Gram-Schmidt

Repasemos el procedimiento de ortogonalizacion de Gram-Schmidt. Dada una familia de


m vectores v1 , v2 , . . . , vm Rn , linealmente independientes, el procedimiento es
u1 = v1 /kv1 k,
w2 = v2 (v2 u1 )u1 ,

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

y los vectores ui son ortonormales.


Hemos demostrado el siguiente teorema:
Teorema 4.21. Si las columnas de A Rnm son linealmente independientes, entonces
existe una descomposicion QR del siguiente tipo:
Q1 Rnm es ortogonal,
R1 Rmm es triangular superior,
A = Q1 R1 .
Observaci
on 4.22. Bajo las mismas condiciones sobre A existe una descomposicion QR
del siguiente tipo:
Q Rnn es ortogonal,
 
R1
R=
Rnm con R1 Rmm triangular superior,
0
A = QR.
La matriz R1 de esta descomposicion es la del teorema, y la Q se obtiene completando
una base ortonormal de Rn a partir de las columnas de Q1 .
Pero existe otra manera de obtener la factorizacion QR, que es muy interesante, mas
economica, utilizando las matrices de Householder
102

4.8.4

Matrices de Householder

El material de esta seccion fue extraido de [St, Lecture 8].


Definici
on 4.23. Una transformacion o matriz de Householder es una matriz de la forma
H = I uuT ,
con u Rn tal que |u| =

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

Si X Rnk , hay dos maneras (al menos) de calcular HX:


2
+n
Ensamblar H ( n(n+1)
= n2 operaciones), y luego hacer el producto HX
2
que lleva 2n2 k operaciones. Totalizando
= n2 2k operaciones.

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

donde el signo en se elige de manera que 1 x1 > 0. Entonces H = I uuT es de


Householder y Hx = e1 .
Observaci
on 4.26. Antes de demostrarlo observemos para que puede servir. Si x es la
primera columna de una matriz A, y H se construye como en el teorema, entonces

1 . . .
0 . . .

HA = ..
..
.. , o col1 (HA) = e1 ,
.
.
.
0 ...
donde representa n
umeros no necesariamente nulos.
103

Demostracion. Veamos primero que |u| =


|u|2 = uT u =

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
=

Veamos ahora cual es el efecto de H sobre x: Por un lado,


Hx = (I uuT )x = x uuT x = x u(uT x),
y por otro lado
uT x =

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|

y con H = I uuT resulta


Hx = |x|e1 .
A partir del teorema y las observaciones llegamos al siguiente teorema.
Teorema 4.29. Sea A Rnm con columnas linealmente
independientes. Entonces

R
1
existe Q Rnn ortogonal y R Rnm , con R =
y R1 Rmm triangular superior
0
no singular.
104

Demostracion. Haremos la demostracion por induccion sobre m. Si m = 1, A = x


Rn \ {0}, (para cualquier n 1) tomamos = sgn(x1 ) y
u= q

1
1+

x1
|x|

x
+ e1 ),
|x|

H = I uuT .

Luego, por el teorema anterior y las observaciones

|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 .

Las columnas de A son linealmente independientes, pues si no A no tendra m+1 columnas


(n1)(n1)

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 .

Luego, sabemos que





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

function [U,R] = qrhouse(A)


% function [U,R] = qrhouse(A)
%
% Descomposicion QR de A
% La matriz R tiene el mismo tama~
no que A pero es triangular superior
% La matriz Q es cuadrada y ortogonal
% A = Q R
%
% Pero no se calcula Q, sino que se devuelven los vectores u que
% generan las transformaciones de Householder que conforman Q
%
% Q = Qk ... Q2 Q1
%
% con Q1 = H1 = eye(n) - u1 u1
%
Q2 = [1 zeros(1,k-1); zeros(n-1,1) H2] y H2 = eye(n-1) - u2 u2
%
Q3 = [eye(2) ; zeros(2,k-2); zeros(n-2,2) H3]
%
y H3 = eye(n-2) - u3 u3
%
...
% uk = U(1:n-k+1, k)
%
% ver qrsolve

[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

function [x,e] = qrsolve(U,R,b)


% function [x,e] = qrsolve(U,R,b)
%
% Utiliza la descomposici
on QR de A
% para resolver el problema de cuadrados m
nimos
%
min || Ax - b ||
%
% A = Q R
%
% Pero ingresan como argumentos U y R.
% Q es ortogonal, y las columnas de U contienen los vectores que
% definen las transformaciones de Householder que conforman Q
%
% Q = Qk ... Q2 Q1
%
% con Q1 = H1 = eye(n) - u1 u1
%
Q2 = [1 zeros(1,k-1); zeros(n-1,1) H2] y H2 = eye(n-1) - u2 u2
%
Q3 = [eye(2) ; zeros(2,k-2); zeros(n-2,2) H3]
%
y H3 = eye(n-2) - u3 u3
%
...
% uk = U(1:n-k+1, k)
%
% el argumento de salida x es la soluci
on
% el argumento opcional de salida e es || Ax - b ||
%
% ver qrhouse
%% Primer paso. Calculamos c = Q b
c = b;
[n, m] = size(U);
for i = 1:m
u = U(1:n-i+1, i);
c(i:n) = c(i:n) - u*(u*c(i:n));
end
%% Segundo paso. Calculamos x
x = TriSup(R(1:m,:),c(1:m));
%% Ultimo paso. Si se pide el error, se calcula e
if nargout > 1
e = norm(c(m+1:n));
end

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

(a) Hallar la solucion exacta de Ax = b para 6= 1.


(b) Resolver el mismo sistema utilizando las funciones EleU, triinf_cols y trisup,
para los valores de = 102 , 104 , 106 , . . . , 1018 . Armar una tabla de la forma
delta
x(1)
x(2)
----------------------------10^(-2)
xxxx
xxxx
.
.
.
.
.
.

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

Encontrar los valores de 0 , 1 , y 2 que minimizan el error por cuadrados mnimos.


Cual es el error? Estimar el costo de una vivienda de 25 a
nos y 250 m2 de superficie
cubierta.
4.17. Ortogonalizacion de Gram-Schmidt.
(a) Describir el metodo de ortogonalizacion de Gram-Schmidt.
(b) Sea A Rnk , con n k una matriz con columnas linealmente independientes.
Demostrar que si se utiliza el metodo de ortogonalizacion de Gram-Schmidt con las
columnas de A, entonces colocando los vectores de la nueva base como columnas de
una matriz Q se obtiene una descomposicion QR de A.
4.18. Transformaciones de Householder
(a) Programar una funcion [x,e] = MinCuadQR(A,b) que resuelva el problema de cuadrados mnimos correspondiente al sistema Ax = b, utilizando las dos funciones
[U,R] = qrhouse(A) y [x,e] = qrsolve(U,R,b) vistas en clase.
(b) Utilizando la funcion MinCuadQR(A,b), crear la funcion a = ajustar(x,y,n) que
reciba como argumentos:
x, y: coordenadas de puntos a ajustar con un polinomio.
n: grado del polinomio con el que se ajustaran los puntos.
La salida deben ser los coeficientes del polinomio obtenido, donde a(1) es el coeficiente de orden n, a(2) el de orden n-1, y as sucesivamente, hasta a(n+1) que es el
coeficiente de orden cero.
Realizar el conteo de operaciones necesarias para resolver el problema de mnimos cuadrados asociado al sistema Ax = b con A Rnk con n mucho mayor que k mediante:
(a) El metodo de las ecuaciones normales, es decir, resolviendo el sistema AT Ax = AT b
mediante la descomposicion de Cholesky.
(b) La descomposicion QR de A utilizando el metodo de Gram-Schmidt.
(c) La descomposicion QR de A utilizando las transformaciones de Householder (funcion
[x,e] = MinCuadQR(A,b)).
4.19. Analizar experimentalmente la velocidad y la precision (o estabilidad) de las funciones MinCuad(A,b), MinCuadQR(A,b) y \ (de MATLAB) al resolver el siguiente problema
de mnimos cuadrados: Ax = b donde A Rn4 es la matriz A = [a.^3, a.^2, a, ones(n,1)]
para a = linspace(1,5,n), y el vector b elegido de manera que la solucion exacta del
problema sea x = (1, 1, 1, 1)T . Considerar distintos valores grandes de n.
112

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

Normas de vectores y matrices. N


umero de condici
on
Normas de vectores

Antes de estudiar los metodos iterativos necesitamos definir convergencia en Rn . Lo


hacemos definiendo normas de vectores y matrices. Recordemos que si X es un espacio
vectorial, una norma es una funcion k k : X R que satisface
(i) kxk 0, x X, y kxk = 0 sii x = 0.
(ii) kxk = |a|kxk, a R, x X. (Homogeneidad)
(iii) kx + yk kxk + kyk, x, y X. (Desigualdad triangular)
Tambien recordemos que dos normas k k1 y k k2 en un espacio vectorial X se dicen
equivalentes si existe c > 0 tal que
1
kxk1 kxk2 ckxk1 ,
c

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 .

Las normas mas utilizadas en Rn son las normas p, 1 p , que se definen a


continuacion para x = (x1 , x2 , . . . , xn )T :
!1/p
n
X
p
kxkp =
|xi |
,
si 1 p < ,
i=1

kxk = max |xi |,

si p = .

1in

Las mas usuales entre estas son:


kxk1 =

n
X

|xi |,

kxk2 =

i=1

n
X

!1/2
|xi |2

kxk = max |xi |.

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

kxkA = (x, x)A = (xT Ax)1/2 .


Si I denota la matriz identidad, entonces resulta kxkI = kxk2 .
Definici
on 5.1 (Convergencia en Rn ). Dada una sucesion {xk }kN Rn . Se dice que xk
tiende a x Rn si kxk xk 0 cuando k , para alguna norma k k de Rn .
Observaci
on 5.2. Como todas las normas son equivalentes en Rn , si una sucesion converge, entonces converge en todas las normas. En particular kx xk k 0 y luego cada
componente xik xi , para i = 1, 2, . . . , n, cuando k .

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

En MATLAB. La funcion norm calcula diferentes normas de vectores y matrices. Leer


su documentacion.
Observaci
on 5.4. Cualquiera sea la norma k k de Rn , la norma inducida de la matriz
identidad es 1. En efecto
kxk
kIxk
= maxn
= 1.
kIk = maxn
xR kxk
xR kxk
x6=0

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

para toda A Rnn y toda norma k k de Rn . ejercicio.


Un par de propiedades importantes de las normas inducidas se enuncian en el siguiente
teorema.
Teorema 5.6 (Consistencia). Si k k es la norma de Rnn inducida por la norma k k
de Rn , entonces
(i) kAxk kAkkxk, A Rnn , x Rn ;
(ii) kABk kAkkBk, A, B Rnn .
Demostracion. ejercicio.
No es difcil verificar (ejercicio) que, para A Rnn , resulta
kAk1 = max

1jn

kAk = max

1in

n
X

|aij |, = el maximo de las sumas por columnas,

i=1
n
X

|aij |, = el maximo de las sumas por filas,

j=1

kAk2 = max{ : autovalor de AT A} = maximo valor singular de A.


En el caso particular de A simetrica, se tiene que
kAk2 = max{|| : autovalor de A}.
Esta u
ltima afirmacion es consecuencia de que si A es simetrica, entonces A = U U T ,
con una matriz diagonal que tiene los autovalores de A en la diagonal, y U es unitaria,
es decir, U T U = I. Aqu y en adelante U denota la matriz conjugada de U , es decir
(U )ij = uij , donde uij es el complejo conjugado de uij = (U )ij .
Otra norma usual de Rnn , que no es inducida, es la norma de Frobenius, definida
por
!1/2
n
X
p
kAkF =
a2ij
= tr(AT A).
i,j=1

A pesar de no ser inducida, esta norma tambien cumple que


kABkF kAkF kBkF .
115

Espectro y radio espectral.


Dada una matriz A Rnn se define su espectro (A) como el conjunto de autovalores
de A, as
(A) = { C : es autovalor de A}.
El radio espectral (A) de A es el maximo modulo de sus autovalores, mas precisamente
(A) = max{|| : (A)}.
Por lo dicho anteriormente,
si A es simetrica

(A) = kAk2 .

El radio espectral juega un papel fundamental en el estudio de metodos iterativos


para sistemas lineales, principalmente debido al siguiente teorema:
Teorema 5.7 (Caracterizacion del radio espectral). Sea A Rnn , entonces
(A) = inf{kAk : k k es una norma inducida}.
Para demostrar este teorema utilizaremos el siguiente teorema, cuya demostracion
postponemos hasta el final de la seccion.
Teorema 5.8 (Descomposicion de Schur). Sea A Cnn . Sean 1 , 2 , . . . n los autovalores de A contados con su multiplicidad algebraica, es decir que son todos los ceros
de p() := det(I A). Entonces existe una matriz unitaria U (U T U = I) tal que
U AU T = T , donde T es triangular superior y diag(T ) = (1 , 2 , . . . , n ).
Observaci
on 5.9. Si los autovalores de A son reales, entonces existe una matriz real U
ortogonal (U T U = I) tal que U AU T = T , con T triangular superior (real) que tiene los
autovalores de A en la diagonal. Ademas, vale la pena enfatizar que esta descomposicion
es cierta aunque A no sea diagonalizable.
A continuacion utilizaremos el Teorema 5.8 de descomposicion de Schur para demostrar el Teorema 5.7 de caracterizacion del radio espectral.
Demostracion del Teorema 5.7. Es facil ver que (A) kAk para toda norma inducida
kk y cualquier matriz cuadrada A (ejercicio). Lo mas difcil es ver que dada A Rnn ,
para todo > 0 existe una norma inducida k k tal que kAk < (A) + .
Sean entonces A Rnn y > 0 dados. Por el Teorema 5.8 de descomposicion de
Schur existe U unitaria tal que U AU T = T con T triangular superior tal que
diag(T ) = (1 , 2 , . . . , n ),

y i , i = 1, 2, . . . , n son los autovalores de A.

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

Para z R, z > 0, definimos

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

1 z 1 t12 z 2 t13 . . . z (n1) t1n


0
2
z 1 t23 . . . z (n3) t2n

..
..
..
..
= ...
,
.
.
.
.

0
...
0
n1 z 1 t(n1)n
0
...
0
0
n

Elegimos ahora z suficientemente grande de manera que


max

1jn

j1
X

z ij |tij | < ,

i=1

y entonces
kDz U AU T Dz1 k1 = max |j | +
1jn

j1
X

z ij |tij | < (A) + .

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

La importancia del radio espectral queda plasmada en el siguiente teorema.


Teorema 5.10. Sea A Rnn , entonces las siguientes afirmaciones son equivalentes:
(1) (A) < 1.
(2) kAk < 1 para alguna norma inducida.
(3) lim kAk k = 0, para toda norma inducida k k.
k

117

(4) lim Ak x = 0, para todo vector x Rn .


k

Demostracion. (1) (2) es inmediato por el Teorema 5.7.


(2) (3). Supongamos que kAk < 1 para alguna norma inducida k k . Sea k k
una norma inducida cualquiera. Entonces, como todas las normas son equivalentes, por
ser el espacio de las matrices de dimension finita, existe c > 0 tal que
kAk k ckAk k ,

k N0 .

Por el Teorema 5.6 de consistencia, resulta que kAk k kAkk y luego


kAk k ckAk k ckAkk 0,

cuando k .

(3) (4). Sea x Rn y sea k k una norma en Rn y tambien su norma inducida en


R . Entonces, por el Teorema 5.6 de consistencia
nn

kAk x 0k = kAk xk kAk kkxk 0,

cuando k .

(4) (1). Sea (A) y sea x un autovector asociado a , luego


Ax = x,

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 xk = ||k kxk

|| kAk k1/k

(A) 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 .

Es decir que dado > 0, existe k0 N tal que


(A) kAk k1/k (A) + ,
O sea, limk kAk k1/k = (A).
118

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

que, como vimos antes, satisface


T = H = H 1 , (H es unitaria)
H

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,

con T triangular superior y diag(T) = (2 , . . . , n ).

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

Dada A Rnn y b Rn , consideremos el problema de hallar x Rn tal que Ax = b.


Supongamos que x Rn es una solucion aproximada del sistema. Considerando una
norma dada k k de Rn , definimos:
error = x x,
kx xk
,
error relativo =
kxk
residuo = A
x b = b b,
kb bk
residuo relativo =
.
kbk

si b = A
x,

Queremos hallar una estimacion para el error relativo


relativo

kbbk
.
kbk

kx
xk
kxk

en terminos del residuo

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 .

Resumimos lo demostrado hasta ahora en un Lema:


Lema 5.13. Si x Rn \ {0} es la solucion de Ax = b, entonces, cualquiera sea x Rn ,
se cumple que
1 kb bk
k
x xk
kb bk

(A)
,
(A) kbk
kxk
kbk
para b = A
x.
120

En MATLAB. La funcion cond calcula el n


umero de condicion para diferentes normas
y matrices. Leer su documentacion, y la de la funcion rcond.
Observaci
on 5.14. El n
umero de condicion siempre es mayor o igual a uno:
(A) = kAkkA1 k kAA1 k = kIk = 1.
Cuando (A) es peque
no, o cercano a uno, (A)
= 1 resulta
k
x xk kb bk
=
kxk
kbk
Es decir, peque
nas perturbaciones en el lado derecho de la ecuacion, producen peque
nos
cambios en las soluciones. En este caso decimos que el problema Ax = b esta bien
condicionado.
Observaci
on 5.15. Dada la solucion x de Ax = b, si x es una aproximacion de x,
entonces
kA
x bk
k
x xk
(A)
.
kxk
kbk
| {z }
| {z }
desconocido

calculable

El lado derecho de la desigualdad anterior se utiliza en la implementacion de criterios de


parada en algunos metodos iterativos.
Observaci
on 5.16. Observemos que multiplicar una matriz por una constante arbitraria
no nula, no afecta el n
umero de condicion:
(A) = kAkk(A)1 k = ||kAk

1
kA1 k = (A).
||

Existe una estrecha relacion entre el n


umero de condicion y los autovalores cuando
se considera la norma k k2 para matrices simetricas, la misma esta dada en el siguiente
lema.
, donde max y min
Lema 5.17. Si A Rnn es simetrica, entonces 2 (A) = max
min
denotan el autovalor de modulo maximo y mnimo de A, respectivamente.
Demostracion. Sea A Rnn una matriz simetrica, entonces kAk2 = (A) = max{|| :
(A)} =: max . Como A es simetrica, A1 resulta simetrica y entonces
kA1 k2 = (A1 ) = max{|| : (A1 )}
= max{|| : 1 (A)} = max{||1 : (A1 )}
1
1
=:
.
=
1
min{|| : (A )}
min
Por lo tanto 2 (A) = kAk2 kA1 k2 = max

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

con x0 Rn dado. Esta iteracion se conoce como metodo de Richardson.


M
etodo de Jacobi.
Otra opcion surge de considerar que

Ax = b

a11 x1 = b1 (a12 x2 + + a1n xn )


a22 x2 = b2 (a21 x1 ) (a23 x3 + + a2n xn )
a33 x3 = b3 (a31 x1 + a32 x2 ) (a34 x4 + + a3n xn )
..
.
ann xn = bn (an1 x1 + an2 x2 + + an(n1) xn1 ).

Esto sugiere, por ejemplo, el siguiente metodo iterativo. Dado x0 , repetir,




x1k+1 = b1 (a12 x2k + + a1n xnk ) /a11


x2k+1 = b2 (a21 x1k ) (a23 x3k + + a2n xnk ) /a22


x3k+1 = b3 (a31 x1k + a32 x2k ) (a34 x4k + + a3n xnk ) /a33 ,
k = 0, 1, 2, . . . .
..
.


n
) /ann .
xk+1 = bn (an1 x1k + an2 x2k + + an(n1) xn1
k
Este metodo iterativo se conoce como metodo de Jacobi.
Si escribimos la matriz A = L+D+U con L triangular inferior con ceros en la diagonal,
U triangular superior con ceros en la diagonal y D diagonal, entonces la iteracion del
metodo de Jacobi puede escribirse en forma matricial como
xk+1 = D1 [b (L + U )xk ] = D1 (L + U ) xk + D1 b,
{z
}
|
matriz de iteraci
on

notando que por ser D diagonal, D1 no es costosa de calcular.


122

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

Observemos que el caso = 1 coincide con el metodo de Gauss-Seidel.


Los metodos descritos son todos metodos de la forma
xk+1 = M xk + c,
con M y c dados. En el siguiente teorema se establece una condicion necesaria y suficiente
sobre M para que tal iteracion converja a partir de cualquier x0 .
Teorema 5.18. Sea M Rnn . Entonces, dado c Rn , la iteracion
xk+1 = M xk + c,

k = 0, 1, . . . ,

converge para cualquier x0 inicial si y solo si (M ) < 1. Ademas, si (M ) < 1, la


iteracion converge a la u
nica solucion de x = M x + c.
123

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

Por lo tanto N = (I M )1 y I M es invertible. Luego el sistema


x = Mx + c

(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, . . . ,

resulta que xk x. Restando la ecuacion para x y la definicion de xk obtenemos la


ecuacion para el error
(xk+1 x) = M (xk x) = M 2 (xk1 x) = M k+1 (x0 x).
Por lo tanto
kxk+1 xk kM k+1 kkx0 xk kM kk+1 kx0 xk 0 cuando k .
(): Si el metodo xk+1 = M xk + c converge a partir de cualquier x0 , debe converger
siempre a x solucion de x = M x + c. Si converge para cualquier c Rn dado, entonces
el sistema (I M )x = c tiene solucion para todo c por lo que, fijado el c, la solucion
es u
nica. Resumiendo, dado c Rn , la iteracion xk+1 = M xk + c converge, a partir de
cualquier x0 , al mismo x, solucion u
nica de x = M x + c. Luego
xk x = M k (x0 x) 0,

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, . . . .

As, la convergencia en la norma k k sera mas rapida cuanto mas peque


no sea kM k.
Para demostrar, bajo ciertas condiciones, que los metodos de Jacobi, Gauss-Seidel,
SOR y Richardson convergen, veremos que la matriz de iteracion correspondiente tiene
alguna norma inducida menor a uno.
124

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

Teorema 5.22. Si A una matriz estrictamente diagonalmente dominante (edd), entonces


A es invertible, y dado b Rn el metodo de Jacobi
1
xk+1 = D1 (L + U )xk + D
| {z }b,

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

que satisface J < 1 por ser A edd.

Demostracion. La demostracion consiste en verificar que la norma inducida por la norma


infinito de la matriz de iteracion del metodo de Jacobi es menor que uno, usando que A
es edd.
Recordemos que la iteracion de Jacobi es
1
xk+1 = D1 [b (L + U )xk ] = D1 (L + U ) xk + D
| {z }b,
|
{z
}
c

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 =

La norma infinito de esta matriz es


kMJ k = max

1in

n
X
j=1

|(MJ )ij | = max

1in

j6=i

|aii |

= max

1in

|aij |
< 1,
|aii |

j6=i

por ser A edd. Esto implica que el problema x = MJ x + c tiene solucion u


nica para cada
n
c R , y como es equivalente a Ax = b, se tiene que A es singular.
125

Sin usar la maquinaria abstracta de normas de matrices tambien se puede demostrar


la convergencia de este metodo, de la siguiente manera mas elemental.
Demostracion alternativa del Teorema 5.22. Sea A Rnn edd, sea b Rn dado y sea
x0 Rn cualquier aproximacion inicial. Recordemos que por definicion, la iteracion de
Jacobi es
X aij j
bi

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

Para el metodo de Gauss-Seidel tenemos el siguiente teorema de convergencia.


Teorema 5.23. Si A es estrictamente diagonalmente dominante (edd), entonces el metodo de Gauss-Seidel converge a partir de cualquier iteracion inicial x0 a la u
nica solucion
x = A1 b de Ax = b.
Ademas, existe GS < 1 tal que
kx xk+1 k GS kx xk k ,

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 =

Demostracion. Recordemos que de la definicion del metodo de Gauss-Seidel


xk+1 = (L + D)1 [b U xk ] = (L + D)1 U xk + (L + D)1 b,
|
{z
}
|
{z
}
MGS

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

Recordemos que el metodo de sobrerrelajacion sucesiva (SOR) es


1
1
1
D + U ) xk + ( D + L)1 b,
xk+1 = ( D + L)1 (

{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 esto implicara la afirmacion del teorema.


Sea x Rn que realiza el maximo de (5.4). Entonces kxkA = 1 y kA1
1 A2 kA =
1
kA1 A2 xkA .
Notemos que
1
1
A1
1 A2 x = A1 (A A1 )x = A1 Ax x,
| {z }
y

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.

>0 pues y6=0

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
) ,

por lo que alg


un autovalor de MSOR
debe tener modulo mayor o igual a uno, y luego

(MSOR
) 1.

5.2.4

Convergencia del m
etodo de Richardson

Recordemos que el metodo de Richardson se basa en la iteracion


xk+1 = (I A)xk + b,

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

Figura 5.1: Ubicacion de opt = argmin max{|1 1 |, |1 2 |}.


Lema 5.28. El metodo de Richardson converge para A sdp, a partir de cualquier x0 Rn
si y solo si
2
0<<
.
max{ : (A)}
Queremos ahora averiguar cual es el valor de que minimiza (I A). Por lo visto
anteriormente,
opt = argmin max{|1 1 |, |1 2 |},
es decir, opt es el valor de que minimiza la funcion max{|1 1 |, |1 2 |}. A
partir del grafico de la Figura 5.1 vemos que el mismo se alcanza cuando
n 1 = 1 1

2
.
1 + n

En ese caso, ademas


(I opt A) = 1 opt 1 = 1
y como A es sdp, 2 (A) =

n
.
1

21
n 1
=
=
1 + n
n + 1

n
1
n
1

1
+1

Hemos probado entonces el siguiente teorema:

Teorema 5.29. Si A es sdp, y aplicamos el metodo de Richardson con opt =


a partir de cualquier x0 obtenemos
kx xk+1 k2

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, . . . ,

donde kykA = (y T Ay)1/2 .


Demostracion. Para probar la afirmacion bastara ver que kI opt AkA
decir
2 (A) 1
.
max k(I opt A)vkA
kvkA =1
2 (A) + 1

2 (A)1
,
2 (A)+1

es

Sea entonces v Rn tal que kvkA = 1. Observemos que


k(I opt A)vk2A = v T (I opt A)T A(I opt A)v = v T (I opt A)T A1/2 A1/2 (I opt A)v,
donde A1/2 es la raz cuadrada de A. Como A es sdp, existen Q Rnn ortogonal y
Rnn diagonal (con los autovalores de A en la diagonal) tales que A = QQT . Como
1/2
es diagonal y sus entradas son no-negativas, se define 1/2 por (1/2 )ij = ij , y cumple
1/2 1/2 = . Entonces se define A1/2 = Q1/2 QT que cumple
A1/2 A1/2 = Q1/2 QT Q1/2 QT = Q1/2 1/2 QT = QQT = A.
Ademas
AA1/2 = QQT Q1/2 QT = Q1/2 QT = Q1/2 QT = Q1/2 QT QQT = A1/2 A,
es decir que A conmuta con A1/2 . Por lo tanto
1/2
2
k(I opt A)vk2A = v| T {z
A1/2}(I opt A)T (I opt A) A
| {z v} = k(I opt A)wk2 .
w

wT

Ahora bien kwk22 = wT w = v T A1/2 A1/2 v = v T Av = 1. Finalmente, resulta que cualquiera


sea v Rn con kvkA = 1,
k(I opt A)vkA max k(I opt A)wk2 = (I opt A) =
kwk2 =1

Por lo tanto,kI opt AkA


norma inducida.

2 (A)1
2 (A)+1

2 (A) 1
.
2 (A) + 1

y la afirmacion se sigue de la consistencia de la

131

5.3

M
etodos de descenso para matrices sdp

En esta seccion estudiaremos metodos iterativos para resolver sistemas de ecuaciones


lineales asociados a matrices simetricas y definidas positivas. Estos metodos estan basados
en el hecho de que la solucion de un sistema asociado a una matriz A sdp esta caracterizada
por ser el punto donde cierto funcional de energa asociado a A alcanza su mnimo.
Teorema 5.31. Sean A sdp y b Rn . Sea : Rn R dada por (x) = 21 xT Ax xT b.
Entonces, el mnimo de en Rn se alcanza solo en la solucion x de Ax = b y el valor
T
mnimo de es b 2x .
Demostracion. Sea x := A1 b y sea y Rn arbitrario, y 6= x . Vamos a probar que
(x ) < (y). Llamando z := y x tenemos que
1
(y) = (x + z) = (x + z)T A(x + z) (x + z)T b
2
1 T
1
= x Ax + xT Az + z T Az xT b z T b
2
2
1 T
= (x ) + z Az.
2
Puesto que A es sdp, tenemos que 21 z T Az > 0, y as,
(x ) < (y),

y Rn , y 6= x .

Por lo tanto, el mnimo de se alcanza solo en x y


xT b
1
(x ) = xT Ax xT b = .
2
2
Observaci
on 5.32. Para todo x Rn ,
(x) = Ax b.
Lo verificaremos en clase.
Del teorema anterior se sigue que si A es sdp,
Hallar x tal que Ax = b
es equivalente a
Hallar x tal que x minimiza en Rn .
Por otro lado, el siguiente lema sera util al momento de dise
nar y entender los metodos
para sistemas asociados a matrices sdp.
Lema 5.33. Sean A sdp, b Rn , y x la solucion de Ax = b. Sea S Rn . Entonces,
y S minimiza sobre S si y solo si y S minimiza k x kA sobre S.
Demostracion. Se puede demostrar que (ejercicio)
1
y Rn .
(y) = (x ) + ky x k2A ,
2
De esta u
ltima afirmacion se sigue lo que afirma este lema.
132

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)

Notemos que es la misma estimacion de error de Richardson cuando se elige el


optimo (opt ). Cual le parece que sera entonces la ventaja de este metodo respecto
del anterior?
Demostracion. Sea k 0 arbitario y fijo, y supongamos que xk esta dado. La iteracion
de Richardson con opt da
xR
k+1 = xk opt (Axk b) = xk + opt rk ,
con rk = b Axk . Por otro lado, para el descenso mas pronunciado,
xk+1 = xk + rk ,
donde se elige de modo de minimizar h() := (xk + rk ). Por el Lema 5.33, esto es
equivalente a minimizar kxk + rk x kA . As,
k xk + rk x kA k xk + opt rk x kA .
| {z }
| {z }
xk+1

xR
k+1

Del teorema de convergencia para la iteracion de Richardson se tiene que


kxR
k+1 x kA

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,

como queramos demostrar.


134

5.3.2

M
etodo del gradiente conjugado

Seguimos considerando la resolucion de un sistema Ax = b, donde A es sdp.


Pregunta: Se puede mejorar el metodo del descenso mas pronunciado eligiendo
mejor las direcciones de b
usqueda?
El metodo del gradiente conjugado que estudiaremos en esta seccion surgio en 1950
como un metodo directo. Posteriormente se empezo a usar como metodo iterativo para
grandes sistemas de ecuaciones lineales y ha sustituido el uso de los metodos iterativos
estacionarios como Jacobi, Gauss-Seidel, etc.
Recordemos el algoritmo del metodo del descenso mas pronunciado:
Sea x0 Rn .
r0 = b Ax0 ;
k = 0;
mientras rk 6= 0
xk+1 = xk + k rk , donde elegimos adecuadamente el valor k ;
rk+1 = b Axk+1 ;
k = k + 1;
fin
Recordemos que k se elige de manera que
xk+1 minimiza sobre {xk + rk | R}.
O sea,
x1 minimiza sobre {x0 + r0 | R}
x2 minimiza sobre {x0 + 0 r0 + r1 | R}
x3 minimiza sobre {x0 + 0 r0 + 1 r1 + r2 | R}
..
.
Dado x0 Rn , definimos una nueva sucesion {xk }kN de la siguiente manera:
xk+1 minimiza sobre

x0 + span{r0 , r1 , . . . , rk }
|
{z
}

k 0,

:={x0 +0 r0 +1 r1 ++k rk |0 ,1 ,...,k R}

donde ri = b Axi , para i = 0, 1, . . . , k.


Recordando que minimizar es equivalente a minimizar la A-distancia a la solucion
x , se tiene que
xk+1 es el punto de x0 + span{r0 , r1 , . . . , rk } mas cercano (en norma A) a la solucion x .
Verificar que tal punto siempre existe, para asegurarse de que xk+1 esta bien definido!
As, tenemos el siguiente algoritmo teorico:
135

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

xx0 +span{r0 ,...,rk1 }

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

y as, rk . Puesto que span{r0 , . . . , rk1 } es arbitario,


rk {r0 , r1 , . . . , rk1 }.

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.

El espacio Kk+1 := span{r0 , Ar0 , . . . , Ak r0 } se llama espacio de Krylov.


136

Demostracion. Demostraremos el resultado haciendo induccion sobre k.


Notemos que si k = 0, span{r0 } = K1 . Supongamos ahora que
span{r0 , . . . , rk } = Kk+1 ,

(Hip. ind.)

y veamos que span{r0 , . . . , rk , rk+1 } = Kk+2 , siempre que rk+1 6= 0.


Demostramos primero que span{r0 , . . . , rk , rk+1 } Kk+2 . Para esto, notemos que por
hipotesis inductiva,
ri Kk+1 Kk+2 ,
para i = 0, . . . , k.
Solo resta ver entonces que rk+1 Kk+2 . Puesto que rk+1 = b Axk+1 , donde xk+1 =
Kk+1 , se tiene que
x0 + , con span{r0 , . . . , rk } |{z}
=
por hip. ind.

rk+1 = b Axk+1 = b Ax0 A = r0


|{z}
Kk+2

A
|{z}

Kk+2 .

Kk+2 ,
pues Kk+1

Por lo tanto, span{r0 , . . . , rk , rk+1 } Kk+2 .


Ahora bien, puesto que rk+1 6= 0, tenemos que span{r0 , . . . , rk , rk+1 } es un subespacio
de dimension k + 2 del espacio de Krylov Kk+2 que tiene dimension a lo sumo k + 2, y
as, necesariamente, span{r0 , . . . , rk , rk+1 } = Kk+2 , como queramos demostrar.

5.3.3

Cotas de error para el m


etodo del gradiente conjugado

Recordemos que de la definicion de xk se sigue que xk minimiza en x0 + Kk , y esto


ocurre, si y solo si
kxk x kA kw x kA ,
w x0 + K k .
P
i
Si w x0 + Kk , entonces w = x0 + k1
i=0 i A r0 , con 0 , . . . , k1 R. Entonces,
w x = x0 x +
= x0 x +
= x0 x +
= x0 x +

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

i z i+1 . Notemos que pk Pk y que pk (0) = 1.


137

Definimos el conjunto P k de polinomios residuales de grado k de la siguiente manera:


P k := {p Pk | p(0) = 1}.
As, hemos demostrado el siguiente teorema.
Teorema 5.43. Sean A sdp y b Rn . Sea x la solucion del sistema Ax = b. Si {xk }kN
denota la sucesion generada por el metodo del gradiente conjugado partiendo de un vector
inicial x0 Rn , entonces,
kxk x kA = min kp(A)(x0 x )kA ,

k 0.

pP k

Corolario 5.44. Sean A sdp y b Rn . Sea x la solucion del sistema Ax = b. Si


{xk }kN denota la sucesion generada por el metodo del gradiente conjugado partiendo de
un vector inicial x0 Rn , entonces,
p P k.

kxk x kA max |p()|kx0 x kA ,


(A)

Demostracion. Del teorema anterior se sigue que


kxk x kA kp(A)kA kx0 x kA ,
para todo p P k . Por lo tanto es suficiente demostrar que
p P k.

kp(A)kA max |p()|,


(A)

(5.7)

Sea p P k . Entonces, para todo x Rn se tiene que


1

kp(A)xk2A = (p(A)x)T A(p(A)x) = (A 2 p(A)x)T (A 2 p(A)x) = kA 2 p(A)xk22


1

= kp(A)A 2 xk22 kp(A)k22 kA 2 xk22 .


1

Puesto que kA 2 xk22 = (A 2 x)T (A 2 x) = xT A 2 A 2 x = xT Ax = kxk2A , tenemos que


kp(A)xkA kp(A)k2 kxkA ,

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

y V es una matriz ortogonal (V V T = I) cuyas columnas son correspondientes vectores


propios.
Pk1 i+1
i z
para algunos 0 , 1 , . . . , k1 R. As,
Sea p P k . Entonces, p(z) = 1 i=0
puesto que V V T = I,
p(A) = I
=I

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

Es facil verificar que

p() =

p(1 )
0
0
p(2 )
..
..
.
.
0
0

...
...
...

0
0
..
.

. . . p(n )

y en consecuencia, p(A) es diagonalizable y


(p(A)) = {p() | (A)}.
Finalmente, puesto que p(A) es simetrica, kp(A)k2 = (p(A)) y as, (5.8) queda demostrada.
La utilidad del resultado anterior radica en que si se dispone de informacion sobre el
espectro de A, se pueden construir un polinomio residual conveniente y obtener una cota
para el error de las iteraciones del metodo del gradiente conjugado.
En clase veremos algunos ejemplos de como hacer esto.
Teorema 5.45. 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 gradiente conjugado. Entonces,
kxk x kA 2

!k
p
2 (A) 1
p
kx0 x kA ,
2 (A) + 1

k 0.

Demostracion. Sean 0 < 1 2 n los autovalores de A.


Recordemos los polinomios de Tchebychev definidos por:

T0 (x) = 1,
T1 (x) = x,

Tk (x) = 2xTk1 (x) Tk2 (x),


k = 2, 3, . . .
Sabemos que Tk Pk y que
Tk (x) = cos(k cos1 (x)),
139

x [1, 1],

(5.9)

donde la funcion cos : [0, ] [1, 1]. Teniendo en cuenta la biyeccion x : [1 , n ]


[1, 1] dada por x() =

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

Por otro lado, es facil ver que (ejercicio!), si z 6= 0,


x=

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)

De (5.10) y (5.11), teniendo en cuenta el Corolario 5.44, concluye la demostracion.

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

y as, xk = x , como queramos demostrar.


Teorema 5.47. Sea A sdp y b Rn . Si b es una combinacion lineal de k autovectores de
A entonces el metodo del gradiente conjugado para resolver el sistema Ax = b, partiendo
de x0 = 0, converge a la solucion en a lo sumo k pasos.
Demostracion. La demostracion se deja como ejercicio. Sugerencia: Utilizar el Teorema 5.43.
En la practica, no es cierto en general que el metodo del gradiente conjugado converja
en un n
umero finito de pasos, debido a los errores de redondeo en los calculos computacionales. En la actualidad, este metodo se utiliza como metodo iterativo para sistemas
con matrices de gran tama
no (por ejemplo, n = 100000). En este caso, no se pretende
realizar las n iteraciones para alcanzar la raz. En vez de esto, se utiliza alg
un criterio
de parada en las iteraciones, dependiendo de una tolerancia admisible para el error.

5.3.5

Implementaci
on del m
etodo del gradiente conjugado

En esta seccion suponemos que A es sdp, b Rn , y x denota la solucion de Ax = b.


Dado x0 Rn , consideramos {xk }kN la sucesion generada por el metodo del gradiente
conjugado.
Recordemos que
xk+1 = argmin (x),
k 0,
xx0 +Kk+1

donde Kk+1 = span{r0 , r1 , . . . , rk } = span{r0 , Ar0 , . . . , Ak r0 }.


Veremos que una vez que xk esta determinado, o bien, xk = x , o bien, existe una
direccion de b
usqueda dk+1 tal que
para alg
un k+1 R.

xk+1 = xk + k+1 dk+1 ,


Lema 5.48. Para todo k N,
xk+1 xk Kk+1 ,

(xk+1 xk )T A = 0,

Kk .

Demostracion. Sea k N. Sabemos que xk = x0 + wk , con wk Kk , y que xk+1 =


x0 + wk+1 , con wk+1 Kk+1 . As, puesto que Kk Kk+1 ,
xk+1 xk = wk+1 wk Kk+1 .
| {z } |{z}
Kk+1

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

ya que tanto rk como rk+1 es ortogonal a Kk = span{r0 , r1 , . . . , rk1 }.


141

Para cada k N, si rk 6= 0, existe una u


nica direccion en Kk+1 = span{r0 , r1 , . . . , rk }
que es A-ortogonal a Kk = span{r0 , r1 , . . . , rk1 }, puesto que Kk Kk+1 y que dim(Kk ) =
k y dim(Kk+1 ) = k + 1. En particular, existe un u
nico wk Kk tal que dk+1 := rk + wk
es A ortogonal a Kk .
As, tenemos la siguiente consecuencia del lema anterior.
Corolario 5.49. Sea d1 = r0 y sea {dk+1 }kN la sucesion definida arriba. Entonces, si
k N0 y rk 6= 0, se tiene que
xk+1 = xk + k+1 dk+1 ,
donde k+1 =

dT
k+1 rk
T
dk+1 Adk+1

Demostracion. Sea k N. Por el lema anterior tenemos que


xk+1 xk Kk+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

k+1 = argmin (xk + dk+1 ).


R

Teniendo en cuenta la Observacion 5.34, concluimos que


k+1 =

dTk+1 rk
.
dTk+1 Adk+1

Ahora estamos en condiciones de escribir la siguiente version mejorada del algoritmo


anterior:
M
etodo del gradiente conjugado. (Version preliminar 2)
Sean A sdp y b Rn . Sea x0 Rn .
r0 = b Ax0 ;
k = 0;
mientras rk 6= 0
Calcular la direccion de b
usqueda dk+1 ;
k+1 =

dT
k+1 rk
;
dT
k+1 Adk+1

xk+1 = xk + k+1 dk+1 ;


rk+1 = b Axk+1 ;
k = k + 1;
fin
142

Antes de determinar una formula para calcular las direcciones de b


usqueda dk , demostramos que estas tambien generan el espacio de Krylov. Mas precisamente, tenemos
el siguiente resultado.
Lema 5.50. Sea k N. Si rk1 6= 0, entonces {d1 , . . . , dk } es A-ortogonal y
Kk = span{d1 , . . . , dk }.
Demostracion. Puesto que d1 = r0 , tenemos que K1 = span{d1 }. Supongamos que
Kk = span {d1 , . . . , dk },
{z
}
|

(Hip. ind.)

A-ortogonal

y veamos que si rk 6= 0,
Kk+1 = span {d1 , . . . , dk+1 } .
|
{z
}
A-ortogonal

Por hipotesis inductiva se tiene que {d1 , . . . , dk } es A-ortogonal y que {d1 , . . . , dk }


Kk Kk+1 . Ademas, de la definicion de dk+1 se sigue que dk+1 Kk+1 , y que dk+1 es
A-ortogonal a Kk = span{d1 , . . . , dk }. En consecuencia,
span {d1 , . . . , dk+1 } Kk+1 .
|
{z
}
A-ortogonal

Puesto que rk 6= 0, se tiene que d1 , . . . , dk+1 son no nulos, y en consecuencia, generan un


subespacio de dimension k + 1 del espacio de Krylov Kk+1 que tiene dimension k + 1. As,
span {d1 , . . . , dk+1 } = Kk+1 ,
|
{z
}
A-ortogonal

como queramos demostrar.


Teorema 5.51. Sea k N. Si rk1 6= 0, entonces
dk+1 = rk + k+1 dk ,
rT Ad

donde k+1 = dkT Adkk .


k

Demostracion. Sabemos que existe un u


nico wk Kk tal que dk+1 = rP
k + wk . Por el
lema anterior, tenemos que Kk = span{d1 , . . . , dk } y por lo tanto, wk = ki=1 i di , para
algunos 1 , . . . , k R, y luego,
dk+1 = rk +

k
X

i di .

i=1

De la definicion de dk+1 se sigue que dk+1 A Kk = span{d1 , . . . , dk }, y por lo tanto,


dTk+1 Adj = 0,

j = 1, . . . , k.
143

As,
dTk+1 Adj

rkT

k
X

!
i dTi

Adj =

rkT Adj

i=1

k
X
i=1

i dTi Adj = rkT Adj + j dTj Adj = 0,


| {z }
=0, si i6=j

y de aqu,
j =

rkT Adj
,
dTj Adj

j = 1, . . . , k.

En consecuencia, para completar la demostracion, es suficiente probar que j = 0, para


j = 1, . . . , k 1, y esto u
ltimo es equivalente a probar que
rkT Adj = 0,

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

xk+1 = xk + k+1 dk+1 ;


rk+1 = b Axk+1 ;
k = k + 1;
fin
En el siguiente lema damos expresiones alternativas para el calculo de los coeficientes
k y k , de manera de hacer mas eficiente nuestro algoritmo.
Lema 5.52. Si rk 6= 0, entonces
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

Demostracion. Notemos que


dTk+1 rk = (rk + k+1 dk )T rk = rkT rk + k+1 dTk rk = rkT rk ,
|{z}
=0

ya que dk Kk y rk Kk . En consecuencia, k+1 =

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 =

As, usando que k =

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

como queramos demostrar.

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

En general, cuando queremos resolver un sistema Ax = b con un metodo iterativo, la


convergencia depende del n
umero de condicion de A, (A). Si pudieramos determinar
una matriz M invertible tal que M sea como A1 en alg
un sentido, entonces el sistema
Ax = b, sera equivalente al sistema M Ax = M b.
Si M A1 entonces M A I, y por lo tanto, el sistema M Ax = M b esta mejor
condicionado.
Gradiente conjugado precondicionado (GCP)
Vimos que si 2 (A) es grande, la convergencia del metodo del gradiente conjugado puede
ser muy lenta. Supongamos que disponemos de una matriz M sdp tal que M A1 en
el siguiente sentido: existen constantes c1 , c2 tales que
xT M x
c1 T 1 c2 ,
x A x

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.

As, resolver el sistema Ax = b es equivalente a resolver


(
SASy = Sb
x = Sy.
Se deja como ejercicio verificar que SAS es sdp, y por lo tanto, podemos aplicar el
metodo del gradiente conjugado para resolver el sistema SASy = Sb. Mas a
un, se puede
demostrar (ejercicio!) que
c2
2 (SAS) .
c1
Si cc12 es peque
no, la convergencia del metodo del gradiente conjugado aplicado al sistema
1
SASy = Sb sera mas rapida. Pero no conocemos y no queremos calcular S = M 2 !
Supongamos por el momento que disponemos de la matriz S y apliquemos el metodo
del gradiente conjugado para resolver el sistema SASy = Sb. Llamemos {yk }kN a la
sucesion generada por dicho algoritmo, y denotemos por rk := Sb SASyk al residuo en
el paso k, y por dk+1 a la direccion de b
usqueda para obtener yk+1 a partir de yk .
147

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)

Ademas, ya que kzk2SAS = z T SASz = (Sz)T A(Sz) = kSzk2A , para todo z Rn , la


desigualdad anterior nos da
qc
kxk x kA 2 q

2
c1

c2
c1

+1

k
kx0 x kA ,

k 0.

(5.13)

Por lo tanto, si M = S 2 es un buen precondicionador de A, esta nueva sucesion xk


converge mas rapidamente a la solucion x del sistema Ax = b que la sucesion generada
por el metodo del gradiente conjugado aplicado directamente al sistema Ax = b.
A continuacion, reescribiremos el algoritmo anterior pensando en calcular la sucesion
xk := Syk en vez de yk . Para esto, definimos el residuo rk := b Axk y notamos que
rk = b Axk = b ASyk = S 1 (Sb SASyk ) = S 1 rk .
148

Por otro lado, puesto que yk+1 = yk +


k+1 dk+1 se tiene que
Syk+1 = Syk +
k+1 S dk+1 ,
o equivalentemente, que
xk+1 = xk +
k+1 dk+1 ,
donde la direccion de b
usqueda dk+1 esta dada por dk+1 := S dk+1 . As,
(
d1 = S d1 = S r0 = S 2 r0 = M r0 ,
dk+1 = S dk+1 = S(
rk + k+1 dk ) = S rk + k+1 dk = S 2 rk + k+1 dk = M rk + k+1 dk ,

k 1.

Ademas, para los coeficientes


k+1 y k+1 se tiene que

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

M A1 en el siguiente sentido: existen constantes c1 , c2 tales que


xT M x
c2
c2 ,
x 6= 0,
con
1.
T
1
x A x
c1
As, la sucesion {xk }kN0 generada por el gradiente conjugado precondicionado satisface
k
qc
2

1
c1
kx0 x kA ,
k 0.
kxk x kA 2 q
c2
+
1
c1
c1

Si tomaramos M = I, la accion M es trivial de calcular, pero cc12 puede ser muy


grande. Por otro lado, la mejor eleccion para satisfacer la segunda condicion sera
tomar M = A1 (y as, c1 = c2 = 1), pero la accion M es tan costosa de calcular
como resolver el problema original!
En general, para construir un buen precondicionador M para una matriz A hay que
lograr un adecuado equilibrio entre ambas condiciones, y es necesario saber de donde
proviene la matriz A (por ejemplo, de la discretizacion de una ecuacion diferencial) y
usar esa informacion para dise
nar M .
El metodo del gradiente conjugado precondicionado esta implementado en MatLab
a traves de la funcion pcg. es importante tener en cuenta que para MatLab, el precondicionador M es una aproximacion de A, y no de A1 , como hemos supuesto. En este
caso, las condiciones dadas para un buen precondicionador deben reemplazarse por las
siguientes:
Es facil resolver sistemas con matriz M (es decir, la accion M 1 es facil
de calcular).
M A en el siguiente sentido: existen constantes c1 , c2 tales que
xT M x
c2 ,
c1 T
x Ax

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.

Teniendo en cuenta que la iteracion


xk+1 = (I M A)xk + M b,
converge si y solo si (I M A) < 1, a veces se elige la matriz M de manera que
I M A = B,
donde B es la matriz de iteracion de un metodo iterativo estacionario.
151

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

Gradiente conjugado para problemas no sim


etricos

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

El metodo GMRes (Generalized Minimum Residual) es un metodo de subespacio de


Krylov para matrices que no son sdp. A diferencia de CGNR y CGNE, la iteracion
de GMRes no requiere el calculo de la accion de AT sobre un vector, lo cual puede ser
ventajoso en algunos casos. Sin embargo, requiere el almacenamiento de una base para
Kk , y por lo tanto el almacenamiento necesario es mayor.
La k-esima iteracion de GMRes es la solucion al problema de mnimos cuadrados
siguiente
xk = argmin kb Axk2 ,
(5.14)
xx0 +Kk

donde Kk := span{r0 , Ar0 , . . . , Ak1 r0 }


Dejamos para mas adelante la implementacion efectiva (y eficiente) de cada iteracion
y nos enfocamos a continuacion en las consecuencias que se desprenden de esta definicion.
El analisis que sigue es parecido al que se hizo para GC. Observemos que
x x0 + K k

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

Es decir, x x0 + Kk si y solo si r = b Ax = p(A)r0 , con p P k , un polinomio residual


(p(0) = 1) de grado k.
Queda entonces demostrado el siguiente teorema:
Teorema 5.55. Sea A una matriz no singular y sea xk la k-esima iteracion de GMRes.
Entonces
krk k2 = min kp(A)r0 k2 ,
pP k

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)

Demostracion. Sea p P k . Entonces p(A) = V p()V 1 y luego


kp(A)k2 kV k2 kV 1 k2 kp()k2 = 2 (V ) max |p(z)|.
z(A)

Observemos que si A es normal, entonces V es ortogonal y kV k2 = kV 1 k2 = 1, por


lo que 2 (V ) = 1. En general es difcil calcular 2 (V ), y se espera que sea grande si V
esta cerca de ser no diagonalizable.
Enunciamos ahora un par de consecuencias sencillas de (5.16).
1

Se dice que una matriz A es normal si A conmuta con AT , i.e., AAT = AT A.

155

Corolario 5.59. Sea A no singular y diagonalizable. Si A tiene solo k autovalores


distintos, entonces GMRes terminara en a lo sumo k iteraciones.
Corolario 5.60. Sea A una matriz no singular. Si b es una combinacion lineal de
k autovectores de A, entonces el metodo GMRes aplicado a la resolucion de Ax = b,
partiendo de x0 = 0 terminara en a lo sumo k iteraciones.
Criterio de parada.
Como ocurre con GC, el metodo GMRes se considera usualmente un metodo iterativo.
La tasa de convergencia para matrices diagonalizables involucra 2 (V ), pero igualmente
se asemeja a GC. Tambien se han hallado tasas de convergencia para matrices no diagonalizables, pero dado que el conjunto de tales matrices tiene medida cero en el espacio
de las matrices complejas de n n, no las analizaremos en este curso.
Como ocurre con GC terminaremos las iteraciones de GMRes cuando
krk k2 kbk2 .
Seg
un el Lema 5.13,

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

Un resultado de convergencia para GMRes

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, . . . .

Demostracion. Consideremos pk (z) = (1 z)k , entonces pk P k y pk (A) = (I A)k , por


lo tanto, el Corolario 5.56 implica que
krk k2 k(I A)k k2 kr0 k2 k(I A)kk2 kr0 k2 k kr0 k2 .

En el Lema 5.13 vimos que


1 kA
x Axk
k
x xk
kA
x Axk

(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

Precondicionamiento para GMRes

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

Comenzamos recordando que xk resuelve un problema de mnimos cuadrados:


xk = argmin kb Axk2 .
xx0 +Kk

Supongamos que {v1 , v2 , . . . , vk } es una base ortonormal de Kk , por lo que



y1
k

X

 y2

z Kk z =
y` v` = v1 v2 . . . vk .. ,

|
{z
} .
`=1
Vk
yk
| {z }
y

con Vk Rnk , y Rk . El problema resulta entonces equivalente a hallar y Rk que


minimice
kb A(x0 + Vk y)k2 = kr AVk yk2 .
Es decir que queremos
minimizar kr AVk yk2 ,
158

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

vi+1 = zi+1 /kzi+1 k2 ;


Fin Para
El vector wi+1 = Avi pertenece a Ki+1 . Si en alg
un paso wi+1 Ki , la dimension
del espacio no aumenta, resulta zi+1 = 0 y el algoritmo falla (ocurre un breakdown). El
siguiente lema dice que en este caso, resulta que la solucion del problema pertenece a
x0 + Ki , y por lo tanto ya no hace falta buscar mas vectores vi .
Lema 5.62. Sea A no singular y sean vj , j = 1, 2, . . . , los vectores generados por el
algoritmo de Arnoldi. Sea i el menor entero para el cual
zi+1 = Avi

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 .

Si el proceso de Arnoldi no falla, podemos usarlo para implementar GMRes de manera


eficiente. Llamemos
hij := (Avi )T vj ,

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

calcularse sin necesidad de conocer xk . En efecto, por la ortogonalidad de Vk+1 resulta


krk k2 = kVk+1 (e1 Hk yk )k2 = ke1 Hk yk k2 .

Recordemos que el objetivo es hallar, dado > 0, un vector x Rn tal que


kb Axk2 kbk2 .

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

Una matriz A se dice Hessenberg superior si aij =, siempre que i > j + 1.

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 ;

vk+1 = vk+1 hjk vj ;


Fin Para
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 .
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

(b) kAk = max kAxk = max kAxk = max


kxk1

kxk=1

* 5.3. Sea k k una norma en Rn y denotemos tambien por k k a la norma inducida en


el espacio de matrices de n n. Demostrar que:
(a) kAxk kAkkxk, para toda matriz A y para todo vector x.
(b) kABk kAkkBk, para todo par de matrices A y B.
163

5.4. Consideremos las normas matriciales inducidas por las normas k k1 , k k , y k k2


en Rn . Demostrar que:
(a) kAk1 = max

n
X

1jn

(b) kAk = max

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 ,

es una norma en Rn y que la norma matricial inducida esta dada por


kAkG = kGAG1 k,

A Rnn .

5.7. Sea M Rnn . Demostrar que si (M ) 1 entonces existen x0 , c Rn tales que la


iteracion
xk+1 = M xk + c,
k 0,
no converge.
5.8. Demostrar que si una matriz A Rnn es de estrictamente diagonalmente dominante
(e.d.d), entonces resulta ser no singular.
(Sugerencia: Probar que Ax = 0 x = 0)
5.9. Estudiar analticamente la convergencia de los metodos de Jacobi y Gauss-Seidel,
para cualesquiera valores iniciales, para el sistema
x
+ z = 2
x + y
= 0
x + 2y 3z = 0
Observacion: La condicion de edd es suficiente pero no necesaria para la convergencia de
estos metodos.
Ayuda: Conoces alguna condicion necesaria y suficiente para la convergencia de
metodos de este tipo?
5.10. Demostrar que si A es spd, entonces el metodo SOR converge globalmente (i.e.,
para cualquier aproximacion inicial x0 ) para cualquier eleccion de (0, 2).
164

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

Para cada uno de los sistemas:


(a) Realizar un grafico del decrecimiento del error (en escala logartmica) en terminos del
n
umero de iteraciones para cada uno de los metodos utilizados. Extraer conclusiones.
xk
en termino del
(b) Eligiendo alguna norma conveniente, realizar un grafico de kxkxk+1
k xk
n
umero de iteraciones. Cual es asintoticamente el factor de reduccion del error para
cada metodo? Comparar con el radio espectral de cada matriz de iteracion.

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

5.19. Consideramos el problema de hallar la funcion u que satisface el siguiente problema


de valores de borde

u(x, y) = f (x, y),


(x, y) (0, 1) (0, 1)

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

donde la matriz B de tama


no N esta dada por B =

1
4
1

1
4

1
.

, e IN es la

.
1

1
4

4
1

matriz identidad de orden N . Las componentes del vector de terminos independientes


b son h2 por el valor de f en los correspondientes puntos de la grilla (enumerados de
izquierda a derecha y de abajo hacia arriba).
El vector solucion x aproxima los valores de la solucion u en los respectivos puntos
de la grilla.
Considerando distintos valores de N (N = 10, 50, 100, ...), repetir los items (a), (b) y
(c) del Ejercicio 5.17.
5.20. Consideremos la siguiente cota vista en clase para las iteraciones del metodo de
gradiente conjugado:
!k
p
2 (A) 1
.
kxk xk 2kx0 xk p
2 (A) + 1
Este ejercicio consiste en ver que esta cota puede ser demasiado pesimista en algunos
casos. Veamos el siguiente ejemplo: Supongamos que los autovalores de A se encuentran
contenidos en [1, 1.5] [399, 400] =: I.
p
2 (A) 1
(a) Dar una estimacion de 2 (A) y calcular p
.
2 (A) + 1
(b) Tomar el polinomio p3k (z) =

(1.25 z)k (400 z)2k


y considerar la estimacion
(1.25)k (400)2k

kx3k xk kx0 xk max |p3k (z)|.


zI

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

Observacion: Cuando se buscan precondicionadores M que sean cercanos a A1 , se


entiende que sean cercanos en este sentido:
xT M x
c1 T 1 c2 ,
x A x

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,

donde f (x) = 2 sen(x) + cos(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

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

y el vector b = (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, ...), investigar el comportamiento de GMRes para resolver el sistema lineal.

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

donde fi : D Rn R, para i = 1, 2, . . . , n. El sistema (6.1) siempre puede escribirse


como
F (x) = 0,
(6.2)

f1 (x)
f2 (x)

donde F : D Rn Rn esta dada por F (x) = .. , para x D.


.
fn (x)
Ejemplo 6.1. Para n = 1, un sistema de una ecuacion con una incognita es simplemente
una ecuacion no lineal, por ejemplo, hallar x R tal que
x tan x + 1 = 0.
Ejemplo 6.2. Para n = 2, se tiene un sistema de dos ecuaciones con dos incognitas, cuya
solucion en general representa la interseccion de dos curvas en el plano, por ejemplo, hallar
(x1 , x2 ) R2 tales que
(
x21 + x22 = 1
x21
9

+ 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

kF (x) F (x0 ) J(x x0 )k


= 0.
kx x0 k

En este caso, la matriz J se llama matriz jacobiana de F en x0 y se denota por F 0 (x0 ).


Se puede demostrar que si F es diferenciable en x0 , la matriz jacobiana es u
nica y
viene dada por

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

es decir, diferenciabilidad en x0 implica existencia de todas las derivadas parciales en x0 .


Definici
on 6.4 (Funcion continuamente
diferenciable). Sea D Rn abierto y sea F :

f1 (x)
f2 (x)

D Rn con F (x) = .. . Decimos que F es continuamente diferenciable en


.
fn (x)
fi
x0 D si xj es continua en x0 , para i, j = 1, 2, . . . , n.

6.1

M
etodos de punto fijo

Dado el sistema F (x) = 0, queremos transformarlo en una ecuacion (vectorial) de la


forma x = G(x), donde G : D Rn Rn es, en general, una funcion no lineal. La
iteracion de punto fijo asociada a la funcion G se define por:
xk+1 = G(xk ),

k = 0, 1, . . .

(6.3)

donde x0 D es un valor inicial dado. En este caso, la funcion G se llama funcion de


iteracion.
171

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 .

El siguiente resultado nos da una condicion suficiente para determinar cuando un


punto fijo de G es un punto de atraccion.
Teorema 6.8 (Teorema de Ostrowsky). Sea G : Rn Rn diferenciable en un punto
x Rn tal que x = G(x ). Si (G0 (x )) < 1 entonces x es un punto de atraccion.
Observaci
on 6.9. Notemos que este resultado es una generalizacion del teorema de convergencia de metodos iterativos estacionarios para sistemas lineales (ver Teorema 5.18),
ya que si G(x) = M x + c, se tiene que G0 (x) = M para todo x Rn . Notemos en
particular que en el caso de que el sistema es no lineal este teorema es solo una condicion
suficiente para la convergencia y por otro lado, que esta se garantiza solo localmente, es
decir, partiendo de un valor inicial x0 suficientemente cerca de x .
Demostracion del Teorema 6.8. Sea := (G0 (x )) < 1 y elijamos > 0 (fijo) tal que
+ 2 < 1. Por el Teorema 5.7, sabemos que existe una norma inducida k k tal que
kG0 (x )k < + .
Por otro lado, puesto que G es diferenciable en x , existe > 0 tal que si x B(x , )
entonces
kG(x) G(x ) G0 (x )(x x )k < kx x k.
Sea x0 B(x , ) y xk+1 := G(xk ), para k = 0, 1, 2, . . . . Notemos que si xk B(x , ),
para alg
un k N0 ,
kxk+1 x k = kG(xk ) G(x )k kG(xk ) G(x ) G0 (x )(xk x )k + kG0 (x )(xk x )k
< kxk x k + ( + )kxk x k = ( + 2)kxk x k < kxk x k,
y en consecuencia, xk+1 B(x , ). As, tenemos que xk B(x , ), para todo k N0 .
Por otro lado, de la u
ltima estimacion se sigue tambien que
kxk+1 x k ( + 2)k+1 kx0 x k,

k = 0, 1, . . .

Puesto que + 2 < 1, tenemos que xk x cuando k , lo que concluye la


demostracion.
172

En el resultado anterior se necesita conocer de antemano la existencia de un punto


fijo de la funcion de iteracion, y mas a
un, se pide que esta sea diferenciable en dicho
punto. A continuacion establecemos un resultado que garantiza la existencia de un u
nico
punto fijo y la convergencia de la iteracion correspondiente sin pedir diferenciabilidad.
Recordamos antes dos conceptos que seran importantes.
Definici
on 6.10 (Funcion Lipschitz). Decimos que G : D Rn Rn es Lipschitz
continua sobre D con constante > 0 si
kG(x) G(y)k kx yk,

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, . . .

esta bien definida y se cumplen:


Convergencia lineal:
kxk+1 x k kxk x k,

k = 0, 1, . . .

Estimacion del error:


kxk x k

k
kx1 x0 k,
1

k = 0, 1, . . .

Demostracion. Sea x0 D. Puesto que G : D D, la iteracion


xk+1 := G(xk ),

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, . . . ,

y por lo tanto, {xk }kN converge linealmente. Finalmente, recordando que


kxk+p xk k

k
kx1 x0 k,
1

k N0 , p N,

y tomando el lmite cuando p tiende a infinito, obtenemos la estimacion de error deseada.


Observaci
on 6.13. Si D = Rn y G(x) := M x + c, notemos que G es una contraccion
en alguna norma si y solo si (M ) < 1. En efecto, si para alguna norma k k y alg
un
0 < < 1 se cumple que
kG(x) G(y)k kx yk,

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 ,

lo que demuestra que G es una contraccion en la norma k k.


As, podemos ver al Teorema 6.12 como una generalizacion al caso no lineal del Teorema 5.18, que establece una caracterizacion de la convergencia de metodos de punto fijo
asociados a sistemas lineales.
174

A continuacion, y para concluir esta seccion, nos proponemos establecer un criterio


para determinar cuando una funcion diferenciable G es una contraccion en alguna norma
(ver Corolario 6.19 debajo) y as poder utilizar el Teorema 6.12.
Definici
on 6.14 (Integral de funciones vectoriales). Sea H : [a, b] Rn . Si H(t) =

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
..
.

y sean x, y D fijos. Para i = 1, 2, . . . , n, definimos

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

lo que concluye la demostracion.


Teorema 6.17. Si H : [a, b] Rn es continua entonces, para cualquier norma de Rn ,
Z b
Z b




H(t)
dt
kH(t)k dt.


a

Demostracion. La demostracion se deja como ejercicio (ver Ejercicio 6.7).


Como consecuencia de los dos u
ltimos teoremas tenemos el siguiente resultado.
Teorema 6.18. Sea D Rn convexo. Si G : D Rn es continuamente diferenciable
en D entonces
kG(y) G(x)k max kG0 (x + t(y x))kky xk,

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

Demostracion. Por el Teorema 6.16 se tiene que


Z 1
G(y) G(x) =
G0 (x + t(y x))(y x) dt,

x, y D.

Teniendo en cuenta ahora el Teorema 6.17 obtenemos


Z
Z 1
0
kG (x + t(y x))(y x)k dt
kG(y) G(x)k
0

kG0 (x + t(y x))kky xk dt

0
0

max kG (x + t(y x))kky xk.


t[0,1]

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

Consideremos el sistema F (x) = 0, y supongamos que F es continuamente diferenciable


en un entorno de una solucion x del sistema. Dada una aproximacion xk de la solucion,
consideramos la aproximacion lineal afn de F dada por
P (x) := F (xk ) + F 0 (xk )(x xk ),
y definimos xk+1 tal que P (xk+1 ) = 0, es decir,
F 0 (xk )(xk+1 xk ) = F (xk ),
o, suponiendo que F 0 (xk ) es invertible,
xk+1 = xk (F 0 (xk ))1 F (xk ).
La iteracion anterior corresponde al metodo de Newton. En la practica no se calcula
nunca explcitamente la matriz (F 0 (xk ))1 , sino que se resuelve un sistema lineal asociado
a la matriz F 0 (xk ). Mas precisamente, dado xk se obtiene xk+1 de la siguiente manera:
(
Hallar h Rn tal que F 0 (xk )h = F (xk ).
(6.4)
xk+1 = xk h.
Notemos que el metodo de Newton es una iteracion de punto fijo cuya funcion de
iteracion es
G(x) := x (F 0 (x))1 F (x).
176

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

Demostracion. Ver demostracion del Teorema 5.18.


Lema 6.21 (Perturbacion de una matriz invertible). Sea A Rnn invertible y E Rnn
tal que kEk < kA11 k . Entonces, A + E es invertible y
k(A + E)1 k

kA1 k
.
1 kA1 kkEk

Demostracion. Puesto que A es invertible, A + E = A(I + A1 E). Si llamamos M :=


A1 E, tenemos que kM k = kA1 Ek kA1 kkEk < 1, y por el lema anterior tenemos
1
que I M es invertible y que k(I M )1 k 1kM
. En consecuencia, A + E = A(I M )
k
es invertible y
k(A + E)1 k = k(A(I M ))1 k = k(I M )1 A1 k

kA1 k
kA1 k

.
1 kM k
1 kA1 kkEk

Como consecuencia del u


ltimo lema se tiene el siguiente corolario.
Corolario 6.22. Sea C : D Rn Rnn continua en x D. Si C(x ) es invertible,
entonces existe > 0 tal que para todo x B(x , ), C(x) es invertible y mas a
un,
kC(x)1 k 2kC(x )1 k.
Demostracion. Notemos que para cada x D, la matriz C(x) puede verse como una
perturbacion de C(x ), esto es,
C(x) = C(x ) + (C(x) C(x )) .
{z
}
| {z } |
=:A

=:E

Puesto que C es continua en x , sabemos que existe > 0 tal que


kC(x) C(x )k <

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

Ahora estamos en condiciones de establecer cuando la iteracion de Newton esta bien


definida.
Teorema 6.23 (Buena definicion del metodo de Newton y primer resultado de convergencia local). Sea D Rn abierto y supongamos que F : D Rn diferenciable en D.
Sea x D un cero de F (i.e., F (x) = 0). Si F 0 es continua en x y F 0 (x ) es invertible
entonces se cumple lo siguiente:
Buena definicion: G(x) := x (F 0 (x))1 F (x) esta bien definida en un entorno
de x .
Convergencia local: La iteracion
xk+1 = xk (F 0 (xk ))1 F (xk ),

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

kG(x) G(x ) G0 (x )(x x )k


= 0.
kx x k

Considerando que G(x ) = x y que G0 (x ) = 0, la igualdad anterior puede reescribirse


como
kG(x) x k
lim
= 0.
xx
kx x k
Puesto que x es un punto de atraccion de G, podemos tomar x0 suficientemente cerca
de x de modo que
xk+1 := G(xk ) x , cuando k .
Por lo tanto,
kxk+1 x k
= 0,
k kxk x k
lim

lo que concluye la demostracion.


Si en el teorema anterior reemplazamos la hipotesis de continuidad de F 0 en x , por
una hipotesis un poco mas fuerte (ver (6.5)) tenemos que el orden de convergencia de la
iteracion de Newton es cuadratico, como se muestra en el siguiente resultado.
178

Teorema 6.24 (Segundo resultado de convergencia local: Convergencia cuadratica). Sea


D Rn abierto y supongamos que F : D Rn diferenciable en D. Sea x D un cero
de F (i.e., F (x) = 0). Supongamos que existen > 0 y L > 0 tales que
kF 0 (x) F 0 (x )k Lkx x k,

x B(x , ).

(6.5)

Entonces, si F 0 (x ) es invertible, existe c > 0 tal que si x0 se elige suficientemente cerca


de x , la iteracion
xk+1 = xk (F 0 (xk ))1 F (xk ),

k = 0, 1, 2, . . .

converge cuadraticamente, es decir,


kxk+1 x k ckxk x k2 ,

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

Por el Teorema 6.16 se tiene que


Z 1
F (x) F (x ) =
F 0 (x + t(x x ))(x x ) dt,

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

k(F 0 (x + t(x x )) F 0 (x ))(x x )k dt


Z0 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

para todo x B(x , ), y as, (6.6) queda demostrada.


Ahora bien, si x B(x , ), tenemos que
kG(x) G(x )k = kx F 0 (x)1 F (x) x k
= k F 0 (x)1 [F (x) F (x ) F 0 (x)(x x )]k
| {z }
=0

= k F (x) [F (x) F (x ) F 0 (x )(x x ) (F 0 (x) F 0 (x ))(x x )]k


h
i
kF 0 (x)1 k kF (x) F (x ) F 0 (x )(x x )k + kF 0 (x) F 0 (x )kkx x k
i
hL
kF 0 (x)1 k kx x k2 + Lkx x k2
2
3L
= kF 0 (x)1 k kx x k2 .
2
Puesto que C := F 0 es continua en x y que C(x ) = F 0 (x ) es invertible, por el
Corolario 6.22, tenemos que existe 0 > 0 tal que C(x) = F 0 (x) es invertible para x
B(x , 0 ) y
kF 0 (x)1 k 2kF 0 (x )1 k,
x B(x , 0 ).
Por lo tanto,
kG(x) G(x )k 3LkF 0 (x )1 k kx x k2 ,
|
{z
}

x B(x , ) B(x , 0 ).

=:c

Finalmente, puesto que x es un punto de atraccion de G, podemos elegir 00 > 0 con


00 min{, 0 } tal que para todo x0 B(x , 00 ), xk+1 = G(xk ) B(x , 00 ) y as,
kxk+1 x k = kG(xk ) G(x )k ckxk x k2 , k = 0, 1, 2, . . . .

6.2.1

Convergencia global del m


etodo de Newton

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 .

Ademas, una funcion F : Rn Rn con F =

f1
f2
..
.

es convexa si fi es convexa para

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 .

Si n = 1, tenemos que f (x) = f 0 (x), y la caracterizacion dice que una funcion es


convexa si y solo si el grafico de f esta por arriba de su recta tangente en todos los puntos,
es decir,
f (y) f (x) + f 0 (x)(y x),
x, y R.
Demostracion. () Sean x, y Rn , y sea 0 < h < 1. Puesto que f es convexa, tenemos
que
f ((1 h)x + hy) (1 h)f (x) + hf (y).
Teniendo en cuenta que (1 h)x + hy = x + h(y x), obtenemos
f (x + h(y x)) f (x)
f (y) f (x),
h
y tomando el lmite para h 0,
f (x)T (y x) f (y) f (x),
como queramos demostrar.
() Sean x, y Rn , y sea 0 < t < 1. Queremos demostrar que
f (tx + (1 t)y) tf (x) + (1 t)f (y).

(6.7)

Sea z := tx + (1 t)y. Por hipotesis,


f (x) f (z) f (z)T (x z),

(6.8)

f (y) f (z) f (z)T (y z).

(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)

converge a x , partiendo de cualquier valor inicial x0 Rn . Mas a


un, si x = (x , x , . . . , x )T
(1)
(2)
(n)
y xk = (xk , xk , . . . , xk )T , para k N, entonces
(i)

(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 x0 Rn arbitrario, y consideremos la iteracion de Newton


xk+1 := xk F 0 (xk )1 F (xk ),

Sea F =

f1
f2
..
.

k = 0, 1, , 2, . . .

(6.10)

. Puesto que F es convexa, tenemos que fi es convexa, para i =

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.

Considerando la notacion introducida al principio de esta demostracion, la u


ltima desigualdad implica que
F (xk ) 0,
k = 1, 2, . . .
(i)

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)

Sea k N. Haciendo uso de la Proposicion 6.28 nuevamente, tenemos que


fi (x ) fi (xk ) fi (xk )T (x xk ),
| {z }

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)

, tenemos entonces que

lim xk = y.

Solo resta ver que y es un cero de F y que F tiene un u


nico cero (en particular, y = x ).
0
Utilizando la continuidad de F y de F , y la definicion de la iteracion (6.10) tenemos que
F (y) = lim F (xk ) = lim F 0 (xk )(xk xk+1 ) = F 0 (y)(y y) = 0.
k

As, y es un cero de F . Se deja como ejercicio demostrar que F tiene un u


nico cero.
Como ayuda, suponer que existen dos ceros x y y y utilizar la condicion de convexidad
de F (aplicada a x e y ) dada por la Proposicion 6.28.
183

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.

Supongamos ademas que G tiene un punto fijo x . Mostrar que x es u


nico y que las
iteraciones xk+1 = G(xk ), k = 0, 1, . . . convergen a x para cualquier x0 . Dar un ejemplo
en R1 que muestre que la condicion sobre G no es suficiente para garantizar la existencia
de un punto fijo.
6.4. Considerar el sistema
x=

1
2

y=

1 + (x + y)2

1
2

1 + (x y)2

Encontrar un conjunto acotado D R2 donde se pueda aplicar el Teorema 6.12.


Ayuda: Cual es el signo de las componentes de la solucion del sistema? Cual son
los maximos valores posibles para dichas componentes seg
un las ecuaciones del sistema?
6.5. Considerar el sistema
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

6.7. * Demostrar el Teorema 6.17.


6.8. Sea D Rn abierto. Sea F : D Rn diferenciable en D. Sea x D tal que
F (x ) = 0. En la primera parte del Teorema 6.23 vimos que si F 0 es continua en x y
F 0 (x ) es invertible, entonces
G(x) := x F 0 (x)1 F (x),
esta bien definida en un entorno de x . Demostrar que, ademas, G es diferenciable en x
y que G0 (x ) = 0.
6.9. Considerar un sistema no lineal
F (x) = 0,
donde F : D Rn Rn . Escribir una funcion [x,iter,X]=newton(F, DF, x0,
miter) para resolver el sistema por el metodo de Newton. Los parametros de entrada son una referencia F a la funcion F (x), una referencia DF a la matriz jacobiana F 0 (x),
un punto inicial x0, y el maximo n
umero de iteraciones permitido miter. Los parametros
de salida son la aproximacion x de una solucion del sistema, la cantidad de iteraciones
realizadas iter y la matriz X cuyas columnas son las sucesivas aproximaciones que se
calcularon.
Sugerencia: Para resolver el sistema lineal necesario en cada iteracion utilizar el
comando \ de MatLab.
6.10. Estudiar la convergencia y el orden experimental de la misma (si corresponde) al
aplicar el metodo de Newton al sistema
x2 + y 2 = 4


1.6
utilizando como valor inicial
.
1.2

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

Utilizar meshgrid y contour para graficar las curvas de nivel cero de f y g en el


mismo dibujo y as determinar puntos iniciales para hallar cada una de las cuatro
soluciones.
(b) Utilizar la funcion newton para calcular las cuatro soluciones del sistema del item
anterior. Cual fue el n
umero de iteraciones realizadas en cada caso? Estimar la
velocidad de convergencia.
(c) Definir la funcion h(x, y) = f (x, y)2 +g(x, y)2 . Luego, los ceros del sistema corresponden a los mnimos de h. Utilizar la funcion fminsearch de MatLab para aproximar
los cuatro ceros.
6.12. Utilizar el metodo de Newton para hallar todas las races de cada uno de los
siguientes sistemas no lineales. Utilizar graficos para escoger valores iniciales.
185

(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.

6.13. Usar el metodo de Newton para hallar el mnimo valor de


f (x, y) = x4 + xy + (1 + y)2 .
Experimentar con varios valores iniciales y observar los patrones de convergencia.
6.14. Considerar la iteracion de Newton en una dimension para la funcion F (x) = x2 .
(a) Demostrar que la iteracion converge localmente a x = 0 pero que la rapidez de
convergencia no es cuadratica.
(b) Mostrar que hipotesis del Teorema 6.24 no se cumple.
6.15. Repetir el ejercicio anterior considerando la funcion F (x) = x + x1+ , donde 0 <
< 1.
6.16. La iteracion
xk+1 = xk F 0 (x0 )1 F (xk ),

k = 0, 1, . . .

se conoce como iteracion simplificada de Newton. Demostrar que si F es diferenciable


en un entorno de un punto x tal que F (x ) = 0, si F 0 es continua en x , y F 0 (x ) es
invertible, entonces esta iteracion converge localmente a x .
6.17. Sea h > 0 un parametro fijo. Sea F : Rn Rn dada por F (x) = Ax + (x) donde

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

Repaso de definiciones y propiedades elementales

Dada una matriz A Cnn , se dice que C es un autovalor de A si existe x Cn ,


x 6= 0 tal que
Ax = x.
En ese caso, (, x) es un autopar de A.
De la definicion se desprende que C es un autovalor de A si y solo si A I es
invertible, lo que ocurre si y solo si det(I A) = 0. Por lo tanto, los autovalores de A
satisfacen la ecuacion caracterstica
p() := det(I A) = 0.
La funcion p() resulta un polinomio cuyo termino de orden maximo es n . Se llama
polinomio caracterstico de A, y tiene una u
nica factorizacion de la forma
p() = ( 1 )( 2 ) . . . ( n ).
Si contamos cada i por el n
umero de veces que aparece en la factorizacion concluimos
que
Una matriz de orden n tiene n autovalores contando multiplicidades en el polinomio
caracterstico. Los autovalores y sus multiplicidades son u
nicos.

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

Forma de Jordan can


onica
El resultado mas general dice que para toda matriz A Cnn existe una matriz no
singular V Cnn tal que

V 1 AV = diag Jm1 (1 ), Jm2 (2 ), . . . , Jmk (k ) ,
donde Jm () Cmm son bloques de Jordan, que tienen

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 ),

y i , i = 1, 2, . . . , n son los autovalores de A.

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

Notemos que x1 es un autovector (a derecha) correspondiente a 1 , y si particionamos


 H
y
1
X = 1H ,
y1 Cn , Y2 Cn(n1) ,
Y2
resulta que y1H es un autovector a izquierda
correspondiente a 1 .


Si llamamos vk = X 1 uk = k , con k C, resulta que


wk

 
 
 k T  
0T
0
k
1 0
0
1
k 1
.
vk = X uk =
= k1 . . . 0
= k1 . . . 0 1
0 (B/1 )k w0
wk
0 B k w0
Luego
vk = X

uk =

k1 . . . 0 k1


0
.
(B/1 )k w0

Multiplicando por X obtenemos que


uk = Xvk = k1 . . . 0 k1 (0 x1 + X2 (B/1 )k w0 ).
Como kuk k2 = 1 resulta que
uk = k

0 x1 + X2 (B/1 )k w0
,
k0 x1 + X2 (B/1 )k w0 k2

con k C, |k | = 1. Si 0 6= 0 el primer termino del numerador se mantiene constantemente igual a un m


ultiplo de x1 , mientras que el segundo termino contiene la potencia k-esima de B/1 , cuyo radio espectral es |2 /1 | < 1. Luego (B/1 )k 0 y
1
u k00 xx11 k = |00 | x1 .
k k
Hemos demostrado la siguiente proposicion.
Proposici
on 7.1. Sea A Cnn tal que sus autovalores pueden ordenarse de manera
que
|1 | > |2 | |3 | |n |,
y sean x1 , y1H los autovectores a derecha e izquierda, respectivamente, correspondientes a
1 . Si y1H u0 6= 0, la sucesion de vectores generadas por la recursion
uk = k1 Auk1 ,

k = 1, 2, . . . ,

k1 = kAuk1 k,

converge, en direccion, a x1 . Mas precisamente, existen n


umeros k C, |k | = 1 tales
que
1
uk x1 ,
cuando k .
k
La tasa de convergencia es, asintoticamente, mas rapida que (|2 /1 | + )k para cualquier
> 0.
1 = {v 1 : kvk2 }
Observaci
on 7.2.
Si 1 = {v Cn \ {0} : Av = 1 v} y
denotan el conjunto de autovectores y autovectores normalizados correspondientes
a 1 , entonces la proposicion anterior implica que
1 ) 0,
dist(uk , 1 ) dist(uk ,
191

cuando k ,

donde dist(u, ) = minv kuvk2 , denota la distancia de un vector u a un conjunto


. Para demostrar esto es suficiente observar que si k C, |k | = 1, entonces
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

Basandonos en esta observacion, definimos el siguiente algoritmo para la aproximacion


simultanea del autovalor dominante y un autovector asociado:
M
etodo de las potencias. (version preliminar)
Dada A Rnn , u0 Cn
v0 = u0 /ku0 k2
k=0
Repetir:
k =k+1
uk = Avk1
vk = uk /kuk k2
k = vkH Avk
Fin repetir
Claramente el algoritmo puede mejorarse para realizar solo un producto matriz-vector
en cada iteracion, y el algoritmo resulta
M
etodo de las potencias.
Dada A Rnn , u0 Cn
v0 = x0 /kx0 k2
u1 = Av0
k=0
Repetir:
k =k+1
vk = uk /kuk k2
uk+1 = Avk
k = vkH uk+1
Fin repetir
Observaci
on 7.3. Es interesante observar la relacion entre el error de los autovectores
y el error de los autovalores. Supongamos que (, x) es un autopar de A con kxk2 = 1, y
x) un autopar aproximado, que cumple k
sea (,
xk2 = 1 y = xH A
x, entonces
= xH Ax xH A

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)
=

Luego, si esta suficientemente cerca de 1 , resulta que 11 sera un autovalor dominante


de A I. En efecto, cuando 1 , 11 mientras que i1 tiende a un n
umero
finito para cada i 6= 1.
Entonces dada una aproximacion del autovalor que se quiere calcular, el algoritmo
de las potencias inversas es el siguiente:
M
etodo de las potencias inversas.
Dada A Rnn , u0 Cn , C
v0 = x0 /kx0 k2
u1 = (A I)1 v0
k=0
Repetir:
k =k+1
vk = uk /kuk k2
uk+1 = (A I)1 vk
1
k = H
+
vk uk+1
Fin repetir
194

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

El algoritmo QR es un metodo basado en la factorizacion QR, cuyo objetivo es obtener


una descomposicion de Schur de una matriz A. El Teorema 5.8 de descomposicion de
Schur afirma que dada A Cnn , existe una matriz unitaria U tal que
U H AU = T,

con T triangular superior,

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, . . . .

Las matrices Q seran faciles de obtener si conocieramos los autovalores y autovectores,


pero como no los conocemos, explotaremos la conexion del algoritmo con el metodo de
las potencias inversas.
A partir de aca seguimos la seccion 6.6.4 The LR and QR Methods, del libro [StoerBulirsch, Introduction to Numerical Analysis]. Hay que pasar las notas en base a los
apuntes de Antonella

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,

R triangular superior y A = RQ,

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

son triangulares superiores,


R, R

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 ).

7.3. Implementar el algoritmo QR usando la funcion qr existente en MATLAB. Detener


el algoritmo cuando el maximo cambio de la diagonal de A es menor a una tolerancia
dada. Verificar experimentalmente (con algunos ejemplos aleatorios) que el algoritmo
mantiene la estructura Hessenberg (comenzar con una tridiagonal no-simetrica). Que
ocurre al comenzar con una tridiagonal simetrica?
7.4. Para N N, considerar la matriz

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

S-ar putea să vă placă și