1. El problema de N cuerpos

Sean masas puntuales con posiciones y velocidades , . La ley de gravitación de Newton da
donde es la constante de gravitación. En toda la lección (y en src/lib/math/nbody.ts) usamos
unidades adimensionales con : fijada una masa de referencia y una longitud , la unidad de
tiempo es .
Con momentos , el sistema es hamiltoniano con
y , . Es separable: depende solo de y solo de . Las diez integrales clásicas son la energía , el momento lineal , el movimiento uniforme del centro de masas y el momento angular
Para 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

Escribimos , , y un paso de tamaño de a .
2.1 Runge–Kutta clásico (RK4)
Error local y global 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, (con según el problema; véase el ejercicio 3, donde para el oscilador armónico sale ).
2.2 Leapfrog (Störmer–Verlet, kick-drift-kick)
Como , los flujos exactos de y de por separado son triviales:
- flujo de (kick): ;
- flujo de (drift): ,
con . El leapfrog es la composición simétrica (splitting de Strang)
es decir, en términos de aceleraciones :
Cuesta una evaluación de fuerzas por paso (la última se reutiliza en el siguiente), frente a cuatro de RK4. Tiene tres propiedades estructurales:
- 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 es simpléctica si su jacobiana cumple con .
- Simétrico (reversible): ; por eso su orden es par, aquí .
- Conserva exactamente (salvo redondeo), porque cada kick aplica fuerzas centrales por pares y cada drift mueve paralelo a (ejercicio 2).
3. ¿Por qué la energía no deriva? El hamiltoniano modificado

El análisis de error regresivo (backward error analysis) busca un hamiltoniano cuyo flujo exacto coincida con el método numérico. Si denota el campo hamiltoniano de , el flujo de durante es y la fórmula simétrica de Baker–Campbell–Hausdorff da
donde los términos de orden son conmutadores dobles de y . Como el conmutador de campos hamiltonianos es (salvo signo) el campo del corchete de Poisson , el método es (formalmente) el flujo exacto de
Los coeficientes se comprueban en el oscilador armónico, donde todo es explícito (ejercicio 4). Al ser simpléctico, la serie es hamiltoniana —esto es lo que falla para RK4— y la solución numérica conserva salvo términos exponencialmente pequeños. El resultado preciso (Hairer, Lubich & Wanner, cap. IX, teorema 8.1, para analítico) es
con , independientes de y . Es decir: error de energía acotado en 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 y la escala dependen de lo analítico que sea a lo largo de la órbita. En un encuentro cercano () la escala de tiempo local 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 .
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 (), su desarrollo en solo contiene potencias impares, , y que una composición simétrica de tres pasos de tamaños , , ,
anula el término : la primera condición garantiza la consistencia (avanzar en total) y la segunda cancela (los conmutadores de orden se suman linealmente en los al primer orden). La solución es
El paso central es negativo y mayor que 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):
| Problema | leapfrog | Yoshida 4 | |
|---|---|---|---|
| Ocho, 1 periodo | 0.02 | ||
| Ocho, 1 periodo | 0.01 | ||
| Ocho, 1 periodo | 0.005 | ||
| Dos cuerpos , 100 periodos | 0.03 |
Al dividir 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 y sigue creciendo. A igual coste (3 evaluaciones de Yoshida frente a 3 pasos de leapfrog de tamaño , cuyo error sería ), Yoshida gana por un factor 4 en este problema, y la ventaja crece al reducir .
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 aplicado a un hamiltoniano analítico, con paso suficientemente pequeño (Hairer, Lubich & Wanner, cap. IX, teorema 8.1),
La demostración sigue el mismo camino: el método es el flujo exacto, salvo términos exponencialmente pequeños, de un hamiltoniano modificado (truncado óptimamente), y se conserva exactamente por ese flujo; la diferencia es acotada en una región acotada del espacio de fases. Para Yoshida, : eso es lo que muestra la tabla. La condición «paso suficientemente pequeño» es seria: Yoshida tiene pasos internos de tamaño , así que su límite de estabilidad en el oscilador es en vez de (ejercicio 7).
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, , 100 periodos) el error de RK4
crece linealmente con , 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 (paso multiplica el error
por ), en línea con el ejercicio 3.
4. Sensibilidad a las condiciones iniciales

Sea una solución y otra que parte a distancia en el espacio de fases. El máximo exponente de Lyapunov es
Si la separación crece como y la órbita es caótica; es el tiempo de Lyapunov. En un sistema integrable (Kepler) las órbitas vecinas se separan solo polinómicamente (por la diferencia de periodos) y .
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 mide , acumula y reescala la trayectoria vecina a distancia a lo largo de la dirección actual. Tras intervalos,
Está implementado en lyapunovBenettin; el simulador muestra además la estimación sin renormalizar
(válida mientras ). La distancia usada es la euclídea en ,
.
Cómo medirlo en la práctica. Tres decisiones afectan al número que sale: (1) el intervalo de renormalización debe ser menor que el tiempo en que sale del régimen lineal () pero no tan corto que domine el ruido de redondeo; (2) debe superar con holgura el redondeo ( frente a ) para que la dirección inicial de la perturbación sea significativa; (3) se define como límite , pero la estimación a tiempo finito converge como (ley de los grandes números sobre los ) 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 hacia cero; si no lo hace, el error numérico está siendo tomado por caos. Y otra: no depende del integrador si es pequeño; si cambia al cambiar (como ocurre en el problema pitagórico con frente a ), los encuentros cercanos no están resueltos.
Consecuencia práctica. Si queremos el estado con tolerancia partiendo de una incertidumbre , el horizonte de predicción es
que solo crece logarítmicamente con la precisión inicial. Ni siquiera el redondeo de doble precisión () 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

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 sobre lazos con las simetrías del ocho. Con , y las condiciones de Simó (2002),
el periodo es , el momento angular es nulo y la energía vale (comprobado en los tests). Simó mostró que es linealmente estable: una perturbación de no destruye el ocho, y en el simulador 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 con ).
5.2 El problema pitagórico de Burrau
Burrau (1913) planteó tres masas , y en reposo en los vértices de un triángulo rectángulo de lados , , , cada masa frente al lado de igual longitud. Con las coordenadas de Szebehely & Peters (1967),
el centro de masas está en el origen, y . 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 (unidades ) se produce un último encuentro triple y la masa es expulsada definitivamente, mientras las masas y quedan como binaria; Peters prolongó la integración hasta 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
(prueba a variar ) y la dinámica es caótica. Con nuestra implementación
(lyapunovBenettin, , ) la estimación a tiempo finito es en unidades
, frente a para la órbita circular de dos cuerpos en (en este caso el valor
verdadero es y lo que se mide es el decaimiento lento de la estimación). Son estimaciones de
nuestro código, no valores de referencia.
Problemas
Ejercicio 1 (simplecticidad del leapfrog). Demuestra que y son simplécticas y concluye que lo es.
Ver solución
Demostración. La jacobiana del kick es con simétrica. Entonces
usando . Para el drift, y el mismo cálculo funciona porque es simétrica. Por la regla de la cadena , y si y entonces .
Ejercicio 2 (conservación exacta de ). Demuestra que el leapfrog conserva para cualquier .
Ver solución
Demostración. En un kick, las posiciones no cambian y con , paralela a . Así . En un drift, y . (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 , escribe , de modo que . Demuestra que RK4 da con y que
Ver solución
Demostración. Aplicar RK4 a da exactamente el polinomio de Taylor de grado 4 de . Con , , y
Como , tras pasos : una deriva secular, lineal en para , y sin cota a tiempos largos.
Ejercicio 4 (invariante exacto del leapfrog en el oscilador). Demuestra que el leapfrog aplicado a es la aplicación lineal
que conserva exactamente , que es estable si y solo si , y que esto concuerda con de la sección 3.
Ver solución
Demostración. Sustituyendo, , y dan la matriz con , . Su determinante es (área preservada: simpléctica en 1 grado de libertad). Con se comprueba : la entrada es , la es y la cruzada . Luego se conserva. Los autovalores satisfacen ; son de módulo 1 y distintos si , es decir , con frecuencia numérica . Por otra parte, con , : , , , y
proporcional a hasta . El error de energía es por tanto acotado y de tamaño , exactamente lo que predice la teoría general.
Ejercicio 5 (horizonte de predictibilidad). Con (unidades ), ¿cuánto se alarga el horizonte de predicción con tolerancia si pasamos de a ?
Ver solución
Solución. : de a . Diez órdenes de magnitud de precisión inicial compran solo un factor en tiempo.
Ejercicio 6 (con el simulador). (a) En el ocho con «Ambos», fija : ¿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 en la gráfica logarítmica: una recta de pendiente indica crecimiento exponencial. (c) En el pitagórico, reduce de a . ¿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 ( 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, crece despacio y casi linealmente en (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 . (c) Cambia: con los encuentros cercanos no están resueltos (la escala de tiempo local baja de ) y el error en ellos, amplificado por el caos (), lleva a un estado final distinto. El teorema exige con fijado por la analiticidad de a lo largo de la órbita, y en un encuentro cercano 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 (, , , , ). (a) Reproduce la tabla de §3.1 midiendo en 100 periodos con . (b) Mide el orden de ambos en un periodo con . (c) Aplica Yoshida al oscilador armónico , y determina numéricamente el a partir del cual la solución explota; compáralo con .
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 + ULas condiciones iniciales se toman de dosCuerpos (apocentro: , , repartidos según las masas). Resultados esperados: tabla de §3.1 (leapfrog , Yoshida ), cocientes de error y al dividir por 2. (c) Para el oscilador, la matriz del leapfrog con paso tiene autovalores de módulo 1 si ; el paso más largo es , luego Yoshida es estable si . Numéricamente, con la energía oscila acotada y con 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
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).