Astronomía y Exploración Espacial

Proyectos / Universidad

Universidad ⏱ 6 semanas · trabajo autónomo de 5 a 6 h semanales + 1 h de tutoría revision

Tu propio integrador de N cuerpos

«¿Por qué un integrador simpléctico de segundo orden conserva la energía durante millones de pasos y uno de cuarto orden no?»

Programar desde cero RK4 y leapfrog para el problema gravitatorio de N cuerpos, validarlos con el problema de dos cuerpos, la figura en ocho y el problema pitagórico de Burrau, y medir la deriva de la energía, el orden de convergencia y la sensibilidad caótica.

Objetivo

Implementar y verificar integradores RK4 y leapfrog (kick-drift-kick) para N cuerpos, demostrar empíricamente sus órdenes de convergencia y su comportamiento en energía y momento angular, reproducir soluciones de referencia y estimar un exponente de Lyapunov a tiempo finito.

Producto final

Biblioteca propia (Python o TypeScript) con pruebas automáticas, un cuaderno o informe con las gráficas de convergencia, deriva de energía y momento angular, la figura en ocho y Burrau reproducidos, y un análisis crítico comparando con src/lib/math/nbody.ts del portal.

Materiales

  • Computador con Python (NumPy, Matplotlib) o Node/TypeScript con Vitest
  • El código de referencia del portal: src/lib/math/integrators.ts y src/lib/math/nbody.ts, con sus tests
  • Condiciones iniciales de la figura en ocho (Chenciner & Montgomery 2000; Simó 2002) y del problema pitagórico (Szebehely & Peters 1967), reproducidas en la lección
  • Acceso al simulador N cuerpos del portal para comparar

Matemáticas que usa

  • Hamiltoniano de N cuerpos; integrales primeras: energía, momento lineal y angular
  • Métodos de Runge–Kutta (RK4) y de partición (leapfrog / Störmer–Verlet); orden local y global
  • Integradores simplécticos y hamiltoniano modificado (análisis hacia atrás)
  • Exponente de Lyapunov a tiempo finito (método de Benettin); regularización de encuentros cercanos

En el portal

Lecciones y artículos: Simuladores:

Fases del proyecto

Semana 1 — El problema y las integrales primeras

  1. Escribe el hamiltoniano H=∑ipi22mi−∑i<jGmimj∣ri−rj∣H = \sum_i \dfrac{p_i^2}{2m_i} - \sum_{i<j}\dfrac{G m_i m_j}{|\mathbf r_i - \mathbf r_j|} y deduce las ecuaciones de movimiento. Implementa aceleraciones(masas, posiciones) en O(N2)O(N^2) y verifica la tercera ley de Newton: ∑imiai=0\sum_i m_i \mathbf a_i = 0 a precisión de máquina.
  2. Implementa energia, momentoLineal, momentoAngular y pruebas de que son nulas o constantes en configuraciones sencillas (dos masas iguales en reposo; centro de masas en el origen).
  3. Elige unidades: G=1G = 1 para los problemas de referencia; para el Sistema Solar, UA, años y masas solares (G=4π2G = 4\pi^2).

Semana 2 — RK4

  1. Implementa RK4 genérico para y˙=f(t,y)\dot{\mathbf y} = \mathbf f(t, \mathbf y) con el estado y=(r1,…,rN,v1,…,vN)\mathbf y = (\mathbf r_1,\dots,\mathbf r_N,\mathbf v_1,\dots,\mathbf v_N) (lección 2).
  2. Prueba de convergencia con el problema de dos cuerpos circular (μ=1\mu = 1, r=1r = 1, v=1v = 1, T=2πT = 2\pi): error de posición tras un periodo para h=T/50,T/100,T/200,T/400h = T/50, T/100, T/200, T/400. La pendiente log–log debe ser ≈ 4.
  3. Deriva de energía: integra 1 000 periodos con h=T/100h = T/100 y grafica ΔE/E0\Delta E/E_0 contra tt: crece de forma secular (lineal). Mide la pendiente.
  4. Opcional: RK45 con paso adaptativo y tolerancia; compara el número de evaluaciones de f\mathbf f para el mismo error.

Semana 3 — Leapfrog (kick-drift-kick)

  1. Implementa el leapfrog KDK: v1/2=v0+h2a0\mathbf v_{1/2} = \mathbf v_0 + \tfrac h2\mathbf a_0; r1=r0+hv1/2\mathbf r_1 = \mathbf r_0 + h\mathbf v_{1/2}; v1=v1/2+h2a1\mathbf v_1 = \mathbf v_{1/2} + \tfrac h2\mathbf a_1. Comprueba que es de segundo orden (pendiente ≈ 2) y reversible en el tiempo: integrar nn pasos con hh y nn con −h-h devuelve el estado inicial a precisión de redondeo.
  2. Deriva de energía a 1 000 periodos: ΔE/E0\Delta E/E_0 oscila sin deriva secular. Explica el resultado con el hamiltoniano modificado H~=H+h2H2+…\tilde H = H + h^2 H_2 + \dots (lección 1).
  3. Momento angular: demuestra que el leapfrog lo conserva exactamente para fuerzas centrales (a redondeo) y compruébalo; RK4 no.
  4. Composición de Yoshida de cuarto orden a partir de tres leapfrogs; verifica el orden 4 y que sigue sin deriva de energía.

Semana 4 — Soluciones de referencia

  1. Figura en ocho: con las condiciones de Simó, integra un periodo T=6,3259T = 6{,}3259 con h=T/6000h = T/6000 y verifica que el estado vuelve al inicial con error <10−4< 10^{-4} y que E≈−1,28714E \approx -1{,}28714, L=0\mathbf L = 0. Grafica la trayectoria y compárala con el simulador N cuerpos.
  2. Problema pitagórico de Burrau: integra hasta t=70t = 70 con leapfrog de paso fijo y con RK4; observa los picos de ∣ΔE/E0∣|\Delta E/E_0| en los encuentros cercanos y la expulsión de la masa 3 hacia t≈59,4t \approx 59{,}4. Prueba h=10−3,10−4,10−5h = 10^{-3}, 10^{-4}, 10^{-5}: ¿cambia el instante de escape? ¿Es eso un fallo del integrador o una propiedad del sistema?
  3. Añade un suavizado ϵ\epsilon (∣r∣2→∣r∣2+ϵ2|\mathbf r|^2 \to |\mathbf r|^2 + \epsilon^2) y discute cuánto altera la física; alternativamente, implementa paso de tiempo variable por bloques.

Semana 5 — Caos

  1. Implementa el método de Benettin: integra dos trayectorias separadas δ0=10−8\delta_0 = 10^{-8}, renormaliza cada τ\tau y acumula ln⁡(δ/δ0)\ln(\delta/\delta_0). Estima λ\lambda para Burrau en [0,20][0, 20] (la lección reporta λ≈1\lambda \approx 1 con h=10−4h = 10^{-4}) y para la órbita circular de dos cuerpos (debería tender a 0 como ln⁡t/t\ln t / t).
  2. Grafica ln⁡δ(t)\ln\delta(t) para la figura en ocho con una perturbación de 10−610^{-6}: crecimiento lento (estabilidad lineal de Simó) frente al crecimiento exponencial de Burrau.
  3. Discute por qué el exponente a tiempo finito depende de hh, de δ0\delta_0 y de τ\tau, y cómo reportarlo honestamente.

Semana 6 — Informe y comparación

  1. Informe con: ecuaciones, descripción de los métodos, gráficas de convergencia (pendientes medidas), deriva de energía y momento angular, figura en ocho y Burrau, Lyapunov, y una tabla de costo computacional (evaluaciones de fuerza por unidad de error).
  2. Compara tu implementación con src/lib/math/nbody.ts del portal: ejecuta tus pruebas contra ambas y documenta las diferencias (si encuentras un error en el portal, repórtalo con un caso mínimo).
  3. Presentación de 10 minutos con una demostración en vivo: el jurado elige hh y el estudiante muestra la deriva de energía de cada método.

Matemáticas del proyecto

  • Ecuaciones de Hamilton: r˙i=∂H/∂pi\dot{\mathbf r}_i = \partial H/\partial\mathbf p_i, p˙i=−∂H/∂ri\dot{\mathbf p}_i = -\partial H/\partial\mathbf r_i.
  • Orden de un método: error global ∼hp\sim h^p; se mide con la pendiente de log⁡(error)\log(\text{error}) contra log⁡h\log h.
  • Simplecticidad: el leapfrog preserva la 2-forma ∑dri∧dpi\sum d\mathbf r_i \wedge d\mathbf p_i; por el análisis hacia atrás resuelve exactamente un hamiltoniano modificado H~\tilde H cercano a HH, lo que acota ΔE\Delta E durante tiempos exponencialmente largos en 1/h1/h.
  • Momento angular en leapfrog: Ln+1−Ln=h2 rn+1×an+1+⋯=0\mathbf L_{n+1} - \mathbf L_n = \tfrac h2\,\mathbf r_{n+1}\times\mathbf a_{n+1} + \dots = 0 para fuerzas centrales porque r×a=0\mathbf r \times \mathbf a = 0.
  • Lyapunov: λ=lim⁡t→∞1tln⁡∣δ(t)∣∣δ0∣\lambda = \lim_{t\to\infty} \dfrac1t \ln\dfrac{|\delta(t)|}{|\delta_0|}; en la práctica, promedio de renormalizaciones de Benettin.

Rúbrica de evaluación

CriterioInsuficienteSuficienteNotableSobresaliente
Implementación y pruebasCódigo sin pruebas o incorrectoRK4 y leapfrog correctos con pruebas de conservaciónPruebas de orden, reversibilidad y referencias (ocho, Burrau)Biblioteca documentada, Yoshida o paso adaptativo, comparación con el portal
Análisis numéricoSin medición de ordenPendientes de convergencia medidasExplicación de la deriva con el hamiltoniano modificadoDiscute costo computacional y límites de la regularización
CaosNo estima λ\lambdaBenettin implementado; λ\lambda para BurrauCompara con dos cuerpos y la figura en ocho; discute la dependencia de parámetrosAnaliza el instante de escape de Burrau frente a hh y lo interpreta
Informe y presentaciónIncompletoCompleto con gráficas y conclusionesFiguras de calidad, reproducible, código públicoDemostración en vivo y crítica fundada del código de referencia

Variantes y extensiones

  • Barnes–Hut: árbol octal para N∼104N \sim 10^4 y comparación de error frente a θ\theta (lección 3).
  • Sistema Solar real: condiciones iniciales de JPL Horizons para Sol + 8 planetas; integra 1 000 años con leapfrog y mide la deriva del perihelio de Mercurio (no relativista) y la energía.
  • Resonancias: sistema Sol–Júpiter–asteroide y la aparición de los huecos de Kirkwood (lección de resonancias).
  • Regularización KS: para encuentros cercanos en Burrau.

Inclusión

  • Proyecto computacional, compatible con lectores de pantalla y entrada por teclado; las figuras llevan descripción textual y tablas equivalentes.
  • En parejas, uno implementa RK4 y otro leapfrog con la misma interfaz, y luego se intercambian para revisar.
  • El lenguaje se elige libremente; se proporcionan esqueletos de pruebas en Python y TypeScript.

Seguridad

  • Proyecto de escritorio, sin riesgos físicos; pausas visuales en sesiones largas de programación.
  • Como en todo el portal: nunca mirar el Sol directamente ni con instrumentos sin filtro certificado ISO 12312-2.

Referencias y fuentes de los datos

  • Hairer, E., Lubich, C. & Wanner, G. (2006). Geometric Numerical Integration, 2.ª ed., Springer (caps. I, VI y IX: análisis hacia atrás y conservación de energía).
  • 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. Condiciones de Simó (2002), con G = m = 1: x₁ = −x₂ = (0,97000436, −0,24308753), x₃ = 0, v₃ = −2v₁ = −2v₂ = (−0,93240737, −0,86473146); periodo T ≈ 6,3259, E ≈ −1,28714, L = 0.
  • Szebehely, V. & Peters, C. F. (1967). Complete solution of a general problem of three bodies. AJ 72, 876. Problema pitagórico: masas 3, 4, 5 en reposo en (1, 3), (−2, −1), (1, −1); E = −769/60; escape de la masa 3 hacia t ≈ 59,4 (G = 1).
  • Benettin, G., Galgani, L., Giorgilli, A. & Strelcyn, J.-M. (1980). Lyapunov characteristic exponents for smooth dynamical systems. Meccanica 15, 9–20.
  • Aarseth, S. J. (2003). Gravitational N-Body Simulations, Cambridge University Press (suavizado, regularización y paso variable).