2015-10-19 44 views
5

私は最近、MatlabをPythonに置き換えました。Python/Sympy(解析解)による連続フーリエ変換

しかし、今、私は次のような問題があります。

私は確実に連続フーリエ変換は、Pythonで変換を計算する方法が必要です。 Sympyはtrigの関数など例えば

、私は

fourier_transform(cos(x),x,v) 

をしようとした場合、出力はそれはに基づいている必要があり0であるため、彼らは例えば起こるようディラック(デルタ関数)を含むソリューションで問題を抱えていますDirac delta関数

Sympyのこの部分が改善される場合、または解析的にPythonでフーリエ変換を見つける別の方法がある場合は誰も知っていますか?

事前にお答えいただきありがとうございます。

+0

SymPyで動作しない積分の例を挙げることができますか? – asmeurer

+0

はい、例えば以下のような単純な三角関数のフーリエ変換です:fourier_transform(cos(x)、x、v) - > 0 – oeh

答えて

3

私が知る限り、誰も現在この作業に取り組んでいませんが、contributions are welcomeです。

私が与えることができるいくつかのアドバイス:

  • をあなたはfourier_transform()noconds=Falseを設定した場合、それは0がTrueであるための条件が含まれます:これらの条件は多分を除いて非常に有用ではありません

    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を使用すると、評価されていないフーリエ変換を表すことができます。あなたは、積分形式を得るためにそれかrewrite(Integral)を評価するために、それにdoit()を呼び出すことができます。今の私の最高の提案は、フーリエ変換SymPyは現在、いずれかのFourierTransformを操作することにより、手動で行うことができないという変換を行うことです

In [28]: FourierTransform(cos(t),t,x).rewrite(Integral) 
Out[28]: 
∞ 
⌠ 
⎮ -2⋅ⅈ⋅π⋅t⋅x 
⎮ ℯ   ⋅cos(t) dt 
⌡ 
-∞ 
オブジェクトまたはインテグラルに適用されます。

関連する問題