22 lines
632 B
OCaml
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
|