Vous êtes sur la page 1sur 2

TP Analyse numérique

III. Analyse numérique - TP Zéros



Objectif :

On souhaite approcher le réel 2 en le considérant comme le seul zéro de la fonction f : x 7→ x2 − 2 sur [0, 2].

Questions :

1. Dichotomie : tracer les premiers termes (au début a = 0, b = 2) :

2. Newton : tracer les premiers termes (au début x = 10) :

TSI 1 Lycée Rouvière Page 1


TP Analyse numérique

3. Coder l’algorithme de la dichotomie en affichant la progression de l’erreur à chaque itération.


4. Coder l’algorithme de Newton en affichant la progression de l’erreur à chaque itération.
Pour le calcul de f 0 on pourra utiliser la dérivée exacte (connue ici !), les méthodes approchées vues en cours (pente
avant, pente arrière, pente à deux pas) ou encore la fonction ”derivative” du package ”scipy.misc”.
Tester pour x0 = 200, x0 = 1, x0 = 0.

Condition d’arrêt : on pourra au choix :


1. se donner un nombre n d’itérations.

2. s’arrêter dés que |f (x)| < ε


3. s’arrêter dés que |xn+1 − xn | < ε (deux termes consécutifs de la suites sont très proches).
Erreurs à gérer :

1. Si la valeur approchée est trop proche de la valeur exacte (zéro machine), le log qui permet de déterminer la
puissance de 10 de l’erreur renverra une erreur (log(0)).
2. Si f 0 (x) (ou l’une de ses approximations) est nulle, la méthode de Newton renverra une erreur (division par 0).

Package mpmath

Pour pouvoir augmenter le nombre de décimales utilisées par Python :

1. Installer le package mpmath :

(a) Dans spyder : outils / outils externe / panneau de contrôle winpython


(b) Cliquer sur ”add packages” et chercher le fichier ”mpmath-0.19.tar.gz”.
(c) Cliquer sur ”install packages”
2. Pour utiliser mpmath :

(a) ”from mpmath import *” (seront, entre autres, chargées les fonctions mathématiques log, sqrt etc. il n’est
donc plus besoin de les importer de numpy).
(b) ”mp.dps = 200” (en début de fichier : pour aller jusqu’à du 10−200 ).
(c) à chaque calcul qui n’utilise pas les fonctions mathématiques déjà modifiées (comme c = a+b 2 dans la
dichotomie) : utiliser la fonction mpf() pour que le calcul soit fait à la précision voulue (c=mpf( a+b
2 )).

TSI 1 Lycée Rouvière Page 2