I have a huge sparse linear system $Ax = b$ where I know that an eigenvalue/eigenvector pair is $1$ and a vector of all $1$'s. Can this knowledge help me in solving the linear system at all? It seems like it should.
-
1$\begingroup$ If you had a $3\times3$ matrix $A$, and you knew all the eigenvalues and corresponding eigenvectors, would that help you to solve $Ax=b$? $\endgroup$– Gerry MyersonCommented Mar 4, 2017 at 11:12
-
2$\begingroup$ @GerryMyerson I don't see what you wish to suggest with that comment. $\endgroup$– Federico PoloniCommented Mar 4, 2017 at 14:08
-
1$\begingroup$ @Fed, what I want to suggest is that if knowing all the eigenstuff for a small system doesn't help, then knowing one pair for a large system certainly isn't going to help. [And if knowing all the eigenstuff does help, then that should point the way toward knowing how, and how much, knowing one pair helps.] $\endgroup$– Gerry MyersonCommented Mar 4, 2017 at 22:18
2 Answers
Yes and no.
If you modify slightly the implementation of a Krylov subspace method such as GMRES, you can construct a method with a projection subspace that contains the known eigenvector. This essentially lets you always include the known eigenvector in the search space, for free, saving one matvec and ensuring that the system is always solved correctly in that subspace.
If your matrix is an M-matrix, then $e$ is its Perron vector, and you can use the so-called GTH trick to get lower errors in its LU factorization. This isn't commonly done for large and sparse linear systems, though, as far as I know (also because it makes pivoting more complicated).
On the other hand, it is easy to reduce almost any linear system to one in your special form: just change $Ax=b$ into $DAx=Db$, where $D$ is the diagonal matrix whose entries are the inverses of those of $Ae$. Hence if there were a magic trick to solve this kind of linear systems for much cheaper, then we could apply it to almost any linear system with a little precomputation. So don't expect any significant saving.
One eigenvalue/eigenvector is nothing to have to solve a system.
Try to read LU Factorisation and write the program to solve by yourself or try any program MATHLAB, Wolfram Mathematica, etc.