Vous êtes sur la page 1sur 22

Ecuaciones diferenciales ordinarias

Juan Piccini
17 de noviembre de 2003
Este material esta basado en notas confeccionadas por Alvaro Pardo y mate-
rial de los libros Numerical Methodsde Dahlquist y Bjorck, Ed. Prentice- Hall;
Numerical Analysis, de Jacques y Judd, Ed. Chapman and Hall,Numerical
Methods and Softwarede Kahaner, Moler y Nash, Ed.Prentice-Hall.
Al igual que los materiales anteriores, estos son meros apuntes pen-
sados para ayudar, no para sustitur a los libros ( hay a nos-luz
de distancia entre estos apuntes y un buen libro !!). Por tanto re-
comiendo fuertemente que no se queden solamente con esto, vayan a
las fuentes.
Introduccion
Muchos problemas que se plantean en varias ramas de la Ciencia e Ingeniera
resultan en una ecuacion diferencial ordinaria (edo) de primer orden, de la for-
ma:
y

= f(x, y), o yx = f(x, y)


donde f : f(x, y(x)) es una funcion dada e y es una funcion desconocida de la
variable independiente x. El lector habra visto en los cursos correspondientes,
que bajo ciertas condiciones de regularidad para f, existe una familia de solu-
ciones denida en un cierto intervalo [a, b], y que cuando contamos con una
condici on inicial y(x
0
) = y
0
, hay una unica solucion ; esto es, una funcion y tal
que y

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


0
) = y
0
.
Sin embargo, cuando resolvemos numericamente una ecuacion diferencial, la
solucion que obtenemos ya no es una funcion y, continua y diferenciable, sino
que es una sucesion y
0
, y
1
, ..., y
n
, de la cual se espera que este cerca de los val-
ores de la solucion exactaen un cierto conjunto de puntos. Mas precisamente,
debera ocurrir y
k
y(x
k
) k = 0, 1, 2, ..., n.
1
Para obtener dicha solucion(numerica), lo que hacemos es (adivinan?) dis-
cretizar el problema. Esto signica que solamente calcularemos el valor de la
solucion y(x) en un conjunto nito y discreto de puntos, distinto de lo que uno
hace cuando resuelve analticamente la ecuacion, donde se halla la solucion en
un intervalo continuo de puntos. Por ejemplo, si [a, b] = [x
0
, x
F
] = [0, 1], la solu-
cion puede calcularse en los puntos 0; 0,01; 0,02; ...; 0,99; 1. Para estimar el valor
de la solucion en un punto cualquiera, se utiliza alg un tipo de interpolacion. El
conjunto discreto de puntos no tiene por que ser equiespaciado. En ocasiones
hay zonas donde la solucion vara muy rapido, y all es conveniente elegir mas
puntos para poder seguir mejor a la funcion. En zonas donde la solucion es mas
lenta, pueden tomarse menos puntos.
Como de costumbre cuando resolvemos numericamente un problema matematico,
tendremos varias fuentes de error: El error de truncamiento o modelado. Dicho
error proviene de aproximar el objeto realpor una version discretizada. Como
veremos luego, en lugar de resolver la ecuacion diferencial verdadera, lo que
hacemos es resolver una ecuacion en diferencias, que es la version discretiza-
da de la ecuacion diferencial. Aunque los calculos subsiguientes se hicieran en
aritmetica exacta (de lapiz y papel), este error de modelado o truncamiento
siempre existira.
Pero ademas la computadora no trabaja con aritmetica exacta, por lo que los
calculos necesarios para resolver la ecuacion en diferencias tendran error de re-
dondeo, y el resultado sera la version numerica de la ecuacion en diferencias,
por lo que nuestra salida ni siquiera seran aquellos y
k
, = 0, 1, ..., n, sino que lo
que en realidad tendremos seran puntos y
k
, k = 0, 1, ..., n. Veremos luego que
estos tres objetos (la ecuacion diferencial, la ecuacion en diferencias y la version
numerica de la ecuacion en diferencias), se hallan vinculados por los conceptos
de consistencia, convergencia y estabilidad numerica.
Ecuaciones de primer orden
Como dijimos antes, la edo mas simple es de la forma:
y

= f(x, y(x))
Esta ecuacion se llama de primer orden, puesto que la mayor derivada de y que
aparece es la derivada primera. La forma habitual de discretizarla es la siguiente:
si integramos el lado derecho de la ecuacion, por el teorema fundamental del
calculo integral, tendremos que
2
y(x
k+1
) y(x
k
) =

x
k+1
x
k
f(t, y(t))dt
Seg un sea la interpolante que utilicemos para el integrando, tendremos distin-
tas ecuaciones en diferencias y distintos metodos de resolucion. Por ejemplo,
si aproximamos f(x) por f(x
k
) en el intervalo [x
k
, x
k+1
], tendremos y(x
k+1
)
y(x
k
) (x
k+1
x
k
)f(x
k
, y(x
k
)). Y si llamamos h
k
= x
k+1
x
k
, esto nos da:
y(x
k+1
) y(x
k
)+h
k
f(x
k
, y(x
k
)). Notemos que ahora ya no tenemos una igual-
dad, porque la integral fue sustituda por una aproximacion.
Metodo de Euler, metodos lineales multipaso
Recordando que y
k
es la aproximacion n umerica al valor y(x
k
), la ecuacion
anterior puede ponerse como (asumimos que los puntos estan equiespaciados):
y
k+1
= y
k
+ h f(x
k
, y
k
), o y
k+1
= y
k
+ h y

k
Esta formula se conoce como el Metodo de Euler. A partir de y
0
, nos permite
hallar y
1
, luego usamos y
1
para hallar y
2
, etc. etc.
Geometricamente, lo que hace el metodo es pasar del punto (x
k
, y
k
) al siguiente
(x
k+1
, y
k+1
) viajando por la recta tangente a y en x
k
. La pendiente de dicha
recta es y

k
.
Aunque y
0
= y(x
0
), tendremos que y
1
y(x
1
), pero y
1
= y(x
1
). Esto signi-
ca que el punto (x
1
, y
1
) no esta en la curva solucion que pasa por el punto
(x
0
, y
0
),sino que pertenece a otra solucion y de la familia, que pasa por otro
punto diferente en x
0
. De similar manera, (x
2
, y
2
) no va a estar sobre la curva
solucion y que pasa por el punto (x
1
, y
1
). De modo que si cometemos un error
en el primer paso (calculo de y
1
), aunque luego no cometieramos error alguno,
los valores y
2
, y
3
, ... tendran error (ver graca siguiente, se uso t en lugar de x).
Dicho error depende no solamente del algoritmo, sino tambien de la familia de
soluciones de la ecuacion diferencial.
3
0
0.5
1
1.5
2
2.5
x 10
4
t
y
(
t
)
Solucin numrica comparada con la solucin analitica
yo
to
t1
(t1,y1)
(t2,y2)
t2
Si para el calculo de la integral aproximamos a f por el segmento que une los
puntos (x
k
, f(x
k
, y(x
k
)), (x
k+1
, f(x
k+1
, y(x
k+1
)), tendremos elmetodo del trape-
zoide, donde y(x
k+1
) y(x
k
)
h
2
[f(x
k+1
, y(x
k+1
)) + f(x
k
, y(x
k
))]. Esto nos
lleva a la ecuacion en diferencias:
y
k+1
= y
k
+
h
2
[f(x
k+1
, y
k+1
) + f(x
k
, y
k
)] o:
y
k+1
= y
k
+
h
2
[y

k+1
+ y

k
]
Esta se conoce como el metodo del trapezoide.
Existe una importante diferencia entre ambos metodos. En el metodo del trape-
zoide, la incognita y
k+1
tambien aparece en el lado derecho, como argumento
de la funcion f, y por tanto tendremos una ecuacion no lineal que tendremos
que resolver para hallar y
1
a partir de y
0
, luego lo mismo para hallar y
2
a partir
de y
1
, etc. etc. Podemos hacer esto usando metodos de punto jo.
y
m+1
k+1
= y
k
+
h
2

f(x
k
, y
k
) + f(x
k+1
, y
m
k+1

(1)
Por supuesto, necesitaremos un valor inicial y
0
k+1
, el cual puede calcularse a
partir del metodo de Euler haciendo y
0
k+1
= y
k
+h f(x
k
, y
k
). Para calcular y
k+1
partimos de y
0
k+1
y luego aplicamos (1) hasta satisfacer alg un criterio de parada.
Luego calculamos y
0
k+2
y repetimos hasta tener un y
k+2
aceptable, etc. etc.
4
En este contexto, al metodo de Euler se le llama predictor, y al metodo del
trapezoide, corrector. Este es un caso muy simple de un par predictor-corrector.
Ilustraremos con un ejemplo:
Ejemplo Dada la ecuacion y

=
y
2
1+x
, y(0) = 1, queremos estimar y(0,2),
usando un paso h = 0,05. La pareja predictor-corrector esta dada por:
y
0
n+1
= y
n

0,05y
2
n
1+x
n
y
m+1
n+1
= y
n
0,025

y
2
n
1+x
n
+
(y
m
n+1
)
2
1+x
n+1

El valor predicho de y
1
es y
0
1
= y
0

0,05y
2
0
1+x
0
= 0,95. Si aplicamos dos correcciones
por paso, entonces :
y
1
1
= y
0
0,025

y
2
0
1+x
0
+
(y
0
1
)
2
1+x
1

= 0,95351
y
2
1
= y
0
0,025

y
2
0
1+x
0
+
(y
1
1
)
2
1+x
1

= 0,95335
As, tomamos como y
1
= 0,95335. De modo similar, tenemos:
y
0
2
= 0,91007, y
1
2
= 0,91289, y
2
2
= 0,91277 = y
2
y
0
3
= 0,87490, y
1
3
= 0,87719, y
2
3
= 0,87711 = y
3
y
0
4
= 0,84366, y
1
4
= 0,84556, y
2
4
= 0,84549 = y
4
Como la solucion analtica es y(x) =
1
1+log(1+x)
, el error entre y(0,2) e y
4
es
0,84579 0,84549 = 0,00030.
Veamos un ultimo ejemplo, el Metodo del punto medio: Aproximaremos la in-
tegral en el intervalo [x
k1
, x
k+1
] por (x
k+1
x
k1
)f(x
k
, y(x
k
)), con lo cual
tenemos la ecuacion en diferencias:
y
k+1
= y
k1
+ 2h f(x
k
, y
k
) o:
y
k+1
= y
k1
+ 2h y

k
Si conocemos y
0
, necesitaremos y
1
para poder calcular y
2
. Podemos hallar y
1
mediante Euler o trapezoide, con lo cual luego podemos calcular y
2
, y
3
, ..., y
n
.
Estas tres formulas son casos especiales de:
y
n+1
=
i=j

i=1

j
y
n+1i
+ h
i=j

i=0

i
f
n+1i
5
Donde f
k
= y

k
= f(x
k
, y
k
) y
k
,
k
son constantes especcas de cada metodo.
Este tipo de algoritmos se llaman Metodos lineales multipaso de j-pasos.
El metodo sera explcito si
0
= 0, e implcito si
0
= 0, donde
0
es el coeciente
de f
n+1
. As, el metodo de Euler es explcito de un paso, el del trapezoide es
implcito de un paso, y el del punto medio es explcito de dos pasos. El termino
multipaso se debe a que para conocer y
n+1
necesitamos los j valores anteriores
y
n
, y
n1
, ..., y
n+1j
. Cuando j > 1, necesitamos conocer y
1
, y
2
, ..., y
j1
para el
arranque del metodo.
Ecuaciones de orden mayor y sistemas de ecuaciones
Muchos problemas que aparecen en ciencias e ingeniera nos conducen a sis-
temas de edos. Veamos un ejemplo (modelo predador-presa): Supongamos dos
poblaciones, por ejemplo conejos (c(t)) y zorros(z(t)). Las poblaciones cambian
en el tiempo seg un las siguientes ecuaciones:
c

(t) = 2c(t) a c(t)z(t)


z

(t) = z(t) + a c(t)z(t)


La interaccion de ambas poblaciones es proporcional al producto de ambas.
En estos casos, estaremos interesados en resolver simultaneamente ambas ecua-
ciones, suponiendo condiciones iniciales c(t
0
), z(t
0
).
0 1 2 3 4 5 6 7 8 9 10
0
20
40
60
80
100
120
140
160
180
Tiempo
N

m
e
r
o

d
e

i
n
d
i
v
i
d
u
o
s
Evolucin temporal de las poblaciones. Se utiliz el valor a= 0.05,
y los valores iniciales 100 (c), y 10 (z).
zorros
conejos
6
Si llamamos
y
1
(t) = c(t), y
2
(t) = z(t)
f
1
(t, y
1
(t), y
2
(t)) = 2y
1
(t) a y
1
(t)y
2
(t)
f
2
(t, y
1
(t), y
2
(t)) = y
2
(t) + a y
1
(t)y
2
(t))
tenemos que el sistema puede escribirse como:
y

1
(t) = f
1
(t, y
1
(t), y
2
(t))
y

2
(t) = f
2
(t, y
1
(t), y
2
(t))
Esto es lo mismo que:
y(t) = f(t, y)
donde y(t) =

y
1
(t)
y
2
(t)

, f(t, y) =

f
1
(t, y
1
(t), y
2
(t))
f
2
(t, y
1
(t), y
2
(t))

, y(t
0
) =

y
1
(t
0
)
y
2
(t
0
)

De este modo, los algoritmos pensados para el problema de una ecuacion pueden
adaptarse a sistemas de ecuaciones. Queda como ejercicio escribir lo anterior
para un sistema de n ecuaciones.
Supongamos ahora que tenemos una ode de orden mayor a uno, esto es, aparecen
derivadas de orden mayor. Por ejemplo, tenemos
u

= au

+ bu

+ cu + d = f(x, u, u

, u

)
donde a, b, c, d pueden ser constantes o funciones de x. Si hacemos y
1
= u, y
2
=
u

, y
3
= u

, podemos transformar la ecuacion de tercer orden original en un


sistema de tres ecuaciones de primer orden:
y

1
= y
2
y

2
= y
3
y

3
= f(t, y
1
, y
2
, y
3
)
Queda como ejercicio generalizar esto para una ecuacion de orden n.
7
Ecuaciones estables e inestables
Sabemos que, bajo ciertas hipotesis de regularidad para la f, la ecuacion y

=
f(x, y(x)), y(x
0
) = y
0
tendra una unica solucion. Ahora bien, en la realidad,
sucede que la condicion inicial nunca se conoce con exactitud, ya sea porque al
medirla se cometen errores, o porque tal vez la computadora no pueda repre-
sentar exactamente el valor y
0
.
En general la condicion inicial no es un valor conocido, sino que es una variable
de la cual se sabe que se mueve en un cierto intervalo. Dicho intervalo puede ser
muy chiquitito, casi microscopico, por ejemplo y
0
= 1,234567 0,000001, pero
siempre estara all.
De modo que en realidad estamos resolviendo la edo pero con una condicion
inicial distinta a la que pensamos. Por ello debemos preguntarnos si la solucion
que encontremos estara cerca o lejos de la solucion correspondiente a esa condi-
cion inicial perfecta, sin perturbar.
Esto nos lleva a la estabilidad de la ode. Intuitivamente, la ode sera estable
(buena) cuando las soluciones correspondientes a condiciones iniciales cercanas,
se mantienen cercanas entre s.
En este tipo de odes tendremos la tranquilidad de que aunque le hayamos errado
un poco en las condiciones iniciales, la solucion que encontremos no estara de-
masiado lejos de la que debera haber sido (recordemos que a esto debemos
agregar que la solucion numerica en cada paso va saltando de una curva solu-
cion a otra correspondiente a una condicion inicial distinta).
A modo de ejemplo, consideremos las dos edos siguientes, con su familia de
soluciones correspondiente:
(A) (B)
y

= exp (t) y

= y
y(t) = c exp (t) y(t) = c exp (t)
Para t
0
jo, en las soluciones de (A) tenemos que y

(t
0
) = exp (t
0
) = constante
(todas las soluciones de la familia tienen la misma pendiente en el punto), como
puede verse en la gura de abajo.
Mientras que para las soluciones de (B) tenemos que y

(t
0
) = y(t
0
) = c exp (t
0
),
(la pendiente de cada solucion de la familia en el punto cambia seg un el miembro
de la familia), como puede verse en la gura de la siguiente pagina.
8
0 0.5 1 1.5 2 2.5 3 3.5 4
2
1.5
1
0.5
0
0.5
1
Tiempo (t)
y
(
t
)
Algunas soluciones de (A)
c=1
c=0.5
c=0
c=0.5
c=1
En to, todas
las soluciones
tienen = pendiente
Volvamos a la ecuacion y

= y, con familia de soluciones : y(t) = c exp t.


Las soluciones tienden a juntarse cuando t crece, por lo que a un cuando la
solucion numerica se aparte de la solucion correcta, dicho apartamiento no va
a ir en aumento, sino que va a disminur a medida que t crece (ver gura de
abajo).
9
0 0.5 1 1.5 2 2.5 3
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
Tiempo (t)
y
(
t
)
Algunas soluciones de (B)
c=1
c=0.5
c=0
c=1
c=0.5
En to,
las pendientes
cambian con
la solucin
En general, si las soluciones tienden a separarse cuando t crece, diremos que
la ecuacion diferencial es inestable, y cuando las soluciones tienden a jun-
tarse, que la ecuacion diferencial es estable.
Notemos que la misma ecuacion diferencial puede ser estable en una zona e
inestable en otra. Un ejemplo es la ecuacion :
y

= 2(t 1)y, con soluciones y(t) = c exp ((t 1)


2
)
Si gracamos algunas de las soluciones (ver graca de abajo, tomamos alfa=5),
veremos que para t [0, 1] la ecuacion es inestable, y para t [1, 2] es estable.
Para cada t jo, las pendientes de las soluciones cambian con la solucion y,
son una funcion de y. Esta variacion esta gobernada por f
y
, esta cantidad es
la que mide la estabilidad de la ecuacion diferencial. Dicha cantidad se llama
Jacobiano de la ecuacion y la denotaremos por J. Las ecuaciones estables
tienen J negativos.
10
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
t
y
(
t
)
Familia de soluciones de una ecuacin cuya estabilidad cambia
Si miramos el ejemplo anterior, con = 5, vemos que J = 10(t 1), es
positivo para valores de t entre 0 y 1 y negativo para valores de t entre 1 y 2.
A modo de sntesis, podemos decir que: Si la ecuacion es inestable, los er-
rores del metodo numerico tenderan a amplicarse. Si la ecuacion es estable,
los errores se mantendran acotados y hasta podran decrecer. Lo que importa
no es tanto la solucion particular de la ecuacion, sino la familia a la
que pertenece. Como ejemplo de ello, las ecuaciones
y

= y y

= exp (t)
y(0) = 1 y(0) = 1
tienen ambas la misma solucion particular, y(t) = exp (t), sin embargo la
primera ecuacion es inestable, mientras que la segunda no, por lo que la resolu-
cion numerica de la primera va a ser mas insegura que la de la segunda. Para
ello, resolveremos ambas ecuaciones usando Euler, con un paso h = 0,2. Los
resultados se muestran en la graca de abajo.
11
0 0.5 1 1.5 2 2.5 3 3.5
0
5
10
15
20
25
30
35
t
y
(
t
)
Soluciones de y=y; y(0)=1 e y=exp(t);y(0)=1 mediante Euler, con h=0.2
Solucin de y=exp(t)
Solucin de y=y
Solucin analtica de ambos
sistemas y(t)=exp(t)
Estabilidad para sistemas de odes Los conceptos de estabilidad tambien
se aplican a los sitemas de ecuaciones. El unico cambio que aparece esta rela-
cionado con la matriz Jacobiana J ya mencionada. Recordemos que la com-
ponente i, j de la matriz Jacobiana es J
(
i, j) = f
i
/y
j
, y que depende de la
variable independiente x o t, seg un la notacion . Para el sistema de ecuaciones
de los zorros y conejos, tenemos que el Jacobiano es una matriz 2x2:

2 y
2
y
1
y
2
1 + y
1

Para un sistema de n ecuaciones, el Jacobiano sera una matriz nxn. Para una
sola ecuacion, sera una matriz 1x1, cuyo unico elemento es
f
y
(x, y(x)). La esta-
bilidad de un sistema esta gobernada por los valores propios de J. En general los
valores propios son n umeros complejos que dependen de y y de t o x. Puede pro-
barse que el valor propio con mayor parte real es quien controla la estabilidad.
Las partes reales positiva usualmente se corresponden con regiones de soluciones
que se separan (inestabilidad). La presencia de partes reales negativas en todos
los valores propios se corresponde con soluciones estables. Para un t jo pueden
haber valores propios con parte real positiva, y otros con parte real negativa.
Analisis del error
Nos centraremos en el metodo de Euler, por ser el mas sencillo. Desarrollando
12
por Taylor, tenemos que:
y(x
k+1
) = y(x
k
) + h
k
f(x
k
, y(x
k
)) +
h
2
k
2
y

(
k
), x
k
<
k
< x
k+1
Normalmente y
k
= y(x
k
). La unica excepcion es en el punto inicial, y(x
0
) = y
0
.
Si llamamos error global en x
k+1
a la expresion: E
k+1
= y(x
k+1
) y
k+1
y
recordamos que y
k+1
= y
k
+ h
k
f(x
k
, y
k
), tendremos que :
E
k+1
= E
k
+ h
k
(f(x
k
, y(x
k
)) f(x
k
, y
k
)) +
h
2
k
2
y

(
k
)
El error global es la cantidad que queremos controlar, es la distancia entre la
solucion analtica y(x
k
) y la de la ecuacion en diferencias, y
k
. Notemos que
no estamos considerando a un los errores de redondeo y de repre-
sentacion introducidos por la maquina. El error global tiene dos compo-
nentes : 1) El error local :A un cuando se diera que y(x
k
) = y
k
, seguiremos
teniendo E
k+1
=
h
2
k
2
y

(
k
). El error local es lo que en temas anteriores se
llamo error de truncamiento. Es el error matematico, y existira aunque las
operaciones se efect uen en aritmetica exacta. El error local es el que cometemos
al pasar de x
k
a x
k+1
cuando todos los datos hasta x
k
inclusive son exactos. Lo
denotaremos por e
k+1
=
h
2
k
2
y

(
k
).
2) El error de propagacion :El sumando h
k
(f(x
k
, y(x
k
)) f(x
k
, y
k
)) puede
escribirse (teo. del valor medio) como: h
k
J()(y(x
k
) y
k
), y
k
< < y
k+1
Este
puede ser un vector si las y

k
s lo son, en ese caso la desigualdad es componente
a componente.
Podemos entonces reescribir el error global como :
E
k+1
= E
k
+ h
k
J()E
k
+
h
2
k
2
y

(
k
) o E
k+1
= (1 + h
k
J)E
k
+ e
k+1
Esto es, el error global en el punto k + 1 es el error global en el punto anterior
multiplicado por un factor, mas el error local al pasar del punto anterior al ac-
tual. Al factor 1 + h
k
J se le llalma factor de amplicacion. El Jacobiano, que
ya haba aparecido controlando la estabilidad de la ode, vuelve a escena va el
factor de amplicacion, en el estudio del error global.
Diremos que un metodo numerico es estable, cuando el error global se mantiene
acotado, e inestable cuando no (para el metodo de Euler, el error se man-
tendra acotado si |1 + h
k
J| < 1, y si tenemos un sistema, pediremos que
I
d
+h
k
J < 1 en alguna norma). No confundamos esta denicion con la de es-
tabilidad de la ode. La desigualdad |1+h
k
J| < 1 es equivalente a 2 < h
k
J < 0,
y se llama Intervalo de estabilidad del metodo de Euler. Si la ode es inestable
(Jacobiano positivo), entonces no existira h
k
positivo para el cual el metodo de
13
Euler sea estable. Si la ode es estable (Jacobiano negativo), entonces el metodo
de Euler sera estable si elegimos h
k
< 2/J. A un cuando la ode sea estable,
el metodo de Euler puede no serlo si no elegimos bien el h. Volvamos
al ejemplo de la pagina 10,
y

= 2(t 1)y, con soluciones y(t) = c exp ((t 1)


2
)
Para t < 1 la ecuacion es inestable y cuando usemos Euler el error crecera,
puesto que |1 + hJ| > 1 cualquiera sea el h elegido. Para t > 1 la ecuacion es
estable, pero Euler sera inestable a menos que h <
1
(t1)
. Para = 5 y h = 0,1
tendremos que Euler es estable hasta t = 3 (Por que?), y si queremos resolver
la ecuacion en el intervalo [1, 2], el mayor h para el cual el metodo de Euler es
estable es h < 0,2. Veamos un ejemplo de esto, resolviendo dicha ecuacion en el
intervalo [1, 5], con un paso h = 0,1. Si ahora resolvemos con h = 0,2 , vemos
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
t
y
(
t
)
Resolucin por Euler con h=0.1, ecuacin y= 10 (t1) y, y(0)=1
y(t)=exp(10(t1)
2
)
que a partir de t = 2 los errores comienzan a crecer, el metodo es inestable.
Es importante recordar que un metodo numerico para resolucion de
odes puede ser inestable a un cuando la ode lo sea. Como el tama no
del paso h aparece tanto en el error local h
2
y

como en el factor de ampli-


cacion 1 +hJ, tomando h sucientemente peque no podremos hacer que el error
local sea tan chico como deseemos. Si ademas el problema es estable tambien
podremos lograr que |1 + hJ| < 1, con lo cual tambien estaremos controlando
14
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
0.4
0.2
0
0.2
0.4
0.6
0.8
1
t
y
(
t
)
La misma ecuacin pero con h=0.2. Notemos cmo el mtodo se vuelve inestable
a partir de t=2.
y(t)=exp(10(t1)
2
)
el error global. El problema es que en general no conocemos explcitamente J o
y

. Muchos programas estiman y

e ignoran J. Se les suele llamar programas


con solo control del error local. Y ya que estamos, a continuacion dejaremos por
un rato el analisis del error para ver una forma de elegir un paso h variable de
modo de controlar el error local, y luego volveremos sobre el analisis del error.
Estrategia de control del paso h
Para el metodo de Euler, vimos que el error local era de la forma : e
k+1
=
h
2
k
2
y

(
k
). La idea es, suponiendo que conocemos hasta y
k
, calcular y
k+1
usan-
do un paso h
k
y estimar el error local en y
k+1
. Si dicho error es menor que una
cierta tolerancia, seguimos adelante y calculamos y
k+2
, de lo contrario usamos
un h
k
menor y recalculamos y
k+1
hasta que el error local e
k+1
sea menor que
la tolerancia prejada.
Veamos una forma de hacer esto: Supongamos conocidos y
k1
, y
k
, y

k1
, y

k
. Quer-
emos que el error local sea menor que un cierto . Como e
k+1
=
h
2
k
2
y

(
k
), alcan-
zara con elegir h
k
<

2
y

(
k
)
. Pero como no conocemos y

(
k
), la estimaremos
como:
y

k
y

k1
x
k
x
k1
Entonces buscamos h
k
tal que |y

|
h
2
k
2
< , esto nos da : |
y

k
y

k1
x
k
x
k1
|
h
k
2
< , o
lo que es lo mismo, h <

2
|y

|
. En general se acostumbra poner un factor de
15
seguridad de 0,9, con lo que nos queda: h
k
< 0,9

2
|y

|
. Y para prevenir que h
k
sea demasiado grande, usamos:
h
k
< min

0,9

2
|y

|
, h
max

Si estamos interesados en resultados que sean seguros hasta un n umero jo de


dgitos (por ejemplo 5 dgitos), independientemente del tama no de la solucion,
entonces querremos controlar el error relativo. Para ello reemplazamos por
|y
k
| en la formula anterior.
Resumiendo: 1) Queremos calcular y
k+1
. Para ello estimamos y

k
y

k1
x
k
x
k1
.
2) Usamos h
k
< min

0,9

2
|y

|
, h
max

.
3) Con el h hallado en el paso anterior, calculamos y
k+1
.
4) Con este nuevo valor, calculamos y

=
y

k+1y

k
x
k+1
x
k
y vemos si |y

|
h
2
2
< . De
ser as, el valor y
k+1
es aceptado, de lo contrario volvemos a 2) pero con un h
menor.
Seguimos con analisis del error
Vimos que E
k+1
= (1 + h
k
J)E
k
+ e
k+1
. Supongamos que J < L (x, y(x))
en una cierta region, y que e
k
, con = (h
2
/2)y

[a,b]
, (donde y

[a,b]
es el maximo de |y

| en el intervalo [a, b]) h


k
= h. Entonces tendremos que :
E
k+1
E
k
|1 + hL| + , y como E
k
|1 + hL|E
k1
+
tendremos que
E
k+1
(|1 + hL|E
k1
+ ) |1 + hL| + , o lo que es lo mismo:
E
k+1
E
k1
|1 + hL|
2
+|1 + hL| +
Como E
k1
E
k2
|1 + hL| + , sustituyendo en la desigualdad anterior y
haciendo cuentas, tenemos :
E
k1
(E
k2
|1 + hL| + )

|1 + hL|
2

+|1 + hL| + o lo que es lo mismo:


E
k+1
E
k2
|1 + hL|
3
+|1 + hL|
2
+|1 + hL| +
Adivinen a que tipo de desigualdad llegaremos :
E
k+1
E
0
|1 +hL|
k+1
+
j=k

j=0
|1 + hL|
j
= E
0
|1 +hL|
k+1
+

1 |1 + hL|
k+1
1 |1 + hL|

o : E
k+1
E
0
|1 + hL|
k+1
+

1|1+hL|
k+1
1|1+hL|

Si E
0
= y(0) y
0
= 0 (condicion inicial), entonces tendremos que E
k

|1+hL|
k
1
|1+hL|1

. Como L > 0, entonces |1 + hL| = 1 + hL, con lo que llegamos a


E
k

(1+hL)
k
1
hL

. Ahora bien, recordemos que exp (hL) = 1+hL+


(hL)
2
2
+...,
entonces 1+hL < exp (hL), y (1+hL)
k
< exp (khL). Usando esto, llegamos a :
16
E
k

exp (khL)1
hL

=

h
exp (khL)1
L
Como kh es el k-simo paso, es un punto entre a y b, donde [a, b] es el intervalo
donde estamos resolviendo la ode. Entonces kh b. Entonces E
k


h
exp (bL)1
L
,
como el ultimo factor es una constante C, tendremos que
E
k

C
h
=
C h
2
/2 y

[a,b]
h
.
Esto signica que El error global en el metodo de Euler es o(h), mientras
que el error local es o(h
2
). Otra forma, mas intuitiva (y mas corta) de vero
esto es la siguiente: Supongamos que h = (ba)/n, entonces el error global nal,
en el n-simo paso sera la suma de los errores locales, y por tanto tendremos
E n o(h
2
) = n h o(h) = (b a)o(h). Este ultimo argumento se aplica no
solamente al metodo de Euler, y en general tendremos que si un metodo tiene
error local o(h
p
), el error global sera o(h
p1
). Por ejemplo, puede probarse que
el metodo del trapezoide tiene error local o(h
3
), y por tanto error global o(h
2
).
Una prueba es la siguiente: haciendo desarrollos de Taylor en los puntos x
k
, x
k+1
tenemos
y(x
k+1
) = y(x
k
) + hy

(x
k
) + h
2
/2 y

(x
k
) + h
3
/6 y

(
k
)
y(x
k
) = y(x
k+1
) hy

(x
k+1
+ h
2
/2 y

(x
k+1
) h
3
/6 y

(
k+1
) donde
k
,
k+1
estan entre x
k
, x
k+1
.
Sumando ambas ecuaciones, llegamos a
y(x
k+1
) = y(x
k
) + h/2 [y

(x
k+1
) + y

(x
k
)] + h
2
/4 [y

(x
k+1
) y

(x
k
)] +
h
3
/12 [y

(
k+1
) y

(
k
)]
Aplicando valor medio a las derivadas segundas, tendremos que [y

(x
k+1
) y

(x
k
)] =
hy

(), x
k
< < x
k+1
. Sustituyendo dicho sumando y agrupando los restos
o(h
3
), tenemos : y(x
k+1
) = y(x
k
) + h/2 [y

(x
k+1
) + y

(x
k
)] + o(h
3
).
Diremos que un metodo numerico de resolucion de edo es consistente si
max(e
h
)
h

0 cuando h 0, donde e(h) es el error local. El orden de consistencia es el or-
den del innitesimo
e(h)
h
. Esta denicion nos dice que el metodo es consistente
cuando el error local tiende a cero a medida que h lo hace, esto es, el modelo
matematico tiende al objeto que modela cuando la discretizacion es suciente-
mente na. En el caso del metodo de Euler, como e(h) = y

h
2
/2, tendremos
que
max|y

h
2
/2|
h
=
y

[a,b]
h
2
/2
h
=
y

[a,b]
h
2
17
es consistente de orden 1.
Hasta ahora no tomamos en cuenta los errores de redondeo que introduce la
computadora, ya sea en las operaciones o en la representacion de n umeros.
Si recordamos que (fp(X) = X(1 +
X
)),
X
<
mach
, tendremos que e
h

h
2
/2( y

+
mach
y

).
Estabilidad numerica
En cada paso del metodo se cometen errores de redondeo. La estabilidad numeri-
ca se reere a la diferencia entre la solucion y
k
de la ecuacion en diferencias que
obtendramos trabajando en aritmetica exacta, y la solucion y
k
que nos da la
computadora. Diremos que el metodo es numericamente estable si e
k
= y
k
y
k

permanece acotada al crecer k. El siguiente grafo ilustra como se vinculan la


edo, la ecuacion en diferencias y la resolucion que la maquina hace de ella.
Ecuacin diferencial
(solucin analtica y(x))
Ecuacin en diferencias
"exacta" (discretizacin
matemtica)
Ecuacin en diferencias
"numrica" (solucin de
la mquina)
Consistencia
Estabilidad
numrica
Convergencia
Para el metodo de Euler, tenemos que la ecuacion en diferencias es y
k+1
=
y
k
+hf(x
k
, y
k
). Pero lo que la maquina almacena es y
k+1
= y
k
+hf(x
k
, y
k
)+
k
.
Entonces tendremos que e
k+1
= e
k
+ h(f(x
k
, y
k
) f(x
k
, y
k
)) +
k
. Aplicando
valor medio, tendremos que e
k+1
= e
k
(1 + hJ) +
k
. Esto es, los errores de re-
dondeo se propagan igual que la solucion exacta de la ecuacion en diferencias.
Asumiendo
k
< , tendremos e
k
(1 + hJ)
k
e
0
+
|1 + hL|
k
1
hL
Es claro que
18
para que tengamos estabilidad numerica en el metodo de Euler, necesitaremos
que |1 + hJ| < 1. Como la Jacobiana interviene en ello, Esto implica que la
estabilidad numerica de un metodo tambien depende del problema al
que se aplica .
En general, analizar la estabilidad numerica de un metodo es bastante difcil,
por lo que se los estudia en un problema particular, llamado problema test,
el cual nos da informacion sobre el metodo y nos permite seleccionar el mas
adecuado.
Problema test
y

= qy
y(0) = 1
Sabemos que la solucion es y(x) = exp (qx), q C.
Llamaremos regi on de estabilidad del metodo numerico al conjunto de pun-
tos z = hq para los cuales la sucesion y
k
solucion de la ecuacion en diferencias,
se mantiene acotada al crecer k (recuerden el intervalo de estabilidad de Euler,
vamos a generalizarlo). A continuacion veremos el porque de esta denicion.
Deseamos estudiar como cambian las soluciones de la ecuacion y

= f(x, y(x)) al
cambiar la condicion inicial y(x
0
) = . Bajo ciertas condiciones de regularidad,
tenemos que

y
x

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

. Ademas,

x
y

y
x

Si llamamos u =
y

, tendremos
u
x
=
f
y
u. Por lo tanto, la estabilidad de
la edo depende de la derivada de f respecto de y, o sea del Jacobiano. En
el problema test, J = q. Asumiendo que J es diagonalizable, tendremos que
D = T
1
JT, donde D es la forma diagonal de J. Entonces el problema test
queda :y

= Jy = TDT
1
y. Si hacemos el cambio de variable z = T
1
y, ten-
dremos z

= Dz. Al ser D una matriz diagonal, el sistema se desacopla y queda


:
z

1
=
1
z
1
z

2
=
2
z
2

n
=
n
z
n
Para la estabilidad alcanza con estudiar el problema test y pedir
que h
i
pertenezca a la region de estabilidad para todo i.
En el caso de Euler, tenemos y
k+1
= y
k
+ hqy
k
y
k
= (1 + hq)
k
y
0
, es-
tara acotado sii |1 + hq| < 1. Esto es lo mismo que |hq (1)| < 1 Como
q puede ser compleja, esto nos da el disco de centro 1 + 0i y radio 1. Si
19
q es real, reencontramos el intervalo de estabilidad anteriormente visto. Para
3 2.5 2 1.5 1 0.5 0 0.5 1
2
1.5
1
0.5
0
0.5
1
1.5
2
Regin de estabilidad para el mtodo de Euler
(1,0)
(2,0)
Im(qh)
Re(qh)
el metodo del trapezoide, la ecuacion en diferencias correspondiente al proble-
ma test queda: y
k+1
= y
k
+ h/2(qy
k+1
+ qy
k
), la cual puede reescribirse como
:y
k+1
= y
k

1 + qh/2
1 qh/2

, que es lo mismo que y


k+1
=

1 + qh/2
1 qh/2

k
y
0
. Ello es-
tara acotado sii

1 + qh/2
1 qh/2

< 1. Haciendo cuentas (ejercicio), llegamos a que la


region de estabilidad es Re(qh) < 0. Para el caso de q real y una edo estable
(q < 0), como h > 0, el metodo sera estable para cualquier h. Esto es tpico
de los metodos implcitos: suelen tener regiones de estabilidad mas grandes que
los explcitos, por lo que a pesar de requerir mayor cantidad de operaciones, lo
compensan porque permiten usar un paso h mayor.
Ecuaciones con condiciones de borde
Consideremos la ecuacion y

= f(x, y(x), y

(x)) denida en un intervalo [a, b].


La solucion general de esta ecuacion involucra dos constantes arbitrarias, de
modo que para hallar una solucion especca, necesitaremos dos condiciones.
Si dichas condiciones vienen en el formato y(a) = y
0
, y

(a) = y

0
, diremos
que tenemos un problema con condiciones iniciales, y ya hemos visto como en-
frentarnos a el. Pero tambien puede suceder que las condiciones sean de la forma
y(a) = , y(b) = , en cuyo caso diremos que el problema es con condiciones
20
de borde o de frontera.
Veremos dos metodos para este tipo de ecuaciones: el metodo de las diferen-
cias nitas, y el metodo del disparo. El metodo de las diferencias nitas reduce
el problema de valores de frontera a un sistema de ecuaciones (lineales o no,
depende de la edo). El metodo del disparo reduce el problema de valores de
frontera a una sucesion de problemas de valores iniciales, que pueden resolverse
usando los metodos vistos anteriormente.
Metodo de las diferencias nitas
Comenzaremos con una ecuacion lineal de segundo orden
y

= p(x)y

+ q(x)y + r(x), con condiciones de borde y(a) = , y(b) =


Dividiremos el intervalo [a, b] en N subintervalos de longitud h, de modo que
los puntos de subdivision o de grilla sean x
i
= x
0
+ ih; x
0
= a, x
N
= b; h =
(b a)/N. La aproximacion numerica a la solucion exacta y(x
i
) sera llamada
y
i
, donde y
0
= , y
N
= . Los valores restantes y
1
, y
2
, ., y
N1
corresponden a
los puntos internos de la grilla, y son las incognitas que debemos hallar.
En un punto cualquiera x = x
n
, tendremos
y

(x
n
) = p(x
n
)y

(x
n
) + q(x
n
)y(x
n
) + r(x
n
)
Una forma simple de aproximar dicha ecuacion es reemplazando las derivadas
por sus diferencias centradas:
y

(x
n
) (1/2h)(y
n+1
y
n1
) y

(x
n
) 1/(h
2
)(y
n+1
2y
n
+ y
n1
)
Esto nos lleva a :
1/h
2
(y
n+1
2y
n
+ y
n+1
) = p
n
1/2h(y
n+1
y
n1
) + q
n
y
n
+ r
n
,
donde p
n
= p(x
n
), qn = q(x
n
), r
n
= r(x
n
). Esta ecuacion puede reacomodarse
como :
(1 + hp
n
/2)y
n1
(2 + h
2
q
n
)y
n
+ (1 hp
n
/2)y
n+1
= h
2
r
n
Esta ecuacion se aplica a cada uno de los puntos de grilla internos haciendo
n = 1, 2, ., N 1. Como los valores p
n
, q
n
, r
n
son conocidos, esto nos da una
ecuacion lineal para cada n, que involucra a y
n1
, y
n
, y
n+1
. En total tendremos
un sistema de N1 ecuaciones lineales para las incognitas y
1
, ., y
N1
. La primera
ecuacion (n=1), se simplica usando y
0
= , quedando
(2 + h
2
q
1
)y
1
+

1
hp
1
2

y
2
= h
2
r
1

1 +
hp
1
2

21
De igual modo, usando la otra condicion de borde, la ultima ecuacion (n=N-1),
queda:

1 +
hp
N1
2

y
N2
(2 + h
2
q
N1
)y
N1
= h
2
r
N1

1
hp
N1
2

Los valores que faltan hallar, y


1
, ..., y
N1
pueden encontrarse resolviendo el sis-
tema tridiagonal Ay=c, donde
A =

(2 + h
2
q
1
)

1
hp
1
2

1 +
hp
2
2

(2 + h
2
q
2
)

1
hp
2
2

1
hp
N2
2

1 +
hp
N1
2

(2 + h
2
q
n1
)

y =

y
1
y
2

y
N2
y
N1

c =

h
2
r
1

1 +
hp
1
2

h
2
r
2

h
2
r
N2
h
2
r
N1

1
hp
N1
2

22

Vous aimerez peut-être aussi