Name
eigenvalues_general_matrixeigenvalues_general_matrixEigenvaluesGeneralMatrixeigenvalues_general_matrixEigenvaluesGeneralMatrixEigenvaluesGeneralMatrix — Compute the eigenvalues and optionally the eigenvectors of a general
matrix.
Herror eigenvalues_general_matrix(const Hlong MatrixID, const char* ComputeEigenvectors, Hlong* EigenvaluesRealID, Hlong* EigenvaluesImagID, Hlong* EigenvectorsRealID, Hlong* EigenvectorsImagID)
Herror T_eigenvalues_general_matrix(const Htuple MatrixID, const Htuple ComputeEigenvectors, Htuple* EigenvaluesRealID, Htuple* EigenvaluesImagID, Htuple* EigenvectorsRealID, Htuple* EigenvectorsImagID)
void EigenvaluesGeneralMatrix(const HTuple& MatrixID, const HTuple& ComputeEigenvectors, HTuple* EigenvaluesRealID, HTuple* EigenvaluesImagID, HTuple* EigenvectorsRealID, HTuple* EigenvectorsImagID)
void HMatrix::EigenvaluesGeneralMatrix(const HString& ComputeEigenvectors, HMatrix* EigenvaluesRealID, HMatrix* EigenvaluesImagID, HMatrix* EigenvectorsRealID, HMatrix* EigenvectorsImagID) const
void HMatrix::EigenvaluesGeneralMatrix(const char* ComputeEigenvectors, HMatrix* EigenvaluesRealID, HMatrix* EigenvaluesImagID, HMatrix* EigenvectorsRealID, HMatrix* EigenvectorsImagID) const
The operator eigenvalues_general_matrixeigenvalues_general_matrixEigenvaluesGeneralMatrixeigenvalues_general_matrixEigenvaluesGeneralMatrixEigenvaluesGeneralMatrix computes all
eigenvalues and, optionally, the left or right eigenvectors of a
square, general MatrixMatrixMatrixMatrixMatrixmatrix. The matrix is defined by the
matrix handle MatrixIDMatrixIDMatrixIDMatrixIDMatrixIDmatrixID. The computed eigenvectors have the
norm 1.
The operator generates the new matrices EigenvaluesRealEigenvaluesRealEigenvaluesRealEigenvaluesRealEigenvaluesRealeigenvaluesReal
and EigenvaluesImagEigenvaluesImagEigenvaluesImagEigenvaluesImagEigenvaluesImageigenvaluesImag with the real and the imaginary parts
of the computed eigenvalues. Each matrix has one column and n
rows, where n is the number of rows of the input MatrixMatrixMatrixMatrixMatrixmatrix.
In contrast to the operator eigenvalues_symmetric_matrixeigenvalues_symmetric_matrixEigenvaluesSymmetricMatrixeigenvalues_symmetric_matrixEigenvaluesSymmetricMatrixEigenvaluesSymmetricMatrix,
the order of the eigenvalues is not defined.
The operator returns the matrix handles EigenvaluesRealIDEigenvaluesRealIDEigenvaluesRealIDEigenvaluesRealIDEigenvaluesRealIDeigenvaluesRealID
and EigenvaluesImagIDEigenvaluesImagIDEigenvaluesImagIDEigenvaluesImagIDEigenvaluesImagIDeigenvaluesImagID. If desired, the real and imaginary
parts of the computed eigenvectors are stored in the new matrices
EigenvectorsRealEigenvectorsRealEigenvectorsRealEigenvectorsRealEigenvectorsRealeigenvectorsReal and EigenvectorsImagEigenvectorsImagEigenvectorsImagEigenvectorsImagEigenvectorsImageigenvectorsImag. For
this, the operator returns valid matrix handles
EigenvectorsRealIDEigenvectorsRealIDEigenvectorsRealIDEigenvectorsRealIDEigenvectorsRealIDeigenvectorsRealID and EigenvectorsImagIDEigenvectorsImagIDEigenvectorsImagIDEigenvectorsImagIDEigenvectorsImagIDeigenvectorsImagID.
Access to the elements of the matrix is possible e.g. with the
operator get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix.
The computation type of eigenvectors can be selected via the
parameter ComputeEigenvectorsComputeEigenvectorsComputeEigenvectorsComputeEigenvectorsComputeEigenvectorscomputeEigenvectors. If
ComputeEigenvectorsComputeEigenvectorsComputeEigenvectorsComputeEigenvectorsComputeEigenvectorscomputeEigenvectors = 'none'"none""none""none""none""none", no eigenvectors are
computed. If 'left'"left""left""left""left""left" is selected, the left eigenvalues are
computed. If 'right'"right""right""right""right""right" is selected, the right eigenvalues are
computed.
Example:
/ 6.0 4.0 -8.0 \
Matrix = | 5.0 7.0 3.0 | ComputeEigenvectors = 'right'
\ 4.0 -1.0 4.0 /
/ 3.3110 \ / 5.4143 \
-> EigenvaluesReal = | 3.3110 | EigenvaluesImag = | -5.4143 |
\ 10.3781 / \ 0.0 /
/ 0.6353 0.6353 0.4813 \
EigenvectorsReal = | -0.4764 0.4764 0.8605 |
\ -0.0246 -0.0246 0.1669 /
/ 0.0 0.0 0.0 \
EigenvectorsImag = | -0.2485 0.2485 0.0 |
\ -0.5542 0.5542 0.0 /
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Processed without parallelization.
Matrix handle of the input matrix.
Computation of the eigenvectors.
Default value:
'none'
"none"
"none"
"none"
"none"
"none"
List of values: 'left'"left""left""left""left""left", 'none'"none""none""none""none""none", 'right'"right""right""right""right""right"
Matrix handle with the real parts of the
eigenvalues.
Matrix handle with the imaginary parts of the
eigenvalues.
Matrix handle with the real parts of the
eigenvectors.
Matrix handle with the imaginary parts of the
eigenvectors.
If the parameters are valid, the operator
eigenvalues_general_matrixeigenvalues_general_matrixEigenvaluesGeneralMatrixeigenvalues_general_matrixEigenvaluesGeneralMatrixEigenvaluesGeneralMatrix returns the value 2 (H_MSG_TRUE). If
necessary, an exception is raised.
create_matrixcreate_matrixCreateMatrixcreate_matrixCreateMatrixCreateMatrix
get_full_matrixget_full_matrixGetFullMatrixget_full_matrixGetFullMatrixGetFullMatrix,
get_value_matrixget_value_matrixGetValueMatrixget_value_matrixGetValueMatrixGetValueMatrix,
get_diagonal_matrixget_diagonal_matrixGetDiagonalMatrixget_diagonal_matrixGetDiagonalMatrixGetDiagonalMatrix
eigenvalues_symmetric_matrixeigenvalues_symmetric_matrixEigenvaluesSymmetricMatrixeigenvalues_symmetric_matrixEigenvaluesSymmetricMatrixEigenvaluesSymmetricMatrix,
generalized_eigenvalues_symmetric_matrixgeneralized_eigenvalues_symmetric_matrixGeneralizedEigenvaluesSymmetricMatrixgeneralized_eigenvalues_symmetric_matrixGeneralizedEigenvaluesSymmetricMatrixGeneralizedEigenvaluesSymmetricMatrix,
generalized_eigenvalues_general_matrixgeneralized_eigenvalues_general_matrixGeneralizedEigenvaluesGeneralMatrixgeneralized_eigenvalues_general_matrixGeneralizedEigenvaluesGeneralMatrixGeneralizedEigenvaluesGeneralMatrix
David Poole: “Linear Algebra: A Modern Introduction”; Thomson;
Belmont; 2006.
Gene H. Golub, Charles F. van Loan: “Matrix Computations”; The
Johns Hopkins University Press; Baltimore and London; 1996.
Foundation