# Why does Integrate declare a convergent integral divergent?

When I try this command

Integrate[1/Sqrt[(s^2 - u)^2 - 1], {s, m, Infinity}, Assumptions -> u > 2 && m > 10]


Mathematica declares that the integral does not converge on {m, ∞}

The integral, though, is clearly convergent, and Mathematica has no trouble evaluating it at any value of $u > 1$. A command such as

Integrate[1/Sqrt[(s^2 - 20.1)^2 - 1], {s, m, Infinity}, Assumptions -> m > 10]


works fine.

• Version 12.0 returns the input in several minutes. – user64494 Mar 3 '20 at 20:23

To make your integral convergent, you should have assumed m > Sqrt[u + 1]; then, you shouldn't have assumed other conditions for m. If we do that, we get a pretty nice result :

int[u_, m_] = Integrate[ 1/Sqrt[(s^2 - u)^2 - 1], {s, m, Infinity},
Assumptions -> u > 2 && m > Sqrt[u + 1]]

 EllipticF[ArcSin[m/Sqrt[-1 + u]], (-1 + u)/(1 + u)]/Sqrt[1 + u] +
I (2/Sqrt[-1 + m^2 - u] + EllipticK[2/(1 + u)]/Sqrt[1 + u])

% // TraditionalForm Edit

This result isn't manifestly real while the integral should be. The problem comes from the fact that ArcSin is a well defined function assuming an appropriate convention on certain region. Evaluating numerically the result we get nonvanishing imaginary part because Mathematica assumes an arbitrary ( inadequate in this case) convention. However, we should simply cancel that part. We can see this problem defining a numerical integral :

nint[u_, m_] := NIntegrate[1/Sqrt[(s^2 - u)^2 - 1],
{s, m, Infinity} ] /; u > 2 && m > Sqrt[u + 1]


e.g.

{ int[3, 3] // N, nint[3, 3]}

 {0.38116 + 0.894427 I, 0.38116}

{ int[5, 6] // N, nint[5, 6]}

 {0.175115 + 0.365148 I, 0.175115}


Thus the result itself is correct but the symbolic integral int should be supplemented by an adequate rule, in our case it is simply int[u,m] -> Re @ int[u,m].

• this explain is nice. – Junho Lee Sep 22 '14 at 11:53

Artes has already explained how Integrate[] goofs up. My personal opinion is that Integrate[]'s handling of elliptic integrals is rather suboptimal in general, so I'll supply a closed form that you might be interested in:

intTrue[u_, m_] := InverseJacobiCN[(m^2 - Sqrt[u^2 - 1])/(m^2 + Sqrt[u^2 - 1]),
(1 + u/Sqrt[u^2 - 1])/2]/(2 (u^2 - 1)^(1/4))


(I derived this using formula 266.00 in Byrd and Friedman)

Test, with Artes's cases:

N[{intTrue[3, 3], intTrue[5, 6]}, 20] // Chop
{0.38116007331988842687, 0.17511500066578163200}