L10

6
1 An´ alisis num´ erico. EDO II L10 1 Soluci´onNum´ erica de las EDO II: M´ etodos de Runge- Kutta La desventaja principal de los m´ etodos de Euler es su limitada orden de aproximaci´ on. Los m´ etodos de RK se basan en calculos adicionales en los puntos intermedios en el calculo de y n+1 . Considerando la EDO lineal de primer orden dy dt = f (t, y) (1) con la condici´ on inicial y(t = 0) = y 0 Teniendo en cuenta que, y n+1 = y n + Z t n+1 tn f (t, y)dt (2) 1.1 etodo de RK de segundo orden Se obtiene aplicando la regla trapezoidal al mimbro derecho de (2) Z t n+1 tn f (t, y)dt h 2 [f (t n ,y n )+ f (t n+1 ,y * n+1 )] (3) y * n+1 se estima primero mediante Euler hacia adelante y * n+1 = y n + hf (t n ,y n ) y n+1 = y n + h 2 [f (t n ,y n )+ f (t n+1 ,y * n+1 ] o en forma convencional K 1 = hf (t n ,y n ) (4a) K 2 = hf (t n+1 ,y n + K 1 ) (4b) y n+1 = y n + 1 2 (K 1 + K 2 )+ O[h 3 ] (4c) 1.2 Runge-Kutta de cuarto orden K 1 = hf (t n ,y n ) (5) K 2 = hf (t n + h/2,y n + K 1 /2) (6) K 3 = hf (t n + h/2,y n + K 2 /2) (7) K 4 = hf (t n + h, y n + K 3 ) (8) Finalmente y n+1 = y n + 1 6 [K 1 +2K 2 +2K 3 + K 4 ] (9) Ejemplos de aplicaci´ on.

description

num

Transcript of L10

  • 1

    Analisis numerico. EDO II L10

    1 Solucion Numerica de las EDO II: Metodos de Runge-Kutta

    La desventaja principal de los metodos de Euler es su limitada orden de aproximacion.

    Los metodos de RK se basan en calculos adicionales en los puntos intermedios en elcalculo de yn+1.Considerando la EDO lineal de primer orden

    dy

    dt= f(t, y) (1)

    con la condicion inicial y(t = 0) = y0 Teniendo en cuenta que,

    yn+1 = yn +

    tn+1tn

    f(t, y)dt (2)

    1.1 Metodo de RK de segundo orden

    Se obtiene aplicando la regla trapezoidal al mimbro derecho de (2) tn+1tn

    f(t, y)dt h2

    [f(tn, yn) + f(tn+1, yn+1)] (3)

    yn+1 se estima primero mediante Euler hacia adelante

    yn+1 = yn + hf(tn, yn)

    yn+1 = yn +h

    2[f(tn, yn) + f(tn+1, y

    n+1]

    o en forma convencional

    K1 = hf(tn, yn) (4a)

    K2 = hf(tn+1, yn +K1) (4b)

    yn+1 = yn +1

    2(K1 +K2) +O[h

    3] (4c)

    1.2 Runge-Kutta de cuarto orden

    K1 = hf(tn, yn) (5)

    K2 = hf(tn + h/2, yn +K1/2) (6)

    K3 = hf(tn + h/2, yn +K2/2) (7)

    K4 = hf(tn + h, yn +K3) (8)

    Finalmente

    yn+1 = yn +1

    6[K1 + 2K2 + 2K3 +K4] (9)

    Ejemplos de aplicacion.

  • 2

    2 Oscilador Armonico

    Ejemplo de aplicacion del algoritmo de RK en la solucion del comportamiento del osciladorarmonico simple. Tomando como modelo del oscilador armonico simple un bloque que semueve sobre una superficie plana liza, unida con un resorte fijo en el otro extremo Laecuacion diferencial que gobierna el movimiento,

    d2x

    dt2= k

    mx = 20 (10)

    Representamos como un sistema de dos ecuaciones de primer orden

    dx

    dt= v (11)

    dv

    dt= k

    mx (12)

    mas las condiciones x(t = 0) = x0 y v(t = 0) = v0

    La ecuacion del tipo tiene solucion analtica de la forma

    x(t) = A cos(0t+ 0) (13)

    es decir es una funcion periodica con periodo T = 2/0, la cual sirve para fines decomparacion con la solucion numerica.Ademas, se tiene otro criterio para controlar la estabilidad de la solucion numerica - laenerga total, la cual debe conservarse

    E0 =1

    2mv2(t) +

    1

    2kx2(t) (14)

    El algoritmo que implementa la solucion de la EDO para oscilador armonico medianteel metodo de Runge-Kutta de segundo orden es como sigue:

    1. Definir los valores iniciales de la posicion y velocidad. Se recomienda asumir comotiempo maximo de observacion multiplo de 2, ademas, sin perder generalidad sepuede asumir k/m = 1.

    2. Definir el paso de tiempo como

    h =tf t1N

    donde N es el numero de puntos de la malla

    3. Calcular la energa total E0, para usar como control

    4. Implementar el algoritmo de RK de segundo orden tanto para la velocidad vn+1como la coordenada xn+1 partiendo del valor anterior vn y xn

    5. Incrementar el tiempo tn+1 = tn + h

    6. Repetir este procedimiento iterativo hasta alcanzar el tiempo maximo.

    7. El resultado es chequeado con la solucion exacta.

  • 3

    Ejemplo de codigo en fortran 95

    !**************************************************

    ! EDO del oscilador armonico mediante el metodo *

    ! de Runge-Kutta de segundo orden *

    !**************************************************

    PROGRAM oas

    IMPLICIT NONE

    REAL(8)::t,dt,tf,x,v,E

    open(unit=8,file=sho.dat,action=write)

    ! ===========================================

    CALL inicio(t,dt,tf,x,v)

    E= energia(x,v)

    DO WHILE (t

  • 4

    Figure 1: RK2

    Figure 2: Variacion de la energa total

    Figure 3: RK2 trayectoria de fase

  • 5

    Figure 4: RK2 con paso menor

    Figure 5: RK4

    Figure 6: RK4

  • 6

    Figure 7: RK4 trayectoria de fase