1. Motivación: una sonda en órbita muy excéntrica

Una sonda en una órbita de excentricidad pasa el 90 % del tiempo lejos del planeta moviéndose despacio y, durante una fracción breve, cruza el pericentro a velocidad veces mayor que en el apocentro. Si integramos con un paso fijo pequeño para resolver el pericentro, desperdiciamos casi todo el trabajo en el apocentro; si lo elegimos grande, el pericentro se resuelve mal y la órbita se abre o se cierra. Este es el problema que resuelven los métodos de paso adaptativo: estimar el error de cada paso y dejar que el propio integrador decida cuán largo puede ser el siguiente.
En esta lección usamos el problema de Kepler plano con parámetro gravitatorio como banco de pruebas, porque tiene solución exacta (lección sobre la ecuación de Kepler) con la que medir errores. Escribimos y
Unidades: en el código () todo es adimensional con , ; el periodo es . Para pasar a SI basta fijar y y usar .
2. Métodos de un paso: error local y global

Sea con lipschitziana en con constante , es decir . Un método de un paso avanza con una función de incremento :
Definición. El error local en el paso es la diferencia entre lo que da el método partiendo del valor exacto y el valor exacto un paso después: . El método es de orden si . El error global es .
Teorema (convergencia). Si el método tiene orden y es lipschitziana en con constante , entonces en un intervalo fijo
Demostración. Restando la definición de error local de la del método, , luego . Iterando esta recurrencia lineal con ,
usando . Con se obtiene la cota.
Un error local se convierte en global porque se cometen errores. La constante es pesimista pero real: en órbitas, los errores de fase crecen linealmente con el tiempo, y en sistemas caóticos exponencialmente (lección anterior).
2.1 Euler
. Comparando con la serie de Taylor , el error local es : orden 1. Para una órbita circular, apunta hacia el centro y Euler sale siempre «por la tangente»: la órbita crece en espiral (ejercicio 1). En nuestra tabla (§5) hace falta para un error del 20 % tras una sola vuelta.
2.2 Condiciones de orden: el caso de dos etapas
Un método de Runge–Kutta explícito de etapas se define por su tabla de Butcher :
Para dos etapas con , (condición que asumimos siempre), y escribiendo , , evaluadas en ,
La solución exacta es , de modo que el método es de orden 2 si y solo si
Es una familia uniparamétrica: da el punto medio () y el método de Heun (). Para orden 3 aparecen 4 condiciones, para orden 4 son 8 y para orden 5 son 17; el número de condiciones crece como los árboles con raíz de vértices (teoría de Butcher; Hairer–Nørsett–Wanner §II.2). Por eso el RK4 clásico con 4 etapas y orden 4 es un punto dulce: a partir de orden 5 hacen falta más etapas que el orden ( etapas para orden 5, para orden 6).
2.3 RK4
Con , , y se cumplen las 8 condiciones de orden 4: error local , global . Aplicado a da con , el polinomio de Taylor de : la región de estabilidad absoluta corta el eje real negativo en y el imaginario en . Para un oscilador de frecuencia eso exige ; en el pericentro de una órbita la «frecuencia local» es , y es ella la que fija el paso.
3. Pares encajados y control del paso

3.1 La idea
Si disponemos de dos aproximaciones (orden ) e (orden ) que comparten las mismas etapas (solo cambian los pesos frente a ), la diferencia
estima el error local del método de orden inferior sin ninguna evaluación adicional. Los dos pares más usados:
| Par | Etapas | Órdenes | Autor | Particularidad |
|---|---|---|---|---|
| RKF45 | 6 | 4(5) | Fehlberg (1969) | diseñado para propagar la solución de orden 4; en la práctica se propaga la de orden 5 («extrapolación local») |
| Dormand–Prince 5(4) | 7 | 5(4) | Dormand & Prince (1980) | coeficientes optimizados para minimizar el error del método de orden 5; propiedad FSAL: la séptima etapa coincide con la primera del paso siguiente, luego cuesta 6 evaluaciones por paso aceptado |
Es el método ode45 de MATLAB y RK45 de SciPy. Las dos tablas están en rungekutta.ts; el test comprueba las identidades , , y mide el orden 5 de la solución propagada y el orden 5 del estimador de error (§5). Nuestra implementación no aprovecha FSAL (7 evaluaciones por paso), lo que infla un 17 % las cuentas de evaluaciones de Dormand–Prince en las tablas.
3.2 Ley de control del paso
Queremos que el error local por componente no supere una tolerancia mixta . Definimos la norma escalada
Como con (el orden del error local del método encajado de orden ), el paso «óptimo» que daría es . Con un factor de seguridad y límites para evitar oscilaciones:
Si el paso se acepta y se avanza; si no, se rechaza y se repite con . Es un controlador proporcional (Hairer–Nørsett–Wanner §II.4, ec. 4.13). En integrarAdaptativo usamos para ambos pares.
Conviene ser honesto sobre lo que se controla: el error local por paso, no el global. El error global acumulado puede ser órdenes de magnitud mayor que la tolerancia (tabla de §5: con el error de posición tras una vuelta es ) porque los errores de fase se suman y porque la órbita excéntrica amplifica perturbaciones cerca del pericentro. La regla práctica es que el error global escala linealmente con la tolerancia para un método de orden propagado con extrapolación local ( en teoría, pero en la práctica el exponente suele estar entre 0.8 y 1): la tabla da y error , es decir un factor en error por en tolerancia.
4. Simulador
Qué observar. El simulador integra con paso fijo (RK4 o leapfrog). Con «2 cuerpos, e = 0.8», mide cuántos pasos por periodo necesita RK4 para que la órbita se cierre visiblemente: ese número es el que un integrador adaptativo reparte de forma desigual, concentrando los pasos cortos en el pericentro (en nuestra corrida con y , el paso varía entre y : un factor 2200).
5. Resultados numéricos

Todos los números de esta sección provienen de rungekutta.ts (el test rungekutta.test.ts verifica los órdenes; las tablas se generaron con el mismo código). Órbita , , ; error de posición tras una vuelta frente a la solución de Kepler, y error relativo de energía .
5.1 Orden medido, , paso fijo
| Pasos por vuelta | Euler | RK4 | Dormand–Prince (orden 5, paso fijo) | |
|---|---|---|---|---|
| 100 | ||||
| 200 | ||||
| 400 | ||||
| 800 | ||||
| 1600 | ||||
| 3200 | ||||
| 6400 |
Al dividir por 2, Euler divide el error por – (orden 1, todavía fuera del régimen asintótico mientras el error es ), RK4 por – (orden 4, ) y Dormand–Prince por – (orden 5, ). En la última fila Dormand–Prince ya ha tocado el suelo del redondeo en doble precisión ( tras evaluaciones): reducir más el paso no mejora nada, porque el error de redondeo crece como .
La energía de RK4 deriva: con el error es tras 1 vuelta, tras 10 y tras 100: exactamente lineal en , como se demostró para el oscilador en la lección anterior.
5.2 Paso adaptativo, , una vuelta
| Tolerancia | Par | Pasos aceptados | Rechazados | Evaluaciones de | Error de posición | |
|---|---|---|---|---|---|---|
| RKF45 | 53 | 21 | 444 | |||
| DP5(4) | 50 | 20 | 490 | |||
| RKF45 | 123 | 18 | 846 | |||
| DP5(4) | 114 | 24 | 966 | |||
| RKF45 | 302 | 1 | 1818 | |||
| DP5(4) | 278 | 1 | 1953 | |||
| RKF45 | 760 | 1 | 4566 | |||
| DP5(4) | 698 | 1 | 4893 |
Comparación con RK4 de paso fijo en la misma órbita: para bajar el error de posición a hacen falta pasos ( evaluaciones); Dormand–Prince lo consigue con tolerancia y evaluaciones, 33 veces menos. La ganancia es mayor cuanto más excéntrica es la órbita: en una circular el paso adaptativo apenas aporta.
Dos observaciones sobre la tabla. (1) A tolerancia laxa hay muchos rechazos (≈ 30 %): el controlador proporcional sobreestima el paso tras el pericentro; los controladores PI (Gustafsson 1991) lo reducen. (2) Dormand–Prince conserva mejor la energía que RKF45 al mismo coste porque sus coeficientes minimizan el error de la fórmula de orden 5, que es la que se propaga; RKF45 fue optimizado para la de orden 4.
6. Análisis de error: lo que el paso adaptativo no da

- No es simpléctico. Cambiar según el estado convierte la aplicación en , que en general no conserva la forma simpléctica aunque lo sea (Hairer–Lubich–Wanner §VIII.2). La energía vuelve a derivar: en la tabla, crece con el tiempo como en RK4. Para integraciones de miles de periodos se prefiere un simpléctico de paso fijo (o con paso variable reversible, que usa una transformación de tiempo y recupera la conservación).
- Controla el error local, no el global. Vimos que el global puede ser veces la tolerancia. Para estimar el global hay que integrar dos veces (con y ) y comparar, o integrar hacia delante y hacia atrás.
- Redondeo. El error total es ; existe un óptimo y pedir en doble precisión es inútil (fila 6400 de la tabla 5.1).
- Encuentros cercanos. El paso adaptativo los resuelve (es su gran ventaja frente al paso fijo), pero el coste se dispara: . Para colisiones casi exactas hace falta regularizar (Kustaanheimo–Stiefel) o usar coordenadas que eliminen la singularidad.
Problemas
1. (Euler en órbita circular). Para con , y velocidad circular , demuestra que un paso de Euler aumenta en y la energía específica en , de modo que la órbita se abre en espiral.
Ver solución
Partimos de , , . Euler da , . Entonces y . La energía específica pasa de a . En cada paso la energía sube (siempre del mismo signo: por eso es secular), y tras pasos sube : lineal en , orden 1. En la tabla, con el error de energía tras una vuelta es ; el factor 2 proviene de que en la órbita la contribución del pericentro domina.
2. (Condiciones de orden 2). Demuestra que no existe ningún método de Runge–Kutta explícito de 2 etapas de orden 3.
Ver solución
Con la expansión de §2.2 llevada a : la solución exacta contiene el término , mientras que el método aporta y ningún término proporcional a (ese término solo aparece al evaluar en un punto que ya contenga una evaluación de «anidada», lo que exige una tercera etapa). Para general ambos tipos de términos son independientes, así que la condición es imposible. Las condiciones para orden 3 con tres etapas son , , y .
3. (Estabilidad lineal de RK4). Demuestra que para el RK4 da y deduce el límite de estabilidad .
Ver solución
Con , . Elevando al cuadrado y sumando (cálculo de la lección anterior, ejercicio 3) resulta . La condición equivale a , es decir , . Para pequeño, : amortiguamiento débil por paso, que acumulado en pasos da el decaimiento . Es la deriva secular de energía de RK4.
4. (Estimador de error). Para un par encajado de órdenes y , demuestra que es una estimación asintóticamente correcta del error local de pero no del de , y explica por qué, aun así, se propaga .
Ver solución
Sea la solución exacta local. Entonces y con el término principal del error local del método de orden . Restando, : coincide con el error de al orden dominante, mientras que el de es de un orden superior y queda enmascarado. Se propaga («extrapolación local») porque es más preciso; el precio es que el paso se controla con una estimación conservadora: el error real cometido es menor que el estimado. Es lo que hace que en la tabla 5.2 el error global se parezca más a que a .
5. (Ley de control). Supón que exactamente. Demuestra que, tras un rechazo, el nuevo paso se acepta siempre, y calcula cuánto desperdicia el factor 0.9 en el número de pasos.
Ver solución
: aceptado. Sin el factor el paso daría exactamente , en el límite. Con factor 0.9, el paso es un 10 % menor y hacen falta un 11 % más de pasos (). En la realidad varía a lo largo de la órbita (crece hacia el pericentro) y el modelo falla justo donde importa: de ahí los rechazos de la tabla a tolerancia laxa.
6. (Computacional: tabla de orden). Implementa Euler, RK4 y Dormand–Prince de paso fijo y reproduce la tabla 5.1 para . Luego estima el orden empírico fila a fila y explica las desviaciones respecto de 1, 4 y 5.
Ver solución
Pseudocódigo (Python):
import numpy as np
mu = 1.0
def f(t, y):
r3 = np.hypot(y[0], y[1])**3
return np.array([y[2], y[3], -mu*y[0]/r3, -mu*y[1]/r3])
def rk4(f, t, y, h):
k1 = f(t, y); k2 = f(t+h/2, y+h/2*k1); k3 = f(t+h/2, y+h/2*k2); k4 = f(t+h, y+h*k3)
return y + h/6*(k1 + 2*k2 + 2*k3 + k4)
def orbita(paso, n, e=0.5):
y = np.array([1-e, 0, 0, np.sqrt((1+e)/(1-e))]); h = 2*np.pi/n
for k in range(n): y = paso(f, k*h, y, h)
return np.hypot(y[0]-(1-e), y[1]) # tras T la sonda vuelve al pericentro
for n in [100, 200, 400, 800, 1600]:
print(n, orbita(rk4, n), orbita(rk4, n)/orbita(rk4, 2*n))Para Dormand–Prince se copian los coeficientes de rungekutta.ts (tabla 2 de Dormand & Prince 1980). Órdenes empíricos de nuestra tabla: Euler 0.52, 0.56, 0.64, 0.76, 0.88, 0.96 (tiende a 1 por debajo: el error es y la expansión asintótica no vale); RK4 4.4, 4.2, 4.1, 4.1, 4.0, 4.0; DP5 4.9, 5.2, 5.2, 5.1, 5.2 y luego 0.2 (redondeo). Los valores algo mayores que en RK4 y DP5 a paso grueso provienen de los términos de orden superior del error, que decaen más deprisa.
7. (Computacional: paso adaptativo). Implementa el controlador de §3.2 sobre Dormand–Prince e integra la órbita una vuelta con . Registra en función de la anomalía verdadera y comprueba que aproximadamente. ¿Por qué ese exponente?
Ver solución
El error local de un método de orden 5 escala como y las derivadas de la solución kepleriana escalan con la frecuencia local : . Imponer error local constante da const, es decir . Entre el apocentro () y el pericentro () el cociente de pasos esperado es ; el cociente medido entre el paso máximo y el mínimo fue 2200 porque el mínimo ocurre justo en el pericentro, donde además las componentes de son pequeñas y la tolerancia relativa muerde más, y el máximo lo fija el límite de crecimiento por paso al alejarse. (Es un buen ejercicio graficar en escala logarítmica.)
✦ Autoevaluación
Lecturas
- Hairer, Nørsett & Wanner (1993), Solving ODEs I: §II.1 (Runge–Kutta y teoría de Butcher), §II.3 (convergencia), §II.4 (estimación del error, control de paso, controlador PI de Gustafsson), §II.5 (tabla de Dormand–Prince).
- Press et al. (2007), Numerical Recipes, 3.ª ed.: §17.1–17.2 (
StepperDopr5, control de paso). - Dormand & Prince (1980), J. Comput. Appl. Math. 6, 19–26 (tabla 2: coeficientes RK5(4)7M). Fehlberg (1969), NASA TR R-315 (tabla III).
- Hairer, Lubich & Wanner (2006), Geometric Numerical Integration: §VIII.2 (por qué el paso variable destruye la simplecticidad y cómo recuperarla con transformaciones de tiempo).
- Murray & Dermott (1999), cap. 2: solución exacta del problema de dos cuerpos usada como referencia.
🍎 Guía para el profesor
- Tiempo
- 2 clases de 90 min
- Resultado de aprendizaje
- Al finalizar, el estudiante demuestra la relación entre error local y global, deduce las condiciones de orden 2, implementa un par encajado con control de paso y evalúa experimentalmente el orden y el coste de Euler, RK4 y Dormand–Prince en una órbita kepleriana.
- Evidencia de aprendizaje
- Entrega del problema 6 (tabla de orden con órdenes empíricos) y del problema 7 (gráfica de h frente a la anomalía verdadera), con una discusión de media página sobre qué no controla el paso adaptativo.
Materiales
- Python 3 con NumPy (o Julia); opcionalmente SciPy para comparar con solve_ivp(method="RK45")
- Código de referencia: src/lib/math/rungekutta.ts y su test
- Simulador N cuerpos del portal
Secuencia sugerida
Clase 1 (90 min). Inicio (15 min): el problema de la sonda excéntrica, estimar a mano con cuántos pasos de RK4 harían falta en el pericentro y en el apocentro. Desarrollo (60 min): demostración del teorema de convergencia en pizarra; condiciones de orden 2 derivadas por los estudiantes en parejas (§2.2); presentación de RK4 y su región de estabilidad. Cierre (15 min): problema 1 (Euler en espiral) con cálculo rápido y comprobación en el simulador.
Clase 2 (90 min). Inicio (10 min): «¿cómo sabe el integrador que se equivoca?» (idea del par encajado). Desarrollo (60 min): taller de programación: implementar Dormand–Prince con los coeficientes dados, verificar las sumas de la tabla, reproducir la tabla de orden (problema 6) y añadir el controlador de paso (problema 7). Cierre (20 min): poner en común las gráficas de , discutir la pérdida de simplecticidad y cuándo se prefiere cada familia de métodos; mini-prueba.
Errores frecuentes
- Creer que la tolerancia es el error final. Mostrar la tabla 5.2: con tol = 10⁻⁶ el error global es 10⁻³. Pedir que integren dos veces con tolerancias distintas para estimar el error global.
- Confundir orden del error local y global. Insistir en el teorema de §2: una potencia se pierde al sumar T/h pasos.
- Reducir el paso «hasta que converja» sin reparar en el redondeo. La fila 6400 de la tabla 5.1 lo muestra: el error deja de bajar.
- Suponer que Dormand–Prince, por ser de orden 5, conserva la energía mejor que un leapfrog de orden 2 a tiempos largos. Comparar con la lección anterior: el orden alto reduce el error por paso, pero la deriva secular sigue.
- Olvidar la condición Σⱼ aᵢⱼ = cᵢ al copiar una tabla de Butcher. Hacer que el test de sumas (como en rungekutta.test.ts) forme parte de la entrega.