J'essaie de développer une simulation physique et je souhaite mettre en œuvre un quatrième ordre Intégration symplectique une méthode>. Le problème est que je dois avoir le problème en mathématiques, car ma simulation ne fonctionne pas du tout lors de l'utilisation de l'intégrateur symplectique (par rapport à un intégrateur de Runge-Kutta de quatrième ordre qui fonctionne de manière raisonnable pour la simulation). J'ai googler cela pour toujours et tout ce que je peux trouver, ce sont des articles scientifiques sur le sujet. J'ai essayé d'adapter la méthode utilisée dans les articles, mais je n'ai pas de chance. Je souhaite savoir si quelqu'un a un code source pour une simulation qui utilise des intégrateurs symplectiques, de préférence pour simuler un champ gravitationnel, mais tout intégrateur symplectique ferait. Dans quelle langue la source est-elle trop importante, mais j'apprécierais une langue à l'aide de la syntaxe de style C. Merci! P>
3 Réponses :
Comme vous avez demandé le code source: de ici Vous pouvez télécharger MATLAB et Code ForTran pour des méthodes symétriques pour les systèmes hamiltoniens et les méthodes symétriques de problèmes réversibles. Et beaucoup d'autres méthodes pour traiter aussi des équations diff. P>
et dans Ce document Vous pouvez trouver la description de les algorithmes. P>
Si vous utilisez Mathematica Ceci peut aider aussi. P>
Merci, cela aide définitivement! Ce dont j'avais besoin était d'avoir les équations dans des papiers décrits dans le code et que le lien que vous avez fourni, cela.
@George Comme vous l'avez vu, des exemples de code source pour des algorithmes symplectiques sont rares sur le Web. Lorsque vous avez terminé, envisagez de poster votre code quelque part pour aider les autres dans le besoin.
Je peux certainement apprécier comment les exemples d'effrayage sont. Bien qu'un grand nombre de papiers soient écrits sur des algorithmes symplectiques utilisés pour résoudre divers problèmes, il semble que ces mêmes scientifiques ne mettent pas le code pour leurs algorithmes sur le Web. Je posterai un lien plus tard si je peux obtenir un algorithme symplectique de travail.
Je suis dans le domaine de l'accélérateur physique (sources de lumière synchrotron) et dans les électrons de modélisation se déplaçant par des champs magnétiques, nous utilisons régulièrement des intégrateurs symboliques. Notre carrosserie de base est un intégrateur symplectique de 4ème ordre. Comme indiqué dans les commentaires ci-dessus, ces codes ne sont malheureusement pas normalisés ou facilement disponibles. P>
Un open source code de suivi basé Matlab est appelé accélérateur Boîte à outils. Il y a un projet Sourceforge appelé ATCollab. Voir un wiki désordonné ici https://sourceforge.net/apps/mediawiki/atcollab/index.php ? Titre = Main_Page P>
Pour les intégrateurs, vous pouvez regarder ici: https://sourceforge.net/p/atcollab/code- 0/235 / Tree / Trunk / Aintegors / Les intégrateurs sont écrits en C avec MEX Lien vers Matlab. Parce que les électrons sont relativistes, les termes cinétiques et potentiels ont un peu différent de celui de l'affaire non relativiste, mais on peut toujours écrire le hamiltonien comme H = H1 + H2 où H1 est une dérive et H2 est un coup de pied (disons d'aimants quadripolaires ou d'autres champs magnétiques). P>
Voici le code source d'une méthode de composition de quatrième ordre basé sur le schéma de verlet.
Une régression linéaire de $ \ log_ {10} (\ delta t) $ vs. \ log_ {10} (erreur) $ montrera une pente de 4, comme prévu de la théorie (voir le graphique ci-dessous).
Plus d'informations peuvent être trouvées ici , ici ou ICI . p> p> p>
Fondamentalement, je veux juste intégrer un problème de N-corporel. Je suppose que les paramètres sont alors les positions des corps, la momente et les masses.
Je suis allé sous l'hypothèse selon laquelle les problèmes généraux N-corporels ne peuvent pas être résolus symboliquement, que c'est la raison pour laquelle les intégrateurs numériques (tels que les intégrateurs de RK4 et symplectiques) sont utilisés. Si vous voulez dire mettre en place le problème avec les équations différentielles appropriées, ne vous inquiétez pas pour cela. Il m'a fallu un certain temps pour que l'intégrateur RK4 fonctionne également, mais cela a davantage à faire de ma capacité à transférer des équations mathématiques au code (c'est-à-dire qu'il est possible de pouvoir le faire, mais ne pourrez pas non plus écrire de code à fais-le).
Je rougis. Je vous lisez tous les questions à tout ce qui est rapidement et simplement vu i> "symbolique" où vous avez écrit "symplectique". Mes excuses, mais tous mes commentaires (maintenant supprimés du mauvais point) étaient basés sur cette malentendance.
Oh, ok, pas de soucis alors. Le problème que je vais avoir concerne simplement un intégrateur symplectique au code. Je ne reçois nulle part avec mes tentatives alors je voulais juste voir comment d'autres personnes le font.