ディラックのデルタ関数

任意の(なめらかな)関数 f(x)f(x) に対して f(x)δ(x)dx=f(0)\int_{-\infty}^\infty f(x)\delta(x)dx=f(0) を満たすような「仮想的な」関数 δ(x)\delta(x) を,ディラック(Dirac)のデルタ関数という。

関連記事: デルタ関数でポアソン方程式の特殊解・境界条件下の解の一意性を導出

デルタ関数とは

デルタ関数は関数 f(x)f(x) と掛け算して積分したときに x=0x=0 での値を取り出すような関数です: f(x)δ(x)dx=f(0)\int_{-\infty}^\infty f(x)\delta(x)dx=f(0)

しかし,普通の意味の関数でこの性質を持つものは存在しません。あくまで関数から x=0x=0 での値を取り出す操作 ff(0)f \mapsto f(0)積分で無理矢理あらわすための「仮想的な」関数がデルタ関数です。よって,デルタ関数とは関数というよりも「便利な記号」のようなもので,積分して初めて意味をもつものです(dxdx のような記号に近い存在かもしれません)。

f(x)=x3+x+2f(x)= x^3+x+2 とすると,f(x)δ(x)dx=f(0)=2\int_{-\infty}^\infty f(x)\delta(x)dx=f(0)=2となる。しかし,積分の中身のf(x)δ(x)=(x3+x+2)δ(x)f(x)\delta(x)=(x^3+x+2)\delta(x)は普通の関数ではない。

注意点まとめ
  • デルタ関数 δ(x)\delta(x) は, ff から f(0)f(0) を取り出す操作を積分であらわすための便利な記法のようなもの。
  • δ(x)\delta(x) を含む式は,積分して初めて意味をもつ。

しかし,普通の関数ではないといっても直感的なイメージを持っておくことは大切です。そこで,デルタ関数を普通の関数で近似することを考えてみましょう。

デルタ関数のイメージと関数による近似

任意の f(x)f(x) について

f(x)δ(x)dx=f(0)\int_{-\infty}^\infty f(x)\delta(x)dx=f(0)

を満たす δ(x)\delta(x) は,直感的には下図のような

x=0x=0 の非常に近くのみで大きい値となる関数

図1

と考えられます。この関数を ϕn(x)\phi_n(x) としましょう。もちろんこれは厳密なデルタ関数ではありません。例えば f(x)=x2f(x)=x^2 としてみると

f(x)ϕn(x)dx=12n12nnx2dx=n[x33]12n12n=112n2 \begin{aligned} \int_{-\infty}^\infty f(x)\phi_n(x)dx &= \int_{-\frac{1}{2n}}^{\frac{1}{2n}} nx^2 dx\\ &= n\left[\frac{x^3}{3} \right]_{-\frac{1}{2n}}^{\frac{1}{2n}}\\ &=\frac{1}{12n^2} \end{aligned} なので,f(0)=0f(0)=0 とは少しずれてしまいます。しかし,nn \to \infty の極限をとればきちんと 00 に収束します。さらに他の f(x)f(x) でも同じことが成立します。

定理1

(適切な条件を満たす)任意の f(x)f(x) に対し, limnf(x)ϕn(x)dx=f(0)\lim_{n \to \infty}\int_{-\infty}^\infty f(x)\phi_n(x)dx=f(0) が成り立つ。

定理1により,ϕn(x)\phi_n(x)nn \to \infty の極限においてデルタ関数 δ(x)\delta(x) をあらわすとみなせそうです。さらに,この定理が成り立つことから,記号を濫用して limnϕn(x)=δ(x)\lim_{n \to \infty} \phi_n(x)=\delta(x) と書いたりもします。この極限は普通の意味の極限ではないことに注意しましょう!

このように,デルタ関数は関数ではないですが,普通の関数によってある意味で近似できます。また,この ϕn(x)\phi_n(x) 以外にも定理1の条件を満たす関数列はたくさんあります。いくつか例をあげておきます。

デルタ関数の近似の例
  • 平均 00,分散 σ2\sigma^2 の正規分布の密度関数 gσ(x)=12πσ2exp(x22σ2)g_{\sigma}(x) = \frac{1}{\sqrt{2\pi \sigma^2}}\exp \left(-\frac{x^2}{2\sigma^2}\right)σ0\sigma \to 0 の極限を考えることで定理1と同様の条件limσ0f(x)gσ(x)dx=f(0)\lim_{\sigma \to 0}\int_{-\infty}^\infty f(x)g_{\sigma}(x)dx=f(0)を満たす。

図2

  • sinc関数(→sinx/xについて覚えておくべき2つのこと)から作られる φn(x)={sinnxπx (x0)nπ (x=0)\begin{equation*} \varphi_n(x)= \left \{ \begin{array}{l} \frac{\sin n x}{\pi x} (x \neq 0) \\ \frac{n}{\pi} (x=0) \end{array} \right. \end{equation*}も,nn \to \infty の極限で同様の条件を満たす。

図3

デルタ関数の性質

デルタ関数は関数ではなく積分して初めて意味のある記号ですが,例えばδ(x)=δ(x)ddx\delta'(x) = -\delta(x)\frac{d}{dx}xδ(x)=0x\delta(x)=0のような式を目にすることもあります。これは f(x)f(x) をかけて積分した後の式において等式が成り立つ,という意味です。このような等式や性質をいくつか紹介します。

形式的な表示

デルタ関数の積分では x0x \neq 0 の部分の影響がなくなります。ここから δ(x)\delta (x)x0x \neq 000 を取ると考えられます。

f(x)=1f(x) = 1 に対してデルタ関数の積分をすると δ(x)dx=1 \int_{-\infty}^{\infty} \delta (x) dx = 1 です。

これより δ(0)=\delta (0) = \infty であると(形式的に)考えるとよいです。

このことを踏まえると,正の実数 a,ba,b に対して abf(x)δ(x)dx=f(0) \int_{-a}^b f(x) \delta (x) dx = f(0) となります。

変数変換

a0a\neq 0 に対してδ(ax)=1aδ(x)\delta(ax) = \frac{1}{|a|}\delta(x)が成り立ちます。これは ax=yax=y による置換積分からわかります。実際,a>0a>0 のとき, f(x)δ(ax)dx=1af(ya)δ(y)dy=1af(0a)=1af(0) \begin{align*} \int_{-\infty}^\infty f(x)\delta(ax)dx&=\frac{1}{a}\int_{-\infty}^\infty f\left(\frac{y}{a} \right)\delta(y)dy\\ &=\frac{1}{a}f\left(\frac{0}{a}\right)\\ &=\frac{1}{a}f(0) \end{align*} となります。a<0a < 0 のときは置換した際に積分区間が逆転してマイナスがつくので 1af(0)-\dfrac{1}{a}f(0) になります。

微分

デルタ関数の微分はδ(x)=δ(x)ddx\delta'(x) = -\delta(x)\frac{d}{dx}を満たします。

これは(limx±f(x)=0\lim _{x \to \pm \infty}f(x)=0 となる f(x)f(x) について)部分積分によって f(x)δ(x)dx=[f(x)δ(x)]f(x)δ(x)dx=f(0) \begin{align*} &\int_{-\infty}^\infty f(x)\delta'(x)dx\\ &=\Bigl[f(x)\delta(x)\Bigr]_{-\infty}^{\infty}\\ &\quad -\int_{-\infty}^\infty f'(x)\delta(x)dx\\ &=-f'(0) \end{align*} が成り立つ,という意味です。

平行移動

デルタ関数を平行移動した δ(xa)\delta(x-a) は,x=ax=a での値を取り出す操作を表します。 f(x)δ(xa)dx=f(a)\int_{-\infty}^\infty f(x)\delta(x-a)dx=f(a)y=xay=x-a として置換積分すればわかります。)これは物理などで「位置 aa にある電荷」などをあらわすときに使われます。

フーリエ級数展開

デルタ関数を周期 TT になるように拡張して関数を考えます。(記号の乱用ですが δ(x)\delta (x) と書きましょう)

これをフーリエ級数展開してみましょう。

an=2T0Tδ(x)cos2πnxTdx=2Tbn=2T0Tδ(x)sin2πnxTdx=0\begin{aligned} a_n &= \dfrac{2}{T} \int_0^{T} \delta (x) \cos\dfrac{2\pi nx}{T}dx\\ &= \dfrac{2}{T}\\ b_n &= \dfrac{2}{T} \int_0^{T} \delta (x) \sin\dfrac{2\pi nx}{T}dx\\ &= 0 \end{aligned}

よって δ(x)=1T+n=12Tcos2πnx \delta (x) = \dfrac{1}{T} + \sum_{n=1}^{\infty} \dfrac{2}{T} \cos 2\pi n x となります。

複素数型フーリエ級数展開もしてみましょう。

δ(x)=1Te2πT0x+n=11T(e2πTnx+e2πTnx)=1Tn=e2πnxT\begin{aligned} \delta(x) &= \dfrac{1}{T} e^{\frac{2 \pi}{T} \cdot 0 \cdot x} + \sum_{n=1}^{\infty} \dfrac{1}{T} (e^{\frac{2 \pi}{T} n x} + e^{-\frac{2 \pi}{T} n x})\\ &= \dfrac{1}{T} \sum_{n=-\infty}^{\infty} e^{\frac{2 \pi nx}{T}} \end{aligned} となります。この表記は計算する上で有用です。

フーリエ変換

デルタ関数をフーリエ変換(→フーリエ変換の意味と応用例)すると, δ^(ξ)=δ(x)eiξxdx=e0=1 \begin{aligned} \hat{\delta} (\xi) &= \int_{-\infty}^\infty \delta(x)e^{i\xi x}dx\\&=e^0\\&=1 \end{aligned} となり,定数関数 11 となります。さらにこれをフーリエ逆変換するとδ(x)=12πeikxdk\delta(x) = \frac{1}{2 \pi}\int_{-\infty}^\infty e^{ikx}dkという式が得られます。これは数学的にはかなり怪しい式変形ですが,物理学では利用されるようです。また右辺の積分を有限区間で打ち切ると 12πnneikxdk=[eikxix]nn=12π(einxixeinxix)=12πeinxeinxix=12π2isinnxix=sinnxπx \begin{aligned} \frac{1}{2 \pi}\int_{-n}^n e^{ikx}dk &= \Bigl[\frac{e^{ikx}}{ix}\Bigr]_{-n}^n\\ &=\frac{1}{2 \pi}\left(\frac{e^{inx}}{ix}-\frac{e^{-inx}}{ix}\right)\\ &=\frac{1}{2 \pi}\frac{e^{inx}-e^{-inx}}{ix}\\ &=\frac{1}{2 \pi}\frac{2i\sin n x}{ix}\\ &=\frac{\sin n x}{\pi x} \end{aligned} となり,「デルタ関数の近似列」のひとつとしてあげた φn(x)\varphi_n(x) が現れます。

補足:超関数について

デルタ関数のような「関数に対し値を返す線形な関数」は,超関数と呼ばれます。初めに物理や工学でデルタ関数や階段関数を使った(数学的にちょっと怪しい)計算が導入され,それを正当化するためにローラン・シュワルツによって超関数(distribution)の理論として整理された,という歴史があります。

上のような計算をどうやって厳密化するのか,といったことに興味がある方は超関数や関数解析について調べてみてはいかがでしょうか。

シュワルツは超関数の理論を作ったことによってフィールズ賞(数学のノーベル賞と呼ばれる賞)を受賞しています。