Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive

MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Fourier transform in arbitrary dimension?

  • To: mathgroup at
  • Subject: [mg88105] Re: Fourier transform in arbitrary dimension?
  • From: Roman <rschmied at>
  • Date: Fri, 25 Apr 2008 05:26:44 -0400 (EDT)
  • References: <fumr2o$sh2$>

Hi Barrow,

I think the easiest would be to go to hyperspherical coordinates.
Calling "theta" the angle between Q and x, such that Q\cdot x =
q*x*cos(theta), the transformation is

d^Dq  -->  P(D) * q^{d-1} * sin(theta)^{d-2} dq dtheta

with P(D) = 2 * pi^{(D-1)/2} / Gamma((D-1)/2)

In Mathematica writing: substituting d for D because of pre-assigned
meaning of D,

P[d_] = 2*Pi^((d-1)/2)/Gamma[(d-1)/2];

A[d_] := Integrate[q^(d-1) Sin[th]^(d-2) P[d]/(2 Pi)^d*Exp[-
I*q*x*Cos[th]] * 1/q^2,
   {q, 0, Infinity}, {th, 0, Pi}, Assumptions -> x > 0]

Doing the angular integral first, you get

A[d_] := Integrate[(q^(d/2)*x^(1-d/2)*BesselJ[d/2-1,q*x])/(2*Pi)^(d/2)
* 1/q^2,
   {q, 0, Infinity}, Assumptions -> x > 0]

where your function to be transformed, 1/q^2, is still recognizable.
Mathematica cannot do this last step directly; it takes some manual
fiddling with intermediate results to see that the angular integral is
really just a Bessel function.

Assuming that 1/q^2 is really the function you wish to transform, you
can simplify by substituting z=q*x, getting

A[d_] := (2*Pi)^(-d/2) * x^(2-d) * Integrate[z^(d/2-2)*BesselJ[d/
2-1,z], {z, 0, Infinity}]

This integral does not converge for d>=5. However, it is oscillatory,
and by neglecting the oscillating part we can get a decent result:

J[d_, Z_] = Integrate[z^(d/2-2)*BesselJ[d/2-1, z], {z, 0, Z},
   Assumptions -> {Z > 0, d > 2}];
Series[J[d, Z], {Z, Infinity, 0}] // Normal // Expand

You see that the result contains three terms: the first two are
oscillatory, and the third one is constant in Z, equal to
2^(d/2-2)*Gamma[d/2-1]. Only the last one is relevant.

Putting everything together, the result of the d-dimensional Fourier
transform of 1/q^2 is
A[d_] = Gamma[d/2-1]/(4*Pi^(d/2)*x^(d-2))

Since you knew this already (up to the prefactor), I hope you are more
interested in the general solution. The last step, neglecting the
divergent oscillatory terms in the integral for d>=5, is a bit icky,
but seems to work. Maybe somebody else has a good explanation of
what's happening here?


On Apr 23, 10:13 am, Barrow <GRsemi... at> wrote:
> Dear all,
> I would like to calculate a Fourier transform in arbitrary dimension
> , say D, of the function 1/q^2, where q denotes the absolute value
> of a D dimensional spatial vector.
> The integral I have to perform is
> \int \frac{d^Dq}{(2\pi)^D}\exp(-iQ\cdot x)\frac{1}{q^2}
> where |Q| = q.
> But I can't find a way to tell Mathematica to calculate this integral
> "of dimension D."
> PS. The answer is proportional to \Gamma(D/2 - 1)(x^2/4)^{1-D/2}
> Any ideas would be appreciated.
> Sincerely Barrow

  • Prev by Date: Re: Re: installing Playe rPro killed using Mathematica itself:
  • Next by Date: Base function
  • Previous by thread: Re: Fourier transform in arbitrary dimension?
  • Next by thread: Hamiltonian System