| 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 [ 22.63 KiB | 4261 mal betrachtet ] 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/ |
|