Vous êtes sur la page 1sur 9

Chapitre 1 2021/2022 Résolution Numériques des EDO

Chapitre 1 : Résolutions Numériques des Equations Différentielles


Ordinaires avec conditions Initiales.

1.1. Introduction
On appelle équations différentielles ordinaires, une équation ou un système d'équations
différentielles dont les fonctions et leurs dérivées successives ne dépendent que d'une variable, le
temps par exemple.On oppose le terme ordinaire à équations différentielles aux dérivées partielles.
On appelle ordre de l'équation différentielle le plus fort degré de dérivation apparaissant dans
l'équation. Elles sont de la forme :
Où f est une fonction de x et n est l'ordre de l'équation.

Dans certains cas, il est possible de trouver des solutions analytiques aux équations
différentielles. Cependant dans la majorité des cas, la solution analytique est impossible à obtenir
et, même lorsqu'on peut la calculer, on évite parfois de le faire à cause des temps de calculs
gigantesques.
Nous commençons par des méthodes relativement simples ayant une interprétation
géométrique telle quela méthode d'Euler. Elles nous conduiront progressivement à des méthodes plus
complexes telles que lesméthodes de Runge-Kutta d'ordre 4, qui permettent d'obtenir des résultats
d'une grande précision.
Nous prenons comme point de départ la formulation générale d'une équation différentielle
d'ordre 1 aveccondition initiale. La tâche consiste à déterminer une fonction y(t) solution de :

La variable indépendante t représente très souvent (mais pas toujours) le temps. La


variable dépendante est notée y et dépend bien sûr de t. La fonction f est une fonction
quelconque de deux variables que noussupposons suffisamment différentiables.

La condition y(t0) = y0 est la Condition Initiale (CI).

M1 : EG & IET Département de Mécanique U. Blida 1 Dr. Ali Benyahia


Chapitre 1 2021/2022 Résolution Numériques des EDO

Il s’agit d’obtenir y(t) pout t >> t0, si on cherche une solution analytique, ou une
approximation de y(t), si on utilise une méthode numérique.

1.2 Méthode d’Euler explicite


La méthode explicite d'Euler est illustrée schématiquement sur la Figure I.2. Elle
suppose que sur une courte distance h près de ( x n , y n ), la fonction y ( x ) a une pente
constante égale à la pente en ( x n , y n ). Sur la base de cette hypothèse, le point suivant
de la solution numérique ( x n +1 , y n +1 ) est obtenu par:

𝑥𝑛+1 = 𝑥𝑛 + ℎ (I.2)

𝑦𝑛+1 = 𝑦𝑛 + ℎ f(𝑥𝑛, 𝑦𝑛) (I.3)

Fig.I.2: Méthode explicite d'Euler.

Exemple I :
Soit l'équation différentielle suivante :
𝑦’=𝑦 𝑦(0)=1 𝑒𝑡 0<𝑥<1 𝑎𝑣𝑒𝑐 ℎ=0.2
 Résoudre cette équation Analytiquement.
 Utilisez la méthode d'Euler pour résoudre
 Comparez entre les deux résultats.

M1 : EG & IET Département de Mécanique U. Blida 1 Dr. Ali Benyahia


Chapitre 1 2021/2022 Résolution Numériques des EDO

Solution :

 La solution exacte est donnée par : =et.


t1=0 t2=0.2 t3=0.4 t4=0.6 t5=0.8 t6=1
1 1.2214 1.4918 1.8221 2.2255 2.7183

 La formule d'Euler donnée par : 𝑦𝑛+1=𝑦𝑛+ℎ (𝑥𝑛,𝑛),


𝑥𝑛+1= 𝑥𝑛 + ℎ
𝑦𝑛+1=𝑦𝑛+ℎ [𝑦𝑛]
En commençant par x0 = 2 et y0 = 1 et en prenant h = 0.1, On obtient :
h = 0.2
𝑛=0: 𝑦1=𝑦0+ℎ [ 𝑦0] = 1.2
𝑛=1: 𝑦2=𝑦1+ℎ [ 𝑦1] = 1.44
𝑛=2: 𝑦3=𝑦2+ℎ [ 𝑦2] =1.7280
𝑛=3: 𝑦4=𝑦3+ℎ [𝑦3]= 2.0773

n 0 1 2 3 4 5
tn t1=0 t2=0.2 t3=0.4 t4=0.6 t5=0.8 t6=1
yexacte 1 1.2214 1.4918 1.8221 2.2255 2.7183
yeuler 1 1.2 1.44 1.7280 2.0736 2.4883
Erreur 0 0.0214 0.0518 0.0941 0.1519 0.2383

Le Programme en Matlab (TP)


clear all
close all
clc
h=0.2;
t1=0:h:1;
% la solution exacte
y1=exp(t1);
plot(t1,y1,'--o');
hold on
x(1)=0;
z(1)=1;

% Methode d'euler
for n=1:5

x(n+1)= x(n)+h;
z(n+1)=z(n)+ h*(z(n));
end
plot(x,z,'--*');

M1 : EG & IET Département de Mécanique U. Blida 1 Dr. Ali Benyahia


Chapitre 1 2021/2022 Résolution Numériques des EDO

Exemple 2 :
Soit l'équation différentielle suivante :
𝑦’=−𝑥𝑦2 𝑦(2)=1 𝑒𝑡 2<𝑥<2.5 𝑎𝑣𝑒𝑐 ℎ=0.1
 Résoudre cette équation Analytiquement.
 Utilisez la méthode d'Euler pour résoudre
Comparez entre les deux résultats.

Solution :
 La solution exacte est donnée par : =2/(𝑥2−2).
t1=2 t2=2.1 t3=2.2 t4=2.3 t5=2.4 t6=2.5
1 0.8 0.6656 0.5681 0.4939

 La formule d'Euler donnée par : 𝑦𝑛+1=𝑦𝑛+ℎ (𝑥𝑛,𝑛),


𝑥𝑛+1= 𝑥𝑛 + ℎ
𝑦𝑛+1=𝑦𝑛+ℎ [−𝑥𝑛𝑦𝑛2]

En commençant par x0 = 2 et y0 = 1 et en prenant h = 0.1, On obtient :


𝑛=0: 𝑦1=𝑦0−ℎ [𝑥0 𝑦02] = 1−0.1 [2(1)2]= 0.8
𝑛=1: 𝑦2=𝑦1−ℎ [𝑥1 𝑦12] = 0.8−0.1 [2.1(0.8)2]= 0.6656
𝑛=2: 𝑦3=𝑦2−ℎ [𝑥2 𝑦22] = 0.6656−0.1 [2.2(0.6656)2]= 0.5681
𝑛=3: 𝑦4=𝑦3−ℎ [𝑥3 𝑦32]= 0.5681−0.1 [2.3(0.5681)2]= ≈0.5681
Le programme en Matlab
clear all
close all
clc
h=0.1;
t1=2:h:2.5;
% la solution exacte
y1=2./(t1.^2-2);
plot(t1,y1,'--o');
hold on
x(1)=2;
z(1)=1;

% Methode d'euler
for n=1:5

x(n+1)= x(n)+h;
z(n+1)=z(n)+ h*(-x(n)*z(n)^2);
end
plot(x,z,'--*');

M1 : EG & IET Département de Mécanique U. Blida 1 Dr. Ali Benyahia


Chapitre 1 2021/2022 Résolution Numériques des EDO

n 0 1 2 3 4 5
tn t1=2 t2=2.1 t3=2.2 t4=2.3 t5=2.4 t6=2.5
yexacte 1 0.8 0.6656 0.5681 0.4939 0.4939
yeuler 1 0.8299 0.7042 0.6079 0.5319 0.4706
Erreur 0 0.0299 0.0386 0.0398 0.0380 0.0352

1.3 Méthode d’Euler implicite


La méthode implicite d'Euler est donnée par :

y(x)= y(x+h)-h y ’(x+h) y(x+h) = y(x)+h y ’(x+h)

𝑥𝑛+1 = 𝑥𝑛 + ℎ (I.4)

𝑦𝑛+1 = 𝑦𝑛 + ℎ f(𝑥𝑛+1, 𝑦𝑛+1) (I.5)

Exemple 3 :
Soit l'équation différentielle suivante :
𝑦’=𝑦 𝑦(0)=1 𝑒𝑡 0<𝑥<1 𝑎𝑣𝑒𝑐 ℎ=0.2
 Utilisez la méthode d'Euler implicite pour résoudre cette éqiation.

Solution
La méthode d’Euler explicite est donnée par :

 𝑦𝑛+1 = 𝑦𝑛 + ℎ f(𝑥𝑛+1, 𝑦𝑛+1) et 𝑥𝑛+1 = 𝑥𝑛 + ℎ


Donc : 𝑦𝑛+1 = 𝑦𝑛 + ℎ 𝑦 *𝑛+1
Pour calculer 𝑦𝑛+1 il e s t n é c e s s a i r e d e c a l c u l e r 𝑦*𝑛+1 (sera calculer par la
méthode d’Euler implicite
𝑦*𝑛+1=𝑦𝑛+ℎ [𝑦𝑛]
Donc la solution est : 𝑦𝑛+1 = 𝑦𝑛 + ℎ [𝑦𝑛+ℎ [𝑦𝑛]]
n=0 : 𝑦1 = 𝑦0 + ℎ [𝑦0+ℎ [𝑦0]] = 1.24
n=1 : 𝑦2 = 𝑦1 + ℎ [𝑦1+ℎ [𝑦1]] = 1.5376
n=2 : 𝑦3 = 𝑦2 + ℎ [𝑦2+ℎ [𝑦2]] = 1.9066
n=3 : 𝑦4 = 𝑦3 + ℎ [𝑦3+ℎ [𝑦3]] = 2.3642
n=4 : 𝑦5 = 𝑦4 + ℎ [𝑦4+ℎ [𝑦4]] = 2.9316

M1 : EG & IET Département de Mécanique U. Blida 1 Dr. Ali Benyahia


Chapitre 1 2021/2022 Résolution Numériques des EDO

n 0 1 2 3 4 5
tn t1=0 t2=0.2 t3=0.4 t4=0.6 t5=0.8 t6=1
yexacte 1 1.2214 1.4918 1.8221 2.2255 2.7183
yeuler_explicite 1 1.2 1.44 1.7280 2.0736 2.48
Yeuler_implicite 1 1.24 1.5376 1.9066 2.3642 2.9316

Le programme en Matlab
h=0.2;
t1=0:h:1;
% la solution exacte
y1=exp(t1);
plot(t1,y1,'--o');
hold on
x(1)=0;
z(1)=1;

% Methode d'euler_explicite
for n=1:5

x(n+1)= x(n)+h;
z(n+1)=z(n)+ h*(z(n));
end
plot(x,z,'--*');

% Methode d'euler_implicite
x1(1)=0;
z1(1)=1;
for n=1:5

x1(n+1)= x1(n)+h;
z1(n+1)=z1(n)+ h*(z1(n)+h*z1(n));
end
plot(x1,z1,'--+')

1.4 Méthode de Taylor


La méthode de Taylor est donnée par :

h2  f f 
yn+1=yn+ h fn +  f 
 y t 
2  

M1 : EG & IET Département de Mécanique U. Blida 1 Dr. Ali Benyahia


Chapitre 1 2021/2022 Résolution Numériques des EDO

Exemple 3 :
Soit l'équation différentielle suivante :
𝑦’=t𝑦 𝑦(0)=1 𝑒𝑡 0<𝑥<1 𝑎𝑣𝑒𝑐 ℎ=0.2
 Utilisez la méthode de Taylor pour résoudre cette équation.

Solution

h2  f f 
Méthode de Taylor : yn+1=yn+ h fn +  f  avec f=ty
 y t 
2 

On trouve : yn+1=yn+ h fn +
h2
2
y  t y 
n
2
n n

Après calcul on trouve :


n 0 1 2 3 4 5
tn t1=0 t2=0.2 t3=0.4 t4=0.6 t5=0.8 t6=1
YTaylor 1 1 0.9248 0.7878 0.6164 0.4430
yexacte 1 0.9608 0.8521 0.6977 0.5273 0.3679
yeuler_explicite 1 1 0.92 0.7788 0.5873 0.3994
Yeuler_implicite 1 0.92 0.7846 0.6264 0.4741 0.3451

clear all
close all
clc
h=0.2;
t1=0:h:1;
% la solution exacte
y1=exp(t1.^2/2);
plot(t1,y1,'r--o');
hold on
% Methode d'euler
x(1)=0;
z(1)=1;
for n=1:5
x(n+1)= x(n)+h;
z(n+1)=z(n)+ h*(x(n)*z(n));
end
plot(x,z,'b--+');

% Methode de Taylor
x2(1)=0;
z2(1)=1;
for n=1:5

x2(n+1)= x2(n)+h;
z2(n+1)=z2(n)+ h*(x2(n)*z2(n)) + (h^2/2)* ( z2(n) + x2(n)^2*z2(n));
end
plot(x2,z2,'--*');

M1 : EG & IET Département de Mécanique U. Blida 1 Dr. Ali Benyahia


Chapitre 1 2021/2022 Résolution Numériques des EDO

1.5 Méthode de Heun


La méthode de Heun est donnée par :

k1=ℎ f (𝑥𝑛+1, 𝑦𝑛+1) k2=ℎ f (𝑥𝑛+h, 𝑦𝑛+k1)

𝑦𝑛+1 = 𝑦𝑛 +( ½)(k1+k2 )

1.6 Méthode de Rang Kutta d’ordre 2


La méthode Runge-Kutta d'ordre deux est donnée par :

k1=ℎ f (𝑥𝑛+1, 𝑦𝑛+1) k2=ℎ f (𝑥𝑛+h/2, 𝑦𝑛+k1/2)

𝑦𝑛+1 = 𝑦𝑛 + k2

1.7 Méthode de Rang Kutta d’ordre 4


La méthode Runge-Kutta d'ordre deux est donnée par :

k1=ℎ f (𝑥𝑛+1, 𝑦𝑛+1) k2=ℎ f(𝑥𝑛+h/2, 𝑦𝑛+k1/2)

k3=ℎ f(𝑥𝑛+h/2, 𝑦𝑛+k2/2) k4=ℎ f(𝑥𝑛+h, 𝑦𝑛+k3)

𝑦𝑛+1 = 𝑦𝑛 +1/6(k1+2 k2 +2k3 +k4)

M1 : EG & IET Département de Mécanique U. Blida 1 Dr. Ali Benyahia


Chapitre 1 2021/2021 Résolution Numériques des EDO

M1 : EG & IET Département Mécanique U. Blida 1 Dr. Ali Benyahia

Vous aimerez peut-être aussi