グラムシュミットの直交化法の意味と具体例

nn 本の線形独立なベクトル a1,a2,,ana_1,a_2,\cdots,a_n を「用いて」正規直交基底を作る方法として,グラムシュミット(Gram–Schmidt)の正規直交化法がある。

グラムシュミットの正規直交化法

一般の nn 次元ベクトル空間で通用する話ですが,ここでは高校生でも馴染みのある空間ベクトル(n=3n=3 の場合)で説明します。三次元の場合をしっかり理解すれば一般の場合の理解も容易です。

目標

今持っている線形独立な三本の空間ベクトル a1,a2,a3a_1,a_2,a_3 を「用いて」正規直交基底 u1,u2,u3u_1,u_2,u_3 を作りたい。

  • 線形独立とはこの場合,原点 OO と位置ベクトルが a1,a2,a3a_1,a_2,a_3 で表される点(合計4点)が一般の位置にある,つまり同一平面上にないことを表します。より厳密には →ベクトルの一次独立,一次従属の定義と意味
  • 正規直交とは,それぞれが長さ1で,互いに直交するという意味です。
  • ここで言う「用いて」とは,以下のように表すことを意味します。
    • u1u_1a1a_1 の線形結合(定数倍)
    • u2u_2a1,a2a_1,a_2 の線形結合(定数倍の和)
    • u3u_3a1,a2,a3a_1,a_2,a_3 の線形結合(定数倍の和)

直交化の方法

ベクトル aa の長さを a|a|aauu の内積を aua\cdot u と書きます。

グラムシュミットの直交化法(三次元)

STEP1: u1=a1a1u_1=\dfrac{a_1}{|a_1|}

STEP2: v2=a2(a2u1)u1v_2=a_2-(a_2\cdot u_1)u_1u2=v2v2u_2=\dfrac{v_2}{|v_2|}

STEP3: v3=a3(a3u1)u1(a3u2)u2v_3=a_3-(a_3\cdot u_1)u_1-(a_3\cdot u_2)u_2u3=v3v3u_3=\dfrac{v_3}{|v_3|}

a1,a2,a3a_1,a_2,a_3 をもとに u1,v2,u2,v3,u3u_1,v_2,u_2,v_3,u_3 の順に計算していきます。u1,u2,u3u_1,u_2,u_3 が目標の正規直交基底です!

注: nn 次元の場合はSTEP nn まで続きます。 kk ステップ目は vk=aki=1k1(akui)uiv_k=a_k-\displaystyle\sum_{i=1}^{k-1}(a_k\cdot u_i)u_iuk=vkvku_k=\dfrac{v_k}{|v_k|} です。

意味

  • vkv_k から uku_k を計算する部分は正規化(長さを1にする)という意味があり分かりやすいです。なお,正規化の操作を省き「直交化」のみ行うこともできます。
  • aka_k から vkv_k を計算する部分(直交化)は,aka_k から u1,u2,,uk1u_1,u_2,\cdots,u_{k-1} 方向の成分を順に除く操作をしていると見ることができます。→正射影ベクトルの公式の証明と使い方を知っていると理解しやすいです。

正規直交基底であることの証明

グラムシュミットの直交化法がうまくいっていることを証明します。

証明

・正規性(長さが1であること)

各ステップの後半の式で正規化している(vv\dfrac{v}{|v|} というタイプのベクトルの長さは1である)のでOK。

・直交性

実際に計算する。 u1u2=1v2u1v2=1v2(a2u1(a2u1)u12)=0\begin{aligned} &u_1\cdot u_2\\ &= \dfrac{1}{|v_2|}u_1\cdot v_2\\ &= \dfrac{1}{|v_2|} (a_2\cdot u_1-(a_2\cdot u_1)|u_1|^2)\\ & =0 \end{aligned}

より u1u_1u2u_2 は直交する。 u2u3=0,u3u1=0u_2\cdot u_3=0,u_3\cdot u_1=0 も同様に示せる。

a1,a2,a3a_1,a_2,a_3 を「用いて」いること

  • u1u_1a1a_1 の定数倍
  • u2u_2 は「a2a_2u1u_1 の定数倍の和」つまり a1a_1a2a_2 の線形結合で表せる
  • u3u_3 は「a3a_3u1u_1u2u_2 の定数倍の和」つまり a1a_1a2a_2a3a_3 の線形結合で表せる

具体例

例題

a1=(1,1,1),a2=(1,1,2),a3=(1,1,3)a_1=(1,1,1),a_2=(1,-1,2),a_3=(-1,1,3) にグラムシュミットの直交化を適用せよ。

解答

STEP1:

a1=3|a_1|=\sqrt{3} より u1=13(1,1,1)u_1=\dfrac{1}{\sqrt{3}}(1,1,1)

STEP2:

v2=a2(a2u1)u1=a223u1=13(1,5,4)\begin{aligned} v_2 &= a_2-(a_2\cdot u_1)u_1\\ &= a_2-\dfrac{2}{\sqrt{3}}u_1\\ &= \dfrac{1}{3} (1,-5,4) \end{aligned}

より u2=142(1,5,4)u_2=\dfrac{1}{\sqrt{42}}(1,-5,4)

STEP3:

v3=a3(a3u1)u1(a3u2)u2=a33u1642u2=(1,1,3)(1,1,1)642(1,5,4)=57(3,1,2)\begin{aligned} v_3 &= a_3-(a_3\cdot u_1)u_1-(a_3\cdot u_2)u_2\\ &= a_3-\sqrt{3}u_1-\dfrac{6}{\sqrt{42}}u_2\\ &= (-1,1,3)-(1,1,1)-\dfrac{6}{42} (1,-5,4)\\ &=\dfrac{5}{7} (-3,1,2) \end{aligned}

より u3=114(3,1,2)u_3=\dfrac{1}{\sqrt{14}}(-3,1,2)

応用例

最後に,直交化することを応用する記事をいくつか紹介します。

こんなことして何が嬉しいのか?と思いたくなりますが,例えば行列のQR分解というものに使います!