       Re: Fourier Transform

• To: mathgroup at smc.vnet.net
• Subject: [mg93540] Re: Fourier Transform
• From: Nikolaus Rath <Nikolaus at rath.org>
• Date: Thu, 13 Nov 2008 21:08:18 -0500 (EST)
• References: <gf8rgp\$poq\$1@smc.vnet.net> <gfbur0\$43e\$1@smc.vnet.net> <gfgqhc\$dkv\$1@smc.vnet.net> <gfh3cl\$g1l\$1@smc.vnet.net>

```Jens-Peer Kuska <kuska at informatik.uni-leipzig.de> writes:
>>>> Consider the following expression:
>>>>
>>>> expr = (c^2 Sqrt[2 \[Pi]]
>>>>     DiracDelta[ky + sy] DiracDelta[sz])/(-c^2 sx^2 - c^2 sy^2 -
>>>>    c^2 sz^2 + \[Omega]^2);
>>>> \$Assumptions = {{x, y, z} \[Element] Reals};
>>>> InverseFourierTransform[expr, {sx, sy, sz}, {x, y, z}] // Timing
>>>> Integrate[
>>>>   1/Sqrt[2 \[Pi]] Exp[-I sx x] Exp[-I sy y] Exp[-I sz z]
>>>>    expr, {sx, -\[Infinity], \[Infinity]}, {sy, -\[Infinity], \
>>>> \[Infinity]}, {sz, -\[Infinity], \[Infinity]}] // Timing
>>>>
>>>> On my system with Mathematica 6, the explicit integration takes 3
>>>> times as long as the InverseFourierTransform and also gives several
>>>> additional required assumptions for the same result (e.g. Im[-ky^2 +
>>>> \[Omega]^2/c^2] != 0 || Re[-ky^2 + \[Omega]^2/c^2] <= 0).
>>>>
>>>> How is this possible? Is Mathematica using some special tricks when
>>>> evaluating the InverseFourierTransform?
>>> ClearSystemCache[]
>>> expr = (c^2 Sqrt[2 \[Pi]] DiracDelta[ky + sy] DiracDelta[
>>>        sz])/(-c^2 sx^2 - c^2 sy^2 - c^2 sz^2 + \[Omega]^2);
>>> \$Assumptions = {{x, y, z} \[Element] Reals};
>>> InverseFourierTransform[expr, {sx, sy, sz}, {x, y, z}] // Timing
>>> Integrate[
>>>    1/Sqrt[2 \[Pi]] Exp[-I sx x] Exp[-I sy y] Exp[-I sz z] expr, {sx, =
-\
>>> \[Infinity], \[Infinity]}, {sy, -\[Infinity], \[Infinity]}, {sz, -\
>>> \[Infinity], \[Infinity]}, GenerateConditions -> False] // Timing
>>>
>>> is not so different.
>>
>> It's not? This is what I get:
>>
>> {9.98862, -(1/2) E^(-(Abs[x]/Sqrt[(c^2/(c^2 ky^2 - \[Omega]^2))]))
>>    Sqrt[c^2/(c^2 ky^2 - \[Omega]^2)] (Cos[ky y] + I Sin[ky y])}
>>
>> for the Fourier Transform and
>>
>> {13.5928, -E^(
>>    I ky y - Abs[x]/Sqrt[c^2/(c^2 ky^2 - \[Omega]^2)]) \[Pi]^(3/2)
>>    Sqrt[c^2/(c^2 ky^2 \[Pi] - \[Pi] \[Omega]^2)]}
>>
>> for the explicit integral.
>>
>> it's no longer a factor 3, but it's still quite a difference.
>> Moreover, now even the results are different (look at the factor of
>> 1/2 and pi).
>>
>> Any ideas?
> Hi,
>
> the factors are different, because there are several
> "normalizations" used. Theoretical physicists prefer
> the factor 1/Sqrt[2Pi] per dimension in the forward and backward transf=
orm
> (because the formulas  are sooooooo symmetric), the
> rest of the world seems to prefer 1 in the forward and 1/(2Pi)
> per dimension in the backward transform because it save
> a multiplication by a complicated number like 1/Sqrt[2Pi].

Of course. But I made sure that my integral is exactly equal to the
one used by InverseFourierTransform (according to the Mathematica
Help), so this cannot be the reason.

> Clearly the algorithms are different, because some
> FourierTransform[]s are placed in a table for cases when you have to
> solve a complex path integral, while Integrate[] probably not use
> such tricks.

But what is the point of that? There is nothing special about the
integral in a Fourier transform, so any functionality that helps to
evaluate integrals is best added to Integrate[].

-Nikolaus

--
=C2=BBIt is not worth an intelligent man's time to be in the majority.
By definition, there are already enough people to do that.=C2=AB
-J.H. Hardy

PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6  02CF A9AD B7F8 AE4E 425C

```

• Prev by Date: Re: Storing and Loading Definitions / Emulating Associative Arrays
• Next by Date: Re: How do little quickest
• Previous by thread: Re: Fourier Transform
• Next by thread: Re: Fourier Transform