For some non-negative numbers $m_1$, $m_2$, $E$ I define a function $$ f\left(\boldsymbol{q},E\right)=\frac{1}{2\omega_{1}\omega_{2}}\frac{1}{\omega_{1}+\omega_{2}+E}+\frac{1}{4\omega_{1}\omega_{2}}\frac{1}{\omega_{1}-\omega_{2}-E}+\frac{1}{4\omega_{1}\omega_{2}}\frac{1}{\omega_{2}-\omega_{1}-E} $$ where $$ \omega_{1,2}\left(\boldsymbol{q}\right)=\sqrt{m_{1,2}^{2}+\boldsymbol{q}^{2}} $$ Note that $f$ actually depends on $\boldsymbol{q}^2$.

I want to evaluate at least numerically the integral over all $\mathbb{R}^3$ $$ I\left(E\right)=\int\frac{d^{3}q}{\left(2\pi\right)^{3}}f\left(\boldsymbol{q},E\right)e^{i\boldsymbol{q}\cdot\boldsymbol{n}} $$ where $\boldsymbol{n}$ in a non-negative integer 3-vector.

I've tried NIntegrate using e.g. $m_1=0.2$, $m_2=0.7$, $E=0.8$ and $\boldsymbol{n}=\left(1,1,1\right)$ . The calculation takes very long and I just abort. I've tried changing the input numbers, adding some methods as options. At most, I get warnings like NIntegrate::slwcon. I believe Mathematica runs into trouble because of the oscillating exponential.

With a simpler version, where $f$ is just $$ f\left(\boldsymbol{q}\right)=\frac{1}{2\sqrt{m^{2}+\boldsymbol{q}^{2}}} $$ similar issues appear. When it works, after long time, it's quite different from the analytical result.

Are you aware of some magical methods/options combination that would speed up the process and give a reliable result? Of course, if you know some analytical converging expression for the integral, I'd be happy to know.

  • 2
    $\begingroup$ Start by posting valid Mathematica code instead of MathJax equations. Like it is now anyone wanting to help has to type all definitions themselves, so help us help you :) $\endgroup$ Commented Jun 23, 2016 at 18:05
  • $\begingroup$ Ok, sorry. I will, starting from next time :) $\endgroup$ Commented Jun 23, 2016 at 20:07

1 Answer 1


It looks like the best approach is to use spherical coordinates:

ω1 = Sqrt[m1 + r^2];
ω2 = Sqrt[m2 + r^2];
f = 1/(ω1 ω2) 1/(ω1 + ω2 + e) + 
  1/(2 ω1 ω2) 1/(ω1 - ω2 - e) + 
  1/(2 ω1 ω2) 1/(ω2 - ω1 - e)

==> 1/(
 2 Sqrt[m1 + r^2] Sqrt[
  m2 + r^2] (-e + Sqrt[m1 + r^2] - Sqrt[m2 + r^2])) + 1/(
 2 Sqrt[m1 + r^2] Sqrt[
  m2 + r^2] (-e - Sqrt[m1 + r^2] + Sqrt[m2 + r^2])) + 1/(
 Sqrt[m1 + r^2] Sqrt[m2 + r^2] (e + Sqrt[m1 + r^2] + Sqrt[m2 + r^2]))

Block[{m1 = .2, m2 = .7, e = .8},
 NIntegrate[r^2 f Exp[I z r], {r, 0, Infinity}, {z, -1, 1}]]

(* ==> -1.69435 + 8.38814*10^-11 I *)

Here I chose the direction of $\mathbf{n}$ as the z axis for the integration variable and transformed to spherical coordinates $r, \theta, \phi$. I omitted the factor $2\pi$ coming from the trivial $\phi $ integration and substituted $z=\cos\theta$. The exponential then becomes $\exp(i \mathbf{q}\cdot\mathbf{n}) = \exp(i r \cos\theta)= \exp(i r z)$. The numerical integration is quite fast with the order of integrations chosen as above.

  • $\begingroup$ Thanks for your answer. Moving to spherical coordinates seems to do the trick and it's valid also for general $\boldsymbol{n}$. The 3d integral reduces to a 1d integral $I\left(E\right)=\frac{4\pi}{\left(2\pi\right)^{3}}\int_{0}^{\infty}dqf\left(q,E\right)q^{2}\frac{\sin\left(q|\boldsymbol{n}|\right)}{q|\boldsymbol{n}|}$ which is easily done with Mathematica. $\endgroup$ Commented Jun 23, 2016 at 20:06
  • $\begingroup$ @AntonioCox Yes, that's right. This trick is encountered quite often in 3D Fourier integrals both in quantum physics and electromagnetism. The integral is also sometimes doable when the dot product with n appears somewhere in front of the exponential. $\endgroup$
    – Jens
    Commented Jun 23, 2016 at 20:27

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.