2021年01月13日

出たる関数ってなんじゃら・・・ デルタ関数じゃ

お、Onenoteで書いてOLWにコピペしたらこんなんなったぞ。いいじゃん。

sin() は奇関数なので積分したら0になる。

 

積分だが、その前に単純化していろいろなωを足し合わせてみる。項数を増やしていけば傾向がわかり、項数を無限大にすればδ関数になるなあという感じがつかめれば良い。

cos(0) + cos(1) + cos(2) + cos(3) + cos(4) のグラフ

cos(0-5)

cos(1)の周期は2πなのでこれが一番長い。横軸の0に注目するとそこではどのcos( )も1 である。
これを足すとどうなるか。

cos(0-5)_added

一番長い周期は cos(1) なので2πの周期が出ている。そして、横軸0 のところは 1✕5 = 5 だ。
項数を増やせばピークはその項数になる。100万のcos()を集めるとピークは100万だ。これを無限大集めるとピークは無限大になる。
周期性はどうするか? cos(1)だから周期が2πなのであって、cos(0.1)にすれば周期は20πになるだろう。
cos(ωt)でωを0に近づけると周期は無限大に広がるであろう。
そして、横軸 0 のところでのピークは無限大になるだろう。だが、ピークの左右は0になるのか?

cos(0.01) + cos( 0.02) + ….. cos(1) までの例 100個なのでピークは100。周期は200π

cos(0.01-5)_added

なんとなくデルタ関数に近づいてきた感じがするぞ。cos(ωt)のωを0に近づけて、そこからωを1000ぐらい足してみるか。

cos(0.001)から1000個足した。

cos(0.01-5)_added2

cos(0.001)から2000個足した。水平線の太さが小さくなっている。

cos(0.01-5)_added3

ちなみにこれは積分ではない。刻み幅を掛けてないので積分の近似でもない。だが、ωを0に近づけ、そこからωをべらぼーに大きくすればδ関数に近づくぞ・・・という感触は得た。
実際にω= 10^-6 から項数として 10^6 ぐらいまで計算すれば線幅はもっと細くなりδ関数のような感じになると想像する。やらんけど。

Python + Scipy + Matplotlibを使用。項数増やしたり、ωを小さくしたりとやっていて気づいたが、計算量が増えるとPythonが応答なしになる。だいぶ時間がかかる。PCはDELL Optiplex 7010SFFでCore-i5の何とか、Mem 12GBだ。テスクマネージャで見ていたらメモリ96%使用とか出た。計算量が多い場合には工夫しないとイカンということだろう。

数式に無限大が出てくると毎回なんだこれと思う。上の積分も -∞ から + ∞までの積分だが、そこでは |-∞| =  |+∞|  を前提としているようで、これではまるで有限数値のようではないか。マイナスの∞とプラスの∞の絶対値が等しいってなんだよ(笑) –∞ + ∞ = 0 だってのかよ。
奇関数の積分は0になる・・・と書いたが積分範囲の正負の絶対値が等しい場合な。

てなわけで久しぶりにPythonを使った。ちなみにPythonはAnacondaから起動する。Pythonはversionがややこしい。Python versionとOpenCV versionの組み合わせもややこしい。動かない場合もある。そういう時にAnacondaは便利だ。

ちなみにδ関数は超関数の分類です。超関数ってのは、ちょう・恥ずかしい の ちょう とは違うのですねえ。信号処理の本ではデルタ関数について1,2ページの解説はあると思うよ。

posted by toinohni at 11:37| 東京 ☀| Comment(0) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください