Vous êtes sur la page 1sur 8

M.

Hasnaoui

Chapitre 6

Equations différentielles du premier ordre

I- Introduction
On considère la forme générale d’une équation différentielle du premier ordre
avec condition initiale. On cherchera une fonction y(t) solution de l’équation :

𝑦 ′ (𝑡) = 𝑓(𝑡, 𝑦(𝑡))


{ (1)
𝑦(𝑡0 ) = 𝑦0 (condition initiale)

Ici 𝑡 est la variable indépendante et 𝑦(𝑡) est la variable dépendante et 𝑓 est une
fonction quelconque de deux variables supposée suffisamment différentiable.
Le but de l’étude est d’obtenir numériquement une approximation de 𝑦(𝑡) pour
tout 𝑡 ≥ 𝑡0 .

Définition
Une méthode numérique est dite à un pas si elle est de la forme :

𝑦𝑛+1 = 𝑦𝑛 + ℎΦ(t 𝑛 , 𝑦𝑛 ) (2)

avec Φ désignant une fonction quelconque.

Ainsi, la méthode est dite à un pas si, pour obtenir la solution à 𝑡 = 𝑡𝑛+1, on doit
utiliser la solution numérique au temps 𝑡𝑛 seulement. Les méthodes à pas
multiples sont des méthodes qui exigent également la connaissance de la
solution numérique aux temps 𝑡𝑛−1 , 𝑡𝑛−2, …

II- Méthode de Taylor

Le développement de Taylor permet une généralisation immédiate de la


méthode d’Euler. On pousse les développements pour avoir une erreur de
troncature avec un ordre plus élevé. Ici, on se limitera à la méthode de Taylor
d’ordre 2.

ℎ2
𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 + ℎ) = 𝑦(𝑡𝑛 ) + ℎ𝑦 ′ (𝑡𝑛 ) + 𝑦′′(𝑡𝑛 ) + 𝑂(ℎ3 )
2

En se basant sur l’équation différentielle de départ, Eq. (1), on obtient :

1
M. Hasnaoui

ℎ2
𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 + ℎ) = 𝑦(𝑡𝑛 ) + ℎ𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) + 𝑓′(𝑡𝑛 , 𝑦(𝑡𝑛 )) + 𝑂(ℎ3 )
2

La règle de dérivation en chaîne permet d’écrire :

𝜕𝑓(𝑡,𝑦(𝑡)) 𝜕𝑓(𝑡,𝑦(𝑡))
𝑓 ′ (𝑡, 𝑦(𝑡)) = + 𝑓(𝑡, 𝑦(𝑡))
𝜕𝑡 𝜕𝑦

On obtient l’équation équivalente :

ℎ2 𝜕𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) 𝜕𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 ))


𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 ) + ℎ𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) + [ + 𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) ]
2 𝜕𝑡 𝜕𝑦
+ 𝑂(ℎ3 )
Cette dernière équation est à la base de la méthode de Taylor.

Suivant la notation adoptée dans une méthode de résolution à un pas (Eq. (2)),
on déduit :

ℎ 𝜕𝑓(𝑡, 𝑦(𝑡)) 𝜕𝑓(𝑡, 𝑦(𝑡))


Φ(𝑡, 𝑦(𝑡)) = 𝑓(𝑡, 𝑦(𝑡) + [ + 𝑓(𝑡, 𝑦(𝑡)) ]
2 𝜕𝑡 𝜕𝑦

L’erreur de troncature locale à 𝑡 = 𝑡𝑛 est définie par :

𝑦(𝑡𝑛+1 )−𝑦(𝑡𝑛 )
𝜏𝑛+1 (ℎ) = − Φ(𝑡𝑛 , 𝑦(𝑡𝑛 )) (3)

Cette définition de l’erreur mesure la précision avec laquelle la solution


analytique vérifie l’équation aux différences (i.e. Eq. (2)).

Remarque
Il est à noter que c’est la solution exacte 𝑦(𝑡𝑛 ) et non 𝑦𝑛 qui est utilisée dans la
définition de l’erreur de troncature locale (voir Eq. (3)). Cela s’explique par le
fait qu’on cherche à mesurer l’erreur introduite par l’équation aux différences
à un pas, en supposant que la méthode était exacte jusque-là.

Appliquons la définition de l’erreur de troncature locale à la méthode d’Euler


(voir cours avant) pour apprécier la différence.

Pour la méthode d’Euler : Φ(𝑡, 𝑦) = 𝑓(𝑡, 𝑦).

Effectuons un développement de Taylor autour de 𝑡 = 𝑡𝑛 :

2
M. Hasnaoui

ℎ2
𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 + ℎ) = 𝑦(𝑡𝑛 ) + ℎ𝑦 ′ (𝑡𝑛 ) + 𝑦′′(𝑡𝑛 ) + 𝑂(ℎ3 )
2
ℎ2
𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 ) + ℎ𝑓(𝑡𝑛 , 𝑦𝑛 ) + 𝑦′′(𝑡𝑛 ) + 𝑂(ℎ3 )
2

En utilisant la définition de l’erreur de troncature locale :

𝑦(𝑡𝑛+1 ) − 𝑦(𝑡𝑛 ) ℎ
𝜏𝑛+1 (ℎ) = − 𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) = 𝑦 ′′(𝑡𝑛) + 𝑂(ℎ2 ) = 𝑂(ℎ)
ℎ 2

On déduit que l’erreur est d’ordre 1 pour la méthode d’Euler ; elle diminue d’un
facteur 2 à chaque fois que le pas ℎ est diminué d’un facteur de 2.

Vérifier que 𝜏𝑛+1 (ℎ) = 𝑂(ℎ2 ) pour la méthode de Taylor (une erreur de
troncature locale d’ordre 2).

L’algorithme de la méthode de Taylor d’ordre 2


1. Données :
 Un pas de temps ℎ
 Une condition initiale (𝑡0 , 𝑦0 )
 Un nombre maximal d’itérations 𝑁

2. Pour 0 ≤ 𝑛 ≤ 𝑁 :
ℎ2 𝜕𝑓(𝑡𝑛 ,𝑦𝑛 ) 𝜕𝑓(𝑡𝑛 ,𝑦𝑛 )
𝑦𝑛+1 = 𝑦𝑛 + ℎ𝑓(𝑡𝑛 , 𝑦𝑛 ) + [ + 𝑓(𝑡𝑛 , 𝑦𝑛 ) ]
2 𝜕𝑡 𝜕𝑦

𝑡𝑛+1 = 𝑡𝑛 + ℎ
Ecriture : 𝑡𝑛+1, 𝑦𝑛+1

3. Arrêt du programme

Remarque
Dans cet algorithme, la solution analytique 𝑦(𝑡𝑛 ) est remplacée par son
approximation 𝑦𝑛  les erreurs vont se propager d’une itération à l’autre.

III- Méthodes de Runge-Kutta


Ces méthodes permettent d’obtenir des ordres de précision élevés tout en
évitant les inconvénients d’autres méthodes (comme la méthode de Taylor par
exemple) qui nécessitent l’évaluation des dérivées partielles de la fonction
𝑓(𝑡, 𝑦).

3
M. Hasnaoui

1- Méthodes de Runge-Kutta d’ordre 2


On procède à des développements en séries de Taylor :

ℎ2
𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 + ℎ) = 𝑦(𝑡𝑛 ) + ℎ𝑦 ′ (𝑡𝑛 ) + 𝑦′′(𝑡𝑛 ) + 𝑂(ℎ3 )
2

En utilisant l’équation (1), on obtient :


h2
y(tn 1 )  y(tn  h)  y(tn )  hf ( t n , y(tn ))  f '(t n , y(tn ))  O(h 3 )
2
ℎ2
𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 + ℎ) = 𝑦(𝑡𝑛 ) + ℎ𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) + 𝑓′(𝑡𝑛 , 𝑦(𝑡𝑛 )) + 𝑂(ℎ3 )
2

𝜕𝑓(𝑡,𝑦(𝑡)) 𝜕𝑓(𝑡,𝑦(𝑡))
avec 𝑓 ′ (𝑡, 𝑦(𝑡)) = + 𝑓(𝑡, 𝑦(𝑡)) (règle de dérivation en chaîne)
𝜕𝑡 𝜕𝑦

Finalement :

ℎ2 𝜕𝑓(𝑡𝑛 ,𝑦(𝑡𝑛 )) 𝜕𝑓(𝑡𝑛 ,𝑦(𝑡𝑛 ))


𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 ) + ℎ𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) + [ + 𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 ))] + 𝑂(ℎ3 ) (4)
2 𝜕𝑡 𝜕𝑦

Le but consiste à remplacer l’équation (4) par une expression équivalente


possédant le même ordre de précision 𝑂(h3 ) mais ne contenant pas des
dérivations partielles.

On propose la forme suivante :

𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 ) + 𝑎1 ℎ𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) + 𝑎2 ℎ𝑓(𝑡𝑛 + 𝑎3 ℎ, 𝑦(𝑡𝑛 ) + 𝑎4 ℎ) (5)

Où les paramètres 𝑎1 , 𝑎2 , 𝑎3 et 𝑎4 sont des inconnus à déterminer de telle sorte


que les expressions (4) et (5) aient toutes deux une erreur en 𝑂(h3 ).
L’expression (5) est avantageuse par le fait qu’elle ne contient aucune
dérivation partielle.

Des développements en séries de Taylor à deux variables autour de (𝑡𝑛 , 𝑦(𝑡𝑛 ))


conduisent aux égalités :

𝜕𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) 𝜕𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 ))


𝑓(𝑡𝑛 + 𝑎3 ℎ, 𝑦(𝑡𝑛 ) + 𝑎4 ℎ) = 𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) + 𝑎3 ℎ + 𝑎4 ℎ + 𝑂(ℎ2 )
𝜕𝑡 𝜕𝑦

La relation (4) devient :


𝜕𝑓(𝑡𝑛 ,𝑦(𝑡𝑛 )) 2 𝜕𝑓(𝑡𝑛 ,𝑦(𝑡𝑛 ))
𝑦(𝑡𝑛+1 ) = 𝑦(𝑡𝑛 ) + (𝑎1 + 𝑎2 )ℎ𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) + 𝑎2 𝑎3 ℎ2 + 𝑎 2 𝑎 4 ℎ +
𝜕𝑡 𝜕𝑦
𝑂(ℎ3 ) (6)

4
M. Hasnaoui

Les expressions (4) et (6) sont du même ordre, leur identification permet de
déterminer les coefficients 𝑎𝑖 . Ainsi, on obtient :

ℎ = (𝑎1 + 𝑎2 )ℎ  coefficients respectifs de 𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 ))


ℎ2 𝜕𝑓(𝑡𝑛 ,𝑦(𝑡𝑛 ))
= 𝑎2 𝑎3 ℎ2  coefficients respectifs de
2 𝜕𝑡
ℎ2 𝜕𝑓(𝑡𝑛 ,𝑦(𝑡𝑛 ))
𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )) = 𝑎2 𝑎4 ℎ  coefficients respectifs de
2
2 𝜕𝑦

On obtient ainsi un système non linéaire de 3 équations à 4 inconnus :

𝑎1 + 𝑎2 = 1
{ 𝑎2 𝑎3 = 1 (7)
𝑓(𝑡𝑛 ,𝑦(𝑡𝑛 ))
𝑎2 𝑎4 = 2

Puisque le nombre d’inconnus est supérieur au nombre d’équations, la solution


n’est pas unique. Cette multiplicité des solutions conduit à plusieurs variantes
de Runge-Kutta. La variante la plus fréquemment utilisée est la méthode
d’Euler modifiée ; elle consiste à prendre 𝑎1 = 𝑎2 = 1/2, 𝑎3 = 1 et 𝑎4 =
𝑓(𝑡𝑛 , 𝑦(𝑡𝑛 )).

Le système non linéaire (7) est satisfait par ces coefficients.


Il suffit maintenant de remplacer ces valeurs dans l’équation (5). On néglige le
terme en 𝑂(ℎ3 ) et on remplace la valeur exacte 𝑦(𝑡𝑛 ) par son approximation 𝑦𝑛 .
On obtient l’algorithme de la méthode d’Euler modifié :

1. Données : un pas de temps ℎ, une condition initiale (𝑡0 , 𝑦0 )et un nombre maximum
d’itérations, 𝑁.

2. Pour 0 ≤ n ≤ N
𝑦 ∗ = 𝑦𝑛 + ℎ𝑓(𝑡𝑛 , 𝑦𝑛 )

𝑦𝑛+1 = 𝑦𝑛 + 2 [𝑓(𝑡𝑛 , 𝑦𝑛 ) + 𝑓(𝑡𝑛+1 , 𝑦 ∗ )] (8)
𝑡𝑛+1 = 𝑡𝑛 + ℎ

Ecriture : 𝑡𝑛+1, 𝑦𝑛+1

3- Arrêt du programme

Remarque
- L’évaluation de 𝑦𝑛+1 a été scindée en deux étapes pour faciliter les calculs
avec 𝑦 ∗ apparaissant comme une variable temporaire et correspond à une

5
M. Hasnaoui

itération de la méthode d’Euler [𝑦𝑛+1 = 𝑦𝑛 + ℎ𝑓(𝑡𝑛 , 𝑦𝑛 )]. En fait, 𝑦 ∗ est une


prédiction de la solution en 𝑡𝑛+1 , corrigée et améliorée à la deuxième étape de
l’algorithme : c’est une méthode de prédiction correction.

Une autre variante de la méthode de Runge-Kutta d’ordre deux est la méthode


𝑓(𝑡𝑛 ,𝑦(𝑡𝑛 ))
du point milieu qui correspond à 𝑎1 = 0, 𝑎2 = 1, 𝑎3 = 1/2 et 𝑎4 = .
2

l’algorithme de la méthode du point milieu :

1. Données : un pas de temps ℎ, une condition initiale (𝑡0 , 𝑦0 ) et un nombre maximum


d’itérations, 𝑁.

2. Pour 0 ≤ n ≤ N
𝑘𝑛 = ℎ𝑓(𝑡𝑛 , 𝑦𝑛 )
ℎ 𝑘
𝑦𝑛+1 = 𝑦𝑛 + ℎ [𝑓 (𝑡𝑛 + 2 , 𝑦𝑛 + 2𝑛)] (9)
𝑡𝑛+1 = 𝑡𝑛 + ℎ

Ecriture : 𝑡𝑛+1, 𝑦𝑛+1

3- Arrêt du programme

Remarque
L’intitulé point milieu est dérivé du fait que la fonction 𝑓(𝑡, 𝑦) est évaluée au
point milieu de l’intervalle [𝑡𝑛 , 𝑡𝑛+1 ].

2- Méthode de Runge-Kutta d’ordre 4


En reprenant le développement de Taylor de la fonction f jusqu’à l’ordre 5 et en
suivant un raisonnement similaire à celui qui a conduit aux méthodes de Runge-
Kutta d’ordre 2, on aboutit à un système de 8 équations non linéaires à 10
inconnus. Le résultat final est la méthode de Runge-Kutta d’ordre 4.

Alogorithme de la méthode de Runge-Kutta d’ordre 4

1. Données : un pas de temps ℎ, une condition initiale (𝑡0 , 𝑦0 )et un nombre maximum
d’itérations, 𝑁.

2. Pour 0 ≤ n ≤ N

𝑘1 = ℎ𝑓(𝑡𝑛 , 𝑦𝑛 )
ℎ 𝑘
𝑘2 = ℎ𝑓 (𝑡𝑛 + 2 , 𝑦𝑛 + 21 )

6
M. Hasnaoui

ℎ 𝑘2
𝑘3 = ℎ𝑓 (𝑡𝑛 + , 𝑦𝑛 + )
2 2
𝑘4 = ℎ𝑓(𝑡𝑛 + ℎ, 𝑦𝑛 + 𝑘3 )
1
𝑦𝑛+1 = 𝑦𝑛 + (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 )
6
𝑡𝑛+1 = 𝑡𝑛 + ℎ

Ecriture : 𝑡𝑛+1, 𝑦𝑛+1

3- Arrêt du programme

Remarque
- La méthode de Runge-Kutta d’ordre 4 nécessite à peu près 4 fois plus de
temps de calcul que la méthode d’Euler qui est d’ordre 1 et 2 fois plus de temps
de calcul que la méthode d’Euler modifiée qui est d’ordre 2.
- La précision ne peut pas être rattrapée par une simple division du pas.

Exercice d’application

On considère l’équation différentielle suivante :

𝑦 ′ (𝑡) = 𝑓(𝑡, 𝑦(𝑡)) = −𝑦(𝑡) + 𝑡 + 1


{
𝑦(0) = 1

Elaborer des codes numériques appropriées utilisant les méthodes décrites


pour résoudre cette équation différentielle pour 𝑡 ∈ [0,1] en utilisant un pas ℎ =
0.2 et 0.1. Comparer les résultats obtenus avec la solution analytique.
Conclure.

IV- Méthode de tir (complément)


Pour utiliser la méthode de Runge-Kutta, il faut que le problème soit à valeurs
initiales. Lorsqu’il s’agit d’un problème à valeurs aux frontières, il faut le
transformer en un problème correspondant à valeurs initiales. On illustrera la
méthode de tir à travers un exemple. Elle pourra être utilisée pour résoudre
des cas plus complexes.

Exemple
Considérons l’équation différentielle suivante :
3
𝑦 ′′ (𝑡) = 2 𝑦 2 (10)

7
M. Hasnaoui

Avec, comme conditions aux frontières :

𝑦(0) = 4
{ (11)
𝑦(1) = 1

Le problème est à valeurs aux frontières (la valeur 𝑦(1) = 1 n’est pas une valeur
initiale), il lui correspond le problème à valeurs initiales suivant :

𝑦′ = 𝑓
{ (12)
𝑦(0) = 4
3
𝑓′ = 2 𝑦 2
{ (13)
𝑓(0) = 𝛼

Dans l’équation (13), la valeur de 𝛼 n’est pas connue ; elle doit être telle que la
condition y(1) = 1 soit vérifiée moyennant une certaine précision fixée à
l’avance. La méthode de tir permet de résoudre (12) et (13) de manière
itérative.

La méthode du tir est basée sur l’estimation de la pente en t = 0 et comprend


les étapes suivantes :

a) On estime deux valeurs de la pente en t = 0 : 𝑦1′ (0) = 𝑓1 (0) = 𝛼1 et 𝑦2′ (0) =


𝑓2 (0) = 𝛼2 .

b) On intègre (12) et (13) par une méthode numérique (Runge-Kutta ou


prédicteur-correcteur) de t = 0 à t = 1.

c) On s’assure que les valeurs 𝑦1 (1) = 𝛽1 et 𝑦2 (1) = 𝛽2 correspondant


respectivement à 𝛼1 et 𝛼2 encadrent y(1) = 1 avant de démarrer le processus
itératif.

d) On améliore itérativement la valeur de la pente par une interpolation


linéaire :
𝛽 −𝛽
𝑖
𝛼𝑖+1 = 𝛼𝑖 − (𝛼𝑖 − 𝛼𝑖−1 ) 𝛽 −𝛽 i = 3, 4, ….
𝑖 𝑖−1

Où 𝛽𝑖 est la valeur de y(1) correspondant à 𝛼𝑖 .

Vous aimerez peut-être aussi