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
f (xi−1 + h, yi−1 + hk3 ),
yi−1 + h6 (k1 + 2k2 + 2k3 + k4 ).