|
Recherche de la racine d'une fonction entre deux valeurs |
|
|
|
Written by Administrator
|
|
Friday, 02 May 2008 13:48 |
|
Source : Classique Une méthode très efficace pour la recherche des zéros approchés d'une fonction continue au voisinage du zéro cherché (théorème des valeurs intermédiaires), à condition qu'on puisse déterminer le signe de f((a+b)/ 2) à chaque itération consiste à : Soit f(x) une fonction telle que: - f(a) < 0
- f(b) > 0
- f est continue strictement croissante entre les points a et b (a < b)
Alors une dichotomie permet de trouver rapidement la valeur y telle que f(y) = 0. - Partir du couple de valeurs (a, b);
- Évaluer la fonction en (a+b)/2;
- Si f((a+b)/ 2) < 0, remplacer a par (a+b)/2, sinon remplacer b par (a+b)/2;
- Recommencer à partir du nouveau couple de valeurs jusqu'à ce que la différence entre les deux valeurs soit inférieure à la précision voulue.
Programmez cet algorithme de dichotomie En Caml let rec dicho f min max eps = let fmin = f min and fmax = f max in if fmin *. fmax > 0. then failwith "Aucune racine" else if max -. min < eps then (min, max) (* retourne un intervalle *) else let mil = (min +. max) /. 2. in if (f mil) *. fmin < 0. then dicho f min mil eps else dicho f mil max eps ;;
|