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 https://math.stackexchange.com/a/878420/19661), and it's never zero when it converges.

  • $\begingroup$ f[a_?NumericQ] := Integrate[ BesselJ[0, x - a] BesselJ[0, x + a], {x, -[Infinity], [Infinity]}] and then FindRoot[f[a], {a, 0.5}] ? $\endgroup$ – b.gates.you.know.what Jul 24 '14 at 10:11
  • $\begingroup$ 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. $\endgroup$ – Michael E2 Jul 30 '14 at 0:12
  • 1
    $\begingroup$ The integral under consideration diverges for each $a>0$ since the integrand has the asymptotics $$ 2\,{\frac {\cos \left( -x+a+\pi/4 \right) \sin \left( x+a+\pi/4 \right) }{\pi\,x}}+O \left( {x}^{-2} \right) $$ at infinity.. $\endgroup$ – user64494 Jun 5 '18 at 15:29
  • $\begingroup$ I deleted my answer. I had tried a series expansion ser5[x_, a_] = Series[BesselJ[0, x - a] BesselJ[0, x + a], {x, Infinity, 5}] // Normal // FullSimplify , and integration intser[a_] = Integrate[ser5[x, a], {x, 1000, Infinity}] gave result, which was wrong. Integrate didn't take into accout, that integral does only converge for a - values beeing odd multiplles of Pi/4. $\endgroup$ – Akku14 Jun 6 '18 at 12:46

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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