Fonction evolue de la classe systeme

Fonction evolue de la classe systeme

par Dominique Ava Candrian,
Number of replies: 3

Bonjour,

Quand j'effectue la fonction evolue de la classe systeme, j'ai trois des quatre coordonnées que donnent exactement la bonne valeur. Par contre, une valeur divèrge un petit peu à chaque pas de temps. Ca nous semble bizarre car les autre chiffres dependent de celle-là mais sont parfaites! 

Nous avons considéré un problème d'arrondi, mais l'affichage plus précise n'aide pas.
En plus, nous avons ajouté une fonction qui limite les angles entre 0 et 2pi, mais cela ne change rien non plus.

Pour comparer, l'intégrateur Euler Cromer, qui doit afficher la même chose, marche parfaitement. J'ajoute un extrait du terminal des deux méthodes pour les pas de temps 0.20 et 0.21. Le premier montre les chiffres désirées, le deuxième celles de la fonction evolue. On voit que la coordonnée à droite en haut n'est pas tout à fait correcte.

Quel pourrait être le problème et comment le résoudre?

Merci en avance!

Attachment correct (Intégrateur).png
Attachment divergent (evolue).png
In reply to Dominique Ava Candrian

Re: Fonction evolue de la classe systeme

par Jean-Cédric Chappelier,

il faudrait dire plus précisément de quoi vous parlez : pourquoi 4 coordonnées ? quelle « toupie » (quelle équation d'évolution) ?
Je ne comprends pas non plus de quelles 2 méthodes vous parlez : les 2 n'utilisent-elles pas Euler-Cromer ?
Si oui, quelle est la différence (de méthode) ?  [ et si non : quel autre intégrateur est utilisé ? ]

In reply to Jean-Cédric Chappelier

Re: Fonction evolue de la classe systeme

par Dominique Ava Candrian,

Merci pour la réponse vite, j'essaie de préciser:

Nous sommes au exercice P9, où il faut créer puis faire évoluer un système ayant les mêmes caractéristiques que celles des derniers tests de l'exercice P7. C'est-à-dire les quatre coordonnées sont exactement  comme données dans l'exercice P7: 
Première ligne:  Vecteur P            (#parametre)   (premier terme = temps)
Deuxième ligne: Vecteur P-point (#vitesse)
Comme donné dans P6, il s'agit d'une chute libre de masse 0.127 kg utilisant l'intégrateur d'Euler-Cromer de pas de temps de 0.01 s.

Dans P7, nous avons fait cela en appellant l'intégrateur Euler Cromer à chaque pas de temps.
Ici (P9), nous voulons afficher exactement la même chose, mais pour un systeme entière de toupies. Pour cela, nous avon defini une méthode evolue pour la classe Systeme. Comme demandé dans l'enoncé, elle prend chaque toupie et l'evolue à travers l'integrateur et le pas de temps donnés.
Dans notre cas (justement crée pour vérifier cette méthode evolue), le systeme contient une seule toupie avec les données mentionnées (0.127 kg, chute libre) et l'integrateur Euler Cromer de pas de temps 0.01.

J'espère que c'est plus clair comme ça (et que je n'ai pas mentionné trop des détails spécifiques de notre code...). Car P7 fonctionne (premier image original), je ne sais vraiment pas où il y a un erreur et pourquoi seulement une coordonnée est faute.