Simulationssoftware

Status
Es sind keine weiteren Antworten möglich.

Bahamutzero

Neues Mitglied
Hallo ihr Astronomen da draussen.

kennt ihr vielleicht ein programm dass unser Sonnensystem simuliert ?

ich möchte mich an sowas heranwagen, mal schauen ob ich ein stabiles sonnensytem zusammenbekomme. mein ihr das ist möglich mit einem durschnitts pc ?

wenn ich als kleinste zeiteinheit für die simulation 1 sekunde nehme, und mal angenommen ich ein Jahr als eine Sekunde darstellen will, dann sind das ungefähr 252.288.000(365*8*86400) pro himmelskörper o0 . naja mal sehen ....
 
Hallo!

Erst mal zum Warmwerden ein paar Antworten.

kennt ihr vielleicht ein programm dass unser Sonnensystem simuliert ?
Dance of the Planets (alt, aber gut!), TheSky, Distant Suns, EasySky, Redshift, Celestia und viele mehr. Eine "SoSySim" ist also nix neues mehr.
ich möchte mich an sowas heranwagen, mal schauen ob ich ein stabiles sonnensytem zusammenbekomme. mein ihr das ist möglich mit einem durschnitts pc ?
Na klar. Numerische Integration der Planetenbahnen ist u.a. im Buch von Guthmann beschrieben. Die Rechenleistung eines auch schon drei Jahre alten PCs reicht dafür dick aus!
wenn ich als kleinste zeiteinheit für die simulation 1 sekunde nehme, und mal angenommen ich ein Jahr als eine Sekunde darstellen will, dann sind das ungefähr 252.288.000(365*8*86400) pro himmelskörper o0 . naja mal sehen ....
Üblicherweise benutzt man Schrittweiten von wenigen Tagen. Bei zu kurzen Schrittweiten sinkt die Genauigkeit sogar durch die Akkumulation der Rundungsfehler. Hinweise zur Auswahl geeigneter Verfahren gibt Guthmann, ich selbst schätze den Integrator DE, der im (leider nur noch antiquarisch erhältlichen) Buch von Shampine und Gordon (Vieweg Verlag) beschrieben ist. Integratoren findet man aber in zahlreichen auch frei erhältlichen Bibliotheken für numerisches Rechnen. Googlen mit "numerical integration" oder "ODE solver" wird sicher was Brauchbares zu Tage fördern.

Gruß,
Tom
 
danke für die antworten <img src="/phpapps/ubbthreads/images/icons/smile.gif" alt="" />

ich wollte das eigentlich simple mit vektoren machen. naja mal sehen. übrigens hatte ich einige denkfehler bei meiner rechnung. ich berücksichtigte nur die gravitation zwischen sonne und planet, aber ich denke mal gravitationen zwischen planeten haben auch bedeutung, vor allem wenns nicht so ganz hinhaut wie es die natur so vorgibt und jupiter an der erde vorbeirast *g*

denkfehler 2: jeder vektor hat 3 integers....

dass heisst dann anzahl der vektoren 1 (m*v) und 10 mal gravitation + ergebniss + endergebniss = 13 vektoren * 3 = 39 * 31536000 (sekunden pro jahr) = 1.229.904.000 Integers per second.... hehe

mal die erwähnten progs testen <img src="/phpapps/ubbthreads/images/icons/smile.gif" alt="" />

edit: Mal das mit den mips ausgetestet: Mein rechner 1,8 ghz schafft 1.000.000.000 ips in ca 5 secunden, also sollte eine 10 sekunden genaue berechnung möglich sein (wäre dann in 0,5 secs erledigt)

edit2: woow, gerade mal easy sky getestet, sehr guter speed, würde gerne wissen wie er dass hinbekommen hat. naja nur etwas fehlerhaft denke ich, oder meint ihr dass in 50.000 jahren mars wirklich wie ein irrer herumfliegt, und jupiter mal die sonne küsst ?
 
Zuletzt von einem Moderator bearbeitet:
Hallo,

denkfehler 2: jeder vektor hat 3 integers....

Eigentlich sind es Fleißkommazahlen (doubles). Zusätzlich zum Ort kommt natürlich noch der Geschwindigkeitsvektor (wieder drei doubles), damit man die Differentialgleichungen integrieren kann (die die wechselseitigen Störungen der Planeten berücksichtigen).

Gruß,
Tom
 
Ich wollte eigentlich auf fließkommazahlen verzichten, und als kleinste einheiten meter, sekunde, und kilo nehmen. Das müsste doch reichen.
dabei stosse ich jedoch schon an grenzen da ich keinen geeigneten datentyp finden kann, da selbst integer64 viel zu klein ist
 
Hi,

üblicherweise werden bei der Integration der Bewegungsgleichungen diese Einheiten verwendet:
* Massen in Einheiten der Sonnenmasse
* Entfernungen in Astronomischen Einheiten

Ich würde nicht mit skalierten Integers arbeiten, weil alles dadurch sehr unübersichtlich wird. Wie gesagt, die Zeitschritte liegen im Bereich von Tagen und der vermeintliche Performanceverlust durch "double statt int" ist unerheblich.

Formeln und (auch wichtig!) Anfangswerte stehen z.B. im Guthmann. Ein fertiges C++ Programm für numerische Integration findet sich im entsprechenden Kapitel von "Astronomie mit dem Personal Computer" von Oliver Montenbruck und mir. Numerische Integration wird auch ausführlich im Buch "Methods of Orbit Determination for Microcomputers" von Boulet beschrieben. Näheres zu diesen Büchern steht z.B. auf den Webseiten des Astro-shops.

Bevor du richtig loslegst würde ich dir empfeheln, mal in eines der Bücher reinzuschauen! Dort sind auch Beispiele angegeben, mit denen du deine Implementierung testen könntest.

Gruß,
Tom
 
Moin Bahamutzero,
ich habe mal so ein Progrämmchen geschrieben. Allerding mit der Beschränkung auf 2 Dimensionen. Im Prinzip ergibt sich die nächste Position des Planeten aus der Summe der Wege von:
1 momentane Geschwindigkeit
2 resultierende gravitative Wechselwirkung mit allen anderen Massen

Das Zeitintervall sollte man in Abhängigkeit von der Geschwindigkeit wählen. Wenn zwei Massen sich nahe kommen sind die Ungenauigkeiten nicht mehr zu vernachlässigen. Dann kann es schon mal vorkommen, daß eine der Massen weggeschleudert wird.

Alles was man braucht ist also:
Bewegungsgleichungen
Gravitationsgesetz
Vektoraddition
etwas Programmier Schnick-Schnack für die Darstellung

Mit normalen PC wird man kaum ein Zusammenstoß zweier Galaxien simulieren können (außer man hat viiiieeeel Zeit). Aber ein paar diskrete Massen gehen schon sehr gut.

Tschüß, Vince.

 
Status
Es sind keine weiteren Antworten möglich.
Zurück
Oben