コレスキー分解計算機 - 正定値行列の因子分解
任意の対称正定値行列を A = L·Lᵀ に即座に分解。線形代数、数値解析、統計のための無料オンライン Cholesky 分解ツールです。
対称正定値行列の各要素を入力し、サイズを選ぶだけで、下三角の Cholesky 因子 L をすぐに取得できます。
コレスキー分解計算機 - 正定値行列の因子分解
任意の対称正定値行列を A = L·Lᵀ に即座に分解。線形代数、数値解析、統計のための無料オンライン Cholesky 分解ツールです。
各行列要素に数値を入力してください。行列は対称かつ正定値である必要があります。
サンプル行列を読み込む:
Cholesky 分解計算機について
Cholesky 分解は、数値線形代数において最も重要な行列分解の1つです。対称正定値行列 A が与えられると、この分解は対角要素が厳密に正の一意な下三角行列 L を生成し、A = L·Lᵀ を満たします。このアルゴリズムはフランス軍砲兵将校 André-Louis Cholesky(1875–1918)に帰され、1924年に死後発表されて以来、科学計算の礎となっています。
この計算機で使われる Cholesky-Banachiewicz アルゴリズムは列ごとに進みます。各対角要素については、A の対応する対角要素から同じ行のそれ以前の要素の二乗和を引き、その後で平方根を取ります。対角線より下の非対角要素については、すでに計算済みの要素の内積を引いてから現在の対角要素で割ります。n×n 行列に対する計算量はおよそ n³/6 回の乗算であり、対称正定値入力に対して一般的な LU 分解の約2倍高速です。
最も重要な前提は、行列が対称かつ正定値であることです。対称性とは、すべての (i, j) について A[i][j] = A[j][i] であることを意味します。正定値とは、任意の 0 でない実ベクトル x に対して xᵀAx > 0 であることを意味し、これはすべての固有値が厳密に正であることと同値です。Cholesky アルゴリズムでは、正定値でないと非正の数の平方根を取ろうとして失敗し、この計算機はその点をチェックします。
統計学では、共分散行列は常に対称かつ半正定値です。2つの変数が完全に多重共線でなければ、それらは厳密に正定値となり、Cholesky 分解をそのまま適用できます。この分解は多変量正規乱数の生成に使われます。z が独立な標準正規変数のベクトルなら、L·z の共分散行列は A になります。この手法は、相関のある金融資産のモンテカルロシミュレーション、気候モデルのアンサンブル、構造信頼性解析を支えています。
機械学習では、ガウス過程回帰やベイズニューラルネットワークが、カーネル行列の逆行列や対数行列式を効率よく求めるために Cholesky 分解に大きく依存しています。A の対数行列式は L の対角要素の対数の総和の2倍に等しく、行列式を直接計算する際の数値的不安定性を回避できます。カルマンフィルタの実装では、いわゆる平方根カルマンフィルタが使われ、共分散そのものではなく共分散行列の Cholesky 因子を伝播させることで、長期にわたる推定問題で数値安定性を大きく向上させます。
この計算機は 2×2、3×3、4×4 の行列に対応しています。これらは教室での演習、小規模な数値解析問題、数値アルゴリズムの試作で最もよく使われるサイズです。より大きな行列にも同じアルゴリズムが適用でき、現代のハードウェアでは BLAS のレベル3演算を用いて効率的に実装できます。宿題の確認、手計算の分解の検証、正定値行列の性質の探索のいずれであっても、このツールは即座に正確な Cholesky 因子を提供します。
Cholesky 分解の例
サイズの異なる行列で Cholesky 因子がどのように計算されるかを示す3つの例です。
| 入力行列 A | Cholesky 因子 L | 注記 |
|---|---|---|
| [[4, 2], [2, 3]] | L = [[2, 0], [1, 1.4142]] | 2×2 の対称正定値行列です。L[0][0] = √4 = 2、L[1][0] = 2/2 = 1、L[1][1] = √(3−1) = √2 ≈ 1.4142。 |
| [[4, 2, 1], [2, 5, 2], [1, 2, 6]] | L = [[2, 0, 0], [1, 2, 0], [0.5, 0.75, 2.2776]] | 3×3 の正定値行列です。L[0][0]=2、L[1][0]=1、L[1][1]=2、L[2][0]=0.5、L[2][1]=0.75、L[2][2]=√5.1875≈2.2776。対角要素はすべて正です。 |
| [[1, 0], [0, 1]] | L = [[1, 0], [0, 1]] | 単位行列は I = I·Iᵀ なので、それ自体が Cholesky 因子です。計算機の精度確認に役立つ基準例です。 |
コレスキー分解計算機の使い方
- 上部のサイズボタンで行列サイズ(2×2、3×3、4×4)を選びます。
- グリッドにすべての行列要素を入力します。対称行列では A[i][j] = A[j][i] になるようにしてください。計算機が自動で確認します。
- 「分解を計算」をクリックします。下三角因子 L が結果グリッドに表示され、各セルに L[i][j] の値が示されます。
- L × Lᵀ が元の行列 A と一致するかを確認して結果を検証してください。数値差は浮動小数点の丸め誤差によるものです。
- サンプル行列ボタンを使って事前に用意された正定値行列を読み込み、分解の仕組みをさまざまな入力で確認できます。
Cholesky 分解 FAQ
Cholesky 分解とは何ですか?
Cholesky 分解は、対称正定値行列 A を L·Lᵀ の積に分解する手法で、L は対角要素が正の下三角行列です。フランスの数学者 André-Louis Cholesky にちなんで名付けられ、この種の行列では LU 分解のおよそ2倍効率がよく、数値計算で広く使われています。
「正定値」とはどういう意味ですか?
対称行列 A が、任意の 0 でないベクトル x に対して xᵀAx > 0 を満たすとき、A は正定値です。言い換えると、すべての固有値が厳密に正であるか、すべての先頭主座小行列式が正でなければなりません。統計の共分散行列は常に半正定値であり、変数間に完全な線形結合がなければ正定値になります。
行列が正定値でない場合はどうなりますか?
Cholesky アルゴリズムでは、非正の数の平方根を取ろうとしてしまい、実数範囲では分解が存在しないことを示します。この計算機はその条件を検出してエラーを表示します。行列が本当に対称か、同じ行の対角要素が非対角要素の二乗和より大きいかを確認してください。
Cholesky 分解は実務でどう使われますか?
連立一次方程式 Ax = b を効率的に解く、共分散行列の対数行列式を計算する(ガウス尤度評価に必要)、モンテカルロシミュレーションで相関のある乱数サンプルを生成する、カルマンフィルタやガウス過程回帰の基礎要素として使われます。因子 L は正定値系を数値的に安定して扱う方法を提供します。
なぜ行列は対称でなければならないのですか?
A = L·Lᵀ の分解は、Lᵀ が L の転置であるため対称行列に対してのみ定義されます。非対称行列にはこのような分解はありません。実務では、ほぼ対称な行列を (A + Aᵀ)/2 で対称化してから分解することができます。
Cholesky 分解と LU 分解の関係は何ですか?
LU 分解は A = L·U と書き、L は下三角行列、U は上三角行列です。対称正定値行列では U = Lᵀ となるため、Cholesky は LU の特別な場合であり、対称性を利用して計算量を O(n³/3) から O(n³/6) の浮動小数点演算へ半減します。Cholesky は正定値系に対してより数値的に安定です。