0% ont trouvé ce document utile (0 vote)
140 vues22 pages

Méthodes numériques pour EDO : Euler et Runge Kutta

Ce document décrit diverses méthodes numériques à un pas pour résoudre des équations différentielles ordinaires. Il présente les méthodes d'Euler du premier ordre, explicite et implicite, ainsi que la méthode du point milieu du deuxième ordre.

Transféré par

Imene As
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
140 vues22 pages

Méthodes numériques pour EDO : Euler et Runge Kutta

Ce document décrit diverses méthodes numériques à un pas pour résoudre des équations différentielles ordinaires. Il présente les méthodes d'Euler du premier ordre, explicite et implicite, ainsi que la méthode du point milieu du deuxième ordre.

Transféré par

Imene As
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

EDO 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 ti+1 = ti + h, connaissant seulement ui , celle à ti .
La valeur à estimer peut être approchée par un développement limité de Taylor :

dy h2 d2 y
y(ti + h) = y(ti ) + h (ti ) + 2
(ti ) + · · · (1)
dt 2 dt
Ordre n de la méthode = plus grande puissance de h prise en compte dans
l’approximation.
— Somme des termes négligés = erreur de troncature locale ∝ hn+1
dé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’arrondi aléatoire
augmente lorsque les calculs se compliquent, en particulier si le pas h 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 toujours la
qualité du résultat : un compromis doit ê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

ui+1 = ui + hf (ti , ui ) (2)

Exemple : stabilité

dy y
=− ⇒ solution analytique y = y0 e−t/τ ⇒ yn = y0 (e−h/τ )n
dt τ
h n
ui+1 = ui − ui ⇒ solution numérique un = y0 (1 − h/τ )
τ
Si τ> 0, la solution exacte vérifie y(∞) = 0,
Mais pour l’approximation, un → 0 ⇐⇒ |1 − h/τ | < 1 ⇐⇒ 0 < h < 2τ .
Condition de stabilité : h < 2τ (pas h petit)
Mais, si h > τ , alors (1 − h/τ ) < 0 : alternance de signe de la solution un .

MNCS 13 2019-2020
EDO 2 Méthodes à un pas 2.1 Méthodes du premier ordre

y Méthode d’Euler

Méthode explicite qui ne


nécessite qu’une
seule évaluation
ui+1
de la fonction second
k1 h membre f par pas :

k1 k1 = f (ti , ui )
ui facilement instable
h
ui+1 − ui
= f (ti , ui )
ti ti+1 t h
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)

ui+1 = ui + hf (ti+1 , ui+1 ) (3)

Méthode implicite : résolution itérative , plus difficile à mettre en œuvre, sauf si la


forme de f (t, u) permet le calcul analytique de ui+1 à partir de l’équation (3).
Avantage : meilleure stabilité que la méthode progressive explicite.

Exemple : stabilité

dy y
=− ⇒ solution analytique y = y0 e−t/τ ⇒ yn = y0 (e−h/τ )n
dt τ
h ui
ui+1 = ui − ui+1 ⇒ solution numérique ui+1 =
τ 1 + h/τ
y0
un = n
(1 + h/τ )
Si τ > 0, y(∞) = 0, et aussi un → 0 ∀τ > 0, ∀h > 0 solution stable

MNCS 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

ui+1 = ui + hf (ti+1 , ui+1 )


Itérer l’application g pour rechercher son point fixe

v20 = g(v2 ) = ui + hf (t2 , v2 )


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

t2 = ti + h
k1 = f (ti , ui )
v2 = ui + hk1

MNCS 16 2019-2020
EDO 2 Méthodes à un pas 2.1 Méthodes du premier ordre

Boucle pour recherche du point fixe de g(v2 ) = v20 = ui + hf (t2 , v2 )

k2 = f (t2 , v2 )
v20 = ui + hk2
δv2 = v20 − v2
arrêt si |δv2 |2 6 α2 |v2 |2
v2 = v20

∂f
La fonction g est contractante si g 0 (v2 ) = h ∂v 61

2
ce qui est vérifié si le pas est assez faible.

∂f
Rappel : la condition de Lipschitz est ∂v
2
6K
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 d2 y ∂f ∂f dy ∂f ∂f
= f (t, y(t)) ⇒ = + = +f (6)
dt dt2 ∂t ∂y dt ∂t ∂y
Préférer utiliser plusieurs évaluations du second membre f en des points adaptés.

Centrer l’évaluation de la dérivée au point milieu tm = (ti + ti+1 )/2.

h dy 1 h2 d2 y 3
y(ti + h) = y(tm ) + (tm ) + 2
(t m ) + O(h ) (7a)
2 dt 2 4 dt
h dy 1 h2 d2 y 3
y(ti ) = y(tm ) − (tm ) + (t m ) + O(h ) (7b)
2 dt 2 4 dt2
Par différence, (approximation locale parabolique, voir aussi dérivée centrée à 2 termes)
dy
y(ti + h) − y(ti ) = h (tm ) + O(h3 )
dt

MNCS 18 2019-2020
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 (ti , ui ) et au milieu (ti+1/2 = ti + h/2, ui+1/2 ) d’un pas (hors grille).
 
h h
ui+1 = ui + hf ti + , ui + f (ti , ui )
2 2

k1 = f (ti , ui ) (8a)

h h
(ui+1/2 calculé via Euler) k2 = f (ti + , u i + k1 ) (8b)
2 2
ui+1 = ui + hk2 (8c)

MNCS 19 2019-2020
EDO 2 Méthodes à un pas 2.2 Méthodes du deuxième ordre

ui+1 Méthode du
k2 point milieu

k2 h Méthode explicite

k2 qui nécessite deux


évaluations du second
k1 h/2
k1 membre par pas dont
ui
une hors grille.

ti ti + h/2 ti+1 t

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 dy dy
(ti ) + (ti+1 ) = 2 (tm ) + O(h2 )
dt dt dt
D’où une approximation n’utilisant pas la valeur de f au point milieu tm :
h
ui+1 = ui + [f (ti , ui ) + f (ti+1 , ui+1 )]
2
De nouveau, méthode a priori implicite, plus stable, mais plus lourde.
⇒ Contournement du problème en utilisant l’approximation d’Euler explicite (voir 2)
pour évaluer ui+1 intervenant dans f .

h
ui+1 = ui + [f (ti , ui ) + f (ti+1 , ui + hf (ti , ui ))]
2

MNCS 21 2019-2020
EDO 2 Méthodes à un pas 2.2 Méthodes du deuxième ordre

Bilan : méthode de type prédicteur-correcteur équivalent à

— un demi-pas avec la pente initiale k1

— et un demi-pas avec la pente k2 du point prédit par Euler progressif.

k1 = f (ti , ui ) (9a)

k2 = f (ti+1 , ui + k1 h) (9b)

h
ui+1 = ui + [k1 + k2 ] (9c)
2
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

corrigé Méthode d’Euler


ui+1 modifiée
k2 h/2 k2 k2
Méthode explicite qui
prédit
nécessite deux éva-
k1 h/2 luations de la fonction
k1
ui par pas en des points
de la grille.
ti ti + h/2 ti+1 t

MNCS 23 2019-2020
EDO 2 Méthodes à un pas 2.3 Méthodes de Runge Kutta

2.2.3 Méthode de Heun

k1 = f (ti , ui ) (10a)
2 2
k2 = f (ti + h, ui + k1 h) (10b)
3 3
h
ui+1 = ui + [k1 + 3k2 ] (10c)
4

2.3 Méthodes de Runge Kutta

Plus généralement, avec r évaluations de f , on peut atteindre une méthode d’ordre


r si r 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 sont stables.

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

k1 = f (ti , ui ) (11a)

h h
k2 = f (ti + , ui + k1 ) (11b)
2 2
k3 = f (ti + h, ui + (2k2 − k1 )h) (11c)

h
ui+1 = ui + (k1 + 4k2 + k3 ) (11d)
6

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

k1 = f (ti , ui ) (12a)

h h
k2 = f (ti + , ui + k1 ) (12b)
2 2
h h
k3 = f (ti + , ui + k2 ) (12c)
2 2
k4 = f (ti + h, ui + k3 h) (12d)

h
ui+1 = ui + (k1 + 2k2 + 2k3 + k4 ) (12e)
6

MNCS 26 2019-2020
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


TABLE 1 – Erreur de troncature seule

Méthode ordre erreur locale erreur globale

Euler explicite 1 ∝ h2 ∝h
Point milieu – Euler modifiée 2 ∝ h3 ∝ h2
Runge-Kutta 3 3 ∝ h4 ∝ h3
Runge-Kutta 4 4 ∝ h5 ∝ h4

Erreur d’arrondi locale indépendante de h ⇒ erreur d’arrondi globale ∝ 1/h

MNCS 27 2019-2020
EDO 2 Méthodes à un pas 2.5 Exemple de l’équation logistique

dy
2.5 Exemple de l’équation logistique = y(1 − y/2)
dt
sol_exacte_logistique
2.0 [ 0.0e+00 , 2.0e+01] h= 2.00e-02 y0=1.00e-01 n= 1001

1.5
logistique

1.0

0.5

0.0
0 5 10 15 20
temps
F IGURE 1 – Solution analytique de l’équation logistique pour t0 = 0, y(t0 ) = 0.1,
a = 1 et k = 2.
MNCS 28 2019-2020
EDO 2 Méthodes à un pas 2.5 Exemple de l’équation logistique

fichier [Link] ordre 1 erreur max 0.830E−02 position de l’err max 0.296E+01

0.001

0.000

−0.001

Erreur = Estimé − Exact −0.002

−0.003

−0.004

−0.005

−0.006

−0.007

−0.008

−0.009
0 2 4 6 8 10 12 14 16 18 20
estimé − exact
temps

F IGURE 2 – 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 troncature domine.
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

fichier [Link] ordre 4 erreur max 0.954E−06 position de l’err max 0.190E+01

1e−06

8e−07

6e−07

Erreur = Exact −Estimé


4e−07

2e−07

0e+00

−2e−07

−4e−07

−6e−07

−8e−07

−1e−06
0 2 4 6 8 10 12 14 16 18 20
exact − estimé
temps

F IGURE 3 – Erreur dans l’intégration de l’équation logistique avec Runge Kutta


d’ordre 4 pour h = 0, 02. L’allure bruitée est 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)

Valeur absolue de l’erreur absolue pour y’= y(1−y/2) sur [0,20] y(0)=0.1 simple précision
100
euler sp
milieu sp
rk3 sp
10
−1 rk4 sp pente +1

10−2
erreur maximale

pente +2
−3
10
pente −1

−4
10 pente +3

10−5

pente +4
−6
10

10−7 −4
10 10−3 10−2 10−1 100
pas
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)

Erreur absolue y’= y(1−y/2) sur [0,20] y(0)=0.1 double précision


100

10−2 pente +1

10−4

pente +2
10−6
erreur maximale

10−8
pente +3

10−10

10−12 pente +4

−14 euler dp
10
milieu dp
rk3 dp
rk4 dp
10−16 −4
10 10−3 10−2 10−1 100
pas
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

Erreur absolue y’= y(1−y/2) sur [0,20] y(0)=0.1 simple/double précision


100

10−2

10−4

10−6
erreur maximale

10−8

10−10

euler sp
10−12 milieu sp
rk3 sp
rk4 sp
−14 euler dp
10
milieu dp
rk3 dp
rk4 dp
10−16 −4
10 10−3 10−2 10−1 100
pas
MNCS 33 2019-2020

Vous aimerez peut-être aussi