Re: Rule
- To: mathgroup at smc.vnet.net
- Subject: [mg108471] Re: Rule
- From: Leonid Shifrin <lshifr at gmail.com>
- Date: Fri, 19 Mar 2010 02:47:56 -0500 (EST)
Hi Rui, This is a follow-up. I just posted a solution that contained a bug: I used the rule k->1, while the correct rule should have been k*t->t: Clear[fourierTransformAnalyze] SetAttributes[fourierTransformAnalyze, HoldAll]; fourierTransformAnalyze[FourierTransform[expr_, t_, f_]] := With[{coeffs = Union@ Cases[expr, a_*t /; FreeQ[a, t] :> a, Infinity]}, With[{k = First@coeffs, ks = FullSimplify@First@coeffs}, 1/Abs[ks]*FourierTransform[expr /. k*t -> t, t, f/ks] /; FullSimplify[ks != 0] && ks =!= 0 && FullSimplify[Im[ks] == 0 || Im[ks] === 0]] /; Length[coeffs] == 1]; fourierTransformAnalyze[a_FourierTransform] := a; Sorry for the confusion. Regards, Leonid On Thu, Mar 18, 2010 at 12:33 PM, Rui <rui.rojo at gmail.com> wrote: > I got surprised when I saw that my Mathematica 7 computed > FourierTransform[DiracComb[t], t, f] without trouble but couldn't deal > with > FourierTransform[DiracComb[2 t], t, f] > > So I thought about writing a rule that uses the property that the > F{x[k t]}[f] = 1/|k| F{x[t]}[f/k] (I think :P) > > In Mathematica's words: > FourierTransform[ expr_ , t_, f_] should be transformed, only if in > "expr" you can find aall "t"s multiplied by the same thing (let's call > it "k"), and that thing doesn't have "t"s inside, into > 1/Abs[k] FourierTrnasform[expr_ (* having replaced the k t by t *), > t, f/k] > > I'm a little lost. Even if I could find a way to do it, I wanna know > how you would do it, because I'm already thinking about complicated > stuff and it doesn't seem neither a too complex or too unusual > problem. > > Thanks ;) > >