デルタ関数って結局何なの?
工学の至る所で現れるデルタ関数。これはよく $$ \delta(t):= \begin{cases} \infty, & t=0\\newline 0, & t\ne 0 \end{cases}, $$ $$ \int_\infty^\infty \delta(x-y)f(y)dy = f(x), $$ $$ \int_\infty^\infty \delta(t)dt = 1 $$ を満たす関数 $\delta$ という風に定義されていますが、「 $t=0$ は測度0なので、その積分は0になるのでは」と考えたことがある人は多いのではないでしょうか。 実はこの定義は不正確なものであり、「超関数」という概念によって、正確に定義することができます。
超関数の定義
ある数値を入力するとある数値を出力する装置のことを、関数といいます。 これに対して、ある関数を入力するとある複素数を出力するような装置のことを、汎関数といいます。 汎関数 $F$ に関数 $\phi$ を入力した時の出力値を $F[\phi]$ 、または $\langle F, \phi \rangle$ と書きます。以下では後者の書き方を用います。
全区間で無限回微分可能で、関数値が0でないところが有界区間に限られるような関数の全体からなる集合を $\mathcal D$ とします。 $\mathcal D$ 上に属する関数 $\phi$ をテスト関数と呼びます。 また、 $\mathcal D$ を定義域とする汎関数を $\mathcal D$ 上の汎関数と呼びます。
ここで、シュワルツの超関数は、つぎのように定義されます。
汎関数 $F$ が、
- $\langle F, \phi_1 + \phi_2\rangle = \langle F, \phi_1\rangle + \langle F, \phi_2\rangle,$
- $\langle F, c\phi\rangle = c\langle F, \phi\rangle\ (c\in\mathbb K),$
- テスト関数の列 ${\phi_n}$ が $n\to\infty$ で $\phi$ に収束する時、 $\langle F, \phi_n\rangle$ もまた $\langle F, \phi\rangle$ に収束する
を満たすとき、 $F$を超関数という。
$F$ が超関数であるためには、 $\mathcal D$ に属する全てのテスト関数が、上の性質を満たさなければなりません。したがって、 $\mathcal D$ の範囲を狭くとれば、 $F$ は超関数として成り立ちやすくなり、逆もまた然りということが成り立ちます。 今回 $\mathcal D$は 上のように定義しましたが、超関数のフーリエ変換を考える上では、上の定義では広すぎることが知られています。
超関数の演算の定義
超関数の演算についていくつか定義します。
任意のテスト関数 $\phi$ について $$ \langle F, \phi\rangle = \langle G, \phi\rangle $$ が成り立つとき、「超関数 $F$ と $G$ が等しい」と言います。
超関数 $F$ を $a$ だけ平行移動した超関数 $F_{x-a}$ を $$ \langle F_{x-a}, \phi\rangle := \langle F, \phi(x+a)\rangle $$ と定義します。
超関数 $F$ の導超関数 $dF/dx$ を $$ \langle \frac{dF}{dx}, \phi\rangle := -\langle F, \frac{d\phi}{dx}\rangle $$ で定義します。右辺で符号が反転する理由については後述します。
$g(x)$ を無限回微分可能な関数とすると、 $F$ との積について $$ \langle g(x)F, \phi(x)\rangle := \langle F, g(x)\phi(x)\rangle $$ と定義します。
超関数 $F$ と関数 $g(x)\in\mathcal D$ の合成積として $$ F*g(x):= \langle F_y, g(x-y)\rangle $$ を定義します。ここで右辺は、 $g(x-y)$ を $y$ のみの関数と見て超関数 $F$ に代入したものです。
超関数 $F$ と $G$ の合成積として $$ \langle F*G, \phi(x)\rangle := \langle F_x, \langle G_y, \phi(x+y)\rangle\rangle $$ を定義します。
デルタ関数の定義
以上を踏まえた上で、 デルタ関数は $$ \langle \delta, \phi\rangle = \phi(0) $$ を満たす超関数として定義されます。
このように定義されたデルタ関数について成り立ついくつかの性質を導きましょう。
平行移動について $$ \langle \delta_{x-a}, \phi\rangle = \langle \delta, \phi(x+a)\rangle = \phi(a). $$
微分について $$ \langle \frac{d\delta}{dx}, \phi\rangle := -\langle \delta, \frac{d\phi}{dx}\rangle = -\phi’(0). $$
積について $$ \langle g(x)\delta, \phi(x)\rangle := \langle \delta, g(x)\phi(x)\rangle = g(0)\phi(0) \ = g(0)\langle \delta, \phi\rangle = \langle g(0)\delta, \phi\rangle. $$ より、 超関数の意味で$g(x)\delta=g(0)\delta$。 ここで、 $g(x)=x$とすれば、 $x\delta=0$ なので、形式的にはじめの「 $x\ne0$ の時 $\delta=0$ 」が確かめられます。
関数 $g(x)\in\mathcal D$ との合成積について $$ \delta*g(x):= \langle \delta_y, g(x-y)\rangle = g(x). $$
超関数 $F$ との合成積について
$$ \langle F*\delta, \phi(x)\rangle := \langle F_y, \langle \delta_x, \phi(x+y)\rangle\rangle = \\ \langle F_y, \phi(y)\rangle = \langle F_x, \phi(x)\rangle $$
により、超関数の意味で $F*\delta = \delta$ が成り立ちます。つまり、デルタ関数が合成積の単位元を与えることがわかります。
超関数の演算は積分を一般化したもの
超関数 $F$ について、形式的に $$ \langle F, \phi(x)\rangle = \int_\infty^\infty F(x)\phi(x)dx $$ と書いてみましょう。右辺は具体的な意味を持ちませんが、このように書くと、先に挙げた演算が整合性を持つことがわかります。
まず、定義の線型性については、積分の線型性に相当します。
次に、平行移動について、 $F_{x-a}$ を $F(x-a)$ と書くことにすると、 $$ \int_\infty^\infty F(x-a)\phi(x)dx = \int_\infty^\infty F(x)\phi(x+a)dx $$ として変数変換したことに相当します。
微分については $$ \int_\infty^\infty \frac{dF}{dx}\phi(x)dx = [F(x)\phi(x)]^\infty_\infty - \int_\infty^\infty F(x)\phi’(x)dx $$ となり、右辺の第一項は $\phi\in\mathcal D$ なので $\lim_{x\to\pm\infty}\phi(x) = 0$により0となります。 先の定義で右辺で符号が反転する理由はこれです。
残りの演算も同様にして対応を確かめることができます。
以上により、超関数の演算は積分の性質を一般化していることがわかります。 このことが、はじめに触れたデルタ関数の「それらしい定義」を成り立たせている根拠になっています。
最後にこのことを用いて、ベビサイドの階段関数 $$ H(x):= \begin{cases} 1, & x>0\\newline 0, & x\le0 \end{cases}, $$ を超関数の意味で微分してみましょう。 $$ \langle H, \phi\rangle = \langle H, \phi’\rangle = - \int_\infty^\infty H(x)\phi’(x)dx \\ = - \int_0^\infty \phi’(x)dx = -[\phi(x)]^\infty_0 = \phi(0) = \langle \delta, \phi\rangle $$ よって、 $H’(x) = \delta$ が得られました。
参考書類
本記事の内容のほとんどはこちらの書籍をもとに書かれました。
こちらの書籍には、超関数の収束などを含む、より厳密な証明が書かれています。