デルタ関数

出来る限り集めてまとめてみた。

[前の記事へ]  [物理数学の目次へ]  [次の記事へ]


デルタ関数とは

 デルタ関数とは、空間の一点にだけ存在する粒子を数式中に表現したいためにディラックによって発明された関数である。理論上の話だが、ある一点において密度は無限大、しかしその密度を積分して全体量を求めると有限量であるという性質が欲しかったのである。イメージとしては次のような関数である。
\[ \begin{align*} \delta(x) \ =\ \begin{cases} \infty & (x=0) \\ 0 & (x \neq 0 ) \end{cases} \end{align*} \]
 \( x = 0 \)のところでだけ無限大となり、それ以外のところでは 0 である。しかし無限大というのは数値ではなくて、限りなく大きくなる極限を考えるときのイメージに過ぎないので、これを定義として使うのは数学的にふさわしくない。しかも「0 を含む区間で積分すると有限の値になる」という性質もまだ言い表せていない。

 実は次のように定義しておけば万事解決することが分かる。

\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta(x) \diff x \ =\ f(0) \tag{1} \end{align*} \]
 ここで出てくる\( f(x) \)は任意の実連続関数であるとする。どんな形の関数\( f(x) \)を使っても、デルタ関数と掛け合わせて積分すると、\( x = 0 \)での\( f(x) \)の値だけが拾われて出てくるとするのである。

 なぜこれでうまく行くのかを説明しよう。上の定義のところに、常に 1 であるような関数\( f(x) = 1 \)を当てはめてみる。すると次のように、デルタ関数を積分すると有限値である 1 になることが導かれる。

\[ \begin{align*} \int_{-\infty}^{\infty} \delta(x) \diff x \ =\ 1 \tag{2} \end{align*} \]
 さらに、どんな関数を使っても\( x = 0 \)における値\( f(0) \)しか拾ってこないことから、\( x = 0 \)以外の区間での\( f(x) \)の値はデルタ関数によって無効化されていることになる。つまり、\( x = 0 \)以外の区間では\( \delta(x) = 0 \)となっているのだと言えるだろう。

 というわけで、(1) 式や (2) 式では無限積分を使っているが、積分区間に\( x = 0 \)を含んでいさえすれば同じ形の式が成り立っているとして良い。

\[ \begin{align*} &\int_{-\varepsilon}^{\varepsilon} f(x) \, \delta(x) \diff x \ =\ f(0) \\ &\int_{-\varepsilon}^{\varepsilon} \delta(x) \diff x \ =\ 1 \end{align*} \]
 デルタ関数は関数に似てはいるが、実は関数ではない。これを関数だと認めると、数学での分類の上ですっきりしない部分が出てくるらしいのである。それで数学では関数 (function) ではなく超関数 (distribution) というものに分類されている。しかし物理学徒はそのようなことには無頓着なのだ。


原点以外のところへずらす

 デルタ関数の持つ色々な性質を挙げて行く事にしよう。

 デルタ関数\( \delta(x) \)では原点\( x = 0 \)が特別な点になっている。しかし\( \delta(x-a) \)という形を使うと\( x-a=0 \)になるところでデルタ関数の能力が発揮されることになるので、\( x=a \)が特別な点になる。この形は粒子が\( x=a \)に存在していることを表すのに使われる。

 これに関連して、次のような性質が言えるだろう。

\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta(x-a) \diff x \ =\ f(a) \tag{3} \end{align*} \]
 このようにすると\( x=a \)での関数\( f(x) \)の値\( f(a) \)が取り出されてくるというわけである。

 この性質はちゃんと数式を使って論理的に導き出すことができる。\( x' = x - a \)と置き換えた上で (1) 式を当てはめればいい。

\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta(x-a) \diff x \ =\ \int_{-\infty}^{\infty} f(x'+a) \, \delta(x') \diff x' \ =\ f(a) \end{align*} \]


偶関数に似た性質

 (1) 式の形で定義されたデルタ関数は偶関数に似た次のような性質を持つ。
\[ \begin{align*} \delta(x) \ =\ \delta(-x) \end{align*} \]
 あたかも原点を挟んで左右対称であるようなイメージである。

 これを導くには次のようにすれば良い。まず (1) 式の\( f(x) \)の代わりに\( f(-x) \)を使ってやると、次のことが言える。

\[ \begin{align*} \int_{-\infty}^{\infty} f(-x) \, \delta(x) \diff x \ =\ f(0) \end{align*} \]
 積分範囲が全範囲の積分では被積分関数の積分変数の符号を変えても結果は変わらないので、この左辺の被積分関数の\( x \)\( -x \)に置き換えた次の式が成り立つ。
\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta(-x) \diff x \ &=\ f(0) \end{align*} \]
 この式と (1) 式とで引き算してやれば次の式が成り立つ。
\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \Big[ \delta(x) - \delta(-x) \Big] \diff x \ =\ 0 \end{align*} \]
 これが任意の関数\( f(x) \)について成り立つことから、カッコ内も 0 だと言えて、先ほど書いた性質が導かれるのである。

 実は左右対称ではない形の関数の極限としてのデルタ関数を考えることもできるのだが、その場合でも (1) 式と同じ性質を持つので結局は同じ結論にたどり着くことになる。先ほどから「デルタ関数は偶関数である」とは言わずに「偶関数に似た性質を持つ」と言っているのはそういう事情があるからである。デルタ関数の本質は積分したときの性質にこそあり、本当に左右対称であるのかどうかといったイメージの差は積分したときに消えてしまうのである。

 普通は (1) 式を使って定義するものであるし、左右対称のイメージを持っていた方が物理的にも自然なことが多いだろう。それで次のような関係が仮定されることがある。

\[ \begin{align*} \int_{0}^{\varepsilon} \delta(x) \diff x \ &=\ \frac{1}{2} \\ \int_{-\varepsilon}^{0} \delta(x) \diff x \ &=\ \frac{1}{2} \end{align*} \]
 ところで偶関数\( g(x) \)には次のような性質が成り立っている。
\[ \begin{align*} \int_{-a}^{a} x \, g(x) \diff x \ =\ 0 \end{align*} \]
 これと同様に
\[ \begin{align*} \int_{-a}^{a} x \, \delta(x) \diff x \ =\ 0 \end{align*} \]
という関係が成り立っているのだが、これは別に偶関数の性質を持ち出さなくても (1) 式で\( f(x) = x \)とすればすぐに分かることだろう。これを積分記号を省略して次のように書くことがある。
\[ \begin{align*} x\,\delta(x) \ =\ 0 \end{align*} \]
 デルタ関数は積分してこそ意味があり、いずれ積分されなければならない運命にあるのだから、この形になっていれば積分しようがしまいが 0 であるのと同じだという意味である。これの応用として、次のように書いたものも成り立っている。
\[ \begin{align*} (x-a)\,\delta(x-a) \ =\ 0 \end{align*} \]


変数のスケールを変える

 関数\( f(x) \)だったものを\( f(ax) \)にすると、\( a>1 \)の場合にはグラフは横に押し潰された形になる。デルタ関数の場合には元々一点のみで無限大のグラフなのだから押し潰されてもグラフの形に変わりない感じはするのだが、次のような関係が成り立っている。
\[ \begin{align*} \delta(ax) \ =\ \frac{1}{|a|} \delta(x) \tag{4} \end{align*} \]
 これは変だ。横から押し潰された結果としてなぜか高さが縮むことを表しているように思える。普通の\( f(x) = x^2 \)などのグラフと比べてしまうと逆のことが起きているイメージなのだが、こう考えないと辻褄が合わないので受け入れるしかない。

 これを導くには (2) 式の\( x \)\( ax' \)に変数変換してやればいい。

\[ \begin{align*} \int_{-\infty}^{\infty} \delta(x) \diff x \ &=\ \int_{-\infty}^{\infty} \delta(ax') \, (a \diff x') \\ \ &=\ \int_{-\infty}^{\infty} a \, \delta(ax') \diff x' \\ \ &=\ \int_{-\infty}^{\infty} a \, \delta(ax) \diff x \end{align*} \]
 下から 2 番目の式は積分変数が\( x' \)になっているが、これを代わりに\( t \)でも\( y \)でも好きな記号を使って書き換えても結果は同じなわけで、結局\( x \)で書き換えてみたのが最後の式である。それで最初の積分と最後の積分を比較すれば次の式が成り立っていると言えるだろう。
\[ \begin{align*} \delta(x) \ =\ a \ \delta(ax) \end{align*} \]
 しかしこの式は\( a\lt 0 \)でも正しいだろうか?デルタ関数は変数の正負にかかわらず負になることはないのだから、右辺は負になり、左辺は正になる。どこかがおかしい。実は先ほどの変数変換は\( a\lt 0 \)の場合には次のように計算しなくてはならないのである。
\[ \begin{align*} \int_{-\infty}^{\infty} \delta(x) \diff x \ &=\ \int_{\infty}^{-\infty} \delta(ax') \, (a \diff x') \\ \ &=\ - \int_{-\infty}^{\infty} a \, \delta(ax') \diff x' \\ \ &=\ - \int_{-\infty}^{\infty} a \, \delta(ax) \diff x \end{align*} \]
 つまり、\( a\lt 0 \)の場合には
\[ \begin{align*} \delta(x) \ =\ - a \ \delta(ax) \end{align*} \]
である。これらを同時に表したければ次のように表しておけば良いだろう。
\[ \begin{align*} \delta(x) \ =\ |a| \ \delta(ax) \end{align*} \]
 \( a = 0 \)の場合にはこれらの議論は意味を成さないので、(4) 式のように\( |a| \)を分母に持ってきて、「ただし\( a \neq 0 \)」とでも書いておけば、\( a \)に 0 を入れたりする間違いをかなり防げるだろう。


デルタ関数の中に関数をつっこむ

 次に紹介する性質は今の話の応用である。\( \delta( f(x) ) \)はどんな形になるだろうか?

 \( f(x) \)の形にも依るが、\( f(x) = 0 \)となるような点\( x = a_i \)は複数あるかも知れず、その全ての点で\( \delta( f(x) ) \)は無限大になるのだろうと予想が付く。すると、次のような形で表せば良いだろうか?

\[ \begin{align*} \delta( f(x) ) \ =\ \sum_i \delta(x-a_i) \ \ \ \ ? \end{align*} \]
 しかしこれは少しだけ違うのである。実際は次のようになる。
\[ \begin{align*} \delta( f(x) ) \ =\ \sum_i \frac{1}{|f'(a_i)|} \ \delta(x-a_i) \tag{5} \end{align*} \]
 なぜこうなるのか、(4) 式を知っていれば大体察しが付くだろう。(4) 式における定数\( a \)はどんな速度で原点をすり抜けるかを表していると言える。今回の (5) 式においては、その点における\( f(x) \)の微分が同じ意味を持っているのである。

 ところで、デルタ関数の中につっこむことの出来る\( f(x) \)には制限がある。\( f'(a_i) \)は 0 になってはいけないので、\( x \)軸にギリギリ接するような曲線を持つ関数は (5) 式には当てはめられない。\( x \)軸に触れるとしたら必ず交差する形になっているグラフの関数であるべきである。

 さらに (5) 式の応用として次のようなものが有名である。

\[ \begin{align*} \delta( x^2 - a^2 ) \ =\ \frac{1}{2a} \ \Big( \delta(x-a) \ +\ \delta(x+a) \Big) \ \ \ , \ \ (a>0) \tag{6} \end{align*} \]
 これは\( f(x) \)として\( f(x) = x^2 - a^2 \)を当てはめただけのことである。


デルタ関数の微分

 デルタ関数を微分したものはどんな性質を持つだろうか?次のような積分を考えて部分積分をしてみると面白いことが導かれる。
\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta'(x) \diff x \ =\ \Big[ f(x) \, \delta(x) \Big]_{-\infty}^{\infty} \ -\ \int_{-\infty}^{\infty} f'(x) \, \delta(x) \diff x \end{align*} \]
 この右辺第 1 項は 0 になる。なぜなら、デルタ関数は無限の彼方では 0 だからである。要するに次のような関係が得られるわけだ。
\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta'(x) \diff x \ =\ -\ \int_{-\infty}^{\infty} f'(x) \, \delta(x) \diff x \end{align*} \]
 この右辺についてはデルタ関数の基本的な性質から、どうなるかすぐに分かるだろう。\( - f'(0) \)である。よって次の関係が成り立っていると言える。
\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta'(x) \diff x \ =\ -\ f'(0) \tag{7} \end{align*} \]
 これこそが\( \color{red}{\delta'(x)} \)が持つ性質を表している。デルタ関数に似ているが、少しだけ違う。任意の関数\( f(x) \)とともに積分すると、なぜか\( x = 0 \)における\( f(x) \)の微分値にマイナスを掛けたものが放り出されてくるのである。

 では 2 階微分するとどうなるだろう?同じ話を繰り返せばいい。まず次のような積分を部分積分で表す。

\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta''(x) \diff x \ =\ \Big[ f(x) \, \delta'(x) \Big]_{-\infty}^{\infty} \ -\ \int_{-\infty}^{\infty} f'(x) \, \delta'(x) \diff x \end{align*} \]
 この右辺第 1 項は 0 になる。なぜなら、デルタ関数を微分したものは\( x=0 \)以外ではデルタ関数に良く似ていることが先ほど示されたので、無限の彼方では 0 だからである。それで次のような関係が得られる。
\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta''(x) \diff x \ =\ -\ \int_{-\infty}^{\infty} f'(x) \, \delta'(x) \diff x \end{align*} \]
 この右辺がどうなるかは、先ほどデルタ関数の微分の性質が分かったばかりなので当てはめてみれば簡単に分かる。\( f''(0) \)である。よって次の関係が成り立っていると言える。
\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta''(x) \diff x \ =\ f''(0) \end{align*} \]
 これこそが\( \color{red}{\delta''(x)} \)が持つ性質を表している。

 こんな調子で、何回微分しても符号が変わるだけで似たような性質があることが導かれるのである。


デルタ関数の 1 階微分は奇関数的である

 デルタ関数を 1 階微分したものの性質をもう少し調べてみよう。前にデルタ関数が偶関数的であると説明したときと同じ手順を使う。(7) 式の\( f(x) \)の代わりに\( f(-x) \)を使ってみよう。
\[ \begin{align*} \int_{-\infty}^{\infty} f(-x) \, \delta'(x) \diff x \ =\ \ f'(0) \end{align*} \]
 この時点で既に、以前とは違ったことが起こり始めているのが分かるはずだ。\( f(-x) \)の微分は\( -f'(-x) \)となるので、(7) 式の右辺にあったマイナスが相殺されているのである。この式の左辺の被積分関数内の\( x \)の符号を入れ替えても全体は変化しないので、
\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \delta'(-x) \diff x \ =\ \ f'(0) \end{align*} \]
となり、これと (7) 式を足し合わせることで、次の関係が得られる。
\[ \begin{align*} \int_{-\infty}^{\infty} f(x) \, \Big[ \delta'(x) + \delta'(-x) \Big] \diff x \ =\ 0 \end{align*} \]
 要するにこういうことだ。
\[ \begin{align*} \delta'(x) \ =\ -\delta'(-x) \end{align*} \]
 変数の符号が変わると全体の符号も変わる。原点以外では 0 のくせして、まるで奇関数のような性質を持つのである。具体的なイメージは難しいが面白い性質だと言えるだろう。


デルタ関数どうしの積

 次のような公式も見られる。
\[ \begin{align*} \int_{-\infty}^{\infty} \delta(x-a) \, \delta(x-b) \diff x \ =\ \delta(a-b) \end{align*} \]
 何かすごそうな関係に思えるのだが、(3) 式の\( f(x) \)の部分にそのままデルタ関数を当てはめて、あとは偶関数的な性質を使って見た目を整えてみただけのものだ。

 (1) 式のデルタ関数の定義では\( f(x) \)を任意の実連続関数だとしていたのだが、そこに連続でも関数でもないデルタ関数そのものを入れてしまったことになる。そんなことをしてもいいのかどうか私には良く分からないが、公式として出回っているものをとにかく集めてまとめるという方針なので書いておいた。

 次の公式もびっくりするようなものだが、今の式で\( a=0 \)\( b=0 \)とすれば確かにこうなりそうだ。

\[ \begin{align*} \int_{-\infty}^{\infty} \delta(x) \, \delta(x) \diff x \ =\ \infty \end{align*} \]
 これがどこまで利用価値があるものなのかはよく分からない。このような式を見かけたときに正体が分からなくて驚いたりしないように書いておいた。


近似表現

 デルタ関数を通常の関数で近似することも行われる。極限を使って\( n \rightarrow \infty \)でデルタ関数に近付くような関数列を考えるのである。幾つかの具体例を見た方が早い。
\[ \begin{align*} \psi_n(x) \ &=\ \begin{cases} n & (|x| \leqq \frac{1}{2n}) \\ 0 & (|x| > \frac{1}{2n}) \end{cases} \\[8pt] \psi_n(x) \ &=\ \frac{\sin(nx)}{\pi x} \\[8pt] \psi_n(x) \ &=\ \sqrt{\frac{n}{\pi}} \exp(-nx^2) \end{align*} \]
 これらは\( -\infty \lt x \lt \infty \)で積分すると常に 1 になるし、\( n \to \infty \)では\( x=0 \)は無限大に近付くし、それ以外の点では 0 に近付く。要するにデルタ関数の形に徐々に近付く。
 この2番目と3番目の式の積分が 1 になることを確認するのはちょっとしたテクニックが要って説明が長くなるので 略させてもらうことにする。  2番目は複素積分の手法を駆使し、3番目はこの辺りの公式を使うのである。
 このような条件を満たすものは他に幾つでも考えることができる。教科書では
\[ \begin{align*} \delta(x) \ =\ \lim_{n\to\infty} \frac{n\,e^{-n|x|}}{2} \end{align*} \]
などのようにさらっと出てくることがあるが、そういう式変形をするための特別な技などがあるわけではないので、どうやって導き出したのかと悩む必要はない。


積分表示

 複素フーリエ解析の知識を使うと、デルタ関数を次のように表せることが分かる。
\[ \begin{align*} \delta(x) \ =\ \frac{1}{2\pi} \int_{-\infty}^{\infty} e^{ikx} \diff k \end{align*} \]
 デルタ関数の「フーリエ積分表示」である。簡単に「積分表示」とか「積分表現」とも呼ばれる。

 フーリエ解析はあとで説明するつもりなので、ここでは別の方法でこの関係が成り立っていそうなことを説明しておこう。まず、積分範囲を変えた次の式ならば簡単に計算できる。

\[ \begin{align*} \frac{1}{2\pi} \int_{-n}^{n} e^{ikx} \diff k \ &=\ \frac{1}{2\pi} \left[ \frac{1}{ix} e^{ikx} \right]^n_{-n} \\ &=\ \frac{1}{2\pi i\,x} \left( e^{inx} \ -\ e^{-inx} \right) \\ &=\ \frac{1}{2\pi i\, x} (2i)\, \sin(nx) \\[3pt] &=\ \frac{\sin(nx)}{\pi \, x} \end{align*} \]
 この結果は!つい先ほどデルタ関数の近似表現として挙げた中に同じ式があったではないか!?というわけで、\( n \to \infty \)を考えれば、それはデルタ関数である。


3次元のデルタ関数

 点状の粒子が\( x=a \)に存在することを表すのに\( \delta(x-a) \)を使うと説明したが、これでは\( x \)軸上の 1 次元でのことしか表せない。

 粒子が 3 次元空間の一点\( \Vec{q}(q_x,q_y,q_z) \)に存在することを表したい場合には次のように 3 つのデルタ関数を組み合わせて使えばよい。

\[ \begin{align*} \delta(x-q_x) \,\delta(y-q_y) \,\delta(z-q_z) \end{align*} \]
 これを 3 次元で積分すればちゃんと 1 になる。このようなデルタ関数の積を毎回書くのは長ったらしくて面倒なので、変数部分をベクトルにした\( \delta \left( \Vec{x} - \Vec{q} \right) \)というものを使って略して書くことが多い。3 つのデルタ関数の積であることを強調するために\( \delta^{(3)} \left( \Vec{x} - \Vec{q} \right) \)と書く場合もあるようだ。