- MatrixBalance
- EigenVectorsBackward
- ReduceToHessenbergBalanced
- ReflectHessenbergBalancedToQ
- EigenHessenbergBalancedSchurQ
EigenVectorsBackward
Forms the right or left eigenvectors of a real or complex general matrix by backward transformation on the computed eigenvectors of the balanced matrix output by MatrixBalance. LAPACK function GEBAK.
Computing for type matrix<double>
bool matrix::EigenVectorsBackward(
|
Computing for type matrix<float>
bool matrixf::EigenVectorsBackward(
|
Computing for type matrix<complex>
bool matrixc::EigenVectorsBackward(
|
Computing for type matrix<complexf>
bool matrixcf::EigenVectorsBackward(
|
Parameters
job
[in] Value from the ENUM_EIG_BALANCE enumeration which determines the need and method for balancing the input matrix.
side
[in] Value from the ENUM_EIG_SIDE enumeration which determines the need and method for balancing the input matrix.
ilo
[in] Subscript of the balanced matrix. As returned by MatrixBalance.
ihi
[in] Superscript of the balanced matrix. As returned by MatrixBalance.
scale
[in] Vector of details of permutations and scaling when balancing the input matrix. As returned by MatrixBalance.
V
[out] Right or left eigenvectors backtransformed from the input eigenvectors.
Return Value
Return true if successful, otherwise false in case of an error.
Note
When computing eigenvalues and eigenvectors, matrix balancing (scaling of rows and columns) is often used to improve numerical stability. This balancing is performed by the GEBAL function, which transforms the matrix into a "nicer" form.
After balancing and computing the eigenvectors of the transformed matrix, the result does not correspond to the original matrix. In this case, GEBAK is called to transform the eigenvectors back into the space of the original (unbalanced) matrix.
This method is applied to the matrix of right or left eigenvectors of balanced matrix. They can be produced by some eigen solver.
ENUM_EIG_BALANCE
An enumeration defining the need to compute eigenvectors.
ID |
Description |
---|---|
EIGBALANCE_N |
Do not diagonally scale or permute |
EIGBALANCE_P |
Perform permutations to make the matrix more nearly upper triangular. Do not diagonally scale |
EIGBALANCE_S |
Diagonally scale the matrix. Do not permute |
EIGBALANCE_B |
Both diagonally scale and permute |
ENUM_EIG_SIDE
An enumeration defining the need to compute right or left eigenvectors.
ID |
Description |
---|---|
EIGSIDE_R |
'R': right eigenvectors |
EIGSIDE_L |
'L': left eigenvectors |