Méthode de dichotomie ( Méthodes de résolution numérique d’équations )
On veut résoudre l’équation f’(x) = 0, pour une fonction f donnée. Plus précisément, on suppose que l’on sait que cette équation admet une unique solution x0 dans l’intervalle [a, b], et l’on cherche à déterminer une valeur approchée de x0 avec une précision fixée à l’avance.
La méthode de dichotomie permet cela, et ne repose que sur un seul des résultats vus dans le chapitre précédent : le théorème des valeurs intermédiaires. Autrement dit, la seule hypothèse nécessaire pour la mettre en oeuvre est :
f est continue sur l’intervalle [a, b].
Dans ce cadre, une façon simple d’assurer que l’équation f(x) = 0 ait une solution dans [a, b] est de supposer que f(a) et f(b) sont de signe contraires. Pour simplifier la discussion qui va suivre, on supposera même
f(a) < 0 < f(b).
Répétons-le, le Théorème des Valeurs Intermédiaires permet d’affirmer que l’équation f(x) = 0
admet au moins une solution dans ]a, b[, mais rien ne dit qu’elle est unique : nous ferons cette hypothèse.
L’idée de la méthode est très simple : on coupe l’intervalle [a, b] en deux parties de même longueur [a, c] et [c, b] Où c = (a+b) /2 est le milieu de [a, b], et l’on cherche dans lequel de ces intervalles se trouve la solution x0. Elle est dans [a, c] si f(c) ≥ 0, et dans [c, b] si f(c) ≤ 0 !
Le théorème qui suit montre que la répétition de ce raisonnement un assez grand nombre de fois conduit à une valeur approchée de x0 avec n’importe quelle précision donnée à l’avance.
Cette méthode est tout à fait simple à programmer. Voilà l’algorithme correspondant :
[lire a,b,precision];
Tant que (b-a)>precision
{
c=(a+b)/2;
si (f(c).f(b)<0 a="c;<br" alors="alors">sinon b=c;
};
[afficher a];0>