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

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 = ...

Plus en détail

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

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...

Plus en détail