naginterfaces.library.eigen.real_gen_quad(scal, jobvl, jobvr, sense, tol, a, b, c)[source]

real_gen_quad solves the quadratic eigenvalue problem

where , and are real matrices.

The function returns the eigenvalues, , for , and can optionally return the corresponding right eigenvectors, and/or left eigenvectors, as well as estimates of the condition numbers of the computed eigenvalues and backward errors of the computed right and left eigenvectors. A left eigenvector satisfies the equation

where is the complex conjugate transpose of .

is represented as the pair , such that . Note that the computation of may overflow and indeed may be zero.

For full information please refer to the NAG Library document for f02jc

https://www.nag.com/numeric/nl/nagdoc_28.6/flhtml/f02/f02jcf.html

Parameters
scalint

Determines the form of scaling to be performed on , and .

No scaling.

(the recommended value)

Fan, Lin and Van Dooren scaling if and no scaling otherwise where is the Frobenius norm of .

Fan, Lin and Van Dooren scaling.

Tropical scaling with largest root.

Tropical scaling with smallest root.

jobvlstr, length 1

If , do not compute left eigenvectors.

If , compute the left eigenvectors.

If , , , , or , must be set to ‘V’.

jobvrstr, length 1

If , do not compute right eigenvectors.

If , compute the right eigenvectors.

If , , , , or , must be set to ‘V’.

senseint

Determines whether, or not, condition numbers and backward errors are computed.

Do not compute condition numbers, or backward errors.

Just compute condition numbers for the eigenvalues.

Just compute backward errors for the left eigenpairs.

Just compute backward errors for the right eigenpairs.

Compute backward errors for the left and right eigenpairs.

Compute condition numbers for the eigenvalues and backward errors for the left eigenpairs.

Compute condition numbers for the eigenvalues and backward errors for the right eigenpairs.

Compute condition numbers for the eigenvalues and backward errors for the left and right eigenpairs.

tolfloat

is used as the tolerance for making decisions on rank in the deflation procedure. If is zero on entry then is used in place of , where machine precision is as returned by function machine.precision. A diagonal element of a triangular matrix, , is regarded as zero if , or when is zero, where is based on the size of the absolute values of the elements of the matrix containing the matrix . See Hammarling et al. (2013) for the motivation. If is on entry then no deflation is attempted. The recommended value for is zero.

afloat, array-like, shape

The matrix .

bfloat, array-like, shape

The matrix .

cfloat, array-like, shape

The matrix .

Returns
afloat, ndarray, shape

is used as internal workspace, but if or , is restored on exit.

bfloat, ndarray, shape

is used as internal workspace, but is restored on exit.

cfloat, ndarray, shape

is used as internal workspace, but if or , is restored on exit.

alpharfloat, ndarray, shape

, for , contains the real part of for the th eigenvalue pair of the quadratic eigenvalue problem.

alphaifloat, ndarray, shape

, for , contains the imaginary part of for the th eigenvalue pair of the quadratic eigenvalue problem. If is zero then the th eigenvalue is real; if is positive then the th and th eigenvalues are a complex conjugate pair, with negative.

betafloat, ndarray, shape

, for , contains the second part of the th eigenvalue pair of the quadratic eigenvalue problem, with . Infinite eigenvalues have set to zero.

vlNone or float, ndarray, shape

If , the left eigenvectors are stored one after another in the columns of , in the same order as the corresponding eigenvalues. If the th eigenvalue is real, then , the th column of . If the th and th eigenvalues form a complex conjugate pair, then and . Each eigenvector will be normalized with length unity and with the element of largest modulus real and positive.

If , is not referenced.

vrNone or float, ndarray, shape

If , the right eigenvectors are stored one after another in the columns of , in the same order as the corresponding eigenvalues. If the th eigenvalue is real, then , the th column of . If the th and th eigenvalues form a complex conjugate pair, then and . Each eigenvector will be normalized with length unity and with the element of largest modulus real and positive.

If , is not referenced.

sNone or float, ndarray, shape

If , , or , contains the condition number estimate for the th eigenvalue (large condition numbers imply that the problem is near one with multiple eigenvalues). Infinite condition numbers are returned as the largest model float number (machine.real_largest).

If , , or , is not referenced.

bevlNone or float, ndarray, shape

If , , or , contains the backward error estimate for the computed left eigenpair .

If , , or , is not referenced.

bevrNone or float, ndarray, shape

If , , or , contains the backward error estimate for the computed right eigenpair .

If , , or , is not referenced.

iwarnint

will be positive if there are warnings, otherwise will be .

If no exception or warning is raised then:

if then one, or both, of the matrices and is zero. In this case no scaling is performed, even if ;

if then the matrices and are singular, or nearly singular, so the problem is potentially ill-posed;

if then both the conditions for and above, apply. If , and backward stability cannot be guaranteed.

If = 2, returns the value of from lapackeig.dgges3.

If = 3, returns the value of from lapackeig.dggev3.

Raises
NagValueError
(errno )

On entry, , and .

Constraint: when , .

(errno )

On entry, , and .

Constraint: when , .

(errno )

On entry, .

Constraint: .

(errno )

On entry, .

Constraint: , , , , , , or .

(errno )

On entry, and .

Constraint: when , or ,

when , , , , , or .

(errno )

On entry, .

Constraint: or .

(errno )

On entry, and .

Constraint: when , or ,

when , , , , , or .

(errno )

On entry, .

Constraint: or .

(errno )

On entry, .

Constraint: , , , or .

(errno )

The quadratic matrix polynomial is nonregular (singular).

(errno )

The iteration failed in lapackeig.dgges3.

returns the value of returned by lapackeig.dgges3. This failure is unlikely to happen, but if it does, please contact NAG.

(errno )

The iteration failed in lapackeig.dggev3.

returns the value of returned by lapackeig.dggev3. This failure is unlikely to happen, but if it does, please contact NAG.

Notes

The quadratic eigenvalue problem is solved by linearizing the problem and solving the resulting generalized eigenvalue problem. The linearization is chosen to have favourable conditioning and backward stability properties. An initial preprocessing step is performed that reveals and deflates the zero and infinite eigenvalues contributed by singular leading and trailing matrices.

The algorithm is backward stable for problems that are not too heavily damped, that is .

Further details on the algorithm are given in Hammarling et al. (2013).

References

Fan, H -Y, Lin, W.-W and Van Dooren, P., 2004, Normwise scaling of second order polynomial matrices, SIAM J. Matrix Anal. Appl. (26, 1), 252–256

Gaubert, S and Sharify, M, 2009, Tropical scaling of polynomial matrices, Lecture Notes in Control and Information Sciences Series (389), 291–303, Springer–Verlag

Hammarling, S, Munro, C J and Tisseur, F, 2013, An algorithm for the complete solution of quadratic eigenvalue problems, ACM Trans. Math. Software. (39(3):18:1–18:119), http://eprints.maths.manchester.ac.uk/2061/