Re: FFT in mathematica
- To: mathgroup at smc.vnet.net
- Subject: [mg113675] Re: FFT in mathematica
- From: "Nasser M. Abbasi" <nma at 12000.org>
- Date: Sun, 7 Nov 2010 05:11:29 -0500 (EST)
- References: <ib38tv$f2k$1@smc.vnet.net>
- Reply-to: nma at 12000.org
On 11/6/2010 2:59 AM, Gazi Habiba Akter wrote: > Hi, > I don't understand how fft algorithm works. > but i have to solve a problem by Mathematica code .I am not math and > physics student it need my thesis work. > it will be ok if any body explain by a simple function. > .I tried to solve this problem using fourier transform in mathematica > directly but it does not work.I think i need to modify my function or > need to know how FFT works for my problem. Here is my code > ClearAll["Global'*"] > z = 0; > n = 100; > v1 = 0.5*(1 + Tanh[n*t]); > x = (2*t (1 + z))^0.5; > v2 = Hypergeometric1F1[.5, 1, -2 x]; > v3 = Exp[x - t]; > r1 = v1*v2*v3; > f = FourierTransform[r1, t, v]; > w1 = InverseFourierTransform[f*Exp[z/2*(1 - I*v)], v, t] > > I need the plot of w1 with respect to t for different value of Z. here > r1 is only for z=0. > it will be great for me if anybody help me. > Thanks, > rupa > Do you have to do this symbolically? The kernel function you have there seems to have disconuity at t=0. Why not simply using numerical solution? using FFT (i.e. Fourier). Here is one way: ClearAll["Global'*"] rupa[z_,t_]:=Module[{n,v1,v2,v3,f,w1,x,r1}, n=100; v1=0.5*(1+Tanh[n*t]); x=(2*t (1+z))^0.5; v2=Hypergeometric1F1[.5,1,-2 x]; v3=Exp[x-t]; r1=Chop[v1*v2*v3]; f=Fourier[r1]; w1=InverseFourier[f*Exp[z/2*(1-I*v)]] ]; t=Range[-Pi,Pi,Pi/100.]; (*pick discrete values*) z=0; (*select z *) w1=rupa[z,t]; ListPlot[Inner[List,t,w1,List], Frame->True, FrameLabel->{{"w1",None},{"t","InverseForurier demo"}} ] --Nasser