sujet

publicité
Sup’Galilée
MACS1
Lundi 21 novembre 2016
Initiation au calcul scientifique-TP2
Résolution d’équations non linéaires
Dans ce TP, nous nous intéressons à la résolution numérique des équations non linéaires de type f (x) = 0 ou g(x) = x, où
f et g sont des fonctions non linéaires. Pour résoudre ce type de problèmes, nous utiliserons trois méthodes :
- La méthode de dichotomie (résolution d’équations du type f (x) = 0).
- La méthode du point fixe (résolution d’équations du type g(x) = x).
- La méthode de Newton (résolution d’équations du type f (x) = 0).
Toutes ces méthodes sont des méthodes itératives : à partir d’une donnée x0 , on construit x1 puis x2 , puis, pas à pas, les
différents termes de la suite (xn )n∈N .
Remarque (Critère d’arrêt des méthodes itératives). Il serait naturel d’arrêter la construction des termes xn quand l’erreur
en = |xn − x| (où x est la solution exacte) est suffisamment petite. Cependant,ce critère n’est pas utilisable en pratique car on
ne connait pas en général la solution exacte. En pratique, on arrête en fait la construction de termes de la suite quand le résidu
rn = |f (xn )| (pour la méthode de Dichotomie ou de Newton) ou rn = |g(xn ) − xn | (pour la méthode du point fixe) est suffisamment petit (c.a.d plus petit qu’une tolérance fixée par l’utilisateur).
Par ailleurs, il est aussi très important de pouvoir arrêter l’algorithme quand l’algorithme ne converge pas (afin d’éviter les
boucles infinies). C’est pourquoi on introduit un nombre d’itérations maximal nmax au delà duquel on considère que l’algorithme
n’a pas convergé et qu’il n est donc pas utile de construire les points xn pour n > nmax .
Exercice 1 : algorithmes
Avant de commencer cet exercice, vous pouvez télécharger les codes associés à ce TP sur la page
http ://www.math.univ-paris13.fr/∼delourme/TeachingProjetsNumeriquesMACS1_2016_2017.html
Le fichier Exercice1.m fourni vous propose un exemple de script pour tester vos fonctions.
1. Méthode de dichotomie : Implémenter la méthode de Dichotomie.m (vous pouvez utiliser et compléter le code Dichotomie.m).
Tester votre programme en utilisant par exemple la fonction f (x) =7→ x2 − 2 sur l’intervalle [1, 2] (solution exacte
√
2). Tracer l’erreur en fonction du nombre d’itérations.
2. Méthode de Newton : Implémenter la méthode de Newton (vous pouvez utiliser et compléter le code Newton.m fourni)
Tester votre programme en utilisant par exemple la fonction f (x) = x2 − 2. Tracer l’erreur en fonction du nombre d’itérations.
3. Méthode du point fixe : implémenter la méthode du point fixe (pour résoudre l’équation g(x) = x). Tester votre
programme en utilisant par exemple la fonction
(
[0, +∞] → R,
x+5
g:
.
x 7→ g(x) =
x+1
√
qui admet comme point fixe 5. Tracer l’erreur en fonction du nombre d’itérations.
Exercice 2 : analyse
2
1. On considère la fonction f (x) = x + e−20x cos(x) sur l’intervalle [−1, 1].
a- Tracer la fonction f et vérifier que la fonction f admet un zero noté x∗ .
b- Appliquer la méthode de dichotomie à la fonction f . Combien d’itérations sont-elles nécessaires pour obtenir une
précision (sur le résidu) de 10−10 ?
1
c- Appliquer la méthode de Newton à la fonction f en prenant x0 = −0.2. Combien d’itérations sont-elles nécessaires
pour obtenir une précision (sur le résidu) de 10−10 ?
d- Appliquer la méthode de Newton à la fonction f en prenant x0 = 0. Que se passe-t-il ? Expliquer.
2. Calcul approché de
√
2. On sait que
√
2 est un point fixe des trois fonctions suivantes :
g1 (x) = 2 + x − x2
g2 (x) =
2
x
g3 (x) =
x+2
x+1
considérées sur l’intervalle [1, 2]. Appliquer l’algorithme du point fixe aux trois fonctions précédentes. Que remarquez-vous ?
Exercice 3 : zones de convergence de la méthode de Newton
On souhaite approcher numériquement les racines cubiques de l’unité, c’est à dire les trois nombres complexes z1 = 1,
z2 = e2iπ/3 et z3 = e4iπ/3 . Pour cela, on va appliquer la méthode de Newton à la fonction (de la variable complexe z)
f (z) = z 3 − 1. On admet que f est dérivable (au sens de la dérivation des fonctions de la variable complexe) et que sa dérivée
f 0 (z) = 3 z 2 .
L’objectif de cet exercice est de regarder vers quelle racine (z1 , z2 ou z3 ) l’algorithme de Newton converge suivant le point
d’initialisation z0 choisi.
3
. On définit une grille cartésienne de n2 points régulièrement espacés dans le carré [−3/2, 3/2]2 du
Soit n ≥ 2 et h = n−1
plan complexe : pour tout couple (`, m) ∈ N2 tel que 1 ≤ ` ≤ n et 1 ≤ m ≤ n,
z`m = x` + iym
3
3
avec x` = − + (` − 1)h et ym = − + (m − 1) h.
2
2
(1)
Pour chaque point z`m de la grille, on va appliquer l’algorithme de Newton à la fonction f en initialisant l’algorithme en
prenant z0 = z`m . On va alors regarder si la méthode de Newton converge, et, si c’est le cas, vers quelle racine (z1 , z2 ou
z3 ).
On stockera alors dans le tableau T abN rac (de taille n × n) le numéro de la racine obtenue (T abN rac(`, m) = k avec k = i,
i ∈ {1, 2, 3} si la méthode a convergé vers zi , et k = 4 si la méthode n’a pas convergé en nmax itérations). On stockera également le nombre d’itérations nécessaires pour atteindre la convergence (pour une tolérance ε donnée) dans le tableau T abN iter.
Travail demandé :
1. À l’aide de la commande imagesc, afficher les tableaux T abN rac et T abN iter pour n = 100 et n = 200 et n = 1000 (on
pourra choisir ε = 10−5 et nmax = 100).
2. Reprendre la même démarche pour les racines cinquième de l’unité (i.e, f (z) = z 5 − 1).
2
Téléchargement