Algorithme de dichotomieProgrammation en PythonNombre d'étapes de la dichotomie
On considère la fonction $g$ définie sur $[1\,;2]$ par $g(x)=x^2-2$ et le programme Python du cours :
def g(x):
return x**2 - 2
def dichotomie(f, a, b, e):
while b - a > e:
m = (a + b) / 2
if f(a) * f(m) <= 0:
b = m
else:
a = m
return a, b
- Montrer que l'équation $g(x)=0$ admet une unique solution dans $[1\,;2]$. Quelle est cette solution ?
- On exécute
dichotomie(g, 1, 2, 0.1). Faire fonctionner le programme à la main en donnant, à chaque passage dans la boucle, la valeur dem, le signe de $g(m)$ et le nouvel intervalle. Quel couple est renvoyé ? - Combien de passages dans la boucle le programme effectue-t-il pour
e = 0.01? Poure = 10**-6? - Modifier la fonction
dichotomiepour qu'elle renvoie aussi le nombre de passages effectués dans la boucle.
Indice 1
Pour la question 1, utiliser le corollaire du théorème des valeurs intermédiaires ; la solution est un nombre connu.
Indice 2
À chaque passage, comparer le signe de $g(a)$ à celui de $g(m)$ : le signe de $g(a)$ ne change pas tant que $a$ n'est pas modifié.
Indice 3
Après $n$ passages, la longueur de l'intervalle vaut $\dfrac{1}{2^n}$ ; chercher le plus petit $n$ tel que $\dfrac{1}{2^n}\leqslant e$.
🔒 Corrigé Premium
Crée un compte gratuit : 5 corrigés Premium offerts chaque semaine
Créer mon compte gratuit