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