1
$\begingroup$

I need to compute the inverse matrix:

$$(a_i A+B)^{-1}, \qquad i=1,\ldots,N$$

where $N$ is a large number.

$A$ and $B$ are general $M\times M$ matrices independent of $i$. The only thing that changes with $i$ is the scalar $a_{i}$.

How can I compute this efficiently?

Btw. I am using Matlab.

$\endgroup$

1 Answer 1

1
$\begingroup$

If approximate inverses are enough (and it sounds like they are, since you're doing this by computer), then you can use Neumann series. Assuming everything converges, you have: $$(a_iA+B)^{-1}=\sum_{n\ge 0} (I-a_iA-B)^{n}=\sum_{n\ge 0}\sum_{k=0}^n{n\choose k}(-a_iA)^k(I-B)^{n-k}=$$ $$=\sum_{n\ge 0}\sum_{k=0}^na_i^kM(n,k)=\sum_{k\ge 0}a_i^k\sum_{n\ge k}M(n,k)=\sum_{k\ge 0}a_i^kN(k)$$ where $$N(k)=\sum_{n\ge k}{n\choose k}(-A)^k(I-B)^{n-k}$$

Hence, you can precompute the $N(k)$ matrices, and for each $i$ just compute the series $\sum_{k\ge 0}a_i^kN(k)$. In both cases, you compute "enough" terms to have a good approximate answer.

Note: In order for the $N(k)$ matrices to be well-defined, it's probably necessary that $B$ be invertible.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .