¿Cuál es la solución analítica de forma cerrada del problema de dos cuerpos para verificar sus resultados de integración numérica?

El propósito es estudiar analíticamente el movimiento de dos cuerpos celestes. ¿Cuál es la forma cerrada del problema de dos cuerpos si tuviera que resolverlo analíticamente sin usar una técnica de aproximación numérica?

Un ejemplo en el que esto sería útil es esta pregunta del libro Analytical Mechanics of Space Systems de Hanspeter Schaub.

Escriba una simulación numérica que integre las ecuaciones diferenciales de movimiento en la ecuación. (9.45) utilizando un esquema de integración de Runge Kutta de cuarto orden. Usando la subrutina de la tarea (b), compare la respuesta de la integración numérica con la solución analítica de dos cuerpos.

(9.45) r ¨ = m r 3 r = m r 2 r ^

No voy a escribir una respuesta en este momento, pero esta pregunta exacta se responde en, bueno, casi todos los libros de texto de mecánica orbital que existen.
¿ Qué echas de menos en este artículo de Wikipedia? Ver también los enlaces a otros artículos allí.
@Uwe Lo que extraño es cómo es la transformación del conjunto de elementos para encontrar el movimiento de un planeta en un marco de referencia arbitrario.

Respuestas (2)

Esta es una respuesta complementaria por ahora porque si bien sabemos que una órbita de dos cuerpos se puede reducir a una órbita de un cuerpo alrededor de un potencial central, hacer eso aquí será un poco molesto y creo que el resultado para el cuerpo en el potencial central parece limpiador. Ver también las respuestas a ¿ Se pueden resolver las oscilaciones radiales de una órbita elíptica usando un potencial centrífugo ficticio?


Según este comentario , sé que tuve una discusión en algún lugar de este sitio (o en Astronomy SE ) donde se me explicó por primera vez que las órbitas de Kepler tienen soluciones analíticas que puede escribir para el tiempo en función de la posición , aunque nosotros todavía es necesario utilizar técnicas numéricas (p. ej., el método de Newton) para resolver la posición en función del tiempo. (ver también ¿Cómo lo hicieron Newton y Kepler (en realidad)? )

Si alguien lo encuentra antes que yo, no dude en agregar un enlace aquí, ¡gracias!

Ecuación 27 en la órbita de Kepler de Wikipedia; Propiedades de la ecuación de trayectoria es

t = a a m ( mi mi pecado mi )

dónde a es el semieje mayor, m es el parámetro gravitacional estándar también conocido como el producto GRAMO METRO , mi es la excentricidad y mi es la anomalía excéntrica .

La relación entre mi y la verdadera anomalía θ = arcán 2 ( y , X ) es

broncearse θ 2 = 1 + mi 1 mi broncearse mi 2

y resolviendo para mi :

mi ( θ ) = 2 arcán 1 mi 1 + mi broncearse θ 2 .

conectando de nuevo a la primera ecuación (pero sin escribirlo todo):

t ( θ ) = a a m ( mi ( θ ) mi pecado mi ( θ ) )

Probemos una verificación numérica de este increíble resultado. Tenga en cuenta que con a = 1 y m = 1 el periodo es 2 π .

El último gráfico en la parte inferior izquierda muestra que el análisis t ( θ ) Residencia en θ desde una órbita integrada numéricamente coincide con el tiempo utilizado en el cálculo numérico para un mi = 0.8 órbita elíptica. Habrá fallas numéricas o singularidades en los puntos finales y para mi = 1 pero parece comprobar hacia fuera muy bien!

integración numérica de e=0.8 órbita elíptica

comprobación de t(theta) analítica frente a la integración numérica de e=0,8 órbita elíptica

Escritura de Python:

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint as ODEint

def deriv(X, t):
    x, v = X.reshape(2, -1)
    acc = -x * ((x**2).sum())**-1.5
    return np.hstack((v, acc))

halfpi, pi, twopi = [f*np.pi for f in (0.5, 1, 2)]

e = 0.8
a = 1.0
mu = 1.0
r_peri, r_apo = a*(1.-e), a*(1.+e)
v_peri, v_apo = [np.sqrt(2./r - 1./a) for r in (r_peri, r_apo)]
T = twopi * np.sqrt(a**3/mu)

X0 = np.array([r_peri, 0, 0, v_peri])
X0 = np.array([-r_apo, 0, 0, -v_apo])
times = np.linspace(-T/2., T/2., 1001)

answer, info = ODEint(deriv, X0, times, full_output=True)

x, y = answer[1:-1].T[:2]
theta = np.arctan2(y, x)
E = 2. * np.arctan(np.sqrt((1.-e)/(1.+e)) * np.tan(theta/2))
t = a * np.sqrt(a/mu) * (E - e * np.sin(E))

if True:
    plt.figure()
    plt.subplot(2, 1, 1)
    plt.plot(x, y)
    plt.plot([0], [0], 'ok')
    plt.gca().set_aspect('equal')
    plt.title('y vs. x numerical')
    plt.subplot(2, 1, 2)
    plt.plot(times[1:-1], x)
    plt.plot(times[1:-1], y)
    plt.xlim(-pi, pi)
    plt.title('x(t) and y(t) numerical')
    plt.show()

    plt.subplot(2, 2, 1)
    plt.title('theta(t_numerical)')
    plt.plot(times[1:-1], theta)
    plt.xlim(-pi, pi)
    plt.ylim(-pi, pi)
    plt.gca().set_aspect('equal')
    plt.subplot(2, 2, 2)
    plt.title('E_analytic(theta_numerical)')
    plt.plot(E, theta)
    plt.xlim(-pi, pi)
    plt.ylim(-pi, pi)
    plt.gca().set_aspect('equal')
    plt.subplot(2, 2, 3)
    plt.title('theta(t_analytic)')
    plt.plot(t, theta)
    plt.xlim(-pi, pi)
    plt.ylim(-pi, pi)
    plt.gca().set_aspect('equal')
    plt.subplot(2, 2, 4)
    plt.title('t_analytic(t_numerical)')
    plt.plot(t, times[1:-1])
    plt.xlim(-pi, pi)
    plt.ylim(-pi, pi)
    plt.gca().set_aspect('equal')
    plt.show()
¡Gracias por esta respuesta tan informativa! Solo tengo una pequeña pregunta que podría ser tonta; Veo que usaste el ODE45 para integrar la órbita del problema de dos cuerpos. ¿Cómo verificas que la órbita es correcta usando la solución analítica del problema?
He actualizado esta publicación con una imagen que aclara lo que quiero decir con mi comentario anterior.
@John First una nota: para la integración numérica utilicé el odeint de SciPy que elige entre "1: adams (no rígido), 2: bdf (rígido)" para el método de integración "No sé cómo se compara con el ODE45 de MatLab , pero para un problema tan fácil y no rígido como este creo que cualquier integrador dará buenos resultados.También hay un método llamado RK45 en.wikipedia.org/wiki/…
@John ahora a su pregunta sobre su pregunta y su aclaración; Hasta ahora no sabemos qué es exactamente "la solución analítica de dos cuerpos", si es r ( θ ) se muestra en la otra respuesta o también incluye t ( θ ) como se me muestra aquí. Solo muestra un pequeño recorte de una captura de pantalla. Esta no es la mejor manera de hacer una pregunta de Stack Exchange, revelando pequeños fragmentos a la vez. Si puede compartir más sobre lo que se le da exactamente, entonces otros tendrán más tiempo para abordar cómo proceder. Pero supongo que quieren comparar los resultados.
Gracias por su respuesta. La razón por la que no publiqué el resto de la pregunta es porque es irrelevante. Las partes a) yb) están relacionadas con la transformación de los elementos orbitales clásicos a la posición orbital cartesiana y viceversa. Sin embargo, no se proporciona ninguna solución analítica ni se pide que se derive (creo que el autor supone que ya lo sabemos). He actualizado la pregunta agregando Eq. (9.45) a la que también se refiere. Espero que sea más claro ahora y disculpe cualquier malentendido.
@John actualicé tu pregunta; se desaconseja usar capturas de pantalla de texto, debemos tomarnos el tiempo para escribirlas. Una de las razones es que las personas con problemas de visión pueden usar otras herramientas para leer el texto, pero una captura de pantalla es inútil. Agregué la ecuación usando MathJax y verás que la segunda forma es lo que usé en mi integración numérica. No estoy exactamente seguro de qué más necesita respuesta, ¡no dude en continuar la discusión aquí! Sin embargo, me pregunto a qué se refiere la "tarea (b)" en el texto citado.
No lo sabía, gracias por señalarlo. Se asegurará de seguir. Lo que quise decir es que asumiendo que integramos numéricamente la ecuación 9.45 y obtuvimos algunas buenas gráficas de órbita. ¿Cómo puedo verificar que esas gráficas sean correctas usando la solución analítica de la ecuación? y ¿cómo sería la forma analítica?
@John No puedo leer la mente del autor y no tengo una copia del libro a mano este fin de semana para leerlo. Mi última ecuación es una solución analítica aunque es para t ( θ ) en lugar de para θ ( t ) , la otra respuesta muestra una solución analítica para r ( θ ) aunque no r ( t ) , pero sin leer el texto, ¿cómo puedo decirles qué quiere decir el autor con "la solución analítica de dos cuerpos"? Esta respuesta compara su solución analítica con su solución numérica en la última gráfica. yo tambien podria tramar r norte tu metro mi r i C a yo contra θ norte tu metro mi r i C a yo y compararlo con
@John la expresión en la otra respuesta. Pero, ¿es eso lo que describe el autor del libro? De su pequeño fragmento no puedo decir. Creo que esto es todo lo que puedo hacer aquí, tal vez alguien más pueda agregar otra respuesta. Tendrá que seguir leyendo para saber cómo aplicar una solución de un cuerpo a un problema de dos cuerpos, como mencioné en mi respuesta.
¡Entiendo! ¡Gracias por su respuesta!

La distancia desde el foco de atracción de una órbita se puede expresar como una función de la verdadera anomalía (ángulo) dada por r ( θ ) = a 1 mi 2 1 + mi C o s ( θ ) , dónde a es el semieje mayor y mi es la excentricidad.

¿Cómo afecta la segunda masa a la primera masa según la atracción gravitacional en esta ecuación?
¿Es posible mostrar t ( θ ) ¿también?
@John: el marco de referencia está fijado a una de las dos masas (generalmente la más grande). En este marco de referencia, una masa observa a la otra masa girando a su alrededor como si la primera masa estuviera inmóvil. Ambos objetos ejercen fuerzas entre sí, pero el marco de referencia hace que parezca que solo una masa se mueve con respecto a la otra.
@uhoh: ¿El tiempo como una función de la verdadera anomalía? ¿Quizás te refieres a la verdadera anomalía en función del tiempo? ¿O tal vez el tiempo entre dos anomalías?
@Paul Por lo que recuerdo t ( θ ) tiene una solución analítica real, pero θ ( t ) no es. Mi memoria proviene de una discusión en algún lugar de este sitio hace unos años, intentaré buscarla ahora. Para empezar, desplácese hacia abajo hasta la Ecuación 27 . Esa es una anomalía excéntrica mi pero es un comienzo.
Como siempre quise probar esto, seguí adelante y lo escribí aquí .