21 lines
687 B
Text
21 lines
687 B
Text
|
|
let dt = 0.001 (* Integration step *)
|
|
|
|
let node f_integr (x0, x') = x where (* Forward Euler integrator *)
|
|
rec x = x0 -> pre (x +. x' *. dt)
|
|
let node b_integr (x0, x') = x where (* Backward Euler integrator *)
|
|
rec x = x0 -> (pre x) +. x' *. dt
|
|
|
|
let node sincos () = (sin, cos) where
|
|
rec sin = f_integr(0.0, cos)
|
|
and cos = b_integr(1.0, -. sin)
|
|
|
|
let node main () =
|
|
let rec t = 0.0 -> pre t +. dt in
|
|
let (sin, cos) = sincos () in
|
|
match t <= 500.0 with
|
|
| true ->
|
|
(print_float t; print_string "\t";
|
|
print_float sin; print_string "\t";
|
|
print_float cos; print_newline ())
|
|
| false -> ()
|