![]() |
Open CASCADE Technology Reference Manual 8.0.0
|
This class finds eigenvalues and eigenvectors of real symmetric tridiagonal matrices. More...
#include <math_EigenValuesSearcher.hxx>
Public Member Functions | |
| math_EigenValuesSearcher (const NCollection_Array1< double > &theDiagonal, const NCollection_Array1< double > &theSubdiagonal) | |
| bool | IsDone () const |
| Returns true if computation is performed successfully. Computation may fail due to numerical issues or invalid input. | |
| int | Dimension () const |
| Returns the dimension of the tridiagonal matrix. | |
| double | EigenValue (const int theIndex) const |
| Returns the specified eigenvalue. Eigenvalues are returned in the order they were computed by the algorithm, which may not be sorted. Use sorting if ordered eigenvalues are needed. | |
| math_Vector | EigenVector (const int theIndex) const |
| Returns the specified eigenvector. The returned eigenvector is normalized and orthogonal to all other eigenvectors. The eigenvector satisfies: A * v = lambda * v, where A is the original matrix, v is the eigenvector, and lambda is the corresponding eigenvalue. | |
This class finds eigenvalues and eigenvectors of real symmetric tridiagonal matrices.
The implementation uses the QR algorithm with implicit shifts for numerical stability. All computed eigenvalues are real (since the matrix is symmetric), and eigenvectors are orthonormal. The class handles the complete eigendecomposition: A * V = V * D, where A is the input matrix, V contains eigenvectors as columns, and D is diagonal with eigenvalues.
Key features:
| math_EigenValuesSearcher::math_EigenValuesSearcher | ( | const NCollection_Array1< double > & | theDiagonal, |
| const NCollection_Array1< double > & | theSubdiagonal ) |
| int math_EigenValuesSearcher::Dimension | ( | ) | const |
Returns the dimension of the tridiagonal matrix.
Returns the specified eigenvalue. Eigenvalues are returned in the order they were computed by the algorithm, which may not be sorted. Use sorting if ordered eigenvalues are needed.
| theIndex | index of the desired eigenvalue (1-based indexing) |
| math_Vector math_EigenValuesSearcher::EigenVector | ( | const int | theIndex | ) | const |
Returns the specified eigenvector. The returned eigenvector is normalized and orthogonal to all other eigenvectors. The eigenvector satisfies: A * v = lambda * v, where A is the original matrix, v is the eigenvector, and lambda is the corresponding eigenvalue.
| theIndex | index of the desired eigenvector (1-based indexing) |
| bool math_EigenValuesSearcher::IsDone | ( | ) | const |
Returns true if computation is performed successfully. Computation may fail due to numerical issues or invalid input.