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

Mathématiques Discussion :

Runge Kutta : principe?


Sujet :

Mathématiques

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut Runge Kutta : principe?
    Bonjour tous,

    J'aimerai savoir comment programmer une methode de Runge Kutta mais j'ai du mal à commprendre la methode en elle meme, pourriez vous m'expliquer s'il vous plait?

    Par exemple, dans le cas de la methode des trapezes, on approche l'integrale du 2nd membre par un trapeze entre deux pas de temps, Dans le cas d'Euler c'est par un rectangle.

    mais dans le cas de la methode Runge Kutta comment cela se fait il???

    merci d'avance pour votre aide

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Salut Did,

    d'après ce que j'ai pu trouver, les méthodes de Runge Kutta sont la généralisation de la méthode d'Euler. Un peu comme le théorème Pythagore est un cas particulier du théorème d'Al kashi.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par Merel Voir le message
    Salut Did,

    d'après ce que j'ai pu trouver, les méthodes de Runge Kutta sont la généralisation de la méthode d'Euler. Un peu comme le théorème Pythagore est un cas particulier du théorème d'Al kashi.
    Salut Merel,

    merci beaucoup de ta reponse, c'est deja un element important.

    Mais j'aimerai savoir dans quel sens peut on dire que c'est une generalisation comment passe t on de l'un a l'autre...

    en fait dans les cours parlant de Runge Kutta je ne trouve jamais d'explication sur leur origine mais juste les formules toutes pretes.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Tu peux regarder ce document. Il explique à partir de la méthode de Runge Kutta d'ordre 2 comment on retrouve la méthode d'Euler.

    Runge Kuuta - Euler

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par Merel Voir le message
    Tu peux regarder ce document. Il explique à partir de la méthode de Runge Kutta d'ordre 2 comment on retrouve la méthode d'Euler.

    Runge Kuuta - Euler
    MERCI BEAUCOUP MEREL,

    ce document à l'air tres interessant, je vais lire ceci

  6. #6
    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 : 84
    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!
    Il y a plusieurs variantes de la méthode de Runge-Kutta qui sontdécrites dans Wikipedia : RK1, RK2, RK4. Voici le code pour RK4:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
          Subroutine D006(SM,N,T,DT,Y)
    C
    C***********************************************************************
    C
    C     Bibliothèque JMBPACK
    C
    C     Série D: Equations différentielles
    C
    C***********************************************************************
    C
    C     Méthode de Runge-Kutta d'ordre 4 (1/6 + 2/6 + 2/6 + 1/6)
    C
    C***********************************************************************
    C
    C     Version 3.0: Jean-Marc Blanc, juillet 2004
    C
    C **********************************************************************
    C
    C     SM     Nom d'un sous-programme fourni par l'utilisateur pour le
    C            calcul des dérivées à partir des valeurs de la variable
    C            indépendante et des variables d'état. Ce sous-programme
    C            doit être de la forme
    C              Subroutine SM(N,T,Y,DY)
    C                DY(1)= ...
    C                DY(2)= ...
    C                 .
    C                 .
    C                DY(N)= ...
    C                Return
    C              End
    C            et avoir été déclaré dans une instruction External.
    C
    C     N      Ordre du système différentiel.
    C
    C     T      Variable indépendante.
    C
    C     DT     Pas d'intégration.
    C
    C     Y      Vecteur des variables d'état.
    C
    C **********************************************************************
    C
          Implicit None
    C
          Integer N
          Real*8 DT,T,Y(N)
    C
          Integer I
          Real*8 DY(N),K1(N),K2(N),K3(N),K4(N),Z(N)
    C
          Call SM(N,T,Y,DY)
          Do I=1,N
            K1(I)=DT*DY(I)
            Z(I)=Y(I)+K1(I)/2.d0
          End Do
    C
          Call SM(N,T+DT/2.d0,Z,DY)
          Do I=1,N
            K2(I)=DT*DY(I)
            Z(I)=Y(I)+K2(I)/2.d0
          End Do
    C
          Call SM(N,T+DT/2.d0,Z,DY)
          Do I=1,N
            K3(I)=DT*DY(I)
            Z(I)=Y(I)+K3(I)
          End Do
    C
          Call SM(N,T+DT,Z,DY)
          Do I=1,N
            K4(I)=DT*DY(I)
            Y(I)=Y(I)+(K1(I)+2.d0*K2(I)+2.d0*K3(I)+K4(I))/6.d0
          End Do
    C
          T=T+DT
          Return
    C
          End
    Jean-Marc Blanc

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    Salut!
    Il y a plusieurs variantes de la méthode de Runge-Kutta qui sontdécrites dans Wikipedia : RK1, RK2, RK4. Voici le code pour RK4:
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
          Subroutine D006(SM,N,T,DT,Y)
    C
    C***********************************************************************
    C
    C     Bibliothèque JMBPACK
    C
    C     Série D: Equations différentielles
    C
    C***********************************************************************
    C
    C     Méthode de Runge-Kutta d'ordre 4 (1/6 + 2/6 + 2/6 + 1/6)
    C
    C***********************************************************************
    C
    C     Version 3.0: Jean-Marc Blanc, juillet 2004
    C
    C **********************************************************************
    C
    C     SM     Nom d'un sous-programme fourni par l'utilisateur pour le
    C            calcul des dérivées à partir des valeurs de la variable
    C            indépendante et des variables d'état. Ce sous-programme
    C            doit être de la forme
    C              Subroutine SM(N,T,Y,DY)
    C                DY(1)= ...
    C                DY(2)= ...
    C                 .
    C                 .
    C                DY(N)= ...
    C                Return
    C              End
    C            et avoir été déclaré dans une instruction External.
    C
    C     N      Ordre du système différentiel.
    C
    C     T      Variable indépendante.
    C
    C     DT     Pas d'intégration.
    C
    C     Y      Vecteur des variables d'état.
    C
    C **********************************************************************
    C
          Implicit None
    C
          Integer N
          Real*8 DT,T,Y(N)
    C
          Integer I
          Real*8 DY(N),K1(N),K2(N),K3(N),K4(N),Z(N)
    C
          Call SM(N,T,Y,DY)
          Do I=1,N
            K1(I)=DT*DY(I)
            Z(I)=Y(I)+K1(I)/2.d0
          End Do
    C
          Call SM(N,T+DT/2.d0,Z,DY)
          Do I=1,N
            K2(I)=DT*DY(I)
            Z(I)=Y(I)+K2(I)/2.d0
          End Do
    C
          Call SM(N,T+DT/2.d0,Z,DY)
          Do I=1,N
            K3(I)=DT*DY(I)
            Z(I)=Y(I)+K3(I)
          End Do
    C
          Call SM(N,T+DT,Z,DY)
          Do I=1,N
            K4(I)=DT*DY(I)
            Y(I)=Y(I)+(K1(I)+2.d0*K2(I)+2.d0*K3(I)+K4(I))/6.d0
          End Do
    C
          T=T+DT
          Return
    C
          End
    Jean-Marc Blanc
    merci pour le code c'est gentil

+ Répondre à la discussion
Cette discussion est résolue.

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, 17h50
  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, 21h19
  3. Runge-Kutta à une variable?
    Par PadawanDuDelphi dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/11/2006, 10h20
  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, 22h47

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