LU分解
→Aが正則行列のとき
修正コレスキー分解→Aがエルミート行列のとき
コレスキー分解→Aがエルミート行列かつ正定値行列のとき
ここで、行列[M_k]は以下で定義する。
→ピボット
で割る
計算例
clear; A = [10 6 2; 6 5 2; 2 2 1]; b = [1 2 3]'; M1 = [1 0 0; -0.6 1 0; -0.2 0 1]; M2 = [1 0 0; 0 1 0; 0 -4/7 1]; L = inv(M1)*inv(M2); U = inv(L)*A; D = inv(L)*A*inv(L'); D1=sqrt(D); L1=L*D1; %check A LU=real(L*U) LDL=real(L*D*L') LL=real(L1*L1')
出力
A =
10 6 2
6 5 2
2 2 1
LU =
10.0000 6.0000 2.0000
6.0000 5.0000 2.0000
2.0000 2.0000 1.0000
LDL =
10.0000 6.0000 2.0000
6.0000 5.0000 2.0000
2.0000 2.0000 1.0000
LL =
10.0000 6.0000 2.0000
6.0000 5.0000 2.0000
2.0000 2.0000 1.0000すべてもとの行列Aに一致している