7 votos

¿Cuál es la motivación de los métodos Runge-Kutta?

Recientemente, he estado tomando un curso sobre EDOs y aprendiendo los métodos Runge-Kutta. En concreto, el método Runge-Kutta de 4º orden para resolver problemas de valor inicial.

Mi instructor y el libro de texto me dijeron la fórmula pero no dijeron nada sobre los pensamientos detrás del método. Escribí algo de código y descubrí que el método Runge-Kutta funciona mejor que el método de Euler, pero no puedo entender por qué.

¿Alguien puede echarme una mano para obtener la fórmula de Runge-Kutta? Gracias.

0 votos

El método RK4 es más eficaz que el método de Euler porque utiliza 4 etapas para obtener una aproximación, a diferencia del método de Euler, que utiliza 1 etapa. Véase aquí para una buena descripción del método. Puedes encontrar la derivación en la mayoría de los libros de análisis numérico.

0 votos

math.stackexchange.com/questions/528856/ Esta pregunta está duplicada. Vea esta pregunta.

7voto

andy.holmes Puntos 518

Sobre la historia

Ver Carnicero: Historia del método Runge-Kutta

En resumen, las personas (Nystroem, Runge, Heun, Kutta,...) de finales del siglo XIX experimentaron con éxito la generalización de los métodos de integración numérica de funciones en una variable $$\int_a^bf(x)dx,$$ como los métodos de Gauss, trapezoidal, del punto medio y de Simpson, a la solución de ecuaciones diferenciales, que tienen una forma integral $$y(x)=y_0+\int_{x_0}^x f(s,y(s))\,ds.$$


Carl Runge en 1895 [1] llegó ("por algún curioso proceso inductivo" - "auf einem eigentümlich induktiven Wege" escribió Heun 5 años después) al método de 4 etapas de 3er orden \begin{align} k_1&=f(x,y)Δx,\\ k_2&=f(x+\tfrac12Δx,y+\tfrac12k_1)Δx\\ k_3&=f(x+Δx,y+k_1)Δx\\ k_4&=f(x+Δx,y+k_3)Δx\\ y_{+1}&=y+\tfrac16(k_1+4k_2+k_4) \end{align}

[1] <em>"Sobre la resolución numérica de ecuaciones diferenciales". </em>, Matemáticas. Ann. 46, p. 167-178


Inspirado por este Karl Heun en 1900 [2] exploró métodos del tipo $$ \left.\begin{aligned}k^i_m &= f(x+ε^i_mΔx,y+ε^i_mk^{i+1}_m)Δx,~~ i=1,..,s,\\ k^{s+1}_m&=f(x,y)Δx\end{aligned}\right\},~~ m=1,..,n\\ y_{+1}=y+\sum_{m=1}^n\alpha_mf(x+ε^0_mΔx,y+ε^0_mk^1_m)Δx $$ Calculó las condiciones de orden por expansión de Taylor y construyó métodos de este tipo hasta el orden 4, sin embargo los únicos métodos Runge-Kutta hoy reconocibles entre ellos son el método Heun-trapezoidal de orden 2 y el método Heun de orden 3.

[2] <em>"Nuevo método para la integración aproximada de las ecuaciones diferenciales de una variable independiente". </em>Z. f. Math. u. Phys. 45, p. 23-38


Wilhelm Kutta en su publicación un año después, en 1901 [3] consideró que el esquema de Heun era un desperdicio en el número de evaluaciones de la función e introdujo lo que hoy se conoce como métodos Runge-Kutta explícitos, en los que cada nueva evaluación de la función contiene potencialmente todos los valores anteriores en la $y$ actualizar. \begin{align} k_1&=f(x,y)Δx,\\ k_m&=f(x+c_mΔx, y+a_{m,1}k_1+...+a_{m,m-1}k_{m-1})Δx,&& m=2,...,s\\[0.5em] y_{+1}&=y+b_1k_1+...+b_sk_s \end{align} Calculó las condiciones de orden y presentó métodos hasta el orden $5$ en la parametrización y los ejemplos. Destacó especialmente el método 3/8 por su simetría y su pequeño término de error y el método "clásico" RK4 por su simplicidad al utilizar siempre sólo el último valor de la función en el $y$ actualizaciones.

[3] <em>"Contribución a la solución aproximada de ecuaciones diferenciales totales". </em>Z. f. Math. u. Phys. 46, p. 435-453


Sobre la dependencia del orden del rendimiento

El Método Euler tiene el orden de error global 1. Lo que significa que para obtener un nivel de error de $10^{-8}$ (en los problemas de ejemplo que se comportan bien) necesitará un tamaño de paso de $h=10^{-8}$ . En el intervalo $[0,1]$ esto requiere $10^8$ pasos con $10^8$ evaluaciones de funciones.

El clásico Método RK4 tiene un orden de error 4. Para obtener un nivel de error de $10^{-8}$ por lo que necesitará un tamaño de paso de $h=0.01$ . En el intervalo $[0,1]$ esto requiere $100$ pasos con $400$ evaluaciones de funciones.

Si se disminuye el paso en un factor de $10$ a $h=0.001$ El Método RK4 necesitará $1000$ pasos con $4000$ evaluaciones de la función para obtener un nivel de error de $10^{-12}$ . Esto sigue siendo un esfuerzo mucho menor que el utilizado en el Ejemplo de Euler anterior con un resultado mucho mejor.

Utilizando double números de precisión en coma flotante no obtendrá un resultado mucho mejor con ningún método que utilice un tamaño de paso fijo, ya que los tamaños de paso más pequeños dan lugar a una acumulación de ruido en coma flotante que domina el error del método.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X