symbolic mathematics engine in OCaml with differentiation, integration, simplification, and numerical methods
17

Configure Feed

Select the types of activity you want to include in your feed.

leibniz / examples / basic.ml
986 B 32 lines
1open Leibniz 2 3let () = 4 print_endline "basic differentiation and simplification\n"; 5 6 let f = Parser.parse "x^3 + 2x^2 + x" in 7 print_endline ("f(x) = " ^ Expr.to_string f); 8 9 let df = Diff.diff "x" f in 10 print_endline ("f'(x) = " ^ Expr.to_string df); 11 12 let ddf = Diff.diff "x" df in 13 print_endline ("f''(x) = " ^ Expr.to_string ddf); 14 15 print_endline "\nsimplification\n"; 16 17 let expr = Parser.parse "(x + 0) * 1 + x * 0" in 18 print_endline ("before: " ^ Expr.to_string expr); 19 let simplified = Simplify.simplify expr in 20 print_endline ("after: " ^ Expr.to_string simplified); 21 22 print_endline "\nimplicit multiplication\n"; 23 24 let expr2 = Parser.parse "2x + 3sin(x)" in 25 print_endline ("parsed: " ^ Expr.to_string expr2); 26 27 print_endline "\ntrigonometric functions\n"; 28 29 let trig = Parser.parse "sin(x)^2 + cos(x)^2" in 30 print_endline ("trig identity: " ^ Expr.to_string trig); 31 let dtrig = Diff.diff "x" trig in 32 print_endline ("derivative: " ^ Expr.to_string dtrig)