コレスキー分解計算ツールとは?
このツールは、対称かつ正定値の行列 A を \(A = L \cdot L^{\mathsf{T}}\) の形に分解します。ここで L は下三角行列、\(L^{\mathsf{T}}\) はその転置行列です。コレスキー分解はLU分解と比べておよそ2倍効率がよく、数値線形代数、モンテカルロ・シミュレーション、連立一次方程式の求解、最小二乗問題など幅広い場面で利用されています。さらに、副産物として行列式の値も同時に求められます。
使い方
入力欄は 入力行列 の1つだけです。同じ行の中の値はカンマ(,)で区切り、改行(次の行の開始)にはパイプ記号 | を使います。
- 2×2 の例:
4,12|12,37 - 3×3 の例:
4,12,-16|12,37,-43|-16,-43,98
計算ツールはまず、入力した行列が 対称 であるか(対角以外の各成分 \(A_{ij}\) が \(A_{ji}\) と等しいか。許容誤差は 1e-10)を確認します。対称かつ正定値であれば、下三角行列 L と行列式を計算して表示します。対称でない、または正定値でない場合は分解を実行できません。
計算式の解説
L の各成分は、次の式で計算されます。
- 対角成分:\(L_{jj} = \sqrt{A_{jj} - \sum L_{jk}^{2}}\)(k < j について和をとる)
- 対角より下の成分:\(L_{ij} = \dfrac{A_{ij} - \sum L_{ik} L_{jk}}{L_{jj}}\)(i > j の場合)
行列式は、L の対角成分をそれぞれ2乗してすべて掛け合わせた値に等しくなります。
$$A = L\,L^{\mathsf{T}}, \qquad \det(A) = \prod_{i=1}^{n} L_{ii}^{2}$$
計算例
3×3 行列 4,12,-16|12,37,-43|-16,-43,98 を例に、式に従って計算してみましょう。
- \(L_{11} = \sqrt{4} = 2\)
- \(L_{21} = 12 / 2 = 6\)、\(L_{22} = \sqrt{37 - 36} = 1\)
- \(L_{31} = -16 / 2 = -8\)、\(L_{32} = (-43 - (-8)(6)) / 1 = 5\)、\(L_{33} = \sqrt{98 - 64 - 25} = 3\)
したがって \(L = [[2,0,0],[6,1,0],[-8,5,3]]\) となり、行列式 \(= (2 \cdot 1 \cdot 3)^{2} = 36\) です。
よくある質問
なぜ結果が表示されないのですか? 行列は対称(\(A_{ij} = A_{ji}\))であり、かつ正定値(すべての固有値が正)でなければなりません。いずれかの条件を満たさない場合、コレスキー分解は存在しません。
行列は必ず正方行列である必要がありますか? はい。各行の値の数は行の数と等しくなければならず、さらに対称である必要があります。
行列式はどのように計算されますか? L の対角成分をそれぞれ2乗して掛け合わせた値で、これは元の行列 A の行列式と一致します。