algorithmique et programmation (première) · Chapitre 5 · Exercice de TD
Projet : dichotomie généraliste
Programmation modulaire · Projets modulaires · niveau 3 (difficile)
Énoncé
Projet : dichotomie généraliste. Écrire dichotomie(f, a, b, eps) renvoyant une solution approchée de sur (avec et de signes contraires) à la précision eps, puis l'utiliser pour : (a) (via ) ; (b) la solution de (via une fonction utilisant exp du module math).
Corrigé
def dichotomie(f, a, b, eps):
while b - a > eps:
m = (a + b) / 2
if f(a) * f(m) <= 0:
b = m
else:
a = m
return (a + b) / 2
print(dichotomie(lambda x: x**2 - 10, 3, 4, 1e-6)) # 3.1622776...
from math import exp
print(dichotomie(lambda x: exp(x) - 3, 0, 2, 1e-6)) # 1.0986122...
Une seule brique générique résout les deux problèmes : c'est le sommet de la modularité — la fonction reçoit une fonction en paramètre. (La solution de est le que la terminale nommera.)