フーリエ級数展開とパーセバルの等式

グラフ作成ツール「gnuplot」を用いて、
フーリエ級数展開(Fourier series expansion)をグラフに描いてみた。
一般に、周期2Lのフーリエ級数展開は、

で表される。但し、フーリエ係数は次式で与えられる。


いずれの関数のグラフも水色茶色
の順に近似の精度が高くなっている事が理解できるだろう。
これらのグラフからは、フーリエ級数展開が垂直方向への補正による、
「vertical」な近似であるという印象を受ける。

また、フーリエ級数展開の式の両辺にf(x)を掛けて、
閉区間[-L, L]で積分すると、

という式が得られるが、これを次の様に右辺の各項に
L×1/Lを掛けるという式変形を行うと、

となる。ここで、中括弧で囲った部分をフーリエ係数と比較することで、
それぞれが順にa0, an, bn であることが分かるので、これらを用いて書き直すと、

という関係が成立する。これをパーセバル(Parseval)の等式と呼ぶ。




階段関数(矩形波)のフーリエ級数展開

ここでは、階段関数として次式の様なf(x)を考える。

f(x)は奇関数なので、an=0となって、フーリエ正弦級数の式が適用できる。


従って、L=1のときのf(x)xのフーリエ級数展開は次式で表される。


上記の結果をグラフ作成ツール「gnuplot」を用いて、グラフ化する。
「gnuplot」を起動して、以下のコマンドを入力し、グラフを生成する。
(勿論、出力先のディレクトリは、各自の環境に応じて適宜変更する。)
set terminal png
set xrange[-3:3]
set yrange[-3:3]
set xtics 0.5
set ytics 0.5
set grid
fosfn1(x)=sin(pi*x)
fosfn2(x)=fosfn1(x)+sin(3*pi*x)/3
fosfn3(x)=fosfn2(x)+sin(5*pi*x)/5
fosfn4(x)=fosfn3(x)+sin(7*pi*x)/7
fosfn5(x)=fosfn4(x)+sin(9*pi*x)/9
fosfn6(x)=fosfn5(x)+sin(11*pi*x)/11
plot 4/pi*fosfn1(x) title "n=1"
replot 4/pi*fosfn2(x) title "n=2"
replot 4/pi*fosfn3(x) title "n=3"
replot 4/pi*fosfn4(x) title "n=4"
replot 4/pi*fosfn5(x) title "n=5"
set output 'c:\temp\fourierofstepfunc.png'
replot 4/pi*fosfn6(x) title "n=6"
exit
この方法により生成したグラフを以下に示す。

これは矩形波(Square wave)或いは方形波と呼ばれ、クラリネット等の音を近似する。
この場合、山と谷の大きさは一対一だが、この比率を変えたものをパルス波(Pulse wave)と呼び、
トランペットやオーボエ等の音色はこちらで近似される。 また、ここでx=1/2とすると、


となる。これはグレゴリー(Gregory)級数、
或いはライプニッツ(Leibniz)の級数と呼ばれている。

さらに、パーセバルの等式を用いると、

が成立し、ここでL=1とすると、

であるから、

を得る。




f(x)x(鋸歯状波)のフーリエ級数展開


f(x)は奇関数なので、an=0となって、フーリエ正弦級数の式が適用できる。



従って、L=1のときのf(x)xのフーリエ級数展開は次式で表される。


上記の結果をグラフ作成ツール「gnuplot」を用いて、グラフ化する。
「gnuplot」を起動して、以下のコマンドを入力し、グラフを生成する。
(勿論、出力先のディレクトリは、各自の環境に応じて適宜変更する。)
set terminal png
set xrange[-3:3]
set yrange[-3:3]
set xtics 0.5
set ytics 0.5
set grid
fox1n1(x)=sin(pi*x)
fox1n2(x)=fox1n1(x)-sin(2*pi*x)/2
fox1n3(x)=fox1n2(x)+sin(3*pi*x)/3
fox1n4(x)=fox1n3(x)-sin(4*pi*x)/4
fox1n5(x)=fox1n4(x)+sin(5*pi*x)/5
fox1n6(x)=fox1n5(x)-sin(6*pi*x)/6
plot 2/pi*fox1n1(x) title "n=1"
replot 2/pi*fox1n2(x) title "n=2"
replot 2/pi*fox1n3(x) title "n=3"
replot 2/pi*fox1n4(x) title "n=4"
replot 2/pi*fox1n5(x) title "n=5"
set output 'c:\temp\fourierofx1.png'
replot 2/pi*fox1n6(x) title "n=6"
exit
この方法により生成したグラフを以下に示す。

これは鋸歯状波(Sawtooth wave)或いは単にノコギリ波(Saw wave)と呼ばれ、
チェロやバイオリン等の音を近似する。また、ここでx=1/2とすると、


となって、やはりグレゴリー(Gregory)級数、或いは
ライプニッツ(Leibniz)の級数と呼ばれている公式が導かれる。

さらに、パーセバルの等式を用いると、

が成立し、ここでL=1とすると、

であるから、

を得る。これは、リーマンのゼータ関数(Riemann's zeta function):

において、s=2としたものに他ならないから、

という式が得られる。




f(x)=|x|(三角波)のフーリエ級数展開


f(x)は偶関数なので、bn=0となって、フーリエ余弦級数の式が適用できる。



また、n=0のとき、

従って、L=1のときのf(x)=|x|のフーリエ級数展開は次式で表される。


上記の結果をグラフ作成ツール「gnuplot」を用いて、グラフ化する。
「gnuplot」を起動して、以下のコマンドを入力し、グラフを生成する。
(勿論、出力先のディレクトリは、各自の環境に応じて適宜変更する。)
set terminal png
set xrange[-3:3]
set yrange[-3:3]
set xtics 0.5
set ytics 0.5
set grid
foaxn1(x)=cos(1*pi*x)/1**2
foaxn2(x)=foaxn1(x)+cos(3*pi*x)/3**2
foaxn3(x)=foaxn2(x)+cos(5*pi*x)/5**2
foaxn4(x)=foaxn3(x)+cos(7*pi*x)/7**2
foaxn5(x)=foaxn4(x)+cos(9*pi*x)/9**2
plot 1.0/2 title "n=0"
replot 1.0/2-4/pi**2*foaxn1(x) title "n=1"
replot 1.0/2-4/pi**2*foaxn2(x) title "n=2"
replot 1.0/2-4/pi**2*foaxn3(x) title "n=3"
replot 1.0/2-4/pi**2*foaxn4(x) title "n=4"
set output 'c:\temp\fourierofabsx.png'
replot 1.0/2-4/pi**2*foaxn5(x) title "n=5"
exit
この方法により生成したグラフを以下に示す。

これは三角波(Triangle wave)と呼ばれ、口笛やフルート等の音色を近似する。
また、ここでx=0とすると、

となるから、

が導かれる。

さらに、パーセバルの等式を用いると、

が成立し、ここでL=1とすると、

であるから、

を得る。




f(x)x2のフーリエ級数展開


f(x)は偶関数なので、bn=0となって、フーリエ余弦級数の式が適用できる。



また、n=0のとき、

従って、L=1のときのf(x)x2のフーリエ級数展開は次式で表される。


上記の結果をグラフ作成ツール「gnuplot」を用いて、グラフ化する。
「gnuplot」を起動して、以下のコマンドを入力し、グラフを生成する。
(勿論、出力先のディレクトリは、各自の環境に応じて適宜変更する。)
set terminal png
set xrange[-3:3]
set yrange[-3:3]
set xtics 0.5
set ytics 0.5
set grid
fox2n1(x)=cos(1*pi*x)/1**2
fox2n2(x)=fox2n1(x)-cos(2*pi*x)/2**2
fox2n3(x)=fox2n2(x)+cos(3*pi*x)/3**2
fox2n4(x)=fox2n3(x)-cos(4*pi*x)/4**2
fox2n5(x)=fox2n4(x)+cos(5*pi*x)/5**2
plot 1.0/3 title "n=0"
replot 1.0/3-4/pi**2*fox2n1(x) title "n=1"
replot 1.0/3-4/pi**2*fox2n2(x) title "n=2"
replot 1.0/3-4/pi**2*fox2n3(x) title "n=3"
replot 1.0/3-4/pi**2*fox2n4(x) title "n=4"
set output 'c:\temp\fourierofx2.png'
replot 1.0/3-4/pi**2*fox2n5(x) title "n=5"
exit
この方法により生成したグラフを以下に示す。

ここで、x=0のとき、


また、x=1のとき、


を得る。これは、やはりリーマンのゼータ関数:

において、s=2としたものであるから、

という式が得られる。

さらに、パーセバルの等式を用いると、

が成立し、ここでL=1とすると、

であるから、

を得る。これも、リーマンのゼータ関数の式において、
s=4としたものに他ならないから、結果として

という式が得られる。




f(x)x3のフーリエ級数展開


f(x)は奇関数なので、an=0となって、フーリエ正弦級数の式が適用できる。



続いて、パーセバルの等式より、

ここで、

を代入して、

であるから、

を得る。これも、リーマンのゼータ関数の式において、
s=6としたものに他ならないから、結果として

という式が得られる。




f(x)x4のフーリエ級数展開


f(x)は偶関数なので、bn=0となって、フーリエ余弦級数の式が適用できる。



また、n=0のとき、

続いて、パーセバルの等式より、

ここで、

を代入して、

であるから、

を得る。これも、リーマンのゼータ関数の式において、
s=8としたものに他ならないから、結果として

という式が得られる。


Shadow Academy トップへ戻る

inserted by FC2 system