31 lines
847 B
OCaml
31 lines
847 B
OCaml
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)
|