Goal:
I need to evaluate numerically an integral of the following form:
$$ \int_0^\infty \frac{dx}{(a^2+x)\sqrt{(a^2+x)(b^2+x)(c^2+x)}} $$ where $a,b,c \in \mathbb{R}$ are in the interval $(1,1000)$.
This needs to be done in Python.
Problem:
The integration algorithm does not converge, but I know the integral is convergent. To my knowledge there is only one package available that handles improper integrals: scipy.integrate.quad. This method does not converge for the following values: $a=240,b=110,c=100.$ I receive the warning ``IntegrationWarning: The integral is probably divergent, or slowly convergent.'' The integral evaluates to $1.36 \times 10^{-9}$. Computing the same integral in Matlab and Mathematica results in a value of $1.13 \times 10^{-7}$ in each case, with no warnings or errors. This strongly suggests that the integral converges just fine, and that the problem lies in scipy's quadrature routine.
Attempts at a Solution:
The paper from which I took this integral indicates that it is elliptic. There exist several methods to integrate such functions numerically; however, I cannot find any standard elliptic integrals of this form (checking, for example, the discussion on mathworld and also posts such as this one on these forums).
Others have had problems with this package also; for example, this post. The accepted solution in this case is to convert the the integral into an ODE. I have seen, however, that this can be quite dangerous.
I have also considered a change of variables in order to transform this into an elliptic form; I cannot find any. For example, an obvious one, $x \to y^2$, results in an undesirable factor of $y$ in the numerator.
What I think I need:
I believe I will need to implement some sort of quadrature routine manually. Are there any that might be well-suited to this (seemingly benign) integral?