You are on page 1of 10

Prctica 7: Ecuaciones diferenciales.

Problemas de a valor inicial

1.

Introduccin. o
El objetivo de esta prctica es la resolucin de ecuaciones diferenciales de la forma a o y = dy = f (t, y) , dt (1)

con la condicin inicial y(t0 ) = y0 . Para resolver este problema vamos a emplear mtodos o e de Runge-Kutta y mtodos predictor-corrector. e

1.1.

Mtodos Runge-Kutta. e

En estos mtodos se divide el intervalo [t0 , tn ] en que se pretende resolver la ecuacin e o en n subintervalos [t0 , t1 ], [t1 , t2 ],...,[tn1 , tn ] de longitud idntica h. El mtodo nos proe e porciona aproximaciones yk a la solucin y(tk ) en cada punto tk mediante una expresin o o de la forma: yi+1 = yi + (ti , yi , h) h (2) La aproximacin ms sencilla se obtiene tomando = f (ti , yi ); es decir, la derivada y o a en el punto anterior (ti , yi ) , que es el llamado mtodo de Euler. Comparando (2) con e el desarrollo de Taylor para y en t = ti es fcil comprobar que el error de truncamiento a introducido en cada paso por la aproximacin (2) (error de truncamiento local) es de orden o h2 en el mtodo de Euler. En los mtodos de Runge-Kutta se generaliza el procedimiento e e anterior, tomando una funcin que conduce a un error local de orden predeterminado. o Por ejemplo, en los mtodos de Runge-Kutta de segundo orden se toma: e = a 1 k1 + a2 k2 con k1 = f (ti , yi ) k2 = f (ti + p1 h, yi + q11 k1 h) (4) (5) (3)

Donde los coecientes a1 , a2 , p1 , q11 se obtienen igualando la expresin (3) con un deo sarrollo de Taylor de segundo orden, lo que conduce a un error de truncamiento local de O(h3 ). De esta condicin se deducen tres ecuaciones que deben vericar los cuatro o coecientes indeterminados; por ello se han propuesto distintos mtodos que dieren en e 1

la condicin adicional introducida para determinar estos parmetros. De forma anloga, o a a en los mtodos de Runge-Kutta de cuarto orden se emplea la expresin: e o yi+1 = yi + (a1 k1 + a2 k2 + a3 k3 + a4 k4 ) h + O(h5 ) (6)

donde, como en el mtodo de segundo orden, ki son valores de la derivada f (t, y), evaluados e en puntos intermedios, (tp , yp ) cuyas posiciones dependen a su vez de parmetros que se a determinan igualando trmino a trmino con la serie de Taylor. En su forma ms habitual, e e a el algoritmo toma la forma: 1 yi+1 = yi + (k1 + 2k2 + 2k3 + k4 ) h + O(h5 ) 6 k1 = f (ti , yi ) k1 h h ) k2 = f (ti + , yi + 2 2 h k2 h k3 = f (ti + , yi + ) 2 2 k4 = f (ti + h, yi + k3 h) (7) (8) (9) (10) (11)

1.2.

Mtodos predictor-corrector. e

Consideramos como ejemplo el mtodo de Adams-Bashfort-Moulton que emplearemos e en esta prctica. La deduccin del algoritmo parte de la expresin: a o o
t+1

y(ti+1 ) = y(ti ) +
ti

f (t, y(t))dt

(12)

con ti+1 = t+h. A continuacin, la integral se aproxima sustituyendo f (t, y) por el polinoo mio de interpolacin de tercer grado P3 (t) que pasa por los puntos (ti3 , yi3 ), (ti2 , yi2 ), o (ti1 , yi1 ), (ti , yi ), que han sido calculados previamente. Integrando este polinomio anal ticamente se obtiene:
p yi+1 = yi +

h [55f (ti , yi ) 59f (ti1 , yi1 ) + 37f (ti2 , yi2 ) 9f (ti3 , yi3 )] 24

(13)

que se conoce como el valor predictor de Adams-Bashfort. A continuacin, la solucin se o o p o o mejora aadiendo el punto (tii+1 , yi+1 ) en la evaluacin de la integral de la ecuacin (12). n En concreto, se emplea ahora un nuevo polinomio de tercer grado que pasa por los puntos p (ti2 , yi2 ), (ti1 , yi1 ), (ti , yi ), (ti+1 , yi+1 ). Integrando este polinomio se obtiene: yi+1 = yi + h p 9f (ti+1 , yi+1 ) + 19f (ti , yi ) 5f (ti1 , yi1 ) + f (ti2 , yi2 ) , 24 (14)

que es conocido como el valor corrector de Adams-Moulton 2

2.

Aplicacin: resolucin de una ecuacin diferencial o o o de primer orden

Como ejemplo vamos a aplicar los mtodos de Runge-Kutta y Adams-Bashfort-Moulton e para resolver la ecuacin diferencial de primer orden: o y = 1 + y2 (15)

con la condicin inicial y(0) = 0. Los resultados pueden comprobarse por comparacin o o con la solucin anal o tica y = tg(t). En esta prctica, disponemos de un programa RunKut.m para resolver ecuaciones a diferenciales ordinarias empleando el mtodo de Runge-Kutta. Este se ejecuta en la forma: e RunKut(F TI, TF, H, YI, N) donde F es el nombre de la funcin en la que se ha programado la ecuacin diferencial a o o resolver. TI, TF son los puntos inicial y nal del intervalo en el que se va a resolver la ecuacin. o H es el paso (h en las ecs. (2) - (11)). YI es el valor de la variable independiente en el punto inicial TI. N es orden del mtodo Runge-Kutta. e Para comenzar, abrir el archivo RunKut.m y anotar los valores de los parmetros a 1 , a a2 , p1 , q11 que se emplean en el mtodo de segundo orden (primera pregunta de la hoja e de resultados). Fijarse que en el programa la variable independiente se llama x, mientras que en las ecuaciones anteriores la hemos denominado t. En nuestro ejemplo, el archivo ejemp1.m contiene la funcin ejemp1(t,y), en la que o hemos programado la funcin y (t, y) de la ecuacin (15). Comenzamos por resolver la o o ecuacin diferencial empleando un paso h = 0,1 y el mtodo de segundo orden: o e [t12, yrk2]=RunKut(ejemp1, 0, 1.2, 0.1, 0, 2) los vectores t12, yrk2 contienen respectivamente los valores (t i ) de la variable independiente y de la funcin yi , obtenidos resolviendo la ecuacin diferencial en estos puntos. o o De la misma forma, podemos aplicar el mtodo de cuarto orden con el mismo paso, e escribiendo: 3

[t12, yrk4]=RunKut(ejemp1, 0, 1.2, 0.1, 0, 4)

Comprobamos el resultado, representando la diferencia con la solucin exacta: o yex= tan(t12) plot (t12, yrk2, or, t12, yex, b) plot (t12, yrk4, or, t12, yex, b) drk2=yrk2 - yex; drk4=yrk4 - yex; plot (t12, drk2,b, t12, drk4,r) En esta prctica disponemos asimismo de un programa para resolver ecuaciones dia ferenciales empleando el mtodo de Adams-Bashfort-Moulton, contenido en el archivo e AdMou.m. Abrir dicho archivo, comprobar que se han programado las ecuaciones (13) y (14) y completar la primera pregunta de la la hoja de resultados. La forma de ejecutar el programa es similar a la del mtodo Runge-Kutta. Para el ejemplo concreto que estamos e considerando escribimos: [t12, yam, yp]=AdMou (ejemp1, 0, 1.2, 0.1, 0) Los resultados son ahora tres vectores: 1. t12 son los valores de la variable independiente. 2. yam es el resultado dado por la ecuacin (14) o 3. yp es el valor del predictor Adams-Bashfort de la ecuacin (13). o Podemos comparar los distintos resultados de la forma siguiente: dpam = yp - yex; dam = yam-yex; plot (t12, drk2,ob t12, drk4, b, t12, dam,r, t12, dpam, or )

3.

Sistemas de ecuaciones diferenciales.

Los mtodos antes explicados se generalizan sin dicultad para resolver sistemas de e ecuaciones diferenciales de la forma: yp = f (t, y1 , y2 , ...yN ) ; p = 1, 2, ..., N 4 (16)

con la condicin inicial o yp (t0 ) = yp0 , ; p = 1, 2, ..., N (17) En particular, el programa RunKut que hemos empleado permite resolver sistemas de ecuaciones diferenciales ordinarias sin ms que generalizar la funcin F.m para que evale a o u las N derivadas precisas y recordando que el valor inicial YI debe ser ahora un vector con N componentes. Veamos un ejemplo: El movimiento de un pndulo viene determinado por e las dos ecuaciones: dy1 = y2 dt dy2 = 15 sen(y1 ) dt (18) (19)

siendo y1 el desplazamiento angular e y2 la velocidad angular. Estas ecuaciones se han escrito en la function pendulo.m. Supongamos un desplazamiento inicial y 1 (t0 ) = /4 con velocidad inicial nula. El procedimiento para resolver este problema, empleando una mtodo Runge-Kutta de cuarto orden, es el siguiente: e y0=[pi/4 0]; ti=0; tf=5; h=0.01; [t,y]=RunKut(pendulo, ti, tf, h, y0, 4); plot (t, y) Tambin puede ser util representar velocidad frente a posicin: e o plot (y1, y2)

Para desplazamientos angulares pequeos puede emplearse la aproximacin lineal: n o dy1 = y2 dt dy2 = 15 y1 dt (20) (21)

Modicar el programa pendulo.m para aplicar esta aproximacin y comparar las soluo ciones obtenidas con las del modelo original (pregunta 3 de la hoja de resultados). En muchas ocasiones es deseable emplear mtodos con paso variable. Entre estos mtoe e dos, mencionaremos el de Runge-Kutta Fehlberg, que emplea frmulas de Runge-Kutta o de cuarto y quinto ordenes para estimar el error de truncacin local, que a continuacin se o o 5

usa para aumentar o disminuir el paso a lo largo de la integracin. Este algoritmo es la bao se de la instruccin MATLAB ode45. En su forma ms sencilla, la sintaxis del comando es o a [t, y] = ode45 (F, [TI,TF], YI) donde los argumentos F, TI, TF, YI tienen el mismo signicado que los correspondientes para el programa RunKut. Comprobamos el funcionamiento del comando escribiendo: ode45 (pendulo, [ti,tf ], y0) Veremos que la solucin se presenta grcamente. Podemos observar en esta grca que o a a el paso de integracin aumenta al comienzo de la integracin. Los resultados numricos o o e se obtienen escribiendo: [t, y] = ode45 (pendulo, [ti,tf ], y0) En los mtodos de predictor-corrector puede adaptarse el paso a lo largo de la integrae cin empleando la diferencia entre los valores predictor y corrector como estimacin del o o error. En particular, un algoritmo Adams-Bashfort-Moulton con paso variable es la base del comando MATLAB ode113. En el ejemplo actual escribimos: ode113 (pendulo, [ti,tf ], y0)

4.

Aplicacin: Reaccin reversible exotrmica en un o o e reactor catal tico.

Se lleva a cabo la reaccin en fase gas 2A o C en el reactor catal tico de la gura. A lo largo del reactor hay una caida de presin y un intercambiador de calor rodea el reactor. o La conversin de A , denominada X y la temperatura T son funciones de la posicin en o o el lecho catal tico, indicada por la masa de catalizador W .

T F 0 T
0

q X T

Llamando y a la caida de presin a lo largo del reactor (y = P/P0 ), el sistema de o ecuaciones diferenciales que debemos resolver tiene la forma: dX = f1 (W, X, y, T ) (22) dW dy = f2 (W, X, y, T ) (23) dW dT = f3 (W, X, y, T ) (24) dW (25) Las expresiones de las funciones f1 , f2 , f3 son las siguientes: 1. Llamando FA0 al ujo incidente de A, se cumple: dX = rA FA0 dW donde la velocidad de esta reaccin catal o tica es: Cc 2 rA = k CA KC

(26)

(27)

La constante de velocidad k y la constante de equilibrio KC cumplen las ecuaciones de Arrhenius y vant Ho: k = k(T = 450K) exp KC 1 1 EA R 450 T 1 1 HR = KC (T = 450K) exp R 450 T 7 (28) (29)

y las concentraciones se expresan como funciones de X, y = P/P0 , T en la forma: CA = CA0 CC = 2. La caida de presin es: o dy (1 0,5X) T = dW 2y T0 3. Por ultimo: U (T T ) + rA (HR ) dT = dW FA0 CP A (32) 1X T0 y 1 0,5X T T0 0,5CA0 X y 1 0,5X T (30) (31)

(33)

La resolucin del sistema de ecuaciones diferenciales (22-24) se efecta mediante el proo u grama packbed.m. Este programa lee los datos FA0 y T , integra el sistema de tres ecuaciones diferenciales (usa la rutina ode45) y representa grcamente los resultados a (X, T , P/P0 ) en funcin de W . Las ecuaciones(22-24) se han programando en la reaco cal.m, donde se dan los valores para un reactor concreto y una determinada reaccin. o Resolver el problema escribiendo: packbed El programa pedir los datos FA0 y T . Tomar FA0 = 5, T = 300. Repetir con FA0 = 10 a y T = 500, 700 y reponder la pregunta 4 de la hoja de resultados.

5.

Resultados.
NOMBRE Y APELLIDOS:

1. Escribir los valores de los parmetros a1 , a2 , p1 y q11 empleados en el mtodo de a e Runge-Kutta de segundo order. Qu mtodo se ha empleado para obtener los prie e meros puntos en el programa AdMou.m?

2. Explicar la diferencia entre mtodos de un slo paso y mtodos multipaso y entre e o e mtodos con paso jo y variable. e

3. Comentar la validez del modelo lineal del pndulo de la seccin 3 para condiciones e o iniciales y1 (0) = 0,1, y1 (0) = /4

4. Deducir de los resultados si se emplea un nmero mayor de pasos en la integracin u o Runge-Kutta Fehlberg (comando ode45) o en el mtodo Adams-Bashfort-Moulton e con paso variable (comando ode113) para resolver el problema de la seccin 3. o

5. De los resultados numricos, deducir si la conversin X es ms sensible al ujo e o a incidente o a la temperatura. Con qu valores de estos parmetros se alcanza un e a valor ms alto de X para W =20kg? a

10

You might also like