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

更新


目次

線形代数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{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} と書いたのがこの形。)) (\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}

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

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

コメント




Grassmann積のほうが分かりやすい

田淵隆明 ()

日本の数学教育は伝統的に外積が嫌いなようである。この直交化は有名だが、
Grassmann積(外積代数)のほうが、オートマチックで分かりやすいような気がします。

  • 私自身、伝統的な教育を受けてきたためか、一次独立な k 個の n 次元数ベクトル ( k\le n ) の直交化に外積代数を用いる方法を知らずにいます。分からないなりに調べてはみたのですが、そもそもご指摘の外積が クロス積 \times 直積 \otimes ウェッジ積 \wedge のいずれかすら分からず、有益な議論ができないことを申し訳なく思います。本学類のカリキュラムでは、3次元数ベクトルのクロス積を空間図形の取り扱いのための便利な公式として学びますが、テンソル自体を本格的には学ばないため3次元止まりです。正規(直交)化されたベクトルの直積を用いた射影演算は 二年生の線形代数で 扱っています。ウェッジ積についてはまったく触れる機会がありません。 -- 武内(管理人)
  • 直交化とは似ているような似ていないような内容ですが、田淵先生の書き込みに感化されて「非直交基底の成分分解」というページを追加しました。 n 次元のベクトル積を用いて逆基底を作り、直交しない基底に対する成分分解を行う内容となっています。かねてから補足したいと思っていた内容でしたので、良いきっかけとなりました。 -- 武内(管理人)
  • もう一点、シュミットの直交化の利点としては 線形代数II/関数空間#obfa5335 で行っているように、数ベクトル以外の一般のベクトルにも容易に適用可能であることが挙げられるように思いました。 -- 武内(管理人)

1次元ベクトルの正規直交化

むーみん ()

筑波大学の3年次編入のh28の過去問の中の問題です
http://dl.multidevice-disc.com/dl/5335-392f145552971b0eac39d572b5ec3e6d

上のリンクの2(3)なのですが、1,x,3x^2-2を正規化しろという問題です
グラムシュミットを用いるのかと思いましたが、1次元のベクトルですと大きさを1にすると、例えばxならxで割ることになり、どのベクトルでも1になってしまうのではと思います
ご教授よろしくお願いいたします

  • http://dl.multidevice-disc.com/dl/5271-5ea417919e30f22223c98f1cc63ee663 リンクを間違えていました 正しくはこちらです -- むーみん
  • 「大きさを1にするとxで割ることになる」というのは何か勘違いしていませんか?規格化するにはノルムで割るわけですが、ノルムは求められますか? -- 武内(管理人)
  • 返信ありがとうございます 例えばこのページのベクトルa1(1 1 0)のノルムは√(1^2+1^2+0^2)になるのはわかります しかし一次元ですと、例えばxのノルムは√x^2=xになると思っているのですが、1次元のベクトルにあまり馴染みがなく、あまりわかっていません もしノルムがxなら、xをそのノルムであるxで割ることになり、1になってしまうので間違っているとは思うのですが… -- むーみん
  • この内容は線形代数II/関数空間でやっている内容です。見てみて下さい。 -- 武内(管理人)

グラムシュミッドを用いて線形部分空間の直交を導く

hshs ()

互いに素である二つの線形部分空間s1,s2を考える.この時グラムシュミッドの直交化法の概念を利用して二つの部分空間が互いに直交するにはどのような手順を踏めば良いか.また,これをr個に拡張する手続きについて説明せよ.

という問題なのですが,それぞれの部分空間に這うベクトルを一つ取り上げ,直交することを示せばいいのですか?
よろしくお願いします.

  • 「二つの部分空間が互いに直交するにはどのような手順を踏めば良いか」という部分は日本語的におかしくないでしょうか。何を条件として何を導く問題なのか、もう一度確認してみると良さそうに思います。 -- 武内(管理人)
  • お返事ありがとうございます.おかしいのかもしれないですが,この文章が試験問題として出題されました.どういう意味として取られるべきなのでしょうか -- hshs
  • 数学とは関係ない話になりかけていますね。。。s1 と s2 が素である(厳密にはゼロで重なりますが)と仮定して、互いに直交することを導け、ということでしょうか?そうだとすると手順を踏む、とか、手続き、というのが不思議に響きますが、、、たぶんそう、かな。うーん、私にもよくわかりません。 -- 武内(管理人)
  • もしそういう問題であれば、対偶である、直交しないと仮定して、素にならないことを導くという方針を取ると、題意に添えるように思えます。 -- 武内(管理人)
  • 管理人様,お返事ありがとうございます.担当教授にもう一度聞いて見たいと思います.ありがとうございました -- hshs
  • 度々の質問失礼いたします. 互いに素である部分空間とはどのようなものですか?どういった意味なのでしょうか.担当教授は曖昧な返事しかくれず,他の教員を当たってみたのですがいまいちわからないようで,,,お願いします. -- hshs
  • 普通は共通の要素を含まない集合のことだと思いますが、ここではゼロだけで重なるということ、、、でしょうか? -- 武内 (管理人)
  • 管理人様,お返事ありがとうございます.ゼロだけで重なる,こちらで正しいと言われました!ありがとうございます.大変助かりました. -- hshs

無題

ほげげ ()

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

  • 与えられた一次独立な{a1, ... , an}から正規直交系を作る方法は無数にある中で、シュミットの直交化が選んだ方針を理解するには「ekは{a1, ... , ak}の一次結合で表せるものとする」という条件が助けになると考え、このように記載しています。{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: 412129 (from 2010/06/03), today: 55, yesterday: 91