- EigenSolver
- EigenSolverX
- EigenSolverShur
- EigenSolver2
- EigenSolver2X
- EigenSolver2Shur
- EigenSolver2Blocked
- EigenSolver2ShurBlocked
EigenSolver2X
Вычисление обобщённых собственных значений и собственных векторов для пары обычных квадратных матриц в режиме эксперта (Expert mode), то есть с возможностью влиять на алгоритм расчёта и возможностью получить сопутствующие расчётные данные (lapack-функция GGEVX). Обе матрицы должны быть одинакового размера.
Также может вычислять балансировочное преобразование для улучшения обусловленности собственных значений и векторов (ILO, IHI, LSCALE, RSCALE, ABNRM и BBNRM), обратных чисел обусловленности для собственных значений (RCONDE) и обратных чисел обусловленности для правых собственных векторов (RCONDV).
Вычисления для типа matrix<double>
bool matrix::EigenSolver2X(
|
Вычисления для типа matrix<float>
bool matrixf::EigenSolver2X(
|
Вычисления для типа matrix<complex>
bool matrixc::EigenSolver2X(
|
Вычисления для типа matrix<complexf>
bool matrixcf::EigenSolver2X(
|
Параметры
B
[in] Вторая матрица в паре.
balance
[in] Значение из перечисления ENUM_EIG_BALANCE, определяющее необходимость и способ балансировки входной матрицы; применяется для улучшения обусловленности собственных значений.
jobv
[in] Значение из перечисления ENUM_EIG_VECTORS, определяющее способ вычисления левых и правых собственных векторов.
sense
[in] Значение из перечисления ENUM_EIG_SENSE, определяющее необходимость вычисления обратных чисел обусловленности.
eigen_values
[out] Вектор собственных значений.
left_eigenvectors
[out] Матрица левых собственных векторов.
right_eigenvectors
[out] Матрица правых собственных векторов.
shur_matrix1, shur_matrix2
[out] 2 части сбалансированной матрицы в форме Шура; не заполняется, если не рассчитываются ни левые, ни правые собственные векторы.
ilo
[out] Нижний индекс сбалансированной матрицы; не заполняется, если балансировка не применяется.
ihi
[out] Верхний индекс сбалансированной матрицы; не заполняется, если балансировка не применяется.
lscale
[out] Вектор содержит детали перестановок и масштабирования, применяемых к левой стороне A и B.
Если PL(j) — это индекс строки, меняемой местами со строкой j, а DL(j) — это коэффициент масштабирования, примененный к строке j, тогда
lscale(j) = PL(j), для j = 1,..., ilo-1
= DL(j), для j = ilo,...,ihi
= PL(j) для j = ihi+1,..., n.
Порядок, в котором выполняются перестановки: сначала n в ihi+1, затем 1 в ilo-1.
rscale
[out] Вектор содержит детали перестановок и масштабирования, применяемых к правой стороне A и B.
Если PR(j) — это индекс столбца, меняемого местами со столбцом j, а DR(j) — это коэффициент масштабирования, примененный к столбцу j, тогда
rscale(j) = PR(j), для j = 1,..., ilo-1
= DR(j), для j = ilo,...,ihi
= PR(j) для j = ihi+1,..., n.
Порядок, в котором выполняются перестановки: сначала n в ihi+1, затем 1 в ilo-1.
ab_norm
[out] 1-норма сбалансированной входной матрицы (максимум из сумм абсолютных значений элементов любой из колонок матрицы).
bb_norm
[out] 1-норма сбалансированной второй матрицы B.
rconde
[out] Вектор обратных чисел обусловленности для каждого собственного значения; рассчитывается если значение параметра sense равно 'E' или 'B'.
rcondv
[out] Вектор обратных чисел обусловленности для каждого правого собственного вектора; рассчитывается если значение параметра sense равно 'V' или 'B.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки.
Примечание
Балансировка входных матриц зависит от значения параметра balance.
Перечисление, определяющее необходимость балансировки матриц.
Идентификатор |
Описание |
---|---|
EIGBALANCE_N |
Не проводится диагональное масштабирование и перестановка. |
EIGBALANCE_P |
Выполняются перестановки, чтобы привести матрицу к почти верхнетреугольному виду. Не выполняется диагональное масштабирование. |
EIGBALANCE_S |
Выполняется диагональное масштабирование матрицы. Перестановка не проводится. |
EIGBALANCE_B |
Выполняется и диагональное масштабирование, и перестановка. |
ENUM_EIG_VECTORS
Перечисление, определяющее необходимость вычисления собственных векторов.
Идентификатор |
Описание |
---|---|
EIGVECTORS_N |
Вычисляются только собственные значения, без векторов. |
EIGVECTORS_L |
Вычисляются только левые собственные векторы. |
EIGVECTORS_R |
Вычисляются только правые собственные векторы. |
EIGVECTORS_LR |
Вычисляются левые и правые собственные векторы, собственные значения вычисляются всегда. |
Перечисление, определяющее необходимость вычисления обратных чисел обусловленности.
Идентификатор |
Описание |
---|---|
EIGSENSE_N |
Не вычисляется ни одно из обратных чисел обусловленности. |
EIGSENSE_E |
Вычисляются только для собственных значений. |
EIGSENSE_V |
Вычисляются только для правых собственных векторов. |
EIGSENSE_B |
Вычисляется и для собственных значений, и для правых собственных векторов. |