Symbolic Integration
MathHook's integration system provides symbolic integration capabilities with an 8-layer strategy architecture from fast heuristics to complete Risch algorithm. Coverage: 93-95% of elementary integrals.
π
Mathematical Definition
Fundamental Theorem of Calculus:
where .
Integration by Parts:
U-Substitution:
where and .
Power Rule:
Logarithm Special Case:
Code Examples
Basic Integration (Layer 1: Table Lookup)
Direct table hits for common patterns
use mathhook::prelude::*;
use integrals::Integration;
let x = symbol!(x);
// Polynomial: β«x^3 dx = x^4/4 + C
let poly = expr!(x ^ 3);
let result = poly.integrate(x.clone());
// Result: x^4/4 + C
// Rational: β«1/(x+1) dx = ln|x+1| + C
let rational = expr!(1 / (x + 1));
let result = rational.integrate(x.clone());
// Result: ln|x+1| + C
// Trigonometric: β«sin(x) dx = -cos(x) + C
let trig = expr!(sin(x));
let result = trig.integrate(x.clone());
// Result: -cos(x) + C
Integration by Parts (Layer 4: LIATE)
β«u dv = uv - β«v du using LIATE rule
use mathhook::prelude::*;
use integrals::Integration;
let x = symbol!(x);
// β«x*e^x dx: u = x (algebraic), dv = e^x (exponential)
let expr = expr!(x * exp(x));
let result = expr.integrate(x.clone());
// Result: x*e^x - e^x + C = e^x(x-1) + C
// β«x*sin(x) dx: u = x (algebraic), dv = sin(x) (trig)
let expr2 = expr!(x * sin(x));
let result2 = expr2.integrate(x.clone());
// Result: -x*cos(x) + sin(x) + C
U-Substitution (Layer 5)
β«f(g(x))*g'(x) dx = β«f(u) du
use mathhook::prelude::*;
use integrals::Integration;
let x = symbol!(x);
// β«2x*sin(x^2) dx: u = x^2, du = 2x dx
let expr = expr!(2 * x * sin(x ^ 2));
let result = expr.integrate(x.clone());
// Result: -cos(x^2) + C
// β«2x*e^(x^2) dx: u = x^2, du = 2x dx
let expr2 = expr!(2 * x * exp(x ^ 2));
let result2 = expr2.integrate(x.clone());
// Result: e^(x^2) + C