correction
Transcription
correction
Université de Bordeaux Modélisation et Calcul scientifique L2 IngéMaths / 2016 TP - Méthodes numériques - Corrigé 1. Ordre de la méthode d’Euler point milieu On utilisera dans cet exercice l’exemple modèle précédent y 0 = t − ty avec la condition t2 initiale y(0) = 2, dont la solution exacte est donnée par y(t) = 1 + e− 2 . On rappelle que la méthode d’Euler point milieu consiste à calculer la suite (yn ) d’approximations de la fonction y de la façon suivante : 1 h y n+ 2 = y n + f (tn , y n ) 2 ! 1 h y n+1 = y n + hf tn + , y n+ 2 2 • Écrire une fonction [sol, tps] = Eulerpointmilieu où sol sera la liste des valeurs yn calculées avec la méthode d’Euler point milieu, et tps la liste des temps considérés. • Déterminer numériquement l’ordre de la méthode d’Euler point milieu. On exécute le script suivant (dans lequel on réutilise les fichiers ”f.sci” et ”yex.sci” écrits dans le cadre de la méthode d’Euler explicite) : et on obtient la courbe d’erreur suivante : ce qui nous dit numériquement que la méthode d’Euler point milieu est d’ordre 2. 2. Méthode de Newton La méthode de Newton permet d’approcher la solution d’une équation F (x) = 0, où F : Rd 7→ Rd est différentiable. Partant d’une approximation initiale x0 ∈ Rd , la suite (xk ) est construite par récurrence h i−1 xk+1 = xk − F 0 (xk ) F (xk ). • Programmer une fonction scilab avec l’entête suivant, f unction x = N ewton(F, DF, x0, T ol, M axIter) qui renvoie une approximation de la solution x. • Tester cette fonction sur l’exemple monodimensionnel F (x) = ex − e. On écrit d’abord deux scripts pour définir la fonction F ainsi que sa dérivée. Puis on exécute la fonction Newton directement dans la console : 3. Méthode d’Euler implicite A l’aide de la fonction précédente, programmer une fonction scilab qui met en oeuvre la méthode d’Euler implicite, dont l’itération s’écrit yn+1 = yn + hf (tn+1 , yn+1 ). • La fonction F qui définit le système à résoudre à chaque itération dépend de yn et de h. Écrire une variante de la fonction N ewton précédente pour prendre en compte ces deux arguments supplémentaires. • Comparer la méthode d’Euler explicite et la méthode d’Euler implicite sur le problème raide y 0 (t) = −500(y(t) − cos(t)). On commence par définir la fonction f (t, y), sa dérivée, ainsi la fonction F et sa dérivée intervenant dans la méthode de Newton : Pour comparer les deux méthodes, on exécute le script suivant : ce qui nous donne le graphe suivant : 4. Méthode de Runge Kutta 4 Dans cet exercice, on cherche à résoudre numériquement le système différentiel associé à l’équation différentielle d’ordre 2 décrivant le mouvement d’un pendule pensant : x0 (t) = y(t) g y 0 (t) = − sin(x(t)) l On note X = (x, y). On rappelle que la méthode de Runge Kutta d’ordre 4 consiste à calculer la suite (Xn ) d’approximations de la fonction X de la façon suivante : k1 = hf (tn , X n ) ! h k1 k2 = hf tn + , Xn + 2 2 ! k2 h k3 = hf tn + , Xn + 2 2 k4 = hf (tn + h, X n + k3 ) k1 k2 k3 k4 X n+1 = X n + + + + 6 3 3 6 • Écrire une fonction [sol, tps] = RK4 où sol sera la liste des valeurs Xn calculées avec la méthode de Runge Kutta 4, et tps la liste des temps considérés. • Appliquer la méthode d’Euler explicite et la méthode de Runge Kutta 4 à l’équation du pendule pesant. Tracer dans les deux cas l’angle y(t) obtenu en fonction du temps, et le portrait de phase (x(t) en fonction de y(t)). On commence par définir la fonction ”pendule.sci” : Puis on exécute le script suivant : ce qui nous donne les graphes suivants :
Documents pareils
Résolution numérique d`équations différentielles - Jean
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 ].
(a) Exécuter le programme pour x0 = 5, y0 = −8, z0 = 6, T = 50 et
n = ...
Résolution numérique d`équations différentielles - Jean
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 comple...