Einzelnen Beitrag anzeigen

Taggs

Registriert seit: 20. Nov 2009
8 Beiträge
 
#27

Re: Physikgesetze zur Simulation unseres Sonnensystemes

  Alt 29. Mai 2010, 15:48
Ja danke, das ist mir dann irgendwann auch aufgefallen. ^^

Code:
# Mir liegen die Werte in den Grundeinheiten vor, d.h. m, s und kg
# Vektoren (Richtung und Position) enthalten X, Y, Z

PlanetX = Aktueller Planet, für den gerade neue Werte berechnet werden

Mache mit allen Planeten (jeweils PlanetY), wenn PlanetX <> PlanetY:

  Kraft := (0.0000000000667428 * PlanetX.Masse * PlanetY.GetMasse) / (Abstand(PlanetX, PlanetY))
  Summe := Summe + Kraft * (PlanetY.Position - PlanetX.Position)

# Neue Richtung (gerichtete Geschwindigkeit)
PlanetX.Richtung := PlanetX.Richtung + (dt * (Summe / PlanetX.Masse))

PlanetX.Position := PlanetX.Position + (dt * PlanetX.Richtung)
Wenn ich mich nicht irre, ist in meinem letzten Beitrag ein Fehler drin. Die Position berechnet sich: s = 1/2 * a*dt^2 + v0*dt + s0

Ich hatte die Position aber mit s = s0 + dt (v0 + dt * a) berechnet. Ausmultipliziert heißt das: s0 + v0*dt + a*dt^2. Da scheint 1/2 abhanden bekommen zu sein.

Dennoch bin ich mit beiden Rechnungen nicht zufrieden, da ich selbst bei einem dt von 1 Sekunde nach 1 Tag Abweichungen habe (Werte mit der Datei von Christian S. abgeglichen). Die X-Koordinate der Sonne z.B. hat eine Abweichung von 0,000000061. Da die Koordinaten in Astronomischer Einheit angegeben sind, beträgt die Abweichung 9 km nach einem Tag. Das ist zwar nicht sehr viel, aber woher kann das kommen? Andere Körper im Weltall, die ich in meiner Simulation nicht berücksichtige? Ungewollte Rundungen seitens des Computers?

EDIT: Das mit der Abweichung hat sich erledigt. Seitdem ich noch die anderen Himmelskörper hinzugefügt habe (Pluto und Mond) war eine Abweichung kaum noch messbar.

Mittlerweile bin ich mir auch sicher, dass mein Weg schon richtig ist. Es gibt ja auch die Formel s = a*t^2, wobei hier a die Endbeschleunigung und nicht die Durchschnittsbeschleunigung ist.
  Mit Zitat antworten Zitat