Il suffit de recopier la formule et d'itérer.
let newton p eps x0 = let p' = deriver dico_float p in let eval_p = evaluer dico_float p and eval_p' = evaluer dico_float p' in let rec do_rec x = let delta = eval_p x /. eval_p' x in if abs_float delta < eps then x -. delta else do_rec (x -. delta) in do_rec x0 ;; |
On note l'usage idiomatique d'une fonction locale récursive terminale pour coder une boucle while. On note aussi que abs_float est « dans la doc ».