Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Suppose one has the following system of linear equations $$(A + \Delta A) x = b$$ where $A$ and $\Delta A$ are large sparse matrices and $\Delta A$ is "small" compared to $A$, furthermore vector $x$ is unknown (the solution) and vector $b$ is known.

The system needs to be solved many times, in which only $\Delta A$ varies (the perturbation). Therefore it is relatively cheap to obtain $A^{-1}$ and may be considered to be known.

The best solution I've found thus far is to apply the Neumann series expansion on the inverse $$A(I + A^{-1} \Delta A) x = b$$ $$A(I + P) x = b$$ $$\Rightarrow \quad x = (I + P)^{-1} A^{-1} b = \lbrace I - P + P^2 - P^3 + \cdots \rbrace A^{-1} b$$

Does any one know of a better alternative, preferably a method that doesn't require a series expansion?

share|cite|improve this question
What's wrong with the series? If $\Delta A$ is small, then presumably you need only compute, say, to 1st order in $P$. Given that the matrices involved are sparse, and that you need only compute $A^{-1}$ once, this approach should give you a very fast way to repeat this computation. – Ron Gordon Jan 4 '13 at 14:06
@rlgordonma: Yes, it's quite good actually, also because $P$ only needs to be computed once for each system. But I was hoping for a method that doesn't involve a series expansion at all. – demorge Jan 4 '13 at 14:10

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.