8

我最近用 Python 替换了 Matlab,因为我对 Sympy 很感兴趣。

但现在我有以下问题:

我需要一种使用 Python 可靠地计算连续傅立叶变换的方法。Sympy 在解决方案方面存在问题,包括狄拉克(三角函数),因为它们例如出现在三角函数等中。

例如,如果我尝试

fourier_transform(cos(x),x,v)

输出是0应该基于狄拉克三角函数的地方

有谁知道,Sympy 的这一部分是否会得到改进,或者是否有另一种方法可以用 Python 分析地找到傅立叶变换?

提前感谢您的回答或任何建议!

4

1 回答 1

3

据我所知,目前没有人在做这方面的工作,尽管欢迎贡献

我可以给一些建议:

  • 如果您设置noconds=Falsefourier_transform()它将包括0为真的条件:

    In [26]: fourier_transform(cos(t),t,x, noconds=False)
    Out[26]:
    ⎛   │                 ⎛ -ⅈ⋅π           2      ⎞│       │                 ⎛ ⅈ⋅π           2      ⎞│    ⎞
    ⎝0, │periodic_argument⎝ℯ    ⋅polar_lift (x), ∞⎠│ < π ∧ │periodic_argument⎝ℯ   ⋅polar_lift (x), ∞⎠│ < π⎠
    

    这些条件不是很有帮助,除非可能表明 0 并非完全错误。

  • 您可以使用FourierTransform来表示未评估的傅立叶变换。您可以调用doit()它来评估它或rewrite(Integral)获取积分形式:

    In [28]: FourierTransform(cos(t),t,x).rewrite(Integral)
    Out[28]:
    ∞
    ⌠
    ⎮   -2⋅ⅈ⋅π⋅t⋅x
    ⎮  ℯ          ⋅cos(t) dt
    ⌡
    -∞
    

FourierTransform我现在最好的建议是通过操纵对象或积分来进行 SymPy 目前无法手动完成的傅里叶变换。

于 2015-10-20T16:35:13.373 回答