QR分解法解线性方程组
字数 1753 2025-10-26 13:29:52
QR分解法解线性方程组
题目描述
给定一个线性方程组 \(A\mathbf{x} = \mathbf{b}\),其中 \(A\) 是一个 \(m \times n\) 的矩阵(\(m \geq n\)),\(\mathbf{b}\) 是已知的 \(m\) 维向量,\(\mathbf{x}\) 是待求解的 \(n\) 维向量。要求利用QR分解法求解该方程组。QR分解的核心是将矩阵 \(A\) 分解为一个正交矩阵 \(Q\) 和一个上三角矩阵 \(R\) 的乘积,即 \(A = QR\),从而将原方程组转化为易于求解的三角方程组。
解题过程
-
QR分解
- 目标:将矩阵 \(A\) 分解为 \(A = QR\),其中 \(Q\) 是正交矩阵(满足 \(Q^T Q = I\)),\(R\) 是上三角矩阵。
- 方法(以Gram-Schmidt正交化为例):
- 设 \(A\) 的列向量为 \(\mathbf{a}_1, \mathbf{a}_2, \dots, \mathbf{a}_n\)。
- 正交化:逐步构造正交向量组 \(\mathbf{u}_1, \mathbf{u}_2, \dots, \mathbf{u}_n\):
- \(\mathbf{u}_1 = \mathbf{a}_1\)
- \(\mathbf{u}_2 = \mathbf{a}_2 - \text{proj}_{\mathbf{u}_1}(\mathbf{a}_2)\),其中 \(\text{proj}_{\mathbf{u}_1}(\mathbf{a}_2) = \frac{\mathbf{a}_2 \cdot \mathbf{u}_1}{\mathbf{u}_1 \cdot \mathbf{u}_1} \mathbf{u}_1\)
- 依此类推,\(\mathbf{u}_k = \mathbf{a}_k - \sum_{j=1}^{k-1} \text{proj}_{\mathbf{u}_j}(\mathbf{a}_k)\)。
- 单位化:得到标准正交基 \(\mathbf{q}_i = \frac{\mathbf{u}_i}{\|\mathbf{u}_i\|}\),组合成矩阵 \(Q = [\mathbf{q}_1, \mathbf{q}_2, \dots, \mathbf{q}_n]\)。
- 求 \(R\):\(R\) 是上三角矩阵,其元素 \(r_{ij} = \mathbf{q}_i \cdot \mathbf{a}_j\)(当 \(i \leq j\)),否则为 0。
-
转化原方程组
- 将 \(A = QR\) 代入 \(A\mathbf{x} = \mathbf{b}\):
\[ QR\mathbf{x} = \mathbf{b} \]
- 两边左乘 \(Q^T\)(利用 \(Q^T Q = I\)):
\[ R\mathbf{x} = Q^T \mathbf{b} \]
- 记 \(\mathbf{y} = Q^T \mathbf{b}\),则方程简化为 \(R\mathbf{x} = \mathbf{y}\)。
-
回代求解
- 由于 \(R\) 是上三角矩阵,解 \(R\mathbf{x} = \mathbf{y}\) 可通过回代法:
- 从最后一个方程开始:\(x_n = \frac{y_n}{r_{nn}}\)。
- 向上逐行求解:\(x_i = \frac{y_i - \sum_{j=i+1}^n r_{ij} x_j}{r_{ii}}\)。
- 由于 \(R\) 是上三角矩阵,解 \(R\mathbf{x} = \mathbf{y}\) 可通过回代法:
-
关键点说明
- 若 \(A\) 列满秩(即 \(\text{rank}(A) = n\)),则 \(R\) 的对角元均非零,解唯一。
- 实际计算中,为提高数值稳定性,常采用Householder变换或Givens旋转进行QR分解。
通过以上步骤,QR分解法将一般线性方程组转化为三角方程组,避免了直接求逆,适用于数值计算。