Базовые математические функции.

Функции

int linspace (double x0, double x1, int n, int type, double *x)
 Функция заполняет массив линейно-нарастающими, равноотстоящими значениями от x0 до x1 Подробнее...
 
int logspace (double x0, double x1, int n, int type, double *x)
 Функция заполняет массив значениями логарифмической шкале Подробнее...
 
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)
 Расчет комплексного полинома Подробнее...
 

Подробное описание

Функции

int linspace ( double  x0,
double  x1,
int  n,
int  type,
double *  x 
)

Функция заполняет массив линейно-нарастающими, равноотстоящими значениями от x0 до x1


Заполняет массив x длиной n значениями в диапазоне от $x_0$ до $x_1$. Функция поддерживает два типа заполнения в соответствии с параметром type:

Симметричное заполнение согласно выражению (параметр type=DSPL_SYMMETRIC):

$x(k) = x_0 + k \cdot dx$, here $dx = \frac{x_1 - x_0}{n-1}$, $k = 0 \ldots n-1.$

Периодическое заполнение (параметр type=DSPL_PERIODIC) согласно выражению:

$x(k) = x_0 + k \cdot dx$, here $dx = \frac{x_1 - x_0}{n}$, $k = 0 \ldots n-1.$

Аргументы
[in]x0Начальное показателя $x_0$.

[in]x1Конечное значение $x_1$.

[in]nКоличество точек массива x.

[in]typeТип заполнения:
DSPL_SYMMETRIC - симметричное заполнение,
DSPL_PERIODIC - периодическое заполнение.

[in,out]xУказатель на вектор равноотстоящих значений .
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK - функция выполнена успешно.
В противном случае код ошибки.
Заметки
Отличие периодического и симметричного заполнения можно понять из следующих примеров.
Пример 1. Периодическое заполнение.
    1 double x[5];
    2 linspace(0, 5, 5, DSPL_PERIODIC, x);
В массиве x будут лежать значения:
1 0, 1, 2, 3, 4


Пример 2. Симметричное заполнение.
1 double x[5];
2 linspace(0, 5, 5, DSPL_SYMMETRIC, x);
В массиве x будут лежать значения:
1 0, 1.25, 2.5, 3.75, 5
Автор
Бахурин Сергей. www.dsplib.org
int logspace ( double  x0,
double  x1,
int  n,
int  type,
double *  x 
)

Функция заполняет массив значениями логарифмической шкале


Заполняет массив x длиной n значениями в диапазоне от $10^{x_0}$ до $10^{x_1}$.
Функция поддерживает два типа заполнения в соответствии с параметром type:

Симметричное заполнение согласно выражению:

$x(k) = 10^{x_0} \cdot dx^k$, где $dx = \sqrt[n-1]{10^{x_1 - x_0}}$, $k = 0 \ldots n-1.$

Периодическое заполнение согласно выражению:

$x(k) = 10^{x_0} \cdot dx^k$, где $dx = \sqrt[n]{10^{x_1 - x_0}}$, $k = 0 \ldots n-1.$

Аргументы
[in]x0Начальное значение показателя $x_0$.

[in]x1Конечное значение показателя $x_1$.

[in]nКоличество точек массива x.

[in]typeТип заполнения:
DSPL_SYMMETRIC - симметричное заполнение,
DSPL_PERIODIC - периодическое заполнение.

[in,out]xУказатель на вектор значений в логарифмической шкале.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK - функция выполнена успешно.
В противном случае код ошибки.
Заметки
Отличие периодического и симметричного заполнения можно понять из следующих примеров.
Пример 1. Периодическое заполнение.
1 double x[5];
2 logspace(-2, 3, 5, DSPL_PERIODIC, x);
В массиве x будут лежать значения:
1 0.01, 0.1, 1, 10, 100


Пример 2. Симметричное заполнение.
1 double x[5];
2 logspace(-2, 3, 5, DSPL_SYMMETRIC, x);
В массиве x будут лежать значения:
1 0.01 0.178 3.162 56.234 1000
Автор
Бахурин Сергей. www.dsplib.org
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 Полином расчитан успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей. www.dsplib.org
int polyval_cmplx ( complex_t a,
int  ord,
complex_t x,
int  n,
complex_t 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 Полином расчитан успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей. www.dsplib.org