PHD Discussions Logo

Ask, Learn and Accelerate in your PhD Research

Question Icon Post Your Answer

Question Icon

How can one compute C = inv(A‑ inv(B) A) without inverting B directly?

I'm implementing a statistical estimation algorithm, and this specific matrix expression keeps coming up. Directly inverting B, which can be huge and ill-conditioned, is both computationally expensive and numerically risky. I'm looking for a proven, stable computational strategy that sidesteps this inversion altogether.

 

All Answers (1 Answers In All)

By Keerthi Gupta Answered 1 month ago

In my work on large-scale statistical models, I've faced this exact computational bottleneck. I would recommend against forming inv(B) explicitly. The standard, robust approach is to recognize this as a sequence of linear solves. First, solve B*X = A for X using a stable decomposition like Cholesky (if B is SPD) or LU. Then, compute C = inv(A? * X). This replaces one large, unstable inversion with two numerically reliable operations: a linear solve and a smaller inversion. I've found this maintains accuracy and control over round-off error.

 

Your Answer