見出し画像

高校生に伝えたいフーリエ展開

みなさんこんにちは。ずんだもん博士なのだ。みなさんはフーリエ展開をご存じでしょうか?僕はよくノコギリを見た時に思い出します。

さて昨日はテイラー展開というものをご紹介しましたね。あれはどんな関数でも多項式で近似してやるぜ!っていう発想から生まれたものですが、似たようなことを三角関数でも出来ますというのがフーリエ展開です。面白そうでしょ?

これは単に面白いだけじゃなくて、全ての分野で重要です。例えば単に関数の挙動を調べるときに使うし、微分方程式を解くのにも使います。数論でもフーリエ展開が可能な保形形式というものがフェルマー予想の解決に寄与したりしますな。物理では振動について調べるときに使ったり、量子論で波動関数をフーリエ展開するといったことは、ごく当たり前に行われています。

そういう世界でなくとも、例えば作曲家になりたいのであれば、音声をフーリエ変換してどの音程が一番強く出るか等を知っておくと、つよつよトラックメーカーになれるかもしれません。そうSota Fujimoriのように!


発想

まず$${f(x)}$$を関数とします。そしてテイラー展開の時と同じ展開ですが、次のような和で書けることを「期待」します:

$$
\begin{align*}
f(x)=a_0 + \sum_{n=1}^\infty c_n \cos(2\pi n x) + \sum_{n=1}^\infty s_n \sin(2\pi n x)
\end{align*}
$$

今回は係数$${a_0, c_n, s_n}$$を求めるのには骨が折れるかもしれません。単に$${x}$$に何か良い値を入れても幸せにはなれなさそうです。さてどうしたものでしょう?

三角関数の直交性

いきなりですが次の積分を求めてみましょう

$$
\begin{align*}
\int_0^1\cos(2\pi n x)\cos(2\pi m x)dx\\
\int_0^1\cos(2\pi n x)\sin(2\pi m x)dx\\
\int_0^1\sin(2\pi n x)\sin(2\pi m x)dx
\end{align*}
$$

できましたかね?多分高校レベルで全然実行できるレベルの計算です。


ヒントは積和公式だよー。


そろそろ答え合わせしてもよさそ~?


おっけーじゃあ答え合わせするねー

$$
\begin{align*}
\int_0^1\cos(2\pi n x)\cos(2\pi m x)dx &= \left\{\begin{array}{cl} 1/2 & (m=n) \\ 0 & (m\neq n)\end{array}\right.\\
\int_0^1\cos(2\pi n x)\sin(2\pi m x)dx &= 0\\
\int_0^1\sin(2\pi n x)\sin(2\pi m x)dx &= \left\{\begin{array}{cl} 1/2 & (m=n) \\ 0 & (m\neq n)\end{array}\right.
\end{align*}
$$

もとい。これでやりたい事は分かりましたかね。

$$
\begin{align*}
f(x)=a_0 + \sum_{n=1}^\infty c_n \cos(2\pi n x) + \sum_{n=1}^\infty s_n \sin(2\pi n x)
\end{align*}
$$

この両辺に$${\cos(2\pi n x)}$$や$${\sin(2\pi n x)}$$なんかを掛けて区間$${[0,1]}$$で積分すると係数が求められます!

具体的に言えば

$$
\begin{align*}
a_0&=\int_0^1 f(x)dx\\
c_n&=2\int_0^1f(x)\cos(2\pi n x)dx\\
s_n&=2\int_0^1f(x)\sin(2\pi n x)dx
\end{align*}
$$

となる…ハズです!

ご利用上の注意点

お察しの通りかもしれませんが、ご利用は計画的に。

定義域について

まずテイラー展開と違って確実に違うことは、この展開が通用する$${x}$$の区間が限られているということです。今回で言うと言わずもがな区間$$[0,1]$$でしか成り立ちません。

ところがフーリエ展開したい関数が周期関数だった場合、つまり$$f(x+1)=f(x)$$がすべての$${x}$$に対して成り立つような場合、逆に実数全体で$${f(x)}$$がフーリエ展開できる可能性が高まります。極端な話、$${f(x)=\cos(x)}$$はフーリエ展開可能で、この表記自体がフーリエ展開後です。

一方で、次のように考えればフーリエ展開できる区間を広げることが出来ます。まず$${T}$$を正の実数としまして、

$$
\begin{align*}
f(x)=a_0 + \sum_{n=1}^\infty c_n \cos\left(\frac{2\pi n x}{T}\right) + \sum_{n=1}^\infty s_n \sin\left(\frac{2\pi n x}{T}\right)
\end{align*}
$$

と展開できると期待すれば、さっきと同様$${\cos\left(\frac{2\pi n x}{T}\right)}$$や$${\sin\left(\frac{2\pi n x}{T}\right)}$$を掛けて0から$${T}$$までの積分を行うことによって

$$
\begin{align*}
a_0&=\int_0^T f(x)dx\\
c_n&=\frac2T\int_0^Tf(x)\cos\left(\frac{2\pi n x}{T}\right)dx\\
s_n&=\frac2T\int_0^Tf(x)\sin\left(\frac{2\pi n x}{T}\right)dx
\end{align*}
$$

と計算できるので、好きなだけ適用区間を広げたり狭めたりできます。

一方で係数が上記の積分で与えられる以上、$${f(x)\cos(2\pi x/T)}$$や$${f(x)\sin(2\pi x/T)}$$が区間$${[0,T]}$$上で積分可能でなければいけません。この積分可能条件は奥が深くて、カントールが集合論を作るきっかけになっていたり、リーマン積分じゃ不十分でルベーグ積分というものを考えるきっかけになって、「面積」「体積」といった概念を根本から見直すことにもなりました。

収束について

テイラー展開では詳しく述べられた収束の議論ですが、フーリエ展開ではちょっと無理です。しっかり述べるならそれこそルベーグ積分や超関数の知識が必要ですが、これは解析学でいうと、代数学で言うところのガロア理論ぐらいの重みのある理論でして、プロパーじゃないとちょっとサッとお出しできないです。際どい例があるのは事実です。でも高校生のみなさんは安心してください。そんなヤベー関数はたぶん絶対出てきません!(そもそもフーリエ展開しないと解けない問題なんて出せないだろ、っていう)

応用例

$${f(x)=x}$$

$${f(x)=x}$$を区間$$[0,1]$$でフーリエ展開してみましょう。まず

$$
\begin{align*}
a_0&=\int_0^1 f(x)dx\\
&= \int_0^1 xdx\\
&= \frac12
\end{align*}
$$

ですな。続きまして

$$
\begin{align*}
c_n&=2\int_0^1 f(x)\cos(2\pi n x)dx\\
&= 2\int_0^1 x\cos(2\pi n x)dx\\
&= \frac{2}{2\pi n}\left[x\sin(2\pi n x)\right]_{x=0}^{x=1}-\frac{2}{2\pi n}\int_0^1\sin(2\pi n x)dx\\
&= 0
\end{align*}
$$

$$
\begin{align*}
s_n&=2\int_0^1 f(x)\sin(2\pi n x)dx\\
&= 2\int_0^1 x\sin(2\pi n x)dx\\
&= -\frac{2}{2\pi n}\left[x\cos(2\pi n x)\right]_{x=0}^{x=1}+\frac{2}{2\pi n}\int_0^1\cos(2\pi n x)dx\\
&= -\frac1{\pi n}
\end{align*}
$$

ということで下記の通りフーリエ展開が求まりました:

$$
\begin{align*}
f(x)=\frac12-\frac1\pi\sum_{n=1}^\infty \frac1n\sin(2\pi nx)
\end{align*}
$$

f(x)=xに近づいていく様。Manim様のご機嫌のせいか近づいたり近づかなかったりしている

まとめ

まあこんな感じです(投げやり)。でも発想自体は単純でしたね。関数$${f(x)}$$が

$$
\begin{align*}
f(x)=a_0 + \sum_{n=1}^\infty c_n \cos\left(\frac{2\pi n x}{T}\right) + \sum_{n=1}^\infty s_n \sin\left(\frac{2\pi n x}{T}\right)
\end{align*}
$$

と展開できると考えた場合、その係数は積分

$$
\begin{align*}
a_0&=\int_0^T f(x)dx\\
c_n&=\frac2T\int_0^Tf(x)\cos\left(\frac{2\pi n x}{T}\right)dx\\
s_n&=\frac2T\int_0^Tf(x)\sin\left(\frac{2\pi n x}{T}\right)dx
\end{align*}
$$

によって求められますよねーってだけの話です。

みんなも$${x^2}$$とか$${e^x}$$とかをフーリエ展開してみよう!ちなみに矩形波も

$$
\begin{align*}
f(x)=\left\{\begin{array}{cl} 0 & (0 \leq x \leq 1/2) \\ 1 & (1/2 < x \leq 1) & \end{array}\right.
\end{align*}
$$

のような単純な関数としてフーリエ展開できます。おもしろいから是非グラフ描画ソフト(オススメは手軽なFunctionView)片手にやってみてね!

いいなと思ったら応援しよう!