QR分解とは何か

QR分解(QR decomposition, またはQR factorization)とは、任意の実(あるいは複素)行列を直交行列(またはユニタリ行列)と上三角行列の積に分解する方法です。
具体的には、m×nm \times n 行列 AAmnm \geq n)に対して、

A=QRA = QR

と表されます。ここで、

  • QQm×nm \times n の直交行列(列ベクトルが正規直交基底をなす)

  • RRn×nn \times n の上三角行列

となります。


QR分解の意味と役割

QR分解は、行列を「直交部分」と「スケーリング部分」に分ける操作です。
特に次のような用途で重要です:

  1. 線形方程式の数値解法
    連立一次方程式 Ax=bAx = b を解くとき、QR分解を用いると数値的に安定な解法を得やすい。

  2. 最小二乗法
    過剰決定系(方程式の数が未知数より多い場合)の近似解を求める際にQR分解が利用される。

  3. 固有値計算
    QRアルゴリズムの基盤として、行列の固有値を計算する手法に利用される。


QR分解の求め方

QR分解を求める代表的な方法は以下の3つです。

1. グラム・シュミットの正規直交化法

  • 行列 AA の列ベクトルを正規直交化して QQ を構成し、
    その過程で得られる係数から RR を作る。

  • 計算手順は直感的だが、数値的に誤差が蓄積しやすい。

2. 修正グラム・シュミット法

  • 上記の改良版で、数値安定性を改善した方法。

  • 実際の数値計算ではこちらがよく用いられる。

3. ハウスホルダー変換(Householder変換)

  • 行列を「鏡映変換」で次々と簡単な形に変換し、直交行列 QQ を構築する。

  • 数値計算において最も安定的で効率が良い方法とされる。


小さな例

行列

A=[111001]A = \begin{bmatrix} 1 & 1 \\ 1 & 0 \\ 0 & 1 \end{bmatrix}

を考えると、QR分解は次のように表せます。

Q=[12161216026],R=[212062]Q = \begin{bmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{6}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{6}} \\ 0 & \frac{2}{\sqrt{6}} \end{bmatrix}, \quad R = \begin{bmatrix} \sqrt{2} & \frac{1}{\sqrt{2}} \\ 0 & \frac{\sqrt{6}}{2} \end{bmatrix}

これにより A=QRA = QR が成り立ちます。


まとめ

  • QR分解は「行列 = 直交行列 × 上三角行列」に分ける操作。

  • 用途は、最小二乗法、線形方程式の安定解法、固有値計算など。

  • 計算方法は、グラム・シュミット、修正版、ハウスホルダー変換などがある。

ChatGPT5 生成日:2025/09/17