Part of a series of articles about |

Calculus |
---|

In calculus, **symbolic integration** is the problem of finding a formula for the antiderivative, or *indefinite integral*, of a given function *f*(*x*), i.e. to find a formula for a differentiable function *F*(*x*) such that

This is also denoted

The term *symbolic* is used to distinguish this problem from that of numerical integration, where the value of *F* is sought at a particular input or set of inputs, rather than a general formula for *F*.

Both problems were held to be of practical and theoretical importance long before the time of digital computers, but they are now generally considered the domain of computer science, as computers are most often used currently to tackle individual instances.

Finding the derivative of an expression is a straightforward process for which it is easy to construct an algorithm. The reverse question of finding the integral is much more difficult. Many expressions that are relatively simple do not have integrals that can be expressed in closed form. See antiderivative and nonelementary integral for more details.

A procedure called the Risch algorithm exists that is capable of determining whether the integral of an elementary function (function built from a finite number of exponentials, logarithms, constants, and *n*th roots through composition and combinations using the four elementary operations) is elementary and returning it if it is. In its original form, the Risch algorithm was not suitable for a direct implementation, and its complete implementation took a long time. It was first implemented in Reduce in the case of purely transcendental functions; the case of purely algebraic functions was solved and implemented in Reduce by James H. Davenport; the general case was solved by Manuel Bronstein, who implemented almost all of it in Axiom, though to date there is no implementation of the Risch algorithm that can deal with all of the special cases and branches in it.^{[1]}^{[2]}

However, the Risch algorithm applies only to *indefinite* integrals, while most of the integrals of interest to physicists, theoretical chemists, and engineers are *definite* integrals often related to Laplace transforms, Fourier transforms, and Mellin transforms. Lacking a general algorithm, the developers of computer algebra systems have implemented heuristics based on pattern-matching and the exploitation of special functions, in particular the incomplete gamma function.^{[3]} Although this approach is heuristic rather than algorithmic, it is nonetheless an effective method for solving many definite integrals encountered by practical engineering applications. Earlier systems such as Macsyma had a few definite integrals related to special functions within a look-up table. However this particular method, involving differentiation of special functions with respect to its parameters, variable transformation, pattern matching and other manipulations, was pioneered by developers of the Maple^{[4]} system and then later emulated by Mathematica, Axiom, MuPAD and other systems.

The main problem in the classical approach of symbolic integration is that, if a function is represented in closed form, then, in general, its antiderivative has not a similar representation. In other words, the class of functions that can be represented in closed form is not closed under antiderivation.

Holonomic functions are a large class of functions, which is closed under antiderivation and allows algorithmic implementation in computers of integration and many other operations of calculus.

More precisely, a holonomic function is a solution of a homogeneous linear differential equation with polynomial coefficients. Holonomic functions are closed under addition and multiplication, derivation, and antiderivation. They include algebraic functions, exponential function, logarithm, sine, cosine, inverse trigonometric functions, inverse hyperbolic functions. They include also most common special functions such as Airy function, error function, Bessel functions and all hypergeometric functions.

A fundamental property of holonomic functions is that the coefficients of their Taylor series at any point satisfy a linear recurrence relation with polynomial coefficients, and that this recurrence relation may be computed from the differential equation defining the function. Conversely given such a recurrence relation between the coefficients of a power series, this power series defines a holonomic function whose differential equation may be computed algorithmically. This recurrence relation allows a fast computation of the Taylor series, and thus of the value of the function at any point, with an arbitrary small certified error.

This makes algorithmic most operations of calculus, when restricted to holonomic functions, represented by their differential equation and initial conditions. This includes the computation of antiderivatives and definite integrals (this amounts to evaluating the antiderivative at the endpoints of the interval of integration). This includes also the computation of the asymptotic behavior of the function at infinity, and thus the definite integrals on unbounded intervals.

All these operations are implemented in the *algolib* library for Maple.^{[5]}
See also the Dynamic Dictionary of Mathematical Functions.^{[6]}

For example:

is a symbolic result for an indefinite integral (here *C* is a constant of integration),

is a symbolic result for a definite integral, and

is a numerical result for the same definite integral.