| Author |
Comment/Response |
James Benson
|
06/20/07 1:44pm
I'm trying to solve a reasonably large matrix equation A(t)X(t)=B(t), where A is a non-symmetric diagonally dominant matrix of dimensions around 4000x4000, and where all elements depend continuously on t. I descretise in time and solve the same system multiple times A_i X_i=B_i. Because the system is continuous, if the time step is small there shouldn't be too much difference between X_i and X_{i+1}.
I have been solving with LinearSolve, and know that Mathematica can use an iterative method like the Krylov method, but would like to take advantage of the known previous solution X_i as a starting point to solve for X_{i+1}.
I've tried writing my own solver using a Gauss-Seidell technique, but the code (borrowed from the Fullerton.edu website) is >10 times slower than LinearSolve, even with a "head start."
I'm not entirely sure how the Preconditioner works for the Krylov method. Does anyone have any ideas?
URL: , |
|