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 :

Oscillateur de Van der pol, runge-kutta


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut Oscillateur de Van der pol, runge-kutta
    Bonjour,
    je cherche a résoudre l'oscillateur de van der pol, defini par
    x''+x-x'*mhu*(1-x^2) avec x'=dx/dt

    que l'ont peut ramener a deux équations,
    x'=y
    y'=-x+mhu(1-x^2)*y

    J'ai beaucoup de mal a comprendre l'algorithme de runge-kutta,
    est-il correct d'écrire :

    x(i+1)=x(i)+0.5(k1+k2)*h

    avec k1=y(i) et k2=y(i)+h


    y(i+1)=y(i)+0.5(k1+k2)*h

    avec k1=-x(i)+mhu(1-x(i)^2)*Y(i) et k2=-(x(i)+h)+mhu(1-(x(i)+h)^2)*(Y(i)+k1*h)

    J'utilise comme définition k1=f(xi,yi) et k2=f(xi+h,yi+k1*h) mais je ne suis pas sur d'appliquer l'algorithme correctement.

    merci !

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    y(i+1)=y(i)+0.5(k1+k2)*h
    Ce n'est pas la méthode de Runge-Kutta.

    La méthode de Runge-Kutta est expliquée d'une manière très simple dans Wikipedia. Mais prend garde au fait que l'équation de Van der Pol est très raide (angl.: stiff), ce qui fait qu'à moins de prendre un pas très petit, ton intégration va partir dans les décors.

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    sur wikipedia il n'explique que Runge Kutta pour le premier ordre et 4nd ordre, et je cherche a l'appliquer au 2nd ordre
    http://fr.wikipedia.org/wiki/Methodes_de_Runge-Kutta

    Et ma methode a vraimment rien a voir ? parce ce que c'est vraimment ce que j'ai trouve de plus detaille sur RK.

    Et sur wiki pour le 4eme ordre on a bien yi+1=yi+ (h/6) *(k1+2k2+2k3+k4),
    ce qui est proche de ce que j'ecris yi+1=yi+ (h/2) *(k1+k2)

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    je cherche a l'appliquer au 2nd ordre
    Vouloir absolument utiliser une méthode dont on sait à l'avance qu'elle donnera des résultats catastrophiques et qu'il existe des méthodes bien mieux adaptées, ça s'appelle du masochisme.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  5. #5
    Membre actif
    Inscrit en
    Mars 2008
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 209
    Points : 227
    Points
    227
    Par défaut
    runge kutta 2nd ordre c'est appliquer deux fois la premiere méthode ( een prenant la moyenne à chaque fois ) c'est le meme principe qu'avec rk 4 mais avec les pondérations (1,1) au lieu de (1,2,2,1)... et puis FR119492 a raison ...
    RK est appliquée pour les fonctions aux dérivées continues ( donc si tu as une branche infinie ou quelque chose qui y ressemble l'algorithme va se planter )

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 51
    Points : 19
    Points
    19
    Par défaut
    oui mais c'est purement scolaire, je l'applique, je vois que ca ne marche pas et j'essaye d'expliquer pourquoi. Je ne peux pas deviné intuitivement que ca ne marchera pas non ?
    Je vois "graphiquement" pourquoi cela risque de ne pas marcher et de partir dans le décors, mais je n'ai aucune preuve sans essayer.

    Sinon j’ai aussi essaye de résoudre le problème juste en utilisant les dérivées décentrées :
    dx/dt=(x(i+1)-x(i)) * dt

    Ce qui donne pour le problème,
    x(i+1)=y(i)*dt-x(i)
    Y(i+1)= (-X(i)+mhu*(1-(X(i)*X(i)))*Y(i))*DeltaT+Y(i)

    Mais ma méthode n’est pas toujours stable en fonction du dt que je choisis et de x0,y0 et mhu.

    Est-il possible de prévoir si la méthode va marcher, ou faut-il expérimenter des valeurs de DT et tracer le résultat pour voir si ce que l’on obtient est correct ?

    merci pour votre aide.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Citation Envoyé par nakor Voir le message
    Mais ma méthode n’est pas toujours stable en fonction du dt que je choisis et de x0,y0 et mhu.

    Est-il possible de prévoir si la méthode va marcher, ou faut-il expérimenter des valeurs de DT et tracer le résultat pour voir si ce que l’on obtient est correct ?
    Oui, les méthodes explicites (c.-à-d. où on se ramène à quelque chose de la forme x(n+1)=F(x(n)) sont conditionnellement stable; typiquement il y a toujours un pas de temps seuil au delà duquel on est certain de diverger.
    Dans de rare cas (typiquement des exemples simples pour lesquels on connaît la solution analytique de l'équation) on peut déterminer cette valeur seuil.
    Dans la pratique, il est plus que sain de suivre la procédure dont tu parles: expérimenter avec plusieurs valeurs de pas de temps et vérifier que l'on converge bien vers quelque chose de cohérent.

    Bonne continuation.

Discussions similaires

  1. Runge Kutta d'ordre 4
    Par Physicien dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 08/12/2006, 16h50
  2. probleme de divergence avec runge kutta d'ordre 2 pour un pendule simple
    Par fab13 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 25/11/2006, 20h19
  3. Runge-Kutta à une variable?
    Par PadawanDuDelphi dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/11/2006, 09h20
  4. probleme avec runge kutta dimension 4
    Par fab13 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 14/11/2006, 21h47

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