(グラム)シュミットの直交化法 の履歴(No.20)

更新


目次

線形代数I

シュミットの直交化:概要

「シュミットの直交化法とは、 与えられた一次独立なベクトル \bm{a}_1,\bm{a}_2,\cdots,\bm{a}_n から、 正規直交系 \bm{e}_1,\bm{e}_2,\cdots,\bm{e}_n を作る方法である」

とだけ、大抵の教科書には書かれているが、実はそれ以外に次の条件も重要。

「ただし、任意の k ( 1\leqq k \leqq n ) について \bm{e}_k \bm{a}_1,\bm{a}_2,\cdots,\bm{a}_k の一次結合で表せるものとする」

つまり、

を満たす \bm{e}_1,\bm{e}_2,\dots,\bm{e}_n を見つけることがここでの課題。 見方を変えれば、

「任意の k ( 1\leqq k \leqq n ) に対して \bm{e}_1,\bm{e}_2,\cdots,\bm{e}_k は すべて \bm{a}_1,\bm{a}_2,\cdots,\bm{a}_k の一次結合であり、なおかつ正規直交系をなす」

線形空間について学んだ学生であれば、

「任意の k ( 1\leqq k \leqq n ) に対して \bm{e}_1,\bm{e}_2,\cdots,\bm{e}_k \bm{a}_1,\bm{a}_2,\cdots,\bm{a}_k の張る空間に取った正規直交基底になっている」

と書いた方がピンとくるかもしれない。

(グラム)シュミットの直交化法の手順

以下は実ベクトルを対象にした記述になっている。
後ろの方に複素ベクトルに関して追記があるのでそちらも参照のこと。

まず \bm{e}_1 について、 \bm{e}_1=k_{11}\bm{a}_1 かつ |\bm{e}_1|=1 より

    (1)   \bm{e}_1=\frac{1}{|\bm{a}_1|}\bm{a}_1

\bm{e}_2 \bm{a}_1,\bm{a}_2 の一次結合であるが、 すなわち、 \bm{e}_1, \bm{a}_2 の一次結合と言っても良い ( \bm{a}_1,\bm{a}_2 の一次結合で表せるベクトルの集合と、 \bm{e}_1,\bm{a}_2 の一次結合で表せるベクトルの集合とが 等しいことに注意せよ*2「一次結合で表せるベクトルの集合」は、本来「張る空間」と書くべきだが、カリキュラム上まだ扱っていないためこのような書き方を用いている)。

そこで、 \bm{e}_1,\bm{a}_2 の一次結合のうち、 \bm{e}_1 と直交するベクトル \bm{f}_2 を求めよう。

\bm{f}_2=\bm{a}_2-k_{21}\bm{e}_1 と書いて (\bm{f}_2,\bm{e}_1)=0 に代入すると、

    (\bm{f}_2,\bm{e}_1)=(\bm{a}_2,\bm{e}_1)-k_{21}=0 より k_{21}=(\bm{a}_2,\bm{e}_1)

すなわち、

    (2-1)   \bm{f}_2=\bm{a}_2-(\bm{a}_2,\bm{e}_1)\bm{e}_1

とすれば、 \bm{f}_2 \bm{e}_1,\bm{a}_2 の一次結合であり、 しかも \bm{e}_1 に直交する。これを、

    (2-2)   \bm{e}_2=\frac{1}{|\bm{f}_2|}\bm{f}_2

として正規化すれば、 (\bm{e}_2,\bm{e}_1)=0 かつ |\bm{e}_2|=1 の条件を満たすことができる。

同様に \bm{e}_3 \bm{a}_1,\bm{a}_2,\bm{a}_3 の一次結合であるが、 \bm{e}_1,\bm{e}_2,\bm{a}_3 の一次結合と言っても良い。 そこでまず、 \bm{e}_1,\bm{e}_2,\bm{a}_3 の一次結合で \bm{e}_1,\bm{e}_2 と直交するものを求める。 \bm{f}_3=\bm{a}_3-k_{31}\bm{e}_1-k_{32}\bm{e}_2 (\bm{f}_3,\bm{e}_1)=(\bm{f}_3,\bm{e}_2)=0 に代入すると、

    (\bm{f}_3,\bm{e}_1)=(\bm{a}_3,\bm{e}_1)-k_{31}=0 より k_{31}=(\bm{a}_3,\bm{e}_1)
    (\bm{f}_3,\bm{e}_2)=(\bm{a}_3,\bm{e}_2)-k_{32}=0 より k_{32}=(\bm{a}_3,\bm{e}_2)

となって、

    (3-1)   \bm{f}_3=\bm{a}_3-(\bm{a}_3,\bm{e}_1)\bm{e}_1-(\bm{a}_3,\bm{e}_2)\bm{e}_2

と求まり、

    (3-2)   \bm{e}_3=\frac{1}{|\bm{f}_3|}\bm{f}_3

と正規化すれば条件を満たす。

以下同様に \bm{e}_1,\bm{e}_2,\cdots,\bm{e}_{k-1} \bm{a}_k を使って \bm{e}_k を求めるには、

    (k-1)   \bm{f}_k=\bm{a}_k-(\bm{a}_k,\bm{e}_1)\bm{e}_1-(\bm{a}_k,\bm{e}_2)\bm{e}_2-\cdots-(\bm{a}_k,\bm{e}_{k-1})\bm{e}_{k-1}

すなわち、

    (k-1)   \bm{f}_k=\bm{a}_k-\sum_{i=1}^{k-1}(\bm{a}_k,\bm{e}_i)\bm{e}_i

として、 \bm{e}_1,\bm{e}_2,\cdots,\bm{e}_{k-1} と直交するベクトル \bm{f}_k を求め、

    (k-2)   \bm{e}_k=\frac{1}{|\bm{f}_k|}\bm{f}_k

として正規化すればよい。

(1) と (k-1), (k-2) に表された方法を用いて \bm{a}_1,\bm{a}_2,\cdots,\bm{a}_n から、正規直交系 \bm{e}_1,\bm{e}_2,\cdots,\bm{e}_n を作る方法を 「シュミットの直交化」あるいは「グラム・シュミットの直交化法」と呼ぶ。

例題

次のベクトルをグラムシュミットの直交化法を用いて直交化せよ

    \bm{a}_1=\begin{pmatrix}1\\1\\0\end{pmatrix},\bm{a}_2=\begin{pmatrix}0\\-1\\1\end{pmatrix},\bm{a}_3=\begin{pmatrix}1\\1\\1\end{pmatrix}

解答

    \bm{e}_1=\frac{1}{|\bm{a}_1|}\bm{a}_1=\frac{1}{\sqrt{1^2+1^2+0^2}}\begin{pmatrix}1\\1\\0\end{pmatrix}=\begin{pmatrix}1/\sqrt{2}\\1/\sqrt{2}\\0\end{pmatrix}

    \bm{f}_2=\bm{a}_2-(\bm{a}_2,\bm{e}_1)\bm{e}_1=\begin{pmatrix}0\\-1\\1\end{pmatrix}-(0-1/\sqrt{2}+0)\begin{pmatrix}1/\sqrt{2}\\1/\sqrt{2}\\0\end{pmatrix}=\begin{pmatrix}1/2\\-1/2\\1\end{pmatrix}

\bm{f}_2 \bm{f}_2^\prime = \begin{pmatrix}1\\-1\\2\end{pmatrix} と平行であることを(頭の中で)使って、

    \bm{e}_2=\frac{1}{|\bm{f}_2|}\bm{f}_2\left(=\frac{1}{|\bm{f}_2^\prime|}\bm{f}_2^\prime\right)=\frac{1}{\sqrt{1^2+(-1)^2+2^2}}\begin{pmatrix}1\\-1\\2\end{pmatrix}=\begin{pmatrix}1/\sqrt{6}\\-1/\sqrt{6}\\2/\sqrt{6}\end{pmatrix}

    \begin{split}\bm{f}_3&=\bm{a}_3-(\bm{a}_3,\bm{e}_1)\bm{e}_1-(\bm{a}_3,\bm{e}_2)\bm{e}_2 \\ &\begin{split}=\begin{pmatrix}1\\1\\1\end{pmatrix}&-(1/\sqrt{2}+1/\sqrt{2}+0)\begin{pmatrix}1/\sqrt{2}\\1/\sqrt{2}\\0\end{pmatrix}\\&-(1/\sqrt{6}-1/\sqrt{6}+2/\sqrt{6})\begin{pmatrix}1/\sqrt{6}\\-1/\sqrt{6}\\2/\sqrt{6}\end{pmatrix}\end{split} \\ &=\begin{pmatrix}1\\1\\1\end{pmatrix}-\begin{pmatrix}1\\1\\0\end{pmatrix}-\begin{pmatrix}1/3\\-1/3\\2/3\end{pmatrix}=\begin{pmatrix}-1/3\\1/3\\1/3\end{pmatrix}\end{split}

    \bm{e}_3=\frac{1}{|\bm{f}_3|}\bm{f}_3=\begin{pmatrix}-1/\sqrt{3}\\1/\sqrt{3}\\1/\sqrt{3}\end{pmatrix}

したがって、 \bm{e}_1=\begin{pmatrix}1/\sqrt{2}\\1/\sqrt{2}\\0\end{pmatrix} , \bm{e}_2=\begin{pmatrix}1/\sqrt{6}\\-1/\sqrt{6}\\2/\sqrt{6}\end{pmatrix} , \bm{e}_3=\begin{pmatrix}-1/\sqrt{3}\\1/\sqrt{3}\\1/\sqrt{3}\end{pmatrix}

検算

    |\bm{e}_1|=|\bm{e}_2|=|\bm{e}_3|=1

    (\bm{e}_1,\bm{e}_2)=(\bm{e}_2,\bm{e}_3)=(\bm{e}_3,\bm{e}_1)=0

すなわち、任意の i,j\in \{1,2,3\} に対して、

    (\bm{e}_i,\bm{e}_j)=\delta_{ij}     (正規直交化条件)

が成り立つことを容易に確かめられる。

発展:複素内積の場合

複素内積では、内積の値が掛ける順序に依存するため注意が必要である。

  (\bm b,\bm a)\ne(\bm a,\bm b)

具体的には、順序を入れ替えた値は元の値の複素共役になる。

  (\bm b,\bm a)=\overline{(\bm a,\bm b)}

さらにややこしいことに、複素内積の定義には2つの異なった方法がある。

  1. (k\bm x,\bm y)=k(\bm x,\bm y) となる定義 → (\bm x,k\bm y)=\overline{k}(\bm x,\bm y)
  2. (\bm x,k\bm y)=k(\bm x,\bm y) となる定義 → (k\bm x,\bm y)=\overline{k}(\bm x,\bm y)

1. が一般的だが、量子力学のブラケット記法との整合性を重視して 2. の定義を採用する教科書もある。 (本学類の線形代数IIでも 2. を内積の公理として採用している)

前者の定義を採用した場合には上に書いたのと同じ方法を複素ベクトルについても適用できるが、

 (k-1)   \bm{f}_k=\bm{a}_k-(\bm{a}_k,\bm{e}_1)\bm{e}_1-(\bm{a}_k,\bm{e}_2)\bm{e}_2-\cdots-(\bm{a}_k,\bm{e}_{k-1})\bm{e}_{k-1}

後者の定義を採用した場合には、

 (k-1)'  \bm{f}_k=\bm{a}_k-(\bm{e}_1,\bm{a}_k)\bm{e}_1-(\bm{e}_2,\bm{a}_k)\bm{e}_2-\cdots-(\bm{e}_{k-1},\bm{a}_k)\bm{e}_{k-1}

とする必要がある。(内積の順序が変わっていることに注意)

想定する内積の定義がどちらの性質を持つかに注意して、適切な方を選んで使うこと。

コメント




無題

ほげげ ()

シュミットの直交化法は「与えられたベクトル{a1, ... , an}から(その一次結合によって)正規直交系{e1 , ... , en}を作る方法」なわけだから「ekは{a1, ... , an}の一次結合で表せるものとする」という条件は全く意味のない条件です。
それよりも{a1, ... , an}が一次独立であることが前提としてなくてはならない。

  • 与えられた一次独立な{a1, ... , an}から正規直交系を作る方法は無数にある中で、シュミットの直交化が選んだ方針を理解するには「ekは{a1, ... , an}の一次結合で表せるものとする」という条件が助けになると考え、このように記載しています。{a1, ... , an}が一次独立であるというのはおっしゃる通り重要な条件ですので、冒頭に追加しました。ご指摘ありがとうございます。 -- 武内 (管理人)

無題

()

頭の中で平行を考えるとあるのですがどのような考え方でしょうか?

  • 生真面目に \bm f_2 を正規化しようと |\bm f_2|=\sqrt{3/2} を求めて割り算するのは大変ですが、それと平行な (1,-1,2) を正規化するなら暗算でできますのでこのように書いたのでした。「正規化」は与えられたベクトルと平行で、長さが1のベクトルを求める作業であることに注意して下さい。 -- 武内 (管理人)

無題

()

省略多すぎて意味がわからん

無題

()

f2=a2-k21・e1と書けるのはなぜですか?

  • \bm{e}_1,\bm{a}_2 の一次結合」は一般的には \alpha\bm{e}_1+\beta\bm{a}_2 ですが、 \beta=0 では \bm e_1 に垂直にならないので、ここでは \beta\ne 0 でなければなりません。すると、全体に 1/\beta を掛けることで、 (\alpha/\beta)\bm{e}_1+\bm{a}_2 となって、この \alpha/\beta の部分を -k_{21} と書いたのがこの形になります。 -- 武内 (管理人)
  • ここの部分が自分も理解できなくてサイトを転々としていました。感謝! -- 通りすがりのマグロ大学

無題

take ()

分かりやすすぎて感動

感謝

suwa ()

丁寧に書かれており、大変勉強になりました。
ありがとうございます。

参考になりました。

[murata] (2013-09-30 (月) 20:22:58)

わからなくて困っているところにたまたま出会いました。
ありがとうございます。

直交化

(2012-07-30 (月) 12:11:06)

ありがとうございました

  • 滅茶苦茶分かりやすい。感謝します -- 感謝

*1 ここでは、ベクトル \bm{a} \bm{b} との内積を \bm{a}\cdot\bm{b} ではなく (\bm{a},\bm{b}) と書く
*2 「一次結合で表せるベクトルの集合」は、本来「張る空間」と書くべきだが、カリキュラム上まだ扱っていないためこのような書き方を用いている

Counter: 414405 (from 2010/06/03), today: 60, yesterday: 67