このページでは、周期関数を三角関数の重ね合わせで表現するフーリエ級数について学びます。 特に、元の関数が持つ不連続性がフーリエ級数の収束にどのように影響するか、そして不連続点付近で観察されるギブス現象を視覚的に探求します。
区間 \([0, \pi)\) で定義された関数 \(f(x) = x\) を考え、これを周期 \(2\pi\) の関数として以下の2つの方法で拡張します。
元の関数を原点対称(奇関数)になるように \((-\pi, \pi)\) に拡張し、それを周期 \(2\pi\) で繰り返します。区間 \([0, 2\pi)\) では以下のようになります。
\[ f_1(x) = \begin{cases} x & (0 \leq x < \pi) \\ x - 2\pi & (\pi \leq x < 2\pi) \end{cases} \]\(x=\pi\) では不連続になります(フーリエ級数の収束値は左右極限の平均値 0 です)。
この関数のフーリエ級数(部分和)は以下のサイン級数となります。
\[ S_{N}^{(1)}(x) = 2 \sum_{n=1}^{N} \frac{(-1)^{n+1}}{n} \sin nx \]元の関数を \(y\) 軸対称(偶関数)になるように \([-\pi, \pi]\) に拡張し、それを周期 \(2\pi\) で繰り返します。区間 \([0, 2\pi)\) では以下のようになります。
\[ f_2(x) = \begin{cases} x & (0 \leq x \leq \pi) \\ 2\pi - x & (\pi < x < 2\pi) \end{cases} \]この関数は区間全体で連続になります。
この関数のフーリエ級数(部分和)は以下のコサイン級数となります。
\[ S_{N}^{(2)}(x) = \frac{\pi}{2} - \sum_{k=1}^{\lceil N/2 \rceil} \frac{4}{\pi (2k-1)^2} \cos((2k-1)x) \](ここで \(\lceil N/2 \rceil\) は \(N/2\) 以上の最小の整数を表し、級数には奇数番目のコサイン項のみが現れます。)
「可視化」タブで、これらの関数とそのフーリエ級数 \(S_N(x)\) がどのように関数を近似していくかを見てみましょう。 また、「ギブス現象」タブでは、不連続拡張 \(f_1(x)\) の不連続点 \(x=\pi\) 付近での特有の振る舞いを詳しく観察します。
スライダーを動かして、フーリエ級数の項数 \(N\) を変化させ、元の関数への収束の様子を比較してください。特に、収束の速さの違いに注目しましょう。
関数が連続な点 \(x = \pi/2\) での、原関数とフーリエ級数部分和 \(S_N(x)\) との絶対誤差 \(|f(\pi/2) - S_N(\pi/2)|\) を比較します。
項数 (N) | 不連続拡張 \(f_1\) の誤差 | 連続拡張 \(f_2\) の誤差 |
---|
連続拡張の方が誤差の減少が速い(収束が速い)ことがわかります。
不連続な関数 \(f_1(x)\) をフーリエ級数で近似すると、不連続点 \(x=\pi\) の近くで部分和 \(S_N^{(1)}(x)\) がオーバーシュート(行き過ぎ)する現象が見られます。 これをギブス現象と呼びます。
スライダーで項数 \(N\) を増やしても、オーバーシュートの「高さ」はほとんど変わらないことを確認してください。
周期 \(2L\) を持つ「良い性質の」関数 \(f(x)\) は、三角関数の無限級数で表すことができます。
ここで、フーリエ係数 \(a_n, b_n\) は以下で計算されます。
\[ a_n = \frac{1}{L} \int_{-L}^{L} f(x) \cos\left(\frac{n\pi x}{L}\right) dx \quad (n=0, 1, 2, \dots) \] \[ b_n = \frac{1}{L} \int_{-L}^{L} f(x) \sin\left(\frac{n\pi x}{L}\right) dx \quad (n=1, 2, 3, \dots) \]このページでは周期 \(2\pi\) (\(L=\pi\)) の場合を扱っています。関数が奇関数 (\(f(-x)=-f(x)\)) ならば \(a_n=0\) となりサイン級数に、偶関数 (\(f(-x)=f(x)\)) ならば \(b_n=0\) となりコサイン級数になります。
関数 \(f(x)\) が周期 \(2L\) を持ち、以下のディリクレ条件を満たす場合、そのフーリエ級数は収束します。
これらの条件を満たすとき、フーリエ級数の収束値は以下となります。
フーリエ級数の収束の速さ(部分和 \(S_N(x)\) が \(f(x)\) にどれだけ早く近づくか)は、元の関数 \(f(x)\) の滑らかさに強く依存します。
この性質は、「可視化」タブの誤差比較表で確認できます。
関数 \(f(x)\) が第一種不連続点 \(x_0\) を持つとき、その点におけるフーリエ級数の部分和 \(S_N(x)\) は、\(N \to \infty\) の極限でも、不連続点の近傍で \(f(x_0+0)\) と \(f(x_0-0)\) の間を振動するだけでなく、これらの値を一定量だけ「超えて」振動します。
具体的には、不連続点での跳びの高さを \(\Delta f = |f(x_0+0) - f(x_0-0)|\) とすると、\(N\) が大きいとき、部分和 \(S_N(x)\) の最大値(または最小値)は、収束値 \(\frac{f(x_0+0) + f(x_0-0)}{2}\) から約 \(0.08949 \times \Delta f\) だけ離れた値に近づきます。
この \(N\) を増やしても消えないオーバーシュートがギブス現象です。振動が現れる領域は \(N\) とともに不連続点に近づいていきます。
© 2025 フーリエ級数可視化デモ (Chart.js v3.9.1)