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

Transcription

Résolution numérique d`équations différentielles - Jean
S, Analyse numérique
2013
Résolution numérique
d'équations différentielles
Ce travail est à faire à deux et est à rendre pour le 18 décembre. Le document
à rendre est un rapport sous forme manuscrite ou en format pdf. Les programmes
utilisés ne sont pas demandés. Il est par contre conseillé de présenter les graphiques
Scilab obtenus.
Nous allons étudier dans ce problème des méthodes permettant de donner des
solutions numériques à des équations diérentielles de la forme
y 0 (x) = f (x, y(x)),
où f est une fonction de deux variables raisonnablement régulière. Les équations
y 0 = y , y 0 = xy 2 ou y 0 = 3y − ex sont des exemples d'équations de cette forme.
Pour que le problème soit complet, il faut ajouter une condition initiale de la
forme y(0) = a0 . Résoudre numériquement le problème consiste à trouver pour un
nombre ni d'abscisses x les valeurs approximatives y(x) de la solution y .
Nous tracerons cette solution sur un intervalle [0, T ]. Pour cela, nous découperons cet intervalle en intervalles réguliers et déterminerons les valeurs numériques
de la solution y aux points de la forme k Tn pour k = 0, . . . , n.
Le but de ce devoir est de décrire la qualité des méthodes proposées puis d'utiliser
ces méthodes pour décrire un problème de théorie du chaos.
1
1. Méthode d'Euler
On note y la solution de notre problème. Pour un entier n donné, on considère
les points de l'intervalle [0, T ] de la forme xk = k Tn . La méthode d'Euler consiste à
déterminer les valeurs approximatives yk ≈ y(xk ) de manière récursive en posant
y0 = y(0) = a0
et pour k = 1, . . . , n
yk = yk−1 + (xk − xk−1 )f (xk−1 , yk−1 ).
1. Étude théorique.
Nous allons étudier la convergence de la méthode proposée. Nous allons pour
cela comparer les valeurs yk obtenues avec les vraies valeurs de la solution y
aux points xk .
Nous admettrons la formule de Taylor : on note M le maximum de |y 00 | sur
l'intervalle [0, T ]. Soient a et b dans [0, T ]. Alors
y(b) = y(a) + (b − a)y 0 (a) + R,
avec |R| ≤ M2 (b − a)2 .
(a) Appliquer la formule de Taylor aux points a = x0 = 0 et b = x1 .
(b) Déterminer y1 . En déduire |y(x1 ) − y1 | ≤
MT 2
2n2
.
(c) Recommencer avec les points x1 et x2 et montrer que
2
|y(x2 ) − y2 | ≤ |y(x1 ) − y1 | + M2nT2 .
(d) Procéder récursivement et déduire que |y(xn ) − yn | ≤
MT 2
2n
.
(e) Qu'en déduit-on pour la convergence de la méthode et pour sa vitesse de
convergence ?
2. Étude expérimentale.
(a) Se donner un programme f (x, y) permettant de dénir une fonction de
deux variables que l'on choisira.
(b) Écrire un programme Euler(a0 , T, n) qui renvoie le vecteur des valeurs
approximatives yk de la solution du problème.
(c) Vérier votre programme en résolvant des équations diérentielles dont
on connaît les solutions (on choisira soi-même les valeurs de a0 , T et n) :
1
, y 0 = −y 2 , y 0 = cos(x)y , etc.
y 0 = y , y 0 = x+0,1
(d) Comparer graphiquement des solutions numériques avec les solutions
théoriques. L'approximation est-elle bonne ? Décrire l'erreur commise.
(e) On xe T . Pour n donné, la qualité de l'approximation est mesurée par
en = max |y(xk ) − yk | .
k=0,1,...,n
Tracer en en fonction de n. La méthode converge-t-elle ? Si oui, déterminer
sa vitesse de convergence.
2
2. Méthode de Runge-Kutta 4
Nous proposons une deuxième méthode. Il s'agit d'un ranement de la méthode
d'Euler utilisant des points milieux. Elle est dénie récursivement par y(0) = a0 et
pour i ≥ 1, on pose h = Tn et on dénit
k1
k2
k3
k4
yi
=
=
=
=
=
f (xi−1 , yi−1 ),
f (xi−1 + h2 , yi−1 + h2 k1 ),
f (xi−1 + h2 , yi−1 + h2 k2 ),
f (xi−1 + h, yi−1 + hk3 ),
yi−1 + h6 (k1 + 2k2 + 2k3 + k4 ).
1. Écrire un programme RK4(a0 , T, n) qui détermine la solution numérique et la
trace.
2. Le tester sur les exemples vus plus haut.
3. Cette méthode converge-t-elle ? Si oui, à quelle vitesse ?
4. Comparer les deux méthodes. Quel est l'avantage de la méthode d'Euler ?
3. Équations de Lorentz
Les équations de Lorentz sont les équations dénissant le système diérentiel
ci-dessous. Elles modélisent de façon très simpliste les évolutions météorologiques.
 0
 x = 10(y − x)
y 0 = −xz + 28x − y
 0
z = xy − 38 z
On ne sait pas résoudre explicitement ces équations, mais on peut le faire numériquement avec la méthode d'Euler et ainsi étudier les propriétés de leurs solutions.
Un programme est disponible à l'adresse
http ://jeanromain.heu.free.fr/Divers.html.
Il permet de tracer dans l'espace la courbe paramétrée (x(t), y(t), z(t)) dénie
par les solutions x, y et z pour t ∈ [0, T ].
1. Exécuter le programme pour x0 = 5, y0 = −8, z0 = 6, T = 50 et n = 20000.
La gure obtenue est appelée attracteur de Lorentz.
2. Recommencer avec z0 = 6.01. Que peut-on dire de la courbe obtenue ?
3. Comparer numériquement les deux solutions obtenues. On pourra entre autres
tracer |x1 −x2 | où x1 et x2 sont les solutions x obtenues pour les deux conditions
initiales diérentes.
Une légère modication des conditions initiales a-t-elle une inuence importante sur la solution ?
4. Recommencer avec z0 = 6.0001. La conclusion est-elle la même ?
5. Conclure. Que peut-on dire des systèmes météorologiques ? Pourquoi est-il
dicile de faire des prédictions à long terme ? Est-il néanmoins possible de
décrire quelque chose sur le court terme et sur le long terme ?
3

Documents pareils

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

Résolution numérique d`équations différentielles - Jean f (xi−1 + h, yi−1 + hk3 ), yi−1 + h6 (k1 + 2k2 + 2k3 + k4 ).

Plus en détail