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

I have a function given as a parameterized definite integral:

f[a_] := Integrate[BesselJ[0, x - a] BesselJ[0, x + a], {x, -∞, ∞}]

I suspect it has a root near a = 0.8. How can I evaluate this root to an arbitrary precision?

Unfortunately, Mathematica cannot evaluate this integral symbolically, and I don't know if it's possible at all, but I would be glad if anybody could suggest how to do it.

Update: It seems that the integral is actually divergent except some isolated values of a (when a is an odd multiple of π/2, see, and it's never zero when it converges.

share|improve this question
f[a_?NumericQ] := Integrate[ BesselJ[0, x - a] BesselJ[0, x + a], {x, -[Infinity], [Infinity]}] and then FindRoot[f[a], {a, 0.5}] ? – b.gatessucks Jul 24 '14 at 10:11
In V10, NIntegrate[BesselJ[0, x - 1] BesselJ[0, x + 1], {x, 0, Infinity}, Method -> "ExtrapolatingOscillatory"] throws a First::normal message, which I reported. They responded that it was a bug and that the integral is divergent. They said to consider the asymptotic behavior of the Bessel functions at infinity. But it seems to me that ignores the oscillatory behavior. I might have time to investigate later, but I thought you probably had thought about it already. – Michael E2 Jul 30 '14 at 0:12

Vladimir, there is one simple solution:

lst = Table[{a, NIntegrate[BesselJ[0, x - a] BesselJ[0,x + a], {x, -\[Infinity], \[Infinity]}, 
    PrecisionGoal -> 5, Compiled -> True]}, {a, 0.84, 0.85, 0.0001}]

This visualizes the result:

 ListPlot[lst, Frame -> True, FrameLabel -> {Style["a", 16], Style["Integral", 16]}, 
 GridLines -> Automatic]

and should look as follows:

enter image description here

To vary the precision one may play with the a step and the PrecisionGoal option decreasing the former and simultaneously increasing the latter.

There is, however, a question, to what extent this estimate of the integral is correct. I tried also Method -> "ExtrapolatingOscillatory"and it gave a very different result from the one shown above. I hope, my comment is useful.

share|improve this answer

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.