Méthode de dichotomie

Un article de Wikipédia, l'encyclopédie libre.

Étapes successives de la méthode de dichotomie avec comme point de départ, l'intervalle [a1;b1. Le zéro de la fonction est en rouge.]
Étapes successives de la méthode de dichotomie avec comme point de départ, l'intervalle [a1;b1. Le zéro de la fonction est en rouge.]

En mathématiques, la méthode de dichotomie ou méthode de la bissection est un algorithme de recherche d'un zéro d'une fonction qui consiste à répéter des partages d’un intervalle en deux parties puis à sélectionner le sous-intervalle dans lequel existe un zéro de la fonction.

Sommaire

[modifier] Principe

Étant donnés deux points a et b et une fonction f continue sur l'intervalle [a, b] telle que f(a) et f(b) soient de signes opposés. Supposons que nous voulions résoudre l’équation f(x) = 0. Nous savons par le théorème des valeurs intermédiaires que f doit avoir au moins un zéro dans l’intervalle [a, b]. La méthode de dichotomie divise l’intervalle en deux en calculant c = (a+b) / 2. Il y a maintenant deux possibilités : ou f(a) et f(c) sont de signes opposés, ou f(c) et f(b) sont de signes opposés.

L’algorithme de dichotomie est alors appliqué au sous-intervalle dans lequel le changement de signe se produit, ce qui signifie que l’algorithme de dichotomie est en soi récursif.

L’erreur absolue de la méthode de dichotomie est au plus

 \frac{b-a}{2^{n+1}}

après n étapes. En d’autres termes, l’erreur est diminuée de moitié à chaque étape, ainsi la méthode converge linéairement, ce qui est très lent par comparaison avec la méthode de Newton.

L'avantage par rapport à cette dernière est son domaine d'application plus vaste : il suffit seulement que f(a) et f(b) soient de signe opposé et qu'on puisse déterminer le signe de f(c) à chaque itération. De plus, si on se donne la tolérance relative \epsilon\,, on connaît en théorie le nombre maximum d'itérations nécessaires pour satisfaire cette tolérance :

 2^{n+1} = 1/\epsilon\,

C'est un cas assez peu habituel en calcul numérique pour être noté.

[modifier] Programmation

Sous l'hypothèse que le signe de f(c) soit déterminable, voici une représentation de la méthode en langage Visual Basic. Les variables xL et xR correspondent aux réels a et b précédents. Les valeurs initiales de xL et xR doivent être choisies telles que f(xL) et f(xL) soient de signe opposé (elles encadrent le zéro). La variable epsilon indique avec quelle précision le résultat doit être donné.

'Méthode de dichotomie

'Start loop
Do While (xR - xL) > epsilon
  
  'Calcule le milieu du domaine de définition
  xM = (xR + xL) / 2
  
  'Find f(xM)
  If ((f(xL) * f(xM)) > 0) Then
    'jette la moitié de gauche
    xL = xM
  Else
    'jette la moitié de droite
    xR = xM
  End If
Loop

[modifier] Limite de la méthode

Cette méthode d'une grande robustesse nécessite cependant de connaître à chaque étape le signe de f(c). Dans quelques cas, il peut arriver que la valeur de f(c) soit si proche de 0 que la précision du logiciel de calcul ne permette plus de déterminer le signe de f(c) (le logiciel de calcul assimile f(c) à 0). L'application de l'algorithme risque alors de conduire à l'élimination erronée d'une moitié de l'intervalle et à la convergence vers une valeur éloignée de la racine.

D'une manière plus générale, la détermination du signe de f(c) peut se révéler impossible, même en augmentant la précision du calcul du logiciel. Considérons par exemple un réel α dont on peut calculer des valeurs approchées décimales ou rationnelles αn à toute précision \frac{1}{n} désirée. Considérons maintenant la fonction f affine sur les intervalles [0, \frac{1}{3}], [\frac{1}{3}, \frac{2}{3}] et [\frac{2}{3}, 1] et telle que f(0) = − 1, f(1) = 1, f(1 / 3) = f(2 / 3) = α. La méthode de dichotomie demande de déterminer le signe de f(1 / 2) = α. Or il n'existe aucun algorithme général permettant de décider si α > 0, α = 0 ou α < 0. En effet, un tel algorithme, s'il existait, ne devant effectuer qu'un nombre fini de calcul, devrait prendre sa décision au vu d'un nombre fini de valeurs approchées αn, ce qui est insuffisant pour conclure.

Cette limite conduit les théoriciens[1] de l'analyse constructive à qualifier la méthode de dichotomie de non constructive et à privilégier l'énoncé alternatif : rechercher une valeur x telle que | f(x) | soit inférieure à une erreur donnée.

Icône de détail Article détaillé : Analyse constructive.

[modifier] Voir aussi


[modifier] Référence

Richard L. Burden, J. Douglas Faires (2000), Numerical Analysis, (7th Ed), Brooks/Cole. ISBN 0534382169

  1. Erret Bishop, Douglas Bridges, Constructive analysis, Springer-Verlag (1985), p.8