== maximaの初歩的な操作17・・・関数のフーリエ級数展開 ==
○Xmaxima,wxMaxima のインストール方法,基本操作については[この頁]参照
○wxMaximaでフーリエ級数を扱うには
メニューから[数値処理]→[自動的に数値で出力]などのコマンドを1つ実行して,(%i1)という入力行,(%o1)という出力行を1つ出します.
これ以降に登場するコマンドでフーリエに対応する綴りがfourierとなるのに対して,最初にロードするパッケージの名前はfourieとなることが注意点
次に,(%i1)の行を次のように書き換えて,フーリエ級数を扱うためのパッケージをロードします.
load(fourie);
これにより,以下に述べる
totalfourier (f, x, p);
という関数が使えるようになります.
 
【フーリエ級数の短い解説】
○区間[ −π, π]において

…(A)

で表される関数を考えると,各々の係数
…(B)
…(C)
に等しい.
ただし

とする.
(A)をフーリエ級数,(B)(C)をフーリエ係数という.
他のとの整合性を考えての代わりにを使うことが多い.の値が2倍だけ合わないと思うときは,どちらの定義で書かれているかを確かめるとよい.ただし,展開式にすれば同じものになる.



○上記の性質は,区間[ −π, π]における三角関数の直交性から導かれる.
任意の正の整数nについて
…(1)
…(2)
つねに
…(3)
m≠nのとき
…(4)
…(5)
m=nのとき
…(6)
…(7)
 各々簡単な定積分の計算なので,やってみればわかるがここでは証明は略する.
 これらの性質により,例えばf(x)cosnxを掛けて区間[ −π, π]において積分すると
(左辺)

(右辺)




ここで赤で示した項は(1)(3)(4)により0となって消える.青で示した項だけが(6)によりとなって残る.そこで

が成り立つ.
についても同様にして示される.


○与えられた関数,例えばf(x)=x , xnあるいは,音声データや画像データに対して,上記の(B)(C)で求めたフーリエ係数を用いてフーリエ級数(A)を作ると,数学的にはこれが「元の関数f(x)に収束するかどうか」「不連続関数ならどうなるのか」「区間の端の点ではどのように接続されるのか」という難しい問題があるが,この頁ではこのような数学的に厳密な議論には深入りしない.
 むしろ,実用的には「無限」に長い級数を扱うつもりはなく,適当なところで打ち切って「フーリエ多項式」として使いたい.特に,データサイズの大きな音声や画像を完全に再現するのではなく,実用に耐え得る程度に「圧縮」して使いたい.
 このような目的から言えば,フーリエ多項式が「よい近似式」であればそれで十分だといえる.
 
【wxMaximaを用いて関数のフーリエ級数展開を求める】
関数のフーリエ級数展開 入力totalfourier(x,x,%pi);
totalfourier(関数 , 変数 , 区間 )の形で使う
ただし,区間は,−π≦x≦πの場合に%piなどと指定する.(右端の正の値のみ指定)
※HELP情報を見ると,関数totalfourier( )
fourexpand (foursimp (fourier (f, x, p)), x, p, 'inf)を組み合わせたものとされているが,便利なのでこれを使うとよい.
(結果)
奇関数なので,定数項a0およびcoskxの項はすべて消えます.

すなわち
…(1)


※近似の程度を調べるには,[2次元プロット]を用いて
wxplot2d([元の関数, フーリエ多項式], [x,-%pi,%pi], [y,-%pi,%pi]);
を実行すればよい.(cosnx, sinnxまでとった有限数列の和は第n次のフーリエ多項式と呼ばれる.)
が元の関数,がフーリエ多項式のグラフ
第5次まで使った場合第10次まで使った場合



※なお,この頁ではフーリエ級数が元の関数に収束するための条件を示していないが,(1)の無限級数はxに収束するので,例えばを代入すると

すなわち
…(1’)
が示される.


関数のフーリエ級数展開 入力totalfourier(x^2,x,%pi);
(結果)
偶関数なので,sinkxの項はすべて消えます.

すなわち
…(2)

が元の関数,がフーリエ多項式のグラフ
第2次まで使った場合第5次まで使った場合


※(2)にを代入すると

すなわち



…(2’)
が示される.


関数のフーリエ級数展開 入力totalfourier(abs(x),x,%pi);
(結果)
偶関数なので,sinkxの項はすべて消えます.

すなわち
…(3)

が元の関数,がフーリエ多項式のグラフ
第3次まで使った場合第7次まで使った場合


※(3)にを代入すると

すなわち
…(3’)
が示される.
さらに,正項級数の和は順序を入れ替えても変わらないという性質を利用すると,次の和も求められる.

とおくと




…(3”)


関数のフーリエ級数展開 入力totalfourier(x^3,x,%pi);
(結果)
奇関数なので,定数項およびcoskxの項はすべて消えます.

すなわち
…(4)

が元の関数,がフーリエ多項式のグラフ
第3次まで使った場合第7次まで使った場合



関数のフーリエ級数展開 入力totalfourier(abs(sin(x)),x,%pi);
(結果)
偶関数なので,sinkxの項はすべて消えます.


 この式は数学の教科書に書かれているものと違う.すなわち,nが偶数の場合だけ上記の項が残り,奇数の場合は0となって消えるはずとなっている.(特にn=1の場合は,分母が0となるので困る.)

 次の式であるはずだと考えられる

.
 すなわち
…(4)

(4)についてが元の関数,がフーリエ多項式のグラフ
第2次まで使った場合第8次まで使った場合



...メニューに戻る ..maximaのメニューに戻る