|
3.5.12 超関数と関連操作
実際問題では多くの場合,ある一定量のものが微小領域に集中しているような極限を考慮すると便利なことがある.微積分学で扱われる通常の数学的な関数では,このような極限を直ちに表すことができない.しかし,超関数を導入することによって,これらの極限を積分や他の計算形式で表すことができる.

ディラックのデルタ関数と単位階段関数
の周りに集中した関数.
In[1]:= Plot[Sqrt[50/Pi] Exp[-50 x^2], {x, -2, 2}, PlotRange->All]

Out[1]= 
が大きくなるにつれ,関数は次第に集中してくる.
In[2]:= Plot[Evaluate[Sqrt[n/Pi] Exp[-n x^2] /. n -> {1, 10, 100}], {x, -2, 2}, PlotRange->All];

なら積分は常に1に等しくなる.
In[3]:= Integrate[Sqrt[n/Pi] Exp[-n x^2], {x, -Infinity, Infinity}, Assumptions -> n > 0]
Out[3]= 
を無限大にした場合の関数の極限は,ディラックのデルタ関数となり,積分は再び1になる.
In[4]:= Integrate[DiracDelta[x], {x, -Infinity, Infinity}]
Out[4]= 
ディラックのデルタ関数は 以外のすべての実数の点で0に評価する
In[5]:= Table[DiracDelta[x], {x, -3, 3}]
Out[5]= 
積分内にデルタ関数を組み入れると,デルタ関数の引数がゼロになる離散的な点で,被積分関数の値を抽出できる効果がある.
関数fを引数2で抽出する.
In[6]:= Integrate[DiracDelta[x - 2] f[x], {x, -4, 4}]
Out[6]= 
少し複雑な例を示す.
In[7]:= Integrate[DiracDelta[x^2 - x - 1], {x, 0, 2}]
Out[7]= 
これにより,積分領域で の零点の個数を数えることができる.
In[8]:= Integrate[DiracDelta[Cos[x]], {x, -30, 30}]
Out[8]= 
単位階段関数 UnitStep[x]は事実上デルタ関数の不定積分となる.これはヘビサイド関数として知られ, , , および 等で表される. で不連続になるが,超関数とはみなされていない.単位階段関数は,部分的に連続な関数を設定するときや,ある点以降でのみゼロ以外になる信号および他の量を表すのによく使われる.
デルタ関数の不定積分は単位階段関数である.
In[9]:= Integrate[DiracDelta[x], x]
Out[9]= 
矩形波を生成する.
In[10]:= Plot[UnitStep[Sin[x]], {x, 0, 30}]

Out[10]= 
矩形波の積分をする.
In[11]:= Integrate[UnitStep[Sin[x]], {x, 0, 30}]
Out[11]= 
積分値は, が の区間内にあるか否かに依存する.
In[12]:= Integrate[f[x] DiracDelta[x - a], {x, -2, 2}]
Out[12]= 
DiracDeltaとUnitStepは,積分変換でよく現れる.
定数関数のフーリエ変換はデルタ関数である.
In[13]:= FourierTransform[1, t, ]
Out[13]= 
のフーリエ変換には2つのデルタ関数の和が含まれる.
In[14]:= FourierTransform[Cos[t], t, ]
Out[14]= 
ディラックのデルタ関数はDSolveで使用され,線形および他の微分方程式で表された系のインパルス応答やグリーン関数を見付けるのに使われる.
でインパルスを受ける調和振動子の挙動を示す.
In[15]:= DSolve[{x''[t] + r x[t] == DiracDelta[t], x[0]==0, x'[0]==1}, x[t], t]
Out[15]= 

多次元ディラックのデルタ関数と単位階段関数
多次元ディラックのデルタ関数に関連するものとして離散デルタとクロネッカーのデルタの2つの整数関数がある.離散デルタ はすべての ならば1であり,その他の場合はゼロである.クロネッカーのデルタ は, がすべて等しければ1であり,その他の場合はゼロである.

整数デルタ関数
|