AngouriMath

Navigation

RothsteinTrager


← Back to list of classes

Description

Summary

The integral of a rational function with rational coefficients, whatever its
denominator: the Hermite reduction for the rational part of the answer, and the
Rothstein–Trager resultant for the logarithmic part, written in real terms after Rioboo.

Remarks

The partial-fraction rules answer a denominator that factors over the rationals, and
a biquadratic one over the reals, and stop there: Bronstein's
(6 - 3x^2 + x^4)/(4 + 5x^2 - 5x^4 + x^6) has a denominator irreducible over
Q whose real factors carry the roots of a cubic, and its antiderivative is
arctan(x (1 - 3x^2 + x^4)/2) and two more arctangents of linears, with no root
of that cubic anywhere in it. The logarithmic part of the integral of A/D, with
D squarefree, is sum c ln(gcd(D, A - c D')) over the roots c of the
resultant R(t) = res_x(D, A - t D'), and the residues c are what decide the
field the answer needs, not the roots of D: here they are ±i/2 and
±i, and the answer is over Q with an i that pairs into arctangents.
This takes the rational part first by the Hermite reduction, then the resultant, its
squarefree decomposition -- a root of multiplicity i is a residue shared by
i roots of D, and the gcd for it has degree i -- and the
irreducible factors of each squarefree part over Q. A linear factor is a
rational residue and a logarithm; a quadratic one is a pair of conjugate residues
a ± w with w^2 rational, and the gcd is computed in Q(w): for
w real the pair is two logarithms with a root in them, and for w = i b it
is a ln(P^2 + b^2 Q^2) + b LogToAtan(P, b Q), Rioboo's continuous arctangent
form. A factor of higher degree puts the residues in a field this does no arithmetic in,
and those logarithms are written as a sum over the roots of the factor of the denominator
they belong to, sum(A(r)/D'(r) ln(x - r), r in { r : E(r) = 0 }) (https://github.com/asc-community/AngouriMath/issues/1285).
Bronstein, Symbolic Integration I, §2.2 (HermiteReduce), §2.5
(IntRationalLogPart) and §2.8 (LogToReal, LogToAtan). The resultant is taken as a
Sylvester determinant rather than from a subresultant remainder sequence, so the gcd
is computed for each residue in its own field instead of being read off the
sequence -- that is the classical Rothstein–Trager rather than Lazard–Rioboo–Trager,
affordable here because the fields are of degree at most two. The answer is checked
against the integrand at sampled points before it is returned.
https://github.com/asc-community/AngouriMath/issues/718

Members

























Angouri © 2019-2023 · Project's repo · Site's repo · Octicons · Transparency · 4378 pages online