Dichotomie, et le nombre de tours
Exercice · niveau 3 (difficile) · mathématiques appliquées (ECG 1re année), chapitre 5 — Fonctions réelles d'une variable réelle · Continuité, théorème des valeurs intermédiaires et bijection
Énoncé
Écrire une fonction Python dichotomie(f, a, b, eps) qui suppose et renvoie une racine à près. Combien de tours faut-il pour , et ? Vérifier la formule .
Corrigé
def dichotomie(f, a, b, eps):
assert f(a) * f(b) <= 0, "pas de changement de signe sur [a, b]"
while b - a > eps:
m = (a + b) / 2
if f(a) * f(m) <= 0:
b = m # la racine est dans [a, m]
else:
a = m # elle est dans [m, b]
return (a + b) / 2
Le nombre de tours. Chaque tour divise la longueur par deux, donc après tours elle vaut . La condition d'arrêt est
Ici et : il faut tours.
Ce qui fait marcher la méthode, c'est le théorème des valeurs intermédiaires, invoqué à chaque tour : continue et de signes opposés aux bornes garantit une racine dans l'intervalle courant. Sans continuité, la fonction renverrait un nombre sans aucune racine à côté.
La convergence est lente mais sûre : chaque tour gagne un bit, soit environ trois tours par décimale.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.