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

22 lines
603 B
OCaml

open Leibniz
let () =
print_endline "symbolic constants\n";
let area = Parser.parse "pi * r^2" in
print_endline ("circle area: A = " ^ Expr.to_string area);
let dA_dr = Diff.diff "r" area in
print_endline ("dA/dr = " ^ Expr.to_string dA_dr);
let r_val = 3.0 in
let a_val = Eval.eval [("r", r_val)] area in
Printf.printf "A(%.1f) = %.6f\n" r_val a_val;
print_endline "\nexponential growth\n";
let growth = Parser.parse "e^(k * t)" in
print_endline ("N(t) = " ^ Expr.to_string growth);
let dN_dt = Diff.diff "t" growth in
print_endline ("dN/dt = " ^ Expr.to_string dN_dt)