- MatrixBalance
- EigenVectorsBackward
- ReduceToHessenbergBalanced
- ReflectHessenbergBalancedToQ
- EigenHessenbergBalancedSchurQ
EigenVectorsBackward
Формирует правые или левые собственные векторы вещественной или комплексной общей матрицы с помощью обратного преобразования, примененного к собственным векторам сбалансированной матрицы, полученной функцией MatrixBalance. Функция LAPACK GEBAK.
Вычисления для типа matrix<double>
bool matrix::EigenVectorsBackward(
|
Вычисления для типа matrix<float>
bool matrixf::EigenVectorsBackward(
|
Вычисления для типа matrix<complex>
bool matrixc::EigenVectorsBackward(
|
Вычисления для типа matrix<complexf>
bool matrixcf::EigenVectorsBackward(
|
Параметры
job
[in] Значение из перечисления ENUM_EIG_BALANCE, которое определяет необходимость и способ балансировки входной матрицы.
side
[in] Значение из перечисления ENUM_EIG_SIDE, определяющее, какие векторы вычислять — левые или правые.
ilo
[in] Индекс нижней границы сбалансированной матрицы. Значение, возвращаемое методом MatrixBalance.
ihi
[in] Индекс верхней границы сбалансированной матрицы. Значение, возвращаемое методом MatrixBalance.
scale
[in] Вектор подробностей перестановок и масштабирования при балансировке входной матрицы. Значение, возвращаемое методом MatrixBalance.
V
[out] Правые или левые собственные векторы, обратно преобразованные из входных собственных векторов.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки.
Примечание
При вычислении собственных значений и векторов часто применяется балансировка матрицы (масштабирование строк и столбцов) для улучшения численной устойчивости.
Эта балансировка производится функцией GEBAL, которая преобразует матрицу в "более приятную" форму.
После балансировки и вычисления собственных векторов новой матрицы результат не соответствует исходной матрице.
Тогда вызывается GEBAK, чтобы перенести собственные векторы обратно в пространство исходной (небалансированной) матрицы.
Метод применяется к матрице правых или левых собственных векторов сбалансированной матрицы. Такие собственные векторы могут быть получены с помощью любого подходящего метода решения задачи на собственные значения (eigen solver).
ENUM_EIG_BALANCE
Перечисление, определяющее необходимость вычисления собственных векторов.
Идентификатор |
Описание |
---|---|
EIGBALANCE_N |
Не проводится диагональное масштабирование и перестановка. |
EIGBALANCE_P |
Выполняются перестановки, чтобы привести матрицу к почти верхнетреугольному виду. Не выполняется диагональное масштабирование |
EIGBALANCE_S |
Выполняется диагональное масштабирование матрицы. Перестановка не проводится |
EIGBALANCE_B |
Выполняется и диагональное масштабирование, и перестановка. |
ENUM_EIG_SIDE
Перечисление, определяющее необходимость вычисления правых или левых собственных векторов.
Идентификатор |
Описание |
---|---|
EIGSIDE_R |
'R' — правые собственные векторы |
EIGSIDE_L |
'L' — левые собственные векторы |