Module rational

Module rational 

Source
Expand description

Rational function integration via partial fraction decomposition

Implements integration of rational functions P(x)/Q(x) using:

  1. Polynomial long division if deg(P) >= deg(Q)
  2. Factor denominator into linear and irreducible quadratic factors
  3. Decompose into partial fractions using Heaviside’s method
  4. Integrate each term using standard formulas

§Mathematical Background

For P(x)/Q(x) where deg(P) < deg(Q), factor Q(x) as:

Q(x) = (x-r₁)^n₁ · ... · (x-rₖ)^nₖ · (x²+p₁x+q₁)^m₁ · ...

Then the partial fraction decomposition is:

P(x)/Q(x) = Σᵢ Σⱼ₌₁ⁿⁱ Aᵢⱼ/(x-rᵢ)ʲ + Σᵢ Σⱼ₌₁ᵐⁱ (Bᵢⱼx+Cᵢⱼ)/(x²+pᵢx+qᵢ)ʲ

§Integration Formulas

Linear terms:

  • ∫A/(x-r) dx = A·ln|x-r| + C
  • ∫A/(x-r)ⁿ dx = -A/((n-1)(x-r)^(n-1)) + C for n > 1

Quadratic terms (irreducible x²+px+q with p²-4q < 0):

  • Complete the square: x²+px+q = (x+p/2)² + a² where a² = q - p²/4
  • ∫(Bx+C)/(x²+px+q) dx = (B/2)·ln|x²+px+q| + ((C-Bp/2)/a)·arctan((x+p/2)/a) + C

§Implementation Status

Fully Implemented:

  • Simple linear factors (x-r) via cover-up method
  • Repeated linear factors (x-r)^n via Heaviside’s method with derivatives
  • Simple irreducible quadratics (x²+px+q) with proper coefficient extraction
  • Repeated irreducible quadratics (x²+px+q)² via Ostrogradsky’s reduction formula

Not Yet Implemented:

  • Repeated irreducible quadratics (x²+px+q)^m with m > 2 (Can be generalized using recursive Ostrogradsky reduction)
  • Automatic polynomial factorization (assumes factored form)

§References

This implementation follows the approaches in:

  • Heaviside’s cover-up method and derivative technique for repeated poles
  • Ostrogradsky’s reduction formula for repeated quadratics
  • Stewart, Calculus (8th ed), Chapter 7
  • Bronstein, “Symbolic Integration I”

Modules§

helpers
Helper utilities for rational function integration
linear
Integration of linear factors in partial fraction decomposition
quadratic
Integration of irreducible quadratic factors in partial fraction decomposition

Structs§

LinearTerm
PartialFractionDecomposition
QuadraticTerm

Functions§

extract_numerator_denominator
Extract numerator and denominator from rational expression
integrate_rational
Integrate rational function P(x)/Q(x) via partial fractions
is_rational_function
Check if expression is a rational function P(x)/Q(x)