ブログ
BLOG
こんにちは。究進塾 編集部です。今回は、線形代数の解説で、第7回目の続きです。
対角化するための数値的に計算をしていくのと、もう1つ別のアプローチの理論面から対角化がどういうものかを調べていくのですが、そのための準備がもう少し続きます。今回取り扱っていくのは「正規直交基底」です。
正規直交基底
定義を見ていきましょう。複素ベクトル空間の正規直交基底について考えます。一応、複素ベクトル空間としておきますが、実ベクトル空間でも大体雰囲気は同じです。
| 定義1(複素ベクトル空間の正規直交基底)
\(V\)を複素数体\(C\)上のベクトル空間、\((., . \ ):V×V \ → \ C\)を\(V\)の内積とする。 ⅰ)任意の\(1 \ ≦ \ i \ ≦ \ n\)に対し、\(||u_i|| \ := \sqrt{(u_i, \ u_i)} \ = \ 1\) ⅱ)任意の複素数\(1≦i, \ j≦n, \ i≠j\)に対し、\((u_i, \ u_j)=0\)を満たすとき、\(u_1, \ …, \ u_n\)は\(V\)の正規直交基底である、という。 |
\(V\)を複素数体\(C\)上のベクトル空間として、その上に内積が1つ定義されているとします。その上で、\(V\)に\(u_1\)から\(u_n\)という1つの基底があったとします。
ⅰ)は、1から\(n\)まで全ての\(u_i\)に対して、\(u_i\)の長さ(定義としては、自分自身の内積のルートを取ったもの)が、1になるという条件です。ⅱ)は、異なる2つの\(u_i\)と\(u_j\)というものに対して、これらの内積を取ると必ず0になるという条件です。
この2条件を満たすとき、\(u_1, \ …, \ u_n\)は\(V\)の正規直交基底である、といいます。
この2条件は一体何なのかというと、条件ⅰ)は「長さが揃っている」という意味です。長さが揃っていて、全て長さ1であることを意味していて、これが正規直交基底の「正規」という部分に当たり、「正規化されている」ということを示しています。
条件ⅱ)は、これは高校の頃にやったベクトルでもお馴染みかもしれませんが、0でない2つのベクトルの内積を取った時に、それが0になるということは、その2つのベクトルがお互い垂直に交わっている、向きが垂直であることの現れです。いわゆる「ベクトルが直交している」、つまりお互い直角に交わっています。
この2つ合わせて「正規」で、なおかつ「直交」しているので、この2条件を満たすとき、\(u_1\)から\(u_n\)は正規直交基底である、と言います。
この正規直交基底というのを作っておくと、色々と計算に都合が良かったり、理論展開が簡単になったりする、というメリットがあります。
自明な例で申し訳ないのですが、軽く例を見ておきましょう。
| 例)
\( \mathbf{C}^3 := \left\{ \begin{pmatrix} x \\ y \\ z \end{pmatrix} \middle| x, y, z \in \mathbf{C} \right\} \)の標準内積: \(u \ = \ \left(\begin{array}{crl} |
複素数上の3次元の複素ベクトル空間\(C^3\)というものを考えます。複素数の成分を3つ持っているベクトルです。
この上に、標準内積というの考えます。\(u\)というベクトル\(\left(\begin{array}{crl}
x\\
y\\
z
\end{array}\right)\) と、\(v\)というベクトル\(\left(\begin{array}{crl}
w\\
s\\
t
\end{array}\right)\)があった時に、\(u\)と\(v\)の内積というのを(\(x\)の複素共役\(× \ w) \ + (\ y\)の複素共役\(× \ s)\)\(+\)(\(z\)の複素共役\(× \ t\))というのを足したものを、複素内積では標準内積と言います。
このように定義した時に、この内積の元で、いわゆる標準基底\(\left(\begin{array}{crl}
1\\
0\\
0
\end{array}\right)\)と\(\left(\begin{array}{crl}
0\\
1\\
0
\end{array}\right)\)と\(\left(\begin{array}{crl}
0\\
0\\
1
\end{array}\right)\)というもの同士を内積すると、さっきの2条件を満たしているということが、簡単に確かめられます。
結局、この標準内積というものですが、正規直交基底というのは、それらのベクトルがこの内積を入れたという空間においては垂直で、普通に直交座標系の元になるようなものを成す、となっており、これに対して\(e_1 \ = \ \left(\begin{array}{crl}
1\\
0\\
0
\end{array}\right) , e_2 \ = \ \left(\begin{array}{crl}
0\\
1\\
0
\end{array}\right) , e_3 \ = \ \left(\begin{array}{crl}
0\\
0\\
1
\end{array}\right) \)が正規直交というのは「そりゃそうか」という当たり前の感じではあるかと思います。
グラム=シュミットの正規直交化法
さて次に、普通にベクトル空間において適当に基底を取ったというと、一般にはそれらは正規直交基底ではないことがほとんどです。ですが、実は任意の基底から出発して、正規直交基底を作る方法というものが知られております。
その手続きのことを「グラム=シュミットの正規直交化法」もしくは「ヒルベルト=シュミットの正規直交化法」などと言います。発見者たちの名前が名称になっています。
| 余談:名前の由来
ヨルゲン・ペダーセン・グラム(Jørgen Pedersen Gram, 1850–1916):保険数理や最小二乗法で業績を残した。 |
これを少しご紹介します。
このグラム=シュミットの直交化法というのを知っていると、勝手なベクトル空間において、そこから正規直交基底を作れます。理論的にも重要であり、対角化のプロセスなどの実用面おいても、グラム=シュミットの直交化法をやっておいた方が、色々と便利だったりします。
| 定理 2
\(V\)を複素数体\(C\)上のベクトル空間、\((., \ .):V×V \ → \ C\)を\(V\)の内積とする。 |
\(V\)を複素数体\(C\)上のベクトル空間で、内積が入っているものとします。この時、\(V\)の基底(これは正規直交とは限らないかもしれないものです)を\(v_1, \ v_2, \ …, \ v_n\)とします。この時、\(V\)の正規直交基底\(u_1, \ …, \ u_n\)で、\(u_1\)の向いている方向が\(v_1\)の方向と平行、実際には同じ方向を向いているようなものが作れる、となっています。
最初の1つ目、\(v_1\)を見て\(v_1\)の方向を向いてる単位ベクトルを作り出して、それを元にして、そこからそれに垂直なベクトルを次々追加していき、基底になるまで追加し続ける作業をする、という感じになります。
実際、証明も割と具体的に作り方を提示しています。「アルゴリズムを作るためにアルゴリズムを見せる」というタイプの証明なので、この証明方法を辿ってやってあげると、ちゃんとこの正規直交基底を作り出すことができます。作り方の説明書きのようにもなっているわけです。
存在証明(背理法などを使って「もし存在しないとなると〇〇〇となり矛盾するため、よって存在する」のようなタイプの証明)という方法の場合は、具体的な作り方が分からなかったりするのですが、この証明は実際に作る手順を説明してくれます。
また、作り方もなかなか面白いというか、昔の人が考えた「頭いいな」と感じる方法で、味わい深いものがあります。
では実際に証明を見ていきましょう。
| 証明
\(v_1, \ …, \ v_n\)は基底なので、どれも0ではない。まず、\(v_1\)に対して \(u_1 \ := \frac{v_1}{||v_1||}\) とすると、作り方より、\(||u_1||= \ 1, \ u_1//v_1\)を満たす。 次に、 \(\tilde{u}_2 \ := \ v_2 \ – \ (u_1, \ v_2)u_1\) とする。このとき、\(\tilde{u}_2\)と\(u_1\)は直交する。また、\(v_2, \ v_1\)は一次独立であることから、\(\tilde{u}_2\)は\(0\)ではない。このことより \(u_2 \ ≔ \ \frac{\tilde{u}_2}{||\tilde{u}_2||}\) とすると、作り方より、\(||u_2||= \ 1, \ (u_1, \ u_2) \ = \ 0\)を満たす。 次に、 \(\tilde{u}_3 \ ≔ \ v_3 \ – \ (u_1, \ v_3)u_1 \ – \ (u_2, \ v_3)u_2\) とする。このとき\(\tilde{u}_3\)と\(u_1, \ u_2\)は直交する。また、\(v_3, \ v_2, \ v_1\)は一次独立であることから、\(\overline{u}_3\)は0ではない。このことより \( \mathbf{u}_3 := \frac{\tilde{\mathbf{u}}_3}{\||\tilde{\mathbf{u}}_3\||} \) とすると、作り方より、\(||u_3|| \ = \ 1, \ (u_1, \ u_3) \ = \ (u_2, \ u_3) \ = \ 0\)を満たす。 以下同様に、直交化、正規化のプロセスを繰り返していくことにより、\(u_1, \ …, \ u_{k-1}\)が作れたとする。 \( \tilde{\mathbf{u}}_k := \mathbf{v}_k – (\mathbf{u}_1, \mathbf{v}_k)\mathbf{u}_1 – \cdots – (\mathbf{u}_{k-1}, \mathbf{v}_k)\mathbf{u}_{k-1} \) とする。このとき、\(\tilde{u}_k\)と\(u_1, \ …, \ u_{k-1}\)は直交する。また、\(v_k, \ v_{k-1}, \ …, \ v_1\)は一次独立であることから、\(\tilde{u}_k\)は\(0\)ではない。このことより \(u_k \ :=\frac{\tilde{u}_k}{||\tilde{u}_k||}\) とすると、作り方より、\(||u_k|| \ = \ 1, \ (u_1, \ u_k) \ = \ … \ = \ (u_{k-1}, \ u_k)=0\)を満たす。 |
まず仮定からわかることとして、\(v_1, \ …, \ v_n\)というのが、ベクトル空間\(V\)の基底ということになってます。つまり、\(v_1, \ …, \ v_n\)のうち、どれも0ベクトルではないということが分かります。
もしどれかが0ベクトルだったとすると一次独立性が崩れてしまいます。一次独立は、\(v_1, \ …, \ v_n\)の線形和を作った時に、それが0ベクトルになったとすると、係数が全部0でなければいけないという条件でした。例えば\(v_1\)番目がもし0ベクトルになってたとすると、\(1\)倍の\(v_1+0\)倍の\(v_2+…+0\)倍の\(v_n\)というので\(0\)ベクトルを作れてしまうので、一次独立であるという条件に反してしまいます。なので、このどれも0ではないことが分かります。
特に、\(v_1\)も0ではないということが分かります。\(v_1\)が0ではないので、\(v_1\)の長さというのも0ではないということが得られます。
\(v_1≠ \vec{0} \ ⇒ \ ||v_1||≠0\)
そうすると、\(v_1\)で割り算することが可能になります。\(||v_1||\)がもし0になると、次の行でやっている\(||v_1||\)の「長さで割る」という操作ができなくなってしまいます。
まず\(v_1\)に対して、\(u_1\)を「\(v_1\)を\(v_1\)の長さで割ったもの」として定義します。そうすると有名な方法ですが、\(v_1\)と同じ方向を向いている単位ベクトル、長さ1のベクトルを作れる、ということになるわけです。なので、作り方より\(u_1\)というものは長さが1となります。
しかもこの\(u_1\)というのは、\(v_1\)を\(v_1\)の長さ分の1倍したものなので、正の定数倍しているので、同じ方向を向いている、つまり平行であることが分かります。ここまでがファーストステップで、最初の1個目はこんな感じですぐに作ることができます。
この「グラム=シュミットの直交化法」というものは、具体的にはどういうことやっていくかというと、まず1個目ができたら、次に2個目のベクトルというのは1個目に作ったベクトルと垂直な方向を向いているベクトルというのを作っていく、ということを次々にやっていきます。まず垂直にして、そのあと長さが1になるように調節する、という手順を繰り返していきます。
最初のステップでは、「とりあえず垂直」というだけであって長さが1とは限らないのでまだ完成品ではありませんが、とりあえず\(u_1\)と垂直な方向を向いてる\(\tilde{u}_2\)というベクトルを次のステップとして\(\tilde{u}_2 \ ≔ \ v_2 \ – \ (u_1, \ v_2)u_1\)と定義してあげます。\(v_2 \ -\)\((u_1, \ v_2)\)の内積倍の\(u_1\)、少しややこしいのですが、\(v_2\)と\(u_1\)はベクトルです。これに対して、\((u_1, \ v_2)\)の内積を取ったところ、これは複素数になるはずです。ベクトル同士の内積は、複素内積だと複素数になるのでこの\(\tilde{u}_2\)というのは「\(v_2-\)何々倍の\(u_1\)」という形で作られる、ということになるわけです。
さて、ここでこうして作った時、\(\tilde{u}_2\)というのは\(u_1\)と直交する、ということが実は言えます。ここを少し詳しく見ておきましょう。
複素内積について、前回の解説で少し触れましたが、複素内積は物理や量子力学とかに合わせて、ここではこのような定義を入れていたと思います。
\(c \ ∈ \ C\)に対して、
\((u, \ cv) \ = \ c(u, \ v)\)
\((cu, \ v) \ = \ \overline{c}(u, \ v )\)
このようにする、という条件を、少し入れていました。ついでに言うと複素内積を掛ける順序を逆にした時というのはどうなるかというと、次のようになっていました。
\((v, \ u) \ = \ \overline{(u, \ v)}\)
ちなみに1つ目の式と3つ目の式を合わせると、2つ目の式の証明が出来たりします。とにかく、第2成分に付いている係数はそのまま前に出せますが、第1成分に付いているものは、前に出した時にバーがかかる、というふうになっています。
それを踏まえて、実際\(\tilde{u}_2\)と\(u_1\)の内積を取ってみましょう。2種類の計算をしてみます。
\((u_1, \ \tilde{u}_2)\)
これの計算をしてみます。\(\tilde{u}_2\)というのは\(v_2 \ – \ (u_1, \ v_2)u_1\)でした。なので、次のようになります。
\((u_1, \ \tilde{u}_2) \ = \ (u_1, \ v_2) \ – \ (u_1, \ v_2)u_1\)
内積というのは線形性があるので、\(v_2 \ – \ (u_1, \ v_2)u_1\)を完全にばらします。
\(=(u_1, \ v_2) \ – \ (u_1,(u_1, \ v_2)u_1)\)
\((u_1,(u_1, \ v_2)u_1)\)の部分ですが、これは\(u_1\)というベクトルと、\((u_1, \ v_2)\)の内積倍の、\(u_1\)というベクトルの内積となっています。先程も記述しましたが、\((u_1, \ v_2)\)はあくまで複素数です。
このようになっていると、1つ目の式の\(cv\)となっている部分は、第2成分に付いているものはそのまま外に出すことができます。そして外に出すと残るのが「\(u_1\)」と「\(u_1\)の内積」となるので、\(u_1\)の内積2乗となり、式は次のようになります。
\(=(u_1, \ v_2)-(u_1, \ v_2)||u_1||^2\)
そこで、\(u_1\)の長さは1となるように設定していたので、\(||u_1||^2\)は\(1\)です。ということはどうなるかというと、
\(=0\)
となります。そういうわけで、\((u_1, \ \tilde{u}_2)\)は\(0\)だということがわかりました。これは逆を計算してもいいですし、あるいは\((v, \ u)\)を逆順で掛けたものは、順序をひっくり返したもののバー、\(\overline{(u, \ v)}\)となるというのがあるため、\(\tilde{u}_2×u_1\)というのも、この結果から「\(0\)である」ということが言えます。\(\tilde{u}_2 \ × \ u_1\)とやるとどうなるか、というのを、このものを元にして計算してみるのも、少し練習としてもいいかもしれません。ぜひやってみてください。
このように、\(\tilde{u}_2\)と\(u_1\)は直交するということが分かりました。その上で、\(\tilde{u}_2 \ ≔ \ v_2 \ – \ (u_1, \ v_2)u_1\)のように作って、このベクトル\(\tilde{u}_2\)というのが\(0\)ではないというのが保証できたならば、あとは\(v_2 \ – \ (u_1, \ v_2)u_1\)の長さを取って、それで割ればいいとなります。
しかしまだ可能性としては、\(≔ \ v_2 \ – \ (u_1, \ v_2)u_1\)と計算した\(\tilde{u}_2\)というのが\(0\)ベクトルになってしまう可能性が、もしかしたらあるかもしれません。
ですが、\(v_1, \ …, \ v_n \ ∈ \ V\)というのが、\(V\)の基底になるという条件があるので、実は「そういうことは起こらない」となります。なぜならば「\(v_2, \ v_1\)は一次独立である」ことから、\(\tilde{u}_2\)というのは、書いてありませんが「1倍の\(v_2\)」です。1倍の\(v_2 \ – \ (u_1, \ v_2)×\frac{v_1}{||v_1||}\)(\(v_1\)の長さ分の\(1\)倍の\(v_1\))です(\(u_1\)の正体は\(\frac{v_1}{||v_1||}\)であるため)。
そういうわけで、\(u_2\)というのは、\(v_2\)と\(v_1\)のベクトルを使って書かれた線形結合です。しかも\(v_2\)の係数が、\(0\)ではなく\(1\)となっています。そうすると一次独立性の定義から、\(v_1\)と\(v_2\)を使って書かれたベクトルが0ベクトルになるときというのは、係数が全て0にならなければいけない、というのがあります。ですが、\(v_2\)の係数は絶対に\(0\)ではありません。なぜなら、もう\(1\)と確定しているためです。
\(\tilde{u}_2\)というのは、絶対に\(0\)ではありません。\(\frac{\tilde{u}_2}{||\tilde{u}_2||}\)の\(\tilde{u}_2\)の長さも\(0\)ではないので、\(\tilde{u}_2\)の長さで割ってあげるということができます。
\(\tilde{u}_2\)を\(\tilde{u}_2\)の長さで割るとすると、例えば\(\tilde{u}_2\)の長さが\(5\)のベクトルになったとすると、それを\(\frac{1}{5}\)倍することによって、長さ\(1\)で向きが\(\tilde{u}_2\)と同じベクトルというのを作ることができるわけです。
こうすると、作り方より\(||u_2||\)の長さというのは、ちゃんと\(1\)になっていて、しかも\(\tilde{u}_2\)と\(u_2\)というのは向きが同じなので、\(u_1\)と\(u_2\)の内積を取ったものも、ちゃんと\(0\)になる、ということが言えます。これで第2ステップは終わりです。
ここまでで\(u_1\)と\(u_2\)が作れました。雰囲気としては、あとはこれをひたすら繰り返しますが、一応第3ステップぐらいまで一緒に見ておきましょう。
次は\(u_3\)を作ります。これも、まずは\(u_1\)と\(u_2\)に対して、そのどちらとも垂直なベクトルというのを作ります。そのあとで長さを調節して、長さ\(1\)にするという手順で作りますが、この\(\tilde{u}_3\)というのを、次のように定義してあげます。
\(\tilde{u}_3 \ ≔ \ v_3 \ – \ (u_1, \ v_3) \ u_1 \ – \ (u_2, \ v_3) \ u_2\)
このように置いてあげると、こうして作った\(\tilde{u}_3\)というのは\(u_1\)とも\(u_2\)とも直交する、ということが分かります。少しだけこれも計算してみましょう。
\(u_1\)と内積を取った時にどうなるか、という計算ですが、やることは先程とほぼ同じです。
\((u_1, \ \tilde{u}_3)=(u_1, \ v_3)-(u_1, \ v_3)u_1-(u_2, \ v_3)u_2\)
これを全部バラバラにしていくと、次のようになります。
\( =(u_1, \ v_3)-(u_1, v_3)||u_1||^2-(u_2, \ v_3)(u_1, \ u_2)\)
先程と同じように\(||u_1||\)は、\(u_1\)の長さが\(1\)であるので\(1\)です。そして一番右に\(u_1\)と\(u_2\)の内積が出てくるのですが、\(u_1\)と\(u_2\)を内積したものは\(0\)となるように作られています。そのため\((u_1, \ u_2)\)は\(0\)です。そうなると、\(-(u_2, \ v_2)(u_1, \ u_2)\)の部分が消え、残るのが「\(u_1\)と\(v_3\)の内積」\(-\)「\(u_1\)と\(v_3\)の内積」倍の\(u_1\)の長さの2乗ですが\(u_1\)は\(1\)となってるので、どうなるかというと、結局ちゃんと\(0\)になる、ということがわかります。
最初の\((u_1, \ \tilde{u}_3)\)の\(u_1\)を、\(u_2\)とした時も、同じように\(0\)になることを示すことができます。このようにして作った\(\tilde{u}_3\)というのは、\(u_1\)と\(u_2\)の、その両方とも直交することとなります。
さらに、\((u_1, \ v_3)u_1\)も先程と同じで、\(u_1\)というのは結局\(v_1\)の何々倍となっています。\(u_2\)というのは先程の作り方からして、\(v_1\)と\(v_2\)の線形結合で出来てます。つまり、\((u_1, \ v_3)u_1 \ – \ (u_2, \ v_3)u_2\)まで合わせて\(v_1\)と\(v_2\)の線形結合で書けるとなっています。\(\tilde{u}_3\)というのは、そこに\(v_3\)というのをさらにくっつけて書いたものとなっているので、\(\tilde{u}_3\)というのは、結局\(v_1, \ v_2, \ v_3\)というものの線形結合で掛けています。しかも、\(v_3\)の係数の部分が絶対に\(0\)ではなく、\(1\)となっています。そうなっていることから、\(v_1, \ v_2, \ v_3\)というのは一次独立であって、しかも\(v_3\)の係数が\(0\)ではないとなると、\(\tilde{u}_3\)は絶対に\(0\)ベクトルにはなり得ないということが分かります。
そうとすると、長さも\(0\)ではないので、\(\tilde{u}_3\)の長さで\(\tilde{u}_3\)を割ってあげることによって、長さ\(1\)の\(\tilde{u}_3\)と同じ方向を向いてるベクトル、というのを作る事ができます。そうすると、作り方により長さが\(1\)で、今までの2つというのは、内積を取るとちゃんと\(0\)になるようなものが作れる、となります。
以下同様に、直交化します。\(\tilde{u}_k\)みたいなものを作ります。そのあとで、そこから\(u_k\)という本物、ちゃんと長さ\(1\)になるように正規化して…という計算を繰り返していき、とりあえず途中まで\(u_1\)から\(u_{k_1}\)番目までを作れたとします。その時に、次の\(k\)番目というのは、2番目と3番目の作り方を見たらなんとなく分かるとは思いますが、次のように置いてあげます。
\(\tilde{u}_k \ ≔ \ v_k \ – \ (u_1, \ v_k)u_1 \ – \ … \ – \ (u_{k-1}, \ v_k)u_{k-1}\)
\(1\)から\(k-1\)までずらっと引いたものとしてあげます。だんだん引く数が増えていく感じになるわけです。このように置いてあげると、3番目や2番目の時にやったのと全く同じような手順で、このすでに出来上がっている\(u_1, …, \ u_{k-1}\)と\(\tilde{u}_k\)は、必ず直交する事が分かります。
しかも、この\(\tilde{u}_k\)というのは、\(v_1\)から\(v_k\)を使った線形結合で掛けており、しかも\(v_k\)の係数が\(1\)となっているので、全ての係数が\(0\)ということは絶対ありません。このようになるので、\(\tilde{u}_k\)は\(0\)ベクトルではありません。
なので、\(\frac{\tilde{u}_k}{||\tilde{u}_k||}\)と割り算して、長さを\(1\)に整えてあげることによって、\(k\)番目の、正規で、それまでのものと全て直交するようなベクトルというのが取れる、ということが分かります。
そうすると、\(k\)番目のものも長さが\(1\)で、しかも\(u_1\)から\(u_{k-1}\)と内積を取った時に、全てと直交している、ということが分かります。これは\(k\)番目の時にこのようになるという話ですが、ベクトル空間の次元の回数だけをずっと繰り返してあげます。そうすると、それによって\(u_1, \ …, \ u_n\)という、お互いに垂直で長さが全部\(1\)である基底、しかも最初の\(u_1\)の作り方的に\(u_1\)の向いている方向は\(v_1\)の向いている方向と一緒になる、というような基底を作る事ができることになります。
この手続きは、本当にひたすらこういう順序でやっていきます。そうやっていくと完成品ができる、ということになってるので、「証明は知らなくていいかな」と思っている人でも、グラム=シュミットの直交化については、これは少し覚えておいた方がいいです。色々なところで役に立つかもしれません。
さて、文字が入り乱れていて分かりづらかったかもしれないので、実際に少し、「このグラム=シュミットの正規直交化というのを使って、正規直交基底を作るとどうなるか」というのを、実例としてやってみましょう。
とりあえず3次元で複素でやっても良いのですが、面倒なので、とりあえず実ベクトル空間みたいなものを考えてみます。
|
例) \(v_1 \ = \ \left(\begin{array}{crl} |
\(v_1\)というのは\(\left(
\begin{array}{crl}
1 \\
2 \\
2
\end{array}
\right)\)とします。\(v_2\)というのを\(\left(
\begin{array}{crl}
0 \\
1 \\
1
\end{array}
\right)\)、そして\(v_3\)というのを\(\left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)としてみましょう。
そうした時に、まず手順その1は、\(u_1\)を作るのですが、そのためには、\(v_1\)の長さ分の\(v_1\)とします。\(v_1\)の長さがどうなるかというと、\(v_1\)の長さは\(1\)の2乗\(+2\)の2乗\(+2\)の2乗のルートとなるため、\(1 \ + \ 4 \ + \ 4 \ = \ 9\)のルートとなり、\(v_1\)の長さは\(3\)であることが分かります。
なので\(\frac{1}{3} \ × \ \left(
\begin{array}{crl}
1 \\
2 \\
2
\end{array}
\right)\)となります。
|
まず、 が得られる。 |
それぞれ成分が\(\left(
\begin{array}{crl}
\frac{1}{3} \\
\frac{2}{3} \\
\frac{2}{3}
\end{array}
\right)\)というのが、まず1個目のベクトルになります。簡単に分かると思いますが、\(v_1\)と全く同じ方向を向いていて、長さが\(1\)になるように少し縮めただけです。
では次のステップへ行ってみましょう。2番目のステップですが、作り方としては、まず直交するものを作ります。直交するものを作るためには\(v_2 \)から、先程作った\(u_1\)と\(v_2\)の内積したもの倍の\(u_1\)というのを引いたものとして作られます。\(v_2\)というのが\(\left(
\begin{array}{crl}
0 \\
1 \\
1
\end{array}
\right)\)となっています。最初の\(v_2\)の行列をそのまま持ってきた感じです。
さて、\(u_1\)というのは\(\left(
\begin{array}{crl}
\frac{1}{3} \\
\frac{2}{3} \\
\frac{2}{3}
\end{array}
\right)\)でした。\(v_2\)というのは\(\left(
\begin{array}{crl}
0 \\
1 \\
1
\end{array}
\right)\)です。この2つの内積を取るとどうなるかというと、\(\frac{1}{3} \ × \ 0 \ + \ \frac{2}{3} \ × \ 1 \ + \frac{2}{3} \ × \ 1\)となるため、内積を取った値は\(\frac{4}{3}\)となります。なので、\(- \ \frac{4}{3}\)倍の\(u_1\)です。\(u_1\)というのは\(\left(
\begin{array}{crl}
\frac{1}{3} \\
\frac{2}{3} \\
\frac{2}{3}
\end{array}
\right)\)なので、そうすると\(\left(
\begin{array}{crl}
0 \\
1 \\
1
\end{array}
\right) \ – \ \frac{4}{3} \left(
\begin{array}{crl}
\frac{1}{3} \\
\frac{2}{3} \\
\frac{2}{3}
\end{array}
\right)\)のようになります。これを頑張って計算していきます。
\(0 \ – \ \frac{4}{9}\)となるので\(- \ \frac{4}{9}\)、次の成分は\(1 \ – \ \frac{8}{9}\)なので\(\frac{1}{9}\)、その次は\(1 \ – \ \frac{8}{9} \ = \ \frac{1}{9}\)となるので、\(\tilde{u}_2\)は\(\left(
\begin{array}{crl}
-\frac{4}{9} \\
\frac{1}{9} \\
\frac{1}{9}
\end{array}
\right)\)というベクトルとなります。そしてこれをこれを長さ\(1\)になるように調整することによって、完成品の\(u_2\)というのが作れる、ということになります。
|
次に、 \(~u_2 \ :=v_2 \ – \ (u_1, \ v_2)u_1= が得られる。 |
\(u_2\)の長さというのがどうなるかというと、\(-\frac{4}{9}\)の\(2\)乗\(+ \ \frac{1}{9}\)の\(2\)乗\(+ \ \frac{1}{9}\)の\(2\)乗のルートを取ったもの、というのが\(\tilde{u}_2\)の長さです。
\(\frac{1}{9}\)を脇に避けておいたとすると\(18\)となるので、\(\sqrt{18}\)とやると\(3\sqrt{2}\)となります。\(\frac{1}{9}\)と付いていたから、\(\frac{3\sqrt{2}}{9}\)、要するに\(\tilde{u}_2\)の長さは\(\frac{\sqrt{2}}{3}\)となります。それで割るということは、\(× \frac{3}{\sqrt{2}}\)なので、\(\frac{3}{\sqrt{2}}\)倍の\(u_2\)です。\(u_2\)というのは\(\left(
\begin{array}{crl}
-\frac{4}{9} \\
\frac{1}{9} \\
\frac{1}{9}
\end{array}
\right)\)なので、\(\frac{3}{\sqrt{2}} \left(
\begin{array}{crl}
-\frac{4}{9} \\
\frac{1}{9} \\
\frac{1}{9}
\end{array}
\right)\)となります。
これをそれぞれ計算して、少し整理してあげます。\(3\)と\(9\)で約分されて、\(- \frac{4}{3}\sqrt{2}\)となるのですが、少し下の\(\sqrt{2}\)というのを有理化して\(− \ \frac{2\sqrt{2}}{3}\)となります。他も同じ要領で成り立ちます。
| これを正規化すると、
\(u_2 \ ≔ \ \frac{\tilde{u}_2}{||\tilde{u}_2||} \ = \ \frac{3}{\sqrt{2}} が得られる。 |
あえてやりませんが、これらは、\(-\frac{2\sqrt{2}}{3}\)の\(2\)乗\(+ \ \frac{\sqrt{2}}{6}\)の\(2\)乗\( \ +\frac{\sqrt{2}}{6}\)の\(2\)乗とやると、ちゃんと長さが\(1\)になるはずです。
さらに、この状態で計算してもいいのですが、最初の\(u_1\)というのと\(\left(
\begin{array}{crl}
\frac{1}{3} \\
\frac{2}{3} \\
\frac{2}{3}
\end{array}
\right)\)というのと、\(\left(
\begin{array}{crl}
-\frac{2\sqrt{2}}{3} \\
\frac{\sqrt{2}}{6} \\
\frac{\sqrt{2}}{6}
\end{array}
\right)\)の内積を取ってみると、\(\frac{1}{3}×-\frac{2\sqrt{2}}{3}\)とやると、\(- \frac{2\sqrt{2}}{9}\)です。そして\(\frac{2}{3}\)と\(\frac{\sqrt{2}}{6}\)を掛け算すると、\(2\)と\(6\)で約分して\(\frac{\sqrt{2}}{9}\)となります。\(\frac{2}{3}\)と\(\frac{\sqrt{2}}{6}\)も同様で\(\frac{\sqrt{2}}{9}\)となります。
そうすると、\(-\frac{2\sqrt{2}}{9} \ + \ \frac{\sqrt{2}}{9} \ + \ \frac{\sqrt{2}}{9}\)となり、トータルすると\(0\)となるはずです。そして、確かに\(u_1\)と\(u_2\)というのが垂直に交わる、ということが分かります。
さて、これで2つ目まで作れたので、次のステップに行きます。
3番目のステップとしては、とりあえず\(\tilde{u}_3\)というのが、\(v_3 \ – \ (u_1, \ v_3)u_1 \ – (u_2, \ v_3)u_2\)というのをやってあげればいい、ということになります。
| 次に、
\(\tilde{u}_3 := v_3 \ – \ (u_1, \ v_3)u_1 \ – \ (u_2, \ v_3)u_2\) \(= \ \left(\begin{array}{crl} \(=\left(\begin{array}{crl} となる。 |
\(v_3\)というのが\(\left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)というベクトルでした。ここはそのまま、最初の約束のものを持ってきます。次はこのベクトルと、\(u_1\)の内積を取ったもの、これは\(\left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)ですから、\(u_1\)というのは\(\left(
\begin{array}{crl}
\frac{1}{3} \\
\frac{2}{3} \\
\frac{2}{3}
\end{array}
\right)\)というベクトルなので、内積を取ったものは\(\frac{2}{3}\)となります。なので、\((u_1, \ v_3)\)が\(\frac{2}{3} \ – \ \frac{2}{3}\)倍の\(u_1\)となるため、\(-\frac{2}{3}\left(
\begin{array}{crl}
\frac{1}{3} \\
\frac{2}{3} \\
\frac{2}{3}
\end{array}
\right)\)となります。後ろも同じです。\(u_2\)つまり\(\left(
\begin{array}{crl}
-\frac{2\sqrt{2}}{3} \\
\frac{\sqrt{2}}{6} \\
\frac{\sqrt{2}}{6}
\end{array}
\right)\)と、\(v_3\)つまり\(\left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)を内積取ったものがどうなるかというと、\(\frac{\sqrt{2}}{6}\)となるはずです。そのため、\(-\frac{\sqrt{2}}{6}\)倍の\(u_2\)とやると、\(\left(
\begin{array}{crl}
-\frac{2\sqrt{2}}{3} \\
\frac{\sqrt{2}}{6} \\
\frac{\sqrt{2}}{6}
\end{array}
\right)\)となるわけです。
これも頑張って計算していくと、第1成分は\(0 \ – \frac{2}{9}\)で、マイナスとマイナスなので\(+ \ \frac{4}{18}\)、約分すると\(\frac{2}{9}\)となり、ちょうど\(0\)となります。第2成分、第3成分も同様にして計算していくと、次のようになります。
\(= \left(
\begin{array}{crl}
0 \\
-\frac{1}{2} \\
\frac{1}{2}
\end{array}
\right)\)
なので\(\tilde{u}_3\)というのはこのようになります。これも長さを計算すると、長さが\(\frac{1}{\sqrt{4}} \ + \ \frac{1}{4}\)、\(\frac{1}{\sqrt{2}}\)となるため、長さ\(\frac{1}{\sqrt{2}}\)です。\(\frac{1}{\sqrt{2}}\)で割るということは、\(\sqrt{2}\)を掛けるということですが、そうすると次のようになります。
| これを正規化すると
\(u_3 \ = \ \frac{\tilde{u}_3}{||\tilde{u}_3||} \ = \ \sqrt{2} \left( |
このようになり、結局そういうわけで、得られた正規直交基底というのは、\(\left(
\begin{array}{crl}
\frac{1}{3}\\
\frac{2}{3}\\
\frac{2}{3}
\end{array}
\right)\)と\(\left(
\begin{array}{crl}
-\frac{2\sqrt{2}}{3} \\
\frac{\sqrt{2}}{6} \\
\frac{\sqrt{2}}{6}
\end{array}
\right)\)と\(\left(
\begin{array}{crl}
0 \\
-\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}} \\
\end{array}
\right)\)となります。実際に、これらは長さが\(1\)であることは、少し計算してみるとすぐにわかります。違うベクトル同士を内積すると、どれを組み合わせても\(0\)になるということも、少し考えてみるとわかると思います。
例えば、得られた基底\(\left(
\begin{array}{crl}
-\frac{2\sqrt{2}}{3} \\
\frac{\sqrt{2}}{6} \\
\frac{\sqrt{2}}{6}
\end{array}
\right)\)と\(\left(
\begin{array}{crl}
0 \\
-\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{array}
\right)\)を内積してみます。そうすると、1行目同士は\(0\)なので消え、\(\left(
\begin{array}{crl}
-\frac{2\sqrt{2}}{3} \\
\frac{\sqrt{2}}{6} \\
\frac{\sqrt{2}}{6}
\end{array}
\right)\)の2行目と3行目は数字が同じであり、\(\left(
\begin{array}{crl}
0 \\
-\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{array}
\right)\)の2行目と3行目は数字が同じで2行目だけ数字が付いています。そうすると、2列目同士を掛けたもの+3列目同士を掛けたものは\(0\)になります。そのため、\(u_2\)と\(u_3\)の内積は\(0\)だとわかります。全く同じように、\(u_1\)と\(u_3\)の内積も分かるので、こうしてできた\(u_1, \ u_2, \ u_3\)というのは、確かに正規直交基底になっています。
ここで、先程の\(v_1 \ = \ \left(
\begin{array}{crl}
1 \\
2 \\
2
\end{array}
\right), \ v_2 \ = \ \left(
\begin{array}{crl}
0 \\
1 \\
1
\end{array}
\right), \ v_3 \ = \ \left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)、これが3つセットとしたものですが、これの順番を並び替えた\(v_1 \ = \ \left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right), \ v_1 \ = \ \left(
\begin{array}{crl}
0 \\
1 \\
1
\end{array}
\right), \ v_3 \ = \ \left(
\begin{array}{crl}
1 \\
2 \\
2
\end{array}
\right)\)に対して、グラム=シュミットの直交法をやってみます。
手順は先程と同様です。まず、長さ\(1\)になるように正規化します。
|
\(v_1 \ = \ \left( に対し、グラム=シュミットの正規直交法を適用してみよう。 まず、 \(u_1 \ ≔ \ \frac{v_1}{||v_1||} \ = \ \left( が得られる。 |
これが1つ目のベクトルです。実はこのベクトルは、初めから長さが1なので、特に変わりません。そういうわけで、\(u_1\)というのは\(\left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)であることがわかります。
次は、\(v_2\)と今作った\(v_1\)を使って計算します。\(v_2\)が\(\left(
\begin{array}{crl}
0 \\
1 \\
1
\end{array}
\right)\)で、\(u_1\)と\(v_2\)の内積をとると\(1\)となります。\(-1\)倍の\(u_1\)、引き算すると\(\left(
\begin{array}{crl}
0 \\
1 \\
1
\end{array}
\right) \ – \ \left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)となり、その結果\(\left(
\begin{array}{crl}
0 \\
1 \\
0
\end{array}
\right)\)というベクトルが出来ます。
一応、これは直交化しただけの状態で、ここまで長さは\(1\)かどうかはまだわからない状態で作ったことになるのですが、これは長さ\(1\)です。なので\(u_2\)を使い、正規化のプロセスをしても、変わらず\(\left(
\begin{array}{crl}
0 \\
1 \\
0
\end{array}
\right)\)と得られました。
| \(\tilde{u}_2 \ ≔ \ v_2 \ – \ (u_1, \ v_2)u_1 \ = \ \left( \begin{array}{crl} 0 \\ 1 \\ 1 \end{array} \right) \ – \ \left( \begin{array}{crl} 0 \\ 0 \\ 1 \end{array} \right) \ = \ \left( \begin{array}{crl} 0 \\ 1 \\ 0 \end{array} \right)\)となる。これを正規化すると\(u_2 \ ≔ \ \frac{\tilde{u}_2}{||\tilde{u}_2||} \ = \ \left( \begin{array}{crl} 0 \\ 1 \\ 0 \end{array} \right)\)が得られる。 |
また、同様に3つ目を作るとなると、\(\left(
\begin{array}{crl}
1 \\
2 \\
2
\end{array}
\right)\)というベクトルから、\((u_1, \ v_3)\)倍の\(u_1\)と\((u_2, \ v_3)\)倍の\(u_2\)を引きます。\(u_1\)と\(u_3\)の内積は\(\left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)と\(\left(
\begin{array}{crl}
1 \\
2 \\
2
\end{array}
\right)\)の内積なので\(2\)となり、2倍の\(\left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)となります。そして\(u_2\)と\(u_3\)の内積は、\(\left(
\begin{array}{crl}
0 \\
1 \\
0
\end{array}
\right)\)と\(\left(
\begin{array}{crl}
1 \\
2 \\
2
\end{array}
\right)\)の内積であるから、やはり\(2\)となります。\(2\)倍の\(\left(
\begin{array}{crl}
0 \\
1 \\
0
\end{array}
\right)\)です。これを計算するとどうなるのかというと、次のようになります。
| \(\tilde{u}_3 \ ≔ \ v_3 \ – \ (u_1, \ v_3)u_1 \ – \ (u_2, \ v_3)u_2\)
\( \ = \ \left( \( \ = \ \left( となる。 |
\(\left(
\begin{array}{crl}
1 \\
0 \\
0
\end{array}
\right)\)が残りました。
| これを正規化すると
\(u_3 \ := \frac{\overline{u}_3}{||~u_3||}= \sqrt{2} 同じ基底からスタートしても、順番を変えると結果が異なる! |
これも「\(1\)を正規化すると」と書いていますが、長さが\(1\)なので正規化しても変わりません。このように順番違いでやったとなると、こうして出来上がったものは\(\left(
\begin{array}{crl}
0 \\
0 \\
1
\end{array}
\right)\)と\(\left(
\begin{array}{crl}
0 \\
1 \\
0
\end{array}
\right)\)と\(\left(
\begin{array}{crl}
1 \\
0 \\
0
\end{array}
\right)\)です。これが、グラム=シュミットの直交化で得られた3つのベクトルです。さっきのものより随分シンプルに感じますが、この3つは、いわゆる標準正規直交基底(標準基底)になっています。
というわけで、実は、同じ基底からスタートしたとしても、このグラムシュミットの直交化を適用していく順番によって、出来上がりが少し変わっていきます。「同じ基底からスタートしたとしても」というのは、「1番目のものが、最初の\(v_1\)と方向が一緒になる」という縛りで作っているので、それによってその影響を受けるというのもあるし、1番目の方向を揃えたとしても、2番目以降のものも、実は、少し結果が変わります。
例えば、普通に見てる3次元の空間というのが、図のようになっていたとします。

このようになっていたところに、空間の絵を描くのなかなか難しいのですが、下図の青矢印のように最初の\(v_1\)がいます。

そして\(v_2\)と\(v_3\)は次のような青矢印です。

こんな感じで基底になっていたとします。
この状態から、この\(v_1, \ v_2, \ v_3\)で正規直交化をするとどんなことになるかというと、とりあえず1番目のものについては\(v_1\)と同じ方向を向いています。

次に、\(u_2\)の方向がどうなるかというと、この状態だと次の図のようになります。

さらに、これら2つともに垂直な方向に\(u_3\)が出来上がります。

\(u_1\)の方向にまず依存して最初の方向が決まり、そのあと\(u_2\)や\(u_3\)というのが、その後の\(v_2\)や\(v_3\)の並びによって決まっていきます。
ちなみに、\(\tilde{u}_3 \ := \ v_3 \ – \ (u_1, \ v_3) \ u_1 \ – \ (u_2, \ v_3) \ u_2\)のような式を計算する時に、先程の証明のところでも紹介しましたが、内積を取った時に確かに\(0\)になるとなっていますが、この計算には、実はちゃんと意味があります。例えば、これだと\(v_3\)というベクトルを\(u_1\)と\(u_2\)で張られる平面に向かって正射影を下ろしている、みたいになります。正射影とはどうなっているものか、少し絵を書いてみるとするならば、まず下図のように\(u_1\)、\(u_2\)というベクトルがあります。

作り方としては、ここまで垂直になっているわけです。そうすると、この\(u_1\)と\(u_2\)で作られる下図のような平面ができるわけです。

この時に、これらに対して\(v_3\)が、例えば次のようになっていたとします。

実は、この時、\(\tilde{u}_3 \ := \ v_3 \ – \ (u_1, \ v_3) \ u_1 \ – \ (u_2, \ v_3) \ u_2\)を計算しているのが何をやってるのかと言うと、\(v_3\)から\(u_1, \ u_2\)の平面に向かって垂線を下ろします。

そうすると、どこかに降りてきた垂線の足というのができるわけですが、この時、この\(u_1\)と\(u_2\)で張られている平面に対して、\(u_1\)と\(u_2\)で何か下図のような線が作れるわけです。

実はこのように垂線を下ろしてきたところのこのベクトルが、\((u_1, \ v_3) \ u_1 \ – \ (u_2, \ v_3) \ u_2\)となります。

ということは、この\(\tilde{u}_3\)ですが、\(v_3\)から\((u_1, \ v_3) \ u_1 \ – \ (u_2, \ v_3) \ u_2\)ベクトルを引いたものになるため、実は先程おろした垂線です。

このベクトルが\(\tilde{u}_3\)です。ということは、\(\tilde{u}_3\)というのは長さを\(1\)になるように調整すると\(u_3\)というのが作られるので、下図のようになります。

\(u_1\)と\(u_2\)どちらも垂直になっており、\(\tilde{u}_3\)の長さが\(1\)になるように縮めることで\(u_3\)というのが作られる、というカラクリになっています。
一応、模式的に3次元空間で書きましたが、次元が増えても状況は変わりません。\(\tilde{u}_3 \ := \ v_3 \ – \ (u_1, \ v_3) \ u_1 \ – \ (u_2, \ v_3) \ u_2\)の計算は、実は「ここ」の引き算をしているこの\((u_1, \ v_3) \ u_1 \ – \ (u_2, \ v_3) \ u_2\)は\(v_3\)というのを\(u_1\)と\(u_2\)、より一般に、どこかまでで張られる空間への射影を取っているような数学的操作をしています。
今回の解説は以上です。次回は、いよいよ「対角化のもう一つのアプローチ」の本編に入っていきます。
最後に、究進塾では、授業補習、中間期末テスト対策、レポート作成指導、大学院入試対策などを行っております。ご興味のある方は「無料体験授業のお申込み」からお気軽にお問い合わせください。
講師:久松真人

東京工業大学卒業。東京工業大学大学院数学研究科博士課程修了。数学に特化した講師です。大学受験はもちろん、大学授業補習、大学院入試のサポートにも熟練しています。また、大学の情報系科目のサポートも経験があります。穏やかな性格と柔らかい雰囲気、丁寧な指導、そして数学愛が溢れる、おすすめ講師です。☆大学授業補習の詳細はこちら
動画紹介
【究進塾】大学補習チャンネル
【大学数学】線形代数 第8回 -対角化のもう一つのアプローチ 準備編2-: 46分29秒



