I am evaluating an integral with constants that are not specified, but I am not sure why it takes so long for it to give an output, so I just decided to cancel the running. The integral is given by,

$\int_0^1 dy \frac{ c a^3 y^2 }{ ((1 - b^3 y^3)(1 - c^2 a^4 y^4))^{1/2} }$

d = 2;
z = 10;
b = a/z;
SumConvergence[(c a^(d + 1)
     y^d)/((1 - b^(d + 1) y^(d + 1)) (1 - c^2 (a y)^(2 d)))^(1/2), y]
Integrate[(c a^(d + 1) y^
    d)/((1 - b^(d + 1) y^(d + 1)) (1 - c^2 (a y)^(2 d)))^(1/2), {y, 0,
   1}, Assumptions -> {c > 0, a > 0}]

d indicates dimensions so in this case I set for example, d=2, while a,b are constants (leave it open so I can put values later). In the end, I want to get an expression for "c" in terms of "a" (since "a" also gives "b") through evaluation of the integral.

UPDATE: I changed the integral expression a bit compared to my first post, now I tried doing the SumConvergence command and it returns a TRUE value so this new integral that I posted converges but I do not know why it does not return the condition of convergence. Also, the Integrate command still does not return anything even though the function converges.

  • $\begingroup$ You have a typo in that you have ay which should have a space between the two letters: a y. Also, you don't need to state y>0. But after fixing those errors, Mathematica states that the integral does not converge on {0,1}. But it does converge if you restrict a<0. $\endgroup$
    – JimB
    Aug 23, 2020 at 5:44
  • $\begingroup$ d = 2; z = 1; b = a/z; Integrate[(y^d (1 - (b y)^(d + 1))^1/2)/(1 - c^2 (a*y)^(2 d))^1/2, {y, 0, 1}, Assumptions -> c > 0 && a > 0] produces $$\text{ConditionalExpression}\left[\frac{2 a^2 c+\log \left(\frac{2}{a^2 c+1}-1\right)-2 c^{3/2} \tan ^{-1}\left(a \sqrt{c}\right)+2 c^{3/2} \tanh ^{-1}\left(a \sqrt{c}\right)}{16 a^3 c^3},c<\frac{1}{a^2}\right] .$$ $\endgroup$
    – user64494
    Aug 23, 2020 at 8:28
  • $\begingroup$ @user64494 I think the exponent 1/2 affects the result, I tried writing 0.5 instead of 1/2 and it does not return anything. $\endgroup$
    – mathemania
    Aug 23, 2020 at 8:29
  • 1
    $\begingroup$ Your Mathematica code does not match your latex expression at all. Try evaluating z^1/2 and then try z^(1/2) or Sqrt[z] and see the difference. Introducing decimal points is probably a very bad idea. Once you fix your exponent problem you can also try Apart[..your fraction..] which should get the square root out of the denominator, but even that doesn't seem to be enough. You just have a very complicated rational function with no easy integral. $\endgroup$
    – Bill
    Aug 23, 2020 at 8:39
  • $\begingroup$ @Bill Sorry, I fixed my code in the post although what I have actually running in my Mathematica is properly written. Bottomline is, it does not return anything for whatever conditions I put in the Assumptions. $\endgroup$
    – mathemania
    Aug 23, 2020 at 8:55

1 Answer 1



It looks like there is only a numerical solution. Try

int[a_?NumericQ, c_?NumericQ] := 
Block[{d = 2, z = 10}, 
NIntegrate[(c a^(d + 1) y^d)/((1 - (a/z) ^(d + 1) y^(d + 1)) (1 - c^2 (a y)^(2 d)))^(1/2) , {y, 0, 1}, AccuracyGoal -> 5]]

int[a,c] might be used like a general Mathematica function.

Plot3D[int[a, c], {a, 0, 2}, {c, 0, 3}, AxesLabel -> {"a", "c", "int[a,c]"},PlotRange -> {0, 1}] // Quiet

enter image description here

Now it possibel to tune a[c]

FindRoot[ int[2, z] == 1 , {z, 0 }] // Quiet//Chop
(*{z -> 0.244368}*)
  • $\begingroup$ What is the purpose of "?NumericQ" in the int function? As I know it is just to ensure an object is a numeric quantity. Also what is the reason of putting "//Quiet" in the end of the plot? Is it supposed to display a warning? $\endgroup$
    – mathemania
    Aug 24, 2020 at 15:07
  • $\begingroup$ The purpose of _?Numerics is to run NIntegrate only if a,c are numeric. //Quiet fades out some messages of NIntegrate. $\endgroup$ Aug 24, 2020 at 18:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.