0% ont trouvé ce document utile (0 vote)
878 vues3 pages

6-TP Methodes RK2&RK4

Ce document présente les méthodes de Runge-Kutta d'ordre 2 et 4 pour résoudre numériquement des équations différentielles ordinaires. Il décrit les algorithmes de ces méthodes et donne des exemples codés sous Matlab avec comparaison aux solutions analytiques. Le document contient également des exercices demandant d'appliquer ces méthodes à des équations différentielles spécifiques.

Transféré par

Bachir Meziani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
878 vues3 pages

6-TP Methodes RK2&RK4

Ce document présente les méthodes de Runge-Kutta d'ordre 2 et 4 pour résoudre numériquement des équations différentielles ordinaires. Il décrit les algorithmes de ces méthodes et donne des exemples codés sous Matlab avec comparaison aux solutions analytiques. Le document contient également des exercices demandant d'appliquer ces méthodes à des équations différentielles spécifiques.

Transféré par

Bachir Meziani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université A.

Mira de Béjaia Faculté des Sciences Exactes


Département de Physique
Master 1 Dynamique des Fluides et Energétique
Modélisation Mathématique en Physique

Travail Pratique
Méthodes de Runge Kutta d’ordre 2 et 4
I-Introduction
On va chercher à approcher numériquement les solutions d’équations différentielles de la forme.
 y '  f t , y  t  a, b
 (1)
 y t 0   y 0
Où f est une fonction continue par rapport à la deuxième variable. Le théorème de Cauchy Lipchitz
assure l’existence et l’unicité de la solution. Il arrive que l’on sache résoudre ce problème de manière
analytique mais dans un grand nombre de cas on ne connait pas de forme explicite de la solution. On
peut essayer d’approcher la solution par un schéma numérique.

II-Schéma de Range Kutta d’ordre 2


Il existe plusieurs variantes de la méthode de Runge-Kutta. La méthode de Runge Kutta d’ordre 2 est
donné par :
Soit l’équation différentielle suivante :
 y '  f t , y  t  a, b

 yt 0   y0

L’algorithme de RK2 s’écrit :


 k1  h * f t i , yi t i 

k  h * f  x  h , y t   k1 


2

i
2
i i
2
y i1 ti 1   y i ti   k 2 , i  1,2,....
Exemple :
On considère l’équation différentielle suivante :
 dy t 
  t  y t  t  
 dt (1)

 y t  0   1
2.1-Calculer la solution exacte.
2.2-Le code RK2 Matlab pour la résolution de cette équation est donné par :

function [t,y] = RK2(f,tmin,tmax,Nint,y0) % Méthode de Runge Kutta d’ordre 2


% Nint - nombre de sous intervalles
% tmin - temps t0
% tmax - temps t0 + T
% f est une fonction avec comme arguments t et y : f(t,y(t))
% y0 contient les valeurs des conditions limites
h = (tmax-tmin)/Nint ; % valeur du pas (G)
t = linspace(tmin,tmax,Nint+1) ; % vecteur de t discrétisé t=[tmin,tmax]
y(1) = y0 ; % y contient les solutions de y(tn)n = 1, ...,Nint + 1
for n = 2 :Nint+1
k1 = h*feval(f,t(n-1),y(n-1)) ;
k2 = h*feval(f,t(n-1)+h/2,y(n-1)+k1/2) ;
y(n) = y(n-1) + k2 ;
end % for n
end

Page 1
Université A. Mira de Béjaia Faculté des Sciences Exactes
Département de Physique
Master 1 Dynamique des Fluides et Energétique
Modélisation Mathématique en Physique

Programme 1
%Programme pour avoir la solution analytique et la solution donnée par RK2
f=@(x,y) x-y;
% Calcul de la solution exacte solution
g=@(x) 2*exp(-x)+x-1;
xe=[0:0.1:2];
ye=g(xe);
% Call function RK2
[x1,y1]=RK2(f,0,2,50,1);
% Plot
plot(xe,ye,'k-',x1,y1,'r:')
xlabel('x')
ylabel('y')
legend('exacte','RK2')
axis([0 2 0 2])

Ce code permet de tracer la solution exacte et la solution approchée sur un intervalle du temps donné.
2.3-Exécuter le code pour t  0, 2 avec un nombre de pas N int  50
2.4-Donner la solution analytique de l’équation différentielle :
dyt  yt  t
  e avec yt  1  1 et modifier le code précédent pour la résoudre
dt t
numériquement.
2.5-Tracer la solution analytique et la solution numérique obtenue avec la méthode RK2. On donne
t  1, 2 avec un nombre de pas N int  10

III-Schéma de Range Kutta d’ordre 4

Soit l’équation différentielle suivante :


 y '  f t , y  t  a, b

 yt 0   y0
L’algorithme de la méthode de Runge Kutta d’ordre 4 (RK4) s’écrit :
:
 k1  h * f xi , yi 
  h k 
 k 2  h * f  xi  , y i  1 
  2 2

k 3  h * f  xi  h , yi  k 2 
  2 2 
 k 4  h * f  xi  h, yi  k 3 

y i1  y i  k1  2k 2  2k3  k 4 , i  1,2,....


1
6

Page 2
Université A. Mira de Béjaia Faculté des Sciences Exactes
Département de Physique
Master 1 Dynamique des Fluides et Energétique
Modélisation Mathématique en Physique

1- Le code de la fonction RK4 est donné par


function [t,y] = RK4(f,tmin,tmax,Nint,y0) % Méthode de Runge Kutta d’ordre 4
% Nint - nombre de sous intervalles
% tmin - temps t0
% tmax - temps t0 + T
% f est une fonction avec comme arguments t et y : f(t,y(t))
% y0 contient les valeurs des conditions limites
h = (tmax-tmin)/Nint ; % valeur du pas (G)
t = linspace(tmin,tmax,Nint+1) ; % vecteur de t discrétisé t=[tmin,tmax]
y(1) = y0 ; % y contient les solutions de y(tn)n = 1, ...,Nint + 1
for n = 2 :Nint+1
k1 = h*feval(f,t(n-1),y(n-1)) ;
k2 = h*feval(f,t(n-1)+h/2,y(n-1)+k1/2) ;
k3 = h*feval(f,t(n-1)+h/2,y(n-1)+k2/2) ;
k4 = h*feval(f,t(n-1)+h,y(n-1)+k3) ;
y(n) = y(n-1) + (k1+2*k2+2*k3+k4)/6 ;
end
end

3.1-Transformer le programme 1 pour avoir la solution de l’équation différentielle (1) avec la


méthode RK4. Tracer sur le même graphe la solution exacte, la solution obtenue avec RK2 et la
solution obtenue avec RK4
3.2-Refaire le même travail pour l’équation différentielle donnée en (2.4).

Page 3

Vous aimerez peut-être aussi