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 :

Runge-Kutta à une variable?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut Runge-Kutta à une variable?
    Bonjour,

    J'ai un problème avec Runge-Kutta...Je pensais avoir compris mais là ça coince (sur un truc simple, j'en suis sûr). J'ai une équation du type:

    dx/dt = f(x) uniquement.
    Or Runge-Kutta me demande de calculer des valeurs K1=deltat * f(x,y);

    J'ai bien lu le numeric recipices et les autres liens données sur le forum, mais je coince toujours. Quelqu'un aurait-il un exemple simple pour moi?

    Merci bocoup.

    @+.

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dx/dt = f(x) uniquement.
    Ca me semble bizarre : x est ici une fonction (tu la dérives par rapport à t). Donc, il faudrait au moins que f(x) dépende de t. A mon avis, tu as une équations du type (comme Runge-Kutta) du type : dx/dt(t) = f(x,t)

    Par exemple :

    dx/dt(t) = cos(x(t)) avec f : (x,y) -> cos(x(t)) où x est une fonction.

  3. #3
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    Voir par exemple
    http://www.ac-nancy-metz.fr/enseign/...doc/RK4_02.pdf
    bien entendu la connaissance de
    dx/dt(t) = f(x,t)
    est insuffisante.
    la connaissance de X(t=0) est absolument necessaire.
    la solution peut changer drastiquement avec cette initialisation.

    Ca me semble bizarre
    non ; il faut trouver X(t) tel que dX(t)/dt = f(X(t),t)
    si dans un cas particulier on peut exprimer dX/dt = f(x(t)) on a le temps via x(t)
    comme par exemple avec
    dx/dt = x => d(log(x)) = dt => log(x) = t +K => x = K1.e^t

    Note
    J'avais déjà débatu sur ce sujet et sur ce forum: voir
    http://www.developpez.net/forums/sho...d.php?t=104554

  4. #4
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Tout d'abord merci pour vos réponse.

    J'avais déjà regarder le topic, mais les équations différentielles sont loin derrière moi et j'ai un peu de mal.
    Ca me semble bizarre : x est ici une fonction (tu la dérives par rapport à t). Donc, il faudrait au moins que f(x) dépende de t. A mon avis, tu as une équations du type (comme Runge-Kutta) du type : dx/dt(t) = f(x,t)

    Par exemple :

    dx/dt(t) = cos(x(t)) avec f : (x,y) -> cos(x(t)) où x est une fonction.
    Ce dois être ça. En fait le plus simple c'est peut-être que je mette l'équation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dO/dt=A*O(t)+B*O(t)^2+...+DO(t)^4
    et on a O0 pour t=0.
    Je vois pas avec ça comment trouver, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    K2=deltat*f(O0+deltat/2,t0+K1/2)
    Encore merci...

    @+.

  5. #5
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Ici, tu as :

    dO/dt=A*O(t)+B*O(t)^2+...+DO(t)^4
    Donc : f(x,t) = a * x(t) + b*x(t)²+...d*x(t)^4


    Donc :

    K2=deltat*f(O0+deltat/2,t0+K1/2) = deltat * (a * (0 + deltat/2) + b * (....))

    Car f(x,t) t n'intervient pas seul dans son expression (c'est toujours x(t)).

  6. #6
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Ok,

    Alors si j'ai bien compris mon calcul de K1, K2 et K3 ne seront pas récursifs? (c.a.d que K3 ne dépendra pas de K2 qui ne dépendra pas de K1...)

  7. #7
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par PadawanDuDelphi
    Ok,

    Alors si j'ai bien compris mon calcul de K1, K2 et K3 ne seront pas récursifs? (c.a.d que K3 ne dépendra pas de K2 qui ne dépendra pas de K1...)

    Lors d'une étape, effectivement, les Ki ne dépendront pas l'un de l'autre vu que t n'apparait pas explicitement seul dans l'équation diff que tu as.

Discussions similaires

  1. Runge-Kutta avec un paramétre variable
    Par aymenvictoire dans le forum MATLAB
    Réponses: 0
    Dernier message: 23/10/2014, 05h51
  2. Utilisation d'une méthode de Runge-Kutta
    Par bleuword dans le forum Scilab
    Réponses: 0
    Dernier message: 19/03/2014, 17h36
  3. Runge Kutta 4 à pas variables
    Par aaaallleex dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 08/05/2012, 10h03
  4. runge kutta pas variable
    Par jayjay.f dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 12/01/2007, 22h27
  5. Réponses: 4
    Dernier message: 05/06/2002, 14h35

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