はじめに
高校数学で「内積」を勉強すると、
$$
\vec{a}\cdot\vec{b} = |\vec{a}||\vec{b}|\cos\theta
$$
という公式が出てきます。でも、最初にこの公式を見たとき、「なぜ \(\cos\theta\) が出てくるの?」「そもそも内積って何を計算しているの?」と感じた人も多いのではないでしょうか。
私自身、AIや3D再構成について勉強する中で、ベクトルや内積を何度も使ってきました。その中で改めて感じたのが、内積は単なる掛け算ではなく、「ベクトルがある方向にどれくらい向いているか」を数値にする計算だということです。
この記事では、内積の公式をいきなり覚えるのではなく、「ベクトルの影」と「角度」というイメージから、内積が何を計算しているのかを考えてみます。
この記事でわかること
この記事では、次の内容の理解を目指します。
- ベクトルの「長さ」と「向き」の意味
- なぜ内積の公式に \(\cos\theta\) が現れるのか
- 内積を「ベクトルの影」として考える方法
- 内積の正・0・負から何がわかるのか
- 「角度から見た内積」と「成分から見た内積」の関係
- 内積がAIやコサイン類似度にどうつながるのか
1.ベクトルは「長さ」と「向き」を持っている
まず、ベクトルについて簡単に確認しておきます。ベクトルは、単なる数字の並びではありません。
たとえば、
$$
\vec{a} =
\begin{pmatrix}
3\\
4
\end{pmatrix}
$$
というベクトルを考えます。このベクトルは、「右に3、上に4」という方向と大きさを表しています。
ベクトルの長さは、
$$
|\vec{a}| = \sqrt{3^2+4^2} = 5
$$
です。
つまり、ベクトルには大きく分けて、
- どれくらい長いか
- どちらを向いているか
という2つの情報があります。
内積を理解するときに重要なのは、ベクトルが持つ「長さ」と「向き」、特に「どちらを向いているか」という情報です。
2.ベクトルを「横方向」と「縦方向」に分けてみる
ベクトルが、水平な方向から角度 \(\theta\) だけ傾いているとします。ベクトルの長さを \(r\) とすると、そのベクトルは「横方向の成分」と「縦方向の成分」に分けて考えることができます。
横方向の長さは \(r\cos\theta\) で、縦方向の長さは \(r\sin\theta\) です。つまり、
$$
\vec{a} =
\begin{pmatrix}
r\cos\theta\\
r\sin\theta
\end{pmatrix}
$$
と表せます。
ここで大事なのは、\(\cos\theta\) と \(\sin\theta\) は、ベクトルの向きを「横」と「縦」に分解するために登場しているということです。

3.\(\sin^2\theta+\cos^2\theta=1\) は、どこから出てくる?
ここで、
$$
\sin^2\theta+\cos^2\theta=1
$$
という有名な公式が出てきます。これは、ただ暗記する公式ではありません。
半径 \(r\) の円上にある点を考えてみます。その点の横方向の長さは \(r\cos\theta\) で、縦方向の長さは \(r\sin\theta\) です。
一方、円の半径は \(r\) なので、三平方の定理から、
$$
(r\cos\theta)^2+(r\sin\theta)^2=r^2
$$
となります。両辺を \(r^2\) で割ると、
$$
\cos^2\theta+\sin^2\theta=1
$$
です。
つまり、\(\sin^2\theta+\cos^2\theta=1\) は突然現れた公式ではなく、「長さ \(r\) のベクトルを横と縦に分解しても、元の長さは変わらない」ということを表しています。

ここまで見てきたように、\(\cos\theta\) はベクトルをある方向に分解したときの成分を表しています。この「ある方向への成分を見る」という考え方が、このあと内積にそのままつながります。
4.「角度」から見ると、内積は何を表している?
ここからが本題です。2つのベクトル \(\vec{a},\,\vec{b}\) を考えます。この2つのベクトルの間の角度を \(\theta\) とすると、内積は、
$$
\vec{a}\cdot\vec{b} =|\vec{a}||\vec{b}|\cos\theta
$$
で計算できます。
この式を見ると、「ベクトルの長さを掛けて、さらに \(\cos\theta\) を掛けている」ように見えます。もちろん、この \(\cos\theta\) には意味があります。
\(\cos\theta\) は、2つのベクトルの「向きの近さ」を表す値として見ることができます。
たとえば、\(\theta=0^\circ\) なら \(\cos0^\circ=1\) です。2つのベクトルが同じ方向を向いているので、「向きの一致度」が最大になります。
一方、\(\theta=90^\circ\) なら \(\cos90^\circ=0\) です。2つのベクトルは直角なので、一方の方向から見たとき、もう一方のベクトルの成分は \(0\) になります。
さらに、\(\theta=180^\circ\) なら \(\cos180^\circ=-1\) です。今度は完全に反対方向を向いているため、内積はマイナスになります。

5.「影」から見ると、内積は何を計算している?
ここまでを整理すると、内積の公式
$$
\vec{a}\cdot\vec{b} = |\vec{a}||\vec{b}|\cos\theta
$$
は、少し違った見方ができます。
たとえば、\(\vec{b}\) を \(\vec{a}\) の方向に投影すると、\(|\vec{b}|\cos\theta\) という長さになります。これは、\(\vec{b}\) が \(\vec{a}\) の方向にどれくらい成分を持っているかを表しています。
そこに \(|\vec{a}|\) を掛けると、
$$
|\vec{a}|(|\vec{b}|\cos\theta)
=
|\vec{a}||\vec{b}|\cos\theta
$$
となり、内積になります。
つまり内積は、一方のベクトルをもう一方の方向に投影した「影」を使って、「2つのベクトルの長さ」と「向きの関係」を1つの数値にまとめたものと考えることができます。
6.内積の値を見ると、2つのベクトルの関係が分かる
内積の特徴は、結果の数字を見ることで、2つのベクトルがどのような方向関係にあるのか分かることです。
たとえば、2つのベクトルの角度が \(90^\circ\) 未満なら内積は正になります。角度が \(90^\circ\) より大きいと内積は負になり、直角なら \(\cos\theta=0\) なので \(\vec{a}\cdot\vec{b}=0\) になります。
つまり、
| 角度 | \(\cos\theta\) | 内積の符号 | ベクトルの関係 |
|---|---|---|---|
| \(0^\circ\) | \(1\) | 正 | 同じ方向 |
| \(90^\circ\) | \(0\) | \(0\) | 直角 |
| \(180^\circ\) | \(-1\) | 負 | 反対方向 |
となります。
内積は、単純に「2つのベクトルを掛け算したもの」ではありません。「2つのベクトルが、どれくらい同じ方向を向いているか」を長さも含めて数値化したものと考えると、公式の意味が見えてきます。
7.成分で計算する内積にも同じ意味がある
高校数学では、内積を次のように計算することもあります。
$$
\vec{a}
=
\begin{pmatrix}
a_x\\
a_y
\end{pmatrix},
\quad
\vec{b}
=
\begin{pmatrix}
b_x\\
b_y
\end{pmatrix}
$$
なら、
$$
\vec{a}\cdot\vec{b} = a_xb_x+a_yb_y
$$
です。
一見すると、「さっきの \(\cos\theta\) の公式とは全然違う」ように見えます。しかし、実は同じものを別の方法で計算しています。
ベクトルの長さと角度を使えば、
$$
\vec{a}\cdot\vec{b} = |\vec{a}||\vec{b}|\cos\theta
$$
となり、成分を使えば、
$$
\vec{a}\cdot\vec{b} = a_xb_x+a_yb_y
$$
となります。
つまり、「角度から見た内積」と「成分から見た内積」は、同じ内積を違う方法で表しているわけです。
では、なぜ角度を使った式と、成分同士を掛けて足した式が同じ値になるのでしょうか。次の記事では、余弦定理を使って、この2つの式がつながる理由を詳しく見ていきます。

8.この考え方はAIでも登場する
ここで、前回の記事ともつながってきます。AIでは、文章や画像などの情報をベクトルとして表現することがあります。
たとえば、
$$
\vec{x}
=
\begin{pmatrix}
0.2\\
0.8\\
\vdots
\end{pmatrix}
$$
のようなベクトルです。2つのベクトルの内積を計算すれば、「どちらの方向を向いているか」を数値として扱うことができます。
特に、2つのベクトルをあらかじめ長さ \(1\) の単位ベクトルにすると、\(|\vec{a}|=|\vec{b}|=1\) なので、
$$
\vec{a}\cdot\vec{b} = \cos\theta
$$
となります。
ベクトルの長さを \(1\) にそろえると、内積はそのまま \(\cos\theta\) になります。そのため、ベクトルの向きの近さを表す指標として使うことができます。
これは前回の記事で紹介したコサイン類似度にもつながります。
たとえば、文章や画像などをベクトルで表現するAIでは、学習の結果として、意味や特徴が近い情報のベクトルが近い方向に配置されることがあります。そんな形で、ベクトルの「向き」を使って情報同士の関係を計算できます。

まとめ
今回、見てきたことをまとめます。
- ベクトルは「長さ」と「向き」を持っている
- ベクトルを横と縦に分解すると、\(\cos\theta\) と \(\sin\theta\) が現れる
- \(\sin^2\theta+\cos^2\theta=1\) は三平方の定理から自然に出てくる
- \(\cos\theta\) は、ある方向に対するベクトルの成分を考えるときに登場する
- 内積は「2つのベクトルの長さ」と「向きの関係」をまとめた数値
- 内積は、ベクトルの「影」として考えるとイメージしやすい
- 「角度から見た内積」と「成分から見た内積」は同じものを表している
- この考え方は、AIで使われるベクトルやコサイン類似度にもつながっている
内積の公式
$$
\vec{a}\cdot\vec{b}
=
|\vec{a}||\vec{b}|\cos\theta
$$
だけを見ると、少し無機質な公式に見えます。でも、「ベクトルをある方向から見たとき、どれくらいその方向に成分を持っているのか?」と考えると、\(\cos\theta\) が入っている理由が見えてきます。
「内積=掛け算」ではなく、「内積=方向への投影を含めた計算」です。内積を「ベクトル同士の向きの関係を、1つの数字に変換する計算」と考えると、数学だけでなく、AIや3Dグラフィックスなどで内積が何度も登場する理由も見えてきます。
この感覚を持っておくと、これから線形代数や機械学習を勉強するときにも、内積の公式が少し違って見えてくるはずです。
次の記事では、もう一つの内積の公式 \(a_xb_x+a_yb_y\) に注目して、なぜ内積が「成分同士を掛けて足す」だけで求められるのかを余弦定理から考えていきます。
関連記事


シリーズ全体を理解する
ベクトルや内積の基本から、余弦定理、直線・平面のベクトル方程式まで、各テーマがどのようにつながっているのかを整理したい人は、こちらの記事も参考にしてください。

関連書籍
内積やベクトルについてもう少し深く理解したい人には、ベクトルや線形代数を基礎から解説している本もおすすめです。



コメント