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

Macros et VBA Excel Discussion :

Méthode de Runge-Kutta


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Méthode de Runge-Kutta
    Bonjour à tous,

    Je vous écris car j'aimerais pouvoir résoudre deux équations différentielles couplées ne dépendant que du temps. Pour cela je pensais utiliser une méthode itérative d'accroissement assez simple (je n'ai plus beaucoup de temps dans mon stage pour faire quelque chose d'élaboré). C'est pourquoi je pensais utiliser la méthode de Runge-Kutta à un ordre peu élevé.
    Cependant étant novice du code sous VBA et n'ayant que ce logiciel à ma disposition, je voudrais savoir si utiliser une telle méthode est réalisable ou pas?
    Si oui existe-il des codes déja faits? (vu le temps qu'il me reste, cela m'aiderait grandement)

    En vous remerciant par avance cher développeurs.


    Jérémy

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Cherche "Cash Karp Runge Kutta VBA" les codes sont disponibles et marchent parfaitement.. ou alors télécharge l'article :
    A Variable Order Runge-Kutta Method for Initial Value Problems with Rapidly Varying Right-Hand Sides
    Et amuse toi à traduire l'algo en VBA! Niveau CP!

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Tout d'abord merci pour ton aide.

    Mais au risque de passer pour quelqu'un de bête, je pense avoir trouvé le lien Cash Karp Runge Kutta VBA, néanmoins il n'y a pas la totalité du code dessus. Ca m'a l'air d'être une version payante car je n'ai que la moitié de chaque page à chaque fois.
    http://my.safaribooksonline.com/book...c0OTY0NC8yNzk=

    Pour ce qui est de l'autre, je vais m'y atteler à le traduire bien que pour toi ce qui semble être simple ne l'est pas forcément pour moi.

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    J'ai trouvé en quinze secondes au moins cinq articles avec des codes.

    C'est une succession de IF... je pense que tu peux le faire..

  5. #5
    Invité
    Invité(e)
    Par défaut
    Un exemple simple de code implémentant cette méthode (à l'ordre 4):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Option Explicit
     
    Public Sub Test()
      Call RungeKutta(0, 2, 10, 0.5)
    End Sub
     
    'Méthode de Runge-Kutta
    Private Sub RungeKutta(dblStart As Double, dblEnd As Double, dblSize As Double, dblStartValue As Double)
     
      Dim dblPas As Double, dblTime As Double, dblValue As Double
      Dim k1 As Double, k2 As Double, k3 As Double, k4 As Double
     
      dblPas = (dblEnd - dblStart) / dblSize
      dblValue = dblStartValue
     
      For dblTime = dblStart To dblEnd Step dblPas
        k1 = dblPas * f(dblTime, dblValue)
        k2 = dblPas * f(dblTime + dblPas / 2, dblValue + k1 / 2)
        k3 = dblPas * f(dblTime + dblPas / 2, dblValue + k2 / 2)
        k4 = dblPas * f(dblTime + dblPas, dblValue + k3)
        Debug.Print ("TIME: " & dblTime & " " & "VALUE: " & Format(dblValue, "0.00"))
        dblValue = dblValue + (k1 + 2 * k2 + 2 * k3 + k4) / 6
      Next dblTime
     
    End Sub
     
    'Fonction différentielle à étudier
    Private Function f(t, y)
      f = y - t * t + 1
    End Function

Discussions similaires

  1. Utilisation d'une méthode de Runge-Kutta
    Par bleuword dans le forum Scilab
    Réponses: 0
    Dernier message: 19/03/2014, 17h36
  2. Méthode de Runge-Kutta
    Par millie dans le forum Contribuez
    Réponses: 1
    Dernier message: 07/06/2013, 12h41
  3. Méthode de Runge-Kutta
    Par millie dans le forum Contribuez
    Réponses: 6
    Dernier message: 25/09/2007, 23h19

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