- EigenSymmetricDC
- EigenSymmetricQR
- EigenSymmetricRobust
- EigenSymmetricBisect
- EigenSymmetricDC2s
- EigenSymmetricQR2s
- EigenSymmetricRobust2s
- EigenSymmetricBisect2s
- EigenSymmetric2DC
- EigenSymmetric2QR
- EigenSymmetric2Bisect
EigenSymmetric2DC
Вычисление всех собственных значений и, при необходимости, собственных векторов обобщенной симметрично определенной собственной задачи вида A*x=(lambda)*B*x, A*Bx=(lambda)*x или B*A*x=(lambda)*x.
Предполагается, что матрицы A и B симметричны (или эрмитовы), а матрица B также положительно определена. Если требуется вычисление собственные векторы, применяется алгоритм "разделяй и властвуй" (функции LAPACK: SYGVD, HEGVD).
Вычисления для типа matrix<double>
bool matrix::EigenSymmetric2DC(
|
Вычисления для типа matrix<float>
bool matrixf::EigenSymmetric2DC(
|
Вычисления для типа matrix<complex>
bool matrixc::EigenSymmetric2DC(
|
Вычисления для типа matrix<complexf>
bool matrixcf::EigenSymmetric2DC(
|
Параметры
itype
[in] Значение перечисления ENUM_EIGS2_TYPE, указывающее тип решаемой задачи: A*x=(lambda)*B*x, A*Bx=(lambda)*x или or B*A*x=(lambda)*x.
jobv
[in] Значение из перечисления ENUM_EIG_VALUES, определяющее способ вычисления собственных векторов.
Б
[in] Вторая матрица B. Должна быть положительно определенной симметричной (или эрмитово сопряженной) матрицей.
eigen_values
[out] Вектор собственных значений.
eigen_vectors
[out] Матрица собственных векторов.
triangular_factor
[out] Треугольный множитель U или L из разложения Холецкого = U**T*U или B = L*L**T.
Возвращаемое значение
Возвращает true в случае успеха, иначе false в случае ошибки.
Примечание
На вход можно подать симметричную (эрмитову), верхнетреугольную или нижнетреугольную матрицу. Треугольные матрицы подразумеваются симметричными (эрмитово сопряженными). Вторая матрица B должна быть положительно определенной симметричной матрицей. Если входная матрица и вторая матрица B являются треугольными, то обе должны быть одного типа: верхнетреугольными или нижнетрегольными.
ENUM_EIGS2_TYPE
Перечисление, определяющее тип решаемой задачи.
Идентификатор |
Описание |
---|---|
EIGS2TYPE_1 |
1: A*x = (lambda)*B*x |
EIGS2TYPE_2 |
2: A*B*x = (lambda)*x |
EIGS2TYPE_3 |
3: B*A*x = (lambda)*x |
Перечисление, определяющее необходимость вычисления собственных векторов.
Идентификатор |
Описание |
---|---|
EIGVALUES_V |
Вычисляются собственные векторы и собственные значения. |
EIGVALUES_N |
Вычисляются только собственные значения, без векторов. |