トップページ > 数学 > 任意の周期でのフーリエ級数展開

任意の周期でのフーリエ級数展開

フーリエ解析を用いることによって、任意の関数を三角関数の和によって表現できます。

式(1)

\[ \begin{align*} &f(x) = A_0 + \sum_{n=1}^\infty (A_n\cos{nx} + B_n\sin{nx}) \\[10pt] &A_0 = \frac{1}{2\pi}\int_{-\pi}^\pi f(x)dx \\[10pt] &A_n = \frac{1}{\pi}\int_{-\pi}^\pi f(x)\cos{nx}dx \\[10pt] &B_n = \frac{1}{\pi}\int_{-\pi}^\pi f(x)\sin{nx}dx \end{align*} \]

※詳細はこちらのコンテンツを参照して下さい。

例えば、\(f(x) = x^2\) の場合、式(1)を用いると次の図のように放物線を再現できます。

x^2の展開関数

しかし、所詮フーリエ級数は周期関数である三角関数を多数重ね合わせただけに過ぎないので、当然得られる結果も周期関数となります。

そのため、先程示した放物線も \(2\pi\) の周期性をもって繰り返し下に凸のグラフが横方向に続いていきます。

すると、再現したい関数 \(x^2\) とフーリエ級数展開して得られた関数 \(f(x)\) は \(-\pi < x < \pi\) の間でしか一致していないので非常に不便そうです。

そこで、なんとかしてこの範囲を広げることはできないか…?というのがこのコンテンツの主な目的です。

任意の周期関数として展開する

周期 \(2L\) のフーリエ級数展開

三角関数の和で再現したい関数が \(-\pi < x < \pi\) の間でしか一致しないフーリエ級数を更に広い範囲で再現するにはどのようにすればいいのでしょうか。

そもそもなぜフーリエ級数展開した関数 \(f(x)\) の周期が \(2\pi\) であるのか…というところを考えてきましょうか。

周期 \(2\pi\) の関数は次のように表現することができました。

式(2)

\[ f(x + 2m\pi) = f(x) \]

ここで \(m\) は整数を表します。

フーリエ級数展開された関数は式(2)を満たすというのです。

また \(\cos{x}\) も周期 \(2\pi\) の関数なので式(2)から次式が成立します。

\[ \cos(x + 2m\pi) = \cos{x} \]

さらに、\(\cos{nx} ~ (~ n \geqq 2 ~)\) も式(2)の関係を満たします。

この関数の周期自体は \(\cos{x}\) と比較して \(\frac{1}{n}\) 倍になるのですが…

\(-\pi < x < \pi\) にで描かれるグラフを \(2\pi\) だけ横軸方向に平行移動させても重ねることができるということは、やはり式(2)を満たすということになります。

\[ \cos(nx + 2m\pi) = \cos{nx} \]

ここまでの話から、フーリエ級数展開によって得られた関数の周期性は足し合わせる三角関数の周期性に関わりがありそうということが分かります。

しつこいようですが…次のようになるのですから、そう思ってもおかしくはないですよねぇ…👇

\[ \begin{align*} f(x + 2m\pi) &= A_0 + A_1\cos(x + 2m\pi) + A_2\cos(2x + 2m\pi) + \cdots B_1\sin(x + 2m\pi) + B_2\sin(2x + 2m\pi) + \cdots \\[10pt] &= A_0 + A_1\cos{x} + A_2\cos{2x} + \cdots B_1\sin{x} + B_2\sin{2x} + \cdots \\[10pt] &= f(x) \end{align*} \]

そのため、周期が仮に \(2L\) の三角関数を利用すると、級数展開で得られた関数も周期が \(2L\) になってくれるかもしれない。

それを以下で確認していきます。

まず周期が \(2L\) の三角関数をどのように表現すればいいかを知る必要があります。

次の図を見て下さい。

上側周期 \(2\pi\) の三角関数 \(\sin{x}\)、下側に周期 \(2L\) の三角関数を示しました。

周期の変更

この図を見ると、下側の三角関数は上側の三角関数を \(x\) 軸方向に拡大してあげると重ねることができそうということに気付きましょう。

そしてグラフを \(x\) 軸方向へ \(a\) 倍だけ拡大・縮小させたいときには、関数 \(f\) の引数を

\[ f(x) \rightarrow f\left(\frac{x}{a}\right) \]

というように変換をすればいいので、

つまり、いま周期 \(2\pi\) の状態から \(2L\) へ拡大(あるいは縮小)するということは \(a = \frac{2L}{2\pi}\) 倍の操作をするということだから

式(3)

\[ f(x) \rightarrow f\left(\frac{x}{2L/2\pi}\right) = f\left(\frac{\pi}{L}x\right) \equiv g(x) \]

このようになります。

またここで改めて変数変換を施したあとに得られる関数を \(g(x)\) と名付けさせていただきました。

関数 \(g(x)\) は式(3)で示したことを用いて式(1)の関数 \(f\) の引数を \(x \rightarrow \frac{\pi}{L}x\) としてあげればいいので、

式(4)

\[ g(x) = f\left(\frac{\pi}{L}x\right) = A_0 + \sum_{n=1}^\infty \left\{A_n \cos\left(\frac{n\pi x}{L}\right) + B_n \sin\left(\frac{n\pi x}{L}\right)\right\} \]

このようになります。

ちなみに、ここに現れる \(\cos\) 関数は \(\cos\left(\frac{n\pi x}{L}\right) \rightarrow \cos\left(\frac{n\pi}{L}(x + 2mL)\right) = \cos\left(\frac{n\pi x}{L}\right)\) を満たしますし、\(\sin\) 関数も同様です。

ここまでよろしいですか?

やっと目的の関数を得ることに成功しましたが、安心する前に式(4)が本当に周期 \(2L\) の関数であるのか確認しておきましょう。

そのためには

\[ g(x + 2mL) = g(x) \]

という関係式がなりたつことを示す必要がありますね。

実際に関数 \(g\) の引数を \(x \rightarrow x + 2mL\) として式変形をしていくと

式(5)

\[ \begin{align*} g(x + 2mL) &= f\left(\frac{\pi}{L} (x + 2mL)\right) \\[10pt] &= f\left(\frac{\pi}{L}x + 2m\pi\right) \end{align*} \]

1つ目の等式は式(3)から引用しています。

ここで、\(X = \frac{\pi}{L}x\) という変数を仮に用意すると、式(2)から \(f(X + 2mL) = f(X)\) が成り立つので、

式(5)の続き

\[ \begin{align*} &= f\left(\frac{\pi}{L}x + 2m\pi\right) \\[10pt] &= f\left(\frac{\pi}{L}x\right) \\[10pt] &= g(x) \\[10pt] &\therefore g(x + 2mL) = g(x) \end{align*} \]

となり、\(g(x)\) が周期 \(2L\) の関数であるということが示されましたね。

めでたしめでたし…いえいえ、まだ終わっていません。

ここまでに行ってきた変数変換に伴って、係数 \(A_n\) および \(B_n\) もそれに合わせたものにする必要があります。

周期 \(2L\) のフーリエ級数展開係数

まず係数の具体的表現したときに積分が現れますが、その際の積分範囲は \([-\pi,~\pi]\) から \([-L,~L]\) に変わります。

数学的には

\[ \begin{align*} -\pi < \frac{\pi}{L}x < \pi \\[10pt] \Leftrightarrow -L < x < L \end{align*} \]

のようにして得ることができます。

また \(x \rightarrow \frac{\pi}{L}x\) および \(dx \rightarrow \frac{\pi}{L}dx\) となることに注意すると、係数 \(A_0\)、\(A_n\)、\(B_n\) は

式(6)

\[ \begin{align*} A_0 &= \frac{1}{2\pi}\int_{-L}^L f\left(\frac{\pi}{L}x\right)\frac{\pi}{L}dx = \frac{1}{2L}\int_{-L}^L g(x)dx \\[20pt] A_n &= \frac{1}{\pi} \int_{-L}^L f\left(\frac{\pi}{L}x\right)\cos\left(\frac{n\pi x}{L}\right) \frac{\pi}{L}dx = \frac{1}{L}\int_{-L}^L g(x)\cos\left(\frac{n\pi x}{L}\right) dx \\[20pt] B_n &= \frac{1}{\pi} \int_{-L}^L f\left(\frac{\pi}{L}x\right)\sin\left(\frac{n\pi x}{L}\right) \frac{\pi}{L}dx = \frac{1}{L}\int_{-L}^L g(x)\sin\left(\frac{n\pi x}{L}\right) dx \end{align*} \]

となります。

内容は以上ですが、せっかくなので得られた式(4), (6)を用いて再度 \(g(x) = x^2 ~ (~ -L < x < L ~)\) としてグラフを描いてみましょう。

このときフーリエ係数は、

\[ \begin{align*} &A_0 = \frac{L^2}{3} \\[10pt] &A_n = (-1)^n\left(\frac{2L}{n\pi}\right)^2 \\[10pt] &B_n = 0 \end{align*} \]

となるので、\(g(x)\) はつぎのようになりますね。

\[ g(x) = x^2 = \frac{L^2}{3} + \sum_{n = 1}^\infty (-1)^n\left(\frac{2L}{n\pi}\right)^2\cos\left(\frac{n\pi x}{L}\right) \]

そして、例えば \(L=5\) であるとすれば、周期が \(10\) となってくれると嬉しいところですが…

このように、実際にグラフを描いてみても周期は \(2L = 10\) となっていることが確認が取れます。

以上、周期が \(2L\) の三角関数を用いることによって、フーリエ級数展開で得られる関数の周期も \(2L\) という任意の区間で表現できるようになりました。

フーリエ積分

任意の周期 \(2L\) の関数として次のようにフーリエ級数展開できます。

\[ \begin{align*} &g(x) = A_0 + \sum_{n=1}^\infty \left\{A_n \cos\left(\frac{n\pi x}{L}\right) + B_n \sin\left(\frac{n\pi x}{L}\right)\right\} \\[10pt] &A_0 = \frac{1}{2L}\int_{-L}^L g(x)dx \\[10pt] &A_n = \frac{1}{L}\int_{-L}^L g(x)\cos\left(\frac{n\pi x}{L}\right) dx \\[10pt] &B_n = \frac{1}{L}\int_{-L}^L g(x)\sin\left(\frac{n\pi x}{L}\right) dx \end{align*} \]

前節では、再現したい関数がフーリエ級数展開によって得られる関数と \(-\pi < x < \pi\) の範囲でしか一致しないために、なんとかこの範囲を広げようとして上式を得てきました。

ところがやはり周期関数である以上、いくら再現できる範囲を広げたところで \(-L < x < L\) の範囲外になってしまうと関数の再現は期待できません。

それならと開き直って目一杯に \(L\) を大きくしてやれば、どこまでも再現できる関数が得られるのではないでしょうか!?

…ということをこのコンテンツの最後に行っていきます。

どのようなことをするかまず結論から話すと、至ってシンプルで、\(L \rightarrow \infty\) とするだけです。

このように \(L\) を変化させる操作を行うので、以後 \(g(x)\) を \(g_L(x)\) と表現することにします。

まとめると今回計算を行っていくのは

式(7)

\[ g_{\infty}(x) \equiv \lim_{L \rightarrow \infty} g_L(x) = \lim_{L \rightarrow \infty} \left[ A_0 + \sum_{n=1}^\infty \left\{A_n \cos\left(\frac{n\pi x}{L}\right) + B_n \sin\left(\frac{n\pi x}{L}\right)\right\} \right] \]

です。

煩雑になってしまいますが、ここに係数 \(A_0\)、\(A_n\)、\(B_n\) をすべて代入してみます。

式(7)の続き

\[ \begin{align*} g_{\infty}(x) &= \lim_{L \rightarrow \infty} \left[ A_0 + \sum_{n=1}^\infty \left\{A_n \cos\left(\frac{n\pi x}{L}\right) + B_n \sin\left(\frac{n\pi x}{L}\right)\right\} \right] \\[20pt] &= \lim_{L \rightarrow \infty} \frac{1}{2L}\int_{-L}^L g_L(x)dx + \lim_{L \rightarrow \infty} \sum_{n=1}^\infty \left[\left\{\frac{1}{L}\int_{-L}^L g_L(x)\cos\left(\frac{n\pi x}{L}\right) dx\right\} \cos\left(\frac{n\pi x}{L}\right) \right] + \lim_{L \rightarrow \infty} \sum_{n=1}^\infty \left[\left\{\frac{1}{L}\int_{-L}^L g_L(x)\sin\left(\frac{n\pi x}{L}\right) dx\right\} \sin\left(\frac{n\pi x}{L}\right) \right] \end{align*} \]

ここで式を見て、なんとなく「区分求積法」が使ってみたいと思えればGoodです。

※区分求積法については、こちらのコンテンツを参照して下さい。

区分求積法によって、和を積分に置き換える式の一般型は次のとおりです。

\[ \begin{align*} \int_a^b f(x) dx &= \lim_{N \rightarrow \infty} \sum_{k = 0}^{N - 1} f\left(a + \frac{k}{N}(b - a)\right)\frac{b - a}{N} \\[20pt] &= \lim_{\Delta x \rightarrow 0} \sum_{k = 0}^{N - 1} f\left(a + k\Delta x\right)\Delta x \end{align*} \]

区分求積法の概念図

簡単に説明しておくと、ある関数 \(f(x)\) の区間 \([a,~b]\) の積分は幾何学的に面積として表現できるわけですが、この領域内に底辺 \(\Delta x\)、高さ \(f(x)\) の長方形を \(N\) 個敷き詰めることによって、その長方形の面積の総和で積分値を求められるというものです。

式(7)と区分求積法の公式を見比べてみると、ちょうど次のような対応関係になっていることが分かるはずです。

【対応関係】
\(\lim\) 部分
\(\sum\) 部分
式(7)
\(L\)
\(n\)
区分求積法
\(N\)
\(k\)

対応関係が分かればさっそく和を積分に置き換えてみたいのですが、その前に区分求積法の公式にあるような \(\Delta x\) に相当する変化量を決めてみましょう。

新しい変数として

式(8)

\[ u_n \equiv \frac{n\pi}{L} \]

を導入します。

※別に \(\frac{n}{L}\) でもいいのですが、どうせなら定数の \(\pi\) もまとめてしまったほうがお得?…といいますか、慣例的もしくは物理的な意味を考慮すると式(8)のように定義するほうがやはりいいですね。

そして、\(n\) が \(1\) だけ変化する際の \(u_n\) の変化量 \(\Delta u\) は次のようにして求めることができます。

式(9)

\[ \begin{align*} \Delta u &= u_{n + 1} - u_n \\[10pt] &= (n + 1)\frac{\pi}{L} - n\frac{\pi}{L} \\[10pt] &= \frac{\pi}{L} \end{align*} \]

これが式(7)に区分求積法を適用する際に与えられる長方形の幅になります。

式(7)と式(9)から \(L\) を消去すると、

式(10)

\[ \begin{align*} g_{\infty}(x) &= \lim_{L \rightarrow \infty} \frac{1}{2L}\int_{-L}^L g_L(x)dx + \lim_{L \rightarrow \infty} \sum_{n=1}^\infty \left[\left\{\frac{1}{L}\int_{-L}^L g_L(x)\cos\left(\frac{n\pi x}{L}\right) dx\right\} \cos\left(\frac{n\pi x}{L}\right) \right] + \lim_{L \rightarrow \infty} \sum_{n=1}^\infty \left[\left\{\frac{1}{L}\int_{-L}^L g_L(x)\sin\left(\frac{n\pi x}{L}\right) dx\right\} \sin\left(\frac{n\pi x}{L}\right) \right] \\[20pt] &= \lim_{\Delta u \rightarrow 0 ~ (L \rightarrow \infty)} \frac{\Delta u}{2\pi}\int_{-L}^L g_L(x)dx + \lim_{\Delta u \rightarrow 0 ~ (L \rightarrow \infty)} \sum_{n=1}^\infty \left[\left\{\frac{\Delta u}{\pi}\int_{-L}^L g_L(x)\cos{u_nx} dx\right\} \cos{u_nx} \right] + \lim_{\Delta u \rightarrow 0 ~ (L \rightarrow \infty)} \sum_{n=1}^\infty \left[\left\{\frac{\Delta u}{\pi}\int_{-L}^L g_L(x)\sin{u_nx} dx\right\} \sin{u_nx} \right] \\[20pt] &= \lim_{\Delta u \rightarrow 0 ~ (L \rightarrow \infty)} \frac{1}{2\pi} \left\{ \int_{-L}^L g_L(x)dx \right\} \Delta u + \lim_{\Delta u \rightarrow 0 ~ (L \rightarrow \infty)} \frac{1}{\pi} \sum_{n=1}^\infty \left[\left\{\int_{-L}^L g_L(x)\cos{u_nx} dx\right\} \cos{u_nx} \right] \Delta u + \lim_{\Delta u \rightarrow 0 ~ (L \rightarrow \infty)} \frac{1}{\pi} \sum_{n=1}^\infty \left[\left\{\int_{-L}^L g_L(x)\sin{u_nx} dx\right\} \sin{u_nx} \right] \Delta u \\[20pt] \end{align*} \]

となります。

式(10)の第2項、第3項から見てみることにしましょう。

これらはちょうど区分求積法の公式に則って書き換えることができそうです。

そのために式(8)から \(L \rightarrow \infty\) であることを前提に \(n\) は \([0,~\infty)\) の間を動きますので、\(u_n\) がとり得る値の範囲は \([0,~\infty)\) となることが分かります。

つまり、これが積分変数 \(u\) の積分区間になること留意して

式(10)の第2項

\[ \begin{align*} &\lim_{\Delta u \rightarrow 0 ~ (L \rightarrow \infty)} \frac{1}{\pi} \sum_{n=1}^\infty \left[\left\{\int_{-L}^L g_L(x)\cos{u_nx} dx\right\} \cos{u_nx} \right] \Delta u \\[20pt] &= \frac{1}{\pi} \int_{u = 0}^\infty \left\{\int_{x = -\infty}^\infty g_\infty(x)\cos{ux} dx\right\} \cos{ux} du \end{align*} \]

式(10)の第3項

\[ \begin{align*} &\lim_{\Delta u \rightarrow 0 ~ (L \rightarrow \infty)} \frac{1}{\pi} \sum_{n=1}^\infty \left[\left\{\int_{-L}^L g_L(x)\sin{u_nx} dx\right\} \sin{u_nx} \right] \Delta u \\[20pt] &= \frac{1}{\pi} \int_{u = 0}^\infty \left\{\int_{x = -\infty}^\infty g_\infty(x)\sin{ux} dx\right\} \sin{ux} du \end{align*} \]

和を積分に書き換える際、同時に \(u_n\) を \(u\) と書き換えましたので注意して下さい。

次に式(10)の第1項ですが、再度提示すると

式(10)の第1項

\[ \lim_{\Delta u \rightarrow 0 ~ (L \rightarrow \infty)} \frac{1}{2\pi} \left\{ \int_{-L}^L g_L(x)dx \right\} \Delta u \]

なのですが、よく見てみると \(0 \times \infty\) の不定形になってそうなことに不安を覚えてきます。

というのも、積分は無限に広い範囲で実行することになるので、下手をしてしまうと無限に発散しますし、一方で \(\Delta u\) は \(0\) に近づくことからお分かりいただけると思います。

ただ確実に言えることは、もし実際に (式(10)の第1項) \(\rightarrow \infty\) になるとしたら \(g_{\infty}(x) \rightarrow \infty\) となってしまい関数を求めたいという目的を達成することができません。

そのため理想としては \(\Delta u \rightarrow 0 ~ (L \rightarrow \infty)\) とした際に(\(\Delta u \rightarrow 0\) の影響が強く出ることで) \(0\) に落ち着いて欲しいという願望はありますよね。

これは個人的な話になってしまうのですが、実は今回のこの試みが人生初であって、こんな式変形をやってみるとどうなるのかという好奇心のままに始めてみたこと。

ですから、正直あまり詳しくは知らなかったというのが現実でここで躓いてしまったのでした…

ということで少し調べてみることにしたのですが…やはりここから式変形を進めるには第1項が \(0\) に収束してもらう必要があって、そのためには次の条件式が課されるようなのです。

式(11)

\[ \int_{-\infty}^\infty \left|g_{\infty}(x)\right| dx \leqq M \]

これを「絶対積分可能」とか「絶対可積分」と呼ばれているみたい。

要するに式(11)の左辺の積分がある定数 \(M\) より大きくなることはなく、無限に発散しないということですよね。

ただ \(0\) に収束させるというのなら、個人的には

\[ \begin{align*} &\left|\int_{-\infty}^\infty g_{\infty}(x) dx\right| \leqq M \\[20pt] &\Leftrightarrow -M \leqq \int_{-\infty}^\infty g_{\infty}(x) dx \leqq M \end{align*} \]

これでもいいんじゃないの?と思ったのですが…詳細は分かりませんでした。

もしかすると次に示すような積分の三角不等式

\[ \left|\int_{-\infty}^\infty g_{\infty}(x) dx\right| \leqq \int_{-\infty}^\infty \left|g_{\infty}(x)\right| dx \]

を利用して条件を厳しくした(?)のかなと勝手に推察だけしています。

この辺り博識な方ご教授いただけると嬉しいです。

とりあえず話を進めますが、もう一度確認すると、式(11)を満たすような無限の範囲で積分しても発散しない関数を扱う必要性があるということ。

そのため、実はどのような関数でも三角関数を用いて表現することができるとは限らなかったのですね!(ごめんなさい…コレは初めて知った)

ということで、一旦以上をまとめると関数 \(g_{\infty}(x)\) は次のように表されるということになります。

式(12)

\[ \begin{align*} g_{\infty}(x) &= 0 + \frac{1}{\pi} \int_{u = 0}^\infty \left\{\int_{x = -\infty}^\infty g_\infty(x)\cos{ux} dx\right\} \cos{ux} du + \frac{1}{\pi} \int_{u = 0}^\infty \left\{\int_{x = -\infty}^\infty g_\infty(x)\sin{ux} dx\right\} \sin{ux} du \\[20pt] &= \frac{1}{\pi} \int_{u = 0}^\infty \left[ \left\{\int_{x = -\infty}^\infty g_\infty(x)\cos{ux} dx\right\} \cos{ux} + \left\{\int_{x = -\infty}^\infty g_\infty(x)\sin{ux} dx\right\} \sin{ux} \right] du \\[40pt] &\therefore g_{\infty}(x) = \frac{1}{\pi} \int_{u = 0}^\infty (A_u \cos{ux} + B_u \sin{ux}) du \\[20pt] & ~~~~~ A_u = \int_{x = -\infty}^\infty g_\infty(x)\cos{ux} dx \\[20pt] & ~~~~~ B_u = \int_{x = -\infty}^\infty g_\infty(x)\sin{ux} dx \end{align*} \]

式(12)の最後に示した式では本質を損なわない形になっていて、フーリエ級数展開の公式や係数がそのまま積分に書き換えられたかのような表現になってますよね。

そのためこれを「フーリエ積分」とか呼ばれたりしています。

それでは最後にフーリエ積分では、どんな関数が扱えなくて、どんな関数が扱えるのかを簡単に考えてから終了したいと思います。

考えてみると分かりますが、少なくとも \(x \rightarrow \infty\) において \(g_{\infty}(x) \rightarrow \infty\) となるような関数は扱えないということになりますよね。

\(x\) 軸と挟まれた領域の面積が無限に増えていくことになりますので。

なので、冒頭から例として挙げていた関数 \(x^2\) をフーリエ積分式(12)を用いて展開してみたいと思いましたが、できる訳がないんですね…

実際に第1項だけ計算してみて無限に発散してしまうことを各自で確認してみて下さい。

一方、フーリエ積分で扱える関数は、\(x \rightarrow \infty\) において \(g_{\infty}(x) \rightarrow 0\) に収束するような関数が挙げれられます。

例えば、\(g_{\infty}(x) = e^{-x^2}\) などは扱うことができます。

しかし、ここに挙げたことは絶対的なことではありません。

例外的に扱える関数、扱えない関数もあったりするので注意です。

【サイト運営 : だいご】

今年で物理化学歴11年目になります。

大学入試2次数学でたった3割しか得点できなかったいわゆる数弱落ちこぼれ。それでも好きこそものの上手なれと言ったところか、学会で最優秀賞受賞したり首席卒業できてしまったので、役に立つ知識を当サイトに全て惜しみなく公開しようと思います。ブックマークをオススメ。