File: siman_ex.ml

package info (click to toggle)
ocamlgsl 1.19.1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,628 kB
  • ctags: 2,812
  • sloc: ml: 17,194; ansic: 7,445; makefile: 24
file content (34 lines) | stat: -rw-r--r-- 651 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
open Gsl

let energ x = 
  (exp (~-. ((x -. 1.) ** 2.))) *. sin (8. *. x)

let step rng x step_size =
  let u = Rng.uniform rng in
  x +. 2. *. (u -. 0.5) *. step_size

let print x = 
  Printf.sprintf "%12g" x


let _ = 
  Error.init () ;
  Rng.env_setup () ;
  let rng = Rng.make (Rng.default ()) in
  
  let params = {
    Siman.iters_fixed_T = 10 ;
    Siman.step_size = 10. ;
    Siman.k = 1. ;
    Siman.t_initial = 2e-3 ;
    Siman.mu_t = 1.005 ;
    Siman.t_min = 2e-6 ;
  } in

  let res =
    Siman.solve rng 15.5
      ~energ_func:energ ~step_func:step
      (* ~print_func:print  *)
      params 
  in
  Printf.printf "result = %12g\n" res