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:

∫abf(x) dx=F(b)βˆ’F(a)\int_a^b f(x) \, dx = F(b) - F(a)
where Fβ€²(x)=f(x)F'(x) = f(x).

Integration by Parts:

∫u dv=uvβˆ’βˆ«v du\int u \, dv = uv - \int v \, du

U-Substitution:

∫f(g(x))β‹…gβ€²(x) dx=∫f(u) du\int f(g(x)) \cdot g'(x) \, dx = \int f(u) \, du
where u=g(x)u = g(x) and du=gβ€²(x) dxdu = g'(x) \, dx.

Power Rule:

∫xn dx=xn+1n+1+C(nβ‰ βˆ’1)\int x^n \, dx = \frac{x^{n+1}}{n+1} + C \quad (n \neq -1)

Logarithm Special Case:

∫1x dx=ln⁑∣x∣+C\int \frac{1}{x} \, dx = \ln|x| + C

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

πŸ”— Related Topics