Re: Fourier Transform

*To*: mathgroup at smc.vnet.net*Subject*: [mg93523] Re: Fourier Transform*From*: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>*Date*: Thu, 13 Nov 2008 06:34:47 -0500 (EST)*Organization*: Uni Leipzig*References*: <gf8rgp$poq$1@smc.vnet.net> <gfbur0$43e$1@smc.vnet.net> <gfgqhc$dkv$1@smc.vnet.net>*Reply-to*: kuska at informatik.uni-leipzig.de

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 transform (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]. 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. Regards Jens Nikolaus Rath wrote: > 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? > > > -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 >