open Leibniz let () = print_endline "symbolic integration\n"; let expressions = [ ("x", "x"); ("x^2", "x"); ("sin(x)", "x"); ("cos(x)", "x"); ("e^x", "x"); ] in List.iter (fun (expr_str, var) -> let expr = Parser.parse expr_str in match Integrate.integrate var expr with | Some result -> Printf.printf "∫ %s d%s = %s\n" expr_str var (Expr.to_string result) | None -> Printf.printf "∫ %s d%s = (no closed form)\n" expr_str var ) expressions; print_endline "\ntaylor series expansion\n"; let sin_x = Parser.parse "sin(x)" in let series = Series.maclaurin "x" sin_x 7 in print_endline ("sin(x) ≈ " ^ Expr.to_string series); let exp_x = Parser.parse "e^x" in let exp_series = Series.maclaurin "x" exp_x 5 in print_endline ("e^x ≈ " ^ Expr.to_string exp_series)