mathématiques appliquées (ECG 1re année) · Chapitre 11 · Application directe du cours
Une dichotomie et son nombre de tours
Informatique et algorithmique · Dichotomie et calcul numérique · niveau 1 (application)
É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.
Exercices semblables
- Somme et moyenne d'une liste corrigé
- Renverser une liste, tester un palindrome corrigé
- Compter et localiser corrigé
- Une suite récurrente en Python corrigé
- Lire un graphe corrigé