Der Vorteil von Computersimulationen im Gegensatz zu Experimenten ist, dass man verschiedene Was-Wäre-Wenn-Szenarien durchspielen kann, da man verschiedene physikalische Effekte einfach an und ausschalten kann.
Ich habe mein Pythonprogramm für die Loopingfahrt so umgestrickt, dass es das reduzierte Keplerproblem in zwei Dimensionen löst. Reduziert bedeutet in diesem Zusammenhang, dass die Sonne festgehalten wird und nur die Bewegung der Erde betrachtet wird. Die Betrachtung in nur zwei Dimensionen ist keine Einschränkung, da die Erdbahn aufgrund der Drehimpulserhaltung in einer Ebene liegt.
- Code: Alles auswählen
#!/usr/bin/python
import sys
from math import *
from numpy import *
# Als Einheiten werden Erdmasse,
# AE und Erdjahr verwendet
Ex = 0.0167086342
G = 0.000118427
Ms = 332946.0
# r = (x, y, v_x, v_y)
def grav(r):
dist = sqrt(r[0]*r[0] + r[1]*r[1])
res = array([0.0]*4)
res[2] = -G*Ms*r[0]/(dist*dist*dist)
res[3] = -G*Ms*r[1]/(dist*dist*dist)
return res
# berechnet den Betrag von
# omega = r x v /|r|^2.
# Da r und v immer in der x-y-Ebene liegen
# zeigt omega in z-Richtung
def omega(r, v):
dist2 = r[0]*r[0] + r[1]*r[1]
omega_z = r[0]*v[1] - r[1]*v[0]
return abs(omega_z)/dist2
def zentri(r):
w = omega(r[0:2], r[2:4])
res = array([0.0]*4)
res[2] = w*w*r[0]
res[3] = w*w*r[1]
return res
def f(r):
res = grav(r)
# res = zentri(r)
# res = grav(r) + zentri(r)
# res = array([0.0]*4)
res[0] = r[2]
res[1] = r[3]
return res
def rk4(dt, r):
k1 = dt*f(r)
k2 = dt*f(r + 0.5*k1)
k3 = dt*f(r + 0.5*k2)
k4 = dt*f(r + k3)
return r + 1.0/6.0*(k1 + 2.0*k2 + 2.0*k3 + k4)
if (len(sys.argv) != 3):
sys.stderr.write("./kepler.py dt tMAx\n")
sys.exit(2)
dt = float(sys.argv[1])
tMax = float(sys.argv[2])
t = 0.0
# Start im Perihel
r0 = 1-Ex
v0 = sqrt(G*Ms*(1.0+1.0/Ms)*(1.0+Ex)/(1-Ex))
r = array([r0, 0.0, 0.0, v0])
while t<tMax:
print t, r[0], r[1], r[2], r[3]
r = rk4(dt, r)
t += dt
Ich betrachte das Sonnensystem aus einem intertialen "Außen"system. Das Programm löst dann die Newtonsche Bewegungsgleichung
m * d^2 r/d t^2 = F.
Ich betrachte zwei verschiedene Fälle, einmal wirkt nur die Gravitation auf die Erde, im anderen Fall wirken sowohl die Gravitation alsauch die Zentrifugalkraft auf die Erde. Das ist in der Implemtation etwas unschön gelöst, man muss dazu in der Funktion f die entsprechende Zeile einkommentieren. Also Anfangsbedingung benutzte ich das Perihel, da dort der Ortsvektor und der Geschwindigkeitsvektor senkrecht aufeinander stehen.
Es ergeben sich die beiden folgenden Trajektorien.
Wenn nur die Gravitation wirkt ergibt sich die fast kreisförmige Erdbahn. Wirken hingegen sowohl die Gravitation alsauch die Zentrifugalkraft auf die Erde, ergibt sich keine geschlossene Bahn.
Dieses Computerexperiment widerlegt also die Behauptung, dass die Zentrifugalkraft auch im Inertialsystem wirkt.