¿Por qué el método de Runge-Kutta y Euler es tan diferente?

10

Estoy resolviendo un sistema de ecuaciones lineales, , numéricamente. He hecho esto usando los métodos populares de Euler y Runge-Kutta (RK). He notado una gran diferencia entre los dos en precisión a la solución analítica. ¿Cuál es la razón para esto?x˙_=A_x_

Peter Mortensen
fuente
55
Para el mismo paso, los dos métodos tienen una precisión y estabilidad muy diferentes. Por desgracia, esta es principalmente una pregunta matemática, y sería mejor si explicas tu nivel de comprensión de los métodos numéricos.
ja72
Mi nivel con este tema es muy limitado. Pero gracias por compartir tu opinión.

Respuestas:

18

Lo primero, podría haber mencionado, qué método RK ha utilizado. Aquí hay una breve introducción a los métodos RK y al método Euler, trabajando, sus ventajas y desventajas.

Método de Euler

El método de Euler es el método de primer orden. Es un método sencillo que estima el siguiente punto en función de la tasa de cambio en el punto actual y es fácil de codificar. Es un método de un solo paso. En particular, el método de Forward Euler es incondicionalmente inestable para sistemas oscilantes sin amortiguación (como un sistema de masa de resorte o ecuaciones de onda) en la desctretización del espacio. Para problemas complejos y / o condiciones de contorno, puede fallar. Se puede utilizar para el análisis numérico básico. Este método no se usa comúnmente para la discretización espacial, pero algunas veces se usa en la discretización del tiempo. Este esquema no se recomienda para la ecuación diferencial hiperbólica porque es más difusiva. El orden de convergencia de este esquema con el refinamiento de la red es muy pobre. Ampliar el método de Euler al método de orden superior es fácil y directo.

Métodos RK:

Los métodos Runge-Kutta son en realidad una familia de esquemas derivados de un estilo específico. Puede consultar este enlace para obtener una idea básica de los métodos RK: http://web.mit.edu/10.001/Web/Course_Notes/Differential_Equations_Notes/node5.html

El método de Euler directo es en realidad el método RK más simple (1 etapa, primer orden). Los métodos RK precisos de orden superior son de varias etapas porque implican cálculos de pendiente en múltiples pasos en o entre los valores de tiempo discretos actuales y siguientes. El siguiente valor de la variable dependiente se calcula tomando un promedio ponderado de estas etapas múltiples en base a una aproximación de la serie de la solución de Taylor. Los pesos en este promedio ponderado se obtienen resolviendo ecuaciones algebraicas no lineales que se forman al requerir la cancelación de términos de error en la serie de Taylor. Desarrollar métodos RK de orden superior es tedioso y difícil sin usar herramientas simbólicas para el cálculo.

El método RK más popular es el RK4, ya que ofrece un buen equilibrio entre el orden de precisión y el costo del cálculo. RK4 es la explícita método de Runge-Kutta orden más alto que requiere el mismo número de pasos que el orden de precisión (es decir, RK1 = 1 etapa, RK2 = 2 etapas, RK3 = 3 etapas, RK4 = 4 etapas, RK5 = 6 etapas ,. ..). Más allá del cuarto orden, los métodos RK se vuelven relativamente más caros de calcular.

Responder

  • Por lo general, el error en el método de Euler es mayor que el método RK de orden superior (RK2, RK3, etc.), porque el error de truncamiento en los métodos de orden superior es menor en comparación con el método de Euler.

  • En parte de la literatura de nivel principiante en métodos numéricos, se menciona libremente que los métodos de orden superior (digamos, RK4) dan menos error que el método de orden inferior (digamos, método de Euler). La mayoría de las veces esto es cierto, pero no todo el tiempo. Esta propiedad depende de la malla y la condición inicial y las ecuaciones diferenciales que haya considerado.

  • nortenorte

  • El "error de diferencia máxima absoluta" inicial en el método RK4 es igual (o) mayor que el método de Euler para la cuadrícula gruesa y se reduce con la cuadrícula de refinación para problemas con ondas más cortas en relación con la cuadrícula . Porque la tasa de convergencia del método RK4 es más que Euler. Tenga en cuenta que la aspereza o la finura de la cuadrícula se basa completamente en la ecuación diferencial, la condición inicial y el esquema numérico. Consulte el siguiente enlace para obtener más detalles. Aunque eso se basa en la diferenciación, podemos hacer una comparación relativa entre la integración numérica del tiempo y la diferenciación siempre que la "integración numérica" ​​sea estable.

Iniciar sesión(mirror)Iniciar sesión(solryore syozmi)

AGN
fuente
66
Es genial ver a otras personas que reconocen que un orden superior no siempre significa un error menor, solo una convergencia más rápida. Ese es un punto tan importante, ¡pero parece que muchos lo pasan por alto!
tpg2114
Sí señor, llegué a saber esto por la conferencia de uno de mis profesores y verifiqué esto en una de mis tareas. Creo que falta porque, la mayoría de las veces, trabajamos en mallas finas y ecuaciones diferenciales relativamente no rígidas.
AGN
Muy buena respuesta en general. Edité para corregir un par de puntos y agregué algunos detalles. Espero que no te importe.
Doug Lipinski
1
@ Doug, gracias por pasar tu valioso tiempo en esto. Mi punto es simple: los métodos de orden inferior son precisos en la cuadrícula del curso y los métodos de orden superior son precisos en la cuadrícula fina. Por qué he mencionado, (Tenga en cuenta que la aspereza o la finura de la cuadrícula se basa completamente en la ecuación diferencial, la condición inicial y el esquema numérico) en mi respuesta, el error de truncamiento en los esquemas depende del tamaño de la cuadrícula y la magnitud del orden de derivada de la función que truncó ( Indirectamente, esto puede estar relacionado con la rigidez de la EDO).
AGN
Lo siento, no vi tu comentario hasta ahora. Las personas solo reciben notificaciones si @ responden a su nombre de usuario completo (o si son el propietario de la publicación). Comience a escribir @Dou...y debería ofrecerle autocompletar. He publicado una respuesta en su otra pregunta .
Doug Lipinski
8

El método de Euler no tiene en cuenta la curvatura de la solución, por lo que tiende a dar resultados diferentes según el tamaño del paso. RK, dependiendo del orden, tiene en cuenta la curvatura. Y esto hace que el "próximo paso" estimado sea más preciso. Básicamente, si finge que una línea recta es una buena aproximación de una curva (Euler), siempre superará su solución. Pero si tiene en cuenta la curvatura (RK) puede seguir la curva.

Compárese con la famosa cita de hockey (Gretzky): Euler patina hacia donde está el disco; Runge-Kutta patina hacia donde va a estar el disco.

Te recomiendo que leas sobre estos algoritmos. Puede comenzar con artículos de Wikipedia aquí y aquí .

Floris
fuente
5

Perdóname por agregar una respuesta "yo también", pero no pude resistirme a incluir esta página de Press, et al: "Recetas numéricas en C":

ingrese la descripción de la imagen aquí

Mike Dunlavey
fuente
1
Muy bien complementa la otra respuesta. Ese libro es un clásico. Aunque muestra sus raíces FORTRAN a veces iniciando matrices con un índice de 1.
Floris
2
@Floris: Una vez trabajé con un chico del norte de Italia, nariz alta y en forma de nariz, cabello rubio y delgado, y todo, llamado Giuseppe. Me preguntaba por qué la gente no se convertía a un lenguaje moderno, como C :) Él se acerca a mí con esta voz profunda e imperiosa: "Mike, Fortran es como el rock and roll. Nunca morirá".
Mike Dunlavey
1
Encajo aproximadamente la mitad de su descripción de Giuseppe ... :-)
Floris
4

Básicamente, la razón por la que tienen diferentes niveles de precisión es la forma en que se derivan. El método de Euler (supongo que hacia adelante) es de primer orden y puede derivarse de varias maneras. Más fácilmente del teorema de Taylor. En ese método, solo se retiene el término de segundo orden, por lo que el error es de primer orden.

Los métodos de Runge kutta, por otro lado, están organizados y tienen coeficientes elegidos muy específicamente para "cancelar" varios órdenes de términos de error. Rk4 es de cuarto orden ya que los términos de error cero, primero, segundo y tercer orden se cancelan mediante la elección de coeficientes de etapa. La derivación de estos coeficientes no es muy difícil y probablemente se puede encontrar en Wikipedia si está interesado en verlo.

Alex
fuente