![]() |
libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
|
Функции | |
int | matrix_eig_cmplx (complex_t *a, int n, complex_t *v, int *info) |
Расчет собственных значений квадратной комплексной матрицы. Подробнее... | |
int | matrix_eye (double *a, int n, int m) |
Генерирование единичной вещественой матрицы размерности n x m . Подробнее... | |
Подробное описание
В данном разделе описаны функции работы с матрицами и алгоритмы линейной алгебры. Вычислительными ядрами являются пакеты BLAS и LAPACK, функции которых вызываются через интерфейс DSPL-2.0.
Матрицы - двумерные объекты, которые хранятся в линейной памяти по столбцам и передаются в функции в виде указателя на линейную область памяти.
Функции
◆ matrix_eig_cmplx()
Расчет собственных значений квадратной комплексной матрицы.
Данная функция производит расчет n
собственных значений квадратной матрицы размером n x n
.
- Аргументы
-
[in] a Указатель на комплексную матрицу размерности n x n
.
Матрица должна быть расположена в памяти по столбцам.
[in] n Размерность квадратной матрицы.
[out] v Указатель на вектор собственных значений матрицы.
Размер вектораn x 1
.
Память должна быть выделена.
[out] info Указатель на код возврата функции zgees
пакета LAPACK.
В случае возникновения ошибки при расчете вектора собственных значений, пакет LAPACK возвращает код ошибки, который может быть прочитан по данному указателю.
- Возвращает
RES_OK
— функция выполнена успешно.
В противном случае код ошибки.
При возникновении ошибкиERROR_LAPACK
по адресу
info
будет записан код ошибки пакета LAPACK.
Пример расчета собственных значений матрицы:
Данная программа рассчитывает собственные значения матрицы размерности 3 x 3
и выводит собственные значения на печать.
Результат работы программы:
A = [ % size [3 x 3] type: complex 1.00 +0.00i, 2.00 +0.00i, 3.00 +0.00i; 1.00 +0.00i, 0.00 +0.00i, 0.00 +0.00i; 0.00 +0.00i, 1.00 +0.00i, 0.00 +0.00i;]; v = [ % size [3 x 1] type: complex 2.374424 -0.000000i; -0.687212 +0.889497i; -0.687212 -0.889497i;];
См. определение в файле matrix.c строка 90
Используется в polyroots().
◆ matrix_eye()
int matrix_eye | ( | double * | a, |
int | n, | ||
int | m | ||
) |
Генерирование единичной вещественой матрицы размерности n x m
.
Данная функция заполняет матрицу нулями и записывает единицы на главной диагонали
- Аргументы
-
[in] a Указатель на вещественную матрицу размерности n x m
.
Матрица должна быть расположена в памяти по столбцам.
[in] n Количество строк матрицы.
[in] m Количество столбцов матрицы.
- Возвращает
RES_OK
— функция выполнена успешно.
В противном случае код ошибки.
Документация по libdspl-2.0. Последние изменения: Ср 14 Окт 2020 20:24:17. Создано системой
