行列のQR分解と応用(固有値・最小二乗法)

QR分解

任意の正方行列 AA に対して,あるユニタリ行列 QQ と上三角行列 RR が存在して A=QRA=QR と分解できる。

ただし,ユニタリ行列とは,列ベクトルが正規直交基底をなす行列です。→ユニタリ行列の定義と性質の証明

QR分解できることの証明

  1. グラムシュミットの直交化法
  2. 行列を縦ベクトルの集まりと見る考え方

を理解していれば簡単です。

証明

n×nn\times n 行列 AA が正則な場合のみ証明する。

AAii 列目を aiundefined\overrightarrow{a_i} とおく。aiundefined\overrightarrow{a_i} たちは線形独立であり,グラムシュミットの直交化法を使うと,正規直交基底 q1undefined,...,qnundefined\overrightarrow{q_1},...,\overrightarrow{q_n} を得る。

このとき,qjundefined\overrightarrow{q_j}a1undefined,...,ajundefined\overrightarrow{a_1},...,\overrightarrow{a_j} の一次結合である。この係数を rijr_{ij} で表す: qjundefined=i=1jrijaiundefined\overrightarrow{q_j}=\sum_{i=1}^jr_{ij}\overrightarrow{a_i}

この nn 本の関係式をまとめて行列の形で書くと, (q1undefined,q2undefined,,qnundefined)=(a1undefined,a2undefined,,anundefined)(r11r12r1n0r22r2n00rnn)(\overrightarrow{q_1},\overrightarrow{q_2},\dots,\overrightarrow{q_n})=(\overrightarrow{a_1},\overrightarrow{a_2},\dots,\overrightarrow{a_n})\begin{pmatrix}r_{11}&r_{12}&\cdots&r_{1n}\\ 0&r_{22}&\cdots &r_{2n}\\ \vdots&\vdots&\ddots &\vdots\\ 0&0&\cdots&r_{nn}\end{pmatrix}

左辺はユニタリ行列である。これを QQ とおく。右辺の上三角行列を RR' とおくと, Q=ARQ=AR' となる。右から RR' の逆行列 RR をかける(AA が正則なら detR0\det R'\neq 0 より RR' も正則)と, A=QRA=QR となる。上三角行列の逆行列は上三角行列なので RR は上三角行列である。

QR分解と行列式

QR分解できたら,行列式の絶対値が簡単に計算できる。

説明

A=QRA=QR とQR分解できたとする。

積の行列式は行列式の積なので,

detA=detQdetR\det A=\det Q\det R

である。ユニタリ行列の行列式の絶対値は 11 なので detA=detR|\det A|=|\det R|

さらに,三角行列の行列式は対角成分の積(※)なので

detA|\det A| は簡単に計算できる。

上三角行列と下三角行列の意味と6つの定理 の定理1

QR法

行列の固有値を計算する方法の1つにQR法があります。QR法ではQR分解を繰り返します。

AA の固有値を計算する具体的な手順は,QR分解行列積の計算を交互にやるだけです:

  1. A=Q1R1A=Q_1R_1 とQR分解する。
  2. A2=R1Q1A_2=R_1Q_1 を計算する。
  3. A2=Q2R2A_2=Q_2R_2 とQR分解する。
  4. A3=R2Q2A_3=R_2Q_2 を計算する。
  5. 以下同様に AkQkRkA_k=Q_kR_k と分解して Ak+1=RkQkA_{k+1}=R_kQ_k を計算する。
  6. 十分大きい nn に対して AnA_n の対角成分が AA の固有値の近似値となる。
QR法の背後にある定理

定理1:AAAnA_n の固有値は等しい

定理2:AA の固有値の絶対値がすべて異なるなら,nn\to\inftyAnA_n は上三角行列に近づく(対角成分より下が 00 に収束する)

定理1と定理2,および「三角行列の対角成分は固有値と一致する」ことから上記の手順6で述べたことが成立します。

定理1の証明は簡単です。

証明

ユニタリ行列は正則であり, A2=R1Q1=(Q11A)Q1=Q11AQ1A_2=R_1Q_1=(Q_1^{-1}A)Q_1=Q_1^{-1}AQ_1 相似変換で固有値は変わらないので A2A_2AA の固有値は等しい。

同様に,k=3,4,...,nk=3,4,...,n に対して Ak=Rk1Qk1=Qk11Ak1Qk1A_{k}=R_{k-1}Q_{k-1}=Q_{k-1}^{-1}A_{k-1}Q_{k-1}

より AnA_nAA の固有値は等しい。

定理2の証明はそこそこ大変なので省略します。

QR分解と最小二乗法

定理

AAA^{\top}A は正則とする。

Axb2\|Ax-b\|_2 を最小化する問題の解を x=xx=x^{*} とする。

もし A=QRA=QR とQR分解できれば,Rx=QbRx=Q^{\top}b を解くことで xx^* が得られる。

RR は上三角行列なので,Rx=QbRx=Q^{\top}b は簡単に解けます(後ろの成分から順々に計算できる)。

定理の証明

AAA^{\top}A が正則なとき,xx^*AAx=AbA^{\top}Ax=A^{\top}b の唯一の解である。
→正規方程式の導出と計算例

もし A=QRA=QR とQR分解できて,Rx=QbRx^{*}=Q^{\top}b なら正規方程式を満たすことがわかる:

AAx=RQQRx=RRx=RQb=(QR)b=AbA^{\top}Ax^*\\ =R^{\top}Q^{\top}QRx^{*}\\ =R^{\top}Rx^{*}\\ =R^{\top}Q^{\top}b\\ =(QR)^{\top}b\\ =A^{\top}b

QRコードを見るたびにQR分解を意識してしまいますね。