Integrals That Can and Cannot Be Done

Evaluating integrals is much more difficult than evaluating derivatives. For derivatives, there is a systematic procedure based on the chain rule that effectively allows any derivative to be worked out. But for integrals, there is no such systematic procedure.

One of the main problems is that it is difficult to know what kinds of functions will be needed to evaluate a particular integral. When you work out a derivative, you always end up with functions that are of the same kind or simpler than the ones you started with. But when you work out integrals, you often end up needing to use functions that are much more complicated than the ones you started with.

This integral can be evaluated using the same kind of functions that appeared in the input:
Click for copyable input
But for this integral the special function LogIntegral is needed:
Click for copyable input
It is not difficult to find integrals that require all sorts of functions:
Click for copyable input
This integral involves an incomplete gamma function. Note that the power is carefully set up to allow any complex value of x:
Click for copyable input

The Wolfram Language includes a very wide range of mathematical functions, and by using these functions a great many integrals can be done. But it is still possible to find even fairly simplelooking integrals that just cannot be done in terms of any standard mathematical functions.

Here is a fairly simplelooking integral that cannot be done in terms of any standard mathematical functions:
Click for copyable input

The main point of being able to do an integral in terms of standard mathematical functions is that it lets one use the known properties of these functions to evaluate or manipulate the result one gets.

In the most convenient cases, integrals can be done purely in terms of elementary functions such as exponentials, logarithms and trigonometric functions. In fact, if you give an integrand that involves only such elementary functions, then one of the important capabilities of Integrate is that if the corresponding integral can be expressed in terms of elementary functions, then Integrate will essentially always succeed in finding it.

Integrals of rational functions are straightforward to evaluate, and always come out in terms of rational functions, logarithms and inverse trigonometric functions:
Click for copyable input
The integral here is still of the same form, but now involves an implicit sum over the roots of a polynomial:
Click for copyable input
This finds numerical approximations to all the root objects:
Click for copyable input
Integrals of trigonometric functions usually come out in terms of other trigonometric functions:
Click for copyable input
This is a fairly simple integral involving algebraic functions:
Click for copyable input
Here is an integral involving nested square roots:
Click for copyable input
By nesting elementary functions you sometimes get integrals that can be done in terms of elementary functions:
Click for copyable input
But more often other kinds of functions are needed:
Click for copyable input
Integrals like this typically come out in terms of elliptic functions:
Click for copyable input
But occasionally one can get results in terms of elementary functions alone:
Click for copyable input
Integrals like this can systematically be done using Piecewise:
Click for copyable input

Beyond working with elementary functions, Integrate includes a large number of algorithms for dealing with special functions. Sometimes it uses a direct generalization of the procedure for elementary functions. But more often its strategy is first to try to write the integrand in a form that can be integrated in terms of certain sophisticated special functions, and then having done this to try to find reductions of these sophisticated functions to more familiar functions.

To integrate this Bessel function requires a generalized hypergeometric function:
Click for copyable input
Sometimes the integrals can be reduced to more familiar forms:
Click for copyable input

A large book of integral tables will list perhaps a few thousand indefinite integrals. The Wolfram Language can do essentially all of these integrals. And because it contains general algorithms rather than just specific cases, the Wolfram Language can actually do a vastly wider range of integrals.

You could expect to find this integral in any large book of integral tables:
Click for copyable input
To do this integral, however, requires a more general algorithm, rather than just a direct table lookup:
Click for copyable input

Particularly if you introduce new mathematical functions of your own, you may want to teach the Wolfram Language new kinds of integrals. You can do this by making appropriate definitions for Integrate.

In the case of differentiation, the chain rule allows one to reduce all derivatives to a standard form, represented in the Wolfram Language using Derivative. But for integration, no such similar standard form exists, and as a result you often have to make definitions for several different versions of the same integral. Changes of variables and other transformations can rarely be done automatically by Integrate.

This integral cannot be done in terms of any of the standard mathematical functions built into the Wolfram Language:
Click for copyable input
Before you add your own rules for integration, you have to remove write protection:
Click for copyable input
You can set up your own rule to define the integral to be, say, a "Jones" function:
Click for copyable input
Now the Wolfram Language can do integrals that give Jones functions:
Click for copyable input

As it turns out, the integral can in principle be represented as an infinite sum of hypergeometric functions, or as a suitably generalized Kampé de Fériet hypergeometric function of two variables.