![]() |
libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
|
Функции | |
int | log_cmplx (complex_t *x, int n, complex_t *y) |
Натуральный логарифм комплексного аргумента x . Подробнее... | |
int | sinc (double *x, int n, double a, double *y) |
Функция \( \textrm{sinc}(x,a) = \frac{\sin(ax)}{ax}\). Подробнее... | |
int | sqrt_cmplx (complex_t *x, int n, complex_t *y) |
Квадратный корень из комплексного вектора x (поэлементный). Подробнее... | |
int | polyroots (double *a, int ord, complex_t *r, int *info) |
Расчет корней вещественного полинома Подробнее... | |
int | polyval (double *a, int ord, double *x, int n, double *y) |
Расчет вещественного полинома Подробнее... | |
int | polyval_cmplx (complex_t *a, int ord, complex_t *x, int n, complex_t *y) |
Расчет комплексного полинома Подробнее... | |
Подробное описание
Функции
◆ log_cmplx()
Натуральный логарифм комплексного аргумента x
.
Функция рассчитывает значения натурального логарифма комплексного аргумента, заданного вектором x
длины n
:
\[ \textrm{Ln}(x) = j \varphi + \ln(|x|), \]
где \(\varphi\) — фаза комплексного числа.
- Аргументы
-
[in] x Указатель на комплексный вектор аргумента логарифма.
Размер вектора[n x 1]
.
[in] n Размер входного и выходного векторов x
иy
.
[out] y Указатель на вектор значений комплексного логарифма, соответствующего входному вектору x
.
Размер массива[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
если значение функции рассчитано успешно.
В противном случае код ошибки:
Например при выполнении следующего кодаcomplex_t x[3] = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};complex_t y[3];int k;log_cmplx(x, 3, y);for(k = 0; k < 3; k++)printf("log_cmplx(%.1f%+.1fj) = %.3f%+.3fj\n",
Результатом работы будет
log_cmplx(1.0+2.0j) = 0.805+1.107j log_cmplx(3.0+4.0j) = 1.609+0.927j log_cmplx(5.0+6.0j) = 2.055+0.876j
См. определение в файле math.c строка 718
Используется в asin_cmplx().
◆ polyroots()
int polyroots | ( | double * | a, |
int | ord, | ||
complex_t * | r, | ||
int * | info | ||
) |
Расчет корней вещественного полинома
Функция рассчитывает корни полинома \(P_N(x)\) \(N-\)ого порядка, заданного вектором коэффициентов a
.
\[ P_N(x) = a_0 + a_1 x + a_2 x^2 + a_3 x^3 + ... a_N x^N. \]
Корни полинома рассчитываются как собственные числа характеристической матрицы полинома. Для расчета собственных чисел используется подпрограмма пакета LAPACK.
- Аргументы
-
[in] a Указатель на вектор вещественных коэффициентов полинома.
Размер вектора[ord+1 x 1]
.
Коэффициентa[0]
соответствует коэффициенту полинома \(a_0\).
Коэффициентa[ord]
не должен быть равен нулю.
[in] ord Порядок полинома \(N\).
[out] r Указатель на вектор комплексных корней полинома.
Размер вектора[ord x 1]
.
Память должна быть выделена.
[out] info Указатель наа код возврата пакета LAPACK.
Данный код возвращается подпрограммой LAPACK и транслируется через данную переменную для возможности анализа.
- Возвращает
RES_OK
— корни полинома рассчитаны успешно.
В противном случае код ошибки.
Пример расчета корней полинома:
Данная программа производит расчет корней полинома
\[ P(x) = 2 + 2x + x^2 \]
и выводит рассчитанные корни на печать. Результат работы программы:
Error code: 0x00000000 r[0] = -1.00000 1.00000 j r[1] = -1.00000-1.00000 j
Получили пару комплексно-сопряженных корней полинома.
◆ polyval()
int polyval | ( | double * | a, |
int | ord, | ||
double * | x, | ||
int | n, | ||
double * | y | ||
) |
Расчет вещественного полинома
Функция рассчитывает полином \(P_N(x)\) \(N-\)ого порядка для вещественного аргумента, заданного вектором x
.
\[ P_N(x) = a_0 + a_1 \cdot x + a_2 \cdot x^2 + a_3 \cdot x^3 + ... a_N \cdot x^N. \]
Для расчета используется формула Горнера:
\[ P_N(x) = a_0 + x \cdot (a_1 + x \cdot (a_2 + \cdot ( \ldots x \cdot (a_{N-1} + x\cdot a_N) \ldots ))) \]
- Аргументы
-
[in] a Указатель на вектор вещественных коэффициентов полинома.
Размер вектора[ord+1 x 1]
.
Коэффициентa[0]
соответствует коэффициенту полинома \(a_0\).
[in] ord Порядок полинома \(N\).
[in] x Указатель на вектор аргумента полинома.
Размер вектора[n x 1]
.
Значения полинома будут расчитаны для всех значений аргумента вектораx
.
[in] n Размер вектора агрумента полинома.
[out] y Указатель на значения полинома для аргумента x
.
Размер вектора[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
— полином рассчитан успешно.
В противном случае код ошибки.
См. определение в файле polyval.c строка 219
Используется в bessel_i0(), farrow_lagrange() и farrow_spline().
◆ polyval_cmplx()
Расчет комплексного полинома
Функция рассчитывает полином \(P_N(x)\) \(N\)-го порядка комплексного аргумента, заданного вектором x
.
\[ P_N(x) = a_0 + a_1 \cdot x + a_2 \cdot x^2 + a_3 \cdot x^3 + ... a_N \cdot x^N. \]
Для расчета используется формула Горнера:
\[ P_N(x) = a_0 + x \cdot (a_1 + x \cdot (a_2 + \cdot ( \ldots x \cdot (a_{N-1} + x\cdot a_N) \ldots ))) \]
- Аргументы
-
[in] a Указатель на вектор комплексных коэффициентов полинома.
Размер вектора[ord+1 x 1]
.
Коэффициентa[0]
соответствует коэффициенту полинома \(a_0\).
[in] ord Порядок полинома \(N\).
[in] x Указатель на вектор аргумента полинома.
Размер вектора[n x 1]
.
Значения полинома будут расчитаны для всех значений аргумента вектораx
.
[in] n Размер вектора агрумента полинома.
[out] y Указатель вектор значения полинома для аргумента x
.
Размер вектора[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
— полином расчитан успешно.
В противном случае код ошибки.
◆ sinc()
int sinc | ( | double * | x, |
int | n, | ||
double | a, | ||
double * | y | ||
) |
Функция \( \textrm{sinc}(x,a) = \frac{\sin(ax)}{ax}\).
Функция рассчитывает значения функции для вещественного вектора x
.
- Аргументы
-
[in] x Указатель на вектор переменной \( x \).
Размер вектора[n x 1]
.
Память должна быть выделена.
[in] n Размер входного вектора x
.
[in] a Параметр функции \( \textrm{sinc}(x,a) = \frac{\sin(ax)}{ax}\).
[out] y Указатель на вектор значений функции.
Размер вектора[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
— расчёт произведен успешно.
В противном случае код ошибки.
◆ sqrt_cmplx()
Квадратный корень из комплексного вектора x
(поэлементный).
Функция рассчитывает значения квадратного корня комплексного аргумента, заданного вектором x
длины n
:
\[ y(k) = \sqrt{x(k)}, \qquad k = 0 \ldots n-1. \]
- Аргументы
-
[in] x Указатель на вектор аргумента квадратного корня.
Размер вектора[n x 1]
.
[in] n Размер входного и выходного векторов x
иy
.
[out] y Указатель на вектор значений комплексного корня, соответствующего входному вектору x
.
Размер массива[n x 1]
.
Память должна быть выделена.
- Возвращает
RES_OK
если значение функции рассчитано успешно .
В противном случае код ошибки:
Например при выполнении следующего кодаcomplex_t x[3] = {{1.0, 2.0}, {3.0, 4.0}, {5.0, 6.0}};complex_t y[3];int k;sqrt_cmplx(x, 3, y);for(k = 0; k < 3; k++)printf("sqrt_cmplx(%.1f%+.1fj) = %.3f%+.3fj\n",
Результатом работы будет
sqrt_cmplx(1.0+2.0j) = 1.272+0.786j sqrt_cmplx(3.0+4.0j) = 2.000+1.000j sqrt_cmplx(5.0+6.0j) = 2.531+1.185j
См. определение в файле math.c строка 1307
Используется в asin_cmplx(), ellip_acd_cmplx() и ellip_asn_cmplx().
Документация по libdspl-2.0. Последние изменения: Ср 14 Окт 2020 20:24:16. Создано системой
