MĂ©thode de dichotomie
La mĂ©thode de dichotomie ou mĂ©thode de la bissection est, en mathĂ©matiques, 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.
Principe
On considĂšre deux nombres rĂ©els a et b et une fonction rĂ©elle 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. D'aprĂšs le thĂ©orĂšme des valeurs intermĂ©diaires, f a au moins un zĂ©ro dans lâintervalle [a, b]. La mĂ©thode de dichotomie consiste Ă diviser lâintervalle en deux en calculant m = (a+b)2. Il y a maintenant deux possibilitĂ©s : soit f(a) et f(m) sont de signes contraires, soit f(m) et f(b) sont de signes contraires.
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 rĂ©cursif.
Lâerreur absolue de la mĂ©thode de dichotomie est au plus
aprÚs n étapes car l'erreur est diminuée de moitié à chaque étape.
Réciproquement, si l'on cherche à ce que l'erreur absolue soit inférieure à une certaine valeur Δ, on sait dénombrer le nombre d'itérations nécessaires N pour satisfaire cette tolérance sur le résultat final :
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 signes opposés et qu'on puisse déterminer le signe de f(m) à chaque itération.
Programmation
Sous l'hypothĂšse que le signe de f(m) soit dĂ©terminable, voici une reprĂ©sentation de la mĂ©thode en pseudo-code, oĂč Δ est la prĂ©cision souhaitĂ©e.
Tant que (b - a) > Δ m â (a + b) / 2 Si (f(a)*f(m) †0) alors b â m sinon a â m Fin Si Fin Tant que
Limite de la méthode
Le principal avantage pratique de cette méthode est sa robustesse, puisque si f est continue, alors l'algorithme est théoriquement convergent (la taille de l'intervalle de recherche tend vers zéro). Le principal défaut de l'algorithme est que seul le signe de f est utilisé, ce qui mÚne à une convergence plutÎt lente (convergence quasiment linéaire). La méthode de Newton, qui utilise la valeur de f ainsi que la valeur de la pente de f, est, quand elle converge, significativement plus rapide (convergence quadratique).
Par exemple, supposons que le zéro, simple, est égal à 1, que la fonction est deux fois continûment différentiable et que f'(x) = 1. Supposons, de plus qu'on utilise des nombres à virgule flottante binaire de type IEEE-754 avec 64 bits, dont 53 bits de précision. Supposons qu'on recherche une erreur absolue inférieure à 10-16. Si l'intervalle de recherche initial est de longueur égale à 1, alors la dichotomie nécessite 52 itérations. Au contraire, si le point initial est associé à une erreur absolue inférieure à 0,1, alors la méthode de Newton converge en seulement 5 itérations.
Cette méthode d'une grande robustesse nécessite cependant de connaßtre à chaque étape le signe de f(m). Dans quelques cas, il peut arriver que la valeur de f(m) soit si proche de 0 que la précision du logiciel de calcul ne permette plus de déterminer le signe de f(m) (les erreurs d'arrondi peuvent conduire au signe opposé, ou à 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(m) 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 1n dĂ©sirĂ©e. ConsidĂ©rons maintenant la fonction f affine sur les intervalles [0 , 13], [13 , 23] et [23 , 1] et telle que f(0) = -1, f(1) = 1, f(13) = f(23) = α. La mĂ©thode de dichotomie demande de dĂ©terminer le signe de f(12) = α. 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 calculs, 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érieur à une erreur donnée.
Notes et références
- (en) Cet article est partiellement ou en totalitĂ© issu de lâarticle de WikipĂ©dia en anglais intitulĂ© « Bisection method » (voir la liste des auteurs).
- (en) Richard L. Burden et J. Douglas Faires, Numerical Analysis, 7e Ă©d., Brooks/Cole, 2000 (ISBN 0-534-38216-9)
- (en) Errett Bishop (en) et Douglas Bridges, Constructive Analysis, Springer-Verlag, 1985, p. 8.