Adloun

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.