logo

QR分解による最小二乗法 📂行列代数

QR分解による最小二乗法

アルゴリズム

ACm×nA \in \mathbb{C}^{m \times n} とベクトル bCm\mathbf{b} \in \mathbb{C}^{m} について、rankA=n\text{rank} A = n であり、Ax=bA \mathbf{x} = \mathbf{b} の最小二乗解を x\mathbf{x}_{\ast} とする。

ステップ 1. QR 分解

A=Q^R^A = \widehat{Q} \widehat{R} を満たす直交行列 Q^\widehat{Q}上三角行列 R^\widehat{R} を求める。


ステップ 2.

QR 分解で得た Q^\widehat{Q} を使って正射影 P:=Q^Q^P : = \widehat{Q} \widehat{Q}^{\ast} を求める。Ax=PbA \mathbf{x}_{\ast} = P \mathbf{b} なので Q^R^x=Q^Q^b\widehat{Q} \widehat{R} \mathbf{x}_{\ast} = \widehat{Q} \widehat{Q}^{\ast} \mathbf{b} となり、両辺の左に Q^\widehat{Q}^{\ast} を乗じて R^x=Q^b\widehat{R} \mathbf{x}_{\ast} = \widehat{Q}^{\ast} \mathbf{b} を得る。


ステップ 3.

y:=Q^b\mathbf{y} := \widehat{Q}^{\ast} \mathbf{b} を計算して R^x=y\widehat{R} \mathbf{x}_{\ast} = \mathbf{y} を得る。


ステップ 4. 逆代入法

R^\widehat{R} は上三角行列なので、逆代入法を使って方程式 R^x=y\widehat{R} \mathbf{x}_{\ast} = \mathbf{y} の解 x\mathbf{x}_{\ast} を求める。