oeh*_*oeh 5 python sympy continuous-fourier
我最近用Python替换了Matlab因为我是真的;因为Sympy而兴奋.
但现在我有以下问题:
我需要一种用Python可靠地计算连续傅里叶变换的方法.Sympy在解决方案方面存在问题,包括Diracs(Delta函数),因为它们例如出现在三角函数等处.
例如,如果我尝试
fourier_transform(cos(x),x,v)
Run Code Online (Sandbox Code Playgroud)
输出0应该基于Dirac delta函数
有没有人知道,如果Sympy的这一部分有待改进,或者是否有其他方法可以通过Python分析性地找到傅立叶变换?
感谢您提前给出答案或任何建议!
据我所知,目前没有人在做这方面的工作,尽管欢迎贡献。
\n\n我可以给的一些建议:
\n\n如果您设置noconds=Falsein fourier_transform(),它将包括0True 的条件:
In [26]: fourier_transform(cos(t),t,x, noconds=False)\nOut[26]:\n\xe2\x8e\x9b \xe2\x94\x82 \xe2\x8e\x9b -\xe2\x85\x88\xe2\x8b\x85\xcf\x80 2 \xe2\x8e\x9e\xe2\x94\x82 \xe2\x94\x82 \xe2\x8e\x9b \xe2\x85\x88\xe2\x8b\x85\xcf\x80 2 \xe2\x8e\x9e\xe2\x94\x82 \xe2\x8e\x9e\n\xe2\x8e\x9d0, \xe2\x94\x82periodic_argument\xe2\x8e\x9d\xe2\x84\xaf \xe2\x8b\x85polar_lift (x), \xe2\x88\x9e\xe2\x8e\xa0\xe2\x94\x82 < \xcf\x80 \xe2\x88\xa7 \xe2\x94\x82periodic_argument\xe2\x8e\x9d\xe2\x84\xaf \xe2\x8b\x85polar_lift (x), \xe2\x88\x9e\xe2\x8e\xa0\xe2\x94\x82 < \xcf\x80\xe2\x8e\xa0\nRun Code Online (Sandbox Code Playgroud)\n\n这些条件并不是很有帮助,除非可能表明 0 并非完全错误。
您可以使用FourierTransform来表示未评估的傅里叶变换。您可以调用doit()它来对其求值或rewrite(Integral)获取积分形式:
In [28]: FourierTransform(cos(t),t,x).rewrite(Integral)\nOut[28]:\n\xe2\x88\x9e\n\xe2\x8c\xa0\n\xe2\x8e\xae -2\xe2\x8b\x85\xe2\x85\x88\xe2\x8b\x85\xcf\x80\xe2\x8b\x85t\xe2\x8b\x85x\n\xe2\x8e\xae \xe2\x84\xaf \xe2\x8b\x85cos(t) dt\n\xe2\x8c\xa1\n-\xe2\x88\x9e\nRun Code Online (Sandbox Code Playgroud)FourierTransform我目前最好的建议是通过操作对象或积分来执行 SymPy 目前无法手动执行的傅里叶变换。