Block matrix pseudoinverse: Difference between revisions

Content deleted Content added
Block matrix inversion: removed irrelevant duplication of Block_matrix#Block_matrix_inversion
Tag: section blanking
Derivation: cleaned and added a reference
Line 6:
:<math> [\mathbf A, \mathbf B], \qquad \mathbf A \in \reals^{m\times n}, \qquad \mathbf B \in \reals^{m\times p}, \qquad m \geq n+p.</math>
 
If the above matrix is full rank, the [[Moore–Penrose pseudoinverse]] matrices of it and its transpose are as follows.
:<math>
\begin{bmatrix}
Line 19:
^{+} = [\mathbf A, \mathbf B] ([\mathbf A, \mathbf B]^T [\mathbf A, \mathbf B])^{-1}.
</math>
TheThis computation of the pseudoinverse requires (''n''&nbsp;+&nbsp;''p'')-square matrix inversion and does not take advantage of the block form.
 
To reduce computational costs to ''n''- and ''p''-square matrix inversions and to introduce parallelism, treating the blocks separately, one derives <ref name=Baksalary>{{cite journal|author=J.K. Baksalary and O.M. Baksalary|title=Particular formulae for the Moore–Penrose inverse of a columnwise partitioned matrix|journal=Linear Algebra Appl.|volume=421|date=2007|pages=16–23|doi=10.1016/j.laa.2006.03.031}}</ref>
To reduce complexity and introduce parallelism, we derive the following decomposed formula. From a block matrix inverse<math> \mathbf ([\mathbf A, \mathbf B]^T [\mathbf A, \mathbf B])^{-1}</math>, we can have{{citation needed|date=December 2010}}{{Original research|date=December 2010}}
:<math>
\begin{bmatrix}
\mathbf A, & \mathbf B
\end{bmatrix}
^{+} =
^{+} = \left[\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}\right]^T,
\begin{bmatrix}
^{+} = \left[\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}\right]^T,
\\
\quadmathbf P_A^\perp \mathbf B(\mathbf B^T \mathbf P_A^{\perp} \mathbf B)^{+-1} ]. </math>
\end{bmatrix}
=
\begin{bmatrix}
(\mathbf P_B^{\perp}\mathbf A)^{+}
\\
(\mathbf P_A^{\perp}\mathbf B)^{+}
\end{bmatrix},
</math>
:<math>
Line 32 ⟶ 43:
\mathbf A^T \\ \mathbf B^T
\end{bmatrix}
^{+} = \left[\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}\right],
= [(\mathbf A^T \mathbf P_B^{\perp})^{+},
\quad (\mathbf AB^T \\ \mathbf BP_A^T{\perp})^{+} ],
</math>
where [[orthogonal projection]] matrices are defined by
Line 41 ⟶ 54:
</math>
 
Note that theThe above formulaeformulas are not necessarily valid if <math>[\mathbf A, \mathbf B]</math> does not have full rank – for example, if <math>\mathbf A \neq 0</math>, then
Interestingly, from the [[idempotence]] of projection matrix, we can verify that the pseudoinverse of block matrix consists of pseudoinverse of projected matrices:
:<math>
\begin{bmatrix}
\mathbf A, & \mathbf B
\end{bmatrix}
^{+}
=
\begin{bmatrix}
(\mathbf P_B^{\perp}\mathbf A)^{+}
\\
(\mathbf P_A^{\perp}\mathbf B)^{+}
\end{bmatrix}, </math>
:<math>
\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})^{+} ]. </math>
 
Thus, we decomposed the block matrix pseudoinverse into two submatrix pseudoinverses, which cost ''n''- and ''p''-square matrix inversions, respectively.
 
Note that the above formulae are not necessarily valid if <math>[\mathbf A, \mathbf B]</math> does not have full rank – for example, if <math>\mathbf A \neq 0</math>, then
:<math>
\begin{bmatrix}