連立方程式をとく方法3つ 1. 掃き出し法 → LU分解 2. QR分解 3. SVD
LU分解 : 三角行列による三角化 QR分解 : 直交行列による三角化 SVD : 直交行列による対角化
LU分解の系譜は掃き出し法でよく使われる。 また不完全Choleskyは共役勾配法の前処理として使われる。
任意の横長行列に対して存在する。
ただし
![]()
のときは,
不要
![]()
LU分解を同値変形して得られる。![]()
![]()
ただし, さきのLU分解のUに対して,
が成り立つ。
(もう少し厳密に条件を与えて)LDU分解は一意である。
Aが正定値対称の場合は,LU分解からの形を導くことができる。これをCholesky分解という。
正定値を仮定しなくても,対称行列Aに対してとできる。
QR分解は,連立方程式の解法以外にも, もとの行列Aのランクを求める方法として使われる。QR分解によるランク計算の方が,反復法を用いるSVDよりも早い。
任意の行列に対して存在する。
ただし
![]()
1. Gram-Schmidtの直交化法 2. Householder変換を使う 3. Givens変換を使う
Gram-Schmidtは素朴で分かりやすいが,計算には使わない。 Householder法を使うのが普通。
Aが特異(つまり正則でない)の場合に,数値的に最も安定な解を与える。 とくに正規方程式を解く場合(つまり最小二乗法)は,最小ノルム解を与える。 このようにSVDはMoore-Penroseの一般化逆行列と深い関係を持つ。
一般の行列に対し,
ただし
![]()
![]()
次の一般化された固有値問題を解いていることになる。![]()
![]()
として,
ただし
![]()