The inverse of a sum of two symmetric for schur completion

inverselinear algebramatricesmatrix decompositionschur-complement

I have a up-triangulate Jacobi matrix J which can be blocked like :

$J = \begin{bmatrix}A & B\\ 0 & C\end{bmatrix} $

both A and C are up-triangulate, we can get Hessian matrix H by:

$H = J'J =\begin{bmatrix}A' & 0\\B'&C'\end{bmatrix} \begin{bmatrix}A & B\\ 0 & C\end{bmatrix} = \begin{bmatrix}A'A & A'B\\B'A & B'B+C'C\end{bmatrix} $

by schur completion, I want to margin $B'B+C'C$, the equation is:

$ A'A – A'B(B'B+C'C)^{-1}B'A $

I know $C^{-1}$ is easy computed because it's a up-triangulate matrix, but unfortunately the add ruin this equation.

I have found that
$ X(X^{-1}+Y^{-1})Y = (X^{-1}+Y^{-1})^{-1} $ only when both X and Y are invertible, which B'B dose not meet

so any one have some brilliant idea to compute this equation easily?

Best Answer

To compute $X:=(B^TB+C^TC)^{-1}B^TA$, you never actually compute $(B^TB+C^TC)^{-1}$, but instead you solve $(B^TB+C^TC)X=B^TA$. Since $C$ is upper triangular, you can see $C^T$ as the Cholesky factor of $C^TC$. You can update the Cholesky factor $C^T$ to account for the low rank update $B^TB$ (via repeated rank-1 updates). That will give you a new Cholesky factor $L$ such that $LL^T = B^TB+C^TC$. Then all you need to do is solve $LL^TX = B^TA$, which is relatively easy.

Related Question