How to solve Ax=b incrementally ? - MathOverflow most recent 30 from http://mathoverflow.net2013-06-20T00:47:45Zhttp://mathoverflow.net/feeds/question/61895http://www.creativecommons.org/licenses/by-nc/2.5/rdfhttp://mathoverflow.net/questions/61895/how-to-solve-axb-incrementallyHow to solve Ax=b incrementally ?Nancy Lee2011-04-16T07:37:46Z2011-04-17T09:43:49Z
<p>Hi, everyone. </p>
<p>What I am struggling is the following problem. I have a linear matrix equation $Ax=b$, where $A$ is a known $n \times n$ large sparse real matrix, $x$ and $b$ are known $n \times 1$ vectors. Now, one entry of $A$ has changed into $a$ and we denote by this matrix $A'$. Since we make $b$ unchanged, the updated $A$ will cause the $x$ in the original linear eqaution accordingly changed to $x'$ such that $A'x'=b$. My goal is to find this new $x'$. A naive way is to re-solve $A'x'=b$. But since $A'$ is slightly different from $Ax=b$, is there any incremental way to fast solve $x'$ in $A'x'=b$ by taking advantage of the original equation $Ax=b$? Thank you very much for any of your kind suggestion!</p>
http://mathoverflow.net/questions/61895/how-to-solve-axb-incrementally/61906#61906Answer by Fumiyo Eda for How to solve Ax=b incrementally ?Fumiyo Eda2011-04-16T10:40:45Z2011-04-16T10:40:45Z<p>An <em>iterative</em> scheme may do the trick. I would suggest looking into algorithms such as GMRES. Since you have a large, sparse matrix, there is a good chance you already have your matrix in a format that can be
accepted by an iterative solver.</p>
http://mathoverflow.net/questions/61895/how-to-solve-axb-incrementally/61913#61913Answer by Brian Borchers for How to solve Ax=b incrementally ?Brian Borchers2011-04-16T12:36:56Z2011-04-16T12:36:56Z<p>As Fumiyo Eda already mentioned, you can use an iterative method such as GMRES to resolve the system after the change to $A$. </p>
<p>If you want to use direct LU factorization rather than an iterative method, look into "rank one update" techniques for the LU factorization. </p>
http://mathoverflow.net/questions/61895/how-to-solve-axb-incrementally/61944#61944Answer by Federico Poloni for How to solve Ax=b incrementally ?Federico Poloni2011-04-16T18:53:12Z2011-04-17T09:43:49Z<p>Another method to update the solution is using the Sherman-Morrison formula:
<a href="http://en.wikipedia.org/wiki/Sherman%E2%80%93Morrison_formula" rel="nofollow">http://en.wikipedia.org/wiki/Sherman%E2%80%93Morrison_formula</a>
in your case, $u$ and $v$ are canonical basis vectors.</p>
<p>So basically you have to solve two linear systems with $A$ and then you can update the solution for all possible values of $A$ with little work. Solve $2n$ linear systems, and you can update as many times as you want every entry of $A$ (only one at a time though). </p>
<p>Not sure that this is really your best option though --- all depends on how many "modified systems" you have to solve with the same starting matrix $A$. We need more information from you to decide this.</p>
<p>[By the way, as already pointed out, you'd better use a linear system solver which is suitable for sparse matrices: sparse LU or iterative methods.]</p>