我最近用Python替换了Matlab因为我是真的;因为Sympy而兴奋.
但现在我有以下问题:
我需要一种用Python可靠地计算连续傅里叶变换的方法. Sympy在解决方案方面存在问题,包括Diracs(Delta函数),因为它们例如出现在三角函数等处.
例如,如果我尝试
fourier_transform(cos(x),x,v)
有没有人知道,如果Sympy的这一部分有待改进,或者是否有其他方法可以通过Python分析性地找到傅立叶变换?
感谢您提前给出答案或任何建议!
最佳答案
@H_403_24@据我所知,目前没有人正在研究这个问题,尽管contributions are welcome.
我可以给出一些建议:
>如果在fourier_transform()中设置noconds = False,则包含0为True的条件:
In [26]: fourier_transform(cos(t),t,noconds=False)
Out[26]:
⎛ │ ⎛ -ⅈ⋅π 2 ⎞│ │ ⎛ ⅈ⋅π 2 ⎞│ ⎞
⎝0,│periodic_argument⎝ℯ ⋅polar_lift (x),∞⎠│ < π ∧ │periodic_argument⎝ℯ ⋅polar_lift (x),∞⎠│ < π⎠
除非显示0并非完全错误,否则这些条件不是很有用.
>您可以使用FourierTransform来表示未评估的傅里叶变换.您可以在其上调用doit()来评估它或重写(Integral)以获得整数形式:
In [28]: FourierTransform(cos(t),x).rewrite(Integral)
Out[28]:
∞
⌠
⎮ -2⋅ⅈ⋅π⋅t⋅x
⎮ ℯ ⋅cos(t) dt
⌡
-∞
我现在最好的建议是通过操作FourierTransform对象或积分来进行SymPy目前无法手动完成的傅里叶变换.