UPMC Master P&A/SDUEE
UE MU4PY209
Méthodes Numériques et Calcul Scientifique
Résolution numérique des
équations différentielles ordinaires (EDO)
2019–2020 Jacques.Lefrere@upmc.fr
EDO TABLE DES MATIÈRES TABLE DES MATIÈRES
Table des matières
1 Introduction 6
1.1 Problème différentiel . . . 6
1.2 Deux types de problèmes différentiels à résoudre . . . 7
1.3 Équations différentielles scalaires du 1erordre . . . 8
1.4 Unicité et problème bien posé : conditions suffisantes . . . 9
1.5 Méthodes de résolution numérique et notations . . . 10
2 Méthodes à un pas 12 2.1 Méthodes du premier ordre . . . 13
2.1.1 Méthode d’Euler progressive (explicite) . . . 13
2.1.2 Méthode d’Euler rétrograde (implicite) . . . 15
MNCS 1 2019-2020 EDO TABLE DES MATIÈRES TABLE DES MATIÈRES 2.2 Méthodes du deuxième ordre . . . 18
2.2.1 Méthode du point milieu . . . 18
2.2.2 Méthode d’Euler modifiée . . . 20
2.2.3 Méthode de Heun . . . 23
2.3 Méthodes de Runge Kutta . . . 24
2.3.1 Méthode de Runge Kutta d’ordre 3 . . . 24
2.3.2 Méthode de Runge Kutta d’ordre 4 . . . 26
2.4 Erreur absolue en fonction du pas et de l’ordre . . . 27
2.5 Exemple de l’équation logistique . . . 28
2.5.1 Exemple d’erreur totale maximale en simple précision . . . 31
2.5.2 Exemple d’erreur totale maximale en double précision . . . 32
2.5.3 Comparaison des erreurs maximales simple/double précision . 33 EDO TABLE DES MATIÈRES TABLE DES MATIÈRES 3 Méthodes à plusieurs pas 34 3.1 Méthodes d’Adams . . . 34
3.1.1 Adams Bashforth : explicite, pas de terme en
f (t
i+1, u
i+1)
. 35 3.1.2 Adams Moulton : implicite, terme enf(t
i+1, u
i+1)
. . . 363.1.3 Comparaison méthodes à un pas et Adams explicite . . . 38
3.1.4 Méthodes de prédicteur correcteur . . . 39
3.2 Méthodes adaptatives . . . 40
3.2.1 Exemple : méthode de Runge Kutta Fehlberg . . . 41
3.3 Méthodes d’extrapolation de Gragg . . . 42
3.3.1 Principe de l’extrapolation . . . 42
3.3.2 Comparaison méthodes à un pas et extrapolation de Gragg . . 45
4 Les EDO du premier ordre en pratique 46
EDO TABLE DES MATIÈRES TABLE DES MATIÈRES
4.1 Échelles de temps et problèmes raides . . . 46 4.2 Validation des résultats . . . 47 4.3 Structure des programmes de résolution d’EDO du 1erordre . . . 48
5 Systèmes d’EDO du 1erordre 49
5.1 Méthodes scalaires explicites . . . 49 5.2 Équations de Lotka-Volterra . . . 52
6 Équations différentielles d’ordre supérieur 58
6.1 Exemple . . . 59 6.2 Exemple d’EDO d’ordre 2 : le pendule . . . 60
7 Implémentation vectorielle 69
7.1 Introduction . . . 69
MNCS 4 2019-2020
EDO TABLE DES MATIÈRES TABLE DES MATIÈRES
7.2 En fortran (norme 2003) . . . 70 7.3 En C89 avec des tableaux dynamiques . . . 73 7.4 En C99 avec des tableaux automatiques . . . 76
Bibliographie 79
MNCS 5 2019-2020
EDO 1 Introduction
1 Introduction
1.1 Problème différentiel
— équation différentielle scalaire d’ordre
n d
ny
dt
n= f
t, y, dy
dt , . . . , d
n−1y dt
n−1où
f
est la fonction second membre donnée⇒
famille de solutionsy(t)
àn
paramètres— ensemble de
n
conditions imposées⇒
choix d’une solution dans la familleMNCS 6 2019-2020
EDO 1 Introduction 1.2 Deux types de problèmes différentiels à résoudre
1.2 Deux types de problèmes différentiels à résoudre
— Conditions initiales données pour une seule valeur
t
0det
, par exempley(t
0) = y
0, y
0(t
0) = y
00, . . . , y
(n−1)(t
0) = y
0(n−1)Problème deconditions initialesou deCauchy
— Conditions données pour des valeurs distinctes de la variable indépendante
t
, par exemple :y(t
0) = y
0, y(t
1) = y
1, . . . , y(t
n−1) = y
n−1Problème deconditions aux limites (non traité, sauf problème de tir).
MNCS 7 2019-2020
EDO 1 Introduction 1.3 Équations différentielles scalaires du 1erordre
1.3 Équations différentielles scalaires du 1
erordre
Étudier d’abord les équations différentielles scalairesdu premier ordre.
⇒
famille de solutionsy(t)
àunparamètre (y
0)dy
dt = f(t, y(t))
avecy(t
0) = y
0 condition initialeLes EDO d’ordre supérieur se ramènent à des systèmes différentiels couplés du premier ordre (EDO vectorielles du premier ordre).
MNCS 8 2019-2020
EDO 1 Introduction 1.4 Unicité et problème bien posé : conditions suffisantes
1.4 Unicité et problème bien posé : conditions suffisantes
Lacondition de Lipschitz
| f (t, y
2) − f(t, y
1) | 6 K | y
2− y
1|
assure l’unicitéde la solution.
∂f
∂y (t, y)
6 K
dans un domaine convexe⇒
condition de Lipschitz vérifiée.Les erreurs d’arrondi amènent àtoujours résoudre un problème perturbé.
Problème bien posési : le problème faiblement perturbé (second membre ou condition initiale) possède une solution proche de celle du problème original.
La condition de Lipschitz assure que le problème est bien posé.
MNCS 9 2019-2020
EDO 1 Introduction 1.5 Méthodes de résolution numérique et notations
1.5 Méthodes de résolution numérique et notations
Résolution numériqueapprochée sur l’intervalle
[t
0, t
0+ L]
de longueurL
Discrétisationpar découpage de l’intervalle de longueur
L
selon un pas constanth
Échantillonnage de la solution aux instants
t
i= t
0+ ih
pour1 6 i 6 n
. Solution numérique :u
i=
approximation dey(t
i)
À partir de la condition initiale
u
0= y(t
0)
imposée,faire une boucle sur les abscisses
t
ipour calculer l’approximationu
i+1àt
i+1→
approximer ainsi de proche en proche la solution sur l’intervalleL
.⇒
accumulation des erreurs dans la boucleÀ chaque pas de la boucle, pour calculer
u
i+1, on peut s’appuyer :— surla dernière valeurcalculée
u
i:méthodes à un pas— surplusieurs valeurs
u
i−k(k > 0)
antérieurement calculées :méthodes à plusieurs pas(initialisation nécessaire par méthode à un pas)
EDO 1 Introduction 1.5 Méthodes de résolution numérique et notations
famille de solutions exactes dépendant de
y
0passant par
(t
i, u
i)
la solution
t
i+1t
t
it
0exacte approx.
erreur cumulée
y
y
0u
iu
i+1y
i+1h
erreur locale
Méthode à pas constant Découpage de l’intervalle de longueur
L
selon un pas fixeh = L/n
.u
i=
approximat.de
y(t
i)
Un pas :
t
i→ t
i+1u
i→ u
i+1EDO 2 Méthodes à un pas
2 Méthodes à un pas
Constituent l’algorithme de base qui permet d’estimer la valeur de la solution à l’instant
t
i+1= t
i+ h
, connaissant seulementu
i, celle àt
i.La valeur à estimer peut être approchée par un développement limité de Taylor :
y(t
i+ h) = y(t
i) + h dy
dt (t
i) + h
22
d
2y
dt
2(t
i) + · · ·
(1)Ordre
n
de la méthode=
plus grande puissance deh
prise en compte dans l’approximation.— Somme des termes négligés
=
erreur de troncature locale∝ h
n+1déterministe, augmente si le pas
h
augmente et si l’ordre de la méthode diminue— Précision finie des opérations sur les réels
⇒
erreur d’arrondialéatoire augmente lorsque les calculs se compliquent, en particulier si le pash
diminue.Indépendamment du coût (en temps de calcul) des opérations, et des cas où la fonction est tabulée,ne pas croire que diminuer le pas améliore toujoursla qualité du résultat : uncompromisdoit être trouvé entre ces deux types d’erreurs.
MNCS 12 2019-2020
EDO 2 Méthodes à un pas 2.1 Méthodes du premier ordre
2.1 Méthodes du premier ordre
2.1.1 Méthode d’Euler progressive (explicite)
Méthode du premier ordre d’intérêt pédagogique, à éviter en pratique
u
i+1= u
i+ hf(t
i, u
i)
(2) Exemple : stabilitédy dt = − y
τ ⇒
solution analytiquey = y
0e
−t/τ⇒ y
n= y
0(e
−h/τ)
nu
i+1= u
i− h
τ u
i⇒
solution numériqueu
n= y
0(1 − h/τ )
nSi
τ > 0
, la solution exacte vérifiey( ∞ ) = 0
,Mais pour l’approximation,
u
n→ 0 ⇐⇒ | 1 − h/τ | < 1 ⇐⇒ 0 < h < 2τ
. Condition destabilité:h < 2τ
(pash
petit)Mais, si
h > τ
, alors(1 − h/τ ) < 0
: alternance de signe de la solutionu
n.MNCS 13 2019-2020
EDO 2 Méthodes à un pas 2.1 Méthodes du premier ordre
t
it
i+1u
iu
i+1y
t k
1k
1h
h
Méthode d’Euler Méthodeexplicitequi ne nécessite qu’une seule évaluation de la fonction second membre
f
par pas :k
1= f(t
i, u
i)
facilement instable
u
i+1− u
ih = f(t
i, u
i)
voir dérivée avant
MNCS 14 2019-2020
EDO 2 Méthodes à un pas 2.1 Méthodes du premier ordre
2.1.2 Méthode d’Euler rétrograde (implicite)
u
i+1= u
i+ hf(t
i+1, u
i+1)
(3) Méthodeimplicite: résolution itérative , plus difficile à mettre en œuvre, sauf si la forme def(t, u)
permet le calcul analytique deu
i+1à partir de l’équation (3).Avantage : meilleurestabilitéque la méthode progressive explicite.
Exemple : stabilité
dy dt = − y
τ ⇒
solution analytiquey = y
0e
−t/τ⇒ y
n= y
0(e
−h/τ)
nu
i+1= u
i− h
τ u
i+1⇒
solution numériqueu
i+1= u
i1 + h/τ u
n= y
0(1 + h/τ )
nSi
τ > 0, y( ∞ ) = 0
, et aussiu
n→ 0 ∀ τ > 0, ∀ h > 0
solutionstableMNCS 15 2019-2020
EDO 2 Méthodes à un pas 2.1 Méthodes du premier ordre
Mise en œuvre de la méthode d’Euler rétrograde : résolution de l’équation implicite par itération
u
i+1= u
i+ hf (t
i+1, u
i+1)
Itérer l’application
g
pour rechercher sonpoint fixev
02= g(v
2) = u
i+ hf(t
2, v
2)
Ce point fixe est la solution de l’équation implicite.
— Utilise plusieurs évaluations du second membre, sans calcul de ses dérivées.
— Très peu d’itérations nécessaires
Initialisation par le prédicteur avec Euler progressif
t
2= t
i+ h k
1= f(t
i, u
i) v
2= u
i+ hk
1MNCS 16 2019-2020
EDO 2 Méthodes à un pas 2.1 Méthodes du premier ordre
Boucle pour recherche du point fixe de
g(v
2) = v
02= u
i+ hf (t
2, v
2)
k
2= f(t
2, v
2) v
20= u
i+ hk
2δv
2= v
20− v
2arrêt si
| δv
2|
26 α
2| v
2|
2v
2= v
20La fonction
g
est contractante sig
0(v
2) = h
∂v∂f26 1
ce qui est vérifié si le pas est assez faible.
Rappel : la condition de Lipschitz est
∂v∂f2
6 K
Critère d’arrêt : choisir
α
faible, maisα > ε
.MNCS 17 2019-2020
EDO 2 Méthodes à un pas 2.2 Méthodes du deuxième ordre
2.2 Méthodes du deuxième ordre
Première idée : augmenter le nombre de termes du développement de Taylor : rarement utilisé, car nécessite l’évaluation des dérivées partielles de
f
.dy
dt = f(t, y(t)) ⇒ d
2y dt
2= ∂f
∂t + ∂f
∂y dy
dt = ∂f
∂t + f ∂f
∂y
(6)Préférer utiliserplusieurs évaluations du second membre
f
en des points adaptés.Centrer l’évaluation de la dérivée au point milieu
t
m= (t
i+ t
i+1)/2
.y(t
i+ h) = y(t
m) + h 2
dy
dt (t
m) + 1 2
h
24
d
2y
dt
2(t
m) + O(h
3)
(7a)y(t
i) = y(t
m) − h 2
dy
dt (t
m) + 1 2
h
24
d
2y
dt
2(t
m) + O(h
3)
(7b) Par différence, (approximation locale parabolique, voir aussi dérivée centrée à 2 termes)y(t
i+ h) − y(t
i) = h dy
dt (t
m) + O(h
3)
EDO 2 Méthodes à un pas 2.2 Méthodes du deuxième ordre
2.2.1 Méthode du point milieu
Nécessite l’évaluation du second membre
f
en 2 points :en
(t
i, u
i)
etau milieu(t
i+1/2= t
i+ h/2, u
i+1/2)
d’un pas (hors grille).u
i+1= u
i+ hf
t
i+ h
2 , u
i+ h
2 f (t
i, u
i)
k
1= f(t
i, u
i)
(8a)(
u
i+1/2calculé via Euler)k
2= f(t
i+ h
2 , u
i+ k
1h
2 )
(8b)u
i+1= u
i+ hk
2 (8c)EDO 2 Méthodes à un pas 2.2 Méthodes du deuxième ordre
t
it
i+1y
k
1k
2t
i+ h/2 k
2h
k
1h/2
t k
2u
i+1u
iMéthode du point milieu
Méthode explicite qui nécessite deux évaluations du second membre par pas dont une hors grille.
MNCS 20 2019-2020
EDO 2 Méthodes à un pas 2.2 Méthodes du deuxième ordre
2.2.2 Méthode d’Euler modifiée
En appliquant 7a et 7b à la dérivée et en faisant la somme, on peut remplacer la dérivée au milieu par la moyenne des dérivées aux extrémités de l’intervalle (voir méthode de quadrature dite des trapèzes) :
dy
dt (t
i) + dy
dt (t
i+1) = 2 dy
dt (t
m) + O(h
2)
D’où une approximation n’utilisant pas la valeur de
f
au point milieut
m:u
i+1= u
i+ h
2 [f(t
i, u
i) + f(t
i+1, u
i+1)]
De nouveau, méthode a prioriimplicite, plus stable, mais plus lourde.
⇒
Contournement du problème en utilisant l’approximation d’Euler explicite (voir 2) pour évalueru
i+1intervenant dansf
.u
i+1= u
i+ h
2 [f(t
i, u
i) + f(t
i+1, u
i+ hf(t
i, u
i))]
MNCS 21 2019-2020
EDO 2 Méthodes à un pas 2.2 Méthodes du deuxième ordre
Bilan : méthode de typeprédicteur-correcteuréquivalent à
— un demi-pas avec la pente initiale
k
1— et un demi-pas avec la pente
k
2du point prédit par Euler progressif.k
1= f(t
i, u
i)
(9a)k
2= f(t
i+1, u
i+ k
1h)
(9b)u
i+1= u
i+ h
2 [k
1+ k
2]
(9c) Remarques— deuxième ordre comme point milieu mais sans évaluation hors grille
— la résolution de l’équation implicite peut se faire en itérant la correction jusqu’à ce qu’elle devienne négligeable.
MNCS 22 2019-2020
EDO 2 Méthodes à un pas 2.2 Méthodes du deuxième ordre
t
it
i+1u
iy
k
1t
i+ h/2 u
i+1k
1h/2 k
2h/2
t
corrigé
prédit
k
2k
2Méthode d’Euler modifiée
Méthodeexplicitequi nécessite deux éva- luations de la fonction par pas en des points de la grille.
MNCS 23 2019-2020
EDO 2 Méthodes à un pas 2.3 Méthodes de Runge Kutta
2.2.3 Méthode de Heun
k
1= f (t
i, u
i)
(10a)k
2= f (t
i+ 2
3 h, u
i+ 2
3 k
1h)
(10b)u
i+1= u
i+ h
4 [k
1+ 3k
2]
(10c)2.3 Méthodes de Runge Kutta
Plus généralement, avec
r
évaluations def
, on peut atteindre une méthode d’ordrer
sir 6 4
. Pour atteindre l’ordre 5, six évaluations sont nécessaires.= ⇒
la méthode de Runge Kutta d’ordre 4 est très utilisée.Les méthodes de Runge-Kutta sontstables.
MNCS 24 2019-2020
EDO 2 Méthodes à un pas 2.3 Méthodes de Runge Kutta
2.3.1 Méthode de Runge Kutta d’ordre 3
k
1= f(t
i, u
i)
(11a)k
2= f(t
i+ h
2 , u
i+ k
1h
2 )
(11b)k
3= f(t
i+ h, u
i+ (2k
2− k
1)h)
(11c)u
i+1= u
i+ (k
1+ 4k
2+ k
3) h
6
(11d)MNCS 25 2019-2020
EDO 2 Méthodes à un pas 2.3 Méthodes de Runge Kutta
2.3.2 Méthode de Runge Kutta d’ordre 4
k
1= f(t
i, u
i)
(12a)k
2= f(t
i+ h
2 , u
i+ k
1h
2 )
(12b)k
3= f(t
i+ h
2 , u
i+ k
2h
2 )
(12c)k
4= f(t
i+ h, u
i+ k
3h)
(12d)u
i+1= u
i+ (k
1+ 2k
2+ 2k
3+ k
4) h
6
(12e)EDO 2 Méthodes à un pas 2.4 Erreur absolue en fonction du pas et de l’ordre
2.4 Erreur absolue en fonction du pas et de l’ordre
nombre de pas
= L/h = ⇒
erreur globale∼
erreur locale× L/h
TABLE1 – Erreur detroncature seule
Méthode ordre erreur locale erreur globale
Euler explicite 1
∝ h
2∝ h
Point milieu – Euler modifiée 2
∝ h
3∝ h
2Runge-Kutta 3 3
∝ h
4∝ h
3Runge-Kutta 4 4
∝ h
5∝ h
4Erreur d’arrondilocale indépendante de
h ⇒
erreur d’arrondi globale∝ 1/h
EDO 2 Méthodes à un pas 2.5 Exemple de l’équation logistique
2.5 Exemple de l’équation logistique dy
dt = y(1 − y/2)
0 5 10 15 20
temps 0.0
0.5 1.0 1.5 2.0
logistique
sol_exacte_logistique
[ 0.0e+00 , 2.0e+01] h= 2.00e-02 y0=1.00e-01 n= 1001
FIGURE1 – Solution analytique de l’équation logistique pour
t
0= 0
,y(t
0) = 0.1
,a = 1
etk = 2
.MNCS 28 2019-2020
EDO 2 Méthodes à un pas 2.5 Exemple de l’équation logistique
estimé − exact
0 2 4 6 8 10 12 14 16 18 20
−0.009
−0.008
−0.007
−0.006
−0.005
−0.004
−0.003
−0.002
−0.001 0.000 0.001
fichier euler.dat ordre 1 erreur max 0.830E−02 position de l’err max 0.296E+01
temps
Erreur = Estimé − Exact
FIGURE2 – Erreur dans l’intégration de l’équation logistique avec la méthode d’Euler pour
h = 0, 02
. L’allure régulière montre que l’erreur de troncaturedomine.Erreur de troncature locale liée à la courbure de la solution
MNCS 29 2019-2020
EDO 2 Méthodes à un pas 2.5 Exemple de l’équation logistique
exact − estimé
0 2 4 6 8 10 12 14 16 18 20
−1e−06
−8e−07
−6e−07
−4e−07
−2e−07 0e+00
2e−07 4e−07 6e−07 8e−07 1e−06
fichier rk4.dat ordre 4 erreur max 0.954E−06 position de l’err max 0.190E+01
temps
Erreur = Exact −Estimé
FIGURE 3 – Erreur dans l’intégration de l’équation logistique avec Runge Kutta d’ordre 4 pour
h = 0, 02
. L’allurebruitéeest caractéristique de l’erreur d’arrondi et on retrouve les niveaux de quantification des réels sur 32 bits.MNCS 30 2019-2020
EDO 2 Méthodes à un pas 2.5 Exemple de l’équation logistique
2.5.1 Exemple d’erreur totale maximale en simple précision (32 bits)
10−7 10−6 10−5 10−4 10−3 10−2 10−1 100
10−4 10−3 10−2 10−1 100
erreur maximale
pas
Valeur absolue de l’erreur absolue pour y’= y(1−y/2) sur [0,20] y(0)=0.1 simple précision
pente −1
pente +1
pente +2
pente +3
pente +4 euler sp
milieu sp rk3 sp rk4 sp
MNCS 31 2019-2020
EDO 2 Méthodes à un pas 2.5 Exemple de l’équation logistique
2.5.2 Exemple d’erreur totale maximale en double précision (64 bits)
10−16 10−14 10−12 10−10 10−8 10−6 10−4 10−2 100
10−4 10−3 10−2 10−1 100
erreur maximale
pas
Erreur absolue y’= y(1−y/2) sur [0,20] y(0)=0.1 double précision
pente +1
pente +2
pente +3
pente +4
euler dp milieu dp rk3 dp rk4 dp
MNCS 32 2019-2020
EDO 2 Méthodes à un pas 2.5 Exemple de l’équation logistique
2.5.3 Comparaison des erreurs maximales simple/double précision
10−16 10−14 10−12 10−10 10−8 10−6 10−4 10−2 100
10−4 10−3 10−2 10−1 100
erreur maximale
pas
Erreur absolue y’= y(1−y/2) sur [0,20] y(0)=0.1 simple/double précision
euler sp milieu sp rk3 sp rk4 sp euler dp milieu dp rk3 dp rk4 dp
MNCS 33 2019-2020
EDO 3 Méthodes à plusieurs pas
3 Méthodes à plusieurs pas
3.1 Méthodes d’Adams
Principe :les erreurs augmentent avec l’intégration, les points les plus proches de la valeur initiale ont tendance à être plus fiables. Pour calculer
u
i+1, on peuts’appuyer non seulement sur la dernière valeur estimée
u
i, mais sur lesm
précédentes.— si le calcul invoque la pente au point recherché
f(t
i+1, u
i+1)
, la méthode est implicite (voir 2.1.2) : ADAMS-MOULTON— sinon elle est explicite : ADAMS-BASHFORTH.
Dans les deux cas, il fautinitialiserle calcul par une méthode à un pas sur les
m
premiers points.
Le calculréutilise les évaluations antérieures du second membre.
= ⇒
stocker ces valeurs pour économiser les calculsEDO 3 Méthodes à plusieurs pas 3.1 Méthodes d’Adams
3.1.1 Adams Bashforth : explicite, pas de terme en
f (t
i+1, u
i+1)
Adams-Bashforth utilise
m
points à gauche det
i+1:u
i+1= u
i+ βh X
m j=1α
jf(t
i−j+1, u
i−j+1)
avecβ X
m j=1α
j= 1
méthode d’ordre
m
, mais une seule nouvelle évaluation du second membre à chaque pasm β α
1α
2α
3α
41 1 1
2 1/2 3 − 1
3 1/12 23 − 16 5
4 1/24 55 − 59 37 − 9
EDO 3 Méthodes à plusieurs pas 3.1 Méthodes d’Adams
Exemple : Adams-Bashforth à deux pas
u
i+1= u
i+ h
2 [3f(t
i, u
i) − f (t
i−1, u
i−1)]
t
i−1t
i+1k
−1t t
ik
0− k
−1h/2 y
u
i−1u
ih/2 3k
0h/2
3h/2 u
i+1Adams-Bashforth à deux pas
Méthode explicite d’ordre deux mais seulement une éva- luation nouvelle du second membre à chaque pas
⇒
mémoriser lesseconds membres.
MNCS 36 2019-2020
EDO 3 Méthodes à plusieurs pas 3.1 Méthodes d’Adams
3.1.2 Adams Moulton : implicite, terme en
f(t
i+1, u
i+1)
Adams-Moulton utilise
m + 1
points dontt
i+1 doncimplicite:u
i+1= u
i+ βh X
m j=0α
jf(t
i−j+1, u
i−j+1)
avecβ X
m j=0α
j= 1
méthode d’ordre
m + 1
(nombre d’évaluations du second membre)m β α
0α
1α
2α
30 1 1
1 1/2 1 1
2 1/12 5 8 − 1 3 1/24 9 19 − 5 1
Éviter les difficultés de l’implicite en utilisant un prédicteur explicite de
u
i+1, injecté ensuite dans l’expression d’Adams-Moulton vue comme correcteur .MNCS 37 2019-2020
EDO 3 Méthodes à plusieurs pas 3.1 Méthodes d’Adams
3.1.3 Comparaison méthodes à un pas et Adams explicite
10−7 10−6 10−5 10−4 10−3 10−2 10−1 100
10−4 10−3 10−2 10−1 100
erreur maximale
pas
Erreur absolue y’= y(1−y/2) sur [0,20] y(0)=0.1 simple précision euler sp
milieu sp rk3 sp rk4 sp adams−bashforth2 sp adams−bashforth3 sp adams−bashforth4 sp
MNCS 38 2019-2020
EDO 3 Méthodes à plusieurs pas 3.1 Méthodes d’Adams
3.1.4 Méthodes de prédicteur correcteur
Principe :bénéficier des qualités d’une méthode implicite mais l’appliquer à une estimation obtenue par une méthode explicite du même ordre (voir Euler modifiée).
— prédictionde
u
i+1par une méthodeexplicite— correctionde
u
i+1par une formuleimpliciteoùf(t
i+1, y(t
i+1))
a été approximé par la prédictionf (t
i+1, u
i+1)
.Exemple : méthode d’Euler modifiée
Une itération de la partie correction est possible.
L’ordre est celui du correcteur, mais la stabilité dépend plus du prédicteur.
Ces méthodes permettent d’estimer l’erreur de troncatureà partir de la différence entre prédicteur et correcteur
= ⇒
adaptation du pasMNCS 39 2019-2020
EDO 3 Méthodes à plusieurs pas 3.2 Méthodes adaptatives
3.2 Méthodes adaptatives
Principe :ajuster le pas localementpour obtenir une précision imposée.
Estimer l’erreur de troncature par l’écart entre deux solutions numériques :
u
i, d’ordren η
i= y(t
i+1) − u
i+1h ∝ h
n (13a)u
?i, d’ordren + 1 η
i?= y(t
i+1) − u
?i+1h ∝ h
n+1 (13b)or
h 1
doncη
i≈ u
?i+1− u
i+1h ∝ h
n (13c)Modification du pas d’un facteur
q
η
i(hq) ≈ q
nη
i(h) ≈ q
nh (u
?i+1− u
i+1)
(14) Pour obtenir uneprécisionglobale∆y ≈ Lδ
, imposer localement :| η
i(hq) | ≈ δ
(15)MNCS 40 2019-2020
EDO 3 Méthodes à plusieurs pas 3.2 Méthodes adaptatives
d’où le facteur
q
à appliquer au pas :q ≈
hδ u
?i+1− u
i+1 1/n(16)
— Si
q < 1
, refuseru
i+1et diminuer le pas— Si
q > 1
, accepteru
i+1et augmenter le prochain pasB En pratique, limiter le pas à un intervalle raisonnable et éviter des variations brutales.
On suppose ici que le pas choisi permet de négliger l’erreur d’arrondi.
3.2.1 Exemple : méthode de Runge Kutta Fehlberg Une méthode de Runge Kutta d’ordre 5(6 évaluations de
f
)permet de contrôler la précision obtenue par un Runge Kutta d’ordre 4 utilisant les évaluations de
f
auxmêmes pointsque celle d’ordre 5 (les poids ne sont pas ceux de la méthode d’ordre 4 classique).MNCS 41 2019-2020
EDO 3 Méthodes à plusieurs pas 3.3 Méthodes d’extrapolation de Gragg
3.3 Méthodes d’extrapolation de Gragg
3.3.1 Principe de l’extrapolation
h/p2
k= 2 h/p3
k= 3 pas fin :h/pkm
pkmpas k=km
t0 h t0+L
k= 1
Subdivisions successives Découpage de l’intervalle depas grossier
h
en sous-intervalles depas finh
k= h/p
kde plus en plus petits.Développement polynomial de l’erreur de troncature en fonction du pas pour extrapoler au pas nul (
h
k→ 0
).EDO 3 Méthodes à plusieurs pas 3.3 Méthodes d’extrapolation de Gragg
Exemple de la méthode d’Euler : l’erreur de troncatureglobale sur un pas grossier
h
est du premier ordre en fonction dupas finh/p
k.Par exemple, pour les subdivisions
p
1etp
2:y(t + h) = v
1+ a
1h
p
1+ a
2h
p
1 2+ · · ·
(17)y(t + h) = v
2+ a
1h p
2+ a
2h p
2 2+ · · ·
(18)Combinaison linéairede ces deux estimateurs
v
1etv
2⇒
éliminer le terme d’ordre 1de l’erreur (a
1inconnu)⇒
nouvel estimateurw
2,2d’ordre 2tel que :y(t + h) = w
2,2+ b
2h
p
2 2+ · · ·
w
2,2= (p
2/p
1) w
2,1− w
1,1p
2/p
1− 1 = w
2,1+ w
2,1− w
1,1p
2/p
1− 1
(19)EDO 3 Méthodes à plusieurs pas 3.3 Méthodes d’extrapolation de Gragg
Autre exemple avec la méthode du point milieu :
— l’erreur de troncature globale sur
h
est d’ordre 2 en fonction du pash/p
k;— pas de termes d’ordre impair dans le développement de l’erreur.
Combinaison linéairede deux estimateurs avec des pas fins différents :
⇒
élimination du terme d’ordre 2 de l’erreur de troncature⇒
erreur de troncature d’ordre 4Itérerle processus avec une suite de subdivisions et de combinaisons linéaires d’estimateurs pour augmenter l’ordre de l’erreur de troncature.
B Maisamélioration limitée par l’erreur d’arrondi...
L’écart
w
k+1,k+1− w
k,kdonne une estimation de l’erreur de troncature si on retient la solutionw
k,k. En ajustant, pour chaque intervalle de largeurh
, le nombrek
mde subdivisions pour respecter une erreur absolue imposée, on obtient une version adaptative de la méthode de Gragg.MNCS 44 2019-2020
EDO 3 Méthodes à plusieurs pas 3.3 Méthodes d’extrapolation de Gragg
3.3.2 Comparaison méthodes à un pas et extrapolation de Gragg
10−7 10−6 10−5 10−4 10−3 10−2 10−1 100
10−4 10−3 10−2 10−1 100
erreur maximale
pas
Erreur absolue y’= y(1−y/2) sur [0,20] y(0)=0.1 simple précision euler sp
milieu sp rk3 sp rk4 sp mil−mod sp gragg2−4sp gragg2−8sp
MNCS 45 2019-2020
EDO 4 Les EDO du premier ordre en pratique
4 Les EDO du premier ordre en pratique
4.1 Échelles de temps et problèmes raides
Ne pas oublier que chaque problème différentiel possède une ou plusieurséchelles de temps propres(périodes ou pseudo-périodes, constantes de temps).
La solution ne peut être représentée correctement qu’avec un pas assez inférieur au plus petit de ces temps propres.
Cette analyse impose donc une valeur maximale pour le pas.
Certains problèmes différentiels qualifiés deraidescomportent des échelles de temps très différentes : leur intégration numérique s’avère délicate et coûteuse (pas faible pour respecter le temps court, mais nombreux pour accéder au temps long).
Il existe des méthodes spécifiques des EDO raides qui ne sont pas présentées ici.
MNCS 46 2019-2020
EDO 4 Les EDO du premier ordre en pratique 4.2 Validation des résultats
4.2 Validation des résultats
Validation via une solution analytique d’un problème simplifié
Lorsqu’une solution analytique est disponible (par exemple pour certaines valeurs de paramètres qui permettent de simplifier l’EDO), sa comparaison avec la solution numérique permet de tester la méthode. Le calcul de l’erreur dans le domaine où la troncature domine permet d’extrapoler l’effet d’un changement de pas connaissant l’ordre de la méthode.
Validation sans solution analytique
Dans le cas où aucune solution analytique de référence n’est disponible, la validation s’appuie sur les mêmes outils que les méthodes adaptatives :
— diminution du pas (division par 2)
— augmentation de l’ordre de la méthode
— extrapolation de Gragg
— calcul d’invariants (énergie par exemple)
MNCS 47 2019-2020
EDO 4 Les EDO du premier ordre en pratique4.3 Structure des programmes de résolution d’EDO du 1erordre
4.3 Structure des programmes de résolution d’EDO du 1
erordre
1. un algorithme de base (appliquant une méthode d’ordre 1, 2, 3 ou 4 à la fonction second membre
f
passée en argument) permettant d’avancer d’un pasdans l’intégration de l’équation différentielle2. éventuellement une procédure qui choisit le pas le plus grand possible compatible avec la précision attendue et contrôle la progression de l’intégration (elle pourrait comporter un algorithme adaptatif)
3. un programme d’interface avec l’utilisateurqui choisit la méthode, le second membre, lit les paramètres (conditions initiales par ex.), déclenche et arrêtela boucle d’intégrationet stocke les résultats.
4. un module comportantles fonctions seconds membresde l’équation différentielle et les éventuelles solutions analytiques exactes ou approchées 5. un module d’utilitairesnotamment pour écrire les résultats dans un fichier pour
visualisation ultérieure.
MNCS 48 2019-2020
EDO 5 Systèmes d’EDO du 1erordre
5 Systèmes d’équations différentielles du 1
erordre
5.1 Extension des méthodes scalaires explicites aux vecteurs
Système de
n
équations différentielles couplées du premier ordre associées àn
conditions initialesdy
1dt = f
1(t, y
1, y
2, . . . , y
n) dy
2dt = f
2(t, y
1, y
2, . . . , y
n) . . . = . . .
dy
ndt = f
n(t, y
1, y
2, . . . , y
n)
considérer les vecteurs
#–
y
et#–
f
.
y
1y
2. . . y
n
et
f
1f
2. . . f
n
MNCS 49 2019-2020
EDO 5 Systèmes d’EDO du 1erordre 5.1 Méthodes scalaires explicites
Lesméthodesexplicitesde résolution des équations différentielles scalaires du premier ordres’appliquent aux systèmes.
d #–
y dt = #–
f (t, #–
y )
À chaque étape, effectuer les calculssur chaque composante avant de passer à l’étape suivante : exemple avec point milieu
Étape 1 : vecteur des pentes au bord gauche de l’intervalle
k # –
1= #–
f (t
1, # – y
1)
k
1,1= f
1(t
1, y
1,1, y
1,2, . . . , y
1,n) k
1,2= f
2(t
1, y
1,1, y
1,2, . . . , y
1,n)
. . . = . . .
k
1,n= f
n(t
1, y
1,1, y
1,2, . . . , y
1,n)
EDO 5 Systèmes d’EDO du 1erordre 5.1 Méthodes scalaires explicites
avant de calculer...
Étape 2 : vecteur des pentes au point milieu prédit
k # –
2= #–
f (t
1+ h/2, # – y
1+ # –
k
1h/2)
k
2,1= f
1(t
1+ h/2, y
1,1+ k
1,1h/2, y
1,2+ k
1,2h/2, . . . , y
1,n+ k
1,nh/2) k
2,2= f
2(t
1+ h/2, y
1,1+ k
1,1h/2, y
1,2+ k
1,2h/2, . . . , y
1,n+ k
1,nh/2)
. . . = . . .
k
2,n= f
n(t
1+ h/2, y
1,1+ k
1,1h/2, y
1,2+ k
1,2h/2, . . . , y
1,n+ k
1,nh/2)
Étape 3 : vecteur résultat au bord droit de l’intervalle
#– u
i+1= #–
u
i+ h # –
k
2EDO 5 Systèmes d’EDO du 1erordre 5.2 Équations de Lotka-Volterra
5.2 Exemple de système non-linéaire couplé du premier ordre : équations de Lotka-Volterra
Deux populations en conflit : modèleproies (
y
1)–prédateurs (y
2)a
1= 1/τ
1= taux de croissance dey
1(proies)en l’absence dey
2(prédateurs)a
2= 1/τ
2= taux de décroissance dey
2(prédateurs)en l’absence dey
1(proies) Termes de couplage non-linéaires eny
1y
2(rencontre des 2 espèces)a
1k
2y
2= taux de destruction desproiespar lesprédateursa
2k
1y
1= taux de croissance desprédateursau détriment desproiesdy
1dt = +a
1y
11 − y
2k
2(20a)
dy
2dt = − a
2y
21 − y
1k
1(20b) Solutionspériodiques
MNCS 52 2019-2020
EDO 5 Systèmes d’EDO du 1erordre 5.2 Équations de Lotka-Volterra
Lotka-Volterra : cycle dans le plan de phase
En éliminant le temps, on obtient un invariant , donc des solutions périodiques :
dy
2dy
1= − a
2y
2a
1y
11 − y
1/k
11 − y
2/k
2⇒ y
1a2y
2a1e−a1y2/k2−a2y1/k1=
Cte Tangentes horizontales poury
1= k
1(ouy
2= 0
) : équilibre desprédateurs Tangentes verticales poury
2= k
2(ouy
1= 0
) : équilibre desproiesk1=k2= 1,a1= 1,a2= 0,2
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0
0 5 10 15 20
prédateurs
proies Plan de phase de Lotka Volterra valeurs initiales : proies(0) = 10 prédateurs(0) = 1
pas = 0,1 ordre de la méthode : 1 prédateurs= f(proies)
Méthode d’Euler : non périodique
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0
0 5 10 15 20
prédateurs
proies Plan de phase de Lotka Volterra valeurs initiales : proies(0) = 10 prédateurs(0) = 1
pas = 0,1 ordre de la méthode : 4 prédateurs= f(proies)
Runge Kutta d’ordre 4 :cycle correct
MNCS 53 2019-2020
EDO 5 Systèmes d’EDO du 1erordre 5.2 Équations de Lotka-Volterra
Résolution numérique de Lotka-Volterra :
k
1= k
2= 1
,a
1= 1
,a
2= 0, 2
,h = 0, 1
Échelleslinéaires
0 5 10 15 20
0 20 40 60 80 100
Populations
temps
Lotka Volterra valeurs initiales : proies(0) = 10 prédateurs(0) = 1 pas = 0,1 ordre de la méthode : 1
proies prédateurs
Méthode d’Euler progressive : Les solutions divergent
0 5 10 15 20
0 20 40 60 80 100
Populations
temps
Lotka Volterra valeurs initiales : proies(0) = 10 prédateurs(0) = 1 pas = 0,1 ordre de la méthode : 4
proies prédateurs
Méthode de Runge Kutta d’ordre 4 : Cycle stable
MNCS 54 2019-2020
EDO 5 Systèmes d’EDO du 1erordre 5.2 Équations de Lotka-Volterra
Résolution numérique de Lotka-Volterra :
k
1= k
2= 1
,a
1= 1
eta
2= 0, 2
. Échellelogen ordonnée10−10 10−8 10−6 10−4 10−2 100 102
0 20 40 60 80 100
Populations
temps
Lotka Volterra valeurs initiales : proies(0) = 10 prédateurs(0) = 1 pas = 0,1 ordre de la méthode : 1
proies prédateurs
Méthode d’Euler progressive :divergente
10−10 10−8 10−6 10−4 10−2 100 102
0 20 40 60 80 100
Populations
temps
Lotka Volterra valeurs initiales : proies(0) = 10 prédateurs(0) = 1 pas = 0,1 ordre de la méthode : 4
proies prédateurs
Méthode de Runge Kutta d’ordre 4 :stable Pente avec peu de proies :
d ln y
2dt ≈ − 1/τ
2d’où facteure
−4≈ 1/54
sur une durée de20 = 4τ
2. Pente avec peu de prédateurs :d ln y
1dt ≈ 1/τ
1d’où facteur 100 sur durée de4, 6 = 4, 6τ
1MNCS 55 2019-2020