Advertisement
Guest User

Untitled

a guest
Mar 13th, 2015
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.53 KB | None | 0 0
  1.  
  2. let find_pi tol =
  3. let pi = ref 0.0 in
  4. let rec find_pi a b t p =
  5. if abs_float (a -. b) < tol
  6. then !pi
  7. else (
  8. print_endline "iteration";
  9. let a_n1 = (a +. b) /. 2.0 in
  10. let b_n1 = sqrt (a *. b) in
  11. let t_n1 = t -. (p *. ((a -. a_n1) ** 2.0)) in
  12. let p_n1 = 2.0 *. p in
  13. pi := ((a_n1 +. b_n1) ** 2.0) /. (4.0 *. t_n1);
  14. find_pi a_n1 b_n1 t_n1 p_n1
  15. ) in
  16. find_pi 1.0 (1.0 /. (sqrt 2.0)) 0.25 1.0
  17.  
  18. let () =
  19. print_endline (string_of_float (find_pi (epsilon_float)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement