忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

sinカーブをずらす

数学にはsin関数をずらす公式があります。その証明は1999年の東大入試に出題されましたが、概念的にはそう難しくありません。ここでは難しい話はなしにして、何が起きているのか視覚的に理解しましょう。


目的

そもそもなぜsinカーブをずらさなければいけないのでしょう?物事を受け入れるには、それによってメリットがなければいけません。sinカーブをずらして私達がハッピーになれるとしたら、それはどんな状況でしょう?

具体例を考えましょう。次のように、いろいろな周期のsinカーブがあったとします。これらをすべて足すと、山と山が重なりとても高い山が出来て、砂場で遊んでいる幼児のような気分になれるでしょう。

もし波の一つがずれていたら、高い山は出来ません。上の図のように高い山が出来るのは山どうしが同じ場所にあるからで、もしその場所に谷があったら、次の図のようにその分低くなってしまうのです。

波をずらすやり方を理解していれば、波たちの息を合わせて高い山を作り出すことが出来ます。

というわけで、sinカーブをずらすのは、高い山を作りたいという砂場で遊ぶ子供の心が理由なのです!あるいは反抗的市民を脅して無理やり自分に投票させる独裁者や、ファシズムに熱狂している国民の心です。以上から、sinカーブをずらしたくなる心理がご理解いただけたと思います。

2つの波を足してずらす

とはいえ、sinカーブをずらして高い山を作るというのは、全体のために個人の信条を捻じ曲げさせる感じがしてあまり良くありません。物事は自分のペースでやっていきたいものです。そこで、次のデモプログラムのように2つのペースの変わらない波を足して、ずれた新しい波を作り出します。

波1の倍率:
波2の倍率:

これは2つの波(それぞれsin波とcos波)を何倍かして足すことによって、新たな波を作り出すプログラムです(面白いことに、同じ周期の波を足したら、出来る波もsin波の形になります。上の2つの図にあるような、わけのわからない複雑な波ではありません)。ただし、新しく出来る波は少し縦にずれています。sinとcosを足すことで、ズレを作り出すことが出来るのです。

[波1の倍率]を変えてみてください。新しく出来た波の縦のズレを操作できることがわかるでしょう(横にも大きくなりますが、これは無視してください。今重要なのは、タテのズレです)。コーヒーとミルクの配分で味を調節できるように、sinとcosの配分で波のズレを調節できるのです!

こうして作り出した新たな波は、高い山を作るのに好都合です。ズレを自由自在に調節できるからです。他の波たちとズレていても、オリジナルの2つの波をズラすことなく結果だけ調子を合わせることが出来ます。自分の飲むコーヒーをマイルドにしたいのなら、コーヒーメーカーに製法を変えろとクレームを入れる必要はありません。単にミルクの割合を増やせばいいだけなのです。もちろん牛に対してクレームを入れる必要もありません。

ニューロンのたとえ

この波の合わせ方はニューロンの行っている情報処理に似ています(まあ、ニューロンは人の行うあらゆる情報処理を行えるので、どんな情報処理にも似ないとおかしいのですが)。

ニューロンは大ざっぱに言って、掛け算と足し算を行います:

一方、上のデモプログラムは、次のような計算を行っています:

この2つは似ています。まあ厳密に言うと、ニューロンは掛け算と足し算の他に、答えがマイナスになったら無理やり0にするような情報処理もしているので、あくまで大ざっぱな話です。

もしこのアナロジーが成立するとしたら、ニューロンは自分の内から来る波動(!)を周りの調子と合わせようとしていると言えなくもありません。山の位置を多数派と合わせようとしているのです。

もちろん、このようなアナロジーは言いたい放題です。「ニューロンを伝わる情報は呪いのビデオに似ている。なぜなら、ニューロンはもらった情報を他のニューロンに伝えようとするからだ。」とも言えるわけです。しかしこのようなたとえ話はたとえ事実でなくても強烈な印象に残り記憶の助けにはなりますし、何より面白いという利点があるのです。

拍手[0回]

PR