Esta pregunta es sobre técnicas para calcular órbitas.
La publicación de Github sobre la estabilidad dinámica del sistema Jool modificado de Principia (citado en esta respuesta ) dice:
Principia calcula la trayectoria de los cuerpos celestes integrando las ecuaciones de movimiento1; como resultado, si el sistema es inestable, puede fallar en el juego. De hecho, este es el caso del sistema stock: mientras que los detalles dependen de cómo los elementos orbitales keplerianos de KSP se traducen a un estado inicial cartesiano, con la interpretación de Principia como elementos jerárquicos de Jacobi , el sistema Jool se descompone en 19 días, con un encuentro cercano entre Vall y Laythe.
Por Wikipedia :
En cálculo vectorial, la matriz jacobiana de una función vectorial en varias variables es la matriz de todas sus derivadas parciales de primer orden. Cuando esta matriz es cuadrada, es decir, cuando la función toma como entrada el mismo número de variables que el número de componentes vectoriales de su salida, su determinante se denomina determinante jacobiano. Tanto la matriz como (si corresponde) el determinante a menudo se denominan simplemente jacobiano en la literatura.
Cuando realizo la integración numérica para los problemas a los que me enfrento actualmente, solía usar el antiguo scipy.integrate.odeint pero estoy cambiando a scipy.integrate.solve_ivp y este último dice:
Parámetros: fun callable: Lado derecho del sistema. La firma de llamada es divertida (t, y). Aquí t es un escalar, y hay dos opciones para el ndarray y: Puede tener forma (n,); entonces fun debe devolver array_like con forma (n,). Alternativamente, puede tener forma (n, k); entonces fun debe devolver un array_like con forma (n, k), es decir, cada columna corresponde a una sola columna en y. La elección entre las dos opciones está determinada por un argumento vectorizado (ver más abajo). La implementación vectorizada permite una aproximación más rápida del jacobiano por diferencias finitas (requerido para solucionadores rígidos) .
actualización: creo que esto podría ser una pista; un sistema jerárquico podría ser útil al estimar interacciones entre objetos que varían inversamente con el cuadrado de la distancia; es posible que desee evaluar solo las interacciones cuando los cuerpos en órbita pasan cerca uno del otro.
Nunca he usado un jacobiano, pero me gustaría entender esto más.
En el documento, la rigidez del problema durante un acercamiento cercano es un tema central.
La matriz que se muestra en la definición de Wikipedia parece plana, no jerárquica:
o como sugiere el artículo, un montón de gradientes transpuestos.
Pregunta: ¿Qué significa exactamente la "interpretación como elementos jerárquicos de Jacobi" de un simulador numérico de n cuerpos ? ¿Cómo se usaría algún tipo de jerarquía en un jacobiano utilizado por un solucionador de problemas de n cuerpos? este o algo parecido?
¿Se usaría esto en el caso de un enjambre o constelación de pequeños satélites de la Tierra cuya interacción gravitacional no se considera, o los cuerpos necesitarían interactuar entre sí de alguna manera (gravitacional o receptivamente) antes de que dicha jerarquía tenga alguna utilidad?
¡Me reservo el derecho de estar totalmente equivocado en esto! Dicho esto, estoy lanzando esto en una respuesta en lugar de un comentario porque espero que pueda ser el trampolín para una respuesta sólida de la comunidad.
Dudo mucho que el texto en negrita se refiera a la matriz jacobiana (que presumiblemente contiene todos los parciales de primer orden de todas las variables del sistema entre sí). Más bien, dado que dicen que están convirtiendo la definición de KSP de dónde están los cuerpos celestes en la época (proporcionada en elementos keplerianos) a una forma cartesiana, espero que a continuación definan el sistema en una jerarquía de coordenadas de Jacobi, en las que las posiciones están coordinadas . relativo al baricentro de un sistema de n cuerpos para n pequeño. (En el texto en negrita, los autores usan el término "elementos de Jacobi", que no he encontrado antes, pero en otra parte de la documentación usan las "coordenadas de Jacobi" más estándar)
No estoy seguro de si esta jerarquía está codificada o asignada dinámicamente, pero de cualquier manera, sospecho que se usa principalmente para reducir el error de punto flotante en los cálculos de posición entre objetos cercanos. A diferencia de lo que han sugerido algunos comentarios, esto no significa que Principia se aproxime a la gravitación de n cuerpos al permitir que interactúen solo las masas cercanas; nuevamente (sospecho), este es únicamente un método para coordinar cuerpos mientras se mitiga el error de punto flotante en el posiciones.
Para obtener una respuesta definitiva, sugiero contactar a cualquiera de los Leroy, ya sea a través de Github o en esta discordia en la que se produce la discusión sobre el desarrollo de Principia (ya no estoy allí, pero egg siempre ha sido amable con mis preguntas sobre su número). métodos). ¡Por favor comparta con el SE lo que encuentre!
russell borogove
UH oh
CrisR
UH oh
jon custer
CrisR