Solving linear systems of equations consists of block-diagonal part + small sparse part

206 Views Asked by At

guys i have system of the following form $A*x = b, A = BD+\epsilon * S$ where $BD$ is block-diagonal system , S - some sparse system, $\epsilon$ -- some small constant, for clearity $\lvert\lvert BD \rvert \rvert = \lvert\lvert S \rvert \rvert = 1 $. Dimensions of BD and S are large for me (~10000, solving many times per second, beyond other stuff). I want to solve it like this -- find solution of block-diagonal system $BD^{-1}$, then use it as preconditioner to get new equation ${BD}^{-1}* A* x = {BD}^{-1}*b => (I + \epsilon * {BD}^{-1}* S) * x ={BD}^{-1}*b $ that i want to solve using some relaxation method like SOR. So, the questions are following 1. What are pitfails of this method 2. Whether there exists more optimal (in terms of speed ) to solve such systems.