# Coulomb potential as a Fourier transform

It is well known from theory that the Coulomb potential can be obtained as a Fourier transform in the following way:

$$\int \frac{\mathrm{d}^3p}{\left( 2 \pi \right)^3} \frac{e^{\mathrm{i} \mathbf{p} \cdot \mathbf{r}}}{\mathbf{p}^2+m^2} = \frac{e^{-rm}}{4 \pi r} \hspace{20pt} r \equiv \sqrt{x^2+y^2+z^2}$$

(The mass term is here for mathematical convergence reasons, one can set the mass to zero after the transform. The Fourier transform also has a precise physical meaning, but that's out of the scope of this question.) I am trying to reproduce this result with Wolfram Mathematica; skipping some unnecessary constants I use the following code:

FourierTransform[1/(k*k + q*q + r*r + m*m), {k, q, r}, {x, y, z}]


which does not yield the expected result... I'm not an expert of Mathematica, by any means, but I cannot see why it gets this Fourier transform wrong.

• If it's not a charade, could you please give use the (unexpected) output?
– F'x
Apr 17, 2012 at 21:41
• @F'x In 2D it fails to evaluate the output with the mass term. In 3D it gets stuck for ages thinking and then gives the input as output (not able to solve it, I suppose). I remember that in 2D the mass is not needed for convergence, so I've tried and the output is: 1/2 (-HeavisideTheta[-x] (2 EulerGamma + Log[-x - I y] + Log[-x + I y]) - HeavisideTheta[x] (2 EulerGamma + Log[x - I y] + Log[x + I y])) while I was expecting: $k \ln(r)$
– zakk
Apr 17, 2012 at 21:44
• I'm fine with the logs, but the EulerGamma is completely unexpected!
– zakk
Apr 17, 2012 at 21:46
• It often helps to assist Mathematica with a little preliminary analysis. Upon observing the integral is spherically symmetric, you may set $\mathbf{r}=(r,0,0)$ and perform the integration over the first coordinate. (Set $m=0$; you don't need this term for convergence.) The residual symmetry suggests using polar coordinates, in which the integration is immediate and yields $1/(4\pi r)$. Apr 17, 2012 at 22:50

The problem here is that Mathematica doesn't recognize {x, y, z} as some kind of a vector object that should be treated as grouped together; instead, it substitutes in three independent variables, and probably starts integrating them one by one. The result is a very complicated integral.

If you do the coordinate transformation yourself, you can reproduce the result. Simply use $\mathrm dp = \mathrm d\|p\|\|p\|^2\mathrm d\vartheta\sin(\vartheta)$ to transform to spherical. The resulting integral can be calculated:

Assuming[pAbs >= 0 && m > 0 && r > 0,
(1/(2*Pi)^3)*Integrate[ (* phi integral *)
Integrate[ (* |p| integral *)
Integrate[ (* theta integral *)
(Exp[I*r*pAbs*Cos[pTheta]]/(pAbs^2 + m^2))*pAbs^2*Sin[pTheta],
{pTheta, 0, Pi}
],
{pAbs, 0, Infinity}
],
{pPhi, 0, 2*Pi}
]
]


$\dfrac{e^{-mr}}{4\pi r}$

• I can't reproduce the result, if I copy your code and paste it into a new Mathematica workbook I get: -(Sinh[m r]/(4 [Pi] r)) however, this is clearly the way to go! :-) Answer accepted!
– zakk
Apr 17, 2012 at 23:23
• I can't reproduce your irreproducability: i.imgur.com/nhzZ2.png - Did you try evaluating using a fresh kernel? Apr 17, 2012 at 23:25
• Thank you this was really helpful to solving Fourier transform in Jacobi Polynomial Dec 16, 2019 at 20:07