Préparation à l’Agrégation de Mathématiques
Année 2007-2008
TP Scilab : Equations différentielles ordinaires
Rappel : pour l’équation différentielle y 0 (t) = f (t, y(t)), les différentes méthodes s’écrivent :
Méthode d’Euler explicite yn+1 = yn + hf (tn , yn ).
Méthode d’Euler implicite yn+1 = yn + hf (tn+1 , yn+1 ).
h
Méthode de Crank-Nicolson yn+1 = yn + (f (tn , yn ) + f (tn+1 , yn+1 )).
2
h h
Méthode du point milieu yn+1 = yn + hf (tn + , yn + f (tn , yn )).
2 2
Méthode de Heun pn,1 = f (tn , yn ) , pn,2 = f (tn + h, yn + hpn,1 ) ,
h
yn+1 = yn + (pn,1 + pn,2 ).
2
h h
Méthode de Runge-Kutta 4 pn,1 = f (tn , yn ) , pn,2 = f tn + , yn + pn,1 ,
2 2
h h
pn,3 = f tn + , yn + pn,2 , pn,4 = f (tn + h, yn + hpn,3 ) ,
2 2
h
yn+1 = yn + (pn,1 + 2pn,2 + 2pn,3 + pn,4 ).
6
1. Ordre des méthodes classiques
1.1. Programmer les méthodes d’Euler explicite, d’Euler implicite, du point milieu et de Runge-
Kutta 4 pour l’équation différentielle y 0 (t) = −y(t) jusqu’au temps T = 1 avec comme condition
initiale y(0) = 1.
1.2. Faire varier le pas de temps h et tracer l’erreur entre solution exacte et solution approchée en
fonction de h. En déduire graphiquement l’ordre des quatre méthodes étudiées.
2. Problèmes raides et méthodes implicites
( 0
y = −150y + 30, t ∈ [0, 1], 1
2.1. On considère l’équation 1 dont la solution exacte est y(t) = .
y(0) = , 5
5
1 1
Avec une donnée initiale y(0) = + ε, la solution exacte devient y(t) = + εe−150t .
5 5
1
Tester ce problème avec la méthode d’Euler explicite et les paramètres h = , ε = 10−10 et T = 1.
50
Que se passe-t-il pour la méthode d’Euler implicite et les mêmes paramètres ? Que se passe-t-il pour
1
la méthode d’Euler explicite et h = ?
100
x0 = −k1 x + k3 yz
2.2. On considère le système y 0 = k1 x − k3 yz − k2 y 2 avec k1 = 0.04, k2 = 3.107 , k3 = 104
0
z = k2 y 2
x(0) = 1, y(0) = 0 et z(0) = 0. On peut montrer que x, y et z sont des fonctions positives, que x
décroı̂t vers 0, que z croı̂t vers 1 et que y croı̂t puis décroı̂t vers 0.
Le tester jusqu’à T = 0.3 avec la méthode d’Euler explicite et h = 10−3 , h = 10−4 .
3. Méthodes symplectiques et systèmes hamiltoniens
0
x = −y, t ∈ [0, 4π],
3.1. On considère le système avec x(0) = 1 et y(0) = 0. La solution exacte
y 0 = x,
est x(t) = cos t, y(t) = sin t et la quantité H(x, y) = x2 + y 2 appelée hamiltonien du système est
conservée au cours du temps.
Tester les différentes méthodes avec h = 0.1 pour ce système.
4. Références
Demailly, Analyse numérique et équations différentielles, PUG.
Hairer - Wanner, Solving ordinary differential equations, Springer-Verlag.
Vial, Cinétique de l’oxydation du sulfite de cuivre, textes pour l’oral de modélisation,
http ://[Link]/math/people/[Link]/[Link].