0
$\begingroup$

Given a Hessenberg matrix, i wish to compute its eigenvalues using QR Algorithm.

The problem is that the matrix has complex eigenvalues and my implementation of the QR Algorithm can't find them.

It sucessfully finds the eigenvalues that have only real part, but the matrix never finds complex eigenvalues.

How can I proceed? Is there a version of QR Algorithm that does it? Is there a paper or book that may help me?

Example of matrix:

array([[-4.64628998e+03+0.j, -5.68688457e+02+0.j,  2.71866272e+02+0.j,
    -7.00797089e+01+0.j, -4.64131909e+02+0.j],
   [ 3.75304668e+04+0.j,  4.64667849e+03+0.j, -2.45500711e+03+0.j,
     3.80887022e+02+0.j,  4.00162200e+03+0.j],
   [ 0.00000000e+00+0.j,  5.26447278e+02+0.j, -5.54565702e+01+0.j,
    -8.12474922e+01+0.j,  6.47352607e+01+0.j],
   [ 0.00000000e+00+0.j,  0.00000000e+00+0.j,  2.77255195e+03+0.j,
     6.41617510e+01+0.j, -2.95459594e+03+0.j],
   [ 0.00000000e+00+0.j,  0.00000000e+00+0.j,  0.00000000e+00+0.j,
     5.14603305e+02+0.j, -1.65955603e+01+0.j]])
$\endgroup$
  • $\begingroup$ I would prefer having the code, and implementing it. $\endgroup$ – arthurp36 Jan 9 at 18:22
  • $\begingroup$ i am using python $\endgroup$ – arthurp36 Jan 9 at 18:36
1
$\begingroup$

The QR algorithm converges to a Schur form of the matrix.

If the matrix is real, then the Schur form is a quasi-triangular matrix with diagonal blocks which are either 1-by-1 or 2-by-2. Every block which is 1-by-1 specifies a single real eigenvalue and every block which is 2-by-2 specifies a pair of complex conjugate eigenvalues.

If the matrix is complex, then the Schur form is upper triangular and the eigenvalues can be read off directly from the diagonal.

It is quite possible that your current implementation is correct. You merely need to add a post-processing stage which identifies any 2-by-2 diagonal blocks along the diagonal and computes the corresponding complex eigenvalues.

$\endgroup$
  • $\begingroup$ Thank you so much! $\endgroup$ – arthurp36 Jan 12 at 22:56
  • $\begingroup$ Do you have a suggestion of how to compute the eigenvalue of 2x2 matrix easily? $\endgroup$ – arthurp36 Jan 12 at 22:57

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.