使用scipy fft和ifft以数字方式求解常微分方程

时间:2012-11-26 18:22:25

标签: python scipy fft ode ifft

我在时域中有ordinary differential equation如下:

C*du/dt = -g*u + I

其中I = A*t/tau*exp^(1-t/tau)

freq域中的

u(w) = I(w)/(g*(1+C/g*j*w))

j是复数sqrt(-1)

因此,我可以使用fast Fourier transformu(t))进入频道域,然后使用fft返回ifft

代码:

t = np.linspace(0.,499.9,5000)
I = q*t*np.exp(1-t/Tau_ca)/Tau_ca
u1 = np.fft.ifft(np.fft.fft(I)/(G_l*(1.+1.j*(C_m/G_l)*np.fft.fftfreq(t.shape[-1]))))

然而,当我将这个u(t)与其他方法(如微分方程的数值积分或其分析形式)进行比较时,它是不正确的。我已经尝试过并且未能成功找出我的错误所在。

请指教。

0 个答案:

没有答案