Académique Documents
Professionnel Documents
Culture Documents
Didier Schmitt
IECL
Printemps 2022
Définitions
On appelle équation différentielle d’ordre 1 les équations de la forme
Remarque
Toute équation différentielle d’ordre p peut se réécrire comme un système
différentiel d’ordre 1.
Remarque
Il convient donc de savoir réécrire une équation différentielle d’ordre p
comme un système différentiel d’ordre 1.
En posant
y (t)
y ′ (t)
X (t) = . ,
.
.
(p−1)
y (t)
Définition
Étant donnés un intervalle I et une fonction f : I × RN → RN , résoudre
l’équation différentielle
Remarque
En général, une équation différentielle admet plusieurs solutions.
Exemple :
L’équation y ′ (t) = y (t) admet une infinité de solutions à savoir
y: R → R
; C ∈ R .
t 7→ Ce t
Pour espérer caractériser une des solutions, nous devons donc ajouter une
condition initiale, qui décrit le système à un instant initial :
Définition
Soient I un intervalle, f : I × RN → RN , t0 ∈ I et y0 ∈ RN .
On appelle problème de Cauchy la recherche d’une solution de
l’équation différentielle
y (t0 ) = y0 .
Remarque
Pour une équation d’ordre p, le problème de Cauchy correspond à la
recherche d’une solution de l’équation vérifiant de plus
y : [0, y10 [ → R
y0
t 7 → 1−y0 t
ya : [0, ∞[ → ( R
0 si t ∈ [0, a]
t 7→ 2
3
3 (t − a) 2 si t ≥ a
Remarque
Dans les exemples 1 et 2, le théorème s’applique bien puisque dans
les deux cas la fonction f est C 1 (f (t, x) = ax dans le premier cas et
f (t, x) = x 2 dans le deuxième cas).
Nous retrouvons donc l’existence et l’unicité d’une solution.
1
En revanche, dans l’exemple 3, nous avons f (t, x) = x 3 qui n’est
pas lipschitzienne en 0.
Nous avons donc l’existence de solutions, mais pas l’unicité.
Conclusion
Avant d’essayer de résoudre numériquement un problème de Cauchy, il
convient donc d’étudier, si possible :
L’existence d’une solution.
L’unicité de la solution.
S’il y a existence globale ou explosion en temps fini de la solution.
En effet
S’il n’y a pas unicité de la solution, quelle solution va-t-on obtenir
numériquement ?
S’il y a explosion en temps fini de la solution, que va t-il se passer si
on essaye d’obtenir une approximation de la solution au delà du
temps d’existence ?
Introduction
Nous cherchons à résoudre numériquement, i.e. nous cherchons une
approximation numérique de la solution du problème de Cauchy
′
y (t) = f (t, y (t)) , 0 ≤ t ≤ T
y (0) = y 0
Introduction
Nous cherchons à résoudre numériquement, i.e. nous cherchons une
approximation numérique de la solution du problème de Cauchy
′
y (t) = f (t, y (t)) , 0 ≤ t ≤ T
y (0) = y 0
Introduction
Donc pour obtenir une approximation numérique, il suffit d’obtenir
une approximation numérique de
Z t
f (s, y (s))ds
0
et pour cela nous pouvons utiliser les idées et les méthodes vues
dans le chapitre précédent.
Introduction
En introduisant une subdivision
Introduction
En introduisant une subdivision
La méthode d’Euler
R t classique ou explicite correspond à une
approximation de tnn+1 f (t, y (t))dt par la méthode des rectangles à
gauche : Z tn+1
f (t, y (t))dt ≃ hn f (tn , y (tn )).
tn
La méthode d’Euler
R t classique ou explicite correspond à une
approximation de tnn+1 f (t, y (t))dt par la méthode des rectangles à
gauche : Z tn+1
f (t, y (t))dt ≃ hn f (tn , y (tn )).
tn
Remarque
La méthode d’Euler explicite est très simple à mettre en oeuvre :
yn+1 = yn + hn f (tn , yn ), ∀ n ∈ J0, N − 1K
y0 = y h
Définition
On dira que la méthode est convergente si
Définition
On dira que la méthode est convergente si
Remarque :
Si la méthode est convergente, en choisissant h assez petit, et y h assez
voisin de y 0 , on obtient une bonne approximation de y (tn ), ∀ n ∈ J0, NK.
Remarques :
Il semblerait plus naturel de poser directement y0 = y 0 dans notre
schéma. Cependant, dans la pratique, si y 0 est réel, il ne pourra pas
toujours être pris en compte de façon exacte à cause des arrondis.
Une analyse correcte nécessite donc de supposer y 0 ̸= y h .
Remarques :
Il semblerait plus naturel de poser directement y0 = y 0 dans notre
schéma. Cependant, dans la pratique, si y 0 est réel, il ne pourra pas
toujours être pris en compte de façon exacte à cause des arrondis.
Une analyse correcte nécessite donc de supposer y 0 ̸= y h .
Comme dans tout calcul numérique, il se pose un problème de
stabilité :
il est nécessaire de connaı̂tre les conséquences d’une petite variation
de y h ainsi que celles d’erreurs sur le calcul de f (tn , yn ).
Définition
Nous dirons que la méthode est stable s’il existe une constante K telle
que " #
N−1
X
max ∥yn − zn ∥ ≤ K ∥y0 − z0 ∥ + ∥εn ∥
n
n=0
Définition
Nous dirons que la méthode est consistante si
N−1
X
lim ∥εn ∥ = 0.
h→0
n=0
d’où
∥zn+1 − yn+1 ∥ ≤ (1 + hn L)∥zn − yn ∥ + ∥εn ∥.
Rappelons que
ex ≥ 1 + x ∀ x ∈ R.
Par conséquent,
d’où !
N−1
X
max ∥zn − yn ∥ ≤ K ∥z0 − y0 ∥ + ∥εi ∥
n∈J0,NK
i=0
avec K = e LT .
∥y ′′ (t)∥ ≤ M2 , ∀ t ∈ [0, T ],
d’où
N−1
X
lim ∥εi ∥ = 0.
h→0
i=0
avec Z tn+1
εn = f (t, y (t))dt − hn f (tn , y (tn ))
tn
soit encore
zn+1 = zn + hn f (tn , zn ) + εn
avec
εn = y (tn+1 ) − y (tn ) − hn f (tn , y (tn )).
Donc
max ∥en ∥ ≤ e LT (∥e0 ∥ + hM2 T ) .
n∈J0,NK
Remarque :
On montrera de façon plus générale que pour les méthodes à un pas,
consistance et stabilité impliquent convergence.
Zn+1 = Zn + hn (f (tn , Zn ) + µn ) + ρn
= Zn + hn f (tn , Zn ) + hn µn + ρn
Remarques :
Un bon choix sera bien sûr h ≥ h∗ : il est inutile d’augmenter le coût
de calcul pour rien !
Les calculs ci-dessus sont faits de façon ”pessimiste” : souvent les
erreurs d’arrondis se compensent dans une certaine mesure (mais
c’est aléatoire).
On peut retrouver le fait qu’il est illusoire de vouloir prendre h trop
petit : on a
yn+1 = yn + hf (tn , yn )
Si h est trop petit alors le terme hf (tn , yn ) à ajouter est trop petit
pour être pris en compte après arrondis et alors
yn+1 = yn
Remarques :
Dans l’inégalité
LT T
EN ≤ e hM2 T + ∥y0 − Z0 ∥ + T µ + ρ
h
Exemple 1
y ′ (t) = 3y (t) − 3t
t ∈ [0, 5]
y (0) = 13
1
La solution est y (t) = 3 + t.
Ici L = 3 donc pour T = 5, nous avons e LT = e 15 ≃ 3.106 .
Maintenant, si on considère le même problème avec une donnée
initiale z(0) = 31 + ϵ la solution est z(t) = 31 + t + ϵe 3t .
Par conséquent z(5) = y (5) + ϵe 15 ≃ y (5) + 3ϵ106 .
Donc si on travail avec un ordinateur avec une précision machine de
10−6 , il sera impossible d’approcher y (5) et ceci indépendamment
du choix de la méthode numérique.
Le problème est mal conditionné.
Exemple 2
soit
1 1
yn+1 − = (1 − 150hn ) yn − .
3 3
Didier Schmitt IECL
Analyse Numérique - 2
Résolution numérique des équations différentielles
Méthodes à un pas
Exemple 2
1
Dans le cas d’un pas constant hn = h = 50 , on a donc
1 n 1 1
yn+1 − = (1 − 150h) y0 − = (−2)n y0 − .
3 3 3
En particulier
50 1 15 1
y50 − y (1) = (−2) y0 − ≃ 10 y0 − !
3 3
Ceci montre que le pas est choisi trop grand. D’un autre côté, si on
le diminue, on tombera sur des problèmes d’arrondis !
La méthode d’Euler explicite n’est pas un algorithme numériquement
stable.
Bien qu’elle satisfasse la condition de stabilité théorique : le
coefficient K = e LT est trop grand car ici T = 1 et L = 150
Exemple 3
Exemple 3
yn = (1 − λh)n y0
|y (t)| ≤ |y0 | ∀ t ≥ 0,
λh < 2
Retour à l’exemple 3
Exemples
Euler explicite : yn+1 = yn + hn f (tn , yn ). Ici
Φ(t, y , h) = f (t, y )
Φ est indépendante de h.
Euler implicite : yn+1 = yn + hn f (tn+1 , yn+1 ). Ici
Φ(t, y , h) = f (t + h, Y )
Y = y + hf (t + h, Y )
Didier Schmitt IECL
Analyse Numérique - 2
Résolution numérique des équations différentielles
Méthodes à un pas
avec
εn = y (tn+1 ) − y (tn ) − hn Φ(tn , y (tn ), hn ).
Définition
On dit que la méthode est stable s’il existe une constante M
indépendante de h, telle que pour toutes suites (yn ), (zn ) et (εn ) vérifiant
yn+1 = yn + hn Φ(tn , yn , hn )
zn+1 = zn + hn Φ(tn , zn , hn ) + εn
on a " #
N−1
X
max ∥zn − yn ∥ ≤ M ∥y0 − z0 ∥ + ∥εn ∥ .
n∈J0,NK
n=0
Définition
On dit que la méthode est convergente si
max ∥y (tn ) − yn ∥ tend vers 0 lorsque h tend vers 0 et y h tend vers y 0 .
n∈J0,NK
Démonstration
Posons zn = y (tn ). On a alors
zn+1 = y (tn+1 )
= y (tn ) + hn Φ(tn , y (tn ), hn ) + εn
= zn + hn Φ(tn , zn , hn ) + εn
avec
εn = y (tn+1 ) − y (tn ) − hn Φ(tn , y (tn ), hn )
Comme la méthode est supposée stable on a
" N−1
# " N−1
#
X h 0
X
max ∥zn − yn ∥ ≤ M ∥y0 − z0 ∥ + ∥εn ∥ ≤ M ∥y − y ∥ + ∥εn ∥ .
n∈J0,NK
n=0 n=0
avec
εn = y (tn+1 ) − y (tn ) − hn Φ(tn , y (tn ), hn ).
Théorème
Si une méthode à un pas est stable et d’ordre p et si
f ∈ C p ([t0 , t0 + T ] × Rn ), alors nous avons
∥y (tn ) − yn ∥ ≤ M ∥y h − y0 ∥ + Khp
∀n ∈ J0, NK.
Exemples :
Nous avons vu que la méthode d’Euler explicite est d’ordre 1.
Il en est de même pour la méthode d’Euler implicite.
Nous allons le montrer en considérant plus généralement la
θ-méthode.
Remarque
Plus l’ordre de la méthode sera grand, plus la méthode sera
performante.
La θ-méthode
La θ-méthode est définie par
yn+1 = yn + hn [θf (tn+1 , yn+1 ) + (1 − θ)f (tn , yn )] , ∀ n ∈ J0, N − 1K
y0 = y h
Remarques :
Il s’agit bien d’une méthode à un pas.
Pour θ = 0, on retrouve Euler explicite.
Pour θ = 1, on retrouve Euler implicite.
Pour θ ∈]0, 1], la méthode est implicite.
Stabilité de la θ-méthode
Soient (yn ), (zn ) et (εn ), les suites définies pour tout n ∈ J0, N − 1K par
yn+1 = yn + hn [θf (tn+1 , yn+1 ) + (1 − θ)f (tn , yn )]
d’où
∥zn+1 − yn+1 ∥ ≤ ∥zn − yn ∥ + hn θL∥zn+1 − yn+1 ∥ + hn (1 − θ)L∥zn − yn ∥ + ∥εn ∥
Stabilité de la θ-méthode
hn L 1
∥zn+1 − yn+1 ∥ ≤ 1+ ∥zn − yn ∥ + ∥εn ∥
1 − hn θL 1 − hn θL
d’où pour hn ≤ 1/(2θL)
∥zn+1 − yn+1 ∥ ≤ (1 + hn 2L) ∥zn − yn ∥ + 2∥εn ∥
donc (1 + x ≤ e x )
∥zn+1 − yn+1 ∥ ≤ e 2Lhn ∥zn − yn ∥ + 2∥εn ∥
d’où !
n−1
X
2LT
max ∥zn − yn ∥ ≤ 2e ∥z0 − y0 ∥ + ∥εi ∥ .
n∈J0,NK
i=0
Didier Schmitt IECL
Analyse Numérique - 2
Résolution numérique des équations différentielles
Méthodes à un pas
Consistance de la θ-méthode
Pour simplifier, nous supposerons que la dimension est 1.
Soit n ∈ J0, N − 1K
εn = y (tn+1 ) − y (tn ) − hn [θf (tn+1 , y (tn+1 )) + (1 − θ)f (tn , y (tn ))] .
Consistance de la θ-méthode
Soit
1 1 (3) θ
εn = hn2 − θ y ′′ (tn ) + hn3 y (dn ) − yn(3) (cn )
2 6 2
Par conséquent, en posant h = max(hn )
n
1
si θ ̸= 2 alors
N−1
X
∥εn ∥ ≤ Kh(tn+1 − tn ) et ∥εn ∥ ≤ KTh
n=0
N−1
X
∥εn ∥ ≤ Kh2 (tn+1 − tn ) et ∥εn ∥ ≤ KTh2
n=0
Alors
s
X
y (tn+1 ) ≃ y (tn ) + hn bj f (tn,j , y (tn,j ))
j=1
avec tn,j = tn + hn cj .
Remarque
Attention, j’utilise ici une formule de quadrature élémentaire pour
R1 R1
approcher l’intégrale 0 g (x)dx et non pas −1 g (x)dx, comme dans le
cours sur l’intégration numérique. Mais c’est le même principe, on prend
seulement l’intervalle [0, 1] comme intervalle de référence à la place de
l’intervalle [−1, 1].
Didier Schmitt IECL
Analyse Numérique - 2
Résolution numérique des équations différentielles
Méthodes à un pas
Problème
Comment évaluer f (tn,j , y (tn,j )) si on ne connait pas y (tn,j ) ?
s
X
yn,i = yn + hn ai,j f (tn,j , yn,j ) ∀ i ∈ J1, sK (⋆)
j=1
s
X
yn+1 = yn + hn bj f (tn,j , yn,j ) (⋆⋆)
j=1
tn,j = tn + hn cj
Supposons connue yn l’approximation de y (tn ). Les équations (⋆)
forment un système de s équations à s inconnues (pas
obligatoirement linéaires !).
On montre que pour h assez petit ce système admet une unique
solution.
Remarques :
Si la matrice (ai,j ) est strictement triangulaire inférieure, alors les
formules (⋆) définissent les valeurs de yn,j de façon explicite, sinon
de façon implicite.
Il s’agit bien d’une méthode à un pas. En effet ce schéma s’écrit
sous la forme
yn+1 = yn + hn Φ(tn , yn , hn )
où Φ(., ., .) est la fonction définie par les équations :
s
X
yi = y + h ai,j f (t + cj h, yj ) ∀ i ∈ J1, sK (⋆)
j=1
s
X
Φ(t, y , h) = bj f (t + cj , yj ) (⋆⋆)
j=1
Didier Schmitt IECL
Analyse Numérique - 2
Résolution numérique des équations différentielles
Méthodes à un pas
hn hn
y (tn + ) ≃ y (tn ) + f (tn , y (tn )).
2 2
Ceci nous donne
hn hn
yn+1 = yn + hn f tn + , yn + f (tn , yn ) .
2 2
yn,1 = yn + 0
yn+1 = yn + hn f (tn , yn,1 ) = yn + hn f (tn , yn )
Didier Schmitt IECL
Analyse Numérique - 2
Résolution numérique des équations différentielles
Méthodes à un pas
Méthodes de Runge-Kutta
Méthode de Runge - ordre 2
0 0 0
1 1
2 2 0
0 1
yn,1 = yn
hn hn
yn,2 = yn + f (tn , yn,1 ) = yn + f (tn , yn )
2 2
hn
yn+1 = yn + hn f (tn + , yn,2 )
2
hn hn
= yn + hn f (tn + , yn + f (tn , yn ))
2 2
Méthodes de Runge-Kutta
Méthode de Heun - ordre 3
0 0 0 0
1 1
3 3 0 0
2 2
3 0 3 0
1 3
4 0 4
Méthodes de Runge-Kutta
La fameuse méthode d’ordre 4 due à Kutta : RK4
0 0 0 0 0
1 1
2 2 0 0 0
1 1
2 0 2 0 0
1 0 0 1 0
1 2 2 1
6 6 6 6
Méthodes de Runge-Kutta
Remarque :
Pour la programmation des méthodes de Runge-Kutta, il est préférable
de les écrire sous la forme équivalente suivante en posant :
s
X
yn+1 = yn + hn bj kn,j (⋆⋆′ )
j=1
Méthodes de Runge-Kutta
Exemple pour RK4
0 0 0 0 0
1 1
2 2 0 0 0
1 1
2 0 2 0 0
1 0 0 1 0
1 2 2 1
6 6 6 6
hn
yn+1 = yn + [kn,1 + 2kn,2 + 2kn,3 + kn,4 ]
6
Méthodes de Runge-Kutta
On démontre sous des hypothèses de régularité sur f que les méthodes de
Runge-Kutta sont stables.
Étant stables et consistantes, elles sont convergentes.
Contrôle du pas
Dans la description des algorithmes précédents, nous avons supposé
le pas hn variable.
Dans la pratique, il est naturel de chercher à utiliser un pas constant
hn = h et on le fait souvent !
Cependant, il est difficile d’évaluer la taille optimale du pas h.
Il ne doit pas être trop petit sinon le coût de calcul est important et
les erreurs d’arrondis s’accumulent.
Il ne doit pas être trop grand pour que les calculs conservent une
précision suffisante.
Contrôle du pas
L’idée est de contrôler le pas à chaque étape dans le but :
L’erreur locale soit partout égale à une précision α préfixée.
Adapter le pas aux irrégularités éventuelles de la solution : sur des
intervalles où la solution varie peu, on pourra ”avancer à grands
pas” et quand les variations deviennent plus raides, diminue le pas.
La tolérance α étant fixée, il s’agit donc de choisir à chaque étape un pas
h tel que l’erreur locale
Problème
Comment contrôler l’erreur locale ?
Contrôle du pas
On suppose que yn = y (tn ). Dans ce cas, contrôler l’erreur locale
revient à contrôler l’erreur locale de consistance
Contrôle du pas
En effet, si la méthode est d’orde p ou plus exactement si l’erreur locale
de consistance est d’ordre p + 1, on a
εn (h) ≃ Cn hp+1
On a et aussi
p+1
h
ŷˆ (tn + h) = y (tn + h) − Cn + O(hp+2 )
2
Contrôle du pas
Donc
ŷ (t + h) − ŷˆ (t + h)
h n n
εn ≃ := Dn (h)
2 2p+1 − 1
Nous avons donc notre contrôle de l’erreur locale de consistance.