4.1 KiB
EigenTridiagonalDCQ
Compute eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the divide-and-conquer algorithm (LAPACK function STEDC). Unlike EigenTridiagonalDC, this method can be used to compute the eigenvectors of the original symmetric matrix. A symmetric matrix can be reduced to tridiagonal form using the ReduceSymmetricToTridiagonal method. The orthogonal matrix Q obtained from this transformation is then used to compute the eigenvectors of the original symmetric matrix.
Computing for type matrix
bool matrix::EigenTridiagonalDCQ(
ENUM_EIGTRIDIAG_Z compv, // compute eigenvectors or not
matrix& Q, // orthogonal matrix used in the reduction to tridiagonal form
vector& eigen_values, // vector of computed eigenvalues
matrix& eigen_vectors // matrix of computed eigenvectors
);
Computing for type matrix
bool matrixf::EigenTridiagonalDCQ(
ENUM_EIGTRIDIAG_Z compv, // compute eigenvectors or not
matrixf& Q, // orthogonal matrix used in the reduction to tridiagonal form
vectorf& eigen_values, // vector of computed eigenvalues
matrixf& eigen_vectors // matrix of computed eigenvectors
);
Computing for type matrix
bool matrixc::EigenTridiagonalDCQ(
ENUM_EIGTRIDIAG_Z compv, // compute eigenvectors or not
matrixc& Q, // orthogonal matrix used in the reduction to tridiagonal form
vector& eigen_values, // vector of computed eigenvalues
matrixc& eigen_vectors // matrix of computed eigenvectors
);
Computing for type matrix
bool matrixcf::EigenTridiagonalDCQ(
ENUM_EIGTRIDIAG_Z compv, // compute eigenvectors or not
matrixcf& Q, // orthogonal matrix used in the reduction to tridiagonal form
vectorf& eigen_values, // vector of computed eigenvalues
matrixcf& eigen_vectors // matrix of computed eigenvectors
);
Parameters
compv
[in] ENUM_EIGTRIDIAG_Z enumeration value which determines the method for computing eigenvectors.
Q
[in] Orthogonal matrix Q produced by method ReflectTridiagonalToQ.
eigen_values
[out] Vector of eigenvalues.
eigen_vectors
[out] Matrix of eigenvectors.
Return Value
Return true if successful, otherwise false in case of an error.
Note
Computation depends on the value of the compv parameter.
When compv = EIGCOMPZ_N, compute eigenvalues only, eigenvectors are not calculated.
If EIGCOMPZ_V is set, eigenvalues are computed and eigenvectors of original symmetric matrix are calculated also.
If EIGCOMPZ_I is set, eigenvalues are computed and eigenvectors of tridiagonal matrix are calculated also.
The input must be a symmetric matrix in the tridiagonal form.
ENUM_EIGTRIDIAG_Z
An enumeration that specifies whether to calculate eigenvectors.
| ID | Description |
|---|---|
| EIGCOMPZ_N | 'N': Compute eigenvalues only |
| EIGCOMPZ_V | 'V': Compute eigenvectors of original symmetric matrix also |
| EIGCOMPZ_I | 'I': Compute eigenvectors of tridiagonal matrix also |