La dichotomie est un exemple simple de cette stratégie. On cherche à calculer un zéro d'une fonction réelle continue 39#39 sur un intervalle 40#40, 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 41#41 ou bien sur 42#42, selon le signe de 43#43.
package exemples;
class Dichotomie {
static double f(double x) { ... }
static final double EPS = 1e-5;
static double zéro(double a, double b) {
// on suppose que f(a)*f(b) < 0
double m = (a+b)/2;
double fm = f(m);
if (Math.abs(fm)<EPS) {
return m;
} else {
if (f(a)*fm<0) {
return zéro(a, m);
} else {
return zéro(m, b);
}
}
}
}
La condition d'arrêt est Math.abs(fm)<EPS, EPS étant une variable de la classe Dichotomie, et Math.abs étant la fonction qui calcule la valeur absolue d'un double.