intégrateurs qui ne s'arrêtent plus

intégrateurs qui ne s'arrêtent plus

par Jules Amédée Arislobule Schadt,
Number of replies: 3

Bonjour,

Nous avons un problème au niveau des intégrateurs. Les 3 nous donnent les bonnes valeurs numériques mais quand nous lançons le programme en mode graphique avec Runge_Kutta ou Newmark, le cube semble au début tourner normalement mais en fait il tourne à l'infini et sa rotation qui se faisait normalement par rapport à une face, se fait ensuite par rapport à une autre face, puis une autre, etc...

Il faut dire aussi qu'il y a qqch d'étrange, en mettant Runge ou Euler, je dois changer le pas de temps d'un facteur 10 pour voir qqch => /1500 (Runge) à /15000 (Euler)

In reply to Jules Amédée Arislobule Schadt

Re: intégrateurs qui ne s'arrêtent plus

par Deleted user,

Personnellement, avec cette description, je n'arrive pas à me représenter ton problème.

Quand tu parles de "qqch d'étrange", c'est quoi? Un problème de divergence? Des valeurs tout simplement pas cohérentes? Un affichage qui va trop vite (vérifie que ton intégrateur utilise le pas de temps fourni par GLWidget)?

In reply to Deleted user

Re: intégrateurs qui ne s'arrêtent plus

par Jules Amédée Arislobule Schadt,

Ma étonnement est qu'avec l'intégrateur Euler_croomer, la toupie disparait rapidement (ce qui est normal car ca diverge vite) mais qu'avec les 2 autres, elle ne disparait jamais et se met à tourner dans des positions qui ne sont plus physiquement cohérentes.

Pourtant les valeurs de nos intégrateurs sont correctes et effectivement je donne bien le pas de temps à mon intégrateur. Peut être faut il dire explicitement au programme quand les angles deviennent incohérents mais je ne pensais pas. Je pensais que la toupie disparaitrait toute seule.

In reply to Jules Amédée Arislobule Schadt

Re: intégrateurs qui ne s'arrêtent plus

par Deleted user,

la toupie disparait rapidement (ce qui est normal car ca diverge vite)

Effectivement. Mais as-tu quand même vérifié ce qu'il se passe quand tu diminues le pas de temps fourni à l'intégrateur dans le cas OpenGL (cherche où modifier cela dans GLWidget)? As-tu contrôlé que ces angles bizarres n'apparaissent pas avec Euler-Cromer?

Peut être faut il dire explicitement au programme quand les angles deviennent incohérents mais je ne pensais pas

Pour le moment, je dirais non. À l'exception du cas où la toupie "tombe" peut-être, \theta\geq\pi/2.


De nouveau, je n'ai pas d'idées précises, ton problème peut venir de pas mal d'endroits. Voici quelques pistes ('invite les autres lecteurs à compléter s'ils jugent opportun):

As-tu implémenté les cas limites correctement (ie. theta=0)? Vérifie aussi si tes invariants sont vraiment invariants... Cela pourra te signaler soit des erreurs d'intégration numérique, ou encore d'implémentation de la fonction d'évolution.

En ralentissant le temps (par modification du dt), il te sera possible de mieux observer ta toupie.Si le comportement paraît absurde dès le début de l'affichage, c'est possible que tes méthodes de dessin avec OpenGL soient erronées aussi (il faut évidemment être sûr qu'elles soient correctes avant d'essayer d'en interpréter les résultats).