Vous êtes sur la page 1sur 3

TP 6 : Programmation de la méthode de Runge-Kutta

(Équations différentielles)

L'objectif du TP est de programmer l’algorithme de la méthode


de Runge-Kutta d’ordre 4 pour approcher la solution d’une équation
différentielle d’ordre 1.

Travail demandé :

Considérons l’équation différentielle suivante:

( ) = ( ), ∈ [ , ]
( )= ,

1- Ecrire un programme Matlab permettant l'implémentation de la


méthode de Runge-Kutta d’ordre 4 pour approcher sa solution avec
h=0.1.

2- Sur le même programme (programme de la question 1),


Comparer le résultat obtenu avec la solution exacte :

( )= .
Programme de la méthode de Runge-Kutta d’ordre 4

clear all
clc
%m\'ethode de Runge-Kutta d'ordre 4

% déclaration de la fonction f
f=inline('2*t*y','t','y')
%déclaration des bornes de l'intervalle [a, b]
a = 1 ;
b = 2 ;
%déclaration de la valeur de h
h=0.1;
% les points de discrétisation
n=(b-a)/h;
%initialisation de t
t(1)=a;
% déclaration de la valeur initiale de y0
y(1)=1;
%calcul de la solution
for i = 1:n
%calcul des constantes k_i
k1(i)=h*f(t(i),y(i));
k2(i)=h*f(t(i)+h/2,y(i)+k1(i)/2);
k3(i)=h*f(t(i)+h/2,y(i)+k2(i)/2);
k4(i)=h*f(t(i)+h,y(i)+k3(i));
%calcul des y_{n+1}
y(i+1)=y(i)+(1/6)*(k1(i)+2*k2(i)+2*k3(i)+k4(i));
t(i+1)=t(i)+h;
end
%affichage de la solution
disp('la solution est :')
y
% afficahge du temps (les points qui correspondent à la solution y)
t
%déclaration de la solution exacte (objectif: comparaison avec la solution
trouvée)
t = a:h:b;
ye=exp(t.^2-1);
%graphe de la solution de RK4 et la solutionexacte
fs=15;
hold on
plot(t,ye,'r','linewidth',2)
plot(t,y,'o','linewidth',2)
box on
xlabel ('t','fontsize',fs)
ylabel('y(t)','fontsize',fs)
legend('solution exacte','solution RK4')

Après exécution du programme on obtient les résultats


suivants :
la solution est :

y=

1.0000 1.2337 1.5527 1.9937 2.6116 3.4902 4.7586 6.6188 9.3923 13.5969 20.0813

t=

1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2.0000

La comparaison de la solution exacte et la solution approchée obtenue avec la méthode de Runge-


Kutta d’ordre 4, est illustrée par la figure suivante :

Vous aimerez peut-être aussi