I am trying to integrate various expressions with Bessel functions. In order to learn basics with Mathematica, I have decided to try a simple case to see what is going on.

I did :

Assuming[ Element[n, Integers] && n > 0 && c > 0 && Im[c] == 0, 
 Integrate[BesselJ[n, c r] r, {r, 0, 1}]] 

I was expecting to see an answer in terms of Bessel functions and their derivatives. Instead, I get an answer in terms of Hypergeometric functions. Is there any way to force Mathematica to express the answer in terms of Bessel functions?


2 Answers 2


For general n, no, but if you choose a value for n and use FunctionExpand, you will get simpler answers.

$Assumptions = Element[n, Integers] && n > 0 && c > 0

int = Integrate[BesselJ[n, c r] r, {r, 0, 1}];

For example the first 3 values of n gives

Table[int, {n, 1, 3}] // FunctionExpand

(* {(Pi*StruveH[0, c]*BesselJ[1, c])/(2*c) - 
   (Pi*StruveH[1, c]*BesselJ[0, c])/(2*c), 
  2/c^2 - (2*BesselJ[0, c])/c^2 - BesselJ[1, c]/c, 
  ((3*Pi*c*StruveH[0, c] - 16)*BesselJ[1, c])/(2*c^2) + 
   ((8 - 3*Pi*StruveH[1, c])*BesselJ[0, c])/(2*c)} *)

If you want a Maple 2018 answer:

Maple code:

sol := `assuming`([int(BesselJ(n, c*r)*r, r = 0 .. 1)], [n::posint, c > 0, Im(c) = 0]);

[-(1/2)*Pi*(BesselJ(0, c)*StruveH(1, c)-BesselJ(1, c)*StruveH(0, c))/c, - 
(c*BesselJ(1, c)+2*BesselJ(0, c)-2)/c^2, -(1/2)*(3*BesselJ(0, c)*StruveH(1, 
c)*Pi*c-3*StruveH(0, c)*BesselJ(1, c)*Pi*c-8*c*BesselJ(0, c)+16*BesselJ(1, 

enter image description here


Your Answer

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

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