Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Bug introduced in 8.0.4 or earlier and persists through 10.2.

The Hankel Transform is given by

Integrate[f[x] x BesselJ[0, x t], {x, 0, Infinity}]

It is self-inverse, so

Integrate[F[t] t BesselJ[0, x t], {t, 0, Infinity}]

gives the back-transformation.

I tried out a simple case:

Integrate[UnitBox[x/2] x BesselJ[0, x t], {x, 0, Infinity}]

which promptly results in

BesselJ[1, t]/t

This is correct. However, if I do the back-transformation:

Integrate[BesselJ[1, t]/t t BesselJ[0, x t], {t, 0, Infinity}]

the integration takes noticeably longer (which is expected since the function oscillates) and the result is

ConditionalExpression[0, x>1]

While that single condition would be correct - UnitBox[x/2] == 0 for x > 1 - the rest of the function won't show up.

Is there any way to make the obviously missing parts show up?

Related but not quite what I'm asking:
Hankel Transform integrals won't work in Mathematica
Strange result when integrating BesselJ functions

share|improve this question

Try :

Integrate[BesselJ[1, t]/t t BesselJ[0, x t], {t, 0, Infinity}, 
   Assumptions -> { x > 0}]
share|improve this answer
Why not Integrate[BesselJ[1, t] BesselJ[0, x t], {t, 0, Infinity}, Assumptions -> {x > 0}]? – m_goldberg Feb 2 '13 at 14:45
That apparently works. Weird. I think I previously had a case where it didn't. – kram1032 Feb 2 '13 at 14:55
@m_goldberg of course, that bit of simplifying would make it a bit faster but it's less general. I had this problem with more complex functions as input as well. Ones that wouldn't simplify so readily. – kram1032 Feb 2 '13 at 14:56
Integrate[(Sin[t]-t Cos[t])/t^2 BesselJ[0,t x],{t,0,Infinity},Assumptions->x>0] should return something equivalent to UnitBox[x/2]Sqrt[1-x^2] (at least for x>0) but doesn't get evaluated at all. Without assumptions, it returns ConditionalExpression[0,x>1 || x<-1] - basically the same problem but not fixable with that simple assumption. – kram1032 Feb 2 '13 at 15:05

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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