Block matrix pseudoinverse is a formula of pseudoinverse of a partitioned matrix. This is useful for decomposing or approximating many algorithms updating parameters in signal processing, which are based on least squares method.
Derivation
Consider a column-wise partitioned matrix:
![{\displaystyle [\mathbf {A} ,\mathbf {B} ],\qquad \mathbf {A} \in \mathbb {R} ^{m\times n},\qquad \mathbf {B} \in \mathbb {R} ^{m\times p},\qquad m\geq n+p.}](/media/api/rest_v1/media/math/render/svg/3a030f9182d9cca0ac4763e79119e68ef3a40d73)
If the above matrix is full rank, the pseudoinverse matrices of it and its transpose are as follows.
![{\displaystyle {\begin{bmatrix}\mathbf {A} ,&\mathbf {B} \end{bmatrix}}^{+}=([\mathbf {A} ,\mathbf {B} ]^{T}[\mathbf {A} ,\mathbf {B} ])^{-1}[\mathbf {A} ,\mathbf {B} ]^{T},}](/media/api/rest_v1/media/math/render/svg/0483d77b5ab79a969b9a757fa514bd6f36c7b137)
^{-1}.}](/media/api/rest_v1/media/math/render/svg/a27a0849a2ea247f3ca9dd8a76843967e3ce4e41)
The pseudoinverse requires (n+p)-square matrix inversion.
To reduce complexity and introduce parallelism, we derive the following decomposed formula.
From a block matrix inverse
, we can have
![{\displaystyle {\begin{bmatrix}\mathbf {A} ,&\mathbf {B} \end{bmatrix}}^{+}=[\mathbf {P} _{B}^{\perp }\mathbf {A} (\mathbf {A} ^{T}\mathbf {P} _{B}^{\perp }\mathbf {A} )^{-1},\quad \mathbf {P} _{A}^{\perp }\mathbf {B} (\mathbf {B} ^{T}\mathbf {P} _{A}^{\perp }\mathbf {B} )^{-1}]^{T},}](/media/api/rest_v1/media/math/render/svg/b715c7597c30781c10a7b05e1f526c283b1e5332)
![{\displaystyle {\begin{bmatrix}\mathbf {A} ^{T}\\\mathbf {B} ^{T}\end{bmatrix}}^{+}=[\mathbf {P} _{B}^{\perp }\mathbf {A} (\mathbf {A} ^{T}\mathbf {P} _{B}^{\perp }\mathbf {A} )^{-1},\quad \mathbf {P} _{A}^{\perp }\mathbf {B} (\mathbf {B} ^{T}\mathbf {P} _{A}^{\perp }\mathbf {B} )^{-1}],}](/media/api/rest_v1/media/math/render/svg/b55538ff73e1c5b3a9913a7b2dedf1039ba756af)
where orthogonal projection matrices are defined by

Interestingly, from the idempotence of projection matrix, we can verify that the pseudoinverse of block matrix consists of pseudoinverse of projected matrices:

![{\displaystyle {\begin{bmatrix}\mathbf {A} ^{T}\\\mathbf {B} ^{T}\end{bmatrix}}^{+}=[(\mathbf {A} ^{T}\mathbf {P} _{B}^{\perp })^{+},\quad (\mathbf {B} ^{T}\mathbf {P} _{A}^{\perp })^{+}].}](/media/api/rest_v1/media/math/render/svg/0c48dc148a26040931dfa82bdc610b7a5bb63dad)
Thus, we decomposed the block matrix pseudoinverse into two submatrix pseudoinverses, which cost n- and p-square matrix inversions, respectively.
Application to least squares problems
Given the same matrices as above, we consider the following least squares problems, which
appear as multiple objective optimizations or constrained problems in signal processing.
Eventually, we can implement a parallel algorithm for least squares based on the following results.
Column-wise partitioning in over-determined least squares
Suppose a solution
solves an over-determined system:

Using the block matrix pseudoinverse, we have

Therefore, we have a decomposed solution:

Row-wise partitioning in under-determined least squares
Suppose a solution
solves an under-determined system:

The minimum-norm solution is given by

Using the block matrix pseudoinverse, we have
![{\displaystyle \mathbf {x} =[(\mathbf {A} ^{T}\mathbf {P} _{B}^{\perp })^{+},\quad (\mathbf {B} ^{T}\mathbf {P} _{A}^{\perp })^{+}]{\begin{bmatrix}\mathbf {e} \\\mathbf {f} \end{bmatrix}}=(\mathbf {A} ^{T}\mathbf {P} _{B}^{\perp })^{+}\,\mathbf {e} +(\mathbf {B} ^{T}\mathbf {P} _{A}^{\perp })^{+}\,\mathbf {f} .}](/media/api/rest_v1/media/math/render/svg/5ce5932ef6a113f52465dad3030056664b9877dc)
Instead of
, we need to calculate directly or indirectly

In a dense and small system, we can use singular value decomposition, QR decomposition, or Cholesky decomposition to replace the matrix inversions with numerical routines. In a large system, we may employ iterative methods such as Krylov subspace methods.
Considering parallel algorithms, we can compute
and
in parallel. Then, we finish to compute
and
also in parallel.
Proof of block matrix inversion
Let a block matrix be

We can get an inverse formula by combining the previous results in [1].

where
and
, respectively, Schur complements of
and
, are defined by
, and
. This relation is derived by using Block Triangular
Decomposition. It is called simple block matrix inversion.[2]
Now we can obtain the inverse of the symmetric block matrix:

Since the block matrix is symmetric, we also have

Then, we can see how the Schur complements are connected to the projection matrices of the symmetric, partitioned matrix.
Notes and references
External links