Articulo de referencia

Integración de Leapfrog

En análisis numérico , la integración por salto de rana es un método para integrar numéricamente ecuaciones diferenciales de la forma incógnita ¨ = d 2 incógnita d t 2 = A ( inc...

En análisis numérico , la integración por salto de rana es un método para integrar numéricamente ecuaciones diferenciales de la forma incógnita¨=d2incógnitadt2=A(incógnita),{\displaystyle {\ddot {x}}={\frac {d^{2}x}{dt^{2}}}=A(x),} o equivalentemente de la forma v˙=dvdt=A(incógnita),incógnita˙=dincógnitadt=v,{\displaystyle {\dot {v}}={\frac {dv}{dt}}=A(x),\qquad {\dot {x}}={\frac {dx}{dt}}=v,} particularmente en el caso de un sistema dinámico de mecánica clásica .

Comparación de las propiedades de conservación de energía de las integraciones de Euler y Leapfrog para N cuerpos que orbitan alrededor de una masa puntual. Se utilizó el mismo paso de tiempo en ambas simulaciones.

El método se conoce con diferentes nombres en diferentes disciplinas. En particular, es similar al método de Verlet de velocidad , que es una variante de la integración de Verlet . La integración de salto de rana es equivalente a la actualización de posiciones.incógnita(t){\displaystyle x(t)}y velocidadesv(t)=incógnita˙(t){\displaystyle v(t)={\dot {x}}(t)}en diferentes momentos intercalados, escalonados de tal manera que se " saltan " unos sobre otros.

La integración de Leapfrog es un método de segundo orden , a diferencia de la integración de Euler , que es de primer orden, pero requiere el mismo número de evaluaciones de función por paso. A diferencia de la integración de Euler, es estable para el movimiento oscilatorio, siempre que el paso de tiempo seaΔt{\displaystyle \Delta t}es constante yΔt<2/ω{\displaystyle \Delta t<2/\omega }. [ 1 ]

Utilizando los coeficientes de Yoshida y aplicando el integrador leapfrog varias veces con los pasos de tiempo correctos, se puede generar un integrador de orden mucho mayor.

Algoritmo

En la integración de salto de rana, las ecuaciones para actualizar la posición y la velocidad son: ai=A(incógnitai),vi+1/2=vi1/2+aiΔt,incógnitai+1=incógnitai+vi+1/2Δt,{\displaystyle {\begin{aligned}a_{i}&=A(x_{i}),\\v_{i+1/2}&=v_{i-1/2}+a_{i}\,\Delta t,\\x_{i+1}&=x_{i}+v_{i+1/2}\,\Delta t,\end{aligned}}}

dóndeincógnitai{\displaystyle x_{i}}es posición en el pasoi{\displaystyle i},vi+1/2{\displaystyle v_{i+1/2\,}}es la velocidad, o primera derivada deincógnita{\displaystyle x}, en el pasoi+1/2{\displaystyle i+1/2\,},ai=A(incógnitai){\displaystyle a_{i}=A(x_{i})}es la aceleración, o segunda derivada deincógnita{\displaystyle x}, en el pasoi{\displaystyle i}, yΔt{\displaystyle \Delta t}es el tamaño de cada paso de tiempo. Estas ecuaciones se pueden expresar en una forma que también da la velocidad en pasos enteros: [ 2 ]incógnitai+1=incógnitai+viΔt+12aiΔt2,vi+1=vi+12(ai+ai+1)Δt.{\displaystyle {\begin{aligned}x_{i+1}&=x_{i}+v_{i}\,\Delta t+{\tfrac {1}{2}}\,a_{i}\,\Delta t^{\,2},\\v_{i+1}&=v_{i}+{\tfrac {1}{2}}(a_{i}+a_{i+1})\,\Delta t.\end{aligned}}} Sin embargo, en esta forma sincronizada, el paso de tiempoΔt{\displaystyle \Delta t}debe ser constante para mantener la estabilidad. [ 3 ]

La forma sincronizada se puede reorganizar a la forma 'kick-drift-kick'; vi+1/2=vi+12aiΔt,incógnitai+1=incógnitai+vi+1/2Δt,vi+1=vi+1/2+12ai+1Δt,{\displaystyle {\begin{aligned}v_{i+1/2}&=v_{i}+{\tfrac {1}{2}}a_{i}\Delta t,\\[2pt]x_{i+1}&=x_{i}+v_{i+1/2}\Delta t,\\[2pt]v_{i+1}&=v_{i+1/2}+{\tfrac {1}{2}}a_{i+1}\Delta t,\end{aligned}}} que se utiliza principalmente cuando se requieren pasos de tiempo variables. La separación del cálculo de la aceleración al principio y al final de un paso significa que si la resolución temporal se incrementa en un factor de dos (ΔtΔt/2{\displaystyle \Delta t\rightarrow \Delta t/2}), entonces solo se requiere un cálculo de aceleración adicional (computacionalmente costoso).

Una de las aplicaciones de esta ecuación se encuentra en las simulaciones de gravedad newtoniana, ya que en ese caso la aceleración depende únicamente de las posiciones de las masas gravitatorias (y no de sus velocidades).

La integración por saltos presenta dos ventajas principales al aplicarse a problemas de mecánica. La primera es la reversibilidad temporal del método de saltos. Se puede integrar hacia adelante n pasos y luego invertir la dirección de la integración e integrar hacia atrás n pasos para llegar a la misma posición inicial. La segunda ventaja es su naturaleza simpléctica , lo que implica que conserva la energía (ligeramente modificada; véase integrador simpléctico ) de un sistema dinámico hamiltoniano. [ 4 ] Esto resulta especialmente útil al calcular la dinámica orbital, ya que muchos otros esquemas de integración, como el método de Runge-Kutta (de orden 4) , no conservan la energía y permiten que el sistema se desplace sustancialmente con el tiempo.

Debido a su reversibilidad temporal y a que es un integrador simpléctico , la integración de salto de rana también se utiliza en el método de Monte Carlo hamiltoniano , un método para extraer muestras aleatorias de una distribución de probabilidad cuya normalización global es desconocida. [ 5 ]

Algoritmos de Yoshida

El integrador de salto de rana se puede convertir en integradores de orden superior utilizando técnicas desarrolladas por Haruo Yoshida . En este enfoque, el método de salto de rana se aplica a lo largo de varios pasos de tiempo diferentes. Se observa que, al utilizar los pasos de tiempo correctos en secuencia, los errores se cancelan y se pueden generar fácilmente integradores de orden mucho mayor. [ 6 ] [ 7 ]

Integrador Yoshida de cuarto orden

Un paso bajo el integrador de Yoshida de cuarto orden requiere cuatro pasos intermedios. La posición y la velocidad se calculan en momentos diferentes. Solo se requieren tres cálculos de aceleración (computacionalmente costosos).

Las ecuaciones para el integrador de cuarto orden para actualizar la posición y la velocidad son:

incógnitai1=incógnitai+do1viΔt,vi1=vi+d1a(incógnitai1)Δt,incógnitai2=incógnitai1+do2vi1Δt,vi2=vi1+d2a(incógnitai2)Δt,incógnitai3=incógnitai2+do3vi2Δt,vi3=vi2+d3a(incógnitai3)Δt,incógnitai+1incógnitai4=incógnitai3+do4vi3Δt,vi+1vi4=vi3{\displaystyle {\begin{aligned}x_{i}^{1}&=x_{i}+c_{1}\,v_{i}\,\Delta t,&v_{i}^{1}&=v_{i}+d_{1}\,a(x_{i}^{1})\,\Delta t,\\x_{i}^{2}&=x_{i}^{1}+c_{2}\,v_{i}^{1}\,\Delta t,&v_{i}^{2}&=v_{i}^{1}+d_{2}\,a(x_{i}^{2})\,\Delta t,\\x_{i}^{3}&=x_{i}^{2}+c_{3}\,v_{i}^{2}\,\Delta t,&v_{i}^{3}&=v_{i}^{2}+d_{3}\,a(x_{i}^{3})\,\Delta t,\\x_{i+1}&\equiv x_{i}^{4}=x_{i}^{3}+c_{4}\,v_{i}^{3}\,\Delta t,&v_{i+1}&\equiv v_{i}^{4}=v_{i}^{3}\\\end{aligned}}}

dóndeincógnitai,vi{\displaystyle x_{i},v_{i}}son la posición y velocidad iniciales,incógnitainorte,vinorte{\displaystyle x_{i}^{n},v_{i}^{n}}son la posición y la velocidad intermedias en el paso intermedionorte{\displaystyle n},a(incógnitainorte){\displaystyle a(x_{i}^{n})}es la aceleración en la posiciónincógnitainorte{\displaystyle x_{i}^{n}}, yincógnitai+1,vi+1{\displaystyle x_{i+1},v_{i+1}}son la posición y velocidad finales bajo un paso de Yoshida de cuarto orden.

Coeficientes(do1,do2,do3,do4){\displaystyle (c_{1},c_{2},c_{3},c_{4})}y(d1,d2,d3){\displaystyle (d_{1},d_{2},d_{3})}se derivan en [ 7 ] (ver la ecuación (4.6))

w023223,w11223,do1=do4w12,do2=do3w0+w12,d1=d3w1,d2w0{\displaystyle {\begin{aligned}w_{0}&\equiv -{\frac {\sqrt[{3}]{2}}{2-{\sqrt[{3}]{2}}}},&w_{1}&\equiv {\frac {1}{2-{\sqrt[{3}]{2}}}},\\[1ex]c_{1}&=c_{4}\equiv {\frac {w_{1}}{2}},&c_{2}=c_{3}&\equiv {\frac {w_{0}+w_{1}}{2}},\\[1ex]d_{1}&=d_{3}\equiv w_{1},&d_{2}&\equiv w_{0}\\\end{aligned}}}

Todos los pasos intermedios forman unoΔt{\displaystyle \Delta t}paso que implica que los coeficientes suman uno:i=14doi=1{\textstyle \sum _{i=1}^{4}c_{i}=1}yi=13di=1{\textstyle \sum _{i=1}^{3}d_{i}=1}. Tenga en cuenta que la posición y la velocidad se calculan en diferentes momentos y algunos pasos intermedios se realizan hacia atrás en el tiempo. Para ilustrar esto, proporcionamos los valores numéricos dedonorte{\displaystyle c_{n}}coeficientes:do1=0,6756{\displaystyle c_{1}=0.6756},do2=0,1756{\displaystyle c_{2}=-0.1756},do3=0,1756{\displaystyle c_{3}=-0.1756},do4=0,6756.{\displaystyle c_{4}=0.6756.}

Véase también

Referencias

  1. CK Birdsall y AB Langdon, Física de plasmas mediante simulaciones por ordenador , McGraw-Hill Book Company, 1985, pág. 56.
  2. "4.1 Dos maneras de escribir el salto de rana" . Archivado del original el 3 de abril de 2023.
  3. Skeel, RD, "El tamaño variable del paso desestabiliza el método Stömer/Leapfrog/Verlet", BIT Numerical Mathematics , vol. 33, 1993, págs. 172-175.
  4. Tuckerman, Mark E. (2010). Mecánica estadística: teoría y simulación molecular (1.ª ed.). Oxford University Press. págs. 121–124 . ISBN   9780198525264.
  5. Bishop, Christopher (2006). Reconocimiento de patrones y aprendizaje automático . Nueva York: Springer-Verlag . págs. 548–554 . ISBN  978-0-387-31073-2.
  6. "./Ch07.HTML" . Archivado del original el 31-03-2022 . Consultado el 21-12-2017 .
  7. 1 2 Yoshida, Haruo (1990). "Construcción de integradores simplécticos de orden superior". Physics Letters A . 150 ( 5– 7): 262– 268. doi : 10.1016/0375-9601(90)90092-3 .
  • https://www.physics.drexel.edu/students/courses/Comp_Phys/Integrators/leapfrog/ (archivado el 17 de junio de 2010 ) , Física de la Universidad de Drexel