[pukiwiki]
ベクトルの内積は簡単だし、よく使うわりに、(自分は)意外に忘れがちだったりするのでメモ。
[/pukiwiki]
[pukiwiki]
話を簡単にするために、長さ1の単位ベクトル同士の内積を考えます。
実は、内積の定義は、意外に難しいようです
-[[内積:http://ja.wikipedia.org/wiki/%E5%86%85%E7%A9%8D]]
が、ここでは3DCGなどでよく使う式を考えます
内積(A B) = |A||B| Cos θ
= Ax*Bx + Ay*By
-[[内積の意味(仕事の量として):http://naop.jp/topics/topics14.html]]
http://boxheadroom.com/wp/wp-content/uploads/2010/02/dot0.png
-ベクトルAとベクトルBのなす角度をθとおきます。
-点Aから線分OBに垂線を降ろし、交点をHとすると、
–(= 点Aを線分OBに射影)
OH= cos θ , ただし、ABは単位ベクトル
幾何的な性質がわかったところで、次に、代数的な内積の計算方法と一致することを調べます。
欲しい式は下記。
内積(A B) = |A||B| Cos θ
= Ax*Bx + Ay*By
http://boxheadroom.com/wp/wp-content/uploads/2010/02/dot21.png
-さて、ここからは、ベクトルA Bを複素数 (複素平面) だと思うことにします。
-Bを上下ひっくりかえした複素共役ベクトルをB’ とおきます
-B’は、 -β方向に向いた単位ベクトルと同等です
*は掛け算記号
A = Ax + i * Ay
B = Bx + i * By
B’ = Bx – i * By
ここで、オイラーの公式から、 A Bの xy座標の具体的な関数を考えると
http://boxheadroom.com/wp/wp-content/uploads/2010/02/dot3.png
A = Cos α + i Sin α
B = Cos β + i Sin β
ただし、 i は虚数単位 i * i = -1
計算したいのは
θ = α - β
なので、指数関数の法則より
http://boxheadroom.com/wp/wp-content/uploads/2010/02/dot51.png
普通に掛け算します
Exp (-i (α-β))
= Exp(-i α)*Exp(-i *-β)
= A * B’
= (Ax + i * Ay)*(Bx – i * By)
=(Ax*Bx – i*i*Ay*By) – Ax*i*By + i*Ay*Bx
= (Ax*Bx + Ay*By ) + i* (Ay*Bx-Ax*By)
変数を戻します
Ax=Cos α Ay = Sin α
Bx=Cos β By = Sin β
A * B’
=(Ax*Bx + Ay*By ) + i* (Ay*Bx-Ax*By)
= Cos α *Cos β + Sin α * Sin β
+ i* ( Sin α* Cosβ – Cos α * Sin β)
三角関数の加法定理により、
= ( Cos α *Cos -β – ( Sin α * Sin -β)
+ i* ( Sin α* Cos-β + Cos α * Sin -β)
= Cos ( α -β ) + i *Sin ( α -β )
= Cos ( θ ) + i *Sin ( θ )
ここで、実数部のみに注目すると、
Ax* Bx + Ay * By = Cos (θ)
これで、欲しかった ”『二つのベクトルがなす角度のCos』” の計算式が求められました。 単位ベクトルでない場合は、ベクトルの長さ(絶対値)で割って単位ベクトルにしてから計算すれば同じことになるので、、、、
つまり、あとから絶対値で割っても同じなので、
Cos( A B ) = (Ax * Bx + Ay* By ) ÷ (|A|*|B|)
内積 Ax * Bx + Ay * By
= |A|*|B|*Cos θ
おしまい
*説明
上記の説明だと、試験に書くと出題範囲の関係などで”バツ”になるかもです。
数学ガールの1巻か、2巻にも、内積ではないのですが、複素数の掛け算、割り算という形で、同様の演算に関する詳しい解説が載ってた気がします。
で、なんで内積を調べてたかというと、三角関数の正弦定理、余弦定理について調べてて、ちょっとあやふやだったから復習したかったのです。3DCGにもよく出てきますし。(ベクトル間の角度とか、シェーディング関係とか)
CGだと、内積自体よりも、角度θが欲しいことが多かったりしますけれども。
-[[正弦定理:http://ja.wikipedia.org/wiki/%E6%AD%A3%E5%BC%A6%E5%AE%9A%E7%90%86]]
–[[正弦定理 証明 円周角>ググる:正弦定理 証明 円周角]]
-[[余弦定理 直角でない場合の三平方の定理:http://shigihara.hp.infoseek.co.jp/sin52.htm]]
この余弦定理ってのは、実は内積と同じ事なんです。
[/pukiwiki]