我认为 Sympy 在计算三角函数的 傅里叶变换 时犯了一个错误。例如:
from sympy import fourier_transform, sin
from sympy.abc import x, k
print fourier_transform(sin(x), x, k)
通过 Mathematica 的预期答案是
但是 Sympy 返回 0。有时该函数运行得很好,因为
fourier_transform(Heaviside(t)*cos(t),t,omega)
和
fourier_transform(Heaviside(t)*sin(t),t,omega)
返回正确的答案。我认为 Sympy 可能使用拉普拉斯变换来计算傅里叶变换。
cos
的傅立叶变换的情况下,条件是一种复杂的“从不”方式,不幸的是 sympy 无法识别。 (即算法说的是“如果 blah 则积分为零”,而 blah 永远不成立。)
对于阶跃函数的傅立叶变换,条件似乎是说,如果 z 具有负参数(角度)且不太大,则此方法有效。请注意,这确实是变换积分收敛的时候(b/c 您需要在正实数上选取下降指数项)。我没有时间去思考这种情况下的计算是否正确。