Méthode de Rung-Kutta d'ordre 4
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Méthode de Rung-Kutta d'ordre 4



  1. #1
    inviteb8a8585a

    Méthode de Rung-Kutta d'ordre 4


    ------

    Bonjour;

    Je travaille actuellement sur le modèle de Winfree qui modélise le comportement des oscillateurs biologiques. Ce modèle est une famille d'équations différentielles où l'une dépend de l'autre.

    J'arrive pas à savoir comment appliquer la méthode de Rung-Kutta pour ce modèle et comment la programmer sous scilab (Je suis vraiment débutant en programmation).

    Une approche du modèle de Winfree pour une famille de deux équations différentielles, s'écrit sous la forme :

    dy1/dt=w1+( cos(y2(t)) . sin(y1(t)))

    et

    dy2/dt=w2+( cos(y1(t)) . sin(y2(t)))

    où w1 et w2 sont des nombres réels donnés.

    et avec des condition initiales aléatoire dans [0,2 pi] en t=0.

    Dans la méthode de Rung-Kutta on doit calculer k1, k2, k3 et k4 ;



    k1=f(i,yi(t),t)
    k2=f(i,yi(t)+((h./2).*k1),t+h./2);
    k3=f(i,yi(t)+((h./2).*k2),t+h./2);
    k4=f(i,yi(t)+(h.*k3),t+h);

    avec f(i,yi(t),t)=wi+( cos(yj(t)) . sin(yi(t))).

    Mon problème c'est comment calculer par exemple :

    f(1,y1(t)+((h./2).*k1),t+h./2)

    c'est-à-dire, est-ce-que on aura :

    f(1,y1(t)+((h./2).*k1),t+h./2)=w1+( cos(y2(t+h/2)) . sin(y1(t)+((h./2).*k1))

    comment intervient le t+h/2 dans l'équation et comment savoir la valeur de

    y2(t+h/2) ??

    Je vous remercie d'avance.

    -----

  2. #2
    inviteb64b286c

    Re : Méthode de Rung-Kutta d'ordre 4

    Salut

    La méthode de RK4 est une méthode de discrétisation. Elle est utilisée car justement tu ne peux pas connaître la solution de manière analytique.

    Voici en gros le procédé :

    initialisation : Il faut donner une valeur initiale pour les deux fonctions : y1(n0) et y2(n0).

    Ensuite il faut calculer les 4 coefficients comme tu l'a dis.
    k1=f(i,yi(n0)) = soit w1+( cos(y2(n0)) . sin(y1(n0))) soit w2+( cos(y1(n0)) . sin(y2(n0)))
    Pour k2 c'est plus compliqué puisque tu dois calculer une valeur à un temps n+1/2 :
    Comme tu l'as écris on a k2 = w1+( cos(y2(n0+h/2)) . sin(y1(n0)+((h./2).*k1))
    Pour calculer y2(n0+h/2), il y a plusieurs possibilités, dont la méthode d'Euler :
    y2(n0+h/2) = y2(n0) + (h/2) * dy2/dt (n0) = y2(n0) + (h/2) * w2+( cos(y1(n0)) . sin(y2(n0)))
    Une fois que y2(n0+h/2) est connu, tu peux calculer k2, puis k3.
    Avant de calculer k4, tu dois calculer cette fois y2(n0+h), grâce à la même méthode.
    Une fois que k4 est connu, tu peux calculer la solution au temps suivant c'est à dire au temps n1 :
    y2(n1) = y2(n0) + (h / 6) (k1 + 2k2 + 2k3 + k4)

    Et ainsi de suite.

    C'est assez lourd à programmer, mais pas compliqué. Fais attention aux erreurs de syntaxe.

    Bon courage

  3. #3
    inviteb8a8585a

    Re : Méthode de Rung-Kutta d'ordre 4

    Je te remercie infiniment Tyriel , c'est bon tu m'as éclairci ce qu'il faut faire.

Discussions similaires

  1. Runge Kutta
    Par invite091bc544 dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 11/10/2011, 15h14
  2. Algo de Runge Kutta
    Par invite9c7554e3 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 05/04/2010, 19h52
  3. Méthode Runge-Kutta heeeelp !
    Par invite9ce240d4 dans le forum Physique
    Réponses: 1
    Dernier message: 14/04/2009, 17h43
  4. Runge kutta pour la RFD
    Par invited135a79d dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 28/10/2007, 21h58
  5. Runge Kutta (et Fortran)
    Par invite642d375a dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 26/03/2007, 20h24