奇异值分解(SVD)在矩阵伪逆计算中的应用
字数 2334 2025-10-26 09:00:43

奇异值分解(SVD)在矩阵伪逆计算中的应用

题目描述
给定一个 \(m \times n\) 矩阵 \(A\)(可能非方阵或奇异),如何计算其伪逆(Moore-Penrose逆)\(A^+\)?要求通过奇异值分解(SVD)实现,并说明伪逆在求解病态线性方程组 \(A\mathbf{x} = \mathbf{b}\) 中的应用。


解题过程

1. 伪逆的定义与性质

伪逆 \(A^+\) 是逆矩阵概念的扩展,适用于任意矩阵。它满足以下4个条件(Moore-Penrose条件):

  1. \(AA^+A = A\)
  2. \(A^+AA^+ = A^+\)
  3. \((AA^+)^T = AA^+\)(对称性)
  4. \((A^+A)^T = A^+A\)

\(A\) 可逆,则 \(A^+ = A^{-1}\)


2. 奇异值分解(SVD)回顾

对任意矩阵 \(A \in \mathbb{R}^{m \times n}\),其SVD为:

\[A = U \Sigma V^T \]

其中:

  • \(U \in \mathbb{R}^{m \times m}\) 是正交矩阵(左奇异向量)
  • \(V \in \mathbb{R}^{n \times n}\) 是正交矩阵(右奇异向量)
  • \(\Sigma \in \mathbb{R}^{m \times n}\) 是对角矩阵,元素为奇异值 \(\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0\)\(r = \text{rank}(A)\)),其余元素为0。

3. 通过SVD计算伪逆

步骤1:对 \(A\) 进行SVD

\[A = U \Sigma V^T \]

步骤2:构造伪逆 \(\Sigma^+\)
\(\Sigma\) 的伪逆 \(\Sigma^+ \in \mathbb{R}^{n \times m}\) 通过对角矩阵的转置+取倒数得到:

  • 对每个非零奇异值 \(\sigma_i\),取其倒数 \(1/\sigma_i\)
  • 零奇异值保持不变;
  • 最后转置矩阵。

例如,若

\[\Sigma = \begin{bmatrix} \sigma_1 & 0 & 0 \\ 0 & \sigma_2 & 0 \\ 0 & 0 & 0 \end{bmatrix} \quad (m=3, n=3, r=2), \]

\[\Sigma^+ = \begin{bmatrix} 1/\sigma_1 & 0 & 0 \\ 0 & 1/\sigma_2 & 0 \\ 0 & 0 & 0 \end{bmatrix}^T = \begin{bmatrix} 1/\sigma_1 & 0 & 0 \\ 0 & 1/\sigma_2 & 0 \\ 0 & 0 & 0 \end{bmatrix}. \]

步骤3:计算 \(A^+\)
利用SVD的逆运算:

\[A^+ = V \Sigma^+ U^T \]

验证:

\[A^+A = V \Sigma^+ U^T U \Sigma V^T = V (\Sigma^+ \Sigma) V^T, \]

其中 \(\Sigma^+ \Sigma\)\(n \times n\) 对角矩阵,前 \(r\) 个对角元为1,其余为0,满足伪逆的对称性条件。


4. 伪逆求解线性方程组 \(A\mathbf{x} = \mathbf{b}\)

\(A\) 不可逆或非方阵时,普通逆不存在。伪逆给出最小二乘解

  • 若方程组有解:\(\mathbf{x} = A^+ \mathbf{b}\) 是解中欧几里得范数最小的解。
  • 若方程组无解:\(\mathbf{x} = A^+ \mathbf{b}\) 是最小化残差 \(\|A\mathbf{x} - \mathbf{b}\|_2\) 的解。

推导
通过SVD将问题简化:

\[A\mathbf{x} = U \Sigma V^T \mathbf{x} = \mathbf{b} \implies \Sigma (V^T \mathbf{x}) = U^T \mathbf{b}. \]

\(\mathbf{y} = V^T \mathbf{x}\)\(\mathbf{c} = U^T \mathbf{b}\),则问题化为:

\[\Sigma \mathbf{y} = \mathbf{c}. \]

由于 \(\Sigma\) 是对角矩阵,其伪逆解为 \(\mathbf{y} = \Sigma^+ \mathbf{c}\),即:

\[\mathbf{x} = V \mathbf{y} = V \Sigma^+ U^T \mathbf{b} = A^+ \mathbf{b}. \]


5. 数值稳定性处理

若奇异值 \(\sigma_i\) 非常小(接近0),直接取倒数会导致数值不稳定。通常设置一个阈值 \(\epsilon\)(如 \(\epsilon = 10^{-12}\)),当 \(\sigma_i < \epsilon\) 时,视作0,在 \(\Sigma^+\) 中对应位置置0而非取倒数。


总结
通过SVD计算伪逆,将复杂矩阵问题转化为对角矩阵的简单操作,适用于病态方程组、秩亏矩阵等场景,是数值线性代数中的核心工具。

奇异值分解(SVD)在矩阵伪逆计算中的应用 题目描述 : 给定一个 \( m \times n \) 矩阵 \( A \)(可能非方阵或奇异),如何计算其 伪逆 (Moore-Penrose逆)\( A^+ \)?要求通过奇异值分解(SVD)实现,并说明伪逆在求解病态线性方程组 \( A\mathbf{x} = \mathbf{b} \) 中的应用。 解题过程 : 1. 伪逆的定义与性质 伪逆 \( A^+ \) 是逆矩阵概念的扩展,适用于任意矩阵。它满足以下4个条件(Moore-Penrose条件): \( AA^+A = A \) \( A^+AA^+ = A^+ \) \( (AA^+)^T = AA^+ \)(对称性) \( (A^+A)^T = A^+A \) 若 \( A \) 可逆,则 \( A^+ = A^{-1} \)。 2. 奇异值分解(SVD)回顾 对任意矩阵 \( A \in \mathbb{R}^{m \times n} \),其SVD为: \[ A = U \Sigma V^T \] 其中: \( U \in \mathbb{R}^{m \times m} \) 是正交矩阵(左奇异向量) \( V \in \mathbb{R}^{n \times n} \) 是正交矩阵(右奇异向量) \( \Sigma \in \mathbb{R}^{m \times n} \) 是对角矩阵,元素为奇异值 \( \sigma_ 1 \geq \sigma_ 2 \geq \cdots \geq \sigma_ r > 0 \)(\( r = \text{rank}(A) \)),其余元素为0。 3. 通过SVD计算伪逆 步骤1:对 \( A \) 进行SVD \[ A = U \Sigma V^T \] 步骤2:构造伪逆 \( \Sigma^+ \) \( \Sigma \) 的伪逆 \( \Sigma^+ \in \mathbb{R}^{n \times m} \) 通过对角矩阵的 转置+取倒数 得到: 对每个非零奇异值 \( \sigma_ i \),取其倒数 \( 1/\sigma_ i \); 零奇异值保持不变; 最后转置矩阵。 例如,若 \[ \Sigma = \begin{bmatrix} \sigma_ 1 & 0 & 0 \\ 0 & \sigma_ 2 & 0 \\ 0 & 0 & 0 \end{bmatrix} \quad (m=3, n=3, r=2), \] 则 \[ \Sigma^+ = \begin{bmatrix} 1/\sigma_ 1 & 0 & 0 \\ 0 & 1/\sigma_ 2 & 0 \\ 0 & 0 & 0 \end{bmatrix}^T = \begin{bmatrix} 1/\sigma_ 1 & 0 & 0 \\ 0 & 1/\sigma_ 2 & 0 \\ 0 & 0 & 0 \end{bmatrix}. \] 步骤3:计算 \( A^+ \) 利用SVD的逆运算: \[ A^+ = V \Sigma^+ U^T \] 验证: \[ A^+A = V \Sigma^+ U^T U \Sigma V^T = V (\Sigma^+ \Sigma) V^T, \] 其中 \( \Sigma^+ \Sigma \) 是 \( n \times n \) 对角矩阵,前 \( r \) 个对角元为1,其余为0,满足伪逆的对称性条件。 4. 伪逆求解线性方程组 \( A\mathbf{x} = \mathbf{b} \) 当 \( A \) 不可逆或非方阵时,普通逆不存在。伪逆给出 最小二乘解 : 若方程组有解:\( \mathbf{x} = A^+ \mathbf{b} \) 是解中欧几里得范数最小的解。 若方程组无解:\( \mathbf{x} = A^+ \mathbf{b} \) 是最小化残差 \( \|A\mathbf{x} - \mathbf{b}\|_ 2 \) 的解。 推导 : 通过SVD将问题简化: \[ A\mathbf{x} = U \Sigma V^T \mathbf{x} = \mathbf{b} \implies \Sigma (V^T \mathbf{x}) = U^T \mathbf{b}. \] 令 \( \mathbf{y} = V^T \mathbf{x} \),\( \mathbf{c} = U^T \mathbf{b} \),则问题化为: \[ \Sigma \mathbf{y} = \mathbf{c}. \] 由于 \( \Sigma \) 是对角矩阵,其伪逆解为 \( \mathbf{y} = \Sigma^+ \mathbf{c} \),即: \[ \mathbf{x} = V \mathbf{y} = V \Sigma^+ U^T \mathbf{b} = A^+ \mathbf{b}. \] 5. 数值稳定性处理 若奇异值 \( \sigma_ i \) 非常小(接近0),直接取倒数会导致数值不稳定。通常设置一个阈值 \( \epsilon \)(如 \( \epsilon = 10^{-12} \)),当 \( \sigma_ i < \epsilon \) 时,视作0,在 \( \Sigma^+ \) 中对应位置置0而非取倒数。 总结 : 通过SVD计算伪逆,将复杂矩阵问题转化为对角矩阵的简单操作,适用于病态方程组、秩亏矩阵等场景,是数值线性代数中的核心工具。