Résolution numérique d`équations différentielles

MPSI2
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Table des mati`
eres
1 Sch´
ema d’Euler
1.1 Position du probl`eme et exemples . .
1.1.1 Radioactivit´e . . . . . . . . .
1.1.2 Croissance logistique . . . . .
1.1.3 Chute libre . . . . . . . . . .
1.2 Principe de la m´ethode d’Euler . . .
´
1.3 Ecriture
du programme Python . . .
1.4 Test du programme sur les exemples
1.4.1 Radioactivit´e . . . . . . . . .
1.4.2 Croissance logistique . . . . .
1.4.3 Chute libre . . . . . . . . . .
1.5 Deux exemples probl´ematiques . . .
1.6 Qualit´e d’un sch´ema num´erique . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1.6.1 Consistance . . . . . . . . . . . . .
1.6.2 Stabilit´e . . . . . . . . . . . . . . .
1
1.6.3 Convergence . . . . . . . . . . . .
1
1.6.4 Erreurs d’arrondi . . . . . . . . . .
2
2
2 Equations d’ordre 2 ou plus
2
2.1 Vectorisation du probl`eme . . . . . . . . .
4
2.2 Adaptation du programme . . . . . . . . .
5
2.3 Exemple de l’´equation du pendule simple
5
2.4 Syst`eme proies pr´edateurs . . . . . . . . .
6
7 3 Autres sch´
emas num´
eriques
7
3.1 M´ethode d’Euler implicite . . . . . . . . .
3.2 Sch´ema de Runge-Kutta d’ordre 4 : RK4 .
9
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
9
.
.
.
.
.
.
.
.
.
.
.
.
10
10
10
11
13
15
. . . 15
. . . 16
Hormis quelques cas d’´ecole simples, on ne sait pas d´eterminer d’expressions analytiques pour les solutions d’´equations
diff´erentielles.
• L’´etude du mouvement d’un pendule simple sans frottement nous am`ene `a l’´equation :
θ¨ + ω 2 sin(θ) = 0
• Les probl`emes de cin´
etique chimique conduisent `a des syst`emes diff´erentiels non lin´eaires d´ecrivant les ´evolutions des
diff´erents r´eactifs au cours du temps.
• Les ph´enom`enes que l’on observe en m´
ecanique des fluides sont en partie d´ecrits par les ´equations non lin´eaires aux
d´eriv´ees partielles de Navier-Stokes.
Le but de ce chapitre est de pr´esenter des m´ethodes qui permettent d’avoir des solutions approch´ees d’´equations
diff´erentielles.
1
Sch´
ema d’Euler
1.1
Position du probl`
eme et exemples
La mod´elisation d’un grand nombre de probl`emes ayant leur origine en g´eom´etrie, m´ecanique, physique, sciences de
l’ing´enieur, chimie, biologie, ´economie conduit `
a chercher les solutions de syst`emes de la forme :
0
y (t) = F (t, y(t))
(C) :
y(t0 ) = y0
La fonction y est celle que l’on cherche, elle est de classe C 1 sur un intervalle [a, b]. La condition y(t0 ) = y0 est appel´ee
condition initiale, on a t0 ∈ [a, b]. Un tel probl`eme est appel´e probl`
eme de Cauchy.
Le th´eor`eme de Cauchy-Lipschitz garantit l’existence et l’unicit´e d’une solution au probl`eme de Cauchy si l’on ajoute
des conditions sur la fonction F .
Afin d’appr´ehender la notation y 0 (t) = F (t, y(t)), voyons quelques exemples.
1.1.1
Radioactivit´
e
On observe que si N (t) d´esigne le nombre d’atomes radioactifs pr´esents dans un ´echantillon de mati`ere donn´e, le nombre
des d´esint´egrations d’atomes de ce type est proportionnel `a N (t) et `a la dur´ee de l’observation. C’est-`a-dire, avec λ une
constante r´eelle :
N (t1 ) − N (t0 ) = −λN (t0 )(t1 − t0 )
On passe `
a la limite quand t1 tend vers t0 apr`es avoir divis´e par t1 − t0 pour obtenir :
N 0 (t) = −λN (t)
Cette ´equation rentre dans le cadre de la forme annonc´ee avec F (t, N ) = −λN . On remarque d’ailleurs que la fonction F
ne d´epend pas de t, ce sera souvent le cas dans les exemples que nous allons prendre. On dit que l’´equation diff´erentielle est
autonome.
1
Chapitre 11
R´
esolution num´
erique d’´
equations diff´
erentielles
MPSI2
1.1.2
Informatique
Croissance logistique
En dynamique des populations, un mod`ele de croissance d´ecrit la fa¸con dont une population ´evolue dans le temps. Le
mod`
ele de croissance logistique prend en compte l’environnement et l’auto-r´egulation des populations dans l’expression
du taux de croissance, ce qui donne :
P (t) P (t)
P 0 (t) = r 1 −
K
• P (t) est le nombre d’individus en fonction du temps.
• r est le taux d’accroissement intrins`eque de la population.
• K est la capacit´e d’accueil du milieu.
On remarque que P 0 (t) < 0 lorsque P (t) > K et P 0 (t) > 0 lorsque P (t) < K. L`a encore, cela rentre dans le cadre
P
th´eorique pr´esent´e avec F (t, P ) = r 1 −
P.
K
1.1.3
Chute libre
Un objet en chute libre dans l’atmosph`ere a sa vitesse qui v´erifie l’´equation diff´erentielle :
(
α
v(t)2 − g
m
= v0
v 0 (t)
=
v(t0 )
Dans cette ´equation, on a tenu compte de la r´esistance de l’air que nous supposons proportionnelle au carr´e de la vitesse. Le
coefficient α est proportionnel `
a la densit´e de l’air ρ, `a la surface de la section du corps en chute S et `a Cx : le coefficient de
1
r´esistance a´erodynamique qui d´epend de la forme. Ce qui donne α = SCx ρ.
2
α
Ici, on a : F (t, v) = v 2 − g.
m
1.2
Principe de la m´
ethode d’Euler
On reprend le probl`eme de Cauchy :
(C) :
y 0 (t) = F (t, y(t))
y(t0 ) = y0
i) On ne connaˆıt pas la solution exacte, y, cependant on dispose de deux informations : y(t0 ) = y0 et y 0 (t0 ) = F (t0 , y(t0 )).
ii) On se donne un pas h (qui a vocation `
a ˆetre proche de 0) et on pose t1 = t0 + h. On esp`ere qu’une valeur approch´ee
de y(t1 ) va ˆetre :
y1 = y0 + hy 0 (t0 ) = y0 + hF (t0 , y(t0 ))
C’est-`
a-dire l’on utilise l’approximation :
y(t0 + h) − y(t0 )
≈ y 0 (t0 )
h
Graphiquement, cela revient `
a approcher la courbe repr´esentative de y par sa tangente en t0 , cette approximation sera
d’autant plus pertinente que le pas sera proche de 0.
iii) On poursuit le proc´ed´e en partant de y1 . On pose t2 = t1 + h et on donne une valeur approch´ee de y(t2 ) de la
mˆeme fa¸con :
y2 = y1 + hy 0 (t1 ) = y1 + hF (t1 , y1 )
Plus g´en´eralement, on se donne la subdivision de [t0 , t0 + T ] d´efinie par :
∀n ∈ J0, N K, tn = t0 + n
Le pas h vaut
T
N
T
. Pour tout n ∈ J0, N − 1K :
N

 y0
tn+1

yn+1
=
=
=
y(t0 )
tn + h
yn + hF (tn , yn )
2
Chapitre 11
MPSI2
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
La ligne bris´ee reliant les points {(tn , yn ), n ∈ J0, N K} donnera une solution approch´ee de notre ´equation diff´erentielle
avec condition initiale.
Remarque : Cette m´ethode revient `
a consid´erer que si h est petit :
y(tn + h) = y(tn ) + hy 0 (tn )
Exercice 1 : On s’int´eresse au probl`eme de Cauchy suivant dont on connaˆıt bien entendu la solution exacte :
0
y (t) = y(t)
y(0) = 1
On cherche `
a trouver une solution approch´ee sur l’intervalle [0, 1]. On subdivise l’intervalle [0, 1] avec un pas de h =
N ∈ N∗ .
´
1. Ecrire
la suite (yn ) donn´ee par la m´ethode d’Euler.
2. Exprimer yn en fonction de n et du pas h.
3. En examinant la valeur obtenue en t = 1 dire si l’approximation obtenue de la fonction semble satisfaisante ?
1
o`
u
N
Voici les graphiques obtenus avec N = 4 et N = 10 :
3
Chapitre 11
MPSI2
1.3
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
´
Ecriture
du programme Python
La fonction que l’on va ´ecrire prend en entr´ee 5 param`etres :
• La fonction F , qui d´epend des variables t et y, mˆeme si dans les exemples que l’on a vu la fonction F ne d´epend pas
de t.
• t0 est la borne inf´erieure de l’intervalle d’´etude.
• y0 est la valeur initiale, on a y(t0 ) = y0 .
• T est la longueur de notre intervalle d’´etude : [t0 , t0 + T ].
T
• N est le nombre de subdivisions de notre intervalle, ainsi le pas h vaut .
N
Remarques : i) Le fait de renvoyer X et Y nous permettra ensuite de faire rapidement un trac´e de la ligne polygonale
bris´ee obtenue.
ii) Il faudra d´efinir la fonction F qui correspond au probl`eme ´etudi´e au pr´ealable.
4
Chapitre 11
MPSI2
1.4
1.4.1
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Test du programme sur les exemples
Radioactivit´
e
On reprend l’´equation d´efinie dans la partie 1.1.1 avec λ = 0.5, c’est-`a-dire que l’on consid`ere :
0
N (t) = −0.5N (t)
N (0) = 1
De plus, on choisit T = 7, on travaillera donc sur l’intervalle [0, 7]. Voici les trac´es obtenus pour N = 5, N = 10, N = 20 et
N = 100. On y a fait ´egalement figurer la solution exacte : N (t) = e−0.5t que l’on connaˆıt dans ce cas-l`a.
Pour N = 100 les courbes semblent confondues. Les r´esultats obtenus sont instantan´es. Pour obtenir ces courbes, on a
d´efini la fonction F ainsi :
Puis, on fait appel `
a notre fonction Euler :
5
Chapitre 11
MPSI2
1.4.2
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Croissance logistique
On reprend l’´equation logistique :
P (t) P 0 (t) = r 1 −
P (t)
K
avec r = 0.1 et K = 1000.
Cette fois-ci, on fait varier la condition initiale P (0) (qui correspond `a la population `a l’instant t = 0) de 200 `
a 2000. On
choisit l’intervalle [0, 12] et N = 1000. Voici le script utilis´e et les graphiques obtenus :
On constate que si la population initiale est au-dessus de la capacit´e d’accueil, la population d´ecroˆıt et semble tendre
vers K = 1000. Inversement, si la population initiale est en-dessous de la capacit´e d’accueil, la population semble tendre vers
1000 en croissant.
6
Chapitre 11
MPSI2
1.4.3
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Chute libre
On reprend l’´equation diff´erentielle :
(
v 0 (t)
=
v(t0 )
=
α
v(t)2 − g
m
v0
Choisissons α = 0.29, m = 100, g = 9.81, v0 = 0, T = 60 et N = 1000, voici la courbe obtenue :
r
gm
). Notre graphique, nous indique que cette vitesse
α
limite vaut environ 58m.s−1 , c’est-`
a-dire 216km.h−1 , cela correspond `a ce que l’on peut mesurer en pratique.
Comme attendu, il y a une vitesse limite (elle vaut th´eoriquement
1.5
Deux exemples probl´
ematiques
On consid`ere le probl`eme de Cauchy :
(
y(1) = 1
y 0 (t) = 3
y(t)
5
− 3
t
t
1
On peut v´erifier que l’unique solution est y : t 7→ 2 . Pourtant, on constate que la solution approch´ee obtenue `
a l’aide de
t
la m´ethode d’Euler s’´ecarte assez rapidement de la solution exacte.
7
Chapitre 11
MPSI2
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
1
et la condition y(1) = 1 impose λ = 0. D`es que l’on s’´ecarte de la
t2
solution, on suit les tangentes des solutions qui comportent un terme en λt3 . Ce n’est pas la m´ethode d’Euler qui est en
cause, c’est juste que le probl`eme est mal pos´e.
La forme g´en´erale des solutions est t 7→ λt3 +
Exercice 2 : On consid`ere le probl`eme de Cauchy :
y(1) = 1
y 0 (t) = 100(sin(t) − y(t))
On applique le sch´ema num´erique d’Euler et l’on suppose que l’on a fait une erreur εn sur yn .
1. Quelle sera l’erreur sur yn+1 ?
2. Et sur les valeurs suivantes ?
3. Expliquer le graphique suivant qui est obtenu avec h = 0.02.
On dit que le probl`eme est mal conditionn´e.
8
Chapitre 11
MPSI2
1.6
1.6.1
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Qualit´
e d’un sch´
ema num´
erique
Consistance
L’erreur de consistance donne l’ordre de grandeur de l’erreur effectu´ee `a chaque pas. Dans le cas de la m´ethode
d’Euler, l’erreur de consistance mesure l’erreur qu’entraˆıne le fait d’approcher le nombre d´eriv´e par un taux d’accroissement.
La somme des erreurs de consistance `
a chaque pas donnera l’ordre de grandeur de l’erreur globale. On peut d´emontrer en
faisant certaines hypoth`eses sur la fonction F que si le pas h tend vers 0, l’erreur globale tend vers 0. D’un point de vue
th´eorique, cela signifie que plus le pas est petit, meilleure sera l’approximation.
Un sch´ema num´erique est dit consistant si la somme des erreurs de consistance tend vers 0 quand le pas tend vers 0.
C’est le cas de la m´ethode d’Euler.
1.6.2
Stabilit´
e
La stabilit´
e contrˆ
ole la diff´erence entre deux solutions approch´ees correspondant `a des conditions initiales voisines : un
sch´ema est dit stable si un petit ´ecart entre les conditions initiales et de petites erreurs d’arrondi dans le calcul des (yn )
provoquent une erreur finale control´ee lin´eairement par la perturbation initiale. La m´ethode d’Euler est une m´ethode stable.
1.6.3
Convergence
Un sch´ema num´erique est dit convergent lorsque l’erreur globale qui est le maximum des ´ecarts entre la solution exacte
et la solution approch´ee tend vers 0. Pour que le sch´ema soit convergent, il suffit que la m´ethode soit consistante et stable.
1.6.4
Erreurs d’arrondi
Pour la mise en application du sch´ema, il faut aussi prendre en compte les erreurs d’arrondi. Pour minimiser l’erreur
globale, on pourrait ˆetre tent´e d’appliquer la m´ethode d’Euler avec un pas tr`es petit, par exemple de l’ordre de 10−16 . Mais
en faisant ceci, le temps de calcul deviendrait irr´ealiste et les erreurs d’arrondi feraient diverger la solution approch´ee tr`es
rapidement puisque pour les flottants de l’ordre de 10−16 , les calculs ne sont plus du tout exacts.
En pratique, il faut prendre le pas h assez petit pour que la solution approch´ee soit proche de la solution exacte mais pas
trop petit pour ´eviter des erreurs d’arrondi et avoir un temps de calcul raisonnable.
9
Chapitre 11
MPSI2
2
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Equations d’ordre 2 ou plus
2.1
Vectorisation du probl`
eme
L’´equation d’un pendule simple sans frottement est de la forme :
θ00 (t) + ω 2 sin(θ(t)) = 0
avec ω =
g
l
o`
u g est l’acc´el´eration de la pesanteur et l la longueur de la tige. Une telle ´equation ne peut pas s’´ecrire directement sous la
forme y 0 (t) = F (t, y(t)) puisqu’une d´eriv´ee seconde intervient dans l’expression.
L’id´ee est alors de consid´erer le vecteur Y = (θ, θ0 ), on a Y 0 = (θ0 , θ00 ). Ce qui donne la relation Y 0 = G(Y ) avec
G : (α, β) 7→ (β, −ω 2 sin(α))
Par ce proc´ed´e de vectorisation, on ram`ene les ´equations diff´erentielles d’ordre p `a des ´equations d’ordre 1 mais avec
des fonctions `
a valeurs dans Rp .
Exercice 3 : Lorsque l’´equation diff´erentielle est lin´eaire, il est ´egalement possible d’utiliser une ´ecriture matricielle. Par
exemple, on consid`ere l’´equation diff´erentielle :
y (3) + ty 00 (t) − t2 y 0 (t) + 2y(t) = cos(t)
´
l’´equation diff´erentielle sous la forme Y 0 = AY + B o`
u A est une matrice 3 × 3.
On pose le vecteur Y = (y, y 0 , y 00 ). Ecrire
2.2
Adaptation du programme
La m´ethode d’Euler s’adapte pour des fonctions a` valeurs vectorielles. Voici cette adaptation en dimension 2, c’est-`
a-dire
que la fonction F est a` valeurs dans R2 et les valeurs approch´ees de la solution yn poss`edent deux coordonn´ees donc vont
ˆetre rang´ees dans une matrice `
a deux lignes. On utilise les matrices du module numpy (type array).
Prenons l’exemple de l’´equation diff´erentielle :
 00
 y (t) + y(t) = 0
y(0) = 0
 0
y (0) = 1
Si l’on pose Y = (y, y 0 ), ce syst`eme peut se r´e´ecrire :
0
Y (t) = F (t, Y (t))
Y (0) = (0, 1)
o`
u F (t, (α, β)) = (β, −α)
On commence par cr´eer la fonction F :
Puis, on fait appel `
a la fonction Euler2d :
Ce qui nous int´eresse est la premi`ere ligne de la matrice Y ainsi renvoy´ee puisqu’elle contient des valeurs approch´ees de
la fonction y. On peut faire le trac´e :
10
Chapitre 11
MPSI2
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Comme attendu, on trouve une approximation de la fonction sinus qui est bien l’unique solution du probl`eme de Cauchy
pr´ec´edent.
2.3
Exemple de l’´
equation du pendule simple
On reprend l’´equation du pendule simple sans frottement
θ00 (t) + ω 2 sin(θ(t)) = 0
avec ω =
g
l
On a vu que le syst`eme va s’´ecrire sous la forme Y 0 = G(Y ) avec
G : (α, β) 7→ (β, −ω 2 sin(α))
Prenons comme param`etres g = 9.81 m.s−2 , l = 1 m, on d´efinit la fonction G :
hπ i
On utilise ensuite notre fonction Euler2d avec comme param`etre initial y0 =
, 0 , ce qui correspond `a un angle initial
4
π
de et une vitesse initiale nulle. La fonction nous renvoie le vecteur X qui correspond `a la discr´etisation des temps ainsi que
4
le vecteur Y qui comporte une approximation de θ et θ0 . Il est int´eressant de tracer le graphique dans l’espace des phases,
c’est-`
a-dire θ en abscisses et θ0 en ordonn´ees.
11
Chapitre 11
MPSI2
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Le mauvais raccord, qui ne devrait pas avoir lieu puisqu’il n’y a pas de frottement, est dˆ
u `a l’approximation dans la
m´ethode d’Euler. Si l’on augmente le nombre d’it´erations, c’est-`a-dire si l’on diminue le pas de la m´ethode, cette imperfection
disparaˆıt :
Le graphique obtenu est conforme `
a l’intuition, quand l’angle est maximal ou minimal, la vitesse s’annule.
12
Chapitre 11
MPSI2
2.4
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Syst`
eme proies pr´
edateurs
Nous venons de voir qu’il est possible de ramener une ´equation diff´erentielle d’ordre sup´erieur `a 1 `a une ´equation d’ordre
1 vectorielle et que l’adaptation de la m´ethode d’Euler permet d’obtenir ´egalement une solution approch´ee. Il est possible
de se servir de notre fonction Euler2d afin de r´esoudre un syst`eme d’´equations diff´erentielles, comme le montre l’exemple
suivant, tr`es classique.
Lotka et Volterra ont propos´e au d´ebut du 20i`eme si`ecle un mod`ele simple pour d´ecrire les relations entre proies et
pr´edateurs. Consid´erons deux populations animales de proies (effectif y1 (t)) et de pr´edateurs (effectif y2 (t)). On choisit la
mod´elisation suivante :
• en l’absence de pr´edateurs, l’´evolution des proies est r´egie par l’´equation
y10 (t) = ry1 (t)
o`
u r est le taux d’accroissement intris`eque des proies.
• en pr´esence de pr´edateurs, la population des proies subit un pr´el`evement proportionnel au produit des deux populations :
y10 (t) = ry1 (t) − py1 (t)y2 (t)
• en l’absence de proies, la population des pr´edateurs p´ericlite selon l’´equation :
y20 (t) = −dy2 (t)
• en pr´esence de proies, on ajoute un terme d’accroissement proportionnel au produit des deux populations :
y20 (t) = −dy2 (t) + qy1 (t)y2 (t)
Finalement, lorsque les deux populations sont pr´esentes sur un mˆeme territoire, leur ´evolution conjointe est donc r´egie
par le syst`eme :
 0
y (t) = ry1 (t) − py1 (t)y2 (t)


 10
y2 (t) = −dy2 (t) + qy1 (t)y2 (t)
y1 (t0 ) = n1



y2 (t0 ) = n2
Comme dans les exemples pr´ec´edents, on vectorise la situation en posant Y (t) = (y1 (t), y2 (t)) et Y 0 (t) = (y10 (t), y20 (t)).
Le syst`eme pr´ec´edent se r´esume sous la forme suivante :
0
Y (t) = F (t, Y (t))
Y (t0 ) = (n1 , n2 )
avec F (t, y1 , y2 ) = (ry1 − py1 y2 , −dy2 + qy1 y2 )
Afin d’illustrer la situation, on choisit les param`etres r = 2.5, p = 0.05, d = 0.8 et q = 0.05. On peut d´efinir la fonction
F :
Voici les r´esultats obtenus avec n1 = 100, n2 = 100 et T = 30 :
13
Chapitre 11
MPSI2
R´
esolution num´
erique d’´
equations diff´
erentielles
Evolution des proies en fonction du temps :
Informatique
Evolution des pr´edateurs en fonction du temps :
Si on les repr´esente sur un mˆeme graphique, on obtient :
Ce mod`ele peut ˆetre v´erifi´e par des observations, comme le montrent ces mesures effectu´ees au Canada entre 1845 et
1955. On constate que les courbes sont globalement p´eriodiques, l’une ´etant retard´ee par rapport `a l’autre.
14
Chapitre 11
MPSI2
3
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Autres sch´
emas num´
eriques
On reprend la forme g´en´erale de notre probl`eme de Cauchy :
0
y (t) = F (t, y(t))
(C) :
y(t0 ) = y0
On rappelle que la m´ethode d’Euler consiste `
a choisir un pas h et `a construire deux suites (tn )0≤n≤N et (yn )0≤n≤N de la
fa¸con suivante :

= y(t0 )
 y0
tn+1 = tn + h

yn+1 = yn + hF (tn , yn )
3.1
M´
ethode d’Euler implicite
On garde les mˆemes notations mais on modifie l´eg`erement le sch´ema num´erique :

= y(t0 )
 y0
tn+1 = tn + h

yn+1 = yn + hF (tn+1 , yn+1 )
La derni`ere ligne est une ´equation en yn+1 , d’o`
u le nom de sch´
ema d’Euler implicite. On peut imaginer la r´esoudre
explicitement ou appliquer par exemple la m´ethode de Newton pour trouver yn+1 .
Sous certaines hypoth`eses le sch´ema d’Euler implicite est plus stable, c’est-`a-dire que les erreurs num´eriques se propagent
moins vite que le sch´ema d’Euler classique (dit sch´ema d’Euler explicite).
Cette m´ethode se g´en´eralise ´egalement aux dimensions sup´erieures mais elle peut n´ecessiter par exemple d’inverser une
matrice si l’´equation est lin´eaire.
15
Chapitre 11
MPSI2
3.2
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Sch´
ema de Runge-Kutta d’ordre 4 : RK4
Karl Runge
Martin Wilhem Kutta
La m´ethode de Runge-Kutta d’ordre 4 est celle qui pr´esente le meilleur rapport pr´ecision/complexit´e, elle est tr`es utilis´ee
en pratique. Avec les notations usuelles, on a :

k1 = hF (tn , yn )









k1 h


y
=
y(t
)
0


 k2 = hF tn + 2 , yn + 2
 0
tn+1 = tn + h
u
o`



 yn+1 = yn + 1 k1 + 2k2 + 2k3 + k4
k2 h


,
y
+
k
=
hF
t
+

n
3
n
6

2
2





 k = hF (t + h, y + k )
4
n
n
3
Les coefficients qui apparaissent dans ces formules sont judicieusement ajust´es pour obtenir une m´ethode d’ordre 4, c’esta`-dire que l’erreur de consistance va ˆetre major´ee par une quantit´e de l’ordre de grandeur de h4 . En bref, quand le pas tend
vers 0, la solution approch´ee converge rapidement vers la solution exacte. C’est `a comparer avec les m´ethodes d’Euler qui
sont d’ordre 1.
On reprend le probl`eme de Cauchy dont on sait que la fonction exponentielle est solution :
0
y (t) = y(t)
y(0) = 1
Voici les solutions approch´ees obtenues par la m´ethode d’Euler et la m´ethode RK4 pour diff´erentes valeurs de N .
16
Chapitre 11
MPSI2
R´
esolution num´
erique d’´
equations diff´
erentielles
Informatique
Cette m´ethode se g´en´eralise ´egalement pour des ´equations diff´erentielles d’ordre sup´erieur et pour des syst`emes d’´equations
diff´erentielles.
17
Chapitre 11