1. Tema 4
M´etodos Num´ericos en
Ecuaciones Diferenciales
Ordinarias
4.1 Introducci´on
Estudiaremos en este Tema algunos m´etodos num´ericos para resolver problemas de valor
inicial en ecuaciones diferenciales ordinarias y en sistemas de e.d.o.
4.2 M´etodo de Euler
El M´etodo de Euler o de las Tangentes constituye el primer y m´as sencillo ejemplo de
m´etodo num´erico para la resoluci´on de un problema de valor inicial:
y = f(x, y) , y(x0) = y0
donde suponemos adem´as que se verifican las hip´otesis del Teorema de Picard1, y en
consecuencia existe soluci´on ´unica para el problema.
Interpretando la e.d.o. y = f(x, y) como un campo de direcciones en el plano
x − y y la condici´on inicial y(x0) = y0 como un punto (x0, y0) de dicho plano, podemos
aproximar la funci´on soluci´on 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 m´as restrictiva de lo estrictamente necesario, en la pr´actica
trabajaremos siempre con funciones de ese tipo.
59
2. 60 TEMA 4
donde se ha utilizado que la pendiente de dicha tangente es: m = y (x0) y, en conse-
cuencia: m = f(x0, y0).
Calculamos as´ı de manera aproximada el valor de la soluci´on y en el punto de abscisa
x1 como:
y(x1) ∼= y1 = y0 + f(x0, y0)(x1 − x0)
y con este punto (aproximado) ya calculado, podemos repetir el m´etodo para obtener
otro punto aproximado (x2, y2) de la forma:
y(x2) ∼= y2 = y1 + f(x1, y1)(x2 − x1)
y as´ı sucesivamente.
Es habitual en este m´etodo tomar abscisas equiespaciadas, es decir, calcular la
soluci´on aproximada en puntos de la forma: xn = xn−1 + h = x0 + nh, siendo h el
paso del m´etodo. De esta forma se obtienen las f´ormulas que nos determinan la soluci´on
aproximada en la forma:
xn = xn−1 + h; yn = yn−1 + f(xn−1, yn−1) h
Desde el punto de vista geom´etrico, tenemos en definitiva que el M´etodo de Euler
aproxima a la funci´on soluci´on por medio de una l´ınea poligonal, la aproximaci´on ser´a
tanto peor cuanto mayor sea en n´umero de pasos, es decir, cuanto m´as “lejos” nos
encontremos del punto inicial (x0, y0). Por otro lado, el error ser´a evidentemente tanto
mayor cuanto m´as grande sea el “paso” del m´etodo, h.
Ejemplo: Resolveremos el problema de valor inicial
y = x
√
y
y(1) = 4
por el m´etodo de Euler con h = 0.1 para los puntos x = 1.1, 1.2, 1.3, 1.4 y 1.5.
En este problema tenemos h = 0.1, (x0, y0) = (1, 4) y la funci´on f(x, y) es: f(x, y) = x
√
y.
Por tanto:
yn = yn−1 + xn−1
√
yn−1 h
Dado que el problema se puede resolver tambi´en de forma exacta, presentamos en la tabla y
gr´afica siguientes los resultados:
i xi yi Sol. Exacta
0 1 4 4
1 1.1 4.2 4.21276
2 1.2 4.42543 4.45210
3 1.3 4.67787 4.71976
4 1.4 4.95904 5.01760
5 1.5 5.27081 5.34766 1.1 1.2 1.3 1.4 1.5
4.2
4.4
4.6
4.8
5
5.2
3. M´ETODOS NUM´ERICOS EN EDO 61
4.3 M´etodos de Taylor
El M´etodo de Euler que acabamos de describir no es m´as que un caso particular de los
m´etodos de Taylor, que consisten de manera general en aproximar la soluci´on por su
polinomio de Taylor de un orden determinado. Partiendo por tanto del P.V.I.:
y = f(x, y)
y(x0) = y0
tal que presenta soluci´on ´unica y(x) en un entorno de x0 (soluci´on que suponemos adem´as
derivable n veces en dicho entorno), aproximaremos dicha funci´on por su polinomio de
Taylor de orden N:
y(x) y(x0)+y (x0)(x−x0)+
1
2
y (x0)(x−x0)2
+
1
3!
y (x0)(x−x0)3
+. . .+
y(N)
N!
(x−x0)N
y el error de aproximaci´on 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´on de puntos equiespaciados : x0, x1, x2, . . ., con xn+1 = xn + h,
y denominamos (de manera similar a lo hecho en la secci´on anterior) y0, y1, . . . a los
valores paroximados correspondientes de y(x), tendremos que:
yn+1 = yn + y (xn)h +
1
2
y (xn)h2
+ . . . +
1
N!
y(N)
(xn)hN
con un error en cada paso (error local2) proporcional a hN+1.
Para poder aplicar el m´etodo necesitamos conocer las derivadas de la soluci´on (recorde-
mos que desconocida), pero teniendo en cuenta la propia ecuaci´on diferencial:
y (xn) = f(xn, yn)
mientras que y (xn) puede ser calculada derivando:
y =
d
dx
f(x, y) =
∂f
∂x
+
∂f
∂y
dy
dx
=
∂f
∂x
+
∂f
∂y
f(x, y)
y as´ı sucesivamente.
Es evidente que el m´etodo de Taylor de orden uno no es m´as que el M´etodo de Euler
antes descrito. Analicemos con un ejemplo el M´etodo de Taylor de orden dos:
Ejemplo: Apliquemos el m´etodo de Taylor de orden dos a la ecuaci´on y = cos(xy), con la
condici´on inicial: y(0) = 1. La expresi´on a considerar ser´a:
y(xn+1) yn+1 = yn + y (xn)h +
1
2
y (xn)h2
2
En general se llama “error local” al cometido en cada uno de los pasos de un m´etodo num´erico.
El error acumulado tras n pasos recibe el nombre de “error global” y si el local es proporcional a hp
,
entonces el global ser´a proporcional a hp−1
.
4. 62 TEMA 4
tendremos entonces:
y (xn) = f(x,yn) = cos(xnyn)
y =
d cos(xy)
dx
= − sen(xy) y − sen(xy) y = − sen(xy)(y + cos(xy))
Y as´ı los primeros pasos de la resoluci´on ser´an (tomaremos h = 0.5):
x1 = x0 + h = 0.5
y1 = y0 + h cos(x0y0) +
h2
2
(− sen(x0y0)(y0 + cos(x0y0))) =
= 1 + 0.5 cos 0 +
0.52
2
(− sen 0(1 + cos(0))) = 1.5
x2 = x1 + h = 1
y2 = y1 + h cos(x1y1) +
h2
2
(− sen(x1y1)(y1 + cos(x1y1))) =
= 1.5 + 0.5 cos(0.5 1.5) +
0.52
2
(− sen(0.5 1.5)(1.5 + cos(0.5 1.5))) = 1.67569
y as´ı sucesivamente. El error local en esta aproximaci´on ser´a proporcional a h3
y por tanto el
error global lo ser´a a h2
.
4.4 M´etodos de Runge-Kutta
La idea general de los M´etodos de Runge-Kutta es sustituir el Problema de Valor Inicial:
y = f(x, y)
y(x0) = y0
por la ecuaci´on integral equivalente:
y
y0
dy =
x
x0
f(x, y(x)) dx ⇒ y = y0 +
x
x0
f(x, y(x)) dx
para proceder a aproximar esta ´ultima integral mediante un m´etodo num´erico adecuado
(recordemos que y(x) es desconocida). Si nuevamente planteamos el problema “paso a
paso” tendremos:
yn+1 = yn +
xn+1
xn
f(x, y(x)) dx
4.4.1 M´etodo de Runge-Kutta de segundo orden
La primera opci´on que podemos aplicar es integrar mediante el m´etodo de los trapecios,
es decir tomando:
xn+1
xn
f(x, y(x)) dx
1
2
h (f(xn, yn) + f(xn+1, yn+1))
5. M´ETODOS NUM´ERICOS EN EDO 63
Al ser desconocida yn+1 en la expresi´on anterior, lo aproximaremos por ¯yn+1, donde
¯yn+1 es la estimaci´on de yn+1 que resultar´ıa aplicando el m´etodo de Euler. Tendremos
as´ı: xn+1
xn
f(x, y(x)) dx
1
2
h (f(xn, yn) + f(xn+1, ¯yn+1))
con
¯yn+1 = yn + h f(xn, yn)
y llegaremos a la expresi´on del m´etodo:
yn+1 = yn +
h
2
(f(xn, yn) + f(xn+1, ¯yn+1))
Lo normal es presentar el m´etodo con las expresiones siguientes:
k1 = h f(xn, yn) ; k2 = h f(xn+1, yn + k1)
yn+1 = yn +
1
2
(k1 + k2)
Comparando este m´etodo con el m´etodo de Taylor de segundo orden, es posible
demostrar que el error local es tambi´en 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 M´etodo de Simpson, entonces:
xn+1
xn
f(x, y(x)) dx
h
2
3
f(xn, yn) + 4f(xn+1
2
, ¯yn+1
2
) + f(xn+1, yn+1)
donde ¯yn+1 e ¯yn+1
2
son estimaciones, puesto que yn+1 e yn+1
2
no son conocidos.
La estimaci´on de ¯yn+1
2
se hace por el m´etodo de Euler:
¯yn+1
2
= yn +
h
2
f(xn, yn)
mientras que la estimaci´on de ¯yn+1 se pueden considerar varias opciones, por ejemplo:
¯yn+1 = yn + h f(xn, yn)
es decir el M´etodo de Euler de nuevo, o por ejemplo:
¯yn+1 = yn + h f(xn+1
2
, ¯yn+1
2
)
que consiste en variar el M´etodo de Euler tomando la pendiente de la recta tangente en
el punto medio en vez de la tangente en el punto propiamente dicha. Finalmente, lo m´as
6. 64 TEMA 4
usual es tomar una combinaci´on de las dos opciones3:
¯yn+1 = yn + h 2 f(xn+1
2
, ¯yn+1
2
) − f(xn, yn)
Podemos entonces resumir el M´etodo de Runge-Kutta de tercer orden en la forma:
k1 = h f(xn, yn)
k2 = h f(xn +
h
2
, yn +
1
2
k1)
k3 = h f(xn + h, yn − k1 + 2k2)
yn+1 = yn +
1
6
(k1 + 4k2 + k3)
Finalmente, a˜nadir que el error local en el M´etodo 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 M´etodos de Runge-Kutta de cuarto orden se deducen de una manera similar a la
expuesta en la secci´on anterior para el caso de tercer orden. Ahora se introduce un
nuevo paso intermedio en la evaluaci´on de la derivada. Una vez m´as se presentan varias
opciones en la evaluaci´on 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 M´etodo
de cuarto orden m´as habital es el determinado por las f´ormulas siguientes
k1 = h f(xn, yn)
k2 = h f(xn +
h
2
, yn +
k1
2
)
k3 = h f(xn +
h
2
, yn +
k2
2
)
k4 = h f(xn + h, yn + k3)
yn+1 = yn +
1
6
(k1 + 2k2 + 2k3 + k4)
que al igual que el m´etodo de tercer orden est´a basado en el m´etodo de interaci´on 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´on concreta, que no reproduciremos aqu´ı, se basa
en tomar una combinaci´on gen´erica:
¯yn+1 = yn + h θ f(xn, yn) + (1 − θ)f(xn+ 1
2
, ¯yn+ 1
2
)
y optimizar el valor de θ imponiendo exactitud en la f´ormula de Taylor al tercer orden, ello lleva a que
necesariamente θ = −1.
7. M´ETODOS NUM´ERICOS EN EDO 65
Ejemplo: Resolver por un m´etodo de Runge-Kutta de cuarto orden el problema de valor inicial:
y = x2
− 3y ; y(0) = 1
en el intervalo 0 ≤ x ≤ 0.4, con h = 0.1.
Tenemos que x0 = 0, y0 = 1, y f(x, y) = x2
− 3y. Para x1 = 0.1 l ordenada correspondiente
ser´a:
y1 = 1 +
0.1
6
(k1 + 2k2 + 2k3 + k4)
con
k1 = f(x0, y0) = 02
− 3 1 = −3
k2 = f(x0 +
h
2
, y0 +
h
2
k1) = (0 +
0.1
2
)2
− 3(1 +
0.1
2
(−3)) = −2.5475
k3 = f(x0 +
h
2
, y0 +
h
2
k2) = (0 +
0.1
2
)2
− 3(1 +
0.1
2
(−2.5475)) = −2.61538
k4 = f(x0 + h, y0 + h k3) = (0 + 0.1)2
− 3(1 + 0.1(−2.61538)) = −2.20539
y as´ı:
y1 = 0.741148
De manera an´aloga se determinan los puntos:
(x2, y2) = (0.2, 0.551151) ; (x3, y3) = (0.3, 0.413894) ; (x4, y4) = (0.4, 0.317435)
La soluci´on exacta es:
y =
25
27
e−3x
+
1
3
x2
−
2
3
x +
2
9
de manera que:
y(0.1) = 0.741127 ; y(0.2) = 0.551121 ; y(0.3) = 0.413860 ; y(0.4) = 0.317402
4.5 Estabilidad
Para finalizar esta secci´on, analizaremos el comportamiento de M´etodo de Euler en
algunas situaciones, que motivar´an la necesidad de introducir m´etodos m´as precisos.
Adem´as del error propio del m´etodo (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´on), existe
un problema serio asociado al m´etodo y es su inestabilidad. Veamos el siguiente ejemplo:
Consideremos la ecuaci´on de Malthus con constante negativa:
y = −α y ; y(0) = y0
8. 66 TEMA 4
con α e y0 ambas positivas. La soluci´on exacta es sencilla:
y(t) = y0 e−αt
El M´etodo de Euler para este caso conduce a la expresi´on:
yn+1 = yn − α yn h = (1 − αh) yn
Es f´acil comprobar que si αh < 1, entonces la soluci´on num´erica es decreciente y positiva,
como ocurre en la soluci´on real exacta, pero si αh > 1, entonces el signo de la soluci´on
se va alternando y, m´as a´un, si αh > 2, entonces la magnitud de la soluci´on se va
incrementando en cada paso (o sea resulta creciente en valor absoluto), y la soluci´on
oscila. Este es un comportamiento t´ıpico de lo que se conoce en Matem´aticas como
inestabilidad del m´etodo.
4.5.1 M´etodo de Euler Modificado
Veremos a continuaci´on una variante del M´etodo de euler, llamado habitualmente M´etodo
de Euler Modificado. Se trata de un m´etodo m´as preciso que el de Euler y adem´as m´as
estable.
La idea fundamental del m´etodo modificado es usar el m´etodo de los trapecios para
integrar la ecuaci´on y = f(x, y). Tomaremos as´ı, en el intervalo [x0, x − 1]:
y = f(x, y(x)) ⇔
y1
y0
dy =
x1
x0
f(x, y(x))dx
(x1 − x0)
2
(f(x0, y0) + f(x1, y1))
Repitiendo el razonamiento, tendremos
yn+1 = yn +
h
2
(f(xn+1, yn+1) + f(xn, yn))
Si la funci´on f es lineal en la variable y, entonces es posible despejar f´acilmente yn+1
en la ecuaci´on anterior. Si no es lineal, entonces necesitamos un m´etodo num´erico para
calcular la correspondiente yn+1, t´ıpicamente se utiliza el m´etodo de las sustituciones
sucesivas.
Veamos un par de ejemplos para aclarar estas ideas:
Ejemplo 1: Si consideramos la ecuaci´on lineal:
y = ay + cos x
entonces:
yn+1 = yn+
h
2
(ayn+1 + cos xn+1 + ayn + cos xn) ⇒ yn+1 =
1 + ah
2
1 − ah
2
+
h
2
1 − ah
2
(cos xn+1 + cos xn))
9. M´ETODOS NUM´ERICOS EN EDO 67
Ejemplo 2: Tomemos ahora el siguiente problema de valor inicial basado en una ecuaci´on no
lineal:
y = −y
3
2 + 1 ; y(0) = 10
El m´etodo requerir´a ahora la resoluci´on de:
yn+1 = yn +
h
2
−(yn+1)
3
2 − (yn)
3
2 + 2
4.6 M´etodo Num´ericos para Sistemas
Los m´etodos 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 M´etodo 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 extensi´on natural del m´etodo 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)
Ejemplo: Dado el problema de valor inicial:
y − 0.05 y + 0.15 y = 0, y (0) = 0, y(0) = 1
calcular y(1) e y (1) utilizando el M´etodo de Euler con h = 0.5.
Si introducimos una nueva variable dependiente: z = y , y pasamos por tanto de un problema
de segundo orden en variables (t, y) a uno con tres variables (t; y, z) tendremos el sistema de
ecuaciones de primer orden:
y = z
z = 0.05z − 0.15y
y(0) = 1
z(0) = 0
Las expresiones del m´etodo ser´an entonces:
yn+1 = yn +h f(tn, yn, zn) = yn +h zn , zn+1 = zn +h g(tn, yn, zn) = yn +h (0.05zn −0.15yn)
Y as´ı, para t1 = t0 + h = 0 + 0.5 = 0.5:
y1 = y0 + h z0 = 1 , z1 = z0 + h (0.05z0 − 0.15y0) = −0.075
10. 68 TEMA 4
y para t2 = 1:
y2 = y1 + h z1 = 0.96250 , z2 = z1 + h (0.05z1 − 0.15y1) = −0.15187
Finalmente, plantearemos en un ejemplo la aplicaci´on de un m´etodo de Runge-Kutta
de cuarto orden a un sistema de ecuaciones, siendo extensible dicho planteamiento a otros
m´etodos y por supuesto a otro tipo de sistemas.
Ejemplo: Planteemos la resoluci´on del sistema:
dx
dt = −4x + 3y + 6
dy
dx = −2x + y + 3
con las condiciones iniciales: x(0) = y(0) = 0 por un m´etodo de Runge-Kutta de cuarto orden:
t0 = 0 , x0 = y0 = 0
x1 = x0 +
h
6
(k1 + 2k2 + 2k3 + k4) ; y1 = y0 +
h
6
(l1 + 2l2 + 2l3 + l4)
k1 = f(t0, x0, y0) = −4x0 + 3y0 + 6
l1 = g(t0, x0, y0) = −2x0 + y0 + 3
k2 = f(t0 +
h
2
, x0 +
h
2
k1, y0 +
h
2
l1)
l2 = g(t0 +
h
2
, x0 +
h
2
k1, y0 +
h
2
l1)
k3 = f(t0 +
h
2
, x0 +
h
2
k2, y0 +
h
2
l2)
l3 = g(t0 +
h
2
, x0 +
h
2
k2, y0 +
h
2
l2)
k4 = f(t0 + h, x0 + hk3, y0 + hl3)
l4 = g(t0 + h, x0 + hk3, y0 + hl3)