Vous êtes sur la page 1sur 2

ENSEM 1A-ISN Analyse Numérique

Travaux pratiques d’Analyse Numérique


TP 8
Résolution numérique d’équations différentielles

L’objectif de ce TP est d’implémenter quelques méthodes de résolution numérique des équations différentielles,
ou plus précisément du problème de Cauchy
 0
y (t) = f (t, y(t)) t ∈ [t0 , tf in ]
(PC)
y(t0 ) = y 0

1 Méthode d’Euler explicite


1. Écrivez une fonction Matlab d’entête

function [Y,T] = Euler_exp(f,t0,y0,t_fin,dt)

qui résoud (PC) avec un pas de temps dt. Le vecteur T=[t0,t1...,tN] contiendra tous les temps intervenant
dans le calcul, et Y=[y0,y1,...,yN] les valeurs de la solution approchée en ces temps (la variable de temps
se lit donc de gauche à droite).
2. Testez votre code avec f (t, y) = −λy (pour une constante λ > 0), et montrez que certaines valeurs de dt
mènent à des instabilités numériques.
3. Testez votre code en dimension deux sur l’exemple
   
0 0 −1 y1
y = R 2 (y) =
π · .
1 0 y2

Comparez avec la solution théorique, donnée par


   0 
0 cos t − sin t y1
y(t) = Rt (y ) = ·
sin t cos t y20

et tracez la courbe d’erreur E = max |yn − y(tn )| en fonction de dt. Quel est l’ordre de la méthode d’Euler
n≤N
explicite?

2 Méthodes de Runge-Kutta
4. Écrivez une fonction Matlab d’entête

function [Y,T] = RK2(f,t0,y0,t_fin,dt)

correspondant à la méthode de Runge


0 0 0
1 1
2 2 0
0 1

5.

1
ENSEM 1A-ISN Analyse Numérique

6. Écrivez une fonction Matlab d’entête

function [Y,T] = RK4(f,t0,y0,t_fin,dt)

correspondant à la méthode de Runge-Kutta

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

7. Comparez les trois méthodes précédentes (Euler, Runge, RK4) en reprenant l’exemple de la question 3 et en
traçant sur un même graphique les erreurs en fonction du pas de temps. Qu’observe-t-on en termes d’ordre
de consistance? Quelle est la meilleure méthode?

3 Étude d’un système dynamique chaotique


On considère ici le système différentiel
 0
 x (t) = σ(y(t) − x(t))
y 0 (t) = ρx(t) − y(t) − x(t)z(t) , t ∈ [0, T ]
 0
z (t) = x(t)y(t) − βz(t)
avec
σ = 10, ρ = 28, β = 8/3, T = 100
et les données initiales
x(0) = 1, y(0) = 1, z(0) = 1.
8. En utilisant la méthode RK4 de la question 6, résolvez numériquement le système. Tracer la courbe représen-
tative de la solution obtenue à l’aide la fonction Matlab plot3. Normalement, vous devez visualiser le fameux
Attracteur de Lorentz !
9. Modifier les données initiales et visualiser le résultat. Pourquoi le système est-il dit chaotique?