Professional Documents
Culture Documents
Metodos Numericos en
Ecuaciones Diferenciales
Ordinarias
4.1 Introducci
on
Estudiaremos en este Tema algunos metodos numericos para resolver problemas de valor
inicial en ecuaciones diferenciales ordinarias y en sistemas de e.d.o.
4.2 M
etodo de Euler
El Metodo de Euler o de las Tangentes constituye el primer y mas sencillo ejemplo de
metodo numerico para la resolucion de un problema de valor inicial:
y = f (x, y) , y(x0 ) = y0
donde suponemos ademas que se verifican las hipotesis del Teorema de Picard1 , y en
consecuencia existe solucion u
nica para el problema.
Interpretando la e.d.o. y = f (x, y) como un campo de direcciones en el plano
x y y la condicion inicial y(x0 ) = y0 como un punto (x0 , y0 ) de dicho plano, podemos
aproximar la funcion solucion y(x) por medio de la recta tangente a la misma que pasa
por ese punto:
y(x) = y0 + f (x0 , y0 )(x x0 )
1
Consideraremos en general que la funci on f (x, y) es diferenciable en un entorno del punto (x0 , y0 ). Si
bien es cierto que se trata de una condici
on mas restrictiva de lo estrictamente necesario, en la pr actica
trabajaremos siempre con funciones de ese tipo.
59
60 TEMA 4
y(x2 )
= y2 = y1 + f (x1 , y1 )(x2 x1 )
y as sucesivamente.
Es habitual en este metodo tomar abscisas equiespaciadas, es decir, calcular la
solucion aproximada en puntos de la forma: xn = xn1 + h = x0 + nh, siendo h el
paso del metodo. De esta forma se obtienen las formulas que nos determinan la solucion
aproximada en la forma:
4.3 M
etodos de Taylor
El Metodo de Euler que acabamos de describir no es mas que un caso particular de los
metodos de Taylor, que consisten de manera general en aproximar la solucion por su
polinomio de Taylor de un orden determinado. Partiendo por tanto del P.V.I.:
y = f (x, y)
y(x0 ) = y0
1 1 y (N )
y(x) y(x0 )+y (x0 )(xx0 )+ y (x0 )(xx0 )2 + y (x0 )(xx0 )3 +. . .+ (xx0 )N
2 3! N!
y el error de aproximacion viene determinado por el resto de orden N + 1, de manera
que el error es proporcional a (x x0 )N +1 .
Si fijamos una sucesion de puntos equiespaciados : x0 , x1 , x2 , . . ., con xn+1 = xn + h,
y denominamos (de manera similar a lo hecho en la seccion anterior) y0 , y1 , . . . a los
valores paroximados correspondientes de y(x), tendremos que:
1 1 (N )
yn+1 = yn + y (xn )h + y (xn )h2 + . . . + y (xn )hN
2 N!
con un error en cada paso (error local2 ) proporcional a hN +1 .
Para poder aplicar el metodo necesitamos conocer las derivadas de la solucion (recorde-
mos que desconocida), pero teniendo en cuenta la propia ecuacion diferencial:
y (xn ) = f (xn , yn )
tendremos entonces:
y (xn ) = f (x, yn ) = cos(xn yn )
d cos(xy)
y = = sen(xy) y sen(xy) y = sen(xy)(y + cos(xy))
dx
Y as los primeros pasos de la resolucion seran (tomaremos h = 0.5):
x1 = x0 + h = 0.5
h2
y1 = y0 + h cos(x0 y0 ) + ( sen(x0 y0 )(y0 + cos(x0 y0 ))) =
2
0.52
= 1 + 0.5 cos 0 + ( sen 0(1 + cos(0))) = 1.5
2
x2 = x1 + h = 1
h2
y2 = y1 + h cos(x1 y1 ) + ( sen(x1 y1 )(y1 + cos(x1 y1 ))) =
2
0.52
= 1.5 + 0.5 cos(0.5 1.5) + ( sen(0.5 1.5)(1.5 + cos(0.5 1.5))) = 1.67569
2
y as sucesivamente. El error local en esta aproximacion sera proporcional a h3 y por tanto el
error global lo sera a h2 .
4.4 M
etodos de Runge-Kutta
La idea general de los Metodos de Runge-Kutta es sustituir el Problema de Valor Inicial:
y = f (x, y)
y(x0 ) = y0
4.4.1 M
etodo de Runge-Kutta de segundo orden
La primera opcion que podemos aplicar es integrar mediante el metodo de los trapecios,
es decir tomando:
xn+1
1
f (x, y(x)) dx h (f (xn , yn ) + f (xn+1 , yn+1 ))
xn 2
METODOS
NUMERICOS EN EDO 63
h
yn+1 = yn + (f (xn , yn ) + f (xn+1 , yn+1 ))
2
Lo normal es presentar el metodo con las expresiones siguientes:
k1 = h f (xn , yn ) ; k2 = h f (xn+1 , yn + k1 )
1
yn+1 = yn +
(k1 + k2 )
2
Comparando este metodo con el metodo de Taylor de segundo orden, es posible
demostrar que el error local es tambien proporcional a h3 y, por tanto, el global lo es a
h2 .
4.4.2 M
etodo de Runge-Kutta de tercer orden
Se trata de la misma idea pero integrando por el Metodo de Simpson, entonces:
xn+1 h
f (x, y(x)) dx 2
f (xn , yn ) + 4f (xn+ 1 , yn+ 1 ) + f (xn+1 , yn+1 )
xn 3 2 2
donde yn+1 e yn+ 1 son estimaciones, puesto que yn+1 e yn+ 1 no son conocidos.
2 2
La estimacion de yn+ 1 se hace por el metodo de Euler:
2
h
yn+ 1 = yn + f (xn , yn )
2 2
mientras que la estimacion de yn+1 se pueden considerar varias opciones, por ejemplo:
yn+1 = yn + h f (xn , yn )
k1 = h f (xn , yn )
h 1
k2 = h f (xn + , yn + k1 )
2 2
k3 = h f (xn + h, yn k1 + 2k2 )
1
yn+1 = yn + (k1 + 4k2 + k3 )
6
Finalmente, a
nadir que el error local en el Metodo de tercer orden es proporcional a
h4 y en consecuencia el global lo es a h3 .
4.4.3 M
etodo de Runge-Kutta de cuarto orden
Los Metodos de Runge-Kutta de cuarto orden se deducen de una manera similar a la
expuesta en la seccion anterior para el caso de tercer orden. Ahora se introduce un
nuevo paso intermedio en la evaluacion de la derivada. Una vez mas se presentan varias
opciones en la evaluacion y es posible ajustar de tal manera que se garantice el error
local de manera proporcional a h5 (es decir garantizando exactitud en el cuarto orden
en el polinomio de Taylor), lo cual lleva a un error global proporcional a h4 . El Metodo
de cuarto orden mas habital es el determinado por las formulas siguientes
k1 = h f (xn , yn )
h k1
k2 = h f (xn + , yn + )
2 2
h k2
k3 = h f (xn + , yn + )
2 2
k4 = h f (xn + h, yn + k3 )
1
yn+1 = yn + (k1 + 2k2 + 2k3 + k4 )
6
que al igual que el metodo de tercer orden esta basado en el metodo de interaci
on de
Simpson. Los errores local y global son en este caso proporcionales a h y h respecti-
5 4
vamente.
3
El razonamiento que lleva a tomar esta combinaci on concreta, que no reproduciremos aqu, se basa
en tomar una combinaci
on generica:
yn+1 = yn + h f (xn , yn ) + (1 )f (xn+ 1 , yn+ 1 )
2 2
Ejemplo: Resolver por un metodo de Runge-Kutta de cuarto orden el problema de valor inicial:
y = x2 3y ; y(0) = 1
y as:
y1 = 0.741148
4.5 Estabilidad
Para finalizar esta seccion, analizaremos el comportamiento de Metodo de Euler en
algunas situaciones, que motivaran la necesidad de introducir metodos mas precisos.
Ademas del error propio del metodo (local en h2 y global en h), lo cual no es en
principio excesivamente grave si es posible reducir h a voluntad (aunque ello conlleva
errores considerables de redondeo y una sobrecarga en el tiempo de computacion), existe
un problema serio asociado al metodo y es su inestabilidad. Veamos el siguiente ejemplo:
Consideremos la ecuacion de Malthus con constante negativa:
y = y ; y(0) = y0
66 TEMA 4
y(t) = y0 et
yn+1 = yn yn h = (1 h) yn
4.5.1 M
etodo de Euler Modificado
Veremos a continuacion una variante del Metodo de euler, llamado habitualmente Metodo
de Euler Modificado. Se trata de un metodo mas preciso que el de Euler y ademas mas
estable.
La idea fundamental del metodo modificado es usar el metodo de los trapecios para
integrar la ecuacion y = f (x, y). Tomaremos as, en el intervalo [x0 , x 1]:
y1 x1
(x1 x0 )
y = f (x, y(x)) dy = f (x, y(x))dx (f (x0 , y0 ) + f (x1 , y1 ))
y0 x0 2
y = ay + cos x
entonces:
h 1+ ah h
yn+1 = yn + (ayn+1 + cos xn+1 + ayn + cos xn ) yn+1 = 2
+ 2
(cos xn+1 + cos xn ))
2 1 ah
2 1 ah
2
METODOS
NUMERICOS EN EDO 67
Ejemplo 2: Tomemos ahora el siguiente problema de valor inicial basado en una ecuacion no
lineal:
3
y = y 2 + 1 ; y(0) = 10
El metodo requerira ahora la resolucion de:
h 3 3
yn+1 = yn + (yn+1 ) 2 (yn ) 2 + 2
2
4.6 M
etodo Num
ericos para Sistemas
Los metodos de Euler y de Runge-Kutta que hemos planteado se aplican de manera
sencilla a sistemas de ecuaciones de primer orden, y, en consecuencia, a ecuaciones de
orden superior al primero.
Comencemos con el Metodo de Euler aplicado a un sistema de dos ecuaciones de
primer orden:
dx
dt = f (t, x, y)
dy
dt = g(t, x, y)
x(0) = x0
y(0) = y0
la extension natural del metodo ya expuesto nos conduce a las expresiones:
tn+1 = tn + h
xn+1 = xn + h f (tn , xn , yn )
yn+1 = yn + h g(tn , xn , yn )
y para t2 = 1:
con las condiciones iniciales: x(0) = y(0) = 0 por un metodo de Runge-Kutta de cuarto orden:
t0 = 0 , x0 = y0 = 0
h h
x1 = x0 + (k1 + 2k2 + 2k3 + k4 ) ; y1 = y0 + (l1 + 2l2 + 2l3 + l4 )
6 6
k1 = f (t0 , x0 , y0 ) = 4x0 + 3y0 + 6
l1 = g(t0 , x0 , y0 ) = 2x0 + y0 + 3
h h h
k2 = f (t0 + , x0 + k1 , y0 + l1 )
2 2 2
h h h
l2 = g(t0 + , x0 + k1 , y0 + l1 )
2 2 2
h h h
k3 = f (t0 + , x0 + k2 , y0 + l2 )
2 2 2
h h h
l3 = g(t0 + , x0 + k2 , y0 + l2 )
2 2 2
k4 = f (t0 + h, x0 + hk3 , y0 + hl3 )
l4 = g(t0 + h, x0 + hk3 , y0 + hl3 )