Vous êtes sur la page 1sur 9

RUNGE KUTTA

Résolutions des équations


différentielles
PRÉSENTATION DE LA
MÉTHODE
La méthode de Runge Kutta une des méthodes de
résolution des équations différentielles la plus
utilisée , du fait de sa précision et la simplicité de
son algorithme . Cette méthode est une méthode
plus sophistiquée, développée a partir de celle de
Taylor . Elles ont été nommées ainsi en l'honneur
des mathématiciens Carl Runge et Martin Wilhelm
Kutta lesquels élaborèrent la méthode en 1901.

Ces méthodes reposent sur le principe de l'itération,


c'est-à-dire qu'une première estimation de la
solution est utilisée pour calculer une seconde
estimation, plus précise, et ainsi de suite.
Il existe plusieurs ordre pour cette
méthode(ordre 2 4 6) plus l’ordre est
croissant plus la précision est élevée .
Dans notre cas on présente la méthode
Runge Kutta ordre 4 de son prototype ode45.
ALGORITHME RUNGE KUTTA
ORDRE 4
L'idée est que la valeur suivante (yn+1) est approchée par la somme
de la valeur actuelle (yn) et du produit de la taille de l'intervalle
(h) par la pente estimée. La pente est obtenue par une moyenne
pondérée de pentes :

 k1 est la pente au début de l'intervalle ;


 k2 est la pente au milieu de l'intervalle, en utilisant la pente k1
pour calculer la valeur de y au point tn + h/2 par le biais de la
méthode d'Euler ;
 k3 est de nouveau la pente au milieu de l'intervalle, mais
obtenue cette fois en utilisant la pente k2 pour calculer y;
 k4 est la pente à la fin de l'intervalle, avec la valeur de y
calculée en utilisant k3.

Dans la moyenne des quatre pentes, un poids plus grand est


donné aux pentes au point milieu.
CODE MATLAB
function[t,x]=RungeKutta(func,x,t) %la fonction de runge kutta

z=linspace(t(1),t(end),100); %vecteur de temps


n=size(z,2);
h=z(2)-z(1); %le pas

for i=1:n;

k1=h*func(x(i),t(i));
k2=h*func(x(i)+k1/2,t(i)+h/2);
k3=h*func(x(i)+k2/2,t(i)+h/2);
k4=h*func(x(i)+k3,t(i)+h);

x(i+1)=x(i)+1/6*(k1+2*k2+2*k3+k4); %la valeur de x à l'itération i


t(i+1)=t(i)+h; %la valeur de t à l'itération i
end
L’APPEL DE RK4 (PROGRAMME
PRINCIPALE)
clc;
clear;

[T,X]=RungeKutta(@func,x0,t)
Plot(T,X) %faire représenter les résultats
sur un plan.
EXEMPLE SUR LA MÉTHODE:
%le programme principal
clc;clear;
[t,x]=RungeKutta(@func,1,[0 4])
plot(t,x)
xlabel('temps')
ylabel('X')
title('variation de x en fonction de t')

%la fonction
function out=func(x,t)
out=t.^2-x.^2;
end
LE GRAPHE OBTENU SUR
MATLAB
variation de x en fonction de t
4

3.5

2.5
X

1.5

0.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
temps

Vous aimerez peut-être aussi