矩阵分析与应用(十):Moore-Penrose 逆矩阵的计算

Moore-Penrose 逆矩阵的计算

假设 $ A_{m \times n} $ 秩为 $ r $ ,且 $ r \leq \min(m,n) $ ,我们在此介绍矩阵 $ A^{\dagger} $ 求解的四种方法


方程求解法

首先求解矩阵方程

$$ \begin{split} AA^H X^H &= A \\ A^HAY &= A^H \\ \end{split} $$

我们得到了 $ X^H $ 和 $ Y $

然后我们就能计算出广义逆矩阵 $ A^{\dagger} = XAY $

若我们知道这个是一个Hermitian矩阵,则我们可以将上面的方程简化为一个:

$$ A^2 X^H = A $$

而此时的Moore-Penrose矩阵化为: $ A ^{\dagger} = XAX^H $

我们由此可以得到两种解法:

解法一

  • 计算矩阵 $ B = AA^H $
  • 求解矩阵方程 $ B^2 X^H = B $
  • 计算B的Moore-Penrose逆矩阵 $ B^{\dagger} = (AA^H) ^{\dagger} = XBX^H $
  • 计算矩阵A的Moore-Penrose逆矩阵 $ A^{\dagger} = A^H (AA^H) ^{\dagger} = A^H B^{\dagger} $

解法二

  • 计算矩阵 $ B = A^HA $
  • 求解矩阵方程 $ B^2 X^H = B $
  • 计算B的Moore-Penrose逆矩阵 $ B^{\dagger} = (A^HA) ^{\dagger} = XBX^H $
  • 计算矩阵A的Moore-Penrose逆矩阵 $ A^{\dagger} = (A^HA) ^{\dagger} A^H = B^{\dagger} A^H $

具体选哪个看 $ AA^H $ 和 $ A^HA $ 两个哪一个的维数更小,选小的那个

KL分解法

我们在前面的广义逆矩阵中单边逆矩阵的唯一解一节中提到了矩阵满秩分解的命题:

若 $ A = KL $ 是矩阵 $ A_{m \times n} $ 的满秩分解,则:

$$ G = L^H (K^H A L^H) ^{-1} K^H $$

满足Moore-Penrose逆矩阵的四个条件,为 $ A_{m \times n} $ 的Moore-Penrose逆矩阵

递推法

对矩阵 $ A_{m \times n} $ 的前k列进行分块, $ A_{k} = [A_{k-1}, a_k] $ ,我们可以通过这个依次递推 $ A_{k-1}^{\dagger}, \quad A_{k}^{\dagger} $ 。

我们将其称为Greville算法:

初始值: $ A_{1}^{\dagger} = a_{1}^{\dagger} = (a_1^H a_1)^{-1} a_1^H $

递推: 令 $ k = 2,3,\cdots , n $ ,有以下:

$$ \begin{split} d_k &= A_{k-1}^{\dagger} a_k \\ b_k &= \begin{aligned} \left\{ \begin{array}{l} (1+d_k^H d_k)^{-1} d_k^H A_{k-1}^{\dagger} , \quad d_k^Hd_k \neq -1 \\ (a_k-A_{k-1}d_k) ^{\dagger} d_k^Hd_k = -1\\ \end{array} \right. \end{aligned} \\ A_k^{\dagger} &= \begin{bmatrix} A_{k-1}^{\dagger} - d_k b_k \\ b_k \\ \end{bmatrix} \end{split} $$

迹方法

我们已知矩阵 $ A_{m \times n} $ 的秩为 $ r $ ,我们有下列的求Moore-Penrose逆矩阵的迹方法

  • 计算 $ B = AA^T $
  • 令 $ C_1 = I $
  • 计算 $ C_{i+1} = \frac{1}{i} tr(C_i,B)I-C_iB , \qquad i = 1,2,\cdots,r-1 $
  • 计算 $ A^{\dagger} = \frac{r}{tr(C_iB)} C_iA^T $ 「注意此时有 $ C_{i+1}B = O 且 tr(C_iB) \neq 0 $ 」