我认为Sympy在计算trig函数的Fourier transform时出错。例如:在Sympy中傅立叶变换trig函数返回意外结果
from sympy import fourier_transform, sin
from sympy.abc import x, k
print fourier_transform(sin(x), x, k)
预期的应答via Mathematica是
但Sympy返回0。有时,功能效果非常好,因为fourier_transform(Heaviside(t)*cos(t),t,omega)
和fourier_transform(Heaviside(t)*sin(t),t,omega)
返回正确的答案。我认为Sympy可能会使用拉普拉斯变换来计算傅里叶变换。
好吧,'sin'的傅立叶变换是delta函数的和。可能是Sympy很难代表三角函数。还要注意,sympy.fourier_transform('heaviside(t)','t','omega')对我来说产生'-I /(2 * pi * omega)',而在Mathematica中,'FourierTransform [HeavisideTheta [t ],t,w]'产生'I /(Sqrt [2]] w)+ Sqrt [w]'(因此Sympy也在这里丢弃δ函数)。 – senshin
这样做很奇怪,因为sympy确实有delta函数'DiracDelta'。 – Kattern