- 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
При вычислении собственных значений и векторов часто применяется балансировка матрицы (масштабирование строк и столбцов) для улучшения численной устойчивости.
Эта балансировка производится функцией GEBAL, которая преобразует матрицу в "более приятную" форму.
После балансировки и вычисления собственных векторов новой матрицы, результат не соответствует исходной матрице.
Тогда вызывается GEBAK, чтобы перенести собственные векторы обратно в пространство исходной (небалансированной) матрицы.
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 |