# What tools does Mathematica have for solving indefinite integrals?

I haven't used Mathematica regularly in about 15 years, so I'm a bit out of date on what the latest tools are for indefinite integration. I have Mathematica 11 on my computer. through searching online, I found the function IntegrateAlgebraic, and I also downloaded and added Rubi to see what that can do.

But, I was not able to get an antiderivative of the functions I'm studying. I can't tell if this is because I am using the tool improperly. So, I need some advice on how I should proceed.

For example, it looks like I should be able to integrate this:

f[x] = 1 + x^2*Log[1 + x^2]

Integrate[1/f[x], x]

...but, it does not evaluate it:

\[Integral]1/(1 + x^2 Log[1 + x^2]) \[DifferentialD]x

What techniques are available for integrals like this?

• "it looks like I should be able to integrate this" Why do you think so? Most integrals are hard, and don't have expressions in terms of elementary funcions. Commented Jun 13 at 1:10
• There are many integrals that do not have anti-derivatives. Here is a list of 4,034 of them. I am sure there are more. Commented Jun 13 at 1:47
• Although it won't make a difference, your definition of f should read f[x_] = 1 + x^2*Log[1 + x^2];, i.e., you should use a pattern as the argument. Commented Jun 13 at 2:13
• Maybe I am assessing the integrand poorly. I studied this function with definite integrals and plots, and it is also closely related to some other integrable functions. Of course, yes, I also knew it may not have an antiderivative...but unless I exhaust all the methods by hand, I don't know if it's not integrable, or if I am failing to use all the power of my CAS. Hence, my question here. Commented Jun 13 at 3:25

What tools does Mathematica have for solving indefinite integrals?

It says

For indefinite integrals, an extended version of the Risch algorithm is used whenever both the integrand and integral can be expressed in terms of elementary functions, exponential integral functions, polylogarithms, and other related functions.

For other indefinite integrals, heuristic simplification followed by pattern matching is used.

The algorithms in the Wolfram Language cover all of the indefinite integrals in standard reference books such as Gradshteyn–Ryzhik.

Integrate uses about 500 pages of Wolfram Language code and 600 pages of C code.

Basically, Risch algorithm can find anti-derivative of integrand made up of elementary functions in terms of elementary functions if one exists. If it can't then no such one exists.

But Risch algorithm have may parts and subparts and extensions and as far as I know the full algorithms is not fully implemented in all its glory by any CAS system, but some have more complete implementation than others. see rischs-algorithm-for-symbolic-integration-and-its-variations

I read that Mathematica and Fricas and Maple have near complete implementations but to what extent, only the experts in this field would know.

Rubi does not use Rish, but is Rule based and heavily uses pattern matching to find anti-derivatives. It has over 7,000 rules to do this. Rubi was written by Albert Rich.

Other Mathematica functions for integration are

IntegrateAlgebraic

IntegrateRational

IntegratePFD

All by Sam Blake.

I tried Maple, Mathematica, Rubi and Fricas on your integral and none of them can solve it.

Since your function is elementary function, then there is very good chance this implies it does not have elementary anti-derivative else Mathematica would have solved it using Risch. since Risch says if elementary one exists, it will find it.

When Risch fails to find one, Mathematica then must try other methods as lookup or heuristic or pattern matching to find non elementary one if possible as the note above says and these all must have failed on this.

Btw, your integrand is smooth and continues everywhere

f[x_]:=1+x^2*Log[1+x^2]
Plot[1/f[x],{x,-10,10},PlotRange->All]


But the math people say that this on its own does not necessarily mean there exists antiderivative $$F(x)$$ such that $$F'(x)=f(x)$$ where $$F(x)$$ is made up of elementary functions.

There are many examples of continuous everywhere functions made up of elementary functions that do not have antiderivatives that is elementary. An example is $$e^{x^2}$$

f[x_] := Exp[x^2]
Plot[f[x], {x, -1, 1}]


Integrate[f[x], x]


Which is not elementary.

• I also tried FriCAS, without success. This does suggest there is no antiderivative. Thank you.⁷ Commented Jun 13 at 12:03