Psuedo-inverse of block low-rank, symmetric matrix?

611 Views Asked by At

I have a matrix that looks like

$$ D = \left[ \begin{matrix} c_1aa^T & c_2ab^T \\ c_2ba^T & c_3bb^T \end{matrix} \right] $$

where $c_1, c_2, c_3$ are scalars and $a, b$ are $n \times 1$ vectors. Is it possible to efficiently calculate the pseudo-inverse of $D$?

1

There are 1 best solutions below

4
On BEST ANSWER

Let $Q_a$ and $Q_b$ be orthogonal matrices such that $Q_aa=\alpha e_1$ and $Q_bb=\beta e_1$, where $\alpha=\|a\|_2$, $\beta=\|b\|_2$, and $e_1=[1,0,\ldots,0]^T$. Such matrices can be constructed, e.g., by using the Householder reflections. Then with $Q:=Q_a\oplus Q_b$, $$ QDQ^T=\begin{bmatrix}c_1\alpha^2 e_1e_1^T & c_2\alpha\beta e_1e_1^T\\ c_2\alpha\beta e_1e_1^T & c_3\beta^2 e_1e_1^T\end{bmatrix}. $$ You can see that what remains is a matrix with just $4$ entries placed in the north-west corners of each of the blocks. With a suitable permutation $P$ you can make $PQDQ^TP^T=:\tilde{D}$ to have zeros everywhere except the leading principal $2\times 2$ submatrix, that is, $\tilde{D}=\tilde{D}_2\oplus 0_{n-2}$, where $$ \tilde{D}_2:=\begin{bmatrix}c_1\alpha^2 & c_2\alpha\beta \\ c_2\alpha\beta & c_3\beta^2\end{bmatrix}. $$ It is easy to compute the pseudoinverse of $\tilde{D}$: $$ \tilde{D}^+=\tilde{D}_2^{+}\oplus 0_{n-2}, $$ where $\tilde{D}_2^{+}$ can be computed by inverting $\tilde{D}_2$ if it is nonsingular (if it is singular, then computing its pseudoinverse is also very cheap). The pseudoinverse of $D=Q^TP^T\tilde{D}PQ$ is then $$ D^+=Q^TP^T\tilde{D}^+PQ. $$