🔨矩阵分解计算器 - LU、Cholesky、QR、SVD 分步求解
线性代数和数值分析课程里的四种核心矩阵分解,都能在这里一步步算出来并验证。LU 分解采用部分主元高斯消元,得到 P·A = L·U:每一列选绝对值最大的主元、记录行交换、列出每个乘数和行变换,并显示每一步之后的 L 和 U;整数、分数和小数输入都按精确分数(BigInt)计算,最后逐项验证 P·A 与 L·U 完全相等,顺带给出行列式。Cholesky 分解先检查矩阵是否对称,再逐列计算 l_jj = √(a_jj − Σ l_jk²),根号下出现非正数时指出是第几列、从而判定矩阵不是正定的。QR 分解可选修正 Gram–Schmidt(列出每个投影系数 r_ij 和剩余长度)或 Householder 反射(列出每一步的反射向量和新对角元),并报告正交性误差 ‖QᵀQ − I‖。奇异值分解用单边 Jacobi 方法,支持最大 8×8 的任意形状矩阵,给出 U、Σ、Vᵀ、数值秩、条件数、谱范数和 Frobenius 范数;拖动 k 可以看到秩 k 近似 A_k 及其误差(Eckart–Young 定理),还有一个把灰度图片当矩阵做 SVD 压缩的演示,可以上传自己的图片。所有分解都显示乘积重构残差,特征分解链接到站内的特征值工具。矩阵大小 LU/Cholesky/QR 最大 6×6,可从 Excel 直接粘贴。
免费 · 无需注册 · 浏览器本地处理最后更新:
正在加载工具...
如何使用矩阵分解计算器
- 1选择分解类型:LU、Cholesky、QR、SVD 或特征分解
- 2设置矩阵大小并填写数字(可粘贴 Excel 数据、分数 3/4 或点「随机」)
- 3查看分解步骤、结果矩阵、秩与条件数等指标,以及重构残差验证
常见问题
- LU 分解为什么要选主元、引入置换矩阵 P?
- 不交换行时,只要某一步主元为 0(如 A = [[0,1],[1,0]])LU 分解就无法进行;主元很小时,乘数会很大,舍入误差被急剧放大。部分主元法每一列都选绝对值最大的元素作主元,所有乘数 |l_ij| ≤ 1,数值稳定。行交换记录在置换矩阵 P 里,所以结果写成 P·A = L·U。
- Cholesky 分解有什么用?
- 对称正定矩阵(如协方差矩阵、最小二乘的法方程 AᵀA)可以写成 L·Lᵀ,计算量约为 LU 的一半,而且不需要选主元。它也是判断矩阵是否正定的最快方法:分解过程中根号下出现 0 或负数,矩阵就不是正定的。蒙特卡洛模拟里用它来生成相关的随机变量。
- Gram–Schmidt 和 Householder 有什么区别?
- 两者在精确算术下得到相同的 Q、R(可能相差符号)。Gram–Schmidt 直观,逐列减去投影再单位化,但列接近线性相关时会丢失正交性;Householder 用一系列反射把下三角部分整体清零,正交性误差始终在机器精度量级,是 LAPACK 等数值库的标准做法,并且给出完整的 m×m 正交矩阵 Q。
- 奇异值、秩和条件数是什么关系?
- 非零奇异值的个数就是矩阵的秩(数值上按容差 max(m,n)·σ₁·ε 判定)。条件数 κ₂ = σ_max / σ_min 衡量解方程时误差被放大的倍数,κ 越大矩阵越「病态」,有零奇异值时为无穷大(奇异矩阵)。只保留前 k 个奇异值得到的 A_k 是所有秩 k 矩阵中离 A 最近的,误差的 2-范数正好是 σ_{k+1}。