替换数字.fftpyfftw的例程,未按预期工作

2024-10-03 11:14:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些可以使用的python代码数字.fft包,下面是一个片段:

for i in range(steps):
    print i
    psixvec = Ux * psixvec
    psikvec = Uk * np.fft.fftn(psixvec)
    psixvec = np.fft.ifftn(psikvec)

return psixvec

我试图重写这段代码以使用pyfftw包。我想到的是以下代码,应该起作用:

^{pr2}$

问题是,这段代码与使用numpy.fft包产生的结果不同。请参阅所附图片。在

numpy fft packagepyfftw package


Tags: 代码infftfornprange数字steps
1条回答
网友
1楼 · 发布于 2024-10-03 11:14:35

解决了。对于我正在使用的初始化

psix_align = fftw.n_byte_align(psi0, fftw.simd_alignment, dtype='complex64')
psik_align = fftw.n_byte_align(np.zeros_like(psi0), fftw.simd_alignment, dtype='complex64')

我需要将complex64替换为complex128。现在我得到了同样的结果。这可能是因为所涉及的数字非常小(参见z轴上的1e-11)。在

编辑:也许有人可以把pyfftw添加到问题的标签上?在

相关问题 更多 >