naginterfaces.library.lapackeig.zstein¶
- naginterfaces.library.lapackeig.zstein(d, e, m, w, iblock, isplit)[source]¶
zstein
computes the eigenvectors of a real symmetric tridiagonal matrix corresponding to specified eigenvalues, by inverse iteration, storing the eigenvectors in a complex array.For full information please refer to the NAG Library document for f08jx
https://support.nag.com/numeric/nl/nagdoc_30.2/flhtml/f08/f08jxf.html
- Parameters
- dfloat, array-like, shape
The diagonal elements of the tridiagonal matrix .
- efloat, array-like, shape
The off-diagonal elements of the tridiagonal matrix .
- mint
, the number of eigenvectors to be returned.
- wfloat, array-like, shape
The eigenvalues of the tridiagonal matrix stored in to , as returned by
dstebz()
with . Eigenvalues associated with the first sub-matrix must be supplied first, in nondecreasing order; then those associated with the second sub-matrix, again in nondecreasing order; and so on.- iblockint, array-like, shape
The first elements must contain the sub-matrix indices associated with the specified eigenvalues, as returned by
dstebz()
with . If the eigenvalues were not computed bydstebz()
with , set to , for .- isplitint, array-like, shape
The points at which breaks up into sub-matrices, as returned by
dstebz()
with . If the eigenvalues were not computed bydstebz()
with , set to .
- Returns
- zcomplex, ndarray, shape
The eigenvectors, stored as columns of ; the th column corresponds to the th specified eigenvalue, unless > 0 (in which case see Exceptions).
- ifailvint, ndarray, shape
If , the first elements of contain the indices of any eigenvectors which have failed to converge. The rest of the first elements of are set to .
- Raises
- NagValueError
- (errno )
On entry, error in parameter .
Constraint: .
- (errno )
On entry, error in parameter .
Constraint: .
- (errno -5)
On entry, error in parameter .
Constraint: .
- (errno -6)
On entry, error in parameter .
Constraint: .
- Warns
- NagAlgorithmicWarning
- (errno )
eigenvectors (as indicated by argument ) each failed to converge in five iterations. The current iterate after five iterations is stored in the corresponding column of .
- Notes
zstein
computes the eigenvectors of a real symmetric tridiagonal matrix corresponding to specified eigenvalues, by inverse iteration (see Jessup and Ipsen (1992)). It is designed to be used in particular after the specified eigenvalues have been computed bydstebz()
with , but may also be used when the eigenvalues have been computed by other functions in submodulelapackeig
or submoduleeigen
.The eigenvectors of are real, but are stored by this function in a complex array. If has been formed by reduction of a full complex Hermitian matrix to tridiagonal form, then eigenvectors of may be transformed to (complex) eigenvectors of by a call to
zunmtr()
orzupmtr()
.dstebz()
determines whether the matrix splits into block diagonal form:and passes details of the block structure to this function in the arrays and . This function can then take advantage of the block structure by performing inverse iteration on each block separately, which is more efficient than using the whole matrix.
- References
Golub, G H and Van Loan, C F, 1996, Matrix Computations, (3rd Edition), Johns Hopkins University Press, Baltimore
Jessup, E and Ipsen, I C F, 1992, Improving the accuracy of inverse iteration, SIAM J. Sci. Statist. Comput. (13), 550–572