応用数学 ch2メモ(直交関数展開)#
まとめ#
Tip
ベクトル空間上の正規直交基底であらゆるベクトルを表せるのと同様に、関数においても 完備な直交関数系による近似によって任意の関数を表現できる
その近似は直交関数系\(\{\phi_i(x)\}\)の線形結合\(c_0 \phi_0(x)+c_1 \phi_1(x)+\cdots+c_n \phi_n(x)\)なので、級数(\(\sum_{i=1}^{\infty} c_i \phi_i(x)\) など)で表現できる(→フーリエ級数)
直交関数展開#
区間 \([a, b]\) 上の関数 \(f(x), g(x)\) が
のとき 直交する という。
関数 \(\phi_0(x), \phi_1(x), \ldots, \phi_n(x)\) が互いに直交するとき、すなわち
のとき、これらは区間\([a,b]\)上の 直交関数系 であるという。とくに\(\phi_i(x)\)が\(x\)の多項式なら、これを 直交多項式 という。
次の関数 \(P_n(x), n=0,1,2, \ldots\), は \(n\) 次の ルジャンドルの多項式 と呼ばれる。
これらは区間 \([-1,1]\) 上の直交関数系であり, 次の直交関係が成立する.
\(P_n(x)\) の一般式が次式で表せることが知られている(ロドリゲスの公式).
は区間 \([-\pi, \pi]\) 上の直交関数である。
(証明) \(\cos k x, \sin k x, k=1,2,3, \ldots\) は周期 \(2 \pi\) の周期関数であるから、 1 周期 に渡る積分 \(\int_{-\pi}^\pi \cos k x \mathrm{~d} x, \int_{-\pi}^\pi \sin k x \mathrm{~d} x\) は 0 である。このことから \(\frac{1}{2}\) と \(\cos k x\), \(\sin k x\) に対して次のようになる。
\(\cos k x, \sin l x\) に対しては次のようになる。
\(k \neq l\) のとき \(\cos k x, \cos l x\) に対して次のようになる。
\(k \neq l\) のとき \(\sin k x, \sin l x\) に対して次のようになる。
以上より \(\frac{1}{2}, \cos k x, \sin k x, k=1,2,3, \ldots\), が直交関数系であることが示された。
また次の関係も成り立つ。
最小二乗近似#
区間\([a,b]\)上の直交関数系\(\{\phi_i(x)\}, i=0,1,\cdots,n\)の線形結合で関数\(f(x)\)を近似する事を考える
このような近似は、画像や音声を表す信号を少量の数値のみで高速に伝送したり、メモリの記憶容量を削減するために用いられる。
近似の尺度として最小二乗法
を用いると、各係数\(c_i\)は
となる
証明
これを0とおくと、係数が求まる
完備#
定義(完備)
直交関数系の無限列 \(\left\{\phi_i\right\}, i=0,1,2, \cdots\) があり、任意の連続関数 \(f(x)\) の \(\phi_0(x), \phi_1(x), \phi_2(x), \cdots, \phi_n(x)\) による近似が \(n \rightarrow \infty\) のときに \(f(x)\) に収束するとき、 直交関数系 \(\left\{\phi_i\right\}\) は 完備 (complete) であるといい、 その収束する級数を関数 \(f(x)\) の \(\left\{\phi_i\right\}\) による 直交関数展開 という。
フーリエ級数#
は区間\([-\pi,\pi]\)上で完備であることが知られ、これらを用いる直交関数展開を フーリエ級数 (Fourier series) という。
関数\(f(x)\)の近似
の係数\(a_n, b_n\)は次のようになる
これらの係数を フーリエ係数 と呼ぶ。
例(フーリエ級数)#
次の関数 \(f(x)\) を区間 \([-\pi, \pi]\) 上でフーリエ級数に展開せよ
よって、次のようになる
この近似を \(\hat{f}(x, n) = \sum_{k=1}^n b_k \cdot \sin kx\) とおく。pythonで計算すると次の図のようになる
Show code cell source
import matplotlib.pyplot as plt
import numpy as np
def f(x: np.array) -> np.array:
y = np.zeros_like(x)
y[(0 <= x) & (x <= np.pi)] = 1
y[(-np.pi <= x) & (x < 0)] = -1
return y
# a_0, a_k が 0なので、 b_k (sinの係数)のみが残る
def b(k):
return (2 * (1 - (-1)**k)) / (k * np.pi)
def f_hat(x: np.array, n: int) -> np.array:
approx = np.zeros_like(x)
for k in range(1, n+1):
approx += b(k) * np.sin(k * x)
return approx
fig, ax = plt.subplots()
x = np.linspace(-np.pi, np.pi, 500)
ax.plot(x, f(x), label="$f(x)$", color="black")
ax.plot(x, f_hat(x, n=1), label=r"$\hat{f}(x, n=1)$", linestyle="--", alpha=0.7)
ax.plot(x, f_hat(x, n=5), label=r"$\hat{f}(x, n=5)$", linestyle="--", alpha=0.7)
ax.plot(x, f_hat(x, n=100), label=r"$\hat{f}(x, n=100)$", linestyle="--", alpha=0.7)
ax.plot(x, f_hat(x, n=1000), label=r"$\hat{f}(x, n=1000)$", linestyle="--", alpha=0.7)
ax.set(xlabel="x", title=r"Approximating $f(x)$ by Fourier series")
ax.legend()
fig.show()
直交射影#
元\(\boldsymbol{u}\)を直交系\(\boldsymbol{e}_1, \boldsymbol{e}_2, \ldots, \boldsymbol{e}_n\)の線形結合の集合\(\mathcal{V}_n\)(\(\{\boldsymbol{e}_i\}\)の張る部分空間)で近似することを考える。
最小二乗近似したものは
より
と書くことができる。\(\hat{\boldsymbol{u}}\)の幾何学的な解釈としては、\(\boldsymbol{u}\)から\(\{\boldsymbol{e}_i\}\)の張る部分空間へと下ろした「垂線の足」となる。 このことから、\(\hat{\boldsymbol{u}}\)は\(\{\boldsymbol{e}_i\}\)の張る部分空間\(\mathcal{V}_n\)への (直交)射影 と呼ぶ。
直交基底#
直交系\(\boldsymbol{e}_1, \boldsymbol{e}_2, \ldots, \boldsymbol{e}_n\)(\(n=\infty\)でもよい)による、計量空間\(\mathcal{L}\)の元\(\boldsymbol{u}\)の最小二乗近似\(\hat{\boldsymbol{u}}\)が\(\boldsymbol{u}\)に一致するとき(\(n=\infty\)のときは\(n\to \infty\)で\(\boldsymbol{u}\)に収束するとき)、\(\{\boldsymbol{e}_i\}\)は\(\mathcal{L}\)の 直交基底 であるという。
このとき\(\mathcal{L}\)は \(n\)次元計量空間 (\(n=\infty\)なら 無限次元計量空間 )であるという。
直交基底の線形結合で表すことを 直交展開 という。
ルジャンドルの多項式\(P_n(x)\)
は区間\([-1,1]\)上の連続関数の直交基底である
パーセバルの式#
\(\mathcal{L}\)を計量空間とする。\(\boldsymbol{u}, \boldsymbol{v} \in \mathcal{L}\)について、正規直交基底\(\{\boldsymbol{e}_i\}, i=1,\dots,n\)で
と表したとする。このとき、次の パーセバル(・プランシュレル)の式 が成り立つ(\(n=\infty\)でも成り立つ)
証明
1つめの式は
2つめの式は
例題#
例2.6#
関数 \(f(x)\) を区間 \([-\pi, \pi]\) 上で \(\frac{1}{2}, \cos k x, \sin k x, k=1,2,3, \ldots, \) によって近似せよ
次のように表せる。
係数\(a_n, b_n\)は次のようになる
直交関数系 \(\left\{\phi_i\right\}, (i=0,1,2, \cdots)\) の線形結合で関数\(f(x)\)を
のように近似する事を考える。今回は\(\left\{\phi_i\right\} = \{ \frac{1}{2}, \cos k x, \sin k x, \cdots \}, (k=1,2,3,\cdots)\) であるため、 \(\frac{1}{2}, \cos k x, \sin k x\)に対する係数をそれぞれ\(a_0, a_k, b_k\)とおくと、
となる。
p.34、式(2.13)の定理より、最小二乗近似の係数は一般に
となる。
これに当てはめると、まず\(a_0\)は
分子のほうは定数は積分の外に出せるという定理 \(\int_a^b k f(x) d x=k \int_a^b f(x) d x, k\in\mathbb{R}\) より
分母は
となるので
つづいて\(a_k\)は
となる。なぜなら、
のため。(実際は\(\cos^2 x\)ではなく\(\cos^2 kx\)だが、\(\sin \pi = 0\)なので2倍でも\(k\)倍でも一緒)
例2.24#
近似の尺度として最小二乗法
を用いると, 各係数 \(c_i\) は
となり, 特に \(\left\{e_i\right\}\) が正規直交系のときは
となることを示せ.
\(J\)を \(c_i\) で偏微分すると次のようになる。
これを0とおいて解くと求まる
内積の微分は
となるため、
参考:内積の微分
内積の微分は
とすると
となる
これを0とおいて解くと求まる
例2.29#
式 (2.19) のフーリエ級数
に対してはパーセバルの式の第2式 \(\|\boldsymbol{u}\|^2 = \sum_{i=1}^n c_i^2\) はどう書けるか.
フーリエ級数とその係数は
となる。
より \(\frac{1}{\sqrt{2 \pi}},\left\{\frac{\cos k x}{\sqrt{\pi}}\right\},\left\{\frac{\sin k x}{\sqrt{\pi}}\right\}\) が正規直交基底となる。
\((\frac{1}{2})^2\)は
補足
フーリエ級数\(1/2, \{\cos kx\}, \{\sin kx\}\)は直交基底だが正規直交基底ではない。
例えば\(\int_{-\pi}^\pi \cos ^2 k x \mathrm{~d} x\)は1ではなく\(\pi\)になる。
そこで\(\int_{-\pi}^\pi \cos ^2 k x \mathrm{~d} x=1\)になるように\(\frac{1}{\sqrt{\pi}}\)を乗じた\(\frac{\cos k x}{\sqrt{\pi}}\)が正規直交基底になる。
式2.112は次のように書き直せる
補足:\(\sqrt{\frac{\pi}{2}}\)や\(\sqrt{\pi}\)はどこから出てきた?
正規直交基底にするために変形したものを打ち消してもとの\(f(x)\)を表現するため。
例えば\(\cos kx = \sqrt{\pi} \cdot \frac{\cos k x}{\sqrt{\pi}}\)といったふうに変形しているため
したがってパーセバルの式は次のようになる
(二乗して積分をとったときに正規直交基底は1になったので\(\sqrt{\pi}\)などの残りの部分が残る感じ)
(2乗にした\(f(x)^2\)の項がスッキリしてるのはフーリエ級数の直交性のため)
フーリエ級数の直交性
\(1/2\)と\(\cos\)、\(\sin\)は直交
\(\cos kx, \sin lx\)は直交
\(\cos kx, \cos lx\)は\(k \neq l\)のとき直交
\(\sin kx, \sin lx\)は\(k \neq l\)のとき直交
書き直すと最終的に
となる