Esta pregunta es más acerca de cómo abordar un problema numéricamente.
En un pequeño proyecto quería simular el movimiento coorbital de Janus y Epimetheus. Esto es básicamente un problema de tres cuerpos. Elijo que Saturno se fije en el origen, dejemos que y sean los vectores de ubicación de janus y epimeteo, respectivamente. Dado que el efecto ocurre cuando Janus y Epimeteo están muy juntos, elegí coordenadas relativas para una mejor resolución, es decir, y . Ahora obtengo las siguientes ecuaciones de movimiento:
donde corresponde a las masas de las lunas, M es la masa de Saturno y G la constante gravitacional. El problema surge cuando trato de resolver esto numéricamente. Uno tiene que lidiar con valores de magnitudes completamente diferentes, es decir, M \ sim e ^ {28} y m_i \ sim e ^ {17} . Y R , R se encuentran en las regiones de 0 a 150.000.
Para ser honesto, no estoy seguro si este es el foro para discutir tales problemas numéricos.
Más información:
El código está escrito en Matlab y utilizo un solucionador ODE estándar para obtener el resultado. Sin embargo, esto se está desmoronando porque el tamaño del paso no se puede reducir con la precisión de la máquina. (Creo que esto no es sorprendente porque uno tiene que lidiar con los órdenes de magnitud ya mencionados).
Respuestas:
Su enfoque actual arruina la estabilidad numérica; de hecho, probablemente pierdas resolución de esta manera.
Tome como coordenadas para cada satélite sus variables Kepler y el ángulo del plano que contiene la posición del satélite, la velocidad y el origen. Las ecuaciones diferenciales en ausencia de interacción entre los satélites son trivialmente simples, y solo la interacción se vuelve algo complicada. Como la interacción es pequeña si los satélites están muy lejos, la dinámica resultante debería ser numéricamente estable.
fuente
En lugar de utilizar un solucionador de ODE "clásico" (rígido), puede utilizar algoritmos dedicados para la integración numérica geométrica. Consulte, por ejemplo, este libro y los códigos GNI que puede encontrar en el sitio web de Ernst Hairer .
fuente
¿Qué tal si tiene tres pasos en su simulación:
Posiblemente utilizando mejores tiempos para # 3.
No estoy seguro si esto ayudará. Supongo que el verdadero problema es que la magnitud de la fuerza es diferente en la luna - luna y la luna - caso de Saturno, excepto si las lunas están cerca.
Alternativamente:
¡La mejor de las suertes!
fuente