2 votos

Euler vs. Heun Métodos Numéricos

Tengo una pregunta sobre el método numérico de Heun. Tengo la comprensión de que el método de Heun es básicamente un método de Euler mejorado que utiliza a Euler como paso predictor y encuentra los valores de $y$ en los siguientes pasos y toma el promedio de los dos.

Sin embargo, estaba pensando, ¿qué pasa si creo dos pasos predictores?

Por ejemplo:

a) Uno llamado $y_n^*$ que predice $y$ en $\frac{h}{10}$

$y_n^*=y_n+\frac{h}{10}f(y_n)$

b) Otro llamado $y_{n+1}^{**}$ que predice el valor en $\frac{2h}{10}$

$y_{n+1}^{**}=y_n+\frac{2h}{10}f(y_n)$

Finalmente: el valor actual se calcularía por $y_{n+1}=y_{n}+h[\omega(y_n^*)+(1-\omega)f(y_{n+1}^{**})]$ , $\omega\in\mathbb{R}$

  • Por ejemplo, podemos hacer $\omega = \text{"cualquier cosa para hacer el error de truncamiento al menos uno y un omega en particular"}$ ($\omega=\frac{1}{2}$) nos dará un error de truncamiento dos. Pero no estoy exactamente seguro de entender esto completamente.

  • ¿Cómo es (si lo es) mejor que tener un paso predictor?

En caso de que algo no esté claro:

  • $h$ es el tamaño del paso
  • y el intervalo es [$x_n$, $x_{n+1}$]

Gracias.

1voto

andy.holmes Puntos 518

$\newcommand{\D}{\mathit{\Delta}}$ En realidad estás siguiendo las líneas que Karl Heun en 1900 estaba explorando. En el caso de segundo orden, consideró construir el próximo valor $y+\D y$ como $$ \D y=\sum \alpha_mf(x+ϵ_m\D x,\,y+ϵ_m\D'_m y)\D x \\ \text{ donde }\D'_m y=f(x,y)\D x $$ Al comparar las expansiones de Taylor, encontró las condiciones de orden $$ \sum α_m=1,~~\sum α_mϵ_m=\frac12 $$ y que no es posible alcanzar todos los términos de tercer orden en la expansión de Taylor de $y(x+\D x)-y(x)$.

Por lo tanto, es perfectamente válido tomar 3 términos y $ϵ_m=0,\frac1{10},\frac2{10}$. La condición de segundo orden $α_2+2α_3=5$ y $α_1=1-α_2-α_3$ pueden entonces satisfacerse de varias maneras.


Para los métodos de tercer orden, Heun expandió este esquema a $$ \D y=\sum \alpha_mf(x+ϵ_m\D x,\,y+ϵ_m\D'_m y)\D x \\ \text{ donde }\D'_m y=f(x+ϵ'_m,y+ϵ'_m\D''_m y)\D x,\\ \D''_m y=f(x,y)\D x. $$ Ahora las expansiones de Taylor coinciden hasta tercer orden si $$ \sum α_m=1,\sum α_mϵ_m=\frac12,\sum α_mϵ_m^2=\frac13,~~\sum α_mϵ_mϵ'_m=\frac16 $$ El primer método para este orden utiliza dos términos y $ϵ_1=0$ y resulta en el método de tercer orden de Heun $$ \D y=\frac14\Bigl(f(x,y)+3f(x+\tfrac23\D x, y+\tfrac23\D'y)\Bigr)\D x\\ \text{ donde }\D'y=f(x+\tfrac13\D x, y+\tfrac13f(x,y)\D x)\D x $$


Con 3 términos se obtiene el método original de tercer orden de Carl Runge (1895) como uno entre una amplia variedad de configuraciones $$ \D y=\frac16\Bigl(f(x,y)+4f(x+\tfrac12\D x, y+\tfrac12f(x,y)\D x)+f(x+\D x, y+\D 'y)\Bigr)\D x\\ \text{ donde }\D 'y=f(x+\D x, y+f(x,y)\D x)\D x $$


Esta notación bastante extensa y repetitiva fue llevada a un marco más compacto por M. Wilhelm Kutta en 1901

0voto

David K Puntos 19172

Estoy de acuerdo con tu descripción del método de Heun: evaluar $f$ al comienzo del paso (hasta ahora, igual que Euler), luego un "paso predictivo" da $f$ en un punto diferente, y luego promediamos los dos valores de $f$ para calcular nuestra estimación final del valor de $y$ al final del paso.

Es completamente posible mejorar el método de Heun usando dos "pasos predictivos" en lugar de uno. Esto se llama un método de tercer orden. (Euler es de primer orden porque solo miras un valor de $f$ para pasar al final del paso. Heun es de segundo orden porque usas dos valores de $f.$ Si agregas otro predictor ahora tienes tres valores de $f,$ por lo tanto, un método de tercer orden).

Hay una lista de métodos numéricos como estos aquí. Ten en cuenta que esta lista incluye el método de Euler, el de Heun, otros dos métodos de segundo orden bien conocidos y un método de segundo orden "genérico. Después tienes los métodos de tercer orden:

  • Kutta,
  • Heun,
  • Ralston y
  • Strong Stability Preserving Runge-Kutta (SSPRK3).

Hay varios métodos de cuarto orden (valor inicial de $f$ y tres "pasos predictivos") en la misma lista. Y estos son solo algunos métodos populares de la familia de métodos de Runge-Kutta explícitos; ¡hay muchas otras formas de abordar el mismo problema!


Las fórmulas de estos varios métodos no son meras conjeturas. Generalmente tratan de hacer que al promediar los valores de $f$ (generalmente en algún tipo de promedio ponderado), los términos de orden inferior de la serie de Taylor se cancelen para que el error sea del orden de $h^3,$ $h^4,$ o incluso $h^5$ en lugar del error de orden $h^2$ que obtienes del método de Euler.


Al comparar tu método con los demás, hay un par de cosas que destacan:

En primer lugar, tus "pasos predictivos" están mucho más cerca de tu valor inicial que los de cualquier otro. Básicamente, solo estás viendo lo que podría suceder a lo largo del primer $20\%$ del camino de $(x_n,y_n)$ a $(x_{n+1},y_{n+1}).$ Eso generalmente no va a ser muy diferente de lo que aprendiste al evaluar $f(x_n,y_n)$ en primer lugar. (Si es muy diferente, ¡tu $h$ es demasiado grande!)

No des pasos pequeños como $\frac{h}{10}$ o $\frac{2h}{10}.$ ¡Sé audaz! Obtén valores de $f$ que estén más cerca del medio del paso o incluso del final del paso. El "paso predictivo" en el método de segundo orden de Heun, que has visto, estima un valor de $y$ en $x_n + h,$ que está en el extremo del paso (también conocido como $x_{n+1}$), y el primer "paso predictivo" en SSPRK3 también hace eso.

En segundo lugar, ambos de tus "pasos predictivos" están basados en el mismo valor $f(x_n,y_n)$ que calculaste al comienzo del paso. En todos los métodos tabulados en la lista, los "pasos predictivos" después del primero siempre usan los resultados de los pasos predictivos anteriores además de (o a veces en lugar de) $f(x_n,y_n).$ Hasta donde yo sé, no es posible aprovechar bien los pasos predictivos posteriores para cancelar términos de error si no haces esto.

Mi consejo práctico si realmente quieres hacer cálculos precisos es usar uno de los métodos conocidos que han sido publicados en revistas y libros de texto de renombre. Pero si solo quieres jugar con la idea, ¡adelante! No se puede aprender mucho sobre matemáticas si no intentas hacerlo de verdad.

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