Developer Reference for Intel® oneAPI Math Kernel Library for C
Nonsymmetric Eigenvalue Problems: LAPACK Computational Routines
This topic describes LAPACK routines for solving nonsymmetric eigenvalue problems, computing the Schur factorization of general matrices, as well as performing a number of related computational tasks.
A nonsymmetric eigenvalue problem is as follows: given a nonsymmetric (or non-Hermitian) matrix A , find the eigenvalues λ and the corresponding eigenvectors z that satisfy the equation
Az = λz (right eigenvectors z )
or the equation
z^{H}A = λz^{H} (left eigenvectors z ).
Nonsymmetric eigenvalue problems have the following properties:
The number of eigenvectors may be less than the matrix order (but is not less than the number of distinct eigenvalues of A ).
Eigenvalues may be complex even for a real matrix A .
If a real nonsymmetric matrix has a complex eigenvalue a+bi corresponding to an eigenvector z , then a-bi is also an eigenvalue. The eigenvalue a-bi corresponds to the eigenvector whose elements are complex conjugate to the elements of z .
To solve a nonsymmetric eigenvalue problem with LAPACK, you usually need to reduce the matrix to the upper Hessenberg form and then solve the eigenvalue problem with the Hessenberg matrix obtained. Table “Computational Routines for Solving Nonsymmetric Eigenvalue Problems” lists LAPACK routines to reduce the matrix to the upper Hessenberg form by an orthogonal (or unitary) similarity transformation A = QHQ^{H} as well as routines to solve eigenvalue problems with Hessenberg matrices, forming the Schur factorization of such matrices and computing the corresponding condition numbers.
Computational Routines for Solving Nonsymmetric Eigenvalue Problems
Operation performed |
Routines for real matrices |
Routines for complex matrices |
|---|---|---|
Reduce to Hessenberg form A = QHQ^{H} |
?gehrd (Reduces a general matrix to upper Hessenberg form.) , |
?gehrd (Reduces a general matrix to upper Hessenberg form.) |
Generate the matrix Q |
?orghr (Generates the real orthogonal matrix Q determined by ?gehrd.) |
?unghr (Generates the complex unitary matrix Q determined by ?gehrd.) |
Apply the matrix Q |
?ormhr (Multiplies an arbitrary real matrix C by the real orthogonal matrix Q determined by ?gehrd.) |
?unmhr (Multiplies an arbitrary complex matrix C by the complex unitary matrix Q determined by ?gehrd.) |
Balance matrix |
?gebal (Balances a general matrix to improve the accuracy of computed eigenvalues and eigenvectors.) |
?gebal (Balances a general matrix to improve the accuracy of computed eigenvalues and eigenvectors.) |
Transform eigenvectors of balanced matrix to those of the original matrix |
?gebak (Transforms eigenvectors of a balanced matrix to those of the original nonsymmetric matrix.) |
?gebak (Transforms eigenvectors of a balanced matrix to those of the original nonsymmetric matrix.) |
Find eigenvalues and Schur factorization (QR algorithm) |
?hseqr (Computes all eigenvalues and (optionally) the Schur factorization of a matrix reduced to Hessenberg form.) |
?hseqr (Computes all eigenvalues and (optionally) the Schur factorization of a matrix reduced to Hessenberg form.) |
Find eigenvectors from Hessenberg form (inverse iteration) |
?hsein (Computes selected eigenvectors of an upper Hessenberg matrix that correspond to specified eigenvalues.) |
?hsein (Computes selected eigenvectors of an upper Hessenberg matrix that correspond to specified eigenvalues.) |
Find eigenvectors from Schur factorization |
?trevc (Computes selected eigenvectors of an upper (quasi-) triangular matrix computed by ?hseqr.) |
?trevc (Computes selected eigenvectors of an upper (quasi-) triangular matrix computed by ?hseqr.) |
Estimate sensitivities of eigenvalues and eigenvectors |
?trsna (Estimates condition numbers for specified eigenvalues and right eigenvectors of an upper (quasi-) triangular matrix.) |
?trsna (Estimates condition numbers for specified eigenvalues and right eigenvectors of an upper (quasi-) triangular matrix.) |
Reorder Schur factorization |
?trexc (Reorders the Schur factorization of a general matrix.) |
?trexc (Reorders the Schur factorization of a general matrix.) |
Reorder Schur factorization, find the invariant subspace and estimate sensitivities |
?trsen (Reorders the Schur factorization of a matrix and (optionally) computes the reciprocal condition numbers for the selected cluster of eigenvalues and respective invariant subspace.) |
?trsen (Reorders the Schur factorization of a matrix and (optionally) computes the reciprocal condition numbers for the selected cluster of eigenvalues and respective invariant subspace.) |
Solves Sylvester ‘ s equation. |
?trsyl (Solves Sylvester equation for real quasi-triangular or complex triangular matrices.) |
?trsyl (Solves Sylvester equation for real quasi-triangular or complex triangular matrices.) |