クロネッカーのデルタは、条件分岐を数式上で表現できる非常に便利な関数である。
例えば、
A = [(0, 1), (1, 2), (2, 3), (0, 4), (1, 5), (2, 6)] c = sum([a[1] if a[0] == 1 else 0 for a in A]) print(c) # 7 = 0 + 2 + 0 + 0 + 5 + 0
のような、特定の条件を満たす場合のみ加算し、それ以外は無視するといったような計算を表現することができる。
クロネッカーのデルタは離散的な変数(自然数の集合など)に対して用いられるが、これを連続変数に対して拡張したものがディラックのデルタ関数である。
クロネッカーのデルタ
定義
クロネッカーのデルタは以下のように定義される。
$$\delta_{ij}=\begin{cases}{1\,(i=j)}\\{0\,(i\neq j)}\end{cases}$$
性質
定義により、クロネッカーのデルタは以下の性質を持つ。
- $$\sum_{j}\delta_{ij}a_j=a_i$$
- $$\sum_{i}a_i\delta_{ij}=a_j$$
- $$\sum_{k}\delta_{ik}\delta_{kj}=\delta_{ij}$$
また、
$$\delta_{ij}=\delta(i, j)$$
と表記することもある。
例
$$a_0=0,a_1=1,a_2=2,a_3=0,a_4=1,a_5=2$$
$$b_0=1,b_1=2,b_2=3,b_3=4,b_4=5,b_5=6$$
のとき
$$c=\sum_{n=0}^{5}\delta(1,a_n)b_n$$
とおくと
$$c=0+2+0+0+5+0=7$$
より前述のコードが数式的に表現できる。
ディラックのデルタ関数
定義
ディラックのデルタ関数について、以下に2通りの定義を示す。
定義その1
任意の実連続関数\(f:{\bf R}\to{\bf R}\)に対し
$$\int_{-\infty}^{\infty}f(x)\delta(x)dx=f(0)$$を満たす実数値シュワルツ超関数\(\delta\)のことをディラックのデルタ関数という。
定義その2(簡単)
ディラックのデルタ関数\(\delta(x)\)は以下を満たす。
- $$\delta(x)=\begin{cases}{\infty\,(x=0)}\\{0\,(x\neq 0)}\end{cases}$$
- $$\int_{-\infty}^{\infty}\delta(x)dx=1$$
すなわち、ディラックのデルタ関数は\(x=0\)のときに\(\infty\)となり、それ以外の\(x\)ではすべて\(0\)である特殊な関数であり、全区間を積分すると\(1\)になる。実用上は定義その2の理解で問題ない。
性質
ディラックのデルタ関数は、クロネッカーのデルタ関数
$$\sum_{i=-\infty}^{\infty}f_i\delta_{ij}=f_j$$
の、連続変数への自然な拡張になっている。また、ディラックのデルタ関数は以下の性質を持つ。
- $$\int_{-\infty}^{\infty}f(x)\delta(x-a)dx=f(a)$$
- $$\delta(-x)=\delta(x)$$
- $$\delta(x)=\frac{1}{2\pi}\sum_{n=-\infty}^{\infty}e^{inx}$$
- $$\delta(ax)=\frac{1}{a}\delta(x)\,(a>0)$$
性質1.の解説
性質1.は特に無限積分である必要はない。積分区間\([\alpha,\beta]\)が\(\alpha<a<\beta\)のように\(a\)を含んでいるならば、
$$\int_{\alpha}^{\beta}f(x)\delta(x-a)dx=f(a)$$
となり、\(f(x)\)に\(\delta(x-a)\)をかけて\(a\)を含む区間で積分すると、\(f(a)\)の値のみを抽出することができる。
性質2.の解説
ディラックのデルタ関数は偶関数である。
性質3.の解説
この式はディラックのデルタ関数の複素形フーリエ級数による展開を示したものである。
複素形フーリエ級数で展開できるのは周期関数に限られるため、まず、
$$\delta(x-2k\pi)=\frac{1}{2\pi}\sum_{n=-\infty}^{\infty}e^{inx}$$
を考える。このとき、
$$\delta(x-2k\pi)=\begin{cases}{\infty\,(x=2k\pi)}\\{0\,(x\neq 2k\pi)}\end{cases}\,(k=0,1,2,\cdots)$$
であり、すなわち周期\(2\pi\)で値が\(\infty\)となる関数を考えている。ここで、この関数の定義域を\([-\pi,\pi]\)に絞ることによって、左辺はディラックのデルタ関数に等しくなる。したがって、
$$\delta(x-2k\pi)=\frac{1}{2\pi}\sum_{n=-\infty}^{\infty}c_n e^{inx}$$
である。この式の係数は
$$c_n=\frac{1}{2\pi}\int_{-\pi}^{\pi}\delta(x)e^{-inx}dx$$
より求められ、\(f(x)=e^{-inx}\)とおくと\(f(0)=e^0=1\)なので
$$c_n=\frac{1}{2\pi}f(0)=\frac{1}{2\pi}$$
となる。したがって、任意の整数\(n\)について\(c_n=\frac{1}{2\pi}\)より、
$$\delta(x)=\frac{1}{2\pi}\int_{-\pi}^{\pi}\delta(x)f(x)dx=\frac{1}{2\pi}\sum_{n=-\infty}^{\infty}e^{inx}$$
が成り立つ。
性質4.の解説
\(ax=t\)とおくと、
$$\frac{d(ax)}{dt}=\frac{dt}{dt}$$
$$a\frac{dx}{dt}=1$$
$$adx=dt$$
より、
$$\delta(x)dx=\delta(t)dt=\delta(ax)adx.$$
したがって、
$$\delta(ax)=\frac{1}{a}\delta(x)$$
が成り立つ。
コメント