- MatrixInfo
- IsSymmetric
- IsHermitian
- IsUpperTriangular
- IsLowerTriangular
- IsUpperTrapezoidal
- IsLowerTrapezoidal
- IsUpperHessenberg
- IsLowerHessenberg
- IsTridiagonal
- IsUpperBidiagonal
- IsLowerBidiagonal
- IsDiagonal
- IsScalar
MatrixInfo
Метод анализирует содержимое матрицы, определяет её структурный тип (симметричная, эрмитова, треугольная, ленточная и т.д.) и заполняет структуру MqlMatrixInfo.
bool matrix::MatrixInfo(
|
Параметры
info
[out] Объект типа MqlMatrixInfo, куда помещается информация о матрице.
Возвращаемое значение
Возвращает true, если матрица инициализирована и имеет ненулевую размерность. В противном случае возвращается false.
Примечание
Объект структуры MqlMatrixInfo содержит больше информации, чем могут дать отдельные методы классификации матриц (IsSymmetric, IsHermitian, IsUpperTriangular и т.д.)
struct MqlMatrixInfo
|
Информация из структуры MqlMatrixInfo используется при записи матрицы в файл (метод Write будет добавлен позже) и при чтении матрицы из файла.
Перечисление, содержащее тип распознанной матрицы.
ID |
Описание |
|---|---|
BLASTYPE_GE |
'GE': матрица общего вида |
BLASTYPE_BD |
'BD': двухдиагональная матрица |
BLASTYPE_DI |
'DI': диагональная матрица |
BLASTYPE_GB |
'GB': ленточная матрица общего вида |
BLASTYPE_GT |
'GT': трёхдиагональная матрица общего вида |
BLASTYPE_HB |
'HB': эрмитова ленточная матрица |
BLASTYPE_HE |
'HE': эрмитова матрица |
BLASTYPE_HT |
'HT': эрмитова трёхдиагональная матрица |
BLASTYPE_HS |
'HS': матрица Хессенберга |
BLASTYPE_SB |
'SB': симметричная ленточная матрица |
BLASTYPE_ST |
'ST': симметричная трёхдиагональная матрица |
BLASTYPE_SY |
'SY': симметричная матрица |
BLASTYPE_TB |
'TB': треугольная ленточная матрица |
BLASTYPE_TR |
'TR': треугольная матрица |
BLASTYPE_TZ |
'TZ': трапециевидная матрица |
BLASTYPE_VE |
'VE': вектор (пока не используется) |
Имена элементов перечисления соответствуют сокращениям, используемым в LAPACK для обозначения различных классов матриц. Исключение составляет тип HT - эрмитова трёхдиагональная матрица. Тип HT отсутствует в стандартной терминологии LAPACK и введён по аналогии с ST (симметричная трёхдиагональная матрица) для обозначения эрмитовой трёхдиагональной матрицы, что также позволяет компактно хранить соответствующую матрицу.
Флаги, уточняющие распознанный тип матрицы.
ID |
Значение |
Описание |
|---|---|---|
MATRIX_UPPER |
0x0001 |
верхняя часть выше главной диагонали |
MATRIX_LOWER |
0x0002 |
нижняя часть ниже главной диагонали |
MATRIX_UNITDIAG |
0x0004 |
главная диагональ содержит только единицы (1) |
MATRIX_DIAGSCALAR |
0x0008 |
главная диагональ содержит одинаковые значения |
MATRIX_QUASI_TRIANGULAR |
0x0010 |
возможная квазитреугольная матрица |
MATRIX_TRIANGLE_RIGHT_ALIGNED |
0x0020 |
верхняя треугольная часть выровнена по правой границе широкой матрицы |
MATRIX_TRIANGLE_BOTTOM_ALIGNED |
0x0040 |
нижняя треугольная часть выровнена по нижней границе высокой матрицы |
Перечисленные флаги (кроме MATRIX_QUASI_TRIANGULAR) позволяют более компактно хранить матрицы.
Пример:
ulong n=10;
|