Professional Documents
Culture Documents
Metodos Numericos en
Ecuaciones Diferenciales
Ordinarias
4.1 Introduccion
Estudiaremos en este Tema algunos metodos numericos para resolver problemas de valor
inicial en ecuaciones diferenciales ordinarias y en sistemas de e.d.o.
y 0 = f (x, y) , y(x0 ) = y0
donde suponemos ademas que se verifican las hipotesis del Teorema de Picard1 , y en
consecuencia existe solucion unica para el problema.
Interpretando la e.d.o. y 0 = 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 funcion f (x, y) es diferenciable en un entorno del punto (x0 , y0 ). Si
bien es cierto que se trata de una condicion mas restrictiva de lo estrictamente necesario, en la practica
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:
tal que presenta solucion unica y(x) en un entorno de x0 (solucion que suponemos ademas
derivable n veces en dicho entorno), aproximaremos dicha funcion por su polinomio de
Taylor de orden N :
1 1 y (N )
y(x) ' y(x0 )+y 0 (x0 )(xx0 )+ y 00 (x0 )(xx0 )2 + y 000 (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 0 (xn )h + y 00 (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 0 (xn ) = f (xn , yn )
tendremos entonces:
y 0 (xn ) = f (x, yn ) = cos(xn yn )
d cos(xy)
y 00 = = sen(xy) y sen(xy) y 0 = 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 .
para proceder a aproximar esta ultima integral mediante un metodo numerico adecuado
(recordemos que y(x) es desconocida). Si nuevamente planteamos el problema paso a
paso tendremos: Z xn+1
yn+1 = yn + f (x, y(x)) dx
xn
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
(k1 + k2 )
yn+1 = yn +
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 .
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, anadir que el error local en el Metodo de tercer orden es proporcional a
h4 y en consecuencia el global lo es a h3 .
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 interacion de
Simpson. Los errores local y global son en este caso proporcionales a h5 y h4 respecti-
vamente.
3
El razonamiento que lleva a tomar esta combinacion concreta, que no reproduciremos aqu, se basa
en tomar una combinacion generica:
yn+1 = yn + h f (xn , yn ) + (1 )f (xn+ 1 , yn+ 1 )
2 2
y optimizar el valor de imponiendo exactitud en la formula de Taylor al tercer orden, ello lleva a que
necesariamente = 1.
METODOS NUMERICOS EN EDO 65
Ejemplo: Resolver por un metodo de Runge-Kutta de cuarto orden el problema de valor inicial:
y 0 = 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 0 = y ; y(0) = y0
66 TEMA 4
y(t) = y0 et
yn+1 = yn yn h = (1 h) yn
y 0 = ay + cos x
entonces:
ah h
h 1+ 2 2
yn+1 = yn + (ayn+1 + cos xn+1 + ayn + cos xn ) yn+1 = ah
+ ah
(cos xn+1 + cos xn ))
2 1 2 1 2
METODOS NUMERICOS EN EDO 67
Ejemplo 2: Tomemos ahora el siguiente problema de valor inicial basado en una ecuacion no
lineal:
3
y 0 = 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
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 )