大学・線形代数・ベクトル・行列

内積空間と直交化の練習問題

内積・ノルム・直交射影を扱い、グラム・シュミットの直交化ができる。

考え方

ベクトルの内積・長さ(ノルム)・直交射影を計算し、グラム・シュミットの方法で互いに直交する基底を作れるようになります。レコメンドの類似度、最小二乗法、信号の成分分解の基本です。

内積 u⋅v\boldsymbol{u} \cdot \boldsymbol{v}
成分どうしの積の和。∣u∣∣v∣cos⁡θ|\boldsymbol{u}||\boldsymbol{v}|\cos\theta に等しく、向きのそろい具合を表す。
ノルム ∣v∣|\boldsymbol{v}|
ベクトルの長さ。∣v∣2=v⋅v|\boldsymbol{v}|^2 = \boldsymbol{v} \cdot \boldsymbol{v}。
正射影(直交射影)
u\boldsymbol{u} の先から v\boldsymbol{v} の直線へ垂直に下ろした「影」のベクトル。
グラム・シュミットの直交化
ベクトルの組から、前のベクトルへの射影を順に引いて、互いに直交する組を作る方法。

内積は u1v1+u2v2+u3v3u_1v_1 + u_2v_2 + u_3v_3 のように成分ごとの積を足したもので、∣u∣∣v∣cos⁡θ|\boldsymbol{u}||\boldsymbol{v}|\cos\theta に等しくなります。向きがそろうほど大きく、直交すると 0、逆向きなら負です。

u\boldsymbol{u} のうち、v\boldsymbol{v} の方向の成分だけを取り出したのが正射影です。影の長さは u⋅v∣v∣\dfrac{\boldsymbol{u} \cdot \boldsymbol{v}}{|\boldsymbol{v}|} で、これに向きを表す v∣v∣\dfrac{\boldsymbol{v}}{|\boldsymbol{v}|} をかけるので、全体では ∣v∣2|\boldsymbol{v}|^2 で割ることになります。

u\boldsymbol{u} から射影を引いた残りは、v\boldsymbol{v} と直交します。これを順にくり返すのがグラム・シュミットの直交化で、最後に各ベクトルを長さ 1 にそろえると、正規直交基底になります。

u = (1, 3) の先から、v = (4, 2) の直線へ垂直に線を下ろした図。原点から垂線の足 (2, 1) までのベクトルが正射影1234123Oxyuv正射影
u=(1,3)\boldsymbol{u} = (1, 3) の先から v=(4,2)\boldsymbol{v} = (4, 2) の直線へ垂直に下ろした足までのベクトル (2,1)(2, 1) が正射影です。u⋅v∣v∣2=1020=12\dfrac{\boldsymbol{u} \cdot \boldsymbol{v}}{|\boldsymbol{v}|^2} = \dfrac{10}{20} = \dfrac{1}{2} なので、v\boldsymbol{v} のちょうど半分になります。

ポイント

u⋅v=u1v1+u2v2+u3v3=∣u∣∣v∣cos⁡θ\boldsymbol{u} \cdot \boldsymbol{v} = u_1v_1 + u_2v_2 + u_3v_3 = |\boldsymbol{u}||\boldsymbol{v}|\cos\theta

v\boldsymbol{v} 方向への正射影: u⋅v∣v∣2v\dfrac{\boldsymbol{u} \cdot \boldsymbol{v}}{|\boldsymbol{v}|^2}\boldsymbol{v}

グラム・シュミット: b1=a1\boldsymbol{b}_1 = \boldsymbol{a}_1、b2=a2−a2⋅b1∣b1∣2b1\boldsymbol{b}_2 = \boldsymbol{a}_2 - \dfrac{\boldsymbol{a}_2 \cdot \boldsymbol{b}_1}{|\boldsymbol{b}_1|^2}\boldsymbol{b}_1

解き方の手順

  1. 内積 u⋅v\boldsymbol{u} \cdot \boldsymbol{v} を、成分ごとの積の和で計算する。
  2. ∣v∣2=v12+v22+v32|\boldsymbol{v}|^2 = v_1^2 + v_2^2 + v_3^2 を計算する(平方根はとらない)。
  3. 係数 u⋅v∣v∣2\dfrac{\boldsymbol{u} \cdot \boldsymbol{v}}{|\boldsymbol{v}|^2} を v\boldsymbol{v} の各成分にかける(分数は約分する)。
  4. 確かめ: u\boldsymbol{u} から射影を引いたベクトルと v\boldsymbol{v} の内積が 0 になる。

例

u=(2,3,−1)\boldsymbol{u} = (2, 3, -1) の、v=(1,2,2)\boldsymbol{v} = (1, 2, 2) 方向への正射影ベクトルを求めてください。

  1. 内積: u⋅v=2⋅1+3⋅2+(−1)⋅2=6\boldsymbol{u} \cdot \boldsymbol{v} = 2 \cdot 1 + 3 \cdot 2 + (-1) \cdot 2 = 6
  2. ∣v∣2=12+22+22=9|\boldsymbol{v}|^2 = 1^2 + 2^2 + 2^2 = 9
  3. 正射影 =69(1,2,2)=(23,43,43)= \dfrac{6}{9}(1, 2, 2) = \left(\dfrac{2}{3}, \dfrac{4}{3}, \dfrac{4}{3}\right)
  4. 確かめ: u\boldsymbol{u} から引くと (43,53,−73)\left(\dfrac{4}{3}, \dfrac{5}{3}, -\dfrac{7}{3}\right) で、v\boldsymbol{v} との内積は 4+10−143=0\dfrac{4 + 10 - 14}{3} = 0

よくある間違い

練習問題でこの間違い方をしたときは、その場でお伝えします。

  • 正射影で |v| を2乗し忘れる正射影ベクトルを (u·v / |v|) v とし、|v|² で割るところを |v| で割ってしまう。正射影は (u·v / |v|²) v です。|v| ではなく |v|² で割ります。

見る

計算例

レコメンドでは、ユーザーの好みをベクトルで表します。ある方向(たとえば「アクション映画好き」の方向)にどれだけ寄っているかを取り出すのに、直交射影を使います。

問いu=(−3,−1,2)\boldsymbol{u} = \left(-3, -1, 2\right) の、v=(−2,3,−2)\boldsymbol{v} = \left(-2, 3, -2\right) 方向への正射影ベクトルを求めてください。

途中の式

  1. v\boldsymbol{v} 方向への正射影: u⋅v∣v∣2v\dfrac{\boldsymbol{u}\cdot\boldsymbol{v}}{|\boldsymbol{v}|^2}\boldsymbol{v}
  2. u⋅v=(−3)⋅(−2)+(−1)⋅3+2⋅(−2)=−1\boldsymbol{u}\cdot\boldsymbol{v} = (-3)\cdot (-2) + (-1)\cdot 3 + 2\cdot (-2) = -1
  3. ∣v∣2=(−2)2+32+(−2)2=17|\boldsymbol{v}|^2 = (-2)^2 + 3^2 + (-2)^2 = 17
  4. 正射影 =−117(−2,3,−2)=(217,−317,217)= -\frac{1}{17}\left(-2, 3, -2\right) = \left(\frac{2}{17}, -\frac{3}{17}, \frac{2}{17}\right)
  5. 確かめ: u\boldsymbol{u} から正射影を引いたベクトルは v\boldsymbol{v} と直交します(内積が 0)。

答え正射影ベクトル(例: (1, 2, 3)、分数は 1/2 のように)は (217,−317,217)\left(\frac{2}{17}, -\frac{3}{17}, \frac{2}{17}\right)

一緒にやる

小さく分けて、一緒に解く

1つずつ答えを確かめながら進みます。間違えても大丈夫です。

レコメンドでは、ユーザーの好みをベクトルで表します。ある方向(たとえば「アクション映画好き」の方向)にどれだけ寄っているかを取り出すのに、直交射影を使います。

u=(5,−2,0)\boldsymbol{u} = \left(5, -2, 0\right) の、v=(3,1,2)\boldsymbol{v} = \left(3, 1, 2\right) 方向への正射影ベクトルを求めてください。

小さな問いに分けて、1つずつ一緒に進めます。

ステップ 1 / 3

内積 u⋅v\boldsymbol{u}\cdot\boldsymbol{v} は?

自分でやる

練習問題

数字は毎回変わります。2〜3問続けて解けたら、次の単元や元のレッスンに進みましょう。

問題を準備しています…

学び直しマップ

前後の単元

分からないところがあったら前提まで戻り、分かったら使う先へ進みましょう。

学び直しマップで、この単元のまわりを見る