微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

扩展 FFT 以解决具有布朗路径的 PDE

如何解决扩展 FFT 以解决具有布朗路径的 PDE

背景

我正在尝试用 Python 求解随机偏微分方程 (SPDE)。为此,我用 BM = brownian(x0,T,dt) 模拟了一条布朗路径,其中 x0 是开始的初始值,T 是布朗运动运行的时间,{{ 1}} 是步骤。这给了我一个包含 T/dt 条目的数组,它显示了布朗运动如何针对一个特定事件演变。

现在,通过这种布朗运动,我可以将 SPDE 转换为确定性(“正常”)PDE。我在此视频中找到了用于解决不同 PDE 的快速傅立叶变换 (FFT):https://www.youtube.com/watch?v=hDeARtZdq-U,但我不确定如何包含布朗路径。

代码

代码的重要部分/我将包含布朗运动的部分是

dt

这个想法是通过 FFT 转换 PDE 以获得许多 ODE。这些 ODE 在 dt = 0.001 t = np.arange(0,1,dt) def rhsHeat(uhat_ri,t,kappa,a,c): uhat = uhat_ri[:N] +(1j)*uhat_ri[N:] d_uhat += -a**2 * (np.power(kappa,2))*uhat - c*(1j)*kappa*uhat d_uhat_ri = np.concatenate((d_uhat.real,d_uhat.imag)).astype('float64') return d_uhat_ri uhat_ri = odeint(rhsHeat,u0hat_ri,args=(kappa,c)) 中初始化。我想添加组件 rhsHeat获取时间进度,BM[i]-BM[i-1] 是时间 BM[i] 处布朗路径的值。这意味着函数的进度(在时间上)不是由时间的变化加权,而是由从 t[i-1] 到 t 的每一步的变化 B[i]-B[i-1] [一世]。我想

t[i]

问题 上面包含布朗运动的示例不起作用。我请教你这样做的任何建议。我想这就像包含另一个取决于 def rhsHeat(uhat_ri,b,c): i = int(t/dt) uhat = uhat_ri[:N] +(1j)*uhat_ri[N:] d_uhat += -a**2 * (np.power(kappa,2))*uhat - c*(1j)*kappa*uhat + b*(1j)*kappa*uhat*(B[i]-B[i-1]) d_uhat_ri = np.concatenate((d_uhat.real,d_uhat.imag)).astype('float64') return d_uhat_ri 而不是 t函数

另外,我真的不明白为什么函数 x 中包含时间变量 t,因为它没有在那里的任何地方使用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。