ステップ関数の微分

この記事は 明日話したくなる数学豆知識アドベントカレンダー の 10日目の記事です。(9日目:二次方程式の解の公式の別の見方 )

数学的な技巧として○○変換はなくてはならないものである.信号処理では周波数成分を見るためにフーリエ変換を用い,交流回路解析においてラプラス変換を用いれば微分方程式を解くことなく所望の出力電圧を求めることができる.これら○○変換は,関数を関数に写す処理であるから数学の分野でいうと関数解析学となる.だが理学部数学科はともかく工学部で関数解析学の授業はほぼないであろう.一応工学部でも常微分方程式くらいまではわりと理論的な背景を学ぶことにはなるのだが,このあたりから理論的背景はさておきという感じになり,だんだん「よくわからないけど便利な概念」とか「よくわからないけど解ける方法」が出現する.

その顕著たるものがデルタ関数である.定義としては次の性質を満たす \delta (x)のことである:
 \delta (x) = 0 \  \  x \neq 0
 \int_a^b \delta (x) dx = 1 \  \  \mathrm{where} \  a<0, b>0
「関数」と便宜上名づけられているがこの条件を満たす関数は存在しない.一行目の条件よりこの関数が0でないのは1点 x=0のみであるため, \delta (x)ほとんどいたるところ0である.そのため,一行目の条件を満たしている時点で二行目は満たされるはずがない.まあただこんな性質の関数があるといいなあという状況は多々あるわけで,例えば電磁気学における点電荷を表現したいときにデルタ関数を使うと,大きさを持たない点に影響を与えうる大きさの電荷があることが表現できてとてもうれしいのである.また,デルタ関数を使うと定数関数がフーリエ変換できるようになるのもいいところである.さらに,
 H(x) = \int_{-\infty}^x \delta ( \xi ) d \xi
とすると, x=0で定義されなさそうなのが気になるが, H(x)はステップ関数になりそうである.さらに両辺を微分すると,
 H'(x) = \delta (x)
となりそうな雰囲気である.まあなんともあっているのかあっていないのか微妙な話ではあるが,教科書ではその微妙なところはスルーしてごく普通にこの関係式が使われたりする.最初はそれでなんとなく理解することはできるのだが,少しつっこんで理解しようとするとやはり関数のようで関数でないこの存在に惑わされてしまう.そのような反応は普通で,実は当初ポール・ディラックがこのデルタ関数を提唱した時ですら厳密に正当化された概念ではなく,後になってローラン・シュワルツによって数学的定義が整備されたのである.

シュワルツはデルタ関数の性質
 \int_{-\infty}^\infty \delta (x) f(x) dx = f(0)
に着目し,デルタ関数により関数 f(x)が実数 f(0)に写されると考えた.つまり,関数の拡張空間として,関数→実数という写像を考えるのである.これを超関数と呼ぶ.通常の関数 F(x)については,関数 f(x)
 \int_{-\infty}^\infty F(x) f(x) dx
という実数に写す写像であると考えればよい.超関数を書き表すためには,内積の記号を使ってこれらの式を
 \langle \delta , f \rangle = f(0)
 \langle F, f \rangle = \int_{-\infty}^\infty F(x) f(x) dx
と書く場合が多い.

これで一応デルタ関数と関数を一つの概念に組み入れることはできたが,さらに超関数の写像としての定義域である関数 f(x)にいろいろ条件を付けることで様々な演算が可能になる.例えば f(x)微分可能でかつ f(\infty)=f(-\infty)=0であるとしよう.すると,関数 F(x)については,
 \begin{eqnarray} \langle F', f \rangle &=& \int_{-\infty}^\infty F'(x) f(x) dx \\ &=& [ F(x)f(x) ]_{-\infty}^\infty - \int_{-\infty}^\infty F(x) f'(x) dx \\ &=& - \langle F, f' \rangle \end{eqnarray}
となり, F微分する代わりに f微分すればいいという結論になる.つまり超関数 F微分 F'
 \langle F', f \rangle = - \langle F, f' \rangle
と定義するのである.この定義をステップ関数に適用してみると,
 \begin{eqnarray} \langle H', f \rangle &=& -\langle H, f' \rangle = -\int_{-\infty}^\infty H(x) f'(x) dx \\ &=& -\int_{0}^\infty f'(x) dx = -[ f(x) ]_0^\infty dx \\ &=& f(0) = \langle \delta , f \rangle \end{eqnarray}
となり,ステップ関数の微分が確かにデルタ関数と同じになっていることがわかる.この手の微分微分と呼ばれるもので,関数とセットで考えているからこそできるものである.同様に,通常は収束しない関数列 F_n(x)でも関数とセットで考えて \langle F_n , f \rangleとすると n \rightarrow \inftyの極限を持つようになることがある.この方法による収束は弱収束と呼ばれる.

超関数についてごく簡単にその発想を説明したが,この説明は大まかなものでその定義もかなり大雑把なものであり,あくまで教科書よりほんの少しだけ掘り下げただけのつもりである.より詳しく知りたい方は例えばシュワルツ超関数としての信号処理理論などのテキストがインターネット上にもあるので納得するまで深掘りするのがいいだろう.ただし,掘っても掘っても底が現れることはないであろうから当初の疑問に応じてどこかで満足することが必要である.