Speedup Sparse Symmetric Indefinite Matrix Solution

10 Ansichten (letzte 30 Tage)
wma
wma am 16 Jul. 2012
Hello,
i am trying to solve a general case least squares system:
N = ...
[ ...
B*Q*B' , A , 0 ;
A' , 0 , C' ;
0 , C , 0 ;
]
with the right hand side
rhs = [ -B*v0+f(x0,v0); 0 , -wc ].
N is sparse with nnz = 976328 and has 27016x27016 elements with the following pattern:
The three bands come from B*Q*B' with the size of 25464 x 25464. A is always very ill conditioned (rcond ~ 1-e17) therefore its not the usual Gauß-Markov solution:
dx = (A'*(B*Q*B')\A)\(A'*(B*Q*B')\(f(x0,v0)-B*v0);
where A will be on the main diagonal and destroy the whole N matrix condition.
After symamd the pattern shows a significant improvement:
The solution N\rhs takes usually 1-2min on my machine. In some cases it seems to end in an infinite loop. I kill the MATLAB process after 10mins.. of nothing.
1) I need some ideas how to solve it faster?
2) Will i have any benefit if i buy the parallel processing toolbox?
3) Do i need to change the code then?

Antworten (0)

Kategorien

Mehr zu Sparse Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by