NAG Toolbox: nag_lapack_zgeevx (f08np)

Purpose

nag_lapack_zgeevx (f08np) computes the eigenvalues and, optionally, the left and/or right eigenvectors for an nn by nn complex nonsymmetric matrix AA.

Optionally, it also computes a balancing transformation to improve the conditioning of the eigenvalues and eigenvectors, reciprocal condition numbers for the eigenvalues, and reciprocal condition numbers for the right eigenvectors.

Description

where λjλj is the jjth eigenvalue of AA. The left eigenvector ujuj of AA satisfies

ujHA = λjujH

ujHA=λjujH

where ujHujH denotes the conjugate transpose of ujuj.

Balancing a matrix means permuting the rows and columns to make it more nearly upper triangular, and applying a diagonal similarity transformation DAD − 1DAD-1, where DD is a diagonal matrix, with the aim of making its rows and columns closer in norm and the condition numbers of its eigenvalues and eigenvectors smaller. The computed reciprocal condition numbers correspond to the balanced matrix. Permuting rows and columns will not change the condition numbers (in exact arithmetic) but diagonal scaling will. For further explanation of balancing, see Section 4.8.1.2 of Anderson et al. (1999).

Following the optional balancing, the matrix AA is first reduced to upper Hessenberg form by means of unitary similarity transformations, and the QRQR algorithm is then used to further reduce the matrix to upper triangular Schur form, TT, from which the eigenvalues are computed. Optionally, the eigenvectors of TT are also computed and backtransformed to those of AA.

The second dimension of the array will be max(1,n)max(1,n) if jobvl = 'V'jobvl='V', and at least 11 otherwise

If jobvl = 'V'jobvl='V', the left eigenvectors ujuj are stored one after another in the columns of vl, in the same order as their corresponding eigenvalues; that is uj = vl( : ,j)uj=vl:j, the jjth column of vl.

The second dimension of the array will be max(1,n)max(1,n) if jobvr = 'V'jobvr='V', and at least 11 otherwise

If jobvr = 'V'jobvr='V', the right eigenvectors vjvj are stored one after another in the columns of vr, in the same order as their corresponding eigenvalues; that is vj = vr( : ,j)vj=vr:j, the jjth column of vr.

It is possible that info refers to a parameter that is omitted from the MATLAB interface. This usually indicates that an error in one of the other input parameters has caused an incorrect value to be inferred.

If info = iinfo=i, the QRQR algorithm failed to compute all the eigenvalues, and no eigenvectors or condition numbers have been computed; elements 1 : ilo − 11:ilo-1 and i + 1 : ni+1:n of
w
contain eigenvalues which have converged.

Accuracy

The computed eigenvalues and eigenvectors are exact for a nearby matrix (A + E)(A+E), where