|
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|をかける意味は、とても難しいので大学の線形代数の時間に勉強してください」と書いてあるだけで 説明がなかった。 ちなみに僕は、学校の線形代数の時間寝ていました。 あ、余弦定理の証明はわかりますよん。 |