Programmer la dichotomie : ce que le TVI ne dit pas
Le théorème des valeurs intermédiaires garantit qu’une solution existe et ne donne aucun moyen de la trouver. Vingt lignes de Python comblent l’écart — et le compteur d’itérations démontre la vitesse de convergence.
Relisez l’énoncé du théorème des valeurs intermédiaires : il dit il existe. Il ne dit pas où.
C’est la première démonstration d’existence de l’année qui ne produit pas l’objet. Pour sur , le TVI conclut immédiatement — et aucune formule ne donne la racine, parce qu’il n’en existe pas par radicaux.
C’est une limite du théorème, pas un défaut de l’élève. Et c’est exactement pourquoi les sujets enchaînent toujours de la même façon :
- Montrer que l’équation admet une unique solution . TVI pour l’existence, stricte monotonie pour l’unicité — les deux sont nécessaires, le TVI seul ne donne jamais l’unicité.
- Encadrer .
- Donner une valeur approchée à près. Ici seulement, la dichotomie.
L’étape 3 est la réponse à l’étape 1. Le théorème dit elle existe ; l’algorithme dit la voici.
L’algorithme
def dichotomie(f, a, b, precision=1e-6):
"""Encadre une racine de f sur [a, b], où f(a) et f(b) sont de signes contraires."""
if f(a) * f(b) > 0:
raise ValueError("f(a) et f(b) doivent être de signes contraires")
n = 0
while b - a > precision:
m = (a + b) / 2
if f(a) * f(m) <= 0:
b = m # la racine est dans [a, m]
else:
a = m # la racine est dans [m, b]
n += 1
return (a + b) / 2, n
racine, iterations = dichotomie(lambda x: x**5 + x - 1, 0, 1)
print(f"{racine:.6f} en {iterations} itérations")
C’est le test du TVI, écrit une fois et répété. La ligne
if f(a) * f(m) <= 0 teste un produit, pas deux signes séparément — la même
condition que dans le cours.
Ce que le compteur démontre
Sur , précision : 20 itérations.
Ce n’est pas une observation, c’est une conséquence. À chaque tour l’intervalle est divisé par deux :
La condition d’arrêt donne
soit . Le programme confirme la majoration au tour près.
Cette majoration est la partie utile à l’examen : elle se démontre à la main, en trois lignes, et c’est elle que l’on demande quand le sujet dit « combien d’itérations suffisent pour obtenir un encadrement d’amplitude ? ».
Le détail qui coûte une racine
L’inégalité de la ligne 9 est large : <= 0, pas < 0.
Si vaut exactement , on a trouvé la racine. Le produit est alors nul, et il faut conserver comme borne. Un test strict l’écarte, et l’algorithme continue de rétrécir un intervalle dont il vient d’expulser la solution.
L’erreur ne se voit ni à la lecture ni sur , dont la racine est irrationnelle. Elle apparaît sur avec : le premier milieu vaut , qui est la racine exacte.
C’est la même largeur d’inégalité que dans l’énoncé du cours — , et non . Le programme ne fait que rendre visible ce que la notation disait déjà.
L’erreur de rédaction symétrique
Écrire « d’après le TVI, ».
Le TVI ne donne aucune valeur. Ce qui donne , c’est le calcul de et et le changement de signe entre les deux — c’est-à-dire une dichotomie, même faite à la main sur une copie.
Nommer l’outil qui produit réellement le résultat : c’est la différence entre une copie juste et une copie qui rapporte.