Vous êtes sur la page 1sur 7

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’ap-
proximations de la fonction y de la façon suivante :
1 h
y n+ 2 = y n + f (tn , y n )
2 !
h 1
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 pro-


blè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
!
h k2
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’équa-


tion 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 :