言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

マトリックス

数学の先生なんていうのは、内心数学なんて大人になってから何の役にも立たないと思っているに違いない。でなければ、あんな不条理な教え方をするわけが無い。わしゃ本当恨むよ。

今日の一日は例によって行列の計算で潰れてしまった。というか、僕は元々常人の半分くらいの記憶力しかないので、行列の計算をするたびに教科書を読んで計算の順番を数えないといけないし、それでも最初の3回くらいは必ず間違えるのだ。

で、何をやっていたかというと、ある物体に光線を向けるのに、角度で指定するのではなく、「この物体の方を向く」と言う事をやりたかった。このくらいならちゃんと用意されたメソッドがちゃんとあったのだが、次に、その物体と全く反対側に光線を向けなくてはいけないという事が判明した。まあ、さっき計算した奴を180度回転させれば済む話だけど、たかが正反対にするだけだから、ちょこっとどこかの符号を変えるだけで済むだろうと考えた僕が浅はかだった。

結論として分かった事は、行列とは連立方程式の一つの表現形式でしかなくて、逆ではない。つまり、たまたまこういう順番で行列の掛け算を定義すると座標の計算に使えて便利で、それがたまたま連立法的式を解くために使えるという事ではなく、その逆、僕らがアリスを動かすのも、ウサギをぐるぐる回すのも、連立方程式の一つの応用でしか無いという事。もちろん教科書にもそう書いてありますよ。でもちゃんと納得できるように書いていない。きっかけは、角度を座標で表現しようとした事だった。

回転の公式を見ると、サインコサンが入っていたり、意味不明にマイナス符号がついているけど、あれは間違い! いきなり角度ではなく、こっち(座標)に向きたいというのが最初にあるわけで、サインコサインはただの単位ベクトルだ。そして(ここからがあやふやだが)その単位ベクトルをまっすぐ伸ばせば向きたい点に辿りつくというのがまずあって、そこから逆算した所が回転後の点になる。というわけで連立方程式の一つの表現である行列が役に立つのだ。

4x4 マトリックスは単なる便利表現ではなくて、それぞれの数字に理解できる意味があるし、図形的な表現も可能だ(と、思う)。で、その後の理解があやふやなので、その辺が納得できたらまた書きたいと思う。自習終わり。