ディラックのデルタ関数と超関数

この記事では,ディラックのデルタ関数を中心に,超関数の考え方についてできるだけわかりやすく説明します。物理学や工学においてデルタ関数を使う機会がある方を対象にしています。

デルタ関数の定義

$${\R}$$を実数全体とします。また,単に関数とよんだ場合には$${\R}$$から$${\R}$$への関数のことを指すものとします。一般的には,ディラックのデルタ関数$${\delta}$$は,$${\delta(x) = 0 ~(\forall x \neq 0)}$$を満たし,各関数$${f}$$に対して

$$
\int_{-\infty}^\infty \delta(x)f(x) \mathrm{d}x = f(0)
$$

を満たすものとして定義されるようです。

この定義から,デルタ関数自身は関数ではないことがわかります。実際,デルタ関数が関数だと仮定すると,$${\delta(x)f(x) = 0 ~(\forall x \neq 0)}$$と$${\delta(0)f(0) \in \R}$$が成り立ちますので,上記の積分は$${0}$$になるためです。このため,$${f(0) = 0}$$でなければならず,この式は一般には成り立ちません。直観的には,$${\delta}$$は$${\delta(0) = \infty}$$を満たす関数のようなものになります。このため,デルタ関数について厳密な議論を行おうとすると,積$${\delta(x) f(x)}$$やその積分をはじめとする各種の演算を厳密に定義する必要があることに気づきます。

デルタ関数は,物理学や工学などのさまざまな分野において欠かせない概念です。そこで,このデルタ関数を用いた計算を数学的に厳密な形で定式化するための試みが行われてきました。以降では,このような試みについての主な考え方について説明します。厳密な議論に興味がない方にとっても,デルタ関数について見通しよく考えられるようになるという意味で,以降の考え方は役に立つのではないかと思います。

ベクトルとしてのデルタ関数

関数全体から成る集合を$${\mathbf{V}}$$とします。$${\mathbf{V}}$$の要素(つまり関数)を$${\ket{f}}$$のように書くことにします。これらの関数は実数倍したり和を計算したりできますので,$${\mathbf{V}}$$は実ベクトル空間になります。

また,集合$${\mathbf{V}^*}$$を「$${\mathbf{V}}$$から$${\R}$$への線形写像全体」とします。$${\mathbf{V}^*}$$の要素を$${\bra{w}}$$のように書き,$${\ket{f} \in \mathbf{V}}$$に$${\bra{w} \in \mathbf{V}^*}$$を施した結果を$${\braket{w|f}}$$と書くことにします($${\braket{w|f}}$$ は実数です)。このように表すと,$${\bra{w}}$$は写像$${\ket{f} \mapsto \braket{w|f}}$$のことであるといえます。

$${\mathbf{V}^*}$$も実ベクトル空間になることが容易にわかります。$${\mathbf{V}^*}$$は,$${\mathbf{V}}$$の双対空間とよばれます。直観的には,$${\mathbf{V}}$$の要素は無限次元の列ベクトルで,$${\mathbf{V}^*}$$の要素は無限次元の行ベクトルというイメージをもつと,わかりやすいかもしれません。

補足:$${\mathbf{V}^*}$$が実ベクトル空間になる理由を説明しておきます。写像$${\bra{w}}$$の$${r \in \R}$$倍を写像$${\ket{f} \mapsto r\braket{w|f}}$$(つまり$${\bra{w}}$$を施した結果を$${r}$$倍するような写像)として定めます。また,和$${ \bra{w} + \bra{w'}}$$を写像$${\ket{f} \mapsto \braket{w|f} + \braket{w'|f}}$$(つまり$${\bra{w}}$$と$${\bra{w'}}$$をそれぞれ施した結果の和を返すような写像)として定めます。このとき,$${\mathbf{V}^*}$$は実数倍と和に対して閉じていますので,実ベクトル空間になります。

ここで,$${\braket{w|f}}$$を形式的に

$$
\braket{w|f} = \int_{-\infty}^\infty w(x)f(x) \mathrm{d}x
$$

と表すことにしましょう。$${f}$$は$${\ket{f}}$$を表す関数であり,同様に$${w}$$は$${\bra{w}}$$に対応する関数のようなものです。この式の解釈として,$${\bra{w} \in \mathbf{V}^*}$$を

$$
\bra{w} = \int_{-\infty}^\infty w(x) ― \mathrm{d}x
$$

のように表しており,$${―}$$の部分に$${f(x)}$$が入ると考えるとわかりやすいかもしれません。関数解析の分野では,ある種の関数から成る実ベクトル空間$${\mathbf{V}'}$$に対して内積$${\braket{~|~}}$$を

$$
\braket{g|f} \coloneqq \int_{-\infty}^\infty g(x)f(x) \mathrm{d}x
$$

のように定めることがしばしばありますが,上記のように表すとこのような内積と同じように扱えるようになるため,しばしば便利です。なお,このような表記をすると,連載『図式で学ぶ線形代数』で紹介したような図式を使えるようになるのですが,この記事では図式は使わず数式のみを使うことにします。

各$${\bra{w} \in \mathbf{V}^*}$$に対応する関数のようなもの$${w}$$が実際に関数であればわかりやすいのですが,残念ながら$${w}$$は関数ではない場合があります。この代表例が,冒頭で定義したデルタ関数$${\delta}$$です。この「関数のようなもの」は,しばしば超関数や一般化関数などとよばれます。

ここで,デルタ関数のことを一旦忘れて,次式を満たすような$${\bra{0}}$$を考えます。

$$
\braket{0|f} \coloneqq f(0)\qquad (\ket{f} \in \mathbf{V})
$$

この$${\bra{0}}$$は,$${\mathbf{V}}$$から$${\R}$$への線形写像ですので$${\mathbf{V}^*}$$の要素です。ここで,先ほど導入した表現を用いると

$$
\int_{-\infty}^\infty \delta(x)f(x) \mathrm{d}x = \braket{0|f} = f(0)
$$

が成り立ちます。ここで,$${\bra{0}}$$に対応する関数のようなもの(つまり超関数)を$${\delta}$$とおいています。この$${\delta}$$をデルタ関数とよぶことにします。これにより,デルタ関数の別の定義が得られました(厳密には$${\delta(x) = 0 ~(\forall x \neq 0)}$$に相当する仮定も必要だと思います)。

$${\bra{0}}$$を一般化しておきましょう。任意の実数$${a}$$について$${\bra{a}}$$を

$$
\braket{a|f} \coloneqq f(a)\qquad (\ket{f} \in \mathbf{V})
$$

と定めます。また,$${\bra{a}}$$に対応する関数のようなものを写像$${x \mapsto \delta(x-a)}$$で表すことにします。このとき,$${\bra{0}}$$は$${a = 0}$$の特別な場合とみなせます。次の式が成り立ちます。

$$
\int_{-\infty}^\infty \delta(x-a)f(x) \mathrm{d}x = \braket{a|f} = f(a)
$$

この式は,「$${\delta(x-a)}$$が$${\delta(x)}$$を$${a}$$だけシフトさせたもの」という直観的イメージと整合します。

シュワルツ超関数または佐藤超関数としてのデルタ関数

これまでは実ベクトル空間 $${\mathbf{V}}$$を「関数全体」としてきましたが,代わりに「『ある条件』を満たす関数の全体」と考えることにします。このとき,『ある条件』をうまく定めれば,きれいな理論を構築できることが知られています。

準備として,実ベクトル空間$${\mathbf{S},\mathbf{T}}$$について,

$$
\mathbf{S} \subseteq \mathbf{T} \quad\Rightarrow\quad \mathbf{S}^* \supseteq \mathbf{T}^*
$$

の関係が成り立つことを指摘しておきます。その理由は,$${ \mathbf{T}^*}$$の任意の要素は$${ \mathbf{T}}$$から$${\R}$$への線形写像であり,これは(定義域を$${\mathbf{S}}$$に制限することで)$${ \mathbf{S}}$$から$${\R}$$への線形写像,つまり$${ \mathbf{S}^*}$$の要素とみなせるためです。

便宜上,関数の全体を$${\mathbf{V}_\mathrm{max}}$$とおくことにします。これまでの話は,『ある条件』といった制約を課さずに$${ \mathbf{V} = \mathbf{V}_\mathrm{max}}$$の場合を考えていたことになります。すでに述べたように,デルタ関数は双対空間$${\mathbf{V}_\mathrm{max}^*}$$に含まれているのでした。多くの関数$${w}$$に対して

$$
\bra{w} \coloneqq \int_{-\infty}^\infty w(x) ― \mathrm{d}x
$$

で定まる$${\bra{w}}$$もまた双対空間 $${\mathbf{V}_\mathrm{max}^*}$$に含まれていればありがたいのですが,残念ながらそうはなっていません。$${g(x)=1 ~(\forall x)}$$のような定数関数ですら$${\mathbf{V}_\mathrm{max}^*}$$には含まれません。大ざっぱに述べると,空間 $${\mathbf{V}_\mathrm{max}^*}$$では「小さすぎる」のです。そこで,適切な『ある条件』を付与することで空間$${\mathbf{V}}$$を小さくし,これにより双対空間 $${\mathbf{V}^*}$$を大きくすることを考えます。結論を述べると,

$$
\mathbf{V} \coloneqq \text{無限回微分可能な関数の全体}
$$

とおけばかなり上手くいくことがわかります。なお,このような$${\mathbf{V}}$$の要素は$${C^\infty}$$関数とよばれます。このとき,その双対空間$${\mathbf{V}^*}$$の要素はシュワルツ超関数(Schwartz distribution)とよばれます(厳密には,$${\mathbf{V}}$$は位相線形空間であり,そのすべての要素はコンパクトな台をもつといった制約が課されます)。$${\mathbf{V} \subseteq \mathbf{V}_\mathrm{max}}$$ですので先ほどの議論により $${\mathbf{V}_\mathrm{max}^* \subseteq \mathbf{V}^*}$$であり,したがってデルタ関数はシュワルツ超関数です。また,多くの関数(具体的には局所可積分であるような関数)がシュワルツ超関数とみなせることも導けます。さらに,ある自然な前提のもとで,すべてのシュワルツ超関数は微分可能であることなどを導けて,これらの性質は偏微分方程式を解く際などに役立ちます。

しかし,シュワルツ超関数ではないような超関数を扱いたい場合がしばしばあります(たとえばデルタ関数の積$${\delta(x) \delta(y)}$$)。そこで,『ある条件』として,より制約を強めた

$$
\mathbf{V} \coloneqq \text{無限回微分可能でかつテイラー展開可能な関数の全体}
$$

を考えます。なお,このような$${\mathbf{V}}$$の要素は$${C^\omega}$$関数とよばれます。このときの双対空間$${\mathbf{V}^*}$$の要素は佐藤超関数(Sato hyperfunction)とよばれます。すべてのシュワルツ超関数が佐藤超関数に含まれるという意味で,佐藤超関数はシュワルツ超関数の一般化といえます。写像$${(x,y) \mapsto \delta(x) \delta(y)}$$は佐藤超関数になります。

このような考え方により,デルタ関数をはじめとする超関数に関する計算を厳密な形で扱えて,かつ微分の計算などを自然に行えるような理論が構築されていったようです。

補足:L2空間の双対空間がデルタ関数を含まない理由 

$${L_2}$$空間($${2}$$乗可積分関数の全体)についてある程度の知識がある人に向けた補足です。以降では,$${\mathbf{V}}$$が$${L_2}$$空間である場合を考えます。$${L_2}$$空間はヒルベルト空間であり,その双対空間は$${L_2}$$空間に同型であることが知られています。このことから,デルタ関数は($${L_2}$$空間には含まれませんので)$${\mathbf{V}^*}$$に含まれないことが容易に想像できます。このことは,上記の話と矛盾しているように感じられるかもしれませんので,補足しておきます。

$${L_2}$$空間では,そのノルムを導入する都合上,$${2}$$乗可積分関数$${f,g}$$のうちほとんどいたるところで$${f = g}$$となるものを同一視します。この同一視のため,$${L_2}$$空間は「『ある条件』を満たす関数の全体」とはみなせません。このため,上記の話を適用できないのです。なお,一般の$${L_p}$$空間($${p}$$は1以上の実数)でも事情は同じです。

最後に,デルタ関数が$${\mathbf{V}^*}$$に含まれないことを背理法により示しておきます。各$${n \in {0,1}}$$に対して

$$
f_n(0) = n, \quad f_n(x) = 0 ~(\forall x \neq 0)
$$

で定まる関数$${f_n}$$を考えます。デルタ関数が$${\mathbf{V}^*}$$に含まれると仮定すると,

$$
\int_{-\infty}^\infty \delta(x)f_n(x) \mathrm{d}x = \braket{0|f_n} = f_n(0) = n
$$

が成り立ちます。しかし,$${L_2}$$空間では$${f_0}$$と$${f_1}$$は同一視されるため$${0 = \braket{0|f_0} = \braket{0|f_1} = 1}$$になり,矛盾します。したがって,デルタ関数は$${\mathbf{V}^*}$$に含まれません。

この記事が気に入ったらサポートをしてみませんか?