You are on page 1of 10

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 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 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

1. yn = yn−1 + f (xn−1 . calcular la soluci´on aproximada en puntos de la forma: xn = xn−1 + h = x0 + nh. y) es: f (x. y0 ). y0 )(x1 − x0 ) y con este punto (aproximado) ya calculado. 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 .2 1. yn−1 ) h Desde el punto de vista geom´etrico.3 1.21276 4. 1. cuanto m´as “lejos” nos encontremos del punto inicial (x0 . y) = x y.27081 5. 1. Exacta 5. Por tanto: √ yn = yn−1 + xn−1 yn−1 h Dado que el problema se puede resolver tambi´en de forma exacta.5. √ En este problema tenemos h = 0. en conse- cuencia: m = f (x0 .4 4.2.6 3 1. Es habitual en este m´etodo tomar abscisas equiespaciadas.71976 4. y0 ).01760 4.3.67787 4. siendo h el paso del m´etodo.1 para los puntos x = 1. h. Ejemplo: Resolveremos el problema de valor inicial � √ y� = x y y(1) = 4 por el m´etodo de Euler con h = 0. el error ser´a evidentemente tanto mayor cuanto m´as grande sea el “paso” del m´etodo. y2 ) de la forma: y(x2 ) ∼ = y2 = y1 + f (x1 .2 5 1.2 4.1 1.5 .42543 4.4 y 1.1. 1.34766 1. y0 ) = (1.45210 4. tenemos en definitiva que el M´etodo de Euler aproxima a la funci´on soluci´on por medio de una l´ınea poligonal. podemos repetir el m´etodo para obtener otro punto aproximado (x2 . De esta forma se obtienen las f´ormulas que nos determinan la soluci´on aproximada en la forma: xn = xn−1 + h. 4) y la funci´on f (x.2 0 1 4 4 5 1 1.8 2 1. la aproximaci´ on ser´a tanto peor cuanto mayor sea en n´ umero de pasos.1 4. presentamos en la tabla y gr´afica siguientes los resultados: i xi yi Sol.95904 5.60 TEMA 4 donde se ha utilizado que la pendiente de dicha tangente es: m = y � (x0 ) y.5 5.4 4 1.4 1. (x0 .2 4. y1 )(x2 − x1 ) y as´ı sucesivamente. Por otro lado. es decir.3 4. es decir.

. 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).+ (x−x0 )N 2 3! N! y el error de aproximaci´on viene determinado por el resto de orden N + 1. a los valores paroximados correspondientes de y(x). . y) = + = + f (x. y denominamos (de manera similar a lo hecho en la secci´on anterior) y0 . . Es evidente que el m´etodo de Taylor de orden uno no es m´as que el M´etodo de Euler antes descrito. aproximaremos dicha funci´on por su polinomio de Taylor de orden N : 1 1 y (N ) y(x) � y(x0 )+y � (x0 )(x−x0 )+ y �� (x0 )(x−x0 )2 + y ��� (x0 )(x−x0 )3 +. y) y(x0 ) = y0 tal que presenta soluci´on u ´nica y(x) en un entorno de x0 (soluci´on que suponemos adem´as derivable n veces en dicho entorno). con la condici´on inicial: y(0) = 1. . y) dx ∂x ∂y dx ∂x ∂y y as´ı sucesivamente. x1 . de manera que el error es proporcional a (x − x0 )N +1 . ´ METODOS ´ NUMERICOS EN EDO 61 4. tendremos que: 1 1 (N ) yn+1 = yn + y � (xn )h + y �� (xn )h2 + . pero teniendo en cuenta la propia ecuaci´on diferencial: y � (xn ) = f (xn .: � y� = f (x. Partiendo por tanto del P.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.I. Para poder aplicar el m´etodo necesitamos conocer las derivadas de la soluci´on (recorde- mos que desconocida). .. . que consisten de manera general en aproximar la soluci´on por su polinomio de Taylor de un orden determinado. El error acumulado tras n pasos recibe el nombre de “error global” y si el local es proporcional a hp . La expresi´on a considerar ser´a: 1 y(xn+1 ) � yn+1 = yn + y � (xn )h + y �� (xn )h2 2 2 En general se llama “error local” al cometido en cada uno de los pasos de un m´etodo num´erico. . a proporcional a hp−1 .V. . x2 . yn ) mientras que y �� (xn ) puede ser calculada derivando: d ∂f ∂f dy ∂f ∂f y �� = f (x. . . entonces el global ser´ . y1 . con xn+1 = xn + h. Si fijamos una sucesi´on de puntos equiespaciados : x0 . + y (xn )hN 2 N! con un error en cada paso (error local2 ) proporcional a hN +1 .

5 h2 y1 = y0 + h cos(x0 y0 ) + (− sen(x0 y0 )(y0 + cos(x0 y0 ))) = 2 0.5 + cos(0. Si nuevamente planteamos el problema “paso a paso” tendremos: � xn+1 yn+1 = yn + f (x.52 = 1 + 0. 4.67569 2 y as´ı sucesivamente. y(x)) dx � h (f (xn .4. es decir tomando: � xn+1 1 f (x.5) + (− sen(0.5 + 0.5 cos 0 + (− sen 0(1 + cos(0))) = 1.5 1.5): x1 = x0 + h = 0. y(x)) dx ⇒ y = y0 + f (x.5 cos(0. y(x)) dx xn 4. yn+1 )) xn 2 .5))) = 1. El error local en esta aproximaci´on ser´a proporcional a h3 y por tanto el error global lo ser´a a h2 .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.5 2 x2 = x1 + h = 1 h2 y2 = y1 + h cos(x1 y1 ) + (− sen(x1 y1 )(y1 + cos(x1 y1 ))) = 2 0. y) y(x0 ) = y0 por la ecuaci´on integral equivalente: � y � x � x dy = f (x. yn ) + f (xn+1 .5)(1. 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 resoluci´on ser´an (tomaremos h = 0.5 1.62 TEMA 4 tendremos entonces: y � (xn ) = f (x.52 = 1.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.5 1. y(x)) dx y0 x0 x0 para proceder a aproximar esta u ´ltima integral mediante un m´etodo num´erico adecuado (recordemos que y(x) es desconocida).

yn ) + f (xn+1 . y¯n+ 1 ) + f (xn+1 . yn ) + f (xn+1 . yn ) . yn ) + 4f (xn+ 1 . yn+1 ) xn 3 2 2 donde y¯n+1 e y¯n+ 1 son estimaciones. o por ejemplo: y¯n+1 = yn + h f (xn+ 1 . y¯n+1 )) xn 2 con y¯n+1 = yn + h f (xn . 2 2 La estimaci´on de y¯n+ 1 se hace por el m´etodo de Euler: 2 h y¯n+ 1 = yn + f (xn . yn ) y llegaremos a la expresi´on del m´etodo: h yn+1 = yn + (f (xn . y(x)) dx � 2 f (xn . lo aproximaremos por y¯n+1 . Finalmente. yn + k1 ) 1 yn+1 = yn + (k1 + k2 ) 2 Comparando este m´etodo con el m´etodo de Taylor de segundo orden. yn ) 2 2 mientras que la estimaci´on de y¯n+1 se pueden considerar varias opciones. lo m´as . k2 = h f (xn+1 . y¯n+1 )) 2 Lo normal es presentar el m´etodo con las expresiones siguientes: k1 = h f (xn . entonces: � xn+1 h � � f (x. y(x)) dx � h (f (xn . y¯n+ 1 ) 2 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. el global lo es a h2 . es posible demostrar que el error local es tambi´en proporcional a h3 y.4. por ejemplo: y¯n+1 = yn + h f (xn . 4.2 M´ etodo de Runge-Kutta de tercer orden Se trata de la misma idea pero integrando por el M´etodo de Simpson. ´ METODOS ´ NUMERICOS EN EDO 63 Al ser desconocida yn+1 en la expresi´on anterior. Tendremos as´ı: � xn+1 1 f (x. por tanto. puesto que yn+1 e yn+ 1 no son conocidos. yn ) es decir el M´etodo de Euler de nuevo. donde y¯n+1 es la estimaci´on de yn+1 que resultar´ıa aplicando el m´etodo de Euler.

4.4. . Los errores local y global son en este caso proporcionales a h y h respecti- 5 4 vamente. yn − k1 + 2k2 ) 1 yn+1 = yn + (k1 + 4k2 + k3 ) 6 Finalmente. yn ) 2 2 Podemos entonces resumir el M´etodo de Runge-Kutta de tercer orden en la forma: k1 = h f (xn . yn + k1 ) 2 2 k3 = h f (xn + h. yn ) h 1 k2 = h f (xn + . 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 . yn + ) 2 2 h k2 k3 = h f (xn + .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. ello lleva a que necesariamente θ = −1. Ahora se introduce un nuevo paso intermedio en la evaluaci´on de la derivada. y¯n+ 1 ) 2 2 y optimizar el valor de θ imponiendo exactitud en la f´ ormula de Taylor al tercer orden. se basa en tomar una combinaci´ on gen´erica: � � y¯n+1 = yn + h θ f (xn . 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 . y¯n+ 1 ) − f (xn . yn + k3 ) 1 yn+1 = yn + (k1 + 2k2 + 2k3 + k4 ) 6 que al igual que el m´etodo de tercer orden est´a basado en el m´etodo de interaci´ on de Simpson. El M´etodo de cuarto orden m´as habital es el determinado por las f´ormulas siguientes k1 = h f (xn . yn + ) 2 2 k4 = h f (xn + h. 3 El razonamiento que lleva a tomar esta combinaci´ on concreta. que no reproduciremos aqu´ı. yn ) + (1 − θ)f (xn+ 1 .64 TEMA 4 usual es tomar una combinaci´on de las dos opciones3 : � � y¯n+1 = yn + h 2 f (xn+ 1 . yn ) h k1 k2 = h f (xn + .

413860 .4.1)2 − 3(1 + 0.1 k3 = f (x0 + .413894) .741148 De manera an´aloga se determinan los puntos: (x2 .61538 2 2 2 2 k4 = f (x0 + h.3. y0 + h k3 ) = (0 + 0. (x4 .4. con h = 0. y) = x2 − 3y. 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).2) = 0.5 Estabilidad Para finalizar esta secci´on. Adem´as del error propio del m´etodo (local en h2 y global en h).5475)) = −2. y(0) = y0 .1) = 0. existe un problema serio asociado al m´etodo y es su inestabilidad. y f (x.1 2 0. y0 = 1.317402 4. 0. y(0.1 y1 = 1 + (k1 + 2k2 + 2k3 + k4 ) 6 con k1 = f (x0 . Tenemos que x0 = 0. que motivar´an la necesidad de introducir m´etodos m´as precisos.61538)) = −2.741127 . y(0) = 1 en el intervalo 0 ≤ x ≤ 0. y3 ) = (0. y4 ) = (0. y2 ) = (0. 0. 0.1. (x3 .317435) La soluci´on exacta es: � � 25 −3x 1 2 2 y= e + x − x+ 2 27 3 3 9 de manera que: y(0. analizaremos el comportamiento de M´etodo de Euler en algunas situaciones. Para x1 = 0.2.20539 y as´ı: y1 = 0.1(−2. y0 ) = 02 − 3 1 = −3 h h 0. Veamos el siguiente ejemplo: Consideremos la ecuaci´on de Malthus con constante negativa: y � = −α y .551151) . y0 + k1 ) = (0 + ) − 3(1 + (−3)) = −2. ´ METODOS ´ NUMERICOS EN EDO 65 Ejemplo: Resolver por un m´etodo de Runge-Kutta de cuarto orden el problema de valor inicial: y � = x2 − 3y .1 2 0.4) = 0.1 l ordenada correspondiente ser´a: 0. y(0. y(0.1 k2 = f (x0 + . y0 + k2 ) = (0 + ) − 3(1 + (−2.5475 2 2 2 2 h h 0.3) = 0.551121 .

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. Si no es lineal. Se trata de un m´etodo m´as preciso que el de Euler y adem´as m´as estable.5. entonces el signo de la soluci´on se va alternando y. pero si αh > 1. Este es un comportamiento t´ıpico de lo que se conoce en Matem´aticas como inestabilidad del m´etodo. Veamos un par de ejemplos para aclarar estas ideas: Ejemplo 1: Si consideramos la ecuaci´on lineal: 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 . t´ıpicamente se utiliza el m´etodo de las sustituciones sucesivas. como ocurre en la soluci´on real exacta. entonces es posible despejar f´acilmente yn+1 en la ecuaci´on anterior. y1 )) y0 x0 2 Repitiendo el razonamiento. La idea fundamental del m´etodo modificado es usar el m´etodo de los trapecios para integrar la ecuaci´on y � = f (x. y). entonces necesitamos un m´etodo num´erico para calcular la correspondiente yn+1 . yn+1 ) + f (xn . y(x)) ⇔ dy = f (x. y(x))dx � (f (x0 . tendremos h yn+1 = yn + (f (xn+1 . Tomaremos as´ı. llamado habitualmente M´etodo de Euler Modificado.1 M´ etodo de Euler Modificado Veremos a continuaci´on una variante del M´etodo de euler.66 TEMA 4 con α e y0 ambas positivas. si αh > 2. entonces la soluci´on num´erica es decreciente y positiva. m´as a´ un. entonces la magnitud de la soluci´on se va incrementando en cada paso (o sea resulta creciente en valor absoluto). x − 1]: � y1 � x1 � (x1 − x0 ) y = f (x. y0 ) + f (x1 . yn )) 2 Si la funci´on f es lineal en la variable y. 4. en el intervalo [x0 . y la soluci´on oscila.

5: y 1 = y 0 + h z0 = 1 .05zn − 0. zn ) = yn + h zn . zn+1 = zn + h g(tn . a ecuaciones de orden superior al primero. x. ´ METODOS ´ NUMERICOS EN EDO 67 Ejemplo 2: Tomemos ahora el siguiente problema de valor inicial basado en una ecuaci´on no lineal: 3 y � = −y 2 + 1 . yn . 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 .075 .15yn ) Y as´ı. Comencemos con el M´etodo de Euler aplicado a un sistema de dos ecuaciones de primer orden:  dx dt = f (t. y)   dy   dt = g(t.05z0 − 0. y(0) = 1 calcular y(1) e y � (1) utilizando el M´etodo de Euler con h = 0. yn ) Ejemplo: Dado el problema de valor inicial: y �� − 0. y. yn ) yn+1 = yn + h g(tn . y) a uno con tres variables (t. y pasamos por tanto de un problema de segundo orden en variables (t. z1 = z0 + h (0.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. en consecuencia.5 = 0. zn ) = yn + h (0. xn . y(0) = 10 El m´etodo requerir´a ahora la resoluci´on de: h� 3 3 � yn+1 = yn + −(yn+1 ) 2 − (yn ) 2 + 2 2 4.15y0 ) = −0. y � (0) = 0. para t1 = t0 + h = 0 + 0. xn . y. z) tendremos el sistema de ecuaciones de primer orden:  y� = z    z� = 0.15y  y(0) = 1     z(0) = 0 Las expresiones del m´etodo ser´an entonces: yn+1 = yn + h f (tn . x. yn . Si introducimos una nueva variable dependiente: z = y � .05 y � + 0.15 y = 0.5.05z − 0.

z2 = z1 + h (0. siendo extensible dicho planteamiento a otros m´etodos y por supuesto a otro tipo de sistemas. x0 + hk3 . x0 .68 TEMA 4 y para t2 = 1: y2 = y1 + h z1 = 0. x0 + k1 .15y1 ) = −0. 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 . y0 + l2 ) 2 2 2 h h h l3 = g(t0 + . plantearemos en un ejemplo la aplicaci´on de un m´etodo de Runge-Kutta de cuarto orden a un sistema de ecuaciones. x0 + k2 . y0 + hl3 ) . x0 + k1 . x0 = y0 = 0 h h x1 = x0 + (k1 + 2k2 + 2k3 + k4 ) . y0 + hl3 ) l4 = g(t0 + h. x0 + k2 . y1 = y0 + (l1 + 2l2 + 2l3 + l4 ) 6 6 k1 = f (t0 . y0 + l1 ) 2 2 2 h h h k3 = f (t0 + .05z1 − 0. x0 .15187 Finalmente. x0 + hk3 .96250 . y0 + l1 ) 2 2 2 h h h l2 = g(t0 + . y0 ) = −2x0 + y0 + 3 h h h k2 = f (t0 + . y0 ) = −4x0 + 3y0 + 6 l1 = g(t0 . y0 + l2 ) 2 2 2 k4 = f (t0 + h.