Está en la página 1de 10

Tema 4

Mtodos Numricos en e e Ecuaciones Diferenciales Ordinarias


4.1 Introduccin o

Estudiaremos en este Tema algunos mtodos numricos para resolver problemas de valor e e inicial en ecuaciones diferenciales ordinarias y en sistemas de e.d.o.

4.2

Mtodo de Euler e

El Mtodo de Euler o de las Tangentes constituye el primer y ms sencillo ejemplo de e a mtodo numrico para la resolucin de un problema de valor inicial: e e o y = f (x, y) , y(x0 ) = y0

donde suponemos adems que se verican las hiptesis del Teorema de Picard1 , y en a o consecuencia existe solucin unica para el problema. o Interpretando la e.d.o. y = f (x, y) como un campo de direcciones en el plano x y y la condicin inicial y(x0 ) = y0 como un punto (x0 , y0 ) de dicho plano, podemos o aproximar la funcin solucin y(x) por medio de la recta tangente a la misma que pasa o o por ese punto: y(x) y0 + f (x0 , y0 )(x x0 ) =
Consideraremos en general que la funcin f (x, y) es diferenciable en un entorno del punto (x0 , y0 ). Si o bien es cierto que se trata de una condicin ms restrictiva de lo estrictamente necesario, en la prctica o a a trabajaremos siempre con funciones de ese tipo.
1

59

60

TEMA 4

donde se ha utilizado que la pendiente de dicha tangente es: m = y (x0 ) y, en consecuencia: m = f (x0 , y0 ). Calculamos as de manera aproximada el valor de la solucin y en el punto de abscisa o x1 como: y(x1 ) y1 = y0 + f (x0 , y0 )(x1 x0 ) = y con este punto (aproximado) ya calculado, podemos repetir el mtodo para obtener e otro punto aproximado (x2 , y2 ) de la forma: y(x2 ) y2 = y1 + f (x1 , y1 )(x2 x1 ) = y as sucesivamente. Es habitual en este mtodo tomar abscisas equiespaciadas, es decir, calcular la e solucin aproximada en puntos de la forma: xn = xn1 + h = x0 + nh, siendo h el o paso del mtodo. De esta forma se obtienen las frmulas que nos determinan la solucin e o o aproximada en la forma: xn = xn1 + h; yn = yn1 + f (xn1 , yn1 ) h

Desde el punto de vista geomtrico, tenemos en denitiva que el Mtodo de Euler e e aproxima a la funcin solucin por medio de una l o o nea poligonal, la aproximacin ser o a tanto peor cuanto mayor sea en nmero de pasos, es decir, cuanto ms lejos nos u a encontremos del punto inicial (x0 , y0 ). Por otro lado, el error ser evidentemente tanto a mayor cuanto ms grande sea el paso del mtodo, h. a e Ejemplo: Resolveremos el problema de valor inicial
y =x y y(1) = 4 por el mtodo de Euler con h = 0.1 para los puntos x = 1.1, 1.2, 1.3, 1.4 y 1.5. e En este problema tenemos h = 0.1, (x0 , y0 ) = (1, 4) y la funcin f (x, y) es: f (x, y) = x y. o Por tanto: yn = yn1 + xn1 yn1 h Dado que el problema se puede resolver tambin de forma exacta, presentamos en la tabla y e grca siguientes los resultados: a

i 0 1 2 3 4 5

xi 1 1.1 1.2 1.3 1.4 1.5

yi 4 4.2 4.42543 4.67787 4.95904 5.27081

Sol. Exacta 4 4.21276 4.45210 4.71976 5.01760 5.34766

5.2 5 4.8 4.6 4.4 4.2 1.1 1.2 1.3 1.4 1.5

METODOS NUMERICOS EN EDO

61

4.3

Mtodos de Taylor e

El Mtodo de Euler que acabamos de describir no es ms que un caso particular de los e a mtodos de Taylor, que consisten de manera general en aproximar la solucin por su e o polinomio de Taylor de un orden determinado. Partiendo por tanto del P.V.I.: y = f (x, y) y(x0 ) = y0 tal que presenta solucin unica y(x) en un entorno de x0 (solucin que suponemos adems o o a derivable n veces en dicho entorno), aproximaremos dicha funcin por su polinomio de o Taylor de orden N : y(x) 1 1 y (N ) y(x0 )+y (x0 )(xx0 )+ y (x0 )(xx0 )2 + y (x0 )(xx0 )3 +. . .+ (xx0 )N 2 3! N!

y el error de aproximacin viene determinado por el resto de orden N + 1, de manera o que el error es proporcional a (x x0 )N +1 . Si jamos una sucesin de puntos equiespaciados : x0 , x1 , x2 , . . ., con xn+1 = xn + h, o y denominamos (de manera similar a lo hecho en la seccin anterior) y0 , y1 , . . . a los o 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 mtodo necesitamos conocer las derivadas de la solucin (recordee o mos que desconocida), pero teniendo en cuenta la propia ecuacin diferencial: o y (xn ) = f (xn , yn ) mientras que y (xn ) puede ser calculada derivando: y = d f f dy f f f (x, y) = + = + f (x, y) dx x y dx x y

y as sucesivamente. Es evidente que el mtodo de Taylor de orden uno no es ms que el Mtodo de Euler e a e antes descrito. Analicemos con un ejemplo el Mtodo de Taylor de orden dos: e Ejemplo: Apliquemos el mtodo de Taylor de orden dos a la ecuacin y = cos(xy), con la e o condicin inicial: y(0) = 1. La expresin a considerar ser: o o a
y(xn+1 )
2

1 yn+1 = yn + y (xn )h + y (xn )h2 2

En general se llama error local al cometido en cada uno de los pasos de un mtodo numrico. e e El error acumulado tras n pasos recibe el nombre de error global y si el local es proporcional a hp , entonces el global ser proporcional a hp1 . a

62
tendremos entonces: y (xn ) = f (x, yn ) = cos(xn yn ) y = d cos(xy) = sen(xy) y sen(xy) y = sen(xy)(y + cos(xy)) dx

TEMA 4

Y as los primeros pasos de la resolucin sern (tomaremos h = 0.5): o a x1 y1 = x0 + h = 0.5 = y0 + h cos(x0 y0 ) + = 1 + 0.5 cos 0 + x2 y2 = x1 + h = 1 h2 ( sen(x1 y1 )(y1 + cos(x1 y1 ))) = 2 0.52 ( sen(0.5 1.5)(1.5 + cos(0.5 1.5))) = 1.67569 = 1.5 + 0.5 cos(0.5 1.5) + 2 = y1 + h cos(x1 y1 ) + h2 ( sen(x0 y0 )(y0 + cos(x0 y0 ))) = 2

0.52 ( sen 0(1 + cos(0))) = 1.5 2

y as sucesivamente. El error local en esta aproximacin ser proporcional a h3 y por tanto el o a error global lo ser a h2 . a

4.4

Mtodos de Runge-Kutta e

La idea general de los Mtodos de Runge-Kutta es sustituir el Problema de Valor Inicial: e y = f (x, y) y(x0 ) = y0 por la ecuacin integral equivalente: o
y x x

dy =
y0 x0

f (x, y(x)) dx y = y0 +

f (x, y(x)) dx
x0

para proceder a aproximar esta ultima integral mediante un mtodo numrico adecuado e e (recordemos que y(x) es desconocida). Si nuevamente planteamos el problema paso a paso tendremos:
xn+1

yn+1 = yn +

f (x, y(x)) dx
xn

4.4.1

Mtodo de Runge-Kutta de segundo orden e

La primera opcin que podemos aplicar es integrar mediante el mtodo de los trapecios, o e es decir tomando:
xn+1

f (x, y(x)) dx
xn

1 h (f (xn , yn ) + f (xn+1 , yn+1 )) 2

METODOS NUMERICOS EN EDO

63

Al ser desconocida yn+1 en la expresin anterior, lo aproximaremos por yn+1 , donde o yn+1 es la estimacin de yn+1 que resultar aplicando el mtodo de Euler. Tendremos o a e as : xn+1 1 f (x, y(x)) dx h (f (xn , yn ) + f (xn+1 , yn+1 )) 2 xn con yn+1 = yn + h f (xn , yn ) y llegaremos a la expresin del mtodo: o e yn+1 = yn + h (f (xn , yn ) + f (xn+1 , yn+1 )) 2

Lo normal es presentar el mtodo con las expresiones siguientes: e k1 = h f (xn , yn ) ; k2 = h f (xn+1 , yn + k1 )

1 (k1 + k2 ) 2 Comparando este mtodo con el mtodo de Taylor de segundo orden, es posible e e demostrar que el error local es tambin proporcional a h3 y, por tanto, el global lo es a e 2. h yn+1 = yn +

4.4.2

Mtodo de Runge-Kutta de tercer orden e

Se trata de la misma idea pero integrando por el Mtodo de Simpson, entonces: e


xn+1

f (x, y(x)) dx
xn

h 2

f (xn , yn ) + 4f (xn+ 1 , yn+ 1 ) + f (xn+1 , yn+1 )


2 2

donde yn+1 e yn+ 1 son estimaciones, puesto que yn+1 e yn+ 1 no son conocidos. 2 2 La estimacin de yn+ 1 se hace por el mtodo de Euler: o e
2

yn+ 1 = yn +
2

h f (xn , yn ) 2

mientras que la estimacin de yn+1 se pueden considerar varias opciones, por ejemplo: o yn+1 = yn + h f (xn , yn ) es decir el Mtodo de Euler de nuevo, o por ejemplo: e yn+1 = yn + h f (xn+ 1 , yn+ 1 )
2 2

que consiste en variar el Mtodo de Euler tomando la pendiente de la recta tangente en e el punto medio en vez de la tangente en el punto propiamente dicha. Finalmente, lo ms a

64 usual es tomar una combinacin de las dos opciones3 : o yn+1 = yn + h 2 f (xn+ 1 , yn+ 1 ) f (xn , yn )
2 2

TEMA 4

Podemos entonces resumir el Mtodo de Runge-Kutta de tercer orden en la forma: e 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 h4 Finalmente, aadir que el error local en el Mtodo de tercer orden es proporcional a n e 3. y en consecuencia el global lo es a h

4.4.3

Mtodo de Runge-Kutta de cuarto orden e

Los Mtodos de Runge-Kutta de cuarto orden se deducen de una manera similar a la e expuesta en la seccin anterior para el caso de tercer orden. Ahora se introduce un o nuevo paso intermedio en la evaluacin de la derivada. Una vez ms se presentan varias o a opciones en la evaluacin y es posible ajustar de tal manera que se garantice el error o 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 Mtodo e de cuarto orden ms habital es el determinado por las frmulas siguientes a o

k1 = h f (xn , yn ) k1 h 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 mtodo de tercer orden est basado en el mtodo de interacin de e a e o 5 y h4 respectiSimpson. Los errores local y global son en este caso proporcionales a h vamente.
El razonamiento que lleva a tomar esta combinacin concreta, que no reproduciremos aqu se basa o , en tomar una combinacin genrica: o e yn+1 = yn + h f (xn , yn ) + (1 )f (xn+ 1 , yn+ 1 )
2 2

y optimizar el valor de imponiendo exactitud en la frmula de Taylor al tercer orden, ello lleva a que o necesariamente = 1.

METODOS NUMERICOS EN EDO

65

Ejemplo: Resolver por un mtodo de Runge-Kutta de cuarto orden el problema de valor inicial: e
y = x2 3y 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 0.1 y1 = 1 + (k1 + 2k2 + 2k3 + k4 ) 6 con k1 = f (x0 , y0 ) = 02 3 1 = 3 k2 = f (x0 + k3 = f (x0 + h h 0.1 2 0.1 , y0 + k1 ) = (0 + ) 3(1 + (3)) = 2.5475 2 2 2 2 ; y(0) = 1

h h 0.1 2 0.1 , y0 + k2 ) = (0 + ) 3(1 + (2.5475)) = 2.61538 2 2 2 2

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 anloga se determinan los puntos: a (x2 , y2 ) = (0.2, 0.551151) La solucin exacta es: o y= de manera que: y(0.1) = 0.741127 ; y(0.2) = 0.551121 ; y(0.3) = 0.413860 ; y(0.4) = 0.317402 ; (x3 , y3 ) = (0.3, 0.413894) ; 25 3x 1 e + 27 3 2 2 x2 x + 3 9 (x4 , y4 ) = (0.4, 0.317435)

4.5

Estabilidad

Para nalizar esta seccin, analizaremos el comportamiento de Mtodo de Euler en o e algunas situaciones, que motivarn la necesidad de introducir mtodos ms precisos. a e a 2 y global en h), lo cual no es en Adems del error propio del mtodo (local en h a e principio excesivamente grave si es posible reducir h a voluntad (aunque ello conlleva errores considerables de redondeo y una sobrecarga en el tiempo de computacin), existe o un problema serio asociado al mtodo y es su inestabilidad. Veamos el siguiente ejemplo: e Consideremos la ecuacin de Malthus con constante negativa: o y = y ; y(0) = y0

66 con e y0 ambas positivas. La solucin exacta es sencilla: o y(t) = y0 et El Mtodo de Euler para este caso conduce a la expresin: e o yn+1 = yn yn h = (1 h) yn

TEMA 4

Es fcil comprobar que si h < 1, entonces la solucin numrica es decreciente y positiva, a o e como ocurre en la solucin real exacta, pero si h > 1, entonces el signo de la solucin o o se va alternando y, ms an, si h > 2, entonces la magnitud de la solucin se va a u o incrementando en cada paso (o sea resulta creciente en valor absoluto), y la solucin o oscila. Este es un comportamiento t pico de lo que se conoce en Matemticas como a inestabilidad del mtodo. e

4.5.1

Mtodo de Euler Modicado e

Veremos a continuacin una variante del Mtodo de euler, llamado habitualmente Mtodo o e e de Euler Modicado. Se trata de un mtodo ms preciso que el de Euler y adems ms e a a a estable. La idea fundamental del mtodo modicado es usar el mtodo de los trapecios para e e integrar la ecuacin y = f (x, y). Tomaremos as en el intervalo [x0 , x 1]: o ,
y1 x1

y = f (x, y(x))
y0

dy =
x0

f (x, y(x))dx

(x1 x0 ) (f (x0 , y0 ) + f (x1 , y1 )) 2

Repitiendo el razonamiento, tendremos yn+1 = yn + h (f (xn+1 , yn+1 ) + f (xn , yn )) 2

Si la funcin f es lineal en la variable y, entonces es posible despejar fcilmente yn+1 o a en la ecuacin anterior. Si no es lineal, entonces necesitamos un mtodo numrico para o e e calcular la correspondiente yn+1 , t picamente se utiliza el mtodo de las sustituciones e sucesivas. Veamos un par de ejemplos para aclarar estas ideas: Ejemplo 1: Si consideramos la ecuacin lineal: o
y = ay + cos x entonces: yn+1 = yn + 1+ h (ayn+1 + cos xn+1 + ayn + cos xn ) yn+1 = 2 1
ah 2 ah 2

h 2

ah 2

(cos xn+1 + cos xn ))

METODOS NUMERICOS EN EDO

67

Ejemplo 2: Tomemos ahora el siguiente problema de valor inicial basado en una ecuacin no o
lineal: y = y 2 + 1 El mtodo requerir ahora la resolucin de: e a o yn+1 = yn +
3 3 h (yn+1 ) 2 (yn ) 2 + 2 2 3

y(0) = 10

4.6

Mtodo Numricos para Sistemas e e

Los mtodos de Euler y de Runge-Kutta que hemos planteado se aplican de manera e sencilla a sistemas de ecuaciones de primer orden, y, en consecuencia, a ecuaciones de orden superior al primero. Comencemos con el Mtodo de Euler aplicado a un sistema de dos ecuaciones de e primer orden: dx = f (t, x, y) dt dy = g(t, x, y) dt x(0) = x0 y(0) = y0 la extensin natural del mtodo ya expuesto nos conduce a las expresiones: o e 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 Mtodo de Euler con h = 0.5. e 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 mtodo sern entonces: e a 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

68
y para t2 = 1: y2 = y1 + h z1 = 0.96250 , z2 = z1 + h (0.05z1 0.15y1 ) = 0.15187

TEMA 4

Finalmente, plantearemos en un ejemplo la aplicacin de un mtodo de Runge-Kutta o e de cuarto orden a un sistema de ecuaciones, siendo extensible dicho planteamiento a otros mtodos y por supuesto a otro tipo de sistemas. e Ejemplo: Planteemos la resolucin del sistema: o
dx dt dy dx

= =

4x + 3y + 6 2x + y + 3

con las condiciones iniciales: x(0) = y(0) = 0 por un mtodo de Runge-Kutta de cuarto orden: e t0 = 0 x1 = x0 + , x0 = y0 = 0

h h (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 , 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 ) k2 = f (t0 + l4 = g(t0 + h, x0 + hk3 , y0 + hl3 )