IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Integration d'euler instable


Sujet :

Algorithmes et structures de données

  1. #21
    Membre actif Avatar de SKone
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 333
    Points : 250
    Points
    250
    Par défaut
    Ouaih et pour mes equations :

    acc = Fext / mass
    vitesse += acc*dt
    position += vitesse*dt

    Parce que dans tout les sites y a des develloppement limité que je comprends pas pour un programmeur que je suis tu peux pas me dire comment enfin une fonction Runge-Kutta comment ca marche... ?

  2. #22
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    un dt de 0.05 c'est un peu gros, c'est pour ca que ca plante... L'aproximation de ton intégration ne peut plus se faire.... Ta boucle est trop lente.

    1 image -> 0.05s
    x image -> 1s
    donc x = 20

    Tu tournerai à 20 fps, c'est un peu juste.....

    Il faut que tu ai au moins le double pour être valable....
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  3. #23
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Je ne sais pas comment tu as déterminé ton dt, je veux dire si tu fais tourner ton moteur tout seul ou si tu affiche quelquechose en même temps, mais 20 Fps c'est juste juste.

    Si ton moteur tourne seul, imagine, il faut encore faire le rendu de la scene, afficher, gérer l'IA, le clavier, la souris... Au final tu aura moins de 10 fps !

    Enfin ce n'est que mon avis, je ne suis pas un expert....
    Mais je pense que ton probleme vient de la.
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  4. #24
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Citation Envoyé par Miles
    Je pense que tu devrais utiliser un dt dépendant des variations de ton intégrale. La variation est lente -> gros dt. La variation est faible -> petit dt.
    Par exemple, si tu dois calculer l'intégrale de x connaissant une équation différentielle, tu fais une première approximation de x, tu obtiens x' et tu prends dt = 1/x.
    Le dt doit uniquement dépendre du temps, s'il ne dépent pas du temps comment on fait pour intégrer sur le temps ?
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  5. #25
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par Rafy
    Le dt doit uniquement dépendre du temps, s'il ne dépent pas du temps comment on fait pour intégrer sur le temps ?
    Le fait de prendre un dt variable ne veut pas dire qu'on ne peut pas intégrer dans le temps !!! C'est juste que l'intégration se fait plus ou moins vite !

    Car je te rappelle que la multiplication par dt est l'approximation d'une intégrale par la somme de Riemman... Rien ne t'empêche de prendre un dt ( = pas) variable !!!

    C'est une méthode ultra-courante de faire varier le pas en fonction de la façon dont on s'approche de la solution, et ça n'est pas en contradiction avec l'intégration !!

    A+
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  6. #26
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    C'est le coup du
    Par exemple, si tu dois calculer l'intégrale de x connaissant une équation différentielle, tu fais une première approximation de x, tu obtiens x' et tu prends dt = 1/x.
    qui me fait peur, je suis d'accord qu'avec Riemann on peut faire varier le pas mais je ne comprend pas trop la methode avec le dt = 1/x
    Ca voudrai dire que le x est en s^-1 !

    C'est tout mais je suis d'accord qu'avec la methode des rectangle on peut avoir une subdivision non constante...
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  7. #27
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    D'ailleurs, je me suis trompé, c'est dt = 1/x' ou quelque chose du genre.
    Il n'y a pas d'histoire de fps ou autre, on est pas dans un affichage, mais dans le calcul d'une intégration. Dans ces cas, on utilise très très souvent un delta d'intégration variable afin de se protéger contre des variations brusques de x.
    Pourquoi d'abord calculer un x ? C'est pour avoir une première approximation de x', en espérant qu'il n'y ait pas eu de variation encore plus rapide !

  8. #28
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par Rafy
    C'est tout mais je suis d'accord qu'avec la methode des rectangle on peut avoir une subdivision non constante...
    Avec toute intégration discrète ce truc marche !

  9. #29
    Membre actif Avatar de SKone
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 333
    Points : 250
    Points
    250
    Par défaut
    Je comprends rien a votre debat sur dt mais je cherches juste a imple RK4 et RK4 veut qu'on fasse un ::
    F(dt/2, yn);

    Comment trouvé les forces entre 2 dt ?

  10. #30
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 417
    Points : 372
    Points
    372
    Par défaut
    Bonjour.

    La méthode de Runge-Kutta d'ordre 4 (qui est quand même une approximation) donne de bon résultats tant que l'équation différentielle satisfait les conditions de Cauchy-Lipschitz. Il en va d'ailleurs de même pour la méthode d'Euler, et d'une manière générale pour toutes les méthodes de résolution d'équations différentielles ordinaires (c'est à dire non aux dérivée partielles) par pas successifs.

    L'équation doit se présenter sous la forme suivante (dite résolue en x'):

    où t représente le temps, et x (qui peut être a valeurs vectorielle) l'espace (c'est à dire la position du mobile). La condition de cauchy-Lipschitz est d'autant mieux satisfaite que la dérivée partielle dF/dx est mieux bornée. C'est donc ça qui compte. Dans les zones où dF/dx est très grand les méthodes par pas successifs s'affolent.

    Maintenant, s'il s'agit d'une équation du second ordre (ce qui semple être le cas) il faut d'abord la transformer en une équation du premier ordre pour pouvoir faire le calcul ci-dessus. A cette fin, il suffit de poser X = (x,x') et de travailler avec X à la place de x. De toute façon, faire cette transformation est indispensable, car la méthode de Runge-Kutta (de même que celle d'Euler) ne s'applique de toute façon qu'aux équations du premier ordre.

    En résumé, avant toute autre chose: poser clairement l'équation différentielle et la ramener au premier ordre.

    Cordialement.

Discussions similaires

  1. Exécutable Java avec JRE intégré
    Par clawhammer dans le forum JBuilder
    Réponses: 2
    Dernier message: 06/10/2003, 16h26
  2. [Rave][Delphi] integration de fichiers JPG
    Par Harry dans le forum Rave
    Réponses: 7
    Dernier message: 28/09/2003, 11h36
  3. integration de repertoire dans ma webapp
    Par thomy dans le forum JBuilder
    Réponses: 2
    Dernier message: 04/06/2003, 10h34
  4. calcul integral en c
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 11/01/2003, 11h32
  5. Réponses: 10
    Dernier message: 27/08/2002, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo