QR分解(キューアールぶんかい、英: QR decomposition, QR factorization)とは、m × n 実行列 Aを、 m 次直交行列 Q と m × n 上三角行列 R との積への分解により表すこと、またはそう表した表現をいう。このような分解は常に存在する。
QR分解は線型最小二乗問題を解くために使用される。また、固有値問題の数値解法の1つであるQR法の基礎となっている。
すべての実正方行列 Aは直交行列Qと上三角行列(別名右三角行列)Rを用いて
-
と分解できる。もしAが正則ならば、Rの対角成分が正になるような因数分解は一意に定まる。
もしAが複素正方行列ならば、Qがユニタリ行列 (つまり )となるような分解A = QRが存在する。
もしAがn個の線形独立な列を持つなら、Qの最初のn列はAの列空間の正規直交基底をなす。より一般的に、1 ≤ k ≤ nの任意のkについて、Qの最初のk列はAの最初のk列の線型包をなす[3]。Aの任意の列kがQの最初のk列にのみ依存するということは、Rが三角行列であることから明らかである[3]。
より一般的に、m ≥ nである複素m×n行列Aを、m×mユニタリ行列Qとm×n上三角行列Rに分解することができる。m×n上三角行列の下から(m−n)行はすべてゼロであるため、Rや、RとQ両方の分割を簡単に行うことができる。
-
ここで、R1はn×n上三角行列、0は(m − n)×n零行列、Q1はm×n行列、Q2はm×(m − n)行列で、Q1とQ2は両方直交する列を持つ。
Q1R1をGolub & Van Loan (1996, §5.2)はAの薄い(thin)QR分解と呼び、 Trefethen & Bauは軽減(reduced)QR分解と呼んでいる[3]。もしAが最大階数nであり、R1の対角成分を正にするならば、R1とQ1は一意に定まる。しかし一般的にQ2はそうではない。R1はA* A (Aが実行列の場合ATAに等しい)のコレスキー分解の上三角部分に等しい。
同様に、Lを下(lower)三角行列として、QL、RQ、LQ分解を定義することができる。
QR分解を計算する手法として、グラム・シュミット分解、ハウスホルダー変換、ギブンス回転などがある。それぞれ利点と欠点がある。
グラム・シュミットの正規直交化法を最大階数行列の列 に適用することを考える。内積 (複素ベクトルの場合 )とする。
射影の定義より、
-
したがって、
-
ここで を新しく計算された正規直交基底上に表すことができ、 であるから、
-
これは行列の形に書くことができ、
-
ただし、
-
-
-
の分解を考える。
正規直交行列 に対して、
-
が常に成り立つから、グラム・シュミット法により以下の手順で を計算できる。
-
したがって、
-
RQ分解は行列Aを上三角行列R(別名右三角)と直交行列Qに変換する。QR分解との違いはこれらの行列の順番だけである。
QR分解はグラム・シュミットの正規直交化法をAの最初の列から最後の列の順に適用する。
RQ分解はグラム・シュミットの正規直交化法をAの最後の行から最初の行の順に適用する。
グラム・シュミットの正規直交化法は本来、数値的に不安定である。射影の応用として直交化との幾何学的な類似性があるが、直交化自体は数値的な差異が生じやすい。しかしながら、実装が簡単という大きな利点があり、外部線形代数ライブラリが利用できない場合のプロトタイピングに便利なアルゴリズムである。
ハウスホルダー変換 (またはハウスホルダー鏡映)はベクトルを取り、平面または超平面に関する鏡映をする変換である。この演算はm×n行列 (m ≥ n)のQR変換の計算に使うことができる。
Qは一つの座標を除いたすべての座標が未知でもベクトルを鏡映するために使用できる。
スカラαに対して を満たすような の任意の実m次元列ベクトル を考える。もしこのアルゴリズムが浮動小数点演算を用いて実装されている場合、桁落ち(による誤差の拡大)を防ぐため、行列Aの最終的な上三角部分においてすべての要素が0である後のピボット座標 に対し、αを のk番目の座標の逆符号とする。複素行列の場合には、
-
(Stoer & Bulirsch 2002, p. 225)として、さらに以下のQの導出において転置を共役転置に読み替えること。
ここで、 をベクトル(1 0 … 0)T、||·||をユークリッド距離、 をm×m単位行列とし、
-
あるいは、 が複素行列ならば、
-
とおく。
はm×mハウスホルダー行列であり、
-
これによりm×n行列Aを上三角の形に漸次変換できる。まず、xの最初の列を選んで得られるハウスホルダー行列Q1にAを乗算する。この結果、行列Q1Aは左の列が(最初の行を除き)ゼロになる。
-
この操作をA′ (Q1Aから最初の列と最初の行を除いたもの)に繰り返すと、ハウスホルダー行列Q′2が得られる。Q′2はQ1より小さいということに注意すること。A′の代わりにQ1Aで計算したいため、A′を左上に拡張し、ひとつの1を埋める必要がある。つまり、一般的には
-
とする。
回このプロセスを繰り返すと、 のとき、
-
は上三角行列である。そこで、
-
とすると、
は のQR分解である。
この鏡映変換を用いた計算方法は先述のグラム・シュミット法よりも数値的安定性がある。
下表にサイズnの正方行列を仮定したときの、ハウスホルダー変換によるQR分解のk番目のステップにおける計算量を示す。
演算
|
k番目のステップにおける計算量
|
乗算
|
|
加算
|
|
除算
|
|
平方根
|
|
これらの数をn − 1ステップ(サイズnの正方行列であるため)まで合計して、このアルゴリズムの(浮動小数点演算の観点からの)複雑さは
-
と表せる。
-
の分解を考える。
まず、行列Aの最初の列、ベクトル を、 に変換する鏡映を見つける必要がある。
今、
-
とする。
ここで、
- であり、
であるから、
- and であり、
-
である。
今、
-
を見てみると、すでにほぼ三角行列である。あとは(3, 2)要素を零にするだけでよい。
(1, 1)における小行列を取り、同じプロセスを
-
に再び適用する。
先述のメソッドと同様にして、このプロセスの次のステップが正しく動作するために、1で直和を取ることにより、ハウスホルダー変換
-
を得る。
今、
-
または、有効数字四桁で、
-
を得た。
行列Qは直交行列であり、Rは上三角行列であるため、A = QRは求めるべきQR分解である。
ハウスホルダー変換の使用は、R行列のゼロを生成するメカニズムに鏡映を利用しているため、最もシンプルでかつ数値的に安定したQR分解アルゴリズムである。しかしながら、新しい零要素を生成する毎回の鏡映変化において行列QとR両方の行列全体を書き換えるため、ハウスホルダー変換は必要とするメモリ帯域幅が多く、並列化できない。(ただし鏡映変換のブロック化に基づくブロック化ハウスホルダ変換を使えばメモリ帯域幅への要求を低減することができる)
QR分解はギブンス回転を使用しても計算できる。各回転により行列の亜対角要素がゼロになり、R行列を構成できる。すべてのギブンス回転を結合することで直交行列Qを構成できる。
実際には、行列全体を構成して乗算をするようなギブンス回転は行われない。代わりに、疎な要素を計算するような無駄な計算をしない、疎なギブンス行列乗算と同等なあるギブンス回転の手順が採られる。そのギブンス回転の手順は少しの非対角成分をゼロにするだけで済み、ハウスホルダー変換よりも容易に並列化できる。
-
の分解を考える。
まず、左下隅の要素、 をゼロにする回転行列を構成する必要がある。この行列 はギブンス回転で求めることができる。まずベクトル を、X軸に沿って回転させる。このベクトルは角度 を持つ。直交ギブンス回転行列 を次のように作る。
-
ここで の結果は 要素がゼロである。
-
同様にしてそれぞれ非対角要素 ・ 要素がゼロであるようなギブンス行列 ・ を構成し、三角行列 を構成する。直交行列 はすべてのギブンス行列の積 で表される。したがって、 であり、QR分解は である。
ギブンス回転によるQR分解は、アルゴリズムを完全に動かすのに必要な行の順序を決定するのが簡単ではないため、実装に最も手間がかかる。しかしながら、新しいゼロ要素 がゼロになる予定の要素の行(i)とその上の行(j)にしか影響しないという特筆すべき利点がある。これにより、ギブンス回転アルゴリズムはハウスホルダー変換手法よりも帯域幅効率が良く、容易に並列化できる。
ピボットQRは列のピボット[4]の新しいステップにおいて、それぞれ初めに残りの列で最も大きいものを取るという点で、通常のグラム・シュミット法とは異なっている。したがって、置換行列Pを次のように導入する。
-
列のピボットはAが(ほぼ)階数落ちである、またはその疑いがある場合に便利である。また、数値的精度を向上させることもできる。通常、Rの対角成分が非増加、つまり となるようにPを選ぶ。この手段により特異値分解よりも低い計算コストでAの(数値的な)階数を求めることができ、いわゆるRank Revealing QR分解(英語版)の基礎となっている。
岩澤分解はQR分解を半単純リー群に一般化している。
- ^ a b c L. N. Trefethen and D. Bau, Numerical Linear Algebra (SIAM, 1997).
- ^ Strang, Gilbert (2019). Linear Algebra and Learning from Data (1 ed.). Wellesley: Wellesley Cambridge Press. p. 143. ISBN 978-0-692-19638-0
- ^ Parker, Geophysical Inverse Theory, Ch1.13.
- Golub, Gene H.; Van Loan, Charles F. (2013) (英語). Matrix computations (Fourth ed.). Johns Hopkins University Press. ISBN 978-1421407944. MR3024913. https://books.google.co.jp/books?id=X5YfsuCWpxMC
- Trefethen, Lloyd N.; Bau III, David (1997) (英語). Numerical Linear Algebra. Society for Industrial and Applied Mathematics. ISBN 9780898713619
- Horn, Roger A.; Johnson, Charles R. (1985). “Section 2.8.” (英語). Matrix Analysis. Cambridge University Press. ISBN 0-521-38632-2
- Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, Brian P. (2007). “Section 2.10. QR Decomposition” (英語). Numerical Recipes: The Art of Scientific Computing (3rd ed.). New York: Cambridge University Press. ISBN 978-0-521-88068-8
- Stoer, Josef; Bulirsch, Roland (2002) (英語). Introduction to Numerical Analysis. Texts in applied mathematics, 12 (3rd ed.). Springer. ISBN 0-387-95452-X
- Golub, Gene H.; Van Loan, Charles F. (1996), Matrix Computations (3rd ed.), Johns Hopkins, ISBN 978-0-8018-5414-9 .