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に一致している