Astronomía y Exploración Espacial

Educación Universitaria / Métodos numéricos en astrofísica

Integradores simplécticos y caos en el problema de N cuerpos

Por qué el leapfrog conserva la energía durante tiempos largos y RK4 no, y cómo medir la sensibilidad a las condiciones iniciales con el exponente de Lyapunov, en la figura en ocho y en el problema pitagórico.

⏱ 150 min EDOsmecánica hamiltonianacorchetes de Poissonaplicaciones simplécticasfórmula de Baker–Campbell–Hausdorffanálisis de error numéricoexponentes de Lyapunov revision

Al terminar podrás:
  • Formular el problema gravitatorio de N cuerpos como sistema hamiltoniano separable e identificar sus integrales primeras.
  • Derivar el leapfrog kick-drift-kick como composición de flujos exactos y demostrar que es simpléctico, simétrico y de orden 2.
  • Explicar, mediante el hamiltoniano modificado, por qué el error de energía de un método simpléctico de orden p queda acotado en O(hᵖ) durante tiempos exponencialmente largos mientras que el de RK4 deriva secularmente.
  • Construir el integrador de Yoshida de orden 4 por composición de tres leapfrogs y verificar numéricamente su orden.
  • Definir y estimar numéricamente el máximo exponente de Lyapunov y el horizonte de predictibilidad.
  • Analizar dos soluciones paradigmáticas del problema de tres cuerpos: el ocho de Chenciner–Montgomery y el problema pitagórico de Burrau.

1. El problema de N cuerpos

Ilustración: El problema de N cuerpos

Sean NN masas puntuales mim_i con posiciones ri∈R3\mathbf r_i\in\mathbb R^3 y velocidades vi=r˙i\mathbf v_i = \dot{\mathbf r}_i, i=1,…,Ni = 1,\dots,N. La ley de gravitación de Newton da

r¨i=∑j≠iG mj rj−ri∥rj−ri∥3,\ddot{\mathbf r}_i = \sum_{j\ne i} G\,m_j\,\frac{\mathbf r_j - \mathbf r_i}{\lVert\mathbf r_j - \mathbf r_i\rVert^3},

donde GG es la constante de gravitación. En toda la lección (y en src/lib/math/nbody.ts) usamos unidades adimensionales con G=1G = 1: fijada una masa de referencia MM y una longitud RR, la unidad de tiempo es R3/(GM)\sqrt{R^3/(GM)}.

Con momentos pi=mivi\mathbf p_i = m_i\mathbf v_i, el sistema es hamiltoniano con

H(q,p)=T(p)+V(q),T=∑i∥pi∥22mi,V=−∑i<jG mimj∥qi−qj∥,H(\mathbf q,\mathbf p) = T(\mathbf p) + V(\mathbf q),\qquad T = \sum_i \frac{\lVert\mathbf p_i\rVert^2}{2m_i},\qquad V = -\sum_{i<j}\frac{G\,m_i m_j}{\lVert\mathbf q_i-\mathbf q_j\rVert},

y q˙=∂H/∂p\dot{\mathbf q} = \partial H/\partial\mathbf p, p˙=−∂H/∂q\dot{\mathbf p} = -\partial H/\partial\mathbf q. Es separable: TT depende solo de p\mathbf p y VV solo de q\mathbf q. Las diez integrales clásicas son la energía E=HE = H, el momento lineal P=∑ipi\mathbf P = \sum_i\mathbf p_i, el movimiento uniforme del centro de masas y el momento angular

L=∑iri×pi.\mathbf L = \sum_i \mathbf r_i\times\mathbf p_i .

Para N≥3N\ge 3 no hay integrales adicionales suficientes para resolver el problema por cuadraturas (resultados de Bruns y Poincaré), así que la integración numérica es inevitable. La pregunta es: ¿qué estructura del flujo exacto debe respetar un buen integrador?

2. Dos integradores

Ilustración: Dos integradores

Escribimos y=(q,p)y = (\mathbf q,\mathbf p), y˙=f(y)\dot y = f(y), y un paso de tamaño hh de yny_n a yn+1≈y(tn+h)y_{n+1}\approx y(t_n+h).

2.1 Runge–Kutta clásico (RK4)

k1=f(yn),k2=f ⁣(yn+h2k1),k3=f ⁣(yn+h2k2),k4=f(yn+hk3),yn+1=yn+h6(k1+2k2+2k3+k4).\begin{aligned} k_1 &= f(y_n), & k_2 &= f\!\left(y_n + \tfrac h2 k_1\right),\\ k_3 &= f\!\left(y_n + \tfrac h2 k_2\right), & k_4 &= f(y_n + h k_3), \end{aligned} \qquad y_{n+1} = y_n + \frac h6\left(k_1 + 2k_2 + 2k_3 + k_4\right).

Error local O(h5)O(h^5) y global O(h4)O(h^4) en un intervalo fijo. Pero RK4 no es simpléctico: no hay nada que impida que los errores de energía de cada paso se acumulen con el mismo signo. El resultado típico en órbitas acotadas es una deriva secular, ∣ΔE∣∼C t hp\lvert\Delta E\rvert \sim C\,t\,h^{p} (con p≤4p\le 4 según el problema; véase el ejercicio 3, donde para el oscilador armónico sale t h5t\,h^5).

2.2 Leapfrog (Störmer–Verlet, kick-drift-kick)

Como H=T+VH = T + V, los flujos exactos de TT y de VV por separado son triviales:

  • flujo de VV (kick): φτV(q,p)=(q, p−τ ∇V(q))\varphi^V_\tau(\mathbf q,\mathbf p) = (\mathbf q,\ \mathbf p - \tau\,\nabla V(\mathbf q));
  • flujo de TT (drift): φτT(q,p)=(q+τM−1p, p)\varphi^T_\tau(\mathbf q,\mathbf p) = (\mathbf q + \tau M^{-1}\mathbf p,\ \mathbf p),

con M=diag⁡(mi)M = \operatorname{diag}(m_i). El leapfrog es la composición simétrica (splitting de Strang)

Φh=φh/2V∘φhT∘φh/2V,\Phi_h = \varphi^V_{h/2}\circ\varphi^T_{h}\circ\varphi^V_{h/2},

es decir, en términos de aceleraciones a(r)\mathbf a(\mathbf r):

vn+1/2=vn+h2 a(rn),rn+1=rn+h vn+1/2,vn+1=vn+1/2+h2 a(rn+1).\mathbf v_{n+1/2} = \mathbf v_n + \tfrac h2\,\mathbf a(\mathbf r_n),\qquad \mathbf r_{n+1} = \mathbf r_n + h\,\mathbf v_{n+1/2},\qquad \mathbf v_{n+1} = \mathbf v_{n+1/2} + \tfrac h2\,\mathbf a(\mathbf r_{n+1}).

Cuesta una evaluación de fuerzas por paso (la última se reutiliza en el siguiente), frente a cuatro de RK4. Tiene tres propiedades estructurales:

  1. Simpléctico. Cada factor es el flujo exacto de un hamiltoniano, luego es simpléctico, y la composición de aplicaciones simplécticas lo es (ejercicio 1). Recordemos que Φ\Phi es simpléctica si su jacobiana cumple Φ′(y)TJ Φ′(y)=J\Phi'(y)^{\mathsf T} J\,\Phi'(y) = J con J=(0I−I0)J = \begin{pmatrix}0 & I\\ -I & 0\end{pmatrix}.
  2. Simétrico (reversible): Φ−h=Φh−1\Phi_{-h} = \Phi_h^{-1}; por eso su orden es par, aquí 22.
  3. Conserva L\mathbf L exactamente (salvo redondeo), porque cada kick aplica fuerzas centrales por pares y cada drift mueve ri\mathbf r_i paralelo a vi\mathbf v_i (ejercicio 2).

3. ¿Por qué la energía no deriva? El hamiltoniano modificado

Ilustración: ¿Por qué la energía no deriva? El hamiltoniano modificado

El análisis de error regresivo (backward error analysis) busca un hamiltoniano H~\tilde H cuyo flujo exacto coincida con el método numérico. Si XFX_F denota el campo hamiltoniano de FF, el flujo de VV durante τ\tau es exp⁡(τXV)\exp(\tau X_V) y la fórmula simétrica de Baker–Campbell–Hausdorff da

log⁡ ⁣(eh2XV ehXT eh2XV)=h (XV+XT)+O(h3),\log\!\left(e^{\frac h2 X_V}\,e^{h X_T}\,e^{\frac h2 X_V}\right) = h\,(X_V + X_T) + O(h^3),

donde los términos de orden h3h^3 son conmutadores dobles de XVX_V y XTX_T. Como el conmutador de campos hamiltonianos es (salvo signo) el campo del corchete de Poisson {F,G}=∑i(∂qiF⋅∂piG−∂piF⋅∂qiG)\{F,G\} = \sum_i\left(\partial_{\mathbf q_i}F\cdot\partial_{\mathbf p_i}G - \partial_{\mathbf p_i}F\cdot\partial_{\mathbf q_i}G\right), el método es (formalmente) el flujo exacto de

H~=H+h2(112{T,{T,V}}−124{V,{V,T}})+O(h4).\tilde H = H + h^2\left(\frac1{12}\{T,\{T,V\}\} - \frac1{24}\{V,\{V,T\}\}\right) + O(h^4).

Los coeficientes se comprueban en el oscilador armónico, donde todo es explícito (ejercicio 4). Al ser Φh\Phi_h simpléctico, la serie H~\tilde H es hamiltoniana —esto es lo que falla para RK4— y la solución numérica conserva H~\tilde H salvo términos exponencialmente pequeños. El resultado preciso (Hairer, Lubich & Wanner, cap. IX, teorema 8.1, para HH analítico) es

∣H(yn)−H(y0)∣≤C h2paranh≤e h0/(2h),\lvert H(y_n) - H(y_0)\rvert \le C\,h^2 \qquad \text{para}\qquad n h \le e^{\,h_0/(2h)},

con CC, h0h_0 independientes de nn y hh. Es decir: error de energía acotado en O(h2)O(h^2) durante tiempos exponencialmente largos, sin deriva. El error oscila (crece en los pericentros y vuelve a bajar), pero no se acumula.

Dos advertencias honestas:

  • La constante CC y la escala h0h_0 dependen de lo analítico que sea HH a lo largo de la órbita. En un encuentro cercano (rij→0r_{ij}\to 0) la escala de tiempo local ∼rij3/(Gm)\sim\sqrt{r_{ij}^3/(G m)} se hace minúscula y un paso fijo deja de resolverla: el leapfrog de paso fijo pierde sus garantías. En la práctica se usan regularizaciones (Kustaanheimo–Stiefel), pasos adaptativos simétricos o integradores especializados.
  • Un paso adaptativo ingenuo destruye la simplecticidad: la aplicación cambia de paso a paso con un h(y)h(y).

3.1 Orden superior sin perder la estructura: el integrador de Yoshida

El leapfrog es de orden 2. Yoshida (1990) observó que, por ser simétrico (Φ−h=Φh−1\Phi_{-h} = \Phi_h^{-1}), su desarrollo en hh solo contiene potencias impares, Φh=exp⁡ ⁣(hXH+h3X3+h5X5+… )\Phi_h = \exp\!\left(h X_H + h^3 X_3 + h^5 X_5 + \dots\right), y que una composición simétrica de tres pasos de tamaños w1hw_1 h, w0hw_0 h, w1hw_1 h,

Φh(4)=Φw1h∘Φw0h∘Φw1h,2w1+w0=1,2w13+w03=0,\Phi^{(4)}_h = \Phi_{w_1 h}\circ\Phi_{w_0 h}\circ\Phi_{w_1 h},\qquad 2w_1 + w_0 = 1,\qquad 2w_1^3 + w_0^3 = 0,

anula el término h3h^3: la primera condición garantiza la consistencia (avanzar hh en total) y la segunda cancela X3X_3 (los conmutadores de orden h3h^3 se suman linealmente en los wi3w_i^3 al primer orden). La solución es

w1=12−21/3≈1.3512,w0=−21/32−21/3≈−1.7024.w_1 = \frac{1}{2 - 2^{1/3}} \approx 1.3512,\qquad w_0 = -\frac{2^{1/3}}{2 - 2^{1/3}} \approx -1.7024 .

El paso central es negativo y mayor que hh en valor absoluto: el método va hacia delante, hacia atrás y de nuevo hacia delante. Es inevitable (Suzuki 1991): ninguna composición de pasos positivos del leapfrog supera el orden 2. El resultado es simpléctico y simétrico (composición de aplicaciones simplécticas y simétricas), de orden 4, con 3 evaluaciones de fuerza por paso. El mismo truco iterado da órdenes 6 y 8 (Yoshida da los coeficientes), con 7 y 15 leapfrogs por paso.

Está en src/lib/math/yoshida.ts. Medidas con nuestro código (test yoshida.test.ts):

Problemahhmax⁡∣ΔE/E0∣\max\lvert\Delta E/E_0\rvert leapfrogmax⁡∣ΔE/E0∣\max\lvert\Delta E/E_0\rvert Yoshida 4
Ocho, 1 periodo0.022.4×10−42.4\times10^{-4}1.1×10−71.1\times10^{-7}
Ocho, 1 periodo0.015.9×10−55.9\times10^{-5}7.0×10−97.0\times10^{-9}
Ocho, 1 periodo0.0051.5×10−51.5\times10^{-5}4.4×10−104.4\times10^{-10}
Dos cuerpos e=0.7e = 0.7, 100 periodos0.032.2×10−22.2\times10^{-2}6.2×10−46.2\times10^{-4}

Al dividir hh por 2 el error del leapfrog se divide por 4 y el de Yoshida por 16: órdenes 2 y 4. Y en la órbita excéntrica larga ambos quedan acotados (el máximo de la segunda mitad no supera al de la primera), mientras que RK4 con el mismo paso termina con 6.7×10−36.7\times10^{-3} y sigue creciendo. A igual coste (3 evaluaciones de Yoshida frente a 3 pasos de leapfrog de tamaño h/3h/3, cuyo error sería 2.2×10−2/9=2.4×10−32.2\times10^{-2}/9 = 2.4\times10^{-3}), Yoshida gana por un factor 4 en este problema, y la ventaja crece al reducir hh.

3.2 El teorema de conservación de energía en general

El resultado de la sección anterior no es exclusivo del orden 2. Para cualquier integrador simpléctico de orden pp aplicado a un hamiltoniano analítico, con paso suficientemente pequeño (Hairer, Lubich & Wanner, cap. IX, teorema 8.1),

∣H(yn)−H(y0)∣≤C hpparanh≤e h0/(2h).\lvert H(y_n) - H(y_0)\rvert \le C\,h^{p}\qquad\text{para}\qquad n h \le e^{\,h_0/(2h)} .

La demostración sigue el mismo camino: el método es el flujo exacto, salvo términos exponencialmente pequeños, de un hamiltoniano modificado H~=H+hpHp+1+hp+1Hp+2+…\tilde H = H + h^p H_{p+1} + h^{p+1}H_{p+2} + \dots (truncado óptimamente), y H~\tilde H se conserva exactamente por ese flujo; la diferencia H~−H=O(hp)\tilde H - H = O(h^p) es acotada en una región acotada del espacio de fases. Para Yoshida, p=4p = 4: eso es lo que muestra la tabla. La condición «paso suficientemente pequeño» es seria: Yoshida tiene pasos internos de tamaño 1.7h1.7h, así que su límite de estabilidad en el oscilador es hω<2/1.7024=1.17h\omega \lt 2/1.7024 = 1.17 en vez de 22 (ejercicio 7).

tres masas iguales, T ≈ 6.3259 · t = 0.00

Qué observar. Con el escenario «2 cuerpos, e = 0.8» y «Ambos superpuestos», el error del leapfrog (línea continua) oscila con picos en cada pericentro pero su envolvente no crece; el de RK4 (discontinua) arranca más pequeño en muchos tramos y crece de forma monótona hasta superarlo. Sube la velocidad para ver decenas de periodos. En los tests de src/lib/math/__tests__/nbody.test.ts (e = 0.7, h=0.03h = 0.03, 100 periodos) el error de RK4 crece linealmente con tt, mientras que el máximo del leapfrog en la segunda mitad no supera al de la primera. En nuestras corridas la deriva de RK4 escala aproximadamente como h5h^5 (paso 0.02→0.030.02\to0.03 multiplica el error por ≈7.5≈1.55\approx 7.5 \approx 1.5^5), en línea con el ejercicio 3.

4. Sensibilidad a las condiciones iniciales

Ilustración: Sensibilidad a las condiciones iniciales

Sea y(t)y(t) una solución y y(t)+δy(t)y(t) + \delta y(t) otra que parte a distancia ∥δy(0)∥=δ0\lVert\delta y(0)\rVert = \delta_0 en el espacio de fases. El máximo exponente de Lyapunov es

λ=lim⁡t→∞ lim⁡δ0→0 1t ln⁡∥δy(t)∥δ0.\lambda = \lim_{t\to\infty}\ \lim_{\delta_0\to 0}\ \frac1t\,\ln\frac{\lVert\delta y(t)\rVert}{\delta_0}.

Si λ>0\lambda > 0 la separación crece como δ0eλt\delta_0 e^{\lambda t} y la órbita es caótica; tL=1/λt_L = 1/\lambda es el tiempo de Lyapunov. En un sistema integrable (Kepler) las órbitas vecinas se separan solo polinómicamente (por la diferencia de periodos) y λ=0\lambda = 0.

Numéricamente la separación satura cuando deja de ser pequeña, así que el método de Benettin et al. (1980) renormaliza: cada intervalo τ\tau mide δk\delta_k, acumula ln⁡(δk/δ0)\ln(\delta_k/\delta_0) y reescala la trayectoria vecina a distancia δ0\delta_0 a lo largo de la dirección actual. Tras KK intervalos,

λ≈1Kτ∑k=1Kln⁡δkδ0.\lambda \approx \frac1{K\tau}\sum_{k=1}^{K}\ln\frac{\delta_k}{\delta_0}.

Está implementado en lyapunovBenettin; el simulador muestra además la estimación sin renormalizar ln⁡(δ/δ0)/t\ln(\delta/\delta_0)/t (válida mientras δ≪1\delta \ll 1). La distancia usada es la euclídea en R6N\mathbb R^{6N}, δ2=∑i∥ri−ri′∥2+∥vi−vi′∥2\delta^2 = \sum_i \lVert\mathbf r_i-\mathbf r_i'\rVert^2 + \lVert\mathbf v_i-\mathbf v_i'\rVert^2.

Cómo medirlo en la práctica. Tres decisiones afectan al número que sale: (1) el intervalo de renormalización τ\tau debe ser menor que el tiempo en que δ\delta sale del régimen lineal (δ0eλτ≪1\delta_0 e^{\lambda\tau} \ll 1) pero no tan corto que domine el ruido de redondeo; (2) δ0\delta_0 debe superar con holgura el redondeo (10−810^{-8} frente a 10−1610^{-16}) para que la dirección inicial de la perturbación sea significativa; (3) λ\lambda se define como límite t→∞t \to \infty, pero la estimación a tiempo finito converge como ∼1/t\sim 1/t (ley de los grandes números sobre los ln⁡(δk/δ0)\ln(\delta_k/\delta_0)) y, en sistemas que alternan tramos regulares y encuentros cercanos, fluctúa fuertemente de un intervalo a otro. Por eso debe darse siempre con su tiempo de integración y, si es posible, promediada sobre condiciones iniciales vecinas. Una comprobación útil: en un sistema integrable (dos cuerpos) el estimador debe decaer como ln⁡t/t\ln t/t hacia cero; si no lo hace, el error numérico está siendo tomado por caos. Y otra: λ\lambda no depende del integrador si hh es pequeño; si cambia al cambiar hh (como ocurre en el problema pitagórico con h=10−3h = 10^{-3} frente a 10−410^{-4}), los encuentros cercanos no están resueltos.

Consecuencia práctica. Si queremos el estado con tolerancia Δ\Delta partiendo de una incertidumbre δ0\delta_0, el horizonte de predicción es

tpred≈1λ ln⁡Δδ0,t_{\text{pred}} \approx \frac1\lambda\,\ln\frac{\Delta}{\delta_0},

que solo crece logarítmicamente con la precisión inicial. Ni siquiera el redondeo de doble precisión (δ0∼10−16\delta_0\sim 10^{-16}) escapa: también es una perturbación que el caos amplifica. Por eso en un sistema caótico no tiene sentido pedir la trayectoria exacta a tiempos largos, sino propiedades estadísticas o estructurales (energía, estado final), y por eso importa tanto que el integrador respete las cantidades conservadas.

5. Dos soluciones paradigmáticas

Ilustración: Dos soluciones paradigmáticas

5.1 La figura en ocho

Moore (1993) encontró numéricamente una órbita periódica en la que tres masas iguales se persiguen sobre una misma curva en forma de ocho; Chenciner y Montgomery (2000) demostraron su existencia minimizando la acción ∫0T(T−V) dt\int_0^T (T - V)\,dt sobre lazos con las simetrías del ocho. Con mi=1m_i = 1, G=1G = 1 y las condiciones de Simó (2002),

x1=−x2=(0.97000436, −0.24308753),x3=0,v3=−2v1=−2v2=(−0.93240737, −0.86473146),\mathbf x_1 = -\mathbf x_2 = (0.97000436,\ -0.24308753),\quad \mathbf x_3 = \mathbf 0,\qquad \mathbf v_3 = -2\mathbf v_1 = -2\mathbf v_2 = (-0.93240737,\ -0.86473146),

el periodo es T≈6.3259T \approx 6.3259, el momento angular es nulo y la energía vale E≈−1.28714E \approx -1.28714 (comprobado en los tests). Simó mostró que es linealmente estable: una perturbación de 10−610^{-6} no destruye el ocho, y en el simulador δ(t)\delta(t) crece despacio, no exponencialmente. Es una buena prueba de integradores: tras un periodo el estado debe volver al inicial (en los tests, a menos de 10−410^{-4} con h=T/6000h = T/6000).

5.2 El problema pitagórico de Burrau

Burrau (1913) planteó tres masas 33, 44 y 55 en reposo en los vértices de un triángulo rectángulo de lados 33, 44, 55, cada masa frente al lado de igual longitud. Con las coordenadas de Szebehely & Peters (1967),

m=3: (1,3),m=4: (−2,−1),m=5: (1,−1),m=3:\ (1,3),\qquad m=4:\ (-2,-1),\qquad m=5:\ (1,-1),

el centro de masas está en el origen, L=0\mathbf L = \mathbf 0 y E=V=−(125+154+203)=−76960E = V = -\left(\tfrac{12}{5} + \tfrac{15}{4} + \tfrac{20}{3}\right) = -\tfrac{769}{60}. Burrau solo pudo integrar a mano el comienzo; Szebehely y Peters (1967), ya con ordenador y regularización, mostraron que tras una serie de encuentros cercanos el sistema se rompe: hacia t≈59.4t \approx 59.4 (unidades G=1G = 1) se produce un último encuentro triple y la masa 33 es expulsada definitivamente, mientras las masas 44 y 55 quedan como binaria; Peters prolongó la integración hasta t=67t = 67 para confirmar la escapada (movimiento «elíptico-hiperbólico»).

Aquí aparecen juntas las dos lecciones: los encuentros cercanos hacen que el leapfrog de paso fijo muestre picos de ∣ΔE/E0∣\lvert\Delta E/E_0\rvert (prueba a variar hh) y la dinámica es caótica. Con nuestra implementación (lyapunovBenettin, h=10−4h = 10^{-4}, t∈[0,20]t\in[0,20]) la estimación a tiempo finito es λ≈1\lambda \approx 1 en unidades G=1G = 1, frente a ≈0.1\approx 0.1 para la órbita circular de dos cuerpos en t∈[0,50]t\in[0,50] (en este caso el valor verdadero es 00 y lo que se mide es el decaimiento lento ∼ln⁡t/t\sim\ln t/t de la estimación). Son estimaciones de nuestro código, no valores de referencia.

Problemas

Ejercicio 1 (simplecticidad del leapfrog). Demuestra que φτV\varphi^V_\tau y φτT\varphi^T_\tau son simplécticas y concluye que Φh\Phi_h lo es.

Ver solución

Demostración. La jacobiana del kick es A=(I0−τSI)A = \begin{pmatrix} I & 0\\ -\tau S & I\end{pmatrix} con S=∇2VS = \nabla^2 V simétrica. Entonces

ATJA=(I−τS0I)(0I−I0)(I0−τSI)=(−τS+τSTI−I0)=J,A^{\mathsf T} J A = \begin{pmatrix} I & -\tau S\\ 0 & I\end{pmatrix}\begin{pmatrix}0 & I\\ -I & 0\end{pmatrix}\begin{pmatrix} I & 0\\ -\tau S & I\end{pmatrix} = \begin{pmatrix} -\tau S + \tau S^{\mathsf T} & I\\ -I & 0\end{pmatrix} = J,

usando S=STS = S^{\mathsf T}. Para el drift, B=(IτM−10I)B = \begin{pmatrix} I & \tau M^{-1}\\ 0 & I\end{pmatrix} y el mismo cálculo funciona porque M−1M^{-1} es simétrica. Por la regla de la cadena (Φ∘Ψ)′=Φ′(Ψ) Ψ′(\Phi\circ\Psi)' = \Phi'(\Psi)\,\Psi', y si Φ′TJΦ′=J\Phi'^{\mathsf T}J\Phi' = J y Ψ′TJΨ′=J\Psi'^{\mathsf T}J\Psi' = J entonces (Φ′Ψ′)TJ(Φ′Ψ′)=Ψ′TJΨ′=J(\Phi'\Psi')^{\mathsf T}J(\Phi'\Psi') = \Psi'^{\mathsf T}J\Psi' = J. ■\blacksquare

Ejercicio 2 (conservación exacta de L\mathbf L). Demuestra que el leapfrog conserva L\mathbf L para cualquier hh.

Ver solución

Demostración. En un kick, las posiciones no cambian y Δpi=τFi\Delta\mathbf p_i = \tau\mathbf F_i con Fi=∑j≠iFij\mathbf F_i = \sum_{j\ne i}\mathbf F_{ij}, Fij=−Fji\mathbf F_{ij} = -\mathbf F_{ji} paralela a ri−rj\mathbf r_i - \mathbf r_j. Así ΔL=τ∑i<j(ri−rj)×Fij=0\Delta\mathbf L = \tau\sum_{i<j}(\mathbf r_i - \mathbf r_j)\times\mathbf F_{ij} = \mathbf 0. En un drift, ri↦ri+τpi/mi\mathbf r_i \mapsto \mathbf r_i + \tau\mathbf p_i/m_i y ΔL=∑i(τ/mi) pi×pi=0\Delta\mathbf L = \sum_i (\tau/m_i)\,\mathbf p_i\times\mathbf p_i = \mathbf 0. ■\blacksquare (RK4 no tiene esta propiedad: sus etapas intermedias mezclan posiciones y velocidades de distintos instantes.)

Ejercicio 3 (RK4 disipa energía en el oscilador). Para q˙=p\dot q = p, p˙=−q\dot p = -q escribe z=q+ipz = q + i p, de modo que z˙=−iz\dot z = -i z. Demuestra que RK4 da zn+1=R(−ih) znz_{n+1} = R(-ih)\,z_n con R(w)=1+w+w2/2+w3/6+w4/24R(w) = 1 + w + w^2/2 + w^3/6 + w^4/24 y que

∣R(−ih)∣2=1−h672+h8576.\lvert R(-ih)\rvert^2 = 1 - \frac{h^6}{72} + \frac{h^8}{576}.
Ver solución

Demostración. Aplicar RK4 a z˙=μz\dot z = \mu z da exactamente el polinomio de Taylor de grado 4 de ehμe^{h\mu}. Con θ=h\theta = h, R(−iθ)=(1−θ22+θ424)−i(θ−θ36)R(-i\theta) = \left(1 - \tfrac{\theta^2}2 + \tfrac{\theta^4}{24}\right) - i\left(\theta - \tfrac{\theta^3}6\right), y

∣R∣2=1−θ2+(14+112)θ4−θ624+θ8576+θ2−θ43+θ636=1−θ672+θ8576. ■\lvert R\rvert^2 = 1 - \theta^2 + \left(\tfrac14 + \tfrac1{12}\right)\theta^4 - \tfrac{\theta^6}{24} + \tfrac{\theta^8}{576} + \theta^2 - \tfrac{\theta^4}3 + \tfrac{\theta^6}{36} = 1 - \tfrac{\theta^6}{72} + \tfrac{\theta^8}{576}. \ \blacksquare

Como E=∣z∣2/2E = \lvert z\rvert^2/2, tras n=t/hn = t/h pasos En=E0(1−h6/72+… )t/h≈E0 e−th5/72E_n = E_0\left(1 - h^6/72 + \dots\right)^{t/h} \approx E_0\,e^{-t h^5/72}: una deriva secular, lineal en tt para th5≪1t h^5 \ll 1, y sin cota a tiempos largos.

Ejercicio 4 (invariante exacto del leapfrog en el oscilador). Demuestra que el leapfrog aplicado a H=(p2+q2)/2H = (p^2 + q^2)/2 es la aplicación lineal

(qn+1pn+1)=(1−h22h−h(1−h24)1−h22)(qnpn),\begin{pmatrix} q_{n+1}\\ p_{n+1}\end{pmatrix} = \begin{pmatrix} 1 - \tfrac{h^2}2 & h\\ -h\left(1 - \tfrac{h^2}4\right) & 1 - \tfrac{h^2}2\end{pmatrix}\begin{pmatrix} q_{n}\\ p_{n}\end{pmatrix},

que conserva exactamente Ih=p2+(1−h24)q2I_h = p^2 + \left(1 - \tfrac{h^2}4\right)q^2, que es estable si y solo si 0<h<20 \lt h \lt 2, y que esto concuerda con H~\tilde H de la sección 3.

Ver solución

Demostración. Sustituyendo, p1/2=p−h2qp_{1/2} = p - \tfrac h2 q, q1=(1−h22)q+hpq_1 = (1 - \tfrac{h^2}2)q + h p y p1=p1/2−h2q1p_1 = p_{1/2} - \tfrac h2 q_1 dan la matriz M=(ah−hca)\mathcal M = \begin{pmatrix} a & h\\ -hc & a\end{pmatrix} con a=1−h2/2a = 1 - h^2/2, c=1−h2/4c = 1 - h^2/4. Su determinante es a2+h2c=1a^2 + h^2 c = 1 (área preservada: simpléctica en 1 grado de libertad). Con D=diag⁡(c,1)D = \operatorname{diag}(c, 1) se comprueba MTD M=D\mathcal M^{\mathsf T} D\,\mathcal M = D: la entrada (1,1)(1,1) es a2c+h2c2=c(a2+h2c)=ca^2 c + h^2c^2 = c(a^2 + h^2c) = c, la (2,2)(2,2) es h2c+a2=1h^2 c + a^2 = 1 y la cruzada ahc−hca=0a h c - h c a = 0. Luego IhI_h se conserva. Los autovalores satisfacen λ2−2aλ+1=0\lambda^2 - 2a\lambda + 1 = 0; son de módulo 1 y distintos si ∣a∣<1\lvert a\rvert \lt 1, es decir 0<h<20 \lt h \lt 2, con frecuencia numérica cos⁡(ω~h)=1−h2/2\cos(\tilde\omega h) = 1 - h^2/2. Por otra parte, con T=p2/2T = p^2/2, V=q2/2V = q^2/2: {T,V}=−pq\{T,V\} = -pq, {T,{T,V}}=p2\{T,\{T,V\}\} = p^2, {V,{V,T}}=q2\{V,\{V,T\}\} = q^2, y

H~=p2+q22+h2(p212−q224)+O(h4)=1+h2/62[p2+(1−h24)q2]+O(h4),\tilde H = \frac{p^2+q^2}2 + h^2\left(\frac{p^2}{12} - \frac{q^2}{24}\right) + O(h^4) = \frac{1 + h^2/6}{2}\left[p^2 + \left(1 - \tfrac{h^2}4\right)q^2\right] + O(h^4),

proporcional a IhI_h hasta O(h4)O(h^4). ■\blacksquare El error de energía H−H(0)H - H(0) es por tanto acotado y de tamaño O(h2)O(h^2), exactamente lo que predice la teoría general.

Ejercicio 5 (horizonte de predictibilidad). Con λ=1\lambda = 1 (unidades G=1G=1), ¿cuánto se alarga el horizonte de predicción con tolerancia Δ=10−2\Delta = 10^{-2} si pasamos de δ0=10−6\delta_0 = 10^{-6} a δ0=10−16\delta_0 = 10^{-16}?

Ver solución

Solución. tpred=ln⁡(Δ/δ0)/λt_{\text{pred}} = \ln(\Delta/\delta_0)/\lambda: de ln⁡104≈9.2\ln 10^{4} \approx 9.2 a ln⁡1014≈32.2\ln 10^{14} \approx 32.2. Diez órdenes de magnitud de precisión inicial compran solo un factor ≈3.5\approx 3.5 en tiempo.

Ejercicio 6 (con el simulador). (a) En el ocho con «Ambos», fija h=0.1h = 0.1: ¿qué integrador mantiene la forma de la órbita durante más periodos? Relaciónalo con la sección 3. (b) Activa «Perturbar» en el ocho y en el problema pitagórico. Compara cómo crece δ(t)\delta(t) en la gráfica logarítmica: una recta de pendiente λ/ln⁡10\lambda/\ln 10 indica crecimiento exponencial. (c) En el pitagórico, reduce hh de 10−210^{-2} a 10−410^{-4}. ¿Cambia el estado final? ¿Por qué no contradice esto el teorema de la sección 3? (Pista: encuentros cercanos y caos.)

Ver solución

(a) El leapfrog: con h=0.1h = 0.1 (≈63\approx 63 pasos por periodo) RK4 deforma el ocho en pocas vueltas porque su error de energía se acumula, mientras que el leapfrog mantiene la forma (aunque con un desfase creciente a lo largo de la curva: el error de fase sí crece, lo que no crece es el error de energía). (b) En el ocho, log⁡10δ\log_{10}\delta crece despacio y casi linealmente en tt (crecimiento polinómico: órbita linealmente estable); en el pitagórico crece como una recta en la gráfica logarítmica, con saltos en cada encuentro cercano: pendiente λ/ln⁡10\lambda/\ln 10. (c) Cambia: con h=10−2h = 10^{-2} los encuentros cercanos no están resueltos (la escala de tiempo local r3/Gm\sqrt{r^3/Gm} baja de 10−210^{-2}) y el error en ellos, amplificado por el caos (λ∼1\lambda \sim 1), lleva a un estado final distinto. El teorema exige h<h0h \lt h_0 con h0h_0 fijado por la analiticidad de HH a lo largo de la órbita, y en un encuentro cercano h0h_0 se hace minúsculo; además, el teorema acota la energía, no la trayectoria, y en un sistema caótico dos trayectorias con la misma energía pueden terminar en estados completamente distintos.

Ejercicio 7 (computacional: Yoshida). Implementa el leapfrog y el integrador de Yoshida de orden 4 para el problema de dos cuerpos (G=1G = 1, m1=1m_1 = 1, m2=0.01m_2 = 0.01, a=1a = 1, e=0.7e = 0.7). (a) Reproduce la tabla de §3.1 midiendo max⁡∣ΔE/E0∣\max\lvert\Delta E/E_0\rvert en 100 periodos con h=0.03h = 0.03. (b) Mide el orden de ambos en un periodo con h=0.02,0.01,0.005h = 0.02, 0.01, 0.005. (c) Aplica Yoshida al oscilador armónico q˙=p\dot q = p, p˙=−q\dot p = -q y determina numéricamente el hh a partir del cual la solución explota; compáralo con 2/1.70242/1.7024.

Ver solución

Esqueleto en Python para (a) y (b):

import numpy as np
w1 = 1/(2 - 2**(1/3)); w0 = -2**(1/3)/(2 - 2**(1/3))
def acel(r):                      # r: (N,3); masas m globales
    a = np.zeros_like(r)
    for i in range(len(r)):
        d = r - r[i]; dist = np.linalg.norm(d, axis=1); dist[i] = np.inf
        a[i] = np.sum((m/dist**3)[:, None]*d, axis=0)
    return a
def leapfrog(r, v, h):
    v = v + 0.5*h*acel(r); r = r + h*v; v = v + 0.5*h*acel(r); return r, v
def yoshida4(r, v, h):
    for w in (w1, w0, w1): r, v = leapfrog(r, v, w*h)
    return r, v
def energia(r, v):
    K = 0.5*np.sum(m*np.sum(v**2, axis=1)); U = 0
    for i in range(len(r)):
        for j in range(i+1, len(r)): U -= m[i]*m[j]/np.linalg.norm(r[i]-r[j])
    return K + U

Las condiciones iniciales se toman de dosCuerpos (apocentro: r=a(1+e)r = a(1+e), v=μ(1−e)/(a(1+e))v = \sqrt{\mu(1-e)/(a(1+e))}, repartidos según las masas). Resultados esperados: tabla de §3.1 (leapfrog 2.2×10−22.2\times10^{-2}, Yoshida 6.2×10−46.2\times10^{-4}), cocientes de error ≈4\approx 4 y ≈16\approx 16 al dividir hh por 2. (c) Para el oscilador, la matriz del leapfrog con paso whwh tiene autovalores de módulo 1 si ∣wh∣<2\lvert wh\rvert \lt 2; el paso más largo es ∣w0∣h=1.7024 h\lvert w_0\rvert h = 1.7024\,h, luego Yoshida es estable si h<2/1.7024=1.175h \lt 2/1.7024 = 1.175. Numéricamente, con h=1.17h = 1.17 la energía oscila acotada y con h=1.18h = 1.18 crece exponencialmente. Es el precio del paso negativo: el orden 4 compra precisión a cambio de un 40 % menos de margen de estabilidad.

✦ Autoevaluación

  1. 1. ¿Qué propiedad del leapfrog explica que su error de energía quede acotado durante tiempos muy largos?
  2. 2. RK4 aplicado a una órbita acotada durante miles de periodos muestra típicamente…
  3. 3. El integrador de Yoshida de orden 4 se obtiene componiendo tres leapfrogs con pesos w₁, w₀, w₁ tales que…
  4. 4. Si el máximo exponente de Lyapunov de un sistema es λ = 1 (en unidades G = 1), mejorar la precisión de las condiciones iniciales de 10⁻⁶ a 10⁻¹² alarga el horizonte de predicción (tolerancia 10⁻²)…
  5. 5. La figura en ocho de Chenciner–Montgomery es…
  6. 6. En el problema pitagórico de Burrau, el leapfrog de paso fijo muestra picos de error de energía en los encuentros cercanos porque…
Responde todas para comprobar.

Lecturas

  • Hairer, Lubich & Wanner (2006), Geometric Numerical Integration: cap. I (ejemplos y leapfrog), §II.4–II.5 (métodos de composición y splitting: construcción de Yoshida), cap. VI (integradores simplécticos), cap. IX (análisis de error regresivo; teorema 8.1 de conservación de energía).
  • Yoshida (1990), Phys. Lett. A 150, 262: los coeficientes de órdenes 4, 6 y 8 y la demostración por BCH.
  • Chenciner & Montgomery (2000), Ann. Math. 152, 881, y Simó (2002): existencia y estabilidad del ocho. Moore (1993), PRL 70, 3675: su descubrimiento numérico.
  • Szebehely & Peters (1967), AJ 72, 876: la solución completa del problema pitagórico, con las figuras de la expulsión.
  • Benettin, Galgani, Giorgilli & Strelcyn (1980), Meccanica 15, 9: el método de renormalización para los exponentes de Lyapunov.
  • Aarseth, S. J. (2003), Gravitational N-Body Simulations, cap. 1–2: el punto de vista del especialista en N cuerpos sobre integradores y regularización.
🍎 Guía para el profesor
Tiempo
2 clases de 90 min más un taller de programación de 2 h
Resultado de aprendizaje
Al finalizar, el estudiante demuestra que el leapfrog es simpléctico y conserva el momento angular, explica mediante el hamiltoniano modificado por qué su error de energía queda acotado, construye el integrador de Yoshida de orden 4, y estima numéricamente el exponente de Lyapunov de un sistema de tres cuerpos interpretando sus limitaciones.
Evidencia de aprendizaje
Entrega del ejercicio 7 (implementación de leapfrog y Yoshida con tabla de errores y medida del orden) y del ejercicio 6 (informe con capturas del simulador y la estimación de λ del problema pitagórico con dos pasos distintos).

Materiales

  • Python 3 con NumPy y Matplotlib
  • Código de referencia: src/lib/math/nbody.ts, yoshida.ts y sus tests
  • Simulador N cuerpos del portal
  • Los artículos de Chenciner–Montgomery (2000) y Szebehely–Peters (1967), para lectura opcional

Secuencia sugerida

Clase 1 (90 min). Inicio (15 min): el problema de N cuerpos como sistema hamiltoniano; las diez integrales. Desarrollo (60 min): RK4 y leapfrog; demostración de simplecticidad (ejercicio 1) y conservación de L (ejercicio 2) en pizarra; el hamiltoniano modificado y el enunciado del teorema de conservación de energía; comprobación en el oscilador (ejercicio 4). Cierre (15 min): simulador con «2 cuerpos, e = 0.8», comparar las curvas de error de energía.

Clase 2 (90 min). Inicio (10 min): «¿se puede tener orden 4 y simplecticidad?»: construcción de Yoshida (§3.1). Desarrollo (55 min): exponente de Lyapunov, método de Benettin, horizonte de predictibilidad (ejercicio 5); el ocho y el problema pitagórico, con sus historias. Cierre (25 min): ejercicio 6 con el simulador; mini-prueba.

Taller (2 h). Ejercicio 7 completo: leapfrog y Yoshida, tabla de errores, orden medido y límite de estabilidad. Extensión para quien termine: estimar λ del pitagórico con el método de Benettin y dos valores de h.

Errores frecuentes

  • Creer que un método de orden alto conserva mejor la energía a tiempos largos que uno simpléctico de orden bajo. La tabla de §3 (RK4 frente a leapfrog en 100 periodos) lo refuta; insistir en que orden y estructura son propiedades independientes.
  • Confundir error de energía con error de trayectoria. El leapfrog conserva la energía pero su error de fase crece linealmente; en el ocho se ve como un desfase a lo largo de la curva.
  • Tomar una estimación de λ a tiempo finito como «el» exponente de Lyapunov. Pedir siempre el tiempo de integración, la dependencia con h y la comprobación con un sistema integrable.
  • Pensar que el paso negativo de Yoshida es un error. Mostrar el teorema de Suzuki: con pasos positivos no se pasa de orden 2.
  • Usar paso adaptativo con un simpléctico y esperar que la energía siga acotada. Remitir a la lección siguiente (Runge–Kutta y paso adaptativo).
Palabras clave de esta lección (12)

Términos del glosario que aparecen en el texto. Cada uno enlaza a su ficha completa.

  • Leapfrog (salto de rana) Un método de simulación que alterna «empujón» (cambiar la velocidad) y «deslizamiento» (mover la posición), como una rana que salta. Es sencillo, reversible en el tiempo y conserva muy bien la energía.
  • Integrador simpléctico Un método numérico diseñado para que, al simular órbitas durante millones de años, la energía no se escape ni se acumule poco a poco. Por eso se usa para estudiar la estabilidad del Sistema Solar.
  • Método de Runge–Kutta Una mejora del método de Euler que «prueba» la pendiente en varios puntos intermedios de cada paso y las promedia. El de cuarto orden (RK4) es miles de veces más preciso con el mismo tamaño de paso.
  • Problema de N cuerpos Simular muchos cuerpos que se atraen todos con todos: un cúmulo de estrellas, una galaxia, el universo. Como cada cuerpo siente a todos los demás, el cálculo crece muy rápido con N; el truco de Barnes–Hut agrupa los lejanos.
  • Caos determinista Un movimiento que sigue reglas exactas pero es imposible de predecir a largo plazo, porque un cambio diminuto al principio produce resultados totalmente distintos. Las órbitas de los planetas son caóticas a escalas de millones de años.
  • Perturbación Cualquier «empujoncito» que aparta una órbita de la elipse perfecta: la atracción de otros planetas, el achatamiento de la Tierra, el rozamiento con el aire. Así se descubrió Neptuno, por las perturbaciones en Urano.
  • Flujo luminoso La cantidad de luz que llega a cada metro cuadrado. Una misma linterna alumbra menos tu mano cuanto más lejos la pones: el brillo baja con la distancia.
  • Horizonte La línea donde parece que el cielo toca la tierra o el mar. Un astro «sale» cuando cruza el horizonte hacia arriba y «se pone» cuando lo cruza hacia abajo.
  • Órbita El camino que sigue un cuerpo alrededor de otro por la gravedad: la Luna alrededor de la Tierra, la Tierra alrededor del Sol. Casi todas son elipses, óvalos un poco achatados.
  • Punto de Lagrange Cinco lugares especiales cerca de dos cuerpos (como el Sol y la Tierra) donde una nave puede quedarse «quieta» respecto a ellos. El telescopio James Webb está en uno de ellos, L2, a 1,5 millones de km.
  • Problema de dos cuerpos Calcular cómo se mueven dos cuerpos que solo se atraen entre sí, como el Sol y un planeta. Tiene solución exacta: las elipses de Kepler. Con tres cuerpos ya no hay fórmula cerrada.
  • Perihelio El punto de la órbita más cercano al Sol; ahí el planeta va más rápido. La Tierra pasa por él a comienzos de enero. Para la Luna alrededor de la Tierra se llama perigeo.

Ver todo el glosario →

Referencias

  • Hairer, E., Lubich, C. & Wanner, G. (2006). Geometric Numerical Integration: Structure-Preserving Algorithms for Ordinary Differential Equations, 2.ª ed. Springer. Caps. I, VI y IX.
  • Chenciner, A. & Montgomery, R. (2000). A remarkable periodic solution of the three-body problem in the case of equal masses. Annals of Mathematics 152, 881–901.
  • Moore, C. (1993). Braids in classical dynamics. Physical Review Letters 70, 3675–3679.
  • Simó, C. (2002). Dynamical properties of the figure eight solution of the three-body problem. Contemporary Mathematics 292, 209–228.
  • Burrau, C. (1913). Numerische Berechnung eines Spezialfalles des Dreikörperproblems. Astronomische Nachrichten 195, 113–118.
  • Szebehely, V. & Peters, C. F. (1967). Complete solution of a general problem of three bodies. The Astronomical Journal 72, 876–883.
  • Benettin, G., Galgani, L., Giorgilli, A. & Strelcyn, J.-M. (1980). Lyapunov characteristic exponents for smooth dynamical systems and for Hamiltonian systems. Meccanica 15, 9–20 (parte 1) y 21–30 (parte 2). DOI 10.1007/BF02128236 y 10.1007/BF02128237
  • Verlet, L. (1967). Computer 'experiments' on classical fluids. Physical Review 159, 98–103.
  • Yoshida, H. (1990). Construction of higher order symplectic integrators. Physics Letters A 150, 262–268. doi:10.1016/0375-9601(90)90092-3

Simuladores de esta lección: N cuerpos: integradores y caos