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

22 lines
632 B
OCaml

open Leibniz
let () =
print_endline "physics: kinetic energy\n";
let ke = Parser.parse "0.5 * m * v^2" in
print_endline ("KE = " ^ Expr.to_string ke);
let dke_dv = Diff.diff "v" ke in
print_endline ("dKE/dv = " ^ Expr.to_string dke_dv);
print_endline "\nphysics: circular motion\n";
let circumference = Parser.parse "2 * pi * r" in
print_endline ("C = " ^ Expr.to_string circumference);
let dc_dr = Diff.diff "r" circumference in
print_endline ("dC/dr = " ^ Expr.to_string dc_dr);
let r_val = 5.0 in
let c_val = Eval.eval [("r", r_val)] circumference in
Printf.printf "C(%.1f) = %.4f\n" r_val c_val