For a linear system

$$ M \dot{u} = Au \qquad \textrm{or} \qquad \dot{u} = L u $$

The generalized eigenvalue problem is $$ A e = \lambda M e $$

We can use the time-stepper approach which essentially computes the eigenvalues of the operator

$$ E = \exp(L T) $$

If $\mu$ is an eigenvalue of $E$ then it is related to the original eigenvalue by

$$ \mu = \exp(\lambda T) $$ and $T$ has to be chosen appropriately. If I have a code $E_{\Delta} \approx E$ which solves the initial value problem, then I can couple this to ARPACK to compute the eigenvalues. I would use the standard eigenvalue solver of ARPACK on the operator $E_\Delta$.

But I would also like to use the inner product induced by $M$ in the Arnoldi process so that the eigenvectors have unit norm in the inner product of $M$. How can I achieve this with ARPACK ?

  • $\begingroup$ Have you asked the authors of ARPACK? $\endgroup$ – Wolfgang Bangerth Oct 10 '14 at 11:46
  • $\begingroup$ I think instead of solving $E_\Delta e = \mu e$, I can solve the generalized eigenvalue problem $ M E_\Delta e = \mu M e$. Then ARPACK will automatically use the correct inner product. $\endgroup$ – cfdlab Oct 13 '14 at 11:27
  • $\begingroup$ That seems unnecessarily complicated. Why don't you just normalize the vectors after they are returned by ARPACK? $\endgroup$ – Wolfgang Bangerth Oct 13 '14 at 11:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.