Axiom has extensive library facilities for integration.
The first example is the integration of a fraction with a denominator that
factors into a quadratic and a quartic irreducible polynomial. The usual
partial fraction approach used by most other computer algebra systems either
fails or introduces expensive unneeded algebraic numbers.
We use a factorization-free algorithm.
When real parameters are present, the form of the integral can depend on the
signs of some expressions.
Rather than query the user or make sign assumptions, Axiom returns all
possible answers.
The integrate operation generally assumes
that all parameters are real. The only exception is when the integrand has
complex valued quantities.
If the parameter is complex instead of real, then the notion of sign is
undefined and there is a unique answer. You can request this answer by
"prepending" the word "complex" to the command name.
The following two examples illustrate the limitations of table-based
approaches. The two integrands are very similar, but the answer to one of
them requires the addition of two new algebraic numbers.
This is the easy one. The next one looks very similar but the answer is
much more complicated.
Only an algorithmic approach is guaranteed to find what new constants must
be added in order to find a solution.
Some computer algebra systems use heuristics or table-driven approaches to
integration. When these systems cannot determine the answer to an
integration problem, they reply "I don't know". Axiom uses an algorithm
for integration that conclusively proves that an integral cannot be expressed
in terms of elementary functions.
When Axiom returns an integral sign, it has proved that no answer exists as
an elementary function.
Axiom can handle complicated mixed functions much beyond what you can find
in tables. Whenever possible, Axiom tries to express the answer using the
functions present in the integrand.
A strong structure-checking algorithm in Axiom finds hidden algebraic
relationships between functions.
The discovery of this algebraic relationship is necessary for correct
integration of this function. Here are the details:
If x=tan(t) and g=tan(t/3) then the following algebraic relationship is true:
g^3 - 3xg^2 - 3g + x = 0
Integrate g using this algebraic relation; this produces: