# What assumptions do I need to make Mathematica integrate a function?

When I feed Mathematica the following integral:

Integrate[Sqrt[(A - x) (B - x)/x], {x, 0, B}]


it spits it back out without evaluating it. However, it can evaluate the integral

Integrate[Sqrt[(2 - x) (1 - x)/x], {x, 0, 1}]


just fine. From reading other questions, I think the problem is that I need to add more assumptions. I tried every assumption I know about:

Integrate[Sqrt[(A - x) (B - x)/x], {x, 0, B},
Assumptions -> {A > 0, B > 0, A > B, x ∈ Reals, A ∈ Reals, B ∈ Reals}]


but Mathematica still won't do the integral. I know it has to be able to do the integral, since it can do it for definite values of $A$ and $B$ just fine! What other assumptions do I need to add to make it work?

• Tried it on Maple. Maple 2016 gives an answer, by assuming 0<a<b. I do not know if the answer is correct or not. Here is screen shot !Mathematica graphics – Nasser Dec 8 '16 at 6:32
• Welcome to Mathematica.SE! 1) As you receive help, try to give it too, by answering questions in your area of expertise. 2) Take the tour and check the faqs! 3) When you see good questions and answers, vote them up by clicking the gray triangles, because the credibility of the system is based on the reputation gained by users sharing their knowledge. Also, please remember to accept the answer, if any, that solves your problem, by clicking the checkmark sign! – user9660 Dec 8 '16 at 6:38
• @Nasser: I think the Maple answer is correct ( An exacter answer is obtained by the AllSolutions option.) because numeric calculations for concrete values of the parameters confirm it. – user64494 Dec 8 '16 at 7:52
• @user64494 Consider registering your account, then you'll be able to reap all benefits of this site. – Artes Dec 8 '16 at 10:44
• Note that adding the assumption A > 0 means that the assumption Element[A, Reals] is unnecessary, as that is already automatically subsumed by the former. – J. M. is away Dec 11 '16 at 3:29

There are two different issues:

1. suboptimal handling of elliptic integrals in Mathematica, this is why Integrate with appropriate assumptions doesn't provide satisfactory results.

2. unsatisfactory feedback of assumptions on the results

Before of playing with assumptions let's slightly reformulate the problem by changing the integration variable (x -> z == x/b): $$\int_{0}^{b} \sqrt{ \frac{(a-x)(b-x)}{x}} dx = b^{3/2} \int_{0}^{1} \sqrt{ \frac{(\frac{a}{b}-z)(1-z)}{z}} dz$$

Now the integral can be simply calculated with the appropriate assumption (a/b == c > 1):

b^(3/2) Integrate[ Sqrt[(c - x) (1 - x)/x], {x, 0, 1}, Assumptions -> c > 1]

(1/(3 (-1 + c))) b^(3/2) (2 Sqrt[-1 + c] (-1 + c^2) EllipticE[1/(1 - c)]
- 2 c (Sqrt[-1 + c] (1 + c) EllipticK[1/(1 - c)]
- 2 I (-1 + c) (EllipticK[1 - c] - I EllipticK[c])))


Ad.1 The result is not manifestly real ( see also this answer) however it can be easily checked by choosing various constants, e.g. in the OP we had a == 2 and b == 1, therefore

% /. c -> 2

1/3 (6 EllipticE[-1] - 4 (3 EllipticK[-1] - 2 I (EllipticK[-1] - I EllipticK)))


which is the same numerically as the exact integral

Chop @ N @ %

2.07216

Plot[ ReIm[(1/(3 (-1 + c))) (2 Sqrt[-1 + c] (-1 + c^2) EllipticE[
1/(1 - c)] - 2 c (Sqrt[-1 + c] (1 + c) EllipticK[1/(1 - c)]
- 2 I (-1 + c) (EllipticK[1 - c] - I EllipticK[c])))],
{c, 0, 5}, Evaluated -> True, Exclusions -> c == 1, PlotStyle -> Thick]


This plot demonstrates that the integral is real for c > 1: Mathematica 10 cannot simplify the result asssuming c > 1, one should play further with special functions or exploit capabilities of MathematicalFunctionData (new in version 11 ), which could help in providing manifestly real symbolic result.

Ad.2 The integral with a/b instead of c does not yield the result, evaluate e.g.

b^(3/2) Integrate[Sqrt[(a/b - x) (1 - x)/x], {x, 0, 1}, Assumptions -> a > b]


Since Artes has already pointed to my previous answer, and my opinion remains unchanged to this very day, let me supply the closed form for your integral, obtained using formula 233.07 in Byrd and Friedman:

With[{A = 2, B = 1},
{NIntegrate[Sqrt[(A - x) (B - x)/x], {x, 0, B}, WorkingPrecision -> 20],
N[2/3 (A/B)^(3/2) ((1 + B/A) EllipticE[B/A] - (1 - B/A) EllipticK[B/A]), 20]}]
{2.0721594194996321471, 2.0721594194996321443}