On cherche à calculer un zéro d'une fonction réelle continue sur un
intervalle
, prenant des valeurs de signes opposés aux
extrémités. Le théorème des valeurs intermédiaires assure l'existence
d'un zéro. L'idée de la dichotomie est de chercher un zéro sur
ou bien sur
, selon le signe de
.
double zero_dicho(double a, double b) {
double m = (a+b)/2;
double fm = f(m);
if (fabs(fm)<eps) {
return m;
} else {
if (f(a)*fm<0) {
return zero_dicho(a,m);
} else {
return zero_dicho(m,b);
}
}
}
La condition d'arrêt est fabs(fm)<eps, eps étant une variable globale, et fabs étant la fonction de la bibliothèque mathématique calculant la valeur absolue d'un double.