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

最終更新

二つの零でないベクトルを同じ始点に置くと、二つの向きがなす角を考えることができます。たとえば、一方の向きを固定して他方の向きを変えると、直角をなす場合や、互いに逆向きになる場合が現れます。向きの関係を成分の計算で調べるには、角と成分を結び付ける演算が必要です。

内積は、二つのベクトルの成分から計算される実数であり、長さとなす角によっても表されます。図形の角や直交の関係を座標で扱う際に、内積が基本的な役割を果たします。本記事では、内積の二つの表し方を結び付け、図形への応用を説明します。

1 成分による内積

定義 1.1 (内積). 実成分の平面ベクトルa⃗=(a1,a2)\vec a=(a_1,a_2)、b⃗=(b1,b2)\vec b=(b_1,b_2)の 内積 (inner product) を

a⃗⋅b⃗=a1b1+a2b2\vec a\cdot\vec b=a_1b_1+a_2b_2

で定める。空間ベクトルa⃗=(a1,a2,a3)\vec a=(a_1,a_2,a_3)、b⃗=(b1,b2,b3)\vec b=(b_1,b_2,b_3)では

a⃗⋅b⃗=a1b1+a2b2+a3b3\vec a\cdot\vec b=a_1b_1+a_2b_2+a_3b_3

で定める。内積の値は実数であり、どちらかのベクトルが零なら00である。

2 長さとなす角による表示

定理 2.1. 平面または空間の非零ベクトルa⃗,b⃗\vec a,\vec bがなす角をθ∈[0,π]\theta\in[0,\pi]とすると

a⃗⋅b⃗=∣a⃗∣∣b⃗∣cos⁡θ.\vec a\cdot\vec b=|\vec a||\vec b|\cos\theta.

したがって、内積を長さと角による右辺で定義しても、成分による定義と一致する。

証明. 二つのベクトルを同じ始点O\mathrm Oに置き、終点をA,B\mathrm A,\mathrm Bとする。成分の差の平方を展開すると、平面でも空間でも

∣a⃗−b⃗∣2=∣a⃗∣2+∣b⃗∣2−2a⃗⋅b⃗|\vec a-\vec b|^2=|\vec a|^2+|\vec b|^2-2\vec a\cdot\vec b

となる。二つのベクトルが平行でない場合、O,A,B\mathrm O,\mathrm A,\mathrm Bが定める平面上の三角形に余弦定理§A2.1 定理 3.2を用いると

∣a⃗−b⃗∣2=∣a⃗∣2+∣b⃗∣2−2∣a⃗∣∣b⃗∣cos⁡θ|\vec a-\vec b|^2=|\vec a|^2+|\vec b|^2-2|\vec a||\vec b|\cos\theta

を得る。空間の場合にも、この平面上での辺の長さは空間の成分で計算した長さと同じである。二つの等式を比較すると角による表示を得る。平行な場合にはb⃗=ta⃗\vec b=t\vec a(t≠0t\ne0)と書く。a⃗⋅b⃗=t∣a⃗∣2\vec a\cdot\vec b=t|\vec a|^2であり、∣b⃗∣=∣t∣∣a⃗∣|\vec b|=|t||\vec a|である。t>0t>0ならθ=0\theta=0、t<0t<0ならθ=π\theta=\piなので、どちらの場合も角による表示が成り立つ。▨

非零ベクトルのなす角を成分から求めるには、次の式を使います。

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

3 垂直条件と射影

定義 3.1 (直交). 平面または空間のベクトルa⃗,b⃗\vec a,\vec bが 直交 (orthogonality) するとは、a⃗⋅b⃗=0\vec a\cdot\vec b=0であることをいう。零ベクトルはすべてのベクトルに直交する。両ベクトルが非零なら、直交はなす角がπ/2\pi/2であることと同値である。

非零の場合の同値性は、角の式と、[0,π][0,\pi]の範囲ではcos⁡θ=0\cos\theta=0がθ=π/2\theta=\pi/2に限ることから従います。

定義 3.2 (符号付き射影の長さ). 平面または空間のベクトルa⃗≠0⃗\vec a\ne\vec0とb⃗\vec bを同じ始点O\mathrm Oに置き、b⃗\vec bの終点をB\mathrm Bとする。O\mathrm Oを通りa⃗\vec aの方向に延びる直線へ、B\mathrm Bから下ろした垂線の足をH\mathrm Hとする。H\mathrm HがO\mathrm Oからa⃗\vec aと同じ向きにあるときはOH\mathrm{OH}、逆向きにあるときは−OH-\mathrm{OH}、H=O\mathrm H=\mathrm Oのときは00を、b⃗\vec bのa⃗\vec a方向への 符号付き射影の長さ (signed projection length) と呼ぶ。

公式 3.3. 平面または空間のベクトルa⃗≠0⃗\vec a\ne\vec0を基準の向きとすると、b⃗\vec bのa⃗\vec a方向への符号付き射影の長さは

p=a⃗⋅b⃗∣a⃗∣.p=\frac{\vec a\cdot\vec b}{|\vec a|}.

b⃗≠0⃗\vec b\ne\vec0ならp=∣b⃗∣cos⁡θp=|\vec b|\cos\thetaであり、b⃗=0⃗\vec b=\vec0ならp=0p=0である。

証明.b⃗≠0⃗\vec b\ne\vec0のとき、a⃗\vec aとb⃗\vec bのなす角をθ∈[0,π]\theta\in[0,\pi]とする。余弦の定義と射影の符号からp=∣b⃗∣cos⁡θp=|\vec b|\cos\thetaである。平行な場合にも、θ=0,π\theta=0,\piを代入すれば同じ式が成り立つ。定理 2.1の等式を∣a⃗∣>0|\vec a|>0で割ると公式を得る。b⃗=0⃗\vec b=\vec0のときは垂線の足が始点に一致するのでp=0p=0であり、成分による内積も00である。▨

下の図では、射影の符号付きの長さが緑点のxx座標となり、その値の55倍が内積です。

例 3.4.a⃗=(3,0)\vec a=(3,0)、b⃗=(−2,2)\vec b=(-2,2)では、a⃗⋅b⃗=−6\vec a\cdot\vec b=-6、∣a⃗∣=3|\vec a|=3、∣b⃗∣=22|\vec b|=2\sqrt2である。したがって

cos⁡θ=−63⋅22=−12,θ=3π4,p=−63=−2.\cos\theta=\frac{-6}{3\cdot2\sqrt2}=-\frac1{\sqrt2},\qquad \theta=\frac{3\pi}{4},\qquad p=\frac{-6}{3}=-2.

射影はa⃗\vec aと逆向きなので符号が負となる。一方、c⃗=(0,2)\vec c=(0,2)に対してはa⃗⋅c⃗=0\vec a\cdot\vec c=0であり、両ベクトルは直交する。

問題 3.5. 座標平面上の点A=(1,2)\mathrm A=(1,2)、B=(2,4)\mathrm B=(2,4)、P=(3,0)\mathrm P=(3,0)をとる。点P\mathrm Pから直線AB\mathrm{AB}に下ろした垂線の足をH\mathrm Hとする。AP→\overrightarrow{\mathrm{AP}}のAB→\overrightarrow{\mathrm{AB}}方向への符号付き射影の長さ、点H\mathrm Hの座標、距離PH\mathrm{PH}を求め、点H\mathrm Hが線分AB\mathrm{AB}のどちら側にあるかを述べよ。

解答.

a⃗=AB→=(1,2)\vec a=\overrightarrow{\mathrm{AB}}=(1,2)、b⃗=AP→=(2,−2)\vec b=\overrightarrow{\mathrm{AP}}=(2,-2)とおく。a⃗⋅b⃗=−2\vec a\cdot\vec b=-2、∣a⃗∣=5|\vec a|=\sqrt5なので、公式 3.3により、符号付き射影の長さは

p=−25p=-\frac2{\sqrt5}

である。a⃗/∣a⃗∣\vec a/|\vec a|は直線AB\mathrm{AB}の正の向きを表す単位ベクトルだから、

AH→=pa⃗∣a⃗∣=−25(1,2).\overrightarrow{\mathrm{AH}} =p\frac{\vec a}{|\vec a|} =-\frac25(1,2).

したがって

H=(35,65),HP→=(125,−65),PH=65.\mathrm H=\left(\frac35,\frac65\right),\qquad \overrightarrow{\mathrm{HP}}=\left(\frac{12}5,-\frac65\right),\qquad \mathrm{PH}=\frac6{\sqrt5}.

実際、HP→⋅a⃗=12/5−12/5=0\overrightarrow{\mathrm{HP}}\cdot\vec a=12/5-12/5=0なので、求めた点は垂線の足である。AH→=−(2/5)AB→\overrightarrow{\mathrm{AH}}=-(2/5)\overrightarrow{\mathrm{AB}}であるから、点H\mathrm Hは点A\mathrm A側の延長上にある。射影の長さが負となることは、点H\mathrm Hが点A\mathrm AからAB→\overrightarrow{\mathrm{AB}}と逆向きにあることに対応する。▨

注意 3.6. 非零ベクトルの内積が負なら、なす角の範囲はπ/2<θ≤π\pi/2<\theta\le\piであり、逆向きの平角も含む。角を求める際には、長さの積で割った余弦の値を用いる。三次元の外積は二つのベクトルからベクトルを作る別の演算である。図形の条件を成分の式に直す場合には、直交を内積00として表し、線分上の点を位置ベクトルの内分式で表すなど、条件ごとに対応する式を用いる。

閑話休題:コサイン類似度と埋め込み 非零ベクトルに対するa⃗⋅b⃗/(∣a⃗∣∣b⃗∣)\vec a\cdot\vec b/(|\vec a||\vec b|)は、−1-1から11の値をとり、コサイン類似度と呼ばれます。三成分より多い場合にも、対応する成分の積を足す内積と、平方和の平方根である長さを用いて同じ比を定めます。文書を単語の出現回数のベクトルで表す検索モデルでは、質問文と文書のコサイン類似度を比較します。視聴履歴をベクトルで表す推薦モデルでも、ユーザー間の類似度の指標として用いることができます。

言葉の埋め込みは、学習によって単語などを多成分のベクトルとして表す方法です。学習した表示によっては、意味の近い語のコサイン類似度が高くなるほか、

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

のように、語の関係がベクトルの差と和によって近似的に表される場合があります。この近似の精度は、学習データとベクトルの作り方に依存します。言語モデルでも語などを多成分のベクトルで表し、内積はベクトル間の関係を計算する演算の一つとして用いられます。

例題

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

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

解法の型内積 = 成分の積の和。垂直 ⟺\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

演習

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

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

演習を読み込み中…

前提記事