numpy.linalg.qr中'reduced'模式的数学含义是什么?
numpy.linalg.qr中'reduced'模式的作用与数学含义
数学含义
先明确:假设待分解的矩阵A是m行n列的(记为A ∈ ℝ^(m×n)):
- 当m ≥ n(行数≥列数)时:
- reduced模式下,得到的Q是m×n的正交矩阵(列向量两两正交且模长为1),R是n×n的上三角矩阵,完全满足原矩阵分解关系
A = Q @ R。 - 对比你熟悉的complete模式:complete模式的Q是m×m的正交矩阵,R是m×n的上三角矩阵(下半部分全是0),虽然也满足
A = Q @ R,但reduced模式只保留了Q中对重构A有用的前n列,同时砍掉了R里冗余的零元素行,是更紧凑的分解形式。
- reduced模式下,得到的Q是m×n的正交矩阵(列向量两两正交且模长为1),R是n×n的上三角矩阵,完全满足原矩阵分解关系
- 当m < n(行数<列数)时:
- reduced模式和complete模式的结果完全一致:Q是m×m的正交矩阵,R是m×n的上三角矩阵,因为此时没法把Q扩展到n×n的正交矩阵,自然不存在冗余部分。
核心作用
- 高效省资源:当m远大于n时,reduced模式避免了存储和计算complete模式里那些对重构A毫无用处的Q的后(m-n)列,以及R里全零的后(m-n)行,大幅节省内存和计算时间。
- 适配多数场景:像线性方程组求解、最小二乘拟合、特征值估计这类常见任务,只需要reduced形式的QR分解就足够完成计算,完全没必要用更冗余的complete模式,这也是它成为默认模式的原因。
补充:numpy文档里对reduced模式的描述确实比较简洁,但本质就是“保留分解的最小必要部分”,核心逻辑就是用最紧凑的形式满足分解需求。
内容的提问来源于stack exchange,提问作者SineOfTheTimes
相关产品推荐
相关产品推荐

