Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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 :
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 = 𝑥𝑛 + ℎ (I.2)
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.
Solution :
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
% 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,'--*');
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
% 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,'--*');
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 = 𝑥𝑛 + ℎ (I.4)
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 :
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,'--+')
h2 f f
yn+1=yn+ h fn + f
y t
2
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
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,'--*');
𝑦𝑛+1 = 𝑦𝑛 +( ½)(k1+k2 )
𝑦𝑛+1 = 𝑦𝑛 + k2