矩阵分解
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 相同,适用范围更广。
又称
另见