高校化学2933198 views
高校生物553211 views
中学社会670081 views
数学講師2913151 views
高校国語790013 views
LaTeX965557 views
高校倫理1444503 views
高校日本史191026 views
ヒストリア294981 views
小学理科721729 views
Help
Tools

English

直交行列とユニタリ行列|長さを保つ行列の性質と、回転・鏡映の見分け方

長さを変えない行列を集めると、直交行列という一群になる。回転も鏡映もここに入る。

条件はこの 1 本だけである。ここから、逆行列が転置で書けること、行列式が に限ること、固有値の絶対値が 1 になることが順に出てくる。

直交行列の定義

実正方行列 が を満たすとき、 を直交行列という。転置がそのまま逆行列になっている、と読んでもよい。

正方行列では片側の逆行列がもう片側の逆行列でもあるので、 も自動的に成り立つ。行について言えることと列について言えることが、いつも対になる理由がここにある。

逆行列を求める手間がかからない点は、実用の上でも大きい。掃き出し法を回さず、成分を並べ替えるだけで済む。

列が正規直交基底になる

の 成分は、 の第 列と第 列の内積である。それが単位行列に等しいということは、列どうしの内積が次のようになることを意味する。

つまり、どの列も長さ 1 で、異なる列どうしは直交する。直交行列とは、正規直交基底を列に並べた行列だといえる。

からは、行についても同じことが言える。行と列のどちらから見ても正規直交である。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 220" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<text x="230" y="24" font-size="11" fill="#9a9a9a" text-anchor="middle">列は長さ 1 で、たがいに直角に交わる</text>
	<circle cx="200" cy="130" r="70" fill="none" stroke="#c8c8c8" stroke-width="1" stroke-dasharray="4 3"></circle>
	<line x1="110" y1="130" x2="300" y2="130" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="200" y1="40" x2="200" y2="200" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="200" y1="130" x2="256" y2="88" stroke="#1b81e0" stroke-width="1.5"></line>
	<polygon points="260,85 250,86 254,93" fill="#1b81e0"></polygon>
	<line x1="200" y1="130" x2="158" y2="74" stroke="#1b81e0" stroke-width="1.5"></line>
	<polygon points="155,70 157,80 164,76" fill="#1b81e0"></polygon>
	<path d="M 214 119 L 205 107 L 193 116" fill="none" stroke="#d0562a" stroke-width="1"></path>
	<text x="268" y="82" font-size="12" fill="#1b81e0">q1</text>
	<text x="140" y="70" font-size="12" fill="#1b81e0">q2</text>
	<text x="230" y="212" font-size="11" fill="#9a9a9a" text-anchor="middle">単位円の上に先端が乗り、なす角は直角になる</text>
</svg>

例:定義にあてはめて確かめる

第 1 列は で、長さは である。第 2 列も同じく長さ 1 になる。

2 つの列の内積は で直交している。したがって が成り立ち、この行列は直交行列である。

成分の絶対値は 1 を超えない

列の長さが 1 なので、その列に属する成分はどれも絶対値 1 以下になる。1 つの成分だけで長さを使い切ってしまうからである。

等号が成り立つのは、その列が標準基底のどれかに一致するときに限る。先ほどの例では と が並び、2 乗の和がちょうど 1 になっていた。

成分が有界なので、直交行列は成分の意味でも暴れない。数値計算で扱いやすい理由の 1 つである。

長さと内積を保つ

直交行列を掛けても、ベクトルの長さは変わらない。転置と組にすると が現れて消えるからである。

内積についても同じ計算が通り、 になる。長さと内積が保たれるので、2 本のベクトルのなす角も変わらない。

図形に当てはめれば、形も大きさもそのままで動かす変換にあたる。伸び縮みやゆがみは起きない。

逆に、長さを保てば直交行列である

長さを保つ線形写像は、必ず直交行列で書ける。内積が長さだけから復元できることを使う。

右辺の 3 つの長さがどれも保たれるので、左辺の内積も保たれる。標準基底に当てはめれば、列が正規直交であることがそのまま出る。

長さを保つことと は、言い方が違うだけの同じ条件だと分かる。

行列式は 1 か -1

の両辺の行列式を取る。転置しても行列式は変わらないので、 となる。

実行列なので は実数であり、値は か に限られる。中間の値は取れない。

の場合を回転、 の場合を鏡映が混じった変換という。行列式の符号が、向きを保つかどうかを分けている。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 210" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<text x="120" y="26" font-size="11" fill="#1f1f1f" text-anchor="middle">回転(行列式 1)</text>
	<polygon points="60,140 150,140 150,80" fill="#1b81e0" fill-opacity="0.10" stroke="#1b81e0" stroke-width="1.5"></polygon>
	<text x="52" y="154" font-size="11" fill="#1f1f1f">A</text>
	<text x="154" y="154" font-size="11" fill="#1f1f1f">B</text>
	<text x="156" y="76" font-size="11" fill="#1f1f1f">C</text>
	<path d="M 96 118 A 26 26 0 0 0 118 96" fill="none" stroke="#d0562a" stroke-width="1"></path>
	<polygon points="120,92 113,99 121,101" fill="#d0562a"></polygon>
	<text x="120" y="186" font-size="11" fill="#9a9a9a" text-anchor="middle">A から C へ回る向きは変わらない</text>
	<text x="340" y="26" font-size="11" fill="#1f1f1f" text-anchor="middle">鏡映(行列式 -1)</text>
	<line x1="340" y1="60" x2="340" y2="160" stroke="#c8c8c8" stroke-width="1" stroke-dasharray="4 3"></line>
	<polygon points="280,140 370,140 370,80" fill="#1b81e0" fill-opacity="0.10" stroke="#1b81e0" stroke-width="1.5"></polygon>
	<polygon points="400,140 310,140 310,80" fill="#d0562a" fill-opacity="0.08" stroke="#d0562a" stroke-width="1.5"></polygon>
	<text x="340" y="186" font-size="11" fill="#9a9a9a" text-anchor="middle">裏返るので、頂点の並ぶ向きが逆になる</text>
</svg>

例:回転と鏡映で向きを見る

角 の回転と、 軸に関する鏡映を並べる。

の行列式は 、 の行列式は である。どちらも列は正規直交で、直交行列の条件を満たす。

三角形を で動かすと頂点の並ぶ向きは保たれ、 では裏返る。行列式の符号は、この裏返りの有無を表している。

固有値の絶対値は 1

固有ベクトル に対して だとする。長さが保たれるので、 が成り立つ。

は零ベクトルではないので、 が出る。複素固有値まで含めれば、固有値は複素平面の単位円上に並ぶ。

実の固有値は か しかない。 に属する固有ベクトルは動かない向き、 に属するものは反転する向きを表す。

例:回転行列の固有値は単位円上にある

角 の回転行列の固有多項式を書き下す。トレースが 、行列式が 1 なので次の形になる。

判別式は で、 が と の倍数でなければ実の解を持たない。解は である。

絶対値を計算すれば 1 になる。実の範囲では固有ベクトルが取れないことが、平面上で動かない向きがないことに対応している。

積と逆について閉じている

直交行列どうしの積は、また直交行列になる。転置を外側から順にはがしていけば確かめられる。

逆行列も直交行列である。 で、その転置は に戻るからである。

単位行列も直交行列なので、直交行列の全体は積について群をなす。これを直交群といい、行列式が 1 のものだけを集めたものを特殊直交群という。

2 次の直交行列は回転か鏡映しかない

2 次に限ると、直交行列は 2 つの型に尽きる。第 1 列を単位ベクトルとして と書くと、第 2 列はこれに直交する単位ベクトルなので 2 通りしかない。

左が回転で、行列式は 1 である。右は行列式が で、原点を通るある直線に関する鏡映になる。

高い次元では、この 2 型のような単純な分類にはならない。ただし行列式による向きの区別は、どの次元でも意味を持ち続ける。

例:対称な直交行列は鏡映になる

は対称であり、直交行列でもある。 を計算すると、対角成分が 、非対角成分が になる。

対称かつ直交なら である。2 回かけると元に戻るので、この変換は鏡映にあたる。

行列式は で、先ほどの分類の右側に入る。 を 45 度に取った形だと読める。

例:置換行列は直交行列

成分を並べ替える行列も、直交行列の仲間である。

各列は標準基底のどれかで、長さ 1 かつたがいに直交する。したがって が成り立つ。

行列式は並べ替えの符号で決まり、この例では偶置換なので 1 である。座標の順番を入れ替える操作が、長さを変えないことと結びついている。

ユニタリ行列の定義

複素行列では、転置の代わりに共役転置を使う。 を満たす複素正方行列をユニタリ行列という。

複素内積は片方の成分に共役を取るので、長さを と書く。実の場合とまったく同じ計算で、 が出る。

列が複素の意味で正規直交になることも、実の場合と同じである。共役を取る位置だけが違う。

例:複素成分のユニタリ行列

共役転置は第 1 行と第 2 行を入れ替え、 を に変えたものになる。積を計算すると、対角成分は になる。

非対角成分では と が打ち消し合って 0 である。したがって が成り立つ。

なお は対称だが、実行列ではないので鏡映とは限らない。実の直感をそのまま持ち込めない場面である。

実のユニタリ行列は直交行列にほかならない

成分がすべて実数なら、共役を取っても何も変わらない。共役転置はただの転置になり、ユニタリの条件は に一致する。

つまり直交行列は、ユニタリ行列の実数版である。実対称行列とエルミート行列の関係と、同じ並びになっている。

複素数まで広げると分類が見通しよくなる。実の範囲では固有ベクトルが取れない回転も、複素固有値まで許せば対角化できる。

行列式は絶対値が 1 になる

ユニタリ行列でも、 の行列式を取れば が出る。左辺は である。

したがって で、行列式は単位円上のどこかにくる。実の場合と違い、 に限られない。

行列式が 1 のものだけを集めると、特殊ユニタリ群になる。物理では、この形の行列が対称性を表す道具として使われる。

一般の直交行列の標準形

高い次元の直交行列も、基底を取り替えれば見やすい形になる。適当な直交行列で変換すると、対角に沿って 2 次の回転ブロックと が並ぶ形にできる。

複素固有値が共役の組で現れることが、2 次のブロックとして表に出ている。 と は、動かない向きと反転する向きにあたる。

3 次の場合は、行列式が 1 なら回転ブロック 1 つと が 1 つになる。軸のまわりの回転だという事実が、この形から読める。

数値計算に強い理由

直交行列は長さを変えないので、掛けても誤差が拡大しない。条件数がちょうど 1 で、これは取りうる最小の値である。

逆行列を求める必要がないことも効いてくる。転置を取るだけなので、桁落ちの起きる割り算が入らない。

QR 分解や特異値分解が数値計算で好まれるのは、この性質のためである。行列を直交行列で挟む形にしておけば、途中の誤差が暴れない。

例:直交行列で連立方程式を解く

係数行列が直交行列なら、連立方程式は転置を掛けるだけで解ける。 の両辺に を掛ければよい。

を計算すると と が並ぶ。解は である。

代入して確かめると となり、 に戻る。掃き出し法も逆行列の公式も使っていない。

他の話題とのつながり

対称行列は直交行列で対角化でき、エルミート行列はユニタリ行列で対角化できる。どこまでこの形にできるかを決めるのが、正規行列という条件である。

グラム・シュミットの正規直交化は、与えられた基底から直交行列を作る手続きだと読める。QR 分解はその結果を行列の形にまとめたものである。

回転行列は、行列式が 1 の直交行列の代表である。角の和や軸の取り方まで踏み込んだ話は、回転行列の記事で扱う。

よくある誤り

成分が直交していることと、行列が直交行列であることを混同する。列の長さが 1 でなければ条件を満たさない
を直交行列の定義だと考える。行列式が 1 でも、長さを変える行列はいくらでもある
行だけ、あるいは列だけを調べて安心する。正方行列なら片方から他方が従うが、正方でない行列ではこの言い方が崩れる
直交行列の和も直交行列だと思ってしまう。単位行列を 2 つ足せば になり、長さが 2 倍になる
固有値が実数だと決めてかかる。回転行列の固有値は複素数で、単位円上に乗る
ユニタリ行列の行列式が に限ると覚える。絶対値が 1 なだけで、値は単位円上のどこでもよい
直交行列を掛けると成分が小さくなると期待する。保たれるのは長さで、個々の成分は大きくも小さくもなる

参考文献

Orthogonal matrix - Wikipedia
Unitary matrix - Wikipedia
Orthogonale Matrix - Wikipedia(ドイツ語)
Matrice orthogonale - Wikipédia(フランス語)
直交行列は長さと内積を保つ実行列で、転置がそのまま逆行列になります。列が正規直交基底をなすこと、行列式が 1 か -1 に限られ回転と鏡映を分けること、固有値が単位円上に乗ること、積と逆について閉じていること、複素数版のユニタリ行列との対応、数値計算に強い理由までを、計算例をつけて解説します。