12
etodos de Runge-Kutta Luis Eduardo Bermudez October 2014 1. Introducci´ on Los m´ etodos de Runge-Kutta (RK) se utilizan para resolver problemas de ecuaciones diferenciales ordinarias con valor inicial. Consideremos una ecuaci´ on diferencial ordinaria y 0 = f (x, y), y(0) = y 0 (1) Para calcular y n+1 en x n+1 = x n +h, dado un valor de y n , in- tegramos la ecuaci´ on anterior en el intervalo [x n ,x n+1 ] y n+1 = y n + Z xn+1 xn f (x, y)dt (2) La solucion de la ecuacion diferecial 1 por los m´ etodos de Runge-Kutta se ob- tienen conociendo y n e integrando el segundo termino de la ecuaci´ on 2 con alg´ un m´ etodo num´ erico. Los m´ etodos de RK logran la exactitud del procedimiento de la serie de Tay- lor sin necesitar el c´ alculo de derivadas de orden superior[1]. Existen muchas variantes, pero todas tienen la forma generalizada de la ecuacion 3 y i+1 = y i + φ(x i ,y i ,h)h (3) donde φ(x i ,y i ,h)h se conoce como funci´ on incremento, la cual puede inter- pretarse como una pendiente representativa del intervalo. La funci´ on incremento se escribe en forma general como φ = a 1 k 1 + a 2 k 2 + ... + a n k n (4) donde las a son las constantes y las k son pendientes k 1 = f (x i ,y i ) (5a) k 2 = f (x i + p 1 h, y i + q 11 k 1 h) (5b) k 3 = f (x i + p 2 h, y i + q 21 k 1 h + q 22 k 2 h) (5c) 1

M Todos de Runge Kutta

Embed Size (px)

DESCRIPTION

runge kuta

Citation preview

Page 1: M Todos de Runge Kutta

Metodos de Runge-Kutta

Luis Eduardo Bermudez

October 2014

1. Introduccion

Los metodos de Runge-Kutta (RK) se utilizan para resolver problemas deecuaciones diferenciales ordinarias con valor inicial. Consideremos una ecuaciondiferencial ordinaria

y′ = f(x, y), y(0) = y0 (1)

Para calcular yn+1 en xn+1 = xn+h, dado un valor de yn , in-tegramos la ecuacion anterior en el intervalo [xn, xn+1]

yn+1 = yn +

∫ xn+1

xn

f(x, y)dt (2)

La solucion de la ecuacion diferecial 1 por los metodos de Runge-Kutta se ob-tienen conociendo yn e integrando el segundo termino de la ecuacion 2 conalgun metodo numerico.Los metodos de RK logran la exactitud del procedimiento de la serie de Tay-lor sin necesitar el calculo de derivadas de orden superior[1]. Existen muchasvariantes, pero todas tienen la forma generalizada de la ecuacion 3

yi+1 = yi + φ(xi, yi, h)h (3)

donde φ(xi, yi, h)h se conoce como funcion incremento, la cual puede inter-pretarse como una pendiente representativa del intervalo. La funcion incrementose escribe en forma general como

φ = a1k1 + a2k2 + ...+ ankn (4)

donde las a son las constantes y las k son pendientes

k1 = f(xi, yi) (5a)

k2 = f(xi + p1h, yi + q11k1h) (5b)

k3 = f(xi + p2h, yi + q21k1h+ q22k2h) (5c)

1

Page 2: M Todos de Runge Kutta

.

.

.

ki = f(xi + p2h, yi +

i−1∑j=1

qijkjh), i = 2, 3, ..., n (5d)

.

.

.

kn = f(xi + pn−1h, yi + qn−1,1k1h+ qn−1,2k2h+ ...+ qn−1,n−1kn−1h) (5e)

Es posible tener varios tipos de metodos de RK empleando diferentes numerosde terminos representados por n en la funcion incremento. Por ejemplo el meto-do RK de orden 1 es decir n = 1, es el metodo de Euler. En los metodos de RKde segundo orden usan la funcion incremento con dos terminos n = 2, en estecaso seran exactos si la solucion de la ED es cuadratica.Existen muchas variantes, pero todas tienen la forma generalizada de la ecua-cion 3. Observe que k es una relacion de recurrencia, es decir k1 aparecen en laecuacion k2, la cual aparece en la ecuacion k3 , etc. Esta recurrencia vuelve efi-ciente a los metodos de RK par calculos en computadora, aunque no garantizanla convergencia hacia la solucion verdadera[2].Una vez se escoge el orden n, los valores de a, p y q se obtienen igualando laecuacion 3 con la expansion de la serie de Taylor hasta el termino de segundoorden y desarrollando las ecuaciones algebraicas resultantes.

2. Metodos de Runge-Kutta de segundo orden

El metodo de Runge-Kutta de segundo orden (RK2) simula la precision delmetodo de la serie de Taylor de orden n = 2 [2]. La version de segundo ordende la ecuacion general en 3 es:

yi+1 = yi + (a1k1 + a2k2)h (6)

donde

k1 = f(xi, yi) (7a)

k2 = f(xi + p1h, yi + q11k1h) (7b)

Para usar la ecuacion 6 debemos determinar los valores de a1, a2, p1 y q11.Para ello recordamos la serie de Taylor de orden 2 para yi+1 en terminos de yi.

yi+1 = yi + f(xi, yi)h+f ′(xi, yi)h

2

2(8)

2

Page 3: M Todos de Runge Kutta

donde f(xi, yi) debe determinarse por derivacion usando la regla de la cadenapara una funcion de dos variables una dependiente de la otra.

f ′(xi, yi) =∂f(xi, yi)

∂x+∂f(xi, yi)

∂y.dy

dx(9)

Sustituimos la ecuacion 9 en 8 y obtenemos

yi+1 = yi + f(xi, yi)h+

(∂f

∂x+∂f

∂y.dy

dx

)h2

2(10)

La estrategia basica de los metodos de RK es el uso de manipulaciones algebrai-cas para obtener los valores de a1, a2, p1 y q11 que hacen equivalentes lasecuaciones 6 y 10. Usamos una serie de Taylor una funcion de dos variables deorden 1 para expandir la ecuacion 7b.

g(x+ r, y + s) = g(x, y) + r∂g

∂x+ s

∂g

∂y+ ... (11)

Si aplicamos este metodo en 11 para expandir la ecuacion 7b obtenemos

f(xi + p1h, yi + q11k1h) = f(xi, yi) + p1h∂f

∂x+ q11k1h

∂f

∂y+O(h2) (12)

la ecuacion 12 y la ecuacion 7a se sustituyen en la ecuacion 6 ası:

yi+1 = yi+a1hf(xi, yi)+a2hf(xi, yi)+a2p1h2 ∂f

∂x+a2q11h

2f(xi, yi)∂f

∂y+O(h3)

(13)

Agrupando terminos y factorizando h

yi+1 = yi+[a1f(xi, yi) + a2f(xi, yi)]h+

[a2p1

∂f

∂x+ a2q11f(xi, yi)

∂f

∂y

]h2+O(h3)

(14)

Ahora comparamos terminos comunes en las ecuaciones 13 y 10

f(xi, yi)h = [a1f(xi, yi) + a2f(xi, yi)]h (15a)

a1 = 1 − a2 (15b)

∂f

∂x

(h2

2

)= a2p1

∂f

∂xh2 (15c)

a2p1 =1

2(15d)

3

Page 4: M Todos de Runge Kutta

(∂f

∂y.dy

dx

)h2

2= a2q11f(xi, yi)

∂f

∂y

(h2)

(15e)

a2q11 =1

2(15f)

El sistema de tres ecuaciones lineales tiene cuatro incognitas, por lo tantono existe un conjunto unico de constantes que satisfagan las ecuaciones 15b,15dy 15f.

a1 = 1 − a2 (16)

p1 = q11 =1

2a2(17)

Debido a que podemos elegir cualquier valor para a2 existe un numero infinitode metodos de RK2.

2.1. Metodo de Heun con un solo corrector a2 =12

Si suponemos que a2 es 12 de las ecuaciones 16 y 17 puede obtenerse a1 = 12

y p1 = q11 = 1. Estos parametros al sustituirse en la ecuacion 6 obtenemos

yi+1 = yi +

(1

2k1 +

1

2k1

)h (18)

donde

k1 = f(xi, yi) (19a)

k2 = f(xi + h, yi + k1h) (19b)

Obeserve que k1 es la pendiente al inicio del intervalo y que k2 es la pendienteal final del intervalo, igual que en el metodo del trapecio.

4

Page 5: M Todos de Runge Kutta

Figura 2 Metodo de Heun. a) Predictor y b) Corrector.

2.2. Metodo del punto medio con a2 = 1

Si suponemos que a2 es 1 de las ecuaciones 16 y 17 puede obtenerse a1 = 0y p1 = q11 = 12 y la ecuacion 6 se convierte en:

yi+1 = yi + k2h (20)

donde

k1 = f(xi, yi) (21a)

k2 = f(xi +1

2h, yi +

1

2k1h) (21b)

Este es el metodo del punto medio o tambien conocido como metodo de Eulermejorado.

2.3. Metodo de Ralston a2 = 2/3

Raslton y Rabinowitz (1978) determinaron que al selecionar a2 = 2/3 seobtiene un mınimo de error de truncamiento para los algoritmos RK2. Con

5

Page 6: M Todos de Runge Kutta

a2 = 2/3 tenemos que a1 = 1/3 y p1 = q11 = 3/4, ası que:

yi+1 = yi +

(1

3k1 +

2

3k2

)h (22)

k1 = f(xi, yi) (23a)

k2 = f

(xi +

3

4h, yi +

3

4k1h

)(23b)

3. Metodos de Runge-Kutta de tercer orden (RK3)

Cuando la EDO esta en funcion solo de x, este metodo de tercer orden puedeobtenerse usando la regla de Simpson 1/3.

yi+1 = yi +1

6(k1 + k2 + k3)h (24)

donde

k1 = f(xi, yi) (25a)

k2 = f

(xi +

1

2h, yi +

1

2k1h

)(25b)

k3 = f(xi + h, yi − k1h+ 2k2h) (25c)

Los metodos de RK3 tiene error local y global deO(h4) yO(h3), respectivamentey dan resultados exactos cuando la solucion es cubica.

4. Metodo de Runge-Kutta de cuarto orden (RK4)

la deduccion del metodo de RK4 se obtiene de forma analoga al de tercerorden, excepto que se utiliza un paso intermedio adicional para evaluar la de-rivada. Este metodo tiene una precision hasta el termino de cuarto orden deldesarrollo de Taylor por lo que el error local o de truncamiento es proporcionalh5.A continuacion se presentan las dos versiones del metodo de RK4 mas utilizadas.La primera version se basa en la regla de 1/3 de Simpson y se escribe ası:

yi+1 = yi +1

6(k1 + 2k2 + 2k3 + k4)h (26)

k1 = hf(xi, yi) (27a)

k2 = hf(xi + 1/2, yi + k1/2) (27b)

k3 = hf(xi + 1/2, yi + k2/2) (27c)

k4 = hf(xi + 1, yi + k3) (27d)

6

Page 7: M Todos de Runge Kutta

La segunda version se basa en la regla 3/8

yi+1 = yi +1

8(k1 + 3k2 + 3k3 + k4)h (28)

k1 = hf(xi, yi) (29a)

k2 = hf(xi + 1/3, yi + k1/3) (29b)

k3 = hf(xi + 2/3, yi + k1/3 + k2/3) (29c)

k4 = hf(xi + 1, yi + k1 − k2 + k3) (29d)

Figura 2 Representacion grafica de las pendientes estimadas en el metodo de RK4

5. Metodo de Butcher-Runge-Kutta

Cuando se requieren resultados mas exactos, se recomienda el metodo de RKde quinto orden, porque proporciona una mayor aproximacion con cada paso yel error es de orden h6[3]. Sin embargo, la ganancia en exactitud con metodosmayores al cuarto orden se ve afectada por mayor trabajo computacional ymayor complejidad. La siguiente es la forma de Butcher (1964)[2].

yi+1 = yi +1

90(7k1 + 32k3 + 12k4 + 32k5 + 7k6)h (30)

k1 = f (xi, yi) (31a)

k2 = f

(xi +

1

4h, yi +

1

4k1h

)(31b)

7

Page 8: M Todos de Runge Kutta

k3 = f

(xi +

1

4h, yi +

1

8k1h+

1

8k2h

)(31c)

k4 = f

(xi +

1

2h, yi +

1

2k2h+ k3h

)(31d)

k5 = f

(xi +

3

4h, yi +

3

16k1h+

9

16k4h

)(31e)

k6 = f

(xi + h, yi −

3

7k1h+

2

7k2h+

12

7k3h− 12

7k4h+

8

7k5h

)(31f)

6. Comparacion de los metodos de RK

Trabajo computacional (Tc) es el numero requerido de evaluaciones de lafuncion para obtener la solucion de la ecuacion diferencial. Por ejemplo, para elmetodo de Euler mejorado o RK2 se requieren dos evaluaciones por cada unode los pasos, en cambio para el metodo de RK4 se requieren cuatro evaluacionespor cada paso, como para el metodo de Butcher-Runge-Kutta o RK5 requiereseis evaluaciones de la fucion como se observa desde la ecuacion 31a hasta la31f.

Tc = njb− a

h(32)

donde nj es el numero de evaluaciones de la funcion y b−ah es el tamano de

integracion dividido entre el tamano de paso.Los metodos de RK estan sujetos a dos clases de errores: errores de truncado einestabilidad. El error de truncado puede definirse como la diferencia entre laexpansion de la serie de Taylor usada en el metodo numerico y la usada en lasolucion exacta, cuando se trata de esta diferencia en un intervalo de tiempo fijose denomina error local y conforme aumenta el orden del metodo, la magnituddel error disminuye con mayor rapidez al disminuir el tamano del intervalo.Ahora, si consideramos un periodo de tiempo y lo dividimos en intervalos detiempo fijos, el error global es igual al producto del error local y el numero deintervalos. Por ejemplo, el metodos de RK3 tiene errores local O(h4) y globalde O(h3), dando resultados exactos cuando la ecuacion diferencial es cubica, lasolucion sea de cuarto grado o inferior [4].El valor verdadero de una funcion es igual al valor aproximado mas el error, deesta relacion podemos obtener el error numero que es igual a la diferencia entreel valor verdadero y el valor aproximado. Para tomar en consideracion el ordende la magnitud del valor que se estima el error se normaliza respecto al valorverdadero. El error relativo porcentual Et se define ası:

Et =error verdadero

valor verdadero× 100 (33)

8

Page 9: M Todos de Runge Kutta

Figura Comparacion del Et desde el primero hasta el quinto orden

7. Metodo de RK4 para un sistema de dos ecua-ciones

Consideremos un sistema de dos ecuaciones [1]:

u′ = f(u, v, t) v′ = g(u, v, t) (34)

Ahora en metodo RK4 se convierte en

k1 = hf(un, vn, tn) (35a)

m1 = hg(un, vn, tn) (35b)

k2 = hf(un + k1/2, vn +m1/2, tn + 1/2) (35c)

m2 = hg(un + k1/2, vn +m1/2, tn + 1/2) (35d)

k3 = hf(un + k2/2, vn +m2/2, tn + 1/2) (35e)

m3 = hg(un + k2/2, vn +m2/2, tn + 1/2) (35f)

k4 = hf(un + k3, vn +m3/2, tn + 1) (35g)

9

Page 10: M Todos de Runge Kutta

m4 = hg(un + k3, vn +m3/2, tn + 1) (35h)

un+1 = un +1

6(k1 + 2k2 + 2k3 + k4) (35i)

vn+1 = vn +1

6(m1 + 2m2 + 2m3 +m4) (35j)

Si escribimos la ecuacion 34 en forma vectorial tenemos

y′ = f(y, t) (36)

y =

[uv

](37)

f =

[fg

](38)

k1 = hf(yn, tn) (39a)

k2 = hf(yn + k1/2, tn + 1/2) (39b)

k3 = hf(yn + k2/2, tn + 1/2) (39c)

k4 = hf(yn + k3, tn + 1) (39d)

yn+1 = yn1

6(k1 + 2k2 + 2k3 + k4) (39e)

10

Page 11: M Todos de Runge Kutta

8. Diagrama de flujo

Figura Diagrama de Flujo del Metodo de Runge -Kutta de orden 4

11

Page 12: M Todos de Runge Kutta

Referencias

[1] S. Nakamura and O. A. P. Velasco, Metodos numericos aplicados con soft-ware. Prentice-Hall Hispanoamericana Mexico, 1992.

[2] C. Chapra Steven and C. Raymond, “Metodos numericos para ingenieros,”Editorial Mc Graw-Hill 4a. Edicion. Mexico, 2002.

[3] G. R. Lindfield and J. E. Penny, Numerical methods: using MATLAB. Aca-demic Press, 2012.

[4] N. Shoichiro, “Analisis numerico y visualizacion grafica con matlab,” Ed.Prentice Hall, Mexico, 1997.

12