11 lines
448 B
OCaml
11 lines
448 B
OCaml
(* Euler integration by recurrence relation.
|
|
* Given a function, and stepsize, provides a function of (t,y) which
|
|
* returns the next step: (t',y'). *)
|
|
let euler f ~step (t,y) = ( t+.step, y +. step *. f t y )
|
|
|
|
(* newton_cooling doesn't use time parameter, so _ is a placeholder *)
|
|
let newton_cooling ~k ~tr _ y = -.k *. (y -. tr)
|
|
|
|
(* analytic solution for Newton cooling *)
|
|
let analytic_solution ~k ~tr ~t0 t = tr +. (t0 -. tr) *. exp (-.k *. t)
|