Une dichotomie et son nombre de tours
Exercice supplémentaire · niveau 1 (application) · mathématiques appliquées (ECG 1re année), chapitre 11 — Informatique et algorithmique · Dichotomie et calcul numérique
Énoncé
Écrire dichotomie(f, a, b, eps) et l'appliquer à sur avec . Combien de tours la boucle effectue-t-elle ?
Corrigé
Le code.
def f(x):
return x * x - 2
def dichotomie(f, a, b, eps):
n = 0
while b - a > eps:
m = (a + b) / 2
if f(a) * f(m) <= 0:
b = m
else:
a = m
n = n + 1
return (a + b) / 2, n
print(dichotomie(f, 1, 2, 1e-6)) # (1.4142136..., 20)
print(2 ** 0.5) # 1.4142135623730951
Les hypothèses sont vérifiées. est continue sur (c'est une fonction polynomiale), et
Le théorème des valeurs intermédiaires garantit donc l'existence d'une racine dans ; et y est strictement croissante, donc cette racine est unique. C'est .
Le nombre de tours. L'intervalle a pour longueur au départ, et chaque tour la divise par : après tours elle vaut . La condition d'arrêt s'écrit
donc tours, ce que confirme l'exécution.
Ce que la dichotomie coûte, et ce qu'elle garantit. Chaque tour ne gagne qu'un facteur , soit environ un tiers de décimale : atteindre demanderait tours. En échange, elle ne réclame que la continuité et un changement de signe — aucune dérivée, aucune hypothèse fine. C'est la méthode la plus lente et la plus sûre.
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.