Python/Sympy连续傅里叶变换(解析解)

2024-10-16 22:34:29 发布

您现在位置:Python中文网/ 问答频道 /正文

最近我用Python取代了Matlab,因为sypy让我很兴奋。在

但现在我有以下问题:

我需要一种用Python可靠地计算连续fourier变换的方法。Sympy在解决方案方面存在问题,包括Diracs(Delta函数),例如trig函数等

例如,如果我尝试

fourier_transform(cos(x),x,v)

输出是0,它应该基于Dirac delta函数

有人知道,Sympy的这一部分是否会得到改进,或者是否有其他方法可以用Python解析地找到fourier变换?在

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


Tags: 方法函数transformcos解决方案建议fourierdelta
1条回答
网友
1楼 · 发布于 2024-10-16 22:34:29

据我所知,目前没有人在做这个,尽管contributions are welcome。在

我可以给你一些建议:

  • 如果在fourier_transform()中设置noconds=False,它将包括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目前无法手动完成的傅立叶变换。在

相关问题 更多 >