1-7 行列の分解とLU分解

$$\newcommand{AA}[0]{\mathscr{A}} \newcommand{abs}[1]{\left\lvert#1\right\rvert} \newcommand{angleb}[1]{\left\langle #1 \right\rangle} \newcommand{Arg}[0]{\operatorname{Arg}} \newcommand{Ba}[0]{\mathbf{a}} \newcommand{BB}[0]{\mathscr{B}} \newcommand{Bb}[0]{\mathbf{b}} \newcommand{Be}[0]{\mathbf{e}} \newcommand{Bu}[0]{\mathbf{u}} \newcommand{Bv}[0]{\mathbf{v}} \newcommand{Bw}[0]{\mathbf{w}} \newcommand{Bx}[0]{\mathbf{x}} \newcommand{By}[0]{\mathbf{y}} \newcommand{Bzr}[0]{\mathbf{0}} \newcommand{C}[0]{\mathbb{C}} \newcommand{CC}[0]{\mathscr{C}} \newcommand{F}[0]{\mathbb{F}} \newcommand{floor}[1]{\left\lfloor#1\right\rfloor} \newcommand{im}[0]{\operatorname{Im}} \newcommand{ind}[0]{\mathrm{ind}} \newcommand{K}[0]{\mathbb{K}} \newcommand{Ker}[0]{\operatorname{Ker}} \newcommand{L}[0]{\mathbb{L}} \newcommand{mmod}[1]{\ \left(\mathrm{mod}\ #1\right)} \newcommand{Mod}[1]{\ \left(\mathrm{mod}\ #1\right)} \newcommand{N}[0]{\mathbf{N}} \newcommand{ord}[0]{\mathrm{ord}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{rank}[0]{\operatorname{rank}} \newcommand{span}[0]{\operatorname{span}} \newcommand{SS}[0]{\mathscr{S}} \newcommand{TT}[0]{\mathscr{T}} \newcommand{UU}[0]{\mathscr{U}} \newcommand{wenvert}[1]{\left\lvert\left\lvert#1\right\rvert\right\rvert} \newcommand{Z}[0]{\mathbb{Z}} $$

読み始める前の問い

同じ係数行列で右辺だけ違う方程式を何度も解くとき、毎回消去をやり直す必要があるだろうか。
このページでできるようになること
消去の前処理を $LU$ 分解として保存し、複数の右辺へ再利用できるようになる。
同じ係数行列で右辺だけが異なる方程式を何度も解くとき、毎回消去法を最初から行うのは無駄です。LU分解は、消去の履歴を下三角行列に保存し、以後は二つの簡単な三角方程式へ分けます。

消去を行列として記録する

$$ A=\begin{pmatrix} 2&1&1\\ 4&-1&0\\ -2&2&1 \end{pmatrix} $$
を考えます。第一列を消去するため
$$ R_2\leftarrow R_2-2R_1, \qquad R_3\leftarrow R_3+R_1 $$
とすると
$$ \begin{pmatrix} 2&1&1\\ 0&-3&-2\\ 0&3&2 \end{pmatrix}. $$
さらに $R_3\leftarrow R_3+R_2$ として
$$ U=\begin{pmatrix} 2&1&1\\ 0&-3&-2\\ 0&0&0 \end{pmatrix} $$
を得ます。
使用した消去係数は $2,-1,-1$ です。符号を戻して下三角に並べると
$$ L=\begin{pmatrix} 1&0&0\\ 2&1&0\\ -1&-1&1 \end{pmatrix}. $$
直接掛けると $LU=A$ になります。

LU分解

正方行列 $A$ を
$$ A=LU $$
と表し、$L$ が対角成分1の下三角行列、$U$ が上三角行列であるとき、これをLU分解という。

なぜ消去係数がLになるか

消去操作を表す基本行列の積を $E$ とすれば $EA=U$、したがって
$$ A=E^{-1}U. $$
一つの行へ前の行の $-c$ 倍を加える消去行列の逆は、同じ位置へ $c$ を入れた下三角基本行列です。消去を列の上から順に行えば、それらの逆の積 $E^{-1}$ は下三角になり、対角成分はすべて1です。これが $L$ です。

証明を読む前の見取り図

消去行列の積を逆にたどって下三角行列を作り、$Ax=b$ を二つの三角系へ分ける。

pivot交換を要しない場合のLU分解

Gauss消去の各段階で行交換を使わず、主成分で割らずに上三角行列 $U$ まで消去できる正方行列 $A$ は、対角成分1の下三角行列 $L$ を用いて $A=LU$ と分解できる。

第 $k$ 列の主成分より下を消す操作を、基本行列 $E_k$ の左乗で表す。すべての消去後に
$$ E_s\cdots E_1A=U $$
となる。各 $E_i$ は対角成分1の下三角行列で、逆行列も同じ位置の符号を反転した対角成分1の下三角行列である。よって
$$ A=E_1^{-1}\cdots E_s^{-1}U. $$
下三角行列の積が下三角であることは、第 $i,j$ 成分の和で $i< j$ のとき非零項が存在しないことから従う。対角成分は1の積で1である。したがって $L:=E_1^{-1}\cdots E_s^{-1}$ と置けばよい。

方程式を二段階で解く

$Ax=b$ は
$$ LUx=b $$
です。まず $y=Ux$ と置いて $Ly=b$ を前進代入で解き、次に $Ux=y$ を後退代入で解きます。右辺 $b$ が変わっても $L,U$ は再利用できます。
下三角方程式
$$ \begin{pmatrix}1&0&0\\2&1&0\\-1&-1&1\end{pmatrix} \begin{pmatrix}y_1\\y_2\\y_3\end{pmatrix} =\begin{pmatrix}b_1\\b_2\\b_3\end{pmatrix} $$
は上から
$$ y_1=b_1, \quad y_2=b_2-2y_1, \quad y_3=b_3+y_1+y_2 $$
と順に解けます。

行交換が必要な場合

$$ \begin{pmatrix}0&1\\1&0\end{pmatrix} $$
は最初の主成分が零なので行交換が必要である。この場合は置換行列 $P$ を加えて $PA=LU$ とする。数値計算では、非零でも極端に小さい主成分を避けるためpivot選択を行う。

二次のLU分解

$$ A=\begin{pmatrix}2&3\\4&7\end{pmatrix} $$
をLU分解せよ。

解答

$R_2\leftarrow R_2-2R_1$ で $U=\begin{pmatrix}2&3\\0&1\end{pmatrix}$。消去係数2を用いて
$$ L=\begin{pmatrix}1&0\\2&1\end{pmatrix}. $$
実際 $LU=A$ である。

最後に、第1章の計算を「解の位置」と「自由に動ける方向」にまとめます。

このページで回収したもの

一回の消去が再利用可能な分解になった。計算量を減らすという線形代数の実用的な価値が見える。
次へ持ち越す問い
この見方を、次のページではより広い対象またはより計算しやすい形へ移す。

参考文献

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する

Mathpediaを支援する
前のページへ
15 / 57
次のページへ
前ページへ
線形代数学I ― 連立方程式からベクトル空間・線形写像までの表紙
次ページへ