Équations différentielles 2
c.i.
c.l.
Géraldine Faure
[Link]@[Link]
Université Clermont Auvergne
2020
L3PhysNum (EUPI) Équations différentielles 2 2020 1 / 12
Méthode d’Adams - Basforth
Adams-Bashforth
A partir du système
dy
= f (y , t)
dt (1)
y (t0 ) = y0
Utilisons le développement en série de Taylor au point t = ti :
h2 00 h3 000
yi+1 = yi + hyi0 + y + y + ... (2)
2 i 3! i
avec y 0 (ti ) = yi0 = f (yi , ti ) et y 00 (ti ) = yi00 = f 0 (yi0 , ti ) etc
h2 0 h3 00
yi+1 = yi + hfi + f + f + ... (3)
2 i 3! i
Ordre 1
yi+1 = yi + hfi (4)
On retrouve la méthode d’Euler
L3PhysNum (EUPI) Équations différentielles 2 2020 2 / 12
Méthode d’Adams - Basforth
Ordre 2
h2 0
yi+1 = yi + hfi + f + O(h)3 (5)
2 i
f −f
Utilisons les différences à gauche pour la dérivée :fi0 = i hi−1 + O(h)
On obtient alors
h2 fi − fi−1
yi+1 = yi + hfi + + O(h) + O(h)3
2 h
h
yi+1 = yi + (3fi − fi−1 ) + O(h)3 (6)
2
Formule d’ordre 2 puisque l’on néglige les termes en h3
Pour calculer yi+1 il faut connaître fi et fi−1 .
Pour lancer le processus il faut connaître y0 et y1 .
y0 Ok c.i.
y1 on le calcule par une méthode vue précédemment du même ordre, ici on prendra RK2
L3PhysNum (EUPI) Équations différentielles 2 2020 3 / 12
Méthode d’Adams - Basforth
Ordre 3
h2 0 h3 00
yi+1 = yi + hfi + fi + f + O(h)4
2 3! i
On utilise les différences à gauche pour fi0 et fi00
fi − fi−1 h
fi0 = + fi00 + O(h)2
h 2
fi − 2fi−1 + fi−2
fi00 = + O(h)
h2
En reportant dans la relation précédente on trouve finalement :
h
yi+1 = yi + (23fi − 16fi−1 + 5fi−2 ) + O(h)4 (7)
12
Le calcul de y1 et y2 par RK4 (ordre 4), puis le processus de l’équation (7) peut être réalisé.
L3PhysNum (EUPI) Équations différentielles 2 2020 4 / 12
Méthode d’Adams - Basforth
Ordre n > 3
On calcule de la même façon et on obtient :
n
X
yi+1 = yi + h βnk fi−k + O(h)n+2 (8)
k=0
La formule la plus couramment utilisée est celle d’ordre 4
h
yi+1 = yi + (55fi − 59fi−1 + 37fi−2 − 9fi−3 ) + O(h)5 (9)
24
L3PhysNum (EUPI) Équations différentielles 2 2020 5 / 12
Méthode d’Adams - Basforth
k
0 1 2 3 4 5
n
0 1
3 −1
1 2 2
23 −16 5
2 12 12 12
55 −59 37 −9
3 24 24 24 24
1901 −2774 2616 −1274 251
4 720 720 720 720 720
4277 −7923 9982 −7298 2877 −475
5 1440 1440 1440 1440 1440 1440
Table – Coefficients βnk de l’équation (8) jusqu’à l’ordre 6 pour la méthode Adams-Bashforth
L3PhysNum (EUPI) Équations différentielles 2 2020 6 / 12
Méthode Adams fermée - Admas-Moulton
Adams-Mouton
Toujours en partant du développement en série de Taylor, mais cette fois-ci
h2 0 h3 00
yi = yi+1 − hfi+1 + f − f + ... (10)
2 i+1 3! i+1
h2 0 h3 00
yi+1 = yi + hfi+1 − fi+1 + f + ... (11)
2 3! i+1
Ordre 1
yi+1 = yi + hfi+1 + O(h)2 (12)
Pour calculer yi+1 il faut calculer fi+1 = f (yi+1 , ti+1 ) qui dépend de yi+1
Pour cela une méthode itérative est utilisée pour calculer yi+1 avec une précision ε donnée
(0) (1) (0)
• yi+1 dans (12), on obtient alors un nouvel yi+1 = yi + hf (yi+1 , ti+1 )
(2)
• puis calcul de yi+1 , ...
(r +1) (r )
• jusqu’à convergence à la précision souhaitée :|yi+1 − yi+1 | ≤ ε
L3PhysNum (EUPI) Équations différentielles 2 2020 7 / 12
Méthode Adams fermée - Admas-Moulton
Ordre n
On remplace les dérivées par les différences à gauche
n
X
yi+1 = yi + h γnk fi+1−k + O(h)n+2 (13)
k=0
A l’ordre 4 on a :
h
yi+1 = yi + (9fi+1 + 19fi − 5fi−1 + fi−2 ) + O(h)5 (14)
24
L3PhysNum (EUPI) Équations différentielles 2 2020 8 / 12
Méthode d’Adams - Moulton
k
0 1 2 3 4 5
n
0 1
1 1
1 2 2
5 8 −1
2 12 12 12
9 19 −5 1
3 24 24 24 24
251 646 −264 106 −19
4 720 720 720 720 720
475 1427 −798 482 −173 27
5 1440 1440 1440 1440 1440 1440
Table – Coefficients γnk de l’équation (13) jusqu’à l’ordre 6 pour la méthode Adams-Moulton
L3PhysNum (EUPI) Équations différentielles 2 2020 9 / 12
Méthode Prédicteur-Correcteur
Méthode
Combinaison d’un schéma explicite (prédicteur) avec un schéma implicite (correcteur)⇒ schéma
explicite
• avantage méthode fermée, très bonne précision,
• élimine les inconvénients des temps de calcul
Méthode prédicteur-correcteur Adams à l’ordre 4
• Prédicteur : Adams ouverte ordre 4
(0) h
yi+1 = yi + (55fi − 59fi−1 + 37fi−2 − 9fi−3 ) (15)
24
• Modificateur : (prédicteur amélioré par correction erreur de troncature)
(0) (0) 251 (0)
yi+1 = yi+1 − (yi − yi ) (16)
d
270
(0)
Avec yi la valeur du prédicteur au pas précédent
• correcteur : formule Adams fermée ordre 4
(r +1) h (r )
yi+1 = yi + 24 9fi+1 + 19fi − 5fi−1 + fi−2
(17)
f (0) = f yd (0)
,t i+1
i+1 i+1
L3PhysNum (EUPI) Équations différentielles 2 2020 10 / 12
Méthode Prédicteur-Correcteur
(0)
Calcul de y1 , y2 , y3 , y3
Méthode Adams = méthode à plusieurs pas donc :
y1 , y2 , y3 : utilisation de RK4
(0)
y3 : n’existe pas, donc pas de modificateur pour calculer y4
(0)
Qu’à partir de y5 que l’on estime y5 puis faire les itérations de l’équation (17)
Erreur
L’erreur par pas dans le prédicteur-correcteur d’Adams au 4e ordre est
19
(0)
Ei+1 ≈ yi+1 − yi+1 (18)
270
L3PhysNum (EUPI) Équations différentielles 2 2020 11 / 12
Exercice
Comparaison de la méthode prédicteur-correcteur à l’ordre 4 et RK4 avec une itération pour le
correcteur.
dy
+ y2 = 0
dt (19)
y (0) = 1
Prendre h = 0, 1 et comparer les résultats à t = 1.
La solution exacte est
1
y (t) =
1+t
conseil
• Écrire le schéma prédicteur-correcteur de Adams à l’ordre 4, avec une itération
• Écrire l’algorithme correspondant
• Écrire la fonction en python
• Utiliser la fonction RK4 précédemment écrire,
• puis comparer les résultats
L3PhysNum (EUPI) Équations différentielles 2 2020 12 / 12