1
$\begingroup$

I am solving eigen value equation for general n by n matrix and QR algorithm works pretty well for real eigen values and vectors for me. Is there an algorithm to find complex eigen values?

  • 0
    The algorithm for finding real and complex eigenvalues is the same: find all roots of the characteristic polynomial (it may have real roots, in general it will have $n$ complex roots for an $n \times n$ matrix). It's unclear what exactly you are asking exactly.2017-01-13
  • 0
    Let say i have matrix A with all real values in it , So when you do QR factorization naturally Q and R are real , so is QR and RQ so natually i am handling all the real values and i end up with and upper triangular matrix from QR algorithm whose diagonal elements are real and some of them are eigen values, but i know it can have complex conjugate pairs too. So my question is , is there any variant of QR algorithm which finds those complex eigen values or is there any algorithm?2017-01-13
  • 0
    I think you need to explain what you mean by "whose diagonal elements are real and some of them are eigen values". I'm not aware that eigenvalues appear on the diagonal of $R$. What's true is that the determinants are equal in magnitude, i.e., in magnitude, the product of the diagonal of $R$ is equal to the product of the eigenvalues of the original matrix, which is its determinant. In the complex-valued case, $|\prod_i r_{ii}|=|\prod_i \lambda_i|$ is still true and the diagonal of $R$ is still real-valued. So nothing much changes actually.2017-01-13
  • 1
    check this out - https://en.wikipedia.org/wiki/QR_algorithm2017-01-16
  • 0
    This should work fo complex-valued matrices just fine. None of the arguments made there is valid only in the reals, they all carry over to the complex field. I just tried it with a randomly generated complex-valued matrix and it seemed to work just fine. So I'm still not sure what exactly is your question.2017-01-16
  • 0
    @Florian "find all roots of the characteristic polynomial" Practical algorithms for computing eigenvalues aren't based on this approach.2017-05-15
  • 0
    The QR method for real eigenvalues makes an asymptotically triangular matrix. The QR method for complex eigenvalues asymptotically makes little 2x2 blocks along the diagonal which correspond to "pure rotations"; from these you can extract complex eigenvalues by the usual quadratic formula applied to the characteristic polynomial.2017-09-28

2 Answers 2

0

Here is an example using the standard algorithm. Start with $$ \mathbf{A} = \left[ \begin{array}{cr} 3 & -2 \\ 4 & -1 \\ \end{array} \right], \tag{1} $$ which has the eigenvalue spectrum $$ \lambda \left( \mathbf{A} \right) = \left\{ 1 + 2 i, 1 - 2 i \right\}. $$ The decomposition is $$ \mathbf{A} = \mathbf{Q \, R} = % q \frac{1}{5} \left[ \begin{array}{rc} 3 & 4 \\ -4 & 3 \\ \end{array} \right] % r \left[ \begin{array}{cr} 5 & -2 \\ 0 & 1 \\ \end{array} \right]. % $$


Thanks to @littleO for the oversight. The eigenvalue problem does not care about the pedigree of the numeric field, $\mathbb{R}$ or $\mathbb{C}$. A demonstration:

The characteristic polynomial for a $2\times 2$ matrix is computed using the trace and determinant as $$ p \left( \lambda \right) = \det \left( \mathbf{A} - \lambda \mathbf{I}_{2} \right) = \lambda^{2} - \lambda \text{tr } \mathbf{A} + \det \mathbf{A} $$ The intermediate values are $$ \text{tr } \mathbf{A} = 2, \qquad \det \mathbf{A} = 5 $$ The characteristic polynomial is then $$ p \left( \lambda \right) = \lambda ^2-2 \lambda +5 $$ The eigenvalues are the roots of the characteristic polynomial $$ p \left( \lambda \right) = 0 \qquad \Rightarrow \qquad \lambda \left( \mathbf{A} \right) = \left\{ 1 + 2 i, 1 - 2i \right\}, $$ a conjugate pair.

  • 3
    But this question is about the QR algorithm for computing eigenvalues, not the QR factorization of a matrix with complex eigenvalues.2017-05-15
0

Man, I think I understand your question.

Suppose you start with a matrix A. In case A has complex eigenvalues then the QR method will not give a triangular matrix as result (no matter how many iterations you make). However it will yield a Hessemberg matrix and you can deal with that fairly easy.