symbolic mathematics engine in OCaml with differentiation, integration, simplification, and numerical methods
17

Configure Feed

Select the types of activity you want to include in your feed.

leibniz / examples / calculus.ml
847 B 31 lines
1open Leibniz 2 3let () = 4 print_endline "symbolic integration\n"; 5 6 let expressions = [ 7 ("x", "x"); 8 ("x^2", "x"); 9 ("sin(x)", "x"); 10 ("cos(x)", "x"); 11 ("e^x", "x"); 12 ] in 13 14 List.iter (fun (expr_str, var) -> 15 let expr = Parser.parse expr_str in 16 match Integrate.integrate var expr with 17 | Some result -> 18 Printf.printf "∫ %s d%s = %s\n" expr_str var (Expr.to_string result) 19 | None -> 20 Printf.printf "∫ %s d%s = (no closed form)\n" expr_str var 21 ) expressions; 22 23 print_endline "\ntaylor series expansion\n"; 24 25 let sin_x = Parser.parse "sin(x)" in 26 let series = Series.maclaurin "x" sin_x 7 in 27 print_endline ("sin(x) ≈ " ^ Expr.to_string series); 28 29 let exp_x = Parser.parse "e^x" in 30 let exp_series = Series.maclaurin "x" exp_x 5 in 31 print_endline ("e^x ≈ " ^ Expr.to_string exp_series)