ベクトルの内積の意味を考える

3Dプログラミングをやっていく上で、重要な数学知識、
それがこのベクトルの内積(外積も)の概念です。

高校の数学で”式”としては習ったけど、
その”意味”までも理解している人はほとんどいないと思います。
僕もそうです。
ということで、内積の”意味”を一緒に考えていきましょう。
まぁ、大学で線形代数の授業を真面目に取り組んでいる人には、
「何をいまさら…」ってな感じでしょうが…。


a(xa,ya,za) b(xb,yb,zb)の二つのベクトルがあるとして、
内積の定義は

a・b = |a||b|cosθ
(θはaとbの間の角度)

となります。
高校で、内積を習った時「内積を意味する黒丸『・』を省略してはダメだ」と言われませんでしたか?
そうなんです。これは何なる掛け算マークではありません。
そう、「a・b」 これがベクトルの内積を表す記号です。
その記号から、英語では内積のことを「dot product」と呼んでいます。
ちなみに、外積の記号は「a×b」で、英語では「cross product」です。
んで、内積の式の右辺を見てみます。

|a||b|cosθ

これがよくわかりません。
唐突に現れた「cosθ」…そして、「|a|」「|b|」とはいったい何なのか?
ここが内積を理解するポイントになりそうです。
とりあえず分かり易くするために式を(|a|)(|b|cosθ)の二つに分けます。
教科書を見てみると、|a|は次のように定義されています。

|a|=sqrt(xa^2+ya^2+za^2)

これはベクトルの大きさ(長さ)を表します。
このベクトルの大きさ(長さ)のことを「ベクトルのノルム」とも言います。
内積の式の中で一番大きな意味をもつのがここです。重要!
a・b = |a||b|cosθ
を見て、変だと思いませんでしたか?
左辺値はベクトル(方向と大きさを持つ値)なのに、その答えである右辺値はスカラー(大きさだけ)なのです。
変だと思っても、これは概念であり、定義なのです。
そう決めちゃったんだから仕方がないんです。
結論を言うと「内積をとる」事は「ベクトルの成分を取り出す(動詞)事」なのです。
さらに言うなら
「内積を定義するということは、ベクトル空間に”長さ”の概念を導入することに他ならない」  -培風社 入門線形代数より引用-

   じゃあ 、|b|cosθは何なの? とお思いでしょうが、
これはちょっと考えれば分かります。
|b|はbの大きさですよね。 んで|b|cosθ、これはbのa方向成分の量(大きさ)を表している訳です。
分かりにくい人は図を書くと分かりやすいです。

よって

「内積」というのは、「右側のベクトル(b)の、左側のベクトル(a)方向の成分を出すための道具」だということです。
-とある数学ページより引用-
ってことです。

ここで疑問が生まれます。
内積が「右側のベクトル(b)の、左側のベクトル(a)方向の成分を出すための道具」だとしたら
|b|cosθに|a|をかける意味はなんだろう!?

これは僕もわかりません。
わかった人教えてください。
参考にした数学のページ(高校生用)では、「|a|をかける意味は、とても難しいので大学の線形代数の時間に勉強してください」と書いてあるだけで 説明がなかった。
ちなみに僕は、学校の線形代数の時間寝ていました。
あ、余弦定理の証明はわかりますよん。