Resolviendo numéricamente el problema de los tres cuerpos

Quiero crear un programa en METRO a t h mi metro a t i C a que resuelve numéricamente el problema de los tres cuerpos mediante las ecuaciones de Euler-Lagrange. Estaba buscando algunos métodos para hacerlo con éxito. Así que encontré una forma de resolver el problema de dos cuerpos en http://www.maths.usyd.edu.au/u/joachimw/thesis.pdf (página 12). Encontré, también, cómo minimizar el número de coordenadas generalizadas usando vectores de posición relativa s i = r j r k y centro de masa r GRAMO , como se puede ver en el siguiente esquema escaneado de Goldstein, 3ra edición :ingrese la descripción de la imagen aquí

Con esto llegué al Lagrangin a un sistema de Tres cuerpos:

L = 1 2 METRO r ˙ GRAMO 2 + 1 2 metro 1 metro 2 METRO | r ˙ 1 r ˙ 2 | 2 + 1 2 metro 2 metro 3 METRO | r ˙ 2 r ˙ 3 | 2 + 1 2 metro 1 metro 3 METRO | r ˙ 1 r ˙ 3 | 2 + 2 GRAMO [ metro 1 metro 2 | r 1 r 2 | + metro 2 metro 3 | r 2 r 3 | + metro 1 metro 3 | r 1 r 3 | ]

Quiero usar las ecuaciones de Euler-Lagrange:

d d t ( L q ˙ i ) L q i = 0

dónde q i = r GRAMO , s 1 , s 2 , s 3 .

Encontrar las ecuaciones de Lagrange para r GRAMO fue muy fácil, porque L r ˙ GRAMO es una cantidad conservada ( r GRAMO no aparece explícitamente en L ). Pero encontrar las ecuaciones de Lagrange para s i , i = 1 , 2 , 3 fue un poco confuso.

Tengo una duda: ¿es verdad que

d d t ( | r j r k | ) = | r ˙ j r ˙ k |
o más específicamente,
s i ˙ = | r ˙ j r ˙ k |   ?
Porque si no es así (y eso es lo que pienso) no era útil usar vectores de posiciones relativas. Requeriría nuevas coordenadas generalizadas como el X , y , z componentes de s i .

¿Cuál sería su enfoque para resolver este problema? ¿Podría ser esta una buena manera de hacerlo?

¿Son las ecuaciones de Euler-Lagrange un requisito? Para resolver este tipo de ecuaciones diferenciales, las ecuaciones de Hamilton son más fáciles porque son ecuaciones de primer orden. Por cierto, este año calculé numéricamente un Sistema Solar usando un algoritmo de Verlet. Es rápido y da una precisión aceptable. Segunda cosa. Sobre tu duda: te recomiendo que escribas explícitamente la forma de | r j r k | = ( X j X k ) 2 + ( y j y k ) 2 + ( z j z k ) 2 , luego derivar, luego reordenar el resultado en términos de r j ˙ y r k ˙ .
Podría intentar resolver este problema con las ecuaciones de Hamilton, gracias por tu consejo. Relativamente a mi duda, acabo de encontrar que d d t ( | r i r j | ) = | r ˙ i r ˙ j | porque ( θ ) | r ˙ i r ˙ j | , dónde θ = ( r ˙ i r ˙ j , r i r j ) . No creo que pueda expresar porque ( θ ) en términos de r i , r j , r ˙ i o r ˙ j .
Pero no podemos simplificar el problema usando las ecuaciones de Hamilton, porque las coordenadas generalizadas serían las mismas que en las ecuaciones de Lagrange. Entonces, todavía tenemos que usar el X , y , z componentes de s i , i = 1 , 2 , 3 .

Respuestas (1)

Bueno, he hecho algunos cálculos a tu problema.

El problema, de hecho, es que | r i r j | en todos lados. También el derivado temporal de eso es el dolor. Por supuesto que puedes escribirlo sin ese ángulo que comentaste si escribes las derivadas en términos de productos escalares.

Sin embargo, no voy a seguir eso. Tienes un sistema de 3 cuerpos, aislados, por lo que la energía se conserva y puedes escribir el hamiltoniano del sistema como:

H = i pag X i 2 + pag y i 2 + pag z i 2 2 metro i i , j > i GRAMO metro i metro j | r i r j |

Tenga en cuenta que la suma es j Es con j > i para evitar contar dos veces la misma interacción. Podrías usar la condición i j y luego dividir por 2, pero al hacer esto evitas iteraciones innecesarias. Parece que el problema sigue ahí. Sin embargo, tenga en cuenta que he usado como coordenadas generales simplemente las coordenadas cartesianas de cada partícula y no las posiciones del centro de masa.

Ahora apliquemos la ecuación de Hamilton. Supongamos que desea calcular el pag ˙ X de la partícula k . Entonces debes resolver:

pag ˙ X k = H X k = X k i , j > i GRAMO metro i metro j | r i r j | = j > k GRAMO metro i metro j X k 1 | r k r j |

Tenga en cuenta que en el último paso eliminé la suma en i , porque si k i entonces la derivada es 0. Esta última derivada es fácil de calcular. Se puede ver, escribiendo la expresión de | r k r j | con coordenadas, como indiqué en los comentarios, que esta derivada es:

X k 1 | r k r j | = X j X k | r k r j |

Esta derivada es más fácil de evaluar que la que tienes, porque esta es parcial en las coordenadas, pero tienes una derivada total en el tiempo. Es por eso que Hamilton es mejor en este caso. Al final, tendrás el siguiente sistema de ecuaciones:

pag ˙ q i = j > i GRAMO metro i metro j q j q i | r i r j |
q ˙ i = pag q i metro

Con q X , y , z . Ahora solo te queda resolver este sistema de ecuaciones de 1er orden con tu método favorito (Euler, Runge Kutta, etc). Tenga en cuenta que las sumas pueden ser a un número arbitrario de partículas norte .