お、Onenoteで書いてOLWにコピペしたらこんなんなったぞ。いいじゃん。
sin() は奇関数なので積分したら0になる。
積分だが、その前に単純化していろいろなωを足し合わせてみる。項数を増やしていけば傾向がわかり、項数を無限大にすればδ関数になるなあという感じがつかめれば良い。
cos(0) + cos(1) + cos(2) + cos(3) + cos(4) のグラフ
cos(1)の周期は2πなのでこれが一番長い。横軸の0に注目するとそこではどのcos( )も1 である。
これを足すとどうなるか。
一番長い周期は 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(ωt)のωを0に近づけて、そこからωを1000ぐらい足してみるか。
cos(0.001)から1000個足した。
cos(0.001)から2000個足した。水平線の太さが小さくなっている。
ちなみにこれは積分ではない。刻み幅を掛けてないので積分の近似でもない。だが、ωを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ページの解説はあると思うよ。