Présentation de l'algorithme :
Etant donné f une fonction continue et strictement monotone sur un intervalle [a;b] telle que f(a) et f(b) soient de signes contraires. L'équation f(x)=0 admet une unique solution dont on peut déterminer un encadrement par dichotomie.
Principe de cette méthode :
- On calcule m le milieu de [a,b].
- Si f(m) et f(b) sont de même signe, c'est que la solution se trouve dans [a,m] : on affecte à b la valeur de m afin de pouvoir continuer le processus.
- Dans le cas contraire, la solution se trouve dans [m,b] : on affecte à a la valeur de m afin de pouvoir continuer le processus.
- On continue le processus jusqu'à obtenir un encadrement avec la précision voulue
Dans l'exemple ci-dessous, f est définie par f(x)=x3-3x2+1 . L'équation f(x)=0 admet 3 solutions dans R et les conditions requises pour une recherche d'une valeur approchée de ces solutions sont vérifiées sur les intervalles [-1;0] , [0;2] et [2;3].
Code de l'algorithme :
VARIABLES
precision EST_DU_TYPE NOMBRE
a EST_DU_TYPE NOMBRE
b EST_DU_TYPE NOMBRE
m EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
precision PREND_LA_VALEUR 0.00001
LIRE a
LIRE b
TANT_QUE (b-a>precision) FAIRE
DEBUT_TANT_QUE
m PREND_LA_VALEUR (a+b)/2
SI (F1(m)*F1(b)>0) ALORS
DEBUT_SI
b PREND_LA_VALEUR m
FIN_SI
SINON
DEBUT_SINON
a PREND_LA_VALEUR m
FIN_SINON
FIN_TANT_QUE
AFFICHER a
AFFICHER " < solution < "
AFFICHER b
FIN_ALGORITHME
Fonction numérique utilisée :
F1(x)=pow(x,3)-3*pow(x,2)+1
Fichier AlgoBox associé : dichotomie.alg (faire un clic-droit et utiliser l'option "enregistrer sous" pour télécharger le fichier)
Tester l'algorithme :