MatrixCalc

LU 分解计算器

用部分选主元把方阵分解为 A = L·U,并逐步查看两个三角因子是怎样一步步构造出来的。

矩阵 A
: 3
: 3
矩阵 B
: 3
: 3
运算

展开下方步骤即可看到完整答案。

结果
选择一个运算以在此处查看结果。错误信息也会显示在这里。

提示:可调整矩阵大小(最多 50×50)。A×B 要求 A 的列数等于 B 的行数。行列式/逆/迹/幂 需要方阵。

React, Tailwind & shadcn/ui. No external math deps. — 中文

LU(A) 再展开步骤面板:L 与 U 会并排构造出来;若过程中交换过行,还会给出置换矩阵 P。

这个分解有什么用

A = L·U 把一个矩阵写成下三角阵与上三角阵的乘积。本质上这就是被保存下来的高斯消元:U 是消元的结果,L 则记住了消元时用到的那些乘数。

一旦右端项不止一个,好处就显现出来。Ax = b 拆成 Ly = b 与 Ux = y 两个三角方程组,用前代与回代各 n² 步即可解出。昂贵的分解只做一次,之后每多一个 b 几乎不花代价——数值库正是这么做的,而不是去求逆矩阵。

例题

43
63
=
10
1.51
·
43
0−1.5

L 中的 1.5 正是把第一行乘以多少后从第二行中减去的那个乘数。行列式等于 U 主对角线元素的乘积,每交换一次行再乘 −1——对已经分解好的矩阵来说,行列式是白得的。

常见错误

  • 忽略置换矩阵。带选主元时成立的是 P·A = L·U,而不是 A = L·U。
  • 指望分解唯一。只有约定 L 的对角线全为 1 之后,它才是唯一的。
  • 把它用在长方形矩阵上。这种形式的 LU 分解是为方阵设计的。
  • 不做选主元。主元位置上出现零会让算法停住,而极小的值会毁掉精度。

常见问题

LU 分解有什么用途?
用来求解矩阵相同、右端项不断变化的方程组。分解只做一次,之后每个方程组只需两次三角求解。
置换矩阵 P 表示什么?
它记录了哪些行被交换过。采用部分选主元时,结果写作 P·A = L·U。
什么时候该改用 Cholesky 分解?
当矩阵对称且正定时。它大约快一倍,而且由于 A = L·Lᵀ,只需要一个三角因子。
能从 LU 分解得到行列式吗?
能——它等于 U 主对角线元素的乘积,每做一次行交换再乘以 −1。

想看完整讲解?请读这篇教程: LU 分解,逐步讲解

其他计算器