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

32 lines
986 B
OCaml

open Leibniz
let () =
print_endline "basic differentiation and simplification\n";
let f = Parser.parse "x^3 + 2x^2 + x" in
print_endline ("f(x) = " ^ Expr.to_string f);
let df = Diff.diff "x" f in
print_endline ("f'(x) = " ^ Expr.to_string df);
let ddf = Diff.diff "x" df in
print_endline ("f''(x) = " ^ Expr.to_string ddf);
print_endline "\nsimplification\n";
let expr = Parser.parse "(x + 0) * 1 + x * 0" in
print_endline ("before: " ^ Expr.to_string expr);
let simplified = Simplify.simplify expr in
print_endline ("after: " ^ Expr.to_string simplified);
print_endline "\nimplicit multiplication\n";
let expr2 = Parser.parse "2x + 3sin(x)" in
print_endline ("parsed: " ^ Expr.to_string expr2);
print_endline "\ntrigonometric functions\n";
let trig = Parser.parse "sin(x)^2 + cos(x)^2" in
print_endline ("trig identity: " ^ Expr.to_string trig);
let dtrig = Diff.diff "x" trig in
print_endline ("derivative: " ^ Expr.to_string dtrig)