next up previous contents index
Next: Exécution des fonctions définies Up: No Title Previous: Abréviations de type

Recherche de zéros par dichotomie

   

On cherche à calculer un zéro d'une fonction réelle continue f sur un intervalle [a,b], 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 [a,(a+b)/2] ou bien sur [(a+b)/2,b], selon le signe de f((a+b)/2).

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.

   figure857
Figure: Recherche d'un zéro par dichotomie



Rene Lalement
Mon Sep 30 18:22:54 MET 1996