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

QR分解

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

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

QR分解できることの証明

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

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

証明

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

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

このとき,qj→\overrightarrow{q_j} は a1→,...,aj→\overrightarrow{a_1},...,\overrightarrow{a_j} の一次結合である。この係数を rijr_{ij} で表す: qj→=∑i=1jrijai→\overrightarrow{q_j}=\sum_{i=1}^jr_{ij}\overrightarrow{a_i}

この nn 本の関係式をまとめて行列の形で書くと, (q1→,q2→,…,qn→)=(a1→,a2→,…,an→)(r11r12⋯r1n0r22⋯r2n⋮⋮⋱⋮00⋯rnn)(\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 とおく。右辺の上三角行列を R′R' とおくと, Q=AR′Q=AR' となる。右から R′R' の逆行列 RR をかける(AA が正則なら det⁡R′≠0\det R'\neq 0 より R′R' も正則)と, A=QRA=QR となる。上三角行列の逆行列は上三角行列なので RR は上三角行列である。

QR分解と行列式

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

説明

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

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

det⁡A=det⁡Qdet⁡R\det A=\det Q\det R

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

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

∣det⁡A∣|\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. 以下同様に Ak=QkRkA_k=Q_kR_k と分解して Ak+1=RkQkA_{k+1}=R_kQ_k を計算する。
  6. 十分大きい nn に対して AnA_n の対角成分が AA の固有値の近似値となる。
QR法の背後にある定理

定理1:AA と AnA_n の固有値は等しい

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

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

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

証明

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

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

より AnA_n と AA の固有値は等しい。

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

QR分解と最小二乗法

定理

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

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

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

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

定理の証明

A⊤AA^{\top}A が正則なとき,x∗x^* は A⊤Ax=A⊤bA^{\top}Ax=A^{\top}b の唯一の解である。
→正規方程式の導出と計算例

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

A⊤Ax∗=R⊤Q⊤QRx∗=R⊤Rx∗=R⊤Q⊤b=(QR)⊤b=A⊤bA^{\top}Ax^*\\ =R^{\top}Q^{\top}QRx^{*}\\ =R^{\top}Rx^{*}\\ =R^{\top}Q^{\top}b\\ =(QR)^{\top}b\\ =A^{\top}b

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