Hot answers tagged

6

No, there is no specialized ARPACK routine for complex Hermitian matrices. The ARPACK authors recommend using the znaupd routine for both Hermitian and non-Hermitian problems: https://www.caam.rice.edu/software/ARPACK/UG/node43.html#SECTION00790000000000000000 Reasoning (direct quote from the ARPACK manual): Occasionally, when using znaupd on a complex ...


3

If there are no algorithms specifically for sparse Hermitian matrices, a practical alternative is to convert the problem into double-sized real matrices. Write the complex matrix-vector products in your problem, for example $Ax$, in real an imaginary parts $(A_r + i A_i)(x_r + i x_i)$, and then convert to real symmetric matrix products like $$\begin{bmatrix}...


3

The eigen-distribution is governing the convergence of the Lanczos algorithm. When the eigenvalues are "well-separated", the Lanczos algorithm should be fairly fast. When some eigenvalues are clustered or multiples, computing the clustered (or multiple) eigenvalues slows down the convergence. The spread of the eigenvalues also matters (i.e. the ratio between ...


3

I've summarized the comments thread of your original question into an answer. Here are a few things that you can try: Increase the number of your Arnoldi vectors (NCV) generated at each iteration. Here's what the ARPACK documentation for DSAUPD says about this: At present there is no a-priori analysis to guide the selection of NCV relative to NEV (the ...


1

Generally, taking advantage of $A$'s structure (sparsity/bandedness) has no bearing on convergence rates but it will always improve the time to apply a matvec via the "reverse communication API" of ARPACK. Actually, it is not very clear what you might be doing, as $10^5$ is too big to store as an explicit dense matrix, you must be exploiting some kind of ...


1

Since no one else has responded to this, I'll take a shot at it. I'm doubtful you will find an option like you are looking for in Arpack. Here is why I think that. The algorithms in Arpack are based on constructing a vector subspace called a Krylov sequence as follows $$ K = \{x, Ax, A^2x, A^3x... A^nx\} $$ where $x$ is the single vector you are allowed ...


Only top voted, non community-wiki answers of a minimum length are eligible