矩陣分解

LDL^T 分解

Cholesky 很優美,但它對每個主元都要開平方根,而平方根既慢又只對正數有定義。LDL^T 分解保留了 Cholesky 的對稱結構,卻繞開了開方:它把對稱矩陣 A 寫成 A = L D L^T,其中 L 是單位下三角矩陣(對角線為 1),D 是對角矩陣。

訣竅是把主元留在單獨的對角因子 D 中,而不是把它們的平方根拆進 L。若 A 正定,則 D 的元素全為正,令 Cholesky 的 L 等於(此處的 L)乘以 sqrt(D) 即可還原 Cholesky。但由於 D 允許含負元素或零,LDL^T 也能處理不定的對稱矩陣,而這正是 Cholesky 不存在的情形。

不定的對稱系統無處不在:約束最佳化產生的鞍點問題、KKT 系統、內點法都會生成它們。對這些情形,穩健的版本是 Bunch-Kaufman 變體,它允許 D 中出現 1x1 和 2x2 的分塊,並對稱地選主元以保證穩定。它是對稱不定系統的標準求解器。

提醒:對不定的 A,不帶選主元的樸素 LDL^T 仍可能不穩定,正如樸素 LU 一樣。當必須保持對稱、又不能假定正定時,你真正呼叫的是帶分塊選主元的 Bunch-Kaufman 方案。

A = L D L^T, D = diag(d1, ..., dn), signs of di give inertia

D 中正、負、零元素的個數就是 A 的慣性指數(西爾維斯特定律)。

可把 LDL^T 看作把平方根抽到 D 裡的 Cholesky,並推廣到 D 可不定的情形。代價量級與 Cholesky 相同,適用範圍更廣。

又稱
square-root-free CholeskyA = L D L^TLDLT 分解