Méthode de dichotomie et recherche algorithmique de seuils en Python

Terminale générale Spé · Mathématiques Spé Terminale

À retenir

• Principe : division par 2 de l'intervalle à chaque étape. • Condition d'arrêt dans la boucle while : (b - a) > eps. • Test de signe : f(a) * f(m) <= 0. • Précision après n étapes : b - a/2^n.

Le cours

Algorithme de dichotomie La dichotomie est un algorithme permettant d'obtenir un encadrement d'amplitude arbitrairement petite de l'unique solution de l'équation f(x) = 0 sur [a ; b]. Principe : À chaque étape : 1. On calcule le milieu m = a + b/2. 2. Si f(a) et f(m) sont de signes contraires (f(a) f(m) 0), alors [a ; m], on pose b = m. 3. Sinon, [m ; b], on pose a = m. 4. On divise ainsi la largeur de l'intervalle par 2 à chaque étape, jusqu'à ce que b - a . Implémentation Python def dicho(f, a, b, eps): while (b - a) > eps: m = (a + b) / 2 if f(a) * f(m) Vitesse de convergence Après n itérations, la précision est b - a/2^n. Par exemple, pour passer d'un intervalle de longueur 1 à une précision de 10^-3, il faut 10 étapes car 2^10 = 1024 > 1000. Algorithme de seuil Pour une fonction croissante qui tend vers +, on cherche le plus petit entier n tel que f(n) dépasse un seuil. Exemple : le plus petit entier n tel que e^n > 1\,000. from math import exp n = 0 while exp(n) <= 1000: n = n + 1 print(n) Le programme affiche 7, car e^6 403 1\,000 < e^7 1\,097. La boucle tourne tant que le seuil n'est pas dépassé.

Dans ce chapitre