MatrixCalc

LU 分解,逐步讲解

把矩阵分解成下三角与上三角两部分,为什么这比重复消元更快,以及 Cholesky 分解如何把它特殊化。

LU 分解把一个方阵写成三角矩阵与三角矩阵的乘积:A = L·U。这两个因子直接来自高斯消元——U 就是行阶梯形,而 L 记录了你为此使用的那些乘数。

43
63
=
10
3/21
×
43
0−3/2

有什么用

因为分解结果可以重复使用。从头解 Ax = b 大约需要 n³/3 次运算;一旦有了 L 和 U,每个新的右端项只要 :先用前代法解 Ly = b,再用回代法解 Ux = y。当右端项有几十个时,这个优势非常可观。

行列式也顺带白得——它等于 U 对角线的乘积,每做一次行交换再乘 −1。

主元选取

并非每个矩阵都能直接写成 A = L·U:主元位置上出现零就会失败。补救办法是引入置换矩阵,得到 P·A = L·U。实践中无论如何都会选主元,因为挑选可用的最大主元能把舍入误差控制住。

Cholesky:对称的情形

如果 A 对称正定,它可以分解为 A = L·Lᵀ——只需要一个三角因子。Cholesky 大约比 LU 快一倍,数值上也非常稳定,因此在最优化、最小二乘和统计中占主导地位(协方差矩阵按构造就是对称正定的)。

如果算法某一步需要对负数开平方根,说明该矩阵并非正定——于是 Cholesky 也顺带成了检验这一性质的方法。

继续阅读

想动手试试? 打开矩阵计算器 并展开分步解答面板。