• 締切済み

Maximaのフーリエ変換について

Maximaでフーリエ変換するために、 load(fft); で読み込んでから、 fft(exp(-t^2/18),t,w); を実行したところ、 Maxima encountered a Lisp error: Error in $FFT [or a callee]: $FFT [or a callee] requires less than three arguments. Automatically continuing. To reenable the Lisp debugger set *debugger-hook* to nil. というエラーが出てきて計算が出来ません。 どうしたら計算できるんでしょうか? わかる方教えてください。

みんなの回答

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.3

Maximaには、直接、フーリエ変換を計算するコマンドはないので、 フーリエ変換の定義式通り積分計算をすることになります。 http://ja.wikipedia.org/wiki/%E3%83%95%E3%83%BC%E3%83%AA%E3%82%A8%E5%A4%89%E6%8F%9B Maximaでの積分の方法はいいですか? http://www.bekkoame.ne.jp/~ponpoko/Math/maxima/maxima_3.html それから、 f(x)=Bx^2 (x<x1) Cx (x1≦x≦x2) Dx^2+Ex (x2<x≦x3) Nx^2 (x>x3) て関数ですが、これは2乗可積分関数ではないので、そもそも普通の意味でのフーリエ変換は定義できません。無理やりフーリエ変換すると、超関数になります。

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

FFTは、「離散フーリエ変換」の高速計算法です。「離散」ってついてるので、普通の(連続の)フーリエ変換とは、全く違います。まあ、もちろん無関係ではありませんが、実際の計算は全く別物です。 で、フーリエ変換と、離散フーリエ変換のどちらをやりたいのか教えてください。

rokopon
質問者

補足

似てるようで違うんですね。 えーと、フーリエ変換がやりたいです。 そこで、次のようなf(x)があった場合に、フーリエ変換の定義式では どのように表されますか? f(x)=Bx^2 (x<x1) Cx (x1≦x≦x2) Dx^2+Ex (x2<x≦x3) Nx^2 (x>x3) xの領域毎に具体的に示していただけると助かります。 上式のように領域で式が異なるときにどうすればよいかよくわかりません。

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

FFTとフーリエ変換って別物なんですけど、どっちをやりたいんですか? とりあえず、フーリエ変換したいなら、Maximaにはなぜかフーリエ変換を計算するコマンドはないので、定義式の積分をそのまま計算させてください。

rokopon
質問者

補足

FFTとフーリエ変換ってどう違うんですか? FFTって高速フーリエ変換だから根本的には一緒じゃないんですか? フーリエ変換がやりたいです。

関連するQ&A