- EigenSolver
- EigenSolverX
- EigenSolverShur
- EigenSolver2
- EigenSolver2X
- EigenSolver2Shur
- EigenSolver2Blocked
- EigenSolver2ShurBlocked
EigenSolverX
Вычисление собственных значений и собственных векторов обычной квадратной матрицы в режиме эксперта (Expert mode), то есть с возможностью влиять на алгоритм расчёта и возможностью получить сопутствующие расчётные данные (lapack-функция GEEVX).
Вычисления для типа matrix<double>
bool matrix::EigenSolverX(
|
Вычисления для типа matrix<complex>
bool matrix::EigenSolverX(
|
Параметры
balance
[in] Значение из перечисления ENUM_EIG_BALANCE, определяющее необходимость и способ балансировки входной матрицы; применяется для улучшения обусловленности собственных значений.
jobv
[in] Значение из перечисления ENUM_EIG_VECTORS, определяющее способ вычисления левых и правых собственных векторов.
sense
[in] Значение из перечисления ENUM_EIG_SENSE, определяющее необходимость вычисления обратных чисел обусловленности.
EV
[out] Вектор собственных значений.
VL
[out] Матрица левых собственных векторов.
VR
[out] Матрица правых собственных векторов.
shur
[out] Сбалансированная матрица в форме Шура; не заполняется, если не рассчитываются ни левые, ни правые собственные векторы.
ilo
[out] Нижний индекс сбалансированной матрицы; не заполняется, если балансировка не применяется.
ihi
[out] Верхний индекс сбалансированной матрицы; не заполняется, если балансировка не применяется.
scale
[out] Вектор подробностей перестановок и масштабирования при балансировке входной матрицы;
Детали перестановок и масштабирования, применяемых при балансировке А:
Если P(j) — это индекс строки и столбца, переставляемых местами со строкой и столбцом j, а D(j) — это коэффициент масштабирования, примененный к строке и столбцу j, тогда
scale(j) = P(j), для j = 1,...,ilo-1
= D(j), для j = ilo,...,ihi
= P(j) для j = ihi+1,..., n.
Порядок, в котором выполняются перестановки: сначала n в ihi+1, затем 1 в ilo-1.
one_norm
[out] 1-норма сбалансированной матрицы (максимум из сумм абсолютных значений элементов любой из колонок матрицы).
rconde
[out] Вектор обратных чисел обусловленности для каждого собственного значения; рассчитывается если значение параметра sense равно 'E' или 'B'.
rcondv
[out] Вектор обратных чисел обусловленности для каждого правого собственного вектора; рассчитывается если значение параметра sense равно 'V' или 'B.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки.
Примечание
Балансировка входной матрицы зависит от значения параметра balance.
Описание функции GEEVX — https://www.irya.unam.mx/computo/sites/manuales/fce12/mkl/mkl_manual/lse/functn_geevx.htm
Перечисление, определяющее необходимость вычисления собственных векторов.
Идентификатор |
Описание |
---|---|
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 |
Вычисляется и для собственных значений, и для правых собственных векторов |