0

我有一个初始函数u(x,0) = -sin(x),我想以u(x,t) = $\sum_{k \geq 1} a_{k} sin (kx)$. 我尝试使用函数的正常扩展,$\exp{ikx}$但它给解决方案增加了一些错误。

谁能建议我如何过滤在整个解决方案中仍然奇怪的傅立叶系数的过程numpy.fft.fft

4

1 回答 1

1

如果函数本质上是奇数(如正弦函数),则只有函数的虚部fft非零。我认为您的问题是您的功能不是应有的周期性,您应该排除最后一点:

import numpy as np
x=np.linspace(-np.pi,np.pi,50,endpoint=False)
y=-np.sin(x)
yf=np.fft.fft(y)
even_part=yf.real
odd_part=yf.imag

这里只有odd_part[1]非零。如果你的函数不奇怪并且你想强制它,你可以使用sdt我在评论中提到的,或者在左侧添加你的函数的逆,然后使用fft.

还有一点,如果您的输入并不复杂,那么使用起来会更快、更省时rfft

于 2018-06-12T14:57:52.153 回答