サイト内検索

あらゆるワードの関連記事を検索できます!

おぐえもん
大学に通う理系学生です♪Webサイトやチラシ、冊子などのデザインや、システム開発などの経験があります。音楽が好きで、渋谷系サウンドが好物です!
たぶん今すぐ使えるテクニックから、きっと全く使えない豆知識まで。

【線形空間編】正規直交基底と直交行列

正規直交基底とは何なのか、そしてどうやって作るのかなどについて解説。

おぐえもん

本カテゴリ
線形代数の要点などを見やすくまとめた、大学1回生・再履修したアホ向けの学習コンテンツ。おおよそ1年生前期〜後期の授業で学習する範囲を扱います。

こんにちは、おぐえもん(@oguemon_com)です。

前回の記事では、線形空間における内積・ベクトルの大きさなどが今までの概念と大きく異なる話をしました。

今回は、「正規直交基底」と呼ばれる特別な基底を取り上げ、どんなものなのか、そしてどうやって作るのかなどについて解説します!

目次(クリックで該当箇所へ移動)

正規直交基底

正規直交系と正規直交基底

線形空間\(V\)の中にある\(r\)個のベクトル\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_r}\)が、それぞれ長さ1で、かつどのような異なる2ベクトルを選んでもその内積がゼロになる(つまり直交する)とき、これらのベクトルを正規直交系といいます。

ちなみに、これを数式を用いて表現するとこんな感じ。

正規直交系

線形空間\(V\)の中にある\(r\)個のベクトル\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_r}\)が、$$(\boldsymbol{a_i},\boldsymbol{a_j})=\delta_{ij}$$を満たすとき、\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_r}\)を正規直交系という。

ここで、\(\delta_{ij}\)は、クロネッカーのデルタと呼ばれるもので、\(i=j\)ならば「1」を、\(i \neq j\)ならば「0」を取ります(まさに単位行列の\(i\)行\(j\)列成分です)。上の式は、同じベクトルの内積ならば、「1」を返し(長さが1)、異なるベクトルの内積ならば「0」を返す(直交する)というウマい構造になっています。

さて、次に「正規直交基底」とは何かって話ですが、これは簡単で、「正規直交系」かつ「基底」であるベクトルの組のことです。読んで字のごとくって感じですね。

正規直交基底

線形空間\(V\)の次元が\(n\)で、\(n\)個のベクトル\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_r}\)が\(V\)の基底でありかつ、正規直交系であるとき、\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_r}\)を正規直交基底という。

正規直交基底の作り方

さて、そんな正規直交基底ですが、内積が定義されている線形空間(計量線形空間)ならば、絶対に正規直交基底を作ることができます。なぜそんなことが言えるのかと言うと、計量線形空間の基底を使って正規直交基底を作る方法が存在するからなんですね。そんな夢の方法の1つがグラム・シュミットの正規直交化法と呼ばれるものです。

シュミットの直交化法

線形空間\(V\)の次元が\(n\)で、\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_n}\)が\(V\)の基底であるとします。これを使って正規直交基底を作ろう!

Step1. ベクトル達を直交化する
次の数式を用いて、新しいベクトル\(\boldsymbol{x_1}\)〜\(\boldsymbol{x_n}\)を順番に生成していきます。
\begin{eqnarray}
\boldsymbol{x_1} &\leftarrow& \boldsymbol{a_1} \\
\boldsymbol{x_2} &\leftarrow& \boldsymbol{a_2} – \frac{(\boldsymbol{a_2},\boldsymbol{x_1})}{(\boldsymbol{x_1},\boldsymbol{x_1})}\boldsymbol{x_1} \\
\boldsymbol{x_3} &\leftarrow& \boldsymbol{a_3} – \Bigl(\frac{(\boldsymbol{a_3},\boldsymbol{x_1})}{(\boldsymbol{x_1},\boldsymbol{x_1})}\boldsymbol{x_1} + \frac{(\boldsymbol{a_3},\boldsymbol{x_2})}{(\boldsymbol{x_2},\boldsymbol{x_2})}\boldsymbol{x_2}\Bigr) \\
&…& \\
\boldsymbol{x_n} &\leftarrow& \boldsymbol{a_n} – \sum_{k=1}^{n-1}\frac{(\boldsymbol{a_n},\boldsymbol{x_k})}{(\boldsymbol{x_k},\boldsymbol{x_k})}\boldsymbol{x_k}
\end{eqnarray}この作り方によって、\(\boldsymbol{x_1}\)〜\(\boldsymbol{x_n}\)は、全て互いに直交するベクトルの組となります。(本当に直交するの?と思う人は、内積を順番に計算して確かめてみましょう。)
Step2. ベクトル達を正規化する
\(\boldsymbol{x_1}\)〜\(\boldsymbol{x_n}\)の長さを1に揃えます。方法は簡単で、ベクトルに対して、そのベクトルの大きさを割る(つまり逆数をスカラー倍する)だけです。$$\boldsymbol{x_i} \leftarrow \frac{1}{|\boldsymbol{x_i}|}\boldsymbol{x_i} \ (i=1,2,…,n)$$

これで、\(\boldsymbol{x_1}\)〜\(\boldsymbol{x_n}\)は、正規直交基底になりましたとさ、めでたしめでたし。

\(\boldsymbol{x_1}\)〜\(\boldsymbol{x_n}\)のどれかが零ベクトルになる(つまり長さで割れない)ことってないの?って疑問に思う人がいるかもしれません。Step1の式を見ればわかる通り、ベクトル\(\boldsymbol{x_1}\)〜\(\boldsymbol{x_n}\)を生み出す式は、結局のところベクトル\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_n}\)の1次結合の形に過ぎません。\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_n}\)は基底であり1次独立である前提があります。\(\boldsymbol{x_i}\)が零ベクトルになるということは、\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_n}\)の1次独立と矛盾するためあり得ません。

正規直交基底の成分と「自然な内積」

正規直交基底の1次結合で内積を取るとスッキリ

正規直交基底を用いた成分表示について考えます。次元\(n\)の計量線形空間\(V\)について、ある正規直交基底に基づいて、2つのベクトル\(\boldsymbol{a}\)と\(\boldsymbol{b}\)を次の通り成分表記するとします。
\begin{eqnarray}
\boldsymbol{a}&=&(a_1,a_2,…,a_n) \\
\boldsymbol{b}&=&(b_1,b_2,…,b_n)
\end{eqnarray}このとき、両者の内積\((\boldsymbol{a},\boldsymbol{b})\)は次式のようになります。

$$
(\boldsymbol{a},\boldsymbol{b})=\sum_{i=1}^{n}a_ib_i
$$

実際に内積を計算すると、基底をなすベクトル同士の内積がたくさん出てきてカオスな式となります。しかし、正規直交基底では異なるベクトルの内積が0に、同じベクトルの内積(つまり長さの2乗)が1になるので、最終的に上のようなスッキリとした形に落ち着くのです。

計量線形空間は「自然な内積」に通じる

さて、この内積の形、どこかで見たことがあると思います。そう、前の記事で扱った、\(n\)個の実数を並べて作る「\(n\)次元数線形空間\(R^n\)」における「自然な内積」と同じですよね。

実は、どんな\(n\)次元の線形空間であっても、内積さえ定義されていれば、正規直交基底を取ってこれの成分表記で捉えることで、実質的に「\(n\)次元数線形空間\(R^n\)」と同じものとして扱うことができるんです!全ての計量線形空間は、\(R^n\)に帰着するんですね。

正規直交基底を変換する

以前の記事で述べた通り、線形空間の基底は、「変換の行列」というものを用いた演算を通じて、異なる基底を生み出すことができます。

ここでは、正規直交基底から別の正規直交基底に変換するときに使う変換の行列の性質について考えます。

まず、線形空間\(V\)の次元は\(n\)で、2つのベクトルの組「\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_n}\)」と「\(\boldsymbol{b_1}\)〜\(\boldsymbol{b_n}\)」は共に\(V\)の正規直交基底とします。

変換の行列を\(P=[p_{ij}]\)として\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_n}\)から\(\boldsymbol{b_1}\)〜\(\boldsymbol{b_n}\)を生み出せるとします。つまり、前の記事みたく、次式の関係があります。
\begin{eqnarray}
\boldsymbol{b_j}&=&p_{1j}\boldsymbol{a_1}+p_{2j}\boldsymbol{a_2}+…+p_{nj}\boldsymbol{a_n}\\
&=&\sum_{k=1}^{n}p_{kj}\boldsymbol{a_k}
\end{eqnarray}

さて、行列\(P\)はどんな行列なんでしょうか。

\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_n}\)が正規直交基底であることを利用すると、次のような式を導き出せます。
\begin{eqnarray}
(\boldsymbol{b_i},\boldsymbol{b_j})&=&(\sum_{k=1}^{n}p_{ki}\boldsymbol{a_k},\sum_{l=1}^{n}p_{lj}\boldsymbol{a_l}) \\
&=&\sum_{k=1}^{n}\sum_{l=1}^{n}p_{ki}p_{lj}(\boldsymbol{a_k},\boldsymbol{a_l}) \\
&=&\sum_{k=1}^{n}p_{ki}p_{kj}
\end{eqnarray}1段目から2段目の変形は、内積がもつ分配法則の性質に基づいて愚直に展開しただけです。そして、\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_n}\)が正規直交基底であることを利用して、2段目の中から異なるベクトルの内積を0として消し去り、同じベクトルの内積を1として成分のみを残した結果、3段目の式が得られます。

ところで、3段目の式って、ある2行列の積の成分を表してそうじゃないですか?

実際、\(P\)の転置行列\(^{t}P\)の成分を\(p’_{ij}(=p_{ji})\)とすると、当たり前な話$$\sum_{k=1}^{n}p_{ki}p_{kj}=\sum_{k=1}^{n}p’_{ik}p_{kj}$$が成立します。これの右辺って積\(^{t}PP\)の\(i\)行\(j\)列成分そのものですよね?

さて、正規直交基底の定義から、基底\(\boldsymbol{b_1}\)〜\(\boldsymbol{b_n}\)が正規直交系であること(つまり正規直交基底である)と、次の式の成立は同値でした。$$(\boldsymbol{b_i},\boldsymbol{b_j})=\delta_{ij}$$つまり、これらから次の等式が成り立ちます。$$\sum_{k=1}^{n}p’_{ik}p_{kj}=\delta_{ij}$$クロネッカーのデルタ\(\delta_{ij}\)は単位行列\(i\)行\(j\)列成分に相当すると言いました。つまり、この式は積\(^{t}PP\)が単位行列に等しいことを表しているのです。

以上をまとめると次のようになります。

正規直交基底\(\boldsymbol{a_1}\)〜\(\boldsymbol{a_n}\)に対して変換の行列\(P\)を用いて別の基底\(\boldsymbol{b_1}\)〜\(\boldsymbol{b_n}\)を作るとき、次の命題が成立する。
$$^{t}PP=E \Leftrightarrow \boldsymbol{b_1},…,\boldsymbol{b_n}は正規直交基底$$

ちなみに、\(^{t}PP=E\)を満たす行列\(P\)のことを直交行列と呼びます。さらに、直交行列\(P\)の中でも、その行列式\(|P|\)が1であるようなもののことを特に回転行列と呼びます。

おわり

今回は、正規直交基底の定義やその作り方、そして正規直交基底から別の正規直交基底に変換するときの変換の行列の性質について学習しました。

次回は、グラム・シュミットの正規直交化法についてもう少し解説して見たいと思います。