leibniz/examples/calculus.ml
2026-01-19 03:37:26 +00:00

31 lines
847 B
OCaml

open Leibniz
let () =
print_endline "symbolic integration\n";
let expressions = [
("x", "x");
("x^2", "x");
("sin(x)", "x");
("cos(x)", "x");
("e^x", "x");
] in
List.iter (fun (expr_str, var) ->
let expr = Parser.parse expr_str in
match Integrate.integrate var expr with
| Some result ->
Printf.printf "∫ %s d%s = %s\n" expr_str var (Expr.to_string result)
| None ->
Printf.printf "∫ %s d%s = (no closed form)\n" expr_str var
) expressions;
print_endline "\ntaylor series expansion\n";
let sin_x = Parser.parse "sin(x)" in
let series = Series.maclaurin "x" sin_x 7 in
print_endline ("sin(x) ≈ " ^ Expr.to_string series);
let exp_x = Parser.parse "e^x" in
let exp_series = Series.maclaurin "x" exp_x 5 in
print_endline ("e^x ≈ " ^ Expr.to_string exp_series)