我有一个ordinary differential equation及时的域名如下:
C*du/dt = -g*u + I
Run Code Online (Sandbox Code Playgroud)
哪里 I = A*t/tau*exp^(1-t/tau)
在freq域中:
u(w) = I(w)/(g*(1+C/g*j*w))
Run Code Online (Sandbox Code Playgroud)
j 是一个复杂的数字 sqrt(-1)
因此,我可以u(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]))))
Run Code Online (Sandbox Code Playgroud)
然而,当我将其u(t)与其他方法(如微分方程的数值积分或其分析形式)进行比较时,这是不正确的.我已经尝试过并且未能成功找出我的错误所在.
请指教.