通过MCP连接 →

输入计算

[
     
     
     
]

数学公式

广告

结果

QR分解将矩阵 A 分解为乘积 Q * R,其中 Q 是正交矩阵,R 是上三角矩阵。

输入矩阵(A):

1 2 3
4 5 6
7 8 9

Q 矩阵:

-0.1231 0.9045 -0.4082
-0.4924 0.3015 0.8165
-0.8616 -0.3015 -0.4082

R 矩阵:

-8.124 -9.6011 -11.0782
0 0.9045 1.8091
0 0 0

什么是QR分解?

QR分解(也称QR factorization 或 QR decomposition)是线性代数中的一种基础方法,它把一个矩阵 A 表示为两个矩阵的乘积:\(\mathbf{A} = \mathbf{Q}\,\mathbf{R}\)。其中 Q 是正交矩阵(它的各列是相互垂直的单位向量,因此满足 \(\mathbf{Q}^{\mathsf{T}}\mathbf{Q} = \mathbf{I}\)),R 是上三角矩阵。这一分解在数值计算领域被全球通用,适用于任意实数矩阵,与国家或地区惯例无关。

$$\mathbf{A} = \mathbf{Q}\,\mathbf{R}, \quad \mathbf{Q}^{\mathsf{T}}\mathbf{Q} = \mathbf{I},\ \ \mathbf{R}\ \text{upper triangular}$$

QR分解被广泛用于求解线性方程组、计算最小二乘回归拟合,以及通过QR算法求解特征值。相比直接对矩阵求逆,它在数值上更稳定,因此被众多科学与工程软件包所采用。

矩阵 A 分解为正交矩阵 Q 和上三角矩阵 R
QR 分解将矩阵 A 分解为正交矩阵 Q 和上三角矩阵 R。

如何使用本计算器

输入矩阵非常简单:

  • 同一行内的元素用逗号分隔。
  • 不同的行之间用竖线( | )分隔。
  • 例如,行为 (1, 2) 和 (3, 4) 的矩阵,写作 1,2|3,4

提交之后,计算器会返回正交矩阵 Q 和上三角矩阵 R,你可以将两者相乘,验证其结果是否还原为原始矩阵。

公式详解

最常用的方法是格拉姆-施密特(Gram–Schmidt)正交化过程。已知 A 的各列 a₁、a₂、……,算法会构造出一组标准正交向量:

  • 取第一列并将其归一化,得到 q₁。
  • 对后续每一列,先减去它在已求出的各个 q 向量上的投影,再将剩余部分归一化。
  • R 的各元素为点积 \(r_{ij} = \mathbf{q}_i \cdot \mathbf{a}_j\);由于较早的 q 向量不依赖于后面的列,因此 R 是上三角矩阵。
Advertisement
格拉姆-施密特将向量正交化为垂直坐标轴
格拉姆-施密特方法将矩阵的列转化为标准正交向量,构成 Q 的各列。

实例演示

考虑 A = 1,1|0,1|1,0(一个 3×2 矩阵)。将第一列归一化得到 \(\mathbf{q}_1 = (0.707,\ 0,\ 0.707)\)。从第二列中减去它在 q₁ 上的投影并归一化,即可得到 q₂。最终得到的正交矩阵 Q,其各列均为单位长度且彼此垂直,而 R 中保存的则是各投影系数。将 \(\mathbf{Q} \times \mathbf{R}\) 相乘可还原为原始矩阵 A,从而验证分解的正确性。

常见问题

矩阵必须是方阵吗? 不需要。QR分解适用于任意满足 \(m \geq n\) 的 m×n 矩阵——这正是它在“方程数多于未知数”的最小二乘问题中如此实用的原因。

QR分解是唯一的吗? 在不考虑 R 对角元素符号的前提下,它是唯一的。按惯例会把 R 的对角元素取为正值,以确定唯一的答案。

为什么用QR分解而不直接对矩阵求逆? QR分解在数值上更稳定,能够避免直接求矩阵逆所带来的舍入误差,让计算结果更加可靠。

最后更新: