I have a matrix $J$, and I know there are 3 existing zero eigenvalues and their eigenvectors. I want to detect if there is one extra eigenvalue to go cross zero (if it is zero, its eigenvalue will rotate to the range of previous zero eigenvectors, and the matrix will be defective!).

I can do QR decomposition to the zero eigenvectors and construct a orthonormal basis $N$ for their Null space, then I can project the matrix $J$ to the null subspace as $N^TJN$.

$\det(N^TJN)$ can tell me if there is another eigenvalue being zero.

However, if the $J$ matrix is sparse and its size is large, the cost is too high.

I tried to use ARPACK's subroutines with which = 'LR' to find the largest real part of eigenvalue. However, it does not work well with defective matrix.

The background is chemical kinetics.

  • $\begingroup$ Why LR? Don't you want SM here? $\endgroup$ – Federico Poloni Feb 1 '18 at 7:30
  • $\begingroup$ I want the max growth rate of the ODEs with Jacobian as $J$. So I want LR $\endgroup$ – CatDog Feb 5 '18 at 17:17
  • $\begingroup$ I do not know if there is some stable iterative method to estimate the eigenpair with Largest Real Part even when the matrix is defective. $\endgroup$ – CatDog Feb 5 '18 at 17:18
  • 2
    $\begingroup$ What do you mean by "... to go cross zero"? What structure does $J$ have? If you're looking for the smallest eigenvalue, you could use a Davidson algorithm. $\endgroup$ – Deathbreath Feb 12 '18 at 18:26

Instead of using determinants one could try to calculate the rank of the matrix. If the rank is less than the size of matrix there is an eigenvalue equal to 0.


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.