矩阵分析与应用-1.9-Moore-Penrose逆矩阵-Section2

前言

本文学习过程来源是《矩阵分析与应用-张贤达》一书. 可以通过 z-lib 下载.

\(Moore-Penrose\) 逆矩阵的计算

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

1. 方程求解法

首先求解矩阵方程

\[ \begin{aligned} AA^{\mathrm{H}} X^{\mathrm{H}} &= A \\ A^{\mathrm{H}}AY &= A^{\mathrm{H}} \\ \end{aligned} \]

我们得到了 \(X^{\mathrm{H}}\)\(Y\)

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

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

\[ A^2 X^{\mathrm{H}} = A \]

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

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

解法一 :

  • 计算矩阵 \(B = AA^{\mathrm{H}}\)

  • 求解矩阵方程 \(B^2 X^{\mathrm{H}} = B\)

  • 计算 \(B\)\(\mathrm{Moore-Penrose}\) 逆矩阵 \(B^{\dagger} = (AA^{\mathrm{H}}) ^{\dagger} = XBX^{\mathrm{H}}\)

  • 计算矩阵 \(A\)\(\mathrm{Moore-Penrose}\) 逆矩阵 \(A^{\dagger} = A^{\mathrm{H}} (AA^{\mathrm{H}}) ^{\dagger} = A^{\mathrm{H}} B^{\dagger}\)

解法二 :

  • 计算矩阵 \(B = A^{\mathrm{H}}A\)

  • 求解矩阵方程 \(B^2 X^{\mathrm{H}} = B\)

  • 计算 \(B\)\(\mathrm{Moore-Penrose}\) 逆矩阵 \(B^{\dagger} = (A^{\mathrm{H}}A) ^{\dagger} = XBX^{\mathrm{H}}\)

  • 计算矩阵 \(A\)\(\mathrm{Moore-Penrose}\) 逆矩阵 \(A^{\dagger} = (A^{\mathrm{H}}A) ^{\dagger} A^{\mathrm{H}} = B^{\dagger} A^{\mathrm{H}}\)

具体选哪个看 \(AA^{\mathrm{H}}\)\(A^{\mathrm{H}}A\) 两个哪一个的维数更小, 选小的那个

2. \(\mathrm{KL}\) 分解法

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

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

\[ G = L^H (K^H A L^H) ^{-1} K^H \]

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

3. 递推法

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

我们将其称为 \(\mathrm{Greville}\) 算法:

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

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

\[ \begin{aligned} 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{aligned} \]

4. 迹方法

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

  • 计算 \(B = AA^\mathrm{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^\mathrm{T}\) ( 注意此时有 \(C_{i+1}B = O \ 且 \ tr(C_iB) \neq 0\) )