P. 1
Método de Runge Kutta

Método de Runge Kutta

|Views: 15.646|Likes:
Publicado porAdriana Favieri

More info:

Published by: Adriana Favieri on Nov 27, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/18/2013

pdf

text

original

Maa 2009 – Lic Favieri, Ing Igareta

Matemática aplicada a la aeronáutica

Método de Runge Kutta

Página 1 de 15

Maa 2009 – Lic Favieri, Ing Igareta

Método de Runge Kutta
El método de Runge Kutta es un método numérico de resolución de ecuaciones diferenciales que surge como una mejora del método de Euler. El método de Euler se puede considerar como un método de Runge Kutta de primer orden, el de Heun, es un método de Runge Kutta de orden dos. Antes de presentar las ideas básicas de, se enuncia el teorema de Taylor en dos variables. Supongamos que f(t,y) y todas las derivadas parciales de orden menor o igual a n+1 son continuas en el dominio:

D= ((t,y) / a<t<b , c<y<d)
Sea (t0, yo) perteneciente a D. Para toda (t,y) perteneciente a D, existen ε entre t y t0 y ηentre y e yo con:

f(t,y) = Pn(t,y)+ Rn(t , y)
Donde

Pn se llama el polinomio de Taylor de grado n en dos variables para la función f alrededor de (t0, y0), y Rn es el término de residuo asociado con Pn(t,y). Como ejemplo se muestra el desarrollo del polinomio de Taylor de grado 3 para la función:

f(t,y) := sin(t⋅y)

alrededor de ( 0,π)

Página 2 de 15

Maa 2009 – Lic Favieri, Ing Igareta

Evaluando cada una las derivadas parciales en (t0, yo)= (0, π) se reduce P3 (t,y) a:

Este polinomio dará una buena aproximación de sen(t.y) siempre y cuando t esté cerca de cero e y esté cerca de π. Por ejemplo:

f(0.01, π + 0.01)= 0.0315107096
Mientras que

P3(0.01 , π + 0.01)= 0.0315107588
El objetivo del método de Runge Kutta consiste en determinar valores para a1, y 1 tales que a1⋅f(t + α1 , t + β1) se aproxime a:

Con un error no mayor O(h2), que es el error de truncamiento local para el método de Taylor de orden dos. Como

Esto implica que:

Página 3 de 15

Maa 2009 – Lic Favieri, Ing Igareta

(1) Expandiendo a f(t + α1 , t + β1) en su polinomio de Taylor de grado uno alrededor de (t,y) implica que :

(2)

Donde

(3) Para algunas ε y entre t y t+1 y η entre y e y+1. Igualando los coeficientes de f y de sus derivadas en las ecuaciones (1) y (2) De manera que los parámetros a1,  1 y 1 quedan determinados de manera única por:

así,

Página 4 de 15

Maa 2009 – Lic Favieri, Ing Igareta

y de la ecuación (3)

Si todas las derivadas segundas parciales de f resultan acotadas, entonces

será el O(h2), el orden del error de truncamiento local del desarrollo de la serie de Taylor de orden dos. El método de diferencia que resulta al reemplazar T(2)(t,y) en el método de Taylor de orden dos por

se lo conoce como método de RUNGE KUTTA del punto medio.

Método del punto medio

Página 5 de 15

Maa 2009 – Lic Favieri, Ing Igareta

Ya que en a1⋅f (t + α1, t + β1), solamente están presentes tres parámetros y todos son necesarios para la comparación con T(2), necesitaremos una forma más complicada para satisfacer las condiciones requeridas para cualquier método de Taylor de orden mayor. La forma de cuatro parámetros más apropiada para aproximar:

es

Y aún con esto, no hay suficiente flexibilidad para hacer coincidir el término

que resulta de la expansión de

Consecuentemente, lo mejor que se puede obtener usando (4) son métodos con una cota de error de O(h2). Sin embargo, el hecho de que (4) tenga cuatro parámetros permite cierta flexibilidad en su elección de tal manera que se puedan derivar una serie de métodos de O(h 2).

Algoritmo de Runge Kutta de orden 2

Página 6 de 15

Maa 2009 – Lic Favieri, Ing Igareta Para aproximar la solución del problema de valor inicial se presenta un breve algoritmo básico

1) En N+1 pasos igualmente espaciados dentro el intervalo (x0, xf) (También llamado discretización del dominio). Se toma como entrada los puntos extremos de (x0, xf) cantidad de pasos N, de esa manera se define el tamaño del intervalo h

Se toma como valores iniciales, los valores de la condición de borde o frontera (x0,xf) 2) Luego, se calcula el próximo valor de X haciendo lo siguiente:

3) Esto es para el primer valor de x, sumar el tamaño del intervalo h. Para el próximo valor correspondiente de Yn+1, se hace lo siguiente Se calculan las siguientes constantes k1 y k2

Donde a1, p1, y q11 son valores para elegir el tipo de discretización del dominio X. 4) Luego el valor de Yn+1 es:

5 ) Luego de este punto, se repite el procedimiento desde el punto 3) siendo el punto de partida (Xn+1, Yn+1) y así sucesivamente hasta llegar a Xf

Ejemplo

Página 7 de 15

Maa 2009 – Lic Favieri, Ing Igareta Aplicando el método de Runge Kutta de segundo orden resolver la siguiente ecuación

Cuya solución exacta es:

y la gráfica en función de y(t)

Esta hoja de trabajo muestra el uso del método Runge-Kutta de 2 º para la resolución de ecuaciones diferenciales ordinarias. Este método de resolución de ecuaciones diferenciales ordinarias utiliza la derivada y el valor de la función en la condición de contorno para proyectar la ubicación y el valor del punto siguiente de la función. La ecuación diferencial de la forma dy / dx = f (x, y). La solución exacta a la ecuación diferencial ordinaria se muestra a continuación en la sección de solución exacta. Una solución puede ser o no ser posible utilizar este método.

Página 8 de 15

Maa 2009 – Lic Favieri, Ing Igareta

Los valores de a1, p1, y q11 son usados en cada etapa para la determinación de los puntos de la curva y dependen del método utilizado

Paso 1
La función f (x, y) se utiliza para encontrar la derivada en el valor inicial. Esta derivada se utiliza para predecir el valor de la función en X1 = X0 + h. Los primeros valores utilizados son los valores iniciales.

La derivada es evaluada en el punto anterior (condición de frontera aquí) y el nuevo y se encuentra, en este caso, utilizando el método de Runge-Kutta 2 º

Página 9 de 15

Maa 2009 – Lic Favieri, Ing Igareta

Solución aproximada en el primer paso respecto de la solución exacta.

Paso 2
Ahora se repite el procedimiento con el siguiente valor de x en X2 = X1 + h, y el valor y la aproximación en el paso anterior. El próximo valor de x es:

la derivada es evaluada en el punto previo ( condición de borde ) y el nuevo punto de y es:

Página 10 de 15

Maa 2009 – Lic Favieri, Ing Igareta

Solución aproximada en el segundo paso respecto de la solución exacta.

Paso 3
Se repite el procedimiento para encontrar X3 = X2 + h y el valor aproximado de y es: El próximo valor de x es:

La derivada es evaluada en el punto previo (condición de borde) y el nuevo punto de y es:

Página 11 de 15

Maa 2009 – Lic Favieri, Ing Igareta Solución aproximada en el tercer paso del proceso respecto de la solución exacta.

Paso 4
Se repite el procedimiento para encontrar X4 = X3 + h el valor aproximado de y es: El próximo valor de x es:

La derivada es evaluada en el punto previo (condición de borde) y el nuevo punto de y es:

Página 12 de 15

Maa 2009 – Lic Favieri, Ing Igareta

Solución aproximada en el cuarto paso del proceso respecto de la solución exacta.

Paso 5
Se repite el procedimiento para encontrar X5 = X4 + h el valor aproximado de y es: El próximo valor de x es:

La derivada es evaluada en el punto previo (condición de borde) y el nuevo punto de y es:

Página 13 de 15

Maa 2009 – Lic Favieri, Ing Igareta Solución aproximada en el cuarto paso del proceso respecto de la solución exacta.

Conclusiones Se toma el error relativo de los puntos obtenidos por el método respecto de la solución exacta. Valor exacto

Valor aproximado (Runge Kutta 2° orden)

Error verdadero

Página 14 de 15

Maa 2009 – Lic Favieri, Ing Igareta

Error porcentual

Este método es mejor que el método de Euler, pero aún así es posible aumentar la precisión achicando los pasos entre los puntos o implementando el método de Runge Kutta de orden superior.

Página 15 de 15

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->