Ce sont des algorithmes qui va me permettre de simuler la physique planétaire?
Je suis intéressé à faire un "Système Solaire" simulateur qui va me permettre de simuler la rotation et les forces gravitationnelles des planètes et des étoiles.
Je voudrais être en mesure de dire, de simuler, de notre système solaire, et le simuler à travers des vitesses variables (c'est à dire, regarder la Terre et les autres planètes tournent autour du soleil dans les jours, les années, etc). J'aimerais être en mesure d'ajouter des planètes et changement des planètes de masse, etc, pour voir comment cela aurait des conséquences sur le système.
Quelqu'un aurait-il toutes les ressources qui permettraient de me pointer dans la bonne direction pour la rédaction de ce genre de simulateur?
Existe-t-il de moteurs physiques qui sont conçus dans ce but?
F = G.m1.m2.r^2
?- r^(-2) 😉
- Je veux ce genre de formule, sauf pour les collisions, pour simuler des "fluides". Je ne sais pas vraiment math/physique beaucoup à tous, donc si vous pouviez me donner quelques simples aider, j'apprécierais beaucoup.
- voir Est-il possible de faire des n-corps du système solaire de simulation en matière de taille et de masse?
Vous devez vous connecter pour publier un commentaire.
C'est tout ici et en général, tout ce que Jean Meeus a écrit.
Vous avez besoin de connaître et de comprendre La Loi de Newton de la Gravitation Universelle et Les Lois de Kepler du Mouvement des planètes. Ces deux sont simples et je suis sûr que vous avez entendu parler d'eux, si ce n'est étudié dans l'école secondaire. Enfin, si vous voulez que votre simulateur d'être aussi précis que possible, vous devriez vous familiariser avec les problème à n Corps.
Vous devriez commencer simple. Essayez de faire un
Sun
objet et unEarth
objet qui tourne autour d'elle. Cela devrait vous donner un très bon départ et il est assez facile de développer à partir de là. Une planète de l'objet devrait ressembler à quelque chose comme:Rappelez-vous juste que
F = MA
et le reste vient tout juste ennuyeux de maths 😛C'est un excellent tutoriel sur la N-corps les problèmes en général.
http://www.artcompsci.org/#msa
Il est écrit à l'aide de Ruby, mais assez facile à la carte dans d'autres langues, etc. Il couvre une partie de la commune de démarches d'insertion; l'Avant-Euler, Leapfrog et Hermite.
Vous voudrez peut-être jeter un oeil à Celestia, un espace libre simulateur. Je crois que vous pouvez l'utiliser pour créer fictif systèmes solaires et il est open source.
Tout ce que vous devez mettre en œuvre est la bonne équation différentielle (Keplers de la loi) et à l'aide de Runge-Kutta. (au moins cela a fonctionné pour moi, mais il y a probablement de meilleures méthodes)
Il y a des tas de tels simulateurs en ligne.
Ici est une simple mise en œuvre dans 500lines de code c. (montion algorhitm est beaucoup moins)
http://astro.berkeley.edu/~dperley/programs/ssms.html.
Également vérifier:
http://en.wikipedia.org/wiki/Kepler_problem
http://en.wikipedia.org/wiki/Two-body_problem
http://en.wikipedia.org/wiki/N-body_problem
En physique, il est connu comme le Problème À N Corps. Il est célèbre parce que vous ne pouvez pas résoudre ce problème en main pour un système avec plus de trois planètes. Heureusement, vous pouvez obtenir approximative des solutions avec un ordinateur très facilement.
Un beau livre sur l'écriture de ce code à partir de la base peut être trouvé ici.
Cependant, je me sens un mot d'avertissement est important ici. Vous ne pouvez pas obtenir les résultats que vous attendez. Si vous voulez voir comment:
Le problème est présent.
Ouais, les astronomes modernes sont concerné par la façon de Saturne masse des changements de l'orbite de la Terre autour du Soleil. Mais c'est un effet mineur. Si vous allez tracer la trajectoire d'une planète autour du Soleil, il ne sera guère question qu'il existe d'autres planètes dans le Système Solaire. Le Soleil est tellement grosse qu'elle va se noyer tous les autres de la gravité. Les seules exceptions à cette règle sont:
Pour être clair, oui, vous serez en mesure de calculer certaines interactions entre les planètes. Mais non, ces interactions ne sera pas significatif à l'œil nu si vous créez un réaliste du Système Solaire.
Essayer si, et vous trouverez!
Découvrez nMod, un n-corps modeling toolkit écrit en C++ et utilisant OpenGL. Il a assez bien peuplée système solaire modèle qui vient avec elle et il devrait être facile à modifier. Aussi, il a une assez bonne wiki à propos de n-corps de simulation en général. Le même gars qui a créé ce est aussi la création d'un nouveau programme appelé Moody, mais il ne semble pas être là.
En outre, si vous allez faire des simulations à n-corps avec plus que juste un peu d'objets, vous devriez vraiment regarder la rapide multipolaire méthode (appelé aussi rapide multipolaire de l'algorithme). Il peut le réduire le nombre de calculs à partir de O(N^2) à O(N) pour vraiment accélérer votre simulation. Il est également l'un des top dix plus grands algorithmes du 20e siècle, selon l'auteur de cet article.
Algorithmes pour simuler la physique planétaire.
Voici une implémentation de l'hôtel Keppler pièces, dans mon application Android. Les parties principales sont sur mon site web vous pouvez télécharger l'ensemble de la source: http://www.barrythomas.co.uk/keppler.html
C'est ma méthode de dessin de la planète à la " prochaine de la position de l'orbite. Réfléchir aux étapes comme de marcher autour d'un cercle, d'un degré à un moment, sur un cercle qui a la même période, la planète vous êtes en train de suivre. En dehors de cette méthode que j'utilise un mondial du double que le compteur de pas - disant dTime, qui contient un certain nombre de degrés de rotation.
Les principaux paramètres passés à la méthode sont, dEccentricty, dScalar (un facteur d'échelle si l'orbite s'adapte à tous sur l'écran), dYear (la durée de l'orbite de la Terre en années) et d'orienter l'orbite de sorte que le périhélie est à la bonne place sur le cadran, pour ainsi dire, dLongPeri - la Longitude du Périhélie.
drawPlanet:
La méthode ci-dessus appelle deux autres méthodes qui fournissent des valeurs de E (la moyenne de l'anomalie) et r, la longueur du vecteur à la fin de laquelle la planète est trouvé.
getE:
getRfromE:
Il ressemble, il est très difficile et nécessite de bonnes connaissances de la physique, mais en fait c'est très facile, vous avez besoin de savoir seulement 2 formules de base et la compréhension des vecteurs:
Attractional de force (ou de la force gravitationnelle) entre planet1 et planet2 de masse m1 et m2, et la distance entre eux d: Fg = G*m1*m2/d^2; Fg = m*a. G est une constante, la trouver par la substitution des valeurs aléatoires, de sorte que l'accélération "a" ne sera pas trop petit et pas trop grand à peu près "0.01" ou "0.1".
Si vous avez au total vecteur de la force qui agit sur une planète à l'instant du temps, vous pouvez trouver une accélération instantanée a=(total de la Force)/(masse de la planète actuelle). Et si vous avez actuelle de l'accélération et de la vitesse du courant et de la position actuelle, vous pouvez trouver de nouveaux vélocité et la nouvelle position
Si vous voulez regarder réel, vous pouvez utiliser la suite supereasy de l'algorithme (pseudo-code):
Si vous êtes à la simulation de la physique, je recommande fortement Box2D.
C'est un excellent simulateur physique, et permettra de réduire le montant de la chaudière de la plaque que vous aurez besoin, avec la simulation de la physique.
Les fondamentaux de Astrodynamics par Bate, Muller, et le Blanc est toujours une lecture obligatoire à mon alma mater de premier cycle en génie Aérospatial. Ce qui tend à couvrir la mécanique orbitale des corps en orbite autour de la Terre...mais c'est probablement au niveau de la physique et des maths vous aurez besoin pour commencer votre compréhension.
+1 pour @Stefano Borini la suggestion de "tout ce que Jean Meeus a écrit."