Forum der Vereinigung der Sternfreunde
https://forum.vdsastro.de/

Heft 81: Das eingeschränkte Dreikörperproblem
https://forum.vdsastro.de/viewtopic.php?t=6890
Seite 1 von 1

Autor:  Uwe Pilz [ 19. April 2022, 09:13:45 AM ]
Betreff des Beitrags:  Heft 81: Das eingeschränkte Dreikörperproblem

Dateianhang:
L1-L3.jpg
L1-L3.jpg [ 22.63 KiB | 4261 mal betrachtet ]
Die Astronomen haben sich seit langem der Frage zugewandt, ob es im Dreikörperproblem allgemeine Lösungen zumindest für stark vereinfachte Konstellationen gibt. Joseph-Louis de Lagrange hat fünf solche Lösungen abgegeben: In den nach im benannten Stabilitätspunkten L1-L5 bewegen sich Körper synchron mit dem Planeten um die Sonne. Bedeutung haben diese Punkte vor allem in der Umgebung des Jupiters.
Im ersten Teil der kleinen Serie habe ich an Python-Programm angegeben, mit denen man die Lage der Punkte L1 bsi L3 aus der Analyse der Umlaufzeiten und Schwerebeschleunigungen berechnen kann. Hierzu kommt das sog. Halbierungsverfahren zum Einsatz.

Hier das Programm:
Code:
# Programm Lagrange1-3.py : Berechnung der Orte der Lagrange-Punkte
from math import *
def sq(x): return x*x

G = 6.67408e-11

# Sonne - Jupiter
m1=1.988475415966536e+30 # Masse Sonne
m2=1.898568695e+27 # Masse Jupiter
r=7.7835e11 # Abstand für Kreisbahn


x1=-m2*r/(m1+m2) # Koordinate ...
x2=m1*r/(m1+m2)  # ...vom Schwerpunkt
omega=sqrt(G*(m1+m2)/r/r/r) 
v1=omega*x1 # Bahngeschwindigkeit
v2=omega*x2
print("x1=",x1,"v1=", v1)
print("x2=",x2,"v2=",v2)


def beschl(xL,x1,x2): # effektive Beschleunigung
    a1=G*m1/sq(xL-x1)*(x1-xL)/abs(x1-xL)
    a2=G*m2/sq(xL-x2)*(x2-xL)/abs(x2-xL)
    aw=sq(omega)*xL
    a=a1+a2+aw
    return a

for L in range(1,4): # alle drei Lagrangepunkte
    if (1==L): xL1=0.001*x2;xL2=0.9999999*x2
    if (2==L): xL1=1.0001*x2; xL2=2*x2
    if (3==L): xL1=-2*x2; xL2=-1.0001*x1

    # Berechnung des Lagrangepunktes mit dem Halbierungsverfahren
    a1=beschl(xL1,x1,x2)
    a2=beschl(xL2,x1,x2)
    for i in range(60):
        xL=(xL1+xL2)/2
        aL=beschl(xL,x1,x2)
        if (aL>0): xL2=xL;a2=aL
        else: xL1=xL; a1=aL
    print("L",L,": xL=",xL, "vL=", omega*xL)
name=input("Fertig?")


Seite 1 von 1 Alle Zeiten sind UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/