0% ont trouvé ce document utile (0 vote)
668 vues2 pages

TP: Résolution Numérique d'Équations

Ce document décrit différentes méthodes numériques pour résoudre des équations différentielles, notamment les méthodes d'Euler explicite, de Runge-Kutta d'ordre 2 et 4. Il présente des exemples et demande d'implémenter et de comparer ces méthodes.

Transféré par

Wiam Ayrir
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)
668 vues2 pages

TP: Résolution Numérique d'Équations

Ce document décrit différentes méthodes numériques pour résoudre des équations différentielles, notamment les méthodes d'Euler explicite, de Runge-Kutta d'ordre 2 et 4. Il présente des exemples et demande d'implémenter et de comparer ces méthodes.

Transféré par

Wiam Ayrir
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

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?

Vous aimerez peut-être aussi