数値計算の授業を受けてて。
OCamlのコードとか考えてた。書けた。
# let newtonMethod f fa cond x0 = let rec iter xn = if (cond f fa xn) then xn else (iter (xn -. (f xn) /. (fa xn))) in iter x0;; val newtonMethod : (float -> float) -> (float -> float) -> ((float -> float) -> (float -> float) -> float -> bool) -> float -> float = <fun> # (newtonMethod (fun x -> x*.x+.2.0*.x+.1.0) (fun x -> 2.0*.x+.2.0) (fun f fa xn -> xn-.(f xn)/.(fa xn) < 0.00001) 3.0); - : float = 1.