§D3.17QR 分解と最小二乗解

最終更新

§D3.14 内積空間とグラム・シュミットの直交化では、一次独立なベクトルの組から正規直交系を作りました。その手続きを、ベクトルを1本ずつ書く代わりに行列の積の形で書き直すと、直交化の手続きを1つの行列の分解として表すことができます。この記事では、その分解を定め、一意性を示したうえで、その分解を用いて最小二乗解を求める手順を示します。

最小二乗解を求める式は§D3.14 内積空間とグラム・シュミットの直交化でも扱いました。本記事で示すのは、同じ解を、正規方程式を作らずに、上三角の連立一次方程式を解くだけで得る手順です。

1 QR 分解の定義と存在・一意性

まず、分解の形を定めます。QQは正方行列とは限らないので、直交行列とは呼びません。

定義 1.1 (QR 分解).AAをm×nm \times nの実行列とする。m×nm \times n行列QQとnn次正方行列RRの組で

A=QR,Q⊤Q=In,R は上三角で対角成分がすべて正A = QR, \qquad Q^\top Q = I_n, \qquad R \text{ は上三角で対角成分がすべて正}

を満たすものを、AAのQR 分解という。

Q⊤Q=InQ^\top Q = I_nは、QQのnn本の列が正規直交系をなすことと同値です(§D3.15 命題 1.2の証明と同じ計算です)。m>nm > nのときのQQは正方行列ではありませんので、QQ⊤=ImQQ^\top = I_mは一般には成り立ちません。この点はあとで使います。

定理 1.2.AAをm×nm \times nの実行列とし、AAのnn本の列a⃗1,…,a⃗n\vec a_1, \dots, \vec a_nが一次独立であるとする。このときAAの QR 分解が存在し、しかもただ一組に定まる。

証明. 存在を示す。a⃗1,…,a⃗n\vec a_1, \dots, \vec a_nは一次独立であるから、§D3.14 定理 2.1を適用して正規直交系e⃗1,…,e⃗n\vec e_1, \dots, \vec e_nを得る。同定理より、各jjについて

span⁡{e⃗1,…,e⃗j}=span⁡{a⃗1,…,a⃗j}\operatorname{span}\{\vec e_1, \dots, \vec e_j\} = \operatorname{span}\{\vec a_1, \dots, \vec a_j\}

が成り立つ。とくにa⃗j\vec a_jはWj=span⁡{e⃗1,…,e⃗j}W_j = \operatorname{span}\{\vec e_1, \dots, \vec e_j\}に属する。{e⃗1,…,e⃗j}\{\vec e_1, \dots, \vec e_j\}はWjW_jの正規直交基底であるから、§D3.14 命題 3.1をWjW_jに適用して

a⃗j=∑i=1j⟨a⃗j,e⃗i⟩ e⃗i\vec a_j = \sum_{i=1}^{j} \langle \vec a_j, \vec e_i\rangle \, \vec e_i

を得る。そこでQQを列がe⃗1,…,e⃗n\vec e_1, \dots, \vec e_nであるm×nm \times n行列とし、R=(rij)R = (r_{ij})をi≤ji \le jのときrij=⟨a⃗j,e⃗i⟩r_{ij} = \langle \vec a_j, \vec e_i\rangle、i>ji > jのときrij=0r_{ij} = 0と定める。QRQRの第jj列は∑irije⃗i=a⃗j\sum_{i} r_{ij}\vec e_i = \vec a_jであるからA=QRA = QRである。Q⊤Q=InQ^\top Q = I_nはe⃗i\vec e_iが正規直交系であることから従う。対角成分については、§D3.14 定理 2.1の記号でu⃗j=a⃗j−∑i<jciu⃗i\vec u_j = \vec a_j - \sum_{i<j} c_i \vec u_i、e⃗j=u⃗j/∥u⃗j∥\vec e_j = \vec u_j / \|\vec u_j\|と書くと、u⃗1,…,u⃗j\vec u_1, \dots, \vec u_jが互いに直交することから

rjj=⟨a⃗j,e⃗j⟩=⟨u⃗j,u⃗j⟩∥u⃗j∥=∥u⃗j∥>0r_{jj} = \langle \vec a_j, \vec e_j\rangle = \frac{\langle \vec u_j, \vec u_j\rangle}{\|\vec u_j\|} = \|\vec u_j\| > 0

となる。よってRRは上三角で対角成分がすべて正である。

一意性を示す。A=QRA = QRを QR 分解とし、QQの列をq⃗1,…,q⃗n\vec q_1, \dots, \vec q_nと書く。jjについての帰納法で、q⃗1,…,q⃗j\vec q_1, \dots, \vec q_jとRRの第11列から第jj列までがAAから一意に定まること、およびspan⁡{q⃗1,…,q⃗j}=span⁡{a⃗1,…,a⃗j}\operatorname{span}\{\vec q_1, \dots, \vec q_j\} = \operatorname{span}\{\vec a_1, \dots, \vec a_j\}が成り立つことを示す。

j=1j = 1のとき、RRが上三角であることからa⃗1=r11q⃗1\vec a_1 = r_{11}\vec q_1であり、∥q⃗1∥=1\|\vec q_1\| = 1、r11>0r_{11} > 0よりr11=∥a⃗1∥r_{11} = \|\vec a_1\|、q⃗1=a⃗1/∥a⃗1∥\vec q_1 = \vec a_1 / \|\vec a_1\|と定まる。張る空間も一致する。

j−1j-1まで成り立つとする。RRが上三角であることから

a⃗j=∑i<jrijq⃗i+rjjq⃗j\vec a_j = \sum_{i<j} r_{ij}\vec q_i + r_{jj}\vec q_j

である。i<ji < jについて両辺とq⃗i\vec q_iの内積を取ると、q⃗1,…,q⃗n\vec q_1, \dots, \vec q_nが正規直交系であることからrij=⟨a⃗j,q⃗i⟩r_{ij} = \langle \vec a_j, \vec q_i\rangleとなり、帰納法の仮定より右辺はAAから定まる。そこでu⃗=a⃗j−∑i<jrijq⃗i\vec u = \vec a_j - \sum_{i<j} r_{ij}\vec q_iとおくとu⃗=rjjq⃗j\vec u = r_{jj}\vec q_jである。もしu⃗=0⃗\vec u = \vec 0ならばa⃗j∈span⁡{q⃗1,…,q⃗j−1}=span⁡{a⃗1,…,a⃗j−1}\vec a_j \in \operatorname{span}\{\vec q_1, \dots, \vec q_{j-1}\} = \operatorname{span}\{\vec a_1, \dots, \vec a_{j-1}\}となり、列の一次独立性に反する。よってu⃗≠0⃗\vec u \ne \vec 0であり、rjj>0r_{jj} > 0と∥q⃗j∥=1\|\vec q_j\| = 1からrjj=∥u⃗∥r_{jj} = \|\vec u\|、q⃗j=u⃗/∥u⃗∥\vec q_j = \vec u / \|\vec u\|と定まる。張る空間が一致することも上の等式から従う。▨

対角成分を正に取るという条件を外すと、一意性は失われます。q⃗j\vec q_jと、rjjr_{jj}を含むRRの第jj行の符号を同時に変えても、Q⊤Q=InQ^\top Q = I_n、RRが上三角であること、等式A=QRA = QRはいずれも保たれるからです。

命題 1.3.A∈Mm,n(R)A\in M_{m,n}(\R)の列が一次独立であり、m>nm>nとする。A=QRA=QRをその QR 分解とし、Q=(q⃗1,…,q⃗n)Q=(\vec q_1,\dots,\vec q_n)と書く。このときQQは正方行列ではないので、QQを直交行列と呼ぶことはできない。ただしQQ⊤=∑i=1nq⃗iq⃗i⊤QQ^\top = \sum_{i=1}^{n} \vec q_i \vec q_i^{\top}は、span⁡{q⃗1,…,q⃗n}=im⁡A\operatorname{span}\{\vec q_1, \dots, \vec q_n\} = \im Aへの正射影を表す行列である。

証明. 任意のx⃗\vec xに対してQQ⊤x⃗=∑i⟨x⃗,q⃗i⟩q⃗iQQ^\top \vec x = \sum_i \langle \vec x, \vec q_i\rangle \vec q_iを与えるので、§D3.14 命題 3.2により結論を得る。▨

2 最小二乗解の全体と、一意になる条件

次に、解こうとする問題を定めます。Ax⃗=b⃗A\vec x = \vec bが解をもたない場合に、左辺と右辺の差を最も小さくするx⃗\vec xを求める問題です。

定義 2.1 (最小二乗解).AAをm×nm \times nの実行列、b⃗∈Rm\vec b \in \R^mとする。x⃗∈Rn\vec x \in \R^nがAx⃗=b⃗A\vec x = \vec bの最小二乗解であるとは、すべてのy⃗∈Rn\vec y \in \R^nについて∥Ax⃗−b⃗∥≤∥Ay⃗−b⃗∥\|A\vec x - \vec b\| \le \|A\vec y - \vec b\|が成り立つことをいう。

最小二乗解は、いつでも存在します。一方、最小二乗解がただ一つに定まるためには、AAの列についての条件が必要です。次の定理では、その条件が核の次元として述べられます。

定理 2.2.AAをm×nm \times nの実行列、b⃗∈Rm\vec b \in \R^mとする。

  1. x⃗\vec xが最小二乗解であることと、A⊤Ax⃗=A⊤b⃗A^\top A \vec x = A^\top \vec bが成り立つことは同値である。
  2. 最小二乗解は少なくとも1つ存在し、最小二乗解の全体は、1つの最小二乗解x⃗0\vec x_0を用いて{x⃗0+z⃗:z⃗∈ker⁡A}\{\vec x_0 + \vec z : \vec z \in \ker A\}と書ける。
  3. 最小二乗解がただ一つであることと、AAの列が一次独立であることは同値である。

証明.W=im⁡AW = \im Aとおく。WWはRm\R^mの部分空間であるから正規直交基底f⃗1,…,f⃗k\vec f_1, \dots, \vec f_kをもつ。p⃗=∑i⟨b⃗,f⃗i⟩f⃗i\vec p = \sum_{i} \langle \vec b, \vec f_i\rangle \vec f_iとおくと、§D3.14 命題 3.2よりb⃗−p⃗\vec b - \vec pはWWに直交し、WWのどの要素w⃗\vec wについても∥b⃗−p⃗∥≤∥b⃗−w⃗∥\|\vec b - \vec p\| \le \|\vec b - \vec w\|であり、等号が成り立つのはw⃗=p⃗\vec w = \vec pのときに限る。

1を示す。Ax⃗∈WA\vec x \in Wであるから、上の最良近似の一意性より、x⃗\vec xが最小二乗解であることとAx⃗=p⃗A\vec x = \vec pが成り立つことは同値である。次にAx⃗=p⃗A\vec x = \vec pとb⃗−Ax⃗⊥W\vec b - A\vec x \perp Wが同値であることを示す。Ax⃗=p⃗A\vec x = \vec pならばb⃗−Ax⃗=b⃗−p⃗\vec b - A\vec x = \vec b - \vec pがWWに直交する。逆にb⃗−Ax⃗⊥W\vec b - A\vec x \perp Wとすると、w⃗∈W\vec w \in Wに対しAx⃗−w⃗∈WA\vec x - \vec w \in Wであるから、ピタゴラスの定理により∥b⃗−w⃗∥2=∥b⃗−Ax⃗∥2+∥Ax⃗−w⃗∥2≥∥b⃗−Ax⃗∥2\|\vec b - \vec w\|^2 = \|\vec b - A\vec x\|^2 + \|A\vec x - \vec w\|^2 \ge \|\vec b - A\vec x\|^2となり、Ax⃗A\vec xはWWの中でb⃗\vec bに最も近い。最良近似の一意性からAx⃗=p⃗A\vec x = \vec pである。最後に、WWはAAの列a⃗1,…,a⃗n\vec a_1, \dots, \vec a_nで張られるから、b⃗−Ax⃗⊥W\vec b - A\vec x \perp Wはすべてのjjについて⟨a⃗j,b⃗−Ax⃗⟩=0\langle \vec a_j, \vec b - A\vec x\rangle = 0と同値であり、これはA⊤(b⃗−Ax⃗)=0⃗A^\top(\vec b - A\vec x) = \vec 0、すなわちA⊤Ax⃗=A⊤b⃗A^\top A\vec x = A^\top \vec bと同値である。

2を示す。p⃗∈W=im⁡A\vec p \in W = \im AであるからAx⃗0=p⃗A\vec x_0 = \vec pを満たすx⃗0\vec x_0が存在し、 1よりこれは最小二乗解である。またx⃗\vec xが最小二乗解であることはAx⃗=p⃗=Ax⃗0A\vec x = \vec p = A\vec x_0、すなわちx⃗−x⃗0∈ker⁡A\vec x - \vec x_0 \in \ker Aと同値である。

3を示す。2より、最小二乗解がただ一つであることはker⁡A={0⃗}\ker A = \{\vec 0\}と同値である。Ax⃗=∑jxja⃗jA\vec x = \sum_j x_j \vec a_jであるから、ker⁡A={0⃗}\ker A = \{\vec 0\}はa⃗1,…,a⃗n\vec a_1, \dots, \vec a_nが一次独立であることと同値である。▨

3の条件を落とすことはできません。列が一次従属であれば、最小二乗解はker⁡A\ker Aの次元だけ自由度をもち、ただ一つには定まりません。列が一次従属であれば最小二乗解がただ一つには定まらないことを、次の例で確かめます。

例 2.3.

A=(121212),b⃗=(134)A = \begin{pmatrix} 1 & 2 \\ 1 & 2 \\ 1 & 2 \end{pmatrix}, \qquad \vec b = \begin{pmatrix} 1 \\ 3 \\ 4 \end{pmatrix}

とします。第2列は第1列の22倍ですので、列は一次従属で、im⁡A\im Aは(1,1,1)⊤(1,1,1)^\topが張る1次元の部分空間です。b⃗\vec bの正射影はp⃗=1+3+43(1,1,1)⊤=83(1,1,1)⊤\vec p = \frac{1+3+4}{3}(1,1,1)^\top = \frac{8}{3}(1,1,1)^\topです。したがって最小二乗解の全体はx1+2x2=8/3x_1 + 2x_2 = 8/3を満たす(x1,x2)(x_1, x_2)の全体であり、直線をなします。∥Ax⃗−b⃗∥\|A\vec x - \vec b\|の最小値はどの解でも同じですが、解そのものはただ一つには定まりません。このAAには定義 1.1の意味の QR 分解も存在しません。A=QRA = QRと書けたとすると、RRの対角成分が正であることからRRは正則であり、Ax⃗=0⃗A\vec x = \vec 0からQRx⃗=0⃗Q R\vec x = \vec 0、両辺にQ⊤Q^\topを掛けてRx⃗=0⃗R\vec x = \vec 0、したがってx⃗=0⃗\vec x = \vec 0となって、列が一次独立になってしまうからです。

3 QR 分解を用いた最小二乗解の計算

正規方程式A⊤Ax⃗=A⊤b⃗A^\top A\vec x = A^\top \vec bをそのまま解くには、A⊤AA^\top Aを作る必要があります。 QR 分解を用いると、この行列を作らずに、上三角の連立一次方程式を1つ解くだけで済みます。

定理 3.1.AAをm×nm \times nの実行列で列が一次独立であるものとし、A=QRA = QRをその QR 分解とする。b⃗∈Rm\vec b \in \R^mに対し、Ax⃗=b⃗A\vec x = \vec bの最小二乗解はただ一つであり、それは連立一次方程式

Rx⃗=Q⊤b⃗R\vec x = Q^\top \vec b

のただ一つの解である。またAAの像へのb⃗\vec bの正射影はQQ⊤b⃗QQ^\top \vec bである。

証明. 列が一次独立であるから、定理 2.2の3より最小二乗解はただ一つである。

Q⊤Q=InQ^\top Q = I_nよりA⊤A=R⊤Q⊤QR=R⊤RA^\top A = R^\top Q^\top Q R = R^\top Rであり、A⊤b⃗=R⊤Q⊤b⃗A^\top \vec b = R^\top Q^\top \vec bである。よって正規方程式は

R⊤Rx⃗=R⊤Q⊤b⃗R^\top R \vec x = R^\top Q^\top \vec b

と書ける。RRは上三角で対角成分が正であるから、第1列に沿った余因子展開を繰り返すとdet⁡R=r11r22⋯rnn>0\det R = r_{11}r_{22}\cdots r_{nn} > 0となり、RRとR⊤R^\topはいずれも正則である。両辺に(R⊤)−1(R^\top)^{-1}を左から掛けてRx⃗=Q⊤b⃗R\vec x = Q^\top \vec bを得る。逆にこの等式から正規方程式が従う。RRが正則であるから、この連立一次方程式の解はただ一つである。

正射影については、命題 1.3のとおりQQ⊤QQ^\topがim⁡A\im Aへの正射影を表す。▨

RRが上三角ですので、Rx⃗=Q⊤b⃗R\vec x = Q^\top\vec bは最後の成分から順に代入して解くことができます。

例 3.2. 3点(t,y)=(0,1),(1,3),(2,4)(t, y) = (0, 1), (1, 3), (2, 4)に対し、y=x1+x2ty = x_1 + x_2 tの形の直線をあてはめます。

A=(101112),b⃗=(134)A = \begin{pmatrix} 1 & 0 \\ 1 & 1 \\ 1 & 2 \end{pmatrix}, \qquad \vec b = \begin{pmatrix} 1 \\ 3 \\ 4 \end{pmatrix}

とおくと、求めるものはAx⃗=b⃗A\vec x = \vec bの最小二乗解です。列は一次独立ですので定理 1.2が使えます。

直交化します。a⃗1=(1,1,1)⊤\vec a_1 = (1,1,1)^\topより∥a⃗1∥=3\|\vec a_1\| = \sqrt3、e⃗1=13(1,1,1)⊤\vec e_1 = \frac{1}{\sqrt3}(1,1,1)^\topです。a⃗2=(0,1,2)⊤\vec a_2 = (0,1,2)^\topについて⟨a⃗2,e⃗1⟩=3/3=3\langle \vec a_2, \vec e_1\rangle = 3/\sqrt3 = \sqrt3ですのでu⃗2=a⃗2−3 e⃗1=(−1,0,1)⊤\vec u_2 = \vec a_2 - \sqrt3\,\vec e_1 = (-1, 0, 1)^\top、∥u⃗2∥=2\|\vec u_2\| = \sqrt2、e⃗2=12(−1,0,1)⊤\vec e_2 = \frac{1}{\sqrt2}(-1,0,1)^\topです。したがって

Q=(1/3−1/21/301/31/2),R=(3302)Q = \begin{pmatrix} 1/\sqrt3 & -1/\sqrt2 \\ 1/\sqrt3 & 0 \\ 1/\sqrt3 & 1/\sqrt2 \end{pmatrix}, \qquad R = \begin{pmatrix} \sqrt3 & \sqrt3 \\ 0 & \sqrt2 \end{pmatrix}

です。Q⊤b⃗=(1+3+43,−1+0+42)⊤=(83,32)⊤Q^\top \vec b = \left(\frac{1+3+4}{\sqrt3}, \frac{-1+0+4}{\sqrt2}\right)^\top = \left(\frac{8}{\sqrt3}, \frac{3}{\sqrt2}\right)^\topですので、Rx⃗=Q⊤b⃗R\vec x = Q^\top\vec bを下から解くと

2 x2=32 ⇒ x2=32,3 x1+3⋅32=83 ⇒ x1=83−32=76\sqrt2\,x_2 = \frac{3}{\sqrt2} \ \Rightarrow\ x_2 = \frac32, \qquad \sqrt3\,x_1 + \sqrt3\cdot\frac32 = \frac{8}{\sqrt3} \ \Rightarrow\ x_1 = \frac83 - \frac32 = \frac76

となります。

検算します。A⊤A=(3335)A^\top A = \begin{pmatrix} 3 & 3 \\ 3 & 5\end{pmatrix}、A⊤b⃗=(8,11)⊤A^\top \vec b = (8, 11)^\topですので、正規方程式は3x1+3x2=83x_1 + 3x_2 = 8と3x1+5x2=113x_1 + 5x_2 = 11です。x1=7/6x_1 = 7/6、x2=3/2x_2 = 3/2を代入すると3⋅76+3⋅32=72+92=83\cdot\frac76 + 3\cdot\frac32 = \frac72 + \frac92 = 8、3⋅76+5⋅32=72+152=113\cdot\frac76 + 5\cdot\frac32 = \frac72 + \frac{15}{2} = 11となり、いずれも成り立ちます。残差はb⃗−Ax⃗=(−16,13,−16)⊤\vec b - A\vec x = \left(-\frac16, \frac13, -\frac16\right)^\topで、a⃗1\vec a_1との内積は−16+13−16=0-\frac16 + \frac13 - \frac16 = 0、a⃗2\vec a_2との内積は0+13−13=00 + \frac13 - \frac13 = 0ですので、残差はim⁡A\im Aに直交しています。

注意 3.3 (有限の桁数で計算する場合). 本記事の等式は、実数の範囲で厳密に成り立つ。計算機のように有限の桁数で計算する場合には、どの手順を選ぶかによって誤差の伝わり方が変わる。正規方程式を作る方法と QR 分解を用いる方法の比較、および QR 分解を求める手続きの選び方は§E24 数値解析 Iが扱う。

4 演習

問題 4.1.a⃗1=(1,1,0)⊤\vec a_1 = (1,1,0)^\top、a⃗2=(1,0,1)⊤\vec a_2 = (1,0,1)^\topを列とする3×23\times2行列AAの QR 分解を求め、Q⊤Q=I2Q^\top Q = I_2とA=QRA = QRの双方を成分の計算で確かめよ。

解答.

a⃗2\vec a_2はa⃗1\vec a_1の実数倍でなく、a⃗1≠0⃗\vec a_1 \ne \vec 0であるから、a⃗1,a⃗2\vec a_1, \vec a_2は一次独立である。よって定理 1.2によりAAの QR 分解はただ一組存在し、同定理の証明の構成により、a⃗1,a⃗2\vec a_1, \vec a_2に§D3.14 定理 2.1を適用して得るe⃗1,e⃗2\vec e_1, \vec e_2を列とするQQと、i≤ji \le jのときrij=⟨a⃗j,e⃗i⟩r_{ij} = \langle \vec a_j, \vec e_i\rangle、i>ji > jのときrij=0r_{ij} = 0としたRRで与えられる。

∥a⃗1∥=2\|\vec a_1\| = \sqrt2であるからe⃗1=12(1,1,0)⊤\vec e_1 = \frac{1}{\sqrt2}(1,1,0)^\topである。⟨a⃗2,e⃗1⟩=12\langle \vec a_2, \vec e_1\rangle = \frac{1}{\sqrt2}であるから

u⃗2=a⃗2−12e⃗1=(1,0,1)⊤−12(1,1,0)⊤=(12,−12,1)⊤\vec u_2 = \vec a_2 - \frac{1}{\sqrt2}\vec e_1 = (1,0,1)^\top - \frac12(1,1,0)^\top = \left(\frac12, -\frac12, 1\right)^\top

であり、∥u⃗2∥=14+14+1=62\|\vec u_2\| = \sqrt{\frac14 + \frac14 + 1} = \frac{\sqrt6}{2}、e⃗2=26u⃗2=16(1,−1,2)⊤\vec e_2 = \frac{2}{\sqrt6}\vec u_2 = \frac{1}{\sqrt6}(1,-1,2)^\topである。r11=⟨a⃗1,e⃗1⟩=2r_{11} = \langle \vec a_1, \vec e_1\rangle = \sqrt2、r12=⟨a⃗2,e⃗1⟩=12r_{12} = \langle \vec a_2, \vec e_1\rangle = \frac{1}{\sqrt2}、r22=⟨a⃗2,e⃗2⟩=1+26=62r_{22} = \langle \vec a_2, \vec e_2\rangle = \frac{1 + 2}{\sqrt6} = \frac{\sqrt6}{2}であるから

Q=(1/21/61/2−1/602/6),R=(21/206/2)Q = \begin{pmatrix} 1/\sqrt2 & 1/\sqrt6 \\ 1/\sqrt2 & -1/\sqrt6 \\ 0 & 2/\sqrt6 \end{pmatrix}, \qquad R = \begin{pmatrix} \sqrt2 & 1/\sqrt2 \\ 0 & \sqrt6/2 \end{pmatrix}

である。RRは上三角であり、対角成分2\sqrt2と6/2\sqrt6/2はともに正である。

Q⊤QQ^\top Qの(i,j)(i,j)成分はQQの第ii列と第jj列の内積である。(1,1)(1,1)成分は12+12+0=1\frac12 + \frac12 + 0 = 1、(1,2)(1,2)成分と(2,1)(2,1)成分は112−112+0=0\frac{1}{\sqrt{12}} - \frac{1}{\sqrt{12}} + 0 = 0、(2,2)(2,2)成分は16+16+46=1\frac16 + \frac16 + \frac46 = 1であるから、Q⊤Q=I2Q^\top Q = I_2である。RRの第1列は(2,0)⊤(\sqrt2, 0)^\topであるから、QRQRの第1列はQQの第1列の2\sqrt2倍(1,1,0)⊤=a⃗1(1, 1, 0)^\top = \vec a_1である。QRQRの第2列は

12(1/21/20)+62(1/6−1/62/6)=(1/2+1/21/2−1/20+1)=(101)=a⃗2\frac{1}{\sqrt2}\begin{pmatrix} 1/\sqrt2 \\ 1/\sqrt2 \\ 0 \end{pmatrix} + \frac{\sqrt6}{2}\begin{pmatrix} 1/\sqrt6 \\ -1/\sqrt6 \\ 2/\sqrt6 \end{pmatrix} = \begin{pmatrix} 1/2 + 1/2 \\ 1/2 - 1/2 \\ 0 + 1 \end{pmatrix} = \begin{pmatrix} 1 \\ 0 \\ 1 \end{pmatrix} = \vec a_2

である。したがってA=QRA = QRである。▨

問題 4.2.例 3.2のAAとb⃗\vec bについて、QQ⊤b⃗QQ^\top\vec bを計算し、同例で求めた最小二乗解x⃗\vec xについてAx⃗A\vec xと一致することを確かめよ。次に、一般に、列が一次独立なm×nm \times nの実行列AAとその QR 分解A=QRA = QRについてP=QQ⊤P = QQ^\topとおくとき、P2=PP^2 = P、P⊤=PP^\top = P、PA=APA = Aが成り立つことを示せ。これらを用いて、すべてのb⃗∈Rm\vec b \in \R^mについてb⃗−Pb⃗\vec b - P\vec bがAAの各列に直交することを示せ。

解答.

例 3.2より、QQの列はe⃗1=13(1,1,1)⊤\vec e_1 = \frac{1}{\sqrt3}(1,1,1)^\topとe⃗2=12(−1,0,1)⊤\vec e_2 = \frac{1}{\sqrt2}(-1,0,1)^\topであり、Q⊤b⃗=(83,32)⊤Q^\top\vec b = \left(\frac{8}{\sqrt3}, \frac{3}{\sqrt2}\right)^\topである。したがって

QQ⊤b⃗=83e⃗1+32e⃗2=83(111)+32(−101)=(7/68/325/6)QQ^\top\vec b = \frac{8}{\sqrt3}\vec e_1 + \frac{3}{\sqrt2}\vec e_2 = \frac83\begin{pmatrix} 1 \\ 1 \\ 1 \end{pmatrix} + \frac32\begin{pmatrix} -1 \\ 0 \\ 1 \end{pmatrix} = \begin{pmatrix} 7/6 \\ 8/3 \\ 25/6 \end{pmatrix}

である。同例の最小二乗解はx⃗=(76,32)⊤\vec x = \left(\frac76, \frac32\right)^\topであり、

Ax⃗=(7/67/6+3/27/6+2⋅3/2)=(7/68/325/6)A\vec x = \begin{pmatrix} 7/6 \\ 7/6 + 3/2 \\ 7/6 + 2\cdot 3/2 \end{pmatrix} = \begin{pmatrix} 7/6 \\ 8/3 \\ 25/6 \end{pmatrix}

であるから、QQ⊤b⃗=Ax⃗QQ^\top\vec b = A\vec xである。

次に一般の場合を示す。定義 1.1によりQ⊤Q=InQ^\top Q = I_nであるから

P2=Q(Q⊤Q)Q⊤=QInQ⊤=QQ⊤=PP^2 = Q\left(Q^\top Q\right)Q^\top = QI_nQ^\top = QQ^\top = P

である。積の転置は因子の転置を逆の順に掛けたものであり、転置を二回取るともとの行列に戻るからP⊤=(Q⊤)⊤Q⊤=QQ⊤=PP^\top = \left(Q^\top\right)^\top Q^\top = QQ^\top = Pである。またPA=QQ⊤QR=QInR=QR=APA = QQ^\top QR = QI_nR = QR = Aである。

b⃗∈Rm\vec b \in \R^mを任意に取る。P⊤=PP^\top = PとPA=APA = AによりA⊤P=A⊤P⊤=(PA)⊤=A⊤A^\top P = A^\top P^\top = (PA)^\top = A^\topであるから

A⊤(b⃗−Pb⃗)=A⊤b⃗−A⊤Pb⃗=A⊤b⃗−A⊤b⃗=0⃗A^\top\left(\vec b - P\vec b\right) = A^\top\vec b - A^\top P\vec b = A^\top\vec b - A^\top\vec b = \vec 0

である。A⊤(b⃗−Pb⃗)A^\top(\vec b - P\vec b)の第jj成分は、AAの第jj列a⃗j\vec a_jとb⃗−Pb⃗\vec b - P\vec bの内積⟨a⃗j,b⃗−Pb⃗⟩\langle \vec a_j, \vec b - P\vec b\rangleであるから、b⃗−Pb⃗\vec b - P\vec bはAAの各列に直交する。

例 3.2のAAとb⃗\vec bでは、上の計算によりb⃗−Pb⃗=(1,3,4)⊤−(76,83,256)⊤=(−16,13,−16)⊤\vec b - P\vec b = (1,3,4)^\top - \left(\frac76, \frac83, \frac{25}6\right)^\top = \left(-\frac16, \frac13, -\frac16\right)^\topであり、同例でAAの二つの列に直交することを確かめた残差と一致する。▨

問題 4.3.AAをm×nm \times nの実行列で、列が一次独立であるものとする。定義 1.1の条件のうち、RRの対角成分を正に取るという条件を外すと、A=QRA = QR、Q⊤Q=InQ^\top Q = I_n、RRは上三角、の三つを満たすm×nm \times n行列QQとnn次正方行列RRの組(Q,R)(Q, R)が何組あるかを求めよ。

解答.

三つの条件を満たす組は2n2^n組ある。

定理 1.2により、AAの QR 分解A=QRA = QRがただ一組存在する。QQの列をq⃗1,…,q⃗n\vec q_1, \dots, \vec q_n、R=(rij)R = (r_{ij})と書く。ε1,…,εn∈{1,−1}\varepsilon_1, \dots, \varepsilon_n \in \{1, -1\}に対し、D=diag⁡(ε1,…,εn)D = \operatorname{diag}(\varepsilon_1, \dots, \varepsilon_n)とおくとD⊤=DD^\top = D、D2=InD^2 = I_nである。QDQDはq⃗j\vec q_jをεj\varepsilon_j倍した行列であり、DRDRはRRの第jj行をεj\varepsilon_j倍した行列である。すなわち、εj=−1\varepsilon_j = -1とすることは、q⃗j\vec q_jと、rjjr_{jj}を含むRRの第jj行の符号を同時に変えることである。

(QD)⊤(QD)=DQ⊤QD=D2=In,(QD)(DR)=QD2R=QR=A(QD)^\top(QD) = DQ^\top QD = D^2 = I_n, \qquad (QD)(DR) = QD^2R = QR = A

であり、DRDRは上三角であるから、(QD,DR)(QD, DR)は三つの条件を満たす。DRDRの(j,j)(j,j)成分はεjrjj\varepsilon_j r_{jj}であり、rjj>0r_{jj} > 0であるから、符号の組(ε1,…,εn)(\varepsilon_1, \dots, \varepsilon_n)が異なればDRDRも異なる。よって、三つの条件を満たす組は少なくとも2n2^n組ある。

逆に、組(Q′,R′)(Q', R')がA=Q′R′A = Q'R'、Q′⊤Q′=InQ'^\top Q' = I_n、R′R'は上三角、の三つを満たすとし、R′=(rij′)R' = (r'_{ij})と書く。R′x⃗=0⃗R'\vec x = \vec 0ならばAx⃗=Q′R′x⃗=0⃗A\vec x = Q'R'\vec x = \vec 0である。Ax⃗A\vec xはAAの列のxjx_jを係数とする一次結合であるから、列の一次独立性よりx⃗=0⃗\vec x = \vec 0である。したがってnn次正方行列R′R'の核は{0⃗}\{\vec 0\}であり、R′R'は正則であるからdet⁡R′≠0\det R' \ne 0である。R′R'は上三角であるから、第1列に沿った余因子展開を繰り返すとdet⁡R′=r11′r22′⋯rnn′\det R' = r'_{11}r'_{22}\cdots r'_{nn}となり、すべてのjjについてrjj′≠0r'_{jj} \ne 0である。そこでεj′=rjj′/∣rjj′∣\varepsilon'_j = r'_{jj}/|r'_{jj}|、D′=diag⁡(ε1′,…,εn′)D' = \operatorname{diag}(\varepsilon'_1, \dots, \varepsilon'_n)とおくと、前の段落と同じ計算により(Q′D′)⊤(Q′D′)=In(Q'D')^\top(Q'D') = I_n、(Q′D′)(D′R′)=A(Q'D')(D'R') = Aが成り立ち、D′R′D'R'は上三角で、(j,j)(j,j)成分はεj′rjj′=∣rjj′∣>0\varepsilon'_j r'_{jj} = |r'_{jj}| > 0である。よって(Q′D′,D′R′)(Q'D', D'R')はAAの QR 分解であり、定理 1.2の一意性よりQ′D′=QQ'D' = Q、D′R′=RD'R' = Rである。D′2=InD'^2 = I_nからQ′=QD′Q' = QD'、R′=D′RR' = D'Rとなるので、(Q′,R′)(Q', R')は前の段落の2n2^n組のいずれかである。

前の段落の結論と合わせて、三つの条件を満たす組はちょうど2n2^n組である。▨

参考文献

  1. Gilbert Strang, Introduction to Linear Algebra, 6th ed., Wellesley-Cambridge Press, 2023.QR 分解と最小二乗法、およびその応用と幾何的な解釈を参考にしました。
  2. Lloyd N. Trefethen and David, III Bau, Numerical Linear Algebra, 25th anniversary ed., Society for Industrial and Applied Mathematics, Philadelphia, 2022.QR 分解を求める手続きと、その数値的な性質を参考にしました。
  3. Gene H. Golub and Charles F. Van Loan, Matrix Computations, 4th ed., Johns Hopkins University Press, 2013.最小二乗問題の解法とその計算量と誤差の評価を参考にしました。

前提記事