§A2.10内積と図形への応用

最終更新

a⃗,b⃗≠0⃗\vec a,\vec b\ne\vec0の2つの実ベクトルの内積とは、両者のなす角をθ∈[0,π]\theta\in[0,\pi]として次で定義される「スカラー」のことです。

a⃗⋅b⃗=∣a⃗∣ ∣b⃗∣cos⁡θ\vec{a} \cdot \vec{b} = |\vec{a}|\,|\vec{b}|\cos\theta

結果はベクトルではなく数(スカラー)です。内積は「2つの向きがどれだけ揃っているか」を測る量で、揃っているほど大きく、垂直なら00、逆向きなら負になります。

1 成分での計算

成分表示a⃗=(a1,a2)\vec{a} = (a_1, a_2),b⃗=(b1,b2)\vec{b} = (b_1, b_2)なら、内積は対応する成分の積の和という、とても簡単な形になります。

a⃗⋅b⃗=a1b1+a2b2(空間なら +a3b3)\vec{a} \cdot \vec{b} = a_1 b_1 + a_2 b_2 \quad(\text{空間なら } + a_3 b_3)

定義(∣a⃗∣∣b⃗∣cos⁡θ|\vec a||\vec b|\cos\theta)と成分(積和)が一致するので、角度と成分を行き来できます。とくに、両ベクトルが非零なら、なす角はcos⁡θ=a⃗⋅b⃗∣a⃗∣∣b⃗∣\cos\theta = \dfrac{\vec a \cdot \vec b}{|\vec a||\vec b|}で求まります。

2 垂直条件と射影

内積の最重要の使い道が垂直条件です。

両ベクトルが非零なら、a⃗⊥b⃗  ⟺  a⃗⋅b⃗=0(cos⁡90∘=0 だから)\vec{a} \perp \vec{b} \iff \vec{a} \cdot \vec{b} = 0 \qquad(\cos 90^\circ = 0 \text{ だから})

零ベクトルを含める線形代数の定義では、内積が00のとき「直交する」と約束する。角度の説明は非零ベクトルに限る。

垂直を「内積=0=0」という計算に翻訳できるので、図形の直交条件がすべて計算問題になります。またa⃗⋅b⃗=∣a⃗∣×(b⃗ の a⃗ 方向への射影)\vec a \cdot \vec b = |\vec a| \times (\vec b\ \text{の}\ \vec a\ \text{方向への射影})とも読め、内積は符号付き射影を長さ∣a⃗∣|\vec a|倍した量でもあります。下の図でb⃗\vec bの向きを変えると、射影と内積が連動して変わり、垂直で00になります。

閑話休題:「意味の近さ」は、なす角で測られているcos⁡θ=a⃗⋅b⃗∣a⃗∣∣b⃗∣\cos\theta = \dfrac{\vec a \cdot \vec b}{|\vec a||\vec b|}という式は、ベクトルの向きの揃い具合を−1-1から11の数に変換します。この量はコサイン類似度という名前で、現代の情報技術の至るところで働いています。検索エンジンは、文書を「各単語が何回出るか」を並べた数千次元のベクトルにして、質問文ベクトルとのなす角が小さい文書を返す。音楽や動画のおすすめは、あなたの視聴履歴ベクトルと他ユーザーのベクトルのcos⁡θ\cos\thetaが高い相手を探す。図形の「向きが揃っている」が、そのまま「好みが似ている」「話題が近い」の数式になるわけです。

さらに踏み込んだのが言葉の埋め込み(エンベディング)という技術です。大量の文章から、各単語を数百〜数千次元のベクトルとして学習させると、「意味が近い単語ほどなす角が小さい」空間ができあがります。この空間では

v⃗王−v⃗男+v⃗女≈v⃗女王\vec{v}_{\text{王}} - \vec{v}_{\text{男}} + \vec{v}_{\text{女}} \approx \vec{v}_{\text{女王}}

のような意味の演算が近似的に成り立つことが知られています(ベクトルの引き算が「性別の入れ替え」に対応してしまう)。ChatGPT のような言語モデルの内部でも、言葉も文も高次元ベクトルであり、意味の照合は内積の計算です。a1b1+a2b2a_1 b_1 + a_2 b_2という素朴な積和は、いま地球上で最も大量に実行されている数学かもしれません。

例題

条件と何を求めるかを確認してから、式と答えの対応を見比べてください。

実ベクトルを扱う。次の問いに答えよ。

解法の型内積 = 成分の積の和。垂直 ⟺\Longleftrightarrow 内積 = 00

  1. 内積を計算せよ。

    a⃗=(4,−2), b⃗=(3,−3) のときa⃗⋅b⃗\vec{a} = (4, -2),\ \vec{b} = (3, -3)\ \text{のとき}\quad \vec{a} \cdot \vec{b}
  2. 内積を計算せよ。

    a⃗=(−4,−3), b⃗=(2,3) のときa⃗⋅b⃗\vec{a} = (-4, -3),\ \vec{b} = (2, 3)\ \text{のとき}\quad \vec{a} \cdot \vec{b}
  3. 内積を計算せよ。

    a⃗=(−2,−4), b⃗=(−2,−1) のときa⃗⋅b⃗\vec{a} = (-2, -4),\ \vec{b} = (-2, -1)\ \text{のとき}\quad \vec{a} \cdot \vec{b}
  4. ベクトルが垂直になる t を求めよ。

    a⃗=(−3,1), b⃗=(3,−1) のとき、 a⃗⊥(b⃗+ta⃗) となる t\vec{a} = (-3, 1),\ \vec{b} = (3, -1)\ \text{のとき、}\ \vec{a} \perp (\vec{b} + t\vec{a})\ \text{となる}\ t
  5. 内積を計算せよ。

    a⃗=(−2,4), b⃗=(1,−3) のときa⃗⋅b⃗\vec{a} = (-2, 4),\ \vec{b} = (1, -3)\ \text{のとき}\quad \vec{a} \cdot \vec{b}
  6. 内積を計算せよ。

    a⃗=(−1,3), b⃗=(5,−2) のときa⃗⋅b⃗\vec{a} = (-1, 3),\ \vec{b} = (5, -2)\ \text{のとき}\quad \vec{a} \cdot \vec{b}
  7. ベクトルが垂直になる t を求めよ。

    a⃗=(3,3), b⃗=(−3,−9) のとき、 a⃗⊥(b⃗+ta⃗) となる t\vec{a} = (3, 3),\ \vec{b} = (-3, -9)\ \text{のとき、}\ \vec{a} \perp (\vec{b} + t\vec{a})\ \text{となる}\ t
  8. 内積を計算せよ。

    a⃗=(−2,0), b⃗=(−3,−1) のときa⃗⋅b⃗\vec{a} = (-2, 0),\ \vec{b} = (-3, -1)\ \text{のとき}\quad \vec{a} \cdot \vec{b}
  9. 内積を計算せよ。

    a⃗=(−4,2), b⃗=(−1,5) のときa⃗⋅b⃗\vec{a} = (-4, 2),\ \vec{b} = (-1, 5)\ \text{のとき}\quad \vec{a} \cdot \vec{b}
  10. ベクトルが垂直になる t を求めよ。

    a⃗=(−1,3), b⃗=(−4,−8) のとき、 a⃗⊥(b⃗+ta⃗) となる t\vec{a} = (-1, 3),\ \vec{b} = (-4, -8)\ \text{のとき、}\ \vec{a} \perp (\vec{b} + t\vec{a})\ \text{となる}\ t

演習

問題を解いてから「解答・解説」を開けます。

実ベクトルを扱う。次の問いに答えよ。

演習を読み込み中…

前提記事