線形代数 · 第16回 · 動画3 · インタラクティブ教材

垂直になるまで引く:グラム・シュミットの直交化法

I重要な公式

公式 名称 説明
proja(b)=aTbaTa⋅a\text{proj}_{\mathbf{a}}(\mathbf{b}) = \dfrac{\mathbf{a}^T \mathbf{b}}{\mathbf{a}^T \mathbf{a}} \cdot \mathbf{a} ベクトルの射影 b\mathbf{b} が a\mathbf{a} の方向に落とす影
B=b−proja(b)\mathbf{B} = \mathbf{b} - \text{proj}_{\mathbf{a}}(\mathbf{b}) 垂直な残差 b\mathbf{b} のうち a\mathbf{a} に直交する部分
vk⊥=vk−∑j=1k−1(vj⊥)Tvk(vj⊥)Tvj⊥⋅vj⊥\mathbf{v}_k^{\perp} = \mathbf{v}_k - \displaystyle\sum_{j=1}^{k-1} \frac{(\mathbf{v}_j^{\perp})^T \mathbf{v}_k}{(\mathbf{v}_j^{\perp})^T \mathbf{v}_j^{\perp}} \cdot \mathbf{v}_j^{\perp} グラム・シュミットの直交化法(k 番目のステップ) それまでのすべての影を引く
qk=vk⊥∥vk⊥∥\mathbf{q}_k = \dfrac{\mathbf{v}_k^{\perp}}{\lVert \mathbf{v}_k^{\perp} \rVert} 正規化 長さ 1 にそろえる

II可視化1 — 射影と残差

b\mathbf{b} を、a\mathbf{a} の方向に落ちた影と、残り B\mathbf{B} に分けます。残りは a\mathbf{a} に垂直で、それは b\mathbf{b} がどこにあっても変わりません。

この打ち消し合いは、この b\mathbf{b} でたまたま起きたのではなく、構造から来ています。aT(b−projab)=aTb−aTb=0\mathbf{a}^T(\mathbf{b} - \text{proj}_{\mathbf{a}}\mathbf{b}) = \mathbf{a}^T\mathbf{b} - \mathbf{a}^T\mathbf{b} = 0 です。

III可視化2 — ちょうど垂直になる比

倍率 tt を変えて a\mathbf{a} を伸び縮みさせても、残差 b−t a\mathbf{b} - t\,\mathbf{a} が a\mathbf{a} に垂直になるのはただ1つの値だけです。内積が 0 になるのはどこでしょうか?

a⋅(b−t a)=a⋅b−t ∥a∥2\mathbf{a}\cdot(\mathbf{b} - t\,\mathbf{a}) = \mathbf{a}\cdot\mathbf{b} - t\,\lVert\mathbf{a}\rVert^2 は tt の一次式なので、0 になる比はただ1つ、t⋆=a⋅ba⋅at^\star = \dfrac{\mathbf{a}\cdot\mathbf{b}}{\mathbf{a}\cdot\mathbf{a}} です。

IV可視化3 — グラム・シュミット法を一歩ずつ

影を引いてから、長さを整えます。傾いた組 a,b\mathbf{a}, \mathbf{b} が、同じ平面を張る正規直交な組 q1,q2\mathbf{q}_1, \mathbf{q}_2 に変わります。

ステップ1 — 傾いた組
a=(3,1),b=(1,3)\mathbf{a} = (3, 1),\quad \mathbf{b} = (1, 3)
a⋅b=3+3=6≠0\mathbf{a}\cdot\mathbf{b} = 3 + 3 = 6 \ne 0  (角度 ≈53°\approx 53\degree)
ステップ2 — b を a に射影する
a⋅ba⋅a=610=35\dfrac{\mathbf{a}\cdot\mathbf{b}}{\mathbf{a}\cdot\mathbf{a}} = \dfrac{6}{10} = \tfrac{3}{5}
proj=35a=(1.8, 0.6)\text{proj} = \tfrac{3}{5}\mathbf{a} = (1.8,\ 0.6)
ステップ3 — 引いて直交する B を得る
B=b−proj=(1,3)−(1.8,0.6)=(−0.8, 2.4)\mathbf{B} = \mathbf{b} - \text{proj} = (1,3) - (1.8, 0.6) = (-0.8,\ 2.4)
A⋅B=3(−0.8)+1(2.4)=0 ✓\mathbf{A}\cdot\mathbf{B} = 3(-0.8) + 1(2.4) = 0\ \checkmark
ステップ4 — 正規化して正規直交に
q1=A∥A∥=(3,1)10≈(0.95, 0.32)\mathbf{q}_1 = \dfrac{\mathbf{A}}{\lVert\mathbf{A}\rVert} = \dfrac{(3,1)}{\sqrt{10}} \approx (0.95,\ 0.32)
q2=B∥B∥≈(−0.32, 0.95)\mathbf{q}_2 = \dfrac{\mathbf{B}}{\lVert\mathbf{B}\rVert} \approx (-0.32,\ 0.95)
∥q1∥=∥q2∥=1,q1⋅q2=0\lVert\mathbf{q}_1\rVert = \lVert\mathbf{q}_2\rVert = 1,\quad \mathbf{q}_1\cdot\mathbf{q}_2 = 0

2次元では、どちらの基底も平面全体を張ります。本当の効き目が現れるのは高次元です。新しいベクトルはどれも元のベクトルの一次結合のままなので、部分空間はそのまま保たれ、その方向だけが正規直交に変わります。

V確認クイズ

問1

動画の計算例では、a=(1,1,1)\mathbf{a} = (1, 1, 1)、b=(1,0,2)\mathbf{b} = (1, 0, 2) でした。

射影の比 aTbaTa\dfrac{\mathbf{a}^T \mathbf{b}}{\mathbf{a}^T \mathbf{a}} はいくつですか?

✅ 正解です! 内積も長さの二乗もどちらも 3 なので、比は 3/3 = 1 です。

❌ 惜しい! 分子 (a·b) と分母 (a·a) を別々に計算してから、割り算しましょう。

解答を見る

解答:

分子:aTb=1⋅1+1⋅0+1⋅2=1+0+2=3\mathbf{a}^T \mathbf{b} = 1 \cdot 1 + 1 \cdot 0 + 1 \cdot 2 = 1 + 0 + 2 = 3

分母:aTa=12+12+12=1+1+1=3\mathbf{a}^T \mathbf{a} = 1^2 + 1^2 + 1^2 = 1 + 1 + 1 = 3

比:33=1\dfrac{3}{3} = 1

つまり、a\mathbf{a} をちょうど1つ分 b\mathbf{b} から引けば、垂直な残差が得られます。

問2

正しいか誤りか:グラム・シュミットの直交化法を適用した後の新しい直交ベクトルは、元のベクトルとは異なる部分空間を張る。

✅ 正解です! グラム・シュミット法が変えるのは基底だけで、部分空間そのものは保たれます。

❌ 惜しい! 新しいベクトルがそれぞれどう作られるかを考えましょう。いつでも元のベクトルの一次結合になっています。

解答を見る

解答:誤り。

グラム・シュミット法は部分空間を保ちます。新しい直交ベクトルは、どれも元のベクトルの一次結合として作られます。

B=b−aTbaTa⋅a\mathbf{B} = \mathbf{b} - \frac{\mathbf{a}^T \mathbf{b}}{\mathbf{a}^T \mathbf{a}} \cdot \mathbf{a}

B\mathbf{B} は a\mathbf{a} と b\mathbf{b} の一次結合なので、この二つが張る平面の中にあります。a\mathbf{a} と b\mathbf{b} を組み合わせて届く点は、どれも A\mathbf{A} と B\mathbf{B}(あるいは q1\mathbf{q}_1 と q2\mathbf{q}_2)を組み合わせても届きます。

動画でも言っていたとおりです。「平面は動いていません。変わったのは、その中に立てた道しるべだけです。」

問3

動画の例の続きです。A=(1,1,1)\mathbf{A} = (1, 1, 1)、b=(1,0,2)\mathbf{b} = (1, 0, 2) で、射影の比は 11 です。

残差ベクトル B=b−1⋅A\mathbf{B} = \mathbf{b} - 1 \cdot \mathbf{A} はどれですか?

✅ 正解です! 確かめてみると、A · B = 1(0) + 1(−1) + 1(1) = 0 で、垂直です! ✓

❌ 惜しい! 成分ごとに (1, 0, 2) − (1, 1, 1) を計算しましょう。符号に気をつけてください。

解答を見る

解答:

B=b−1⋅A=(1,0,2)−(1,1,1)\mathbf{B} = \mathbf{b} - 1 \cdot \mathbf{A} = (1, 0, 2) - (1, 1, 1)

成分ごとに計算します。

  • 1−1=01 - 1 = 0
  • 0−1=−10 - 1 = -1
  • 2−1=12 - 1 = 1

B=(0,−1,1)\mathbf{B} = (0, -1, 1)

検算:A⋅B=1(0)+1(−1)+1(1)=0−1+1=0✓\mathbf{A} \cdot \mathbf{B} = 1(0) + 1(-1) + 1(1) = 0 - 1 + 1 = 0 \checkmark

内積が 0 なので、A\mathbf{A} と B\mathbf{B} が直交していることが確かめられました。

問4

5本の一次独立なベクトルにグラム・シュミットの直交化法を適用します。5本目のベクトルを直交化するとき、射影の項をいくつ引く必要がありますか?

✅ 正解です! k 本目のベクトルでは、射影を (k − 1) 回引きます。すでに確立した方向一つにつき1回です。

❌ 惜しい! k 本目のベクトルからは、1本目から (k − 1) 本目までのベクトルへの射影を引きます。k = 5 のとき、項はいくつになるでしょうか?

解答を見る

解答:

kk 番目のベクトルに対するグラム・シュミット法の一般公式は次のとおりです。

vk⊥=vk−∑j=1k−1(vj⊥)Tvk(vj⊥)Tvj⊥⋅vj⊥\mathbf{v}_k^{\perp} = \mathbf{v}_k - \sum_{j=1}^{k-1} \frac{(\mathbf{v}_j^{\perp})^T \mathbf{v}_k}{(\mathbf{v}_j^{\perp})^T \mathbf{v}_j^{\perp}} \cdot \mathbf{v}_j^{\perp}

k=5k = 5 のとき、和は j=1j = 1 から j=4j = 4 までなので、引く射影は 4 つです。

パターンは次のとおりです。

ベクトル 引く射影の数
k=1k = 1 0(そのまま受け入れる)
k=2k = 2 1
k=3k = 3 2
k=4k = 4 3
k=5k = 5 4

新しいベクトルは、すでに確立したすべての直交方向について、その方向への影を取り除かなければなりません。

正解数:0 / 4