Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Métodos Numéricos en
Ecuaciones Diferenciales
Ordinarias
4.1 Introducción
Estudiaremos en este Tema algunos métodos numéricos 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 además que se verifican las hipótesis del Teorema de Picard1 , y en
consecuencia existe solución única 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 condición inicial y(x0 ) = y0 como un punto (x0 , y0 ) de dicho plano, podemos
aproximar la función solución 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ón f (x, y) es diferenciable en un entorno del punto (x0 , y0 ). Si
bien es cierto que se trata de una condición más restrictiva de lo estrictamente necesario, en la práctica
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 método tomar abscisas equiespaciadas, es decir, calcular la
solución aproximada en puntos de la forma: xn = xn−1 + h = x0 + nh, siendo h el
paso del método. De esta forma se obtienen las fórmulas que nos determinan la solución
aproximada en la forma:
tal que presenta solución única y(x) en un entorno de x0 (solución que suponemos además
derivable n veces en dicho entorno), aproximaremos dicha función por su polinomio de
Taylor de orden N :
1 1 y (N )
y(x) ' y(x0 )+y 0 (x0 )(x−x0 )+ y 00 (x0 )(x−x0 )2 + y 000 (x0 )(x−x0 )3 +. . .+ (x−x0 )N
2 3! N!
y el error de aproximación viene determinado por el resto de orden N + 1, de manera
que el error es proporcional a (x − x0 )N +1 .
Si fijamos una sucesión de puntos equiespaciados : x0 , x1 , x2 , . . ., con xn+1 = xn + h,
y denominamos (de manera similar a lo hecho en la sección 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 método necesitamos conocer las derivadas de la solución (recorde-
mos que desconocida), pero teniendo en cuenta la propia ecuación 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 resolución serán (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 aproximación será proporcional a h3 y por tanto el
error global lo será a h2 .
para proceder a aproximar esta última integral mediante un método numérico 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 , ȳn+1 ))
2
Lo normal es presentar el método 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 método con el método de Taylor de segundo orden, es posible
demostrar que el error local es también proporcional a h3 y, por tanto, el global lo es a
h2 .
donde ȳn+1 e ȳn+ 1 son estimaciones, puesto que yn+1 e yn+ 1 no son conocidos.
2 2
La estimación de ȳn+ 1 se hace por el método de Euler:
2
h
ȳn+ 1 = yn + f (xn , yn )
2 2
mientras que la estimación de ȳn+1 se pueden considerar varias opciones, por ejemplo:
ȳn+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ñadir que el error local en el Método 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 método de tercer orden está basado en el método de interación 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 combinación concreta, que no reproduciremos aquı́, se basa
en tomar una combinación genérica:
³ ´
ȳn+1 = yn + h θ f (xn , yn ) + (1 − θ)f (xn+ 1 , ȳn+ 1 )
2 2
y optimizar el valor de θ imponiendo exactitud en la fórmula de Taylor al tercer orden, ello lleva a que
necesariamente θ = −1.
MÉTODOS NUMÉRICOS EN EDO 65
Ejemplo: Resolver por un método 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 sección, analizaremos el comportamiento de Método de Euler en
algunas situaciones, que motivarán la necesidad de introducir métodos más precisos.
Además del error propio del método (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 computación), existe
un problema serio asociado al método y es su inestabilidad. Veamos el siguiente ejemplo:
Consideremos la ecuación de Malthus con constante negativa:
y 0 = −α y ; y(0) = y0
66 TEMA 4
y(t) = y0 e−αt
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
MÉTODOS NUMÉRICOS EN EDO 67
Ejemplo 2: Tomemos ahora el siguiente problema de valor inicial basado en una ecuación no
lineal:
3
y 0 = −y 2 + 1 ; y(0) = 10
El método requerirá ahora la resolución 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 método 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 )