2019-06-09 12:25:11 +00:00
|
|
|
|
/*! ****************************************************************************
|
|
|
|
|
\ingroup SPEC_MATH_COMMON_GROUP
|
|
|
|
|
\fn int linspace(double x0, double x1, int n, int type, double* x)
|
|
|
|
|
\brief Функция заполняет массив линейно-нарастающими,
|
|
|
|
|
равноотстоящими значениями от `x0` до `x1`
|
|
|
|
|
|
|
|
|
|
Заполняет массив `x` длиной `n` значениями в диапазоне
|
|
|
|
|
от \f$x_0\f$ до \f$x_1\f$. Функция поддерживает два типа заполнения
|
|
|
|
|
в соответствии с параметром `type`:<BR>
|
|
|
|
|
|
|
|
|
|
Симметричное заполнение согласно выражению (параметр `type=DSPL_SYMMETRIC`):<BR>
|
|
|
|
|
|
|
|
|
|
\f$x(k) = x_0 + k \cdot dx\f$,
|
|
|
|
|
\f$dx = \frac{x_1 - x_0}{n-1}\f$, \f$k = 0 \ldots n-1.\f$
|
|
|
|
|
|
|
|
|
|
Периодическое заполнение (параметр `type=DSPL_PERIODIC`) согласно выражению:<BR>
|
|
|
|
|
|
|
|
|
|
\f$x(k) = x_0 + k \cdot dx\f$,
|
|
|
|
|
\f$dx = \frac{x_1 - x_0}{n}\f$, \f$k = 0 \ldots n-1.\f$
|
|
|
|
|
|
|
|
|
|
\param[in] x0 Начальное показателя \f$x_0\f$.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\param[in] x1 Конечное значение \f$x_1\f$.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\param[in] n Количество точек массива `x`.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\param[in] type Тип заполнения:<BR>
|
|
|
|
|
`DSPL_SYMMETRIC` - симметричное заполнение,<BR>
|
|
|
|
|
`DSPL_PERIODIC` - периодическое заполнение.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\param[in,out] x Указатель на вектор равноотстоящих значений .<BR>
|
|
|
|
|
Размер вектора `[n x 1]`.<BR>
|
|
|
|
|
Память должна быть выделена.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\return
|
|
|
|
|
`RES_OK` - функция выполнена успешно. <BR>
|
|
|
|
|
В противном случае \ref ERROR_CODE_GROUP "код ошибки".
|
|
|
|
|
|
|
|
|
|
\note
|
|
|
|
|
Отличие периодического и симметричного заполнения можно
|
|
|
|
|
понять из следующих примеров. <BR>
|
|
|
|
|
Пример 1. Периодическое заполнение.
|
|
|
|
|
\code
|
|
|
|
|
double x[5];
|
|
|
|
|
linspace(0, 5, 5, DSPL_PERIODIC, x);
|
|
|
|
|
\endcode
|
|
|
|
|
В массиве `x` будут лежать значения:
|
|
|
|
|
\code
|
|
|
|
|
0, 1, 2, 3, 4
|
|
|
|
|
\endcode
|
|
|
|
|
<BR><BR>
|
|
|
|
|
Пример 2. Симметричное заполнение.
|
|
|
|
|
\code
|
|
|
|
|
double x[5];
|
|
|
|
|
linspace(0, 5, 5, DSPL_SYMMETRIC, x);
|
|
|
|
|
\endcode
|
|
|
|
|
В массиве `x` будут лежать значения:
|
|
|
|
|
\code
|
|
|
|
|
0, 1.25, 2.5, 3.75, 5
|
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
|
|
\author
|
|
|
|
|
Бахурин Сергей.
|
|
|
|
|
www.dsplib.org
|
|
|
|
|
***************************************************************************** */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*! ****************************************************************************
|
|
|
|
|
\ingroup SPEC_MATH_COMMON_GROUP
|
|
|
|
|
\fn int logspace(double x0, double x1, int n, int type, double* x)
|
|
|
|
|
\brief Функция заполняет массив значениями логарифмической шкале
|
|
|
|
|
|
|
|
|
|
Заполняет массив `x` длиной `n` значениями в диапазоне
|
|
|
|
|
от \f$10^{x_0}\f$ до \f$10^{x_1}\f$.<BR>
|
|
|
|
|
Функция поддерживает два типа заполнения в соответствии с параметром `type`:<BR>
|
|
|
|
|
|
|
|
|
|
Симметричное заполнение согласно выражению:<BR>
|
|
|
|
|
|
|
|
|
|
\f$x(k) = 10^{x_0} \cdot dx^k\f$, где \f$dx = \sqrt[n-1]{10^{x_1 - x_0}}\f$,
|
|
|
|
|
\f$k = 0 \ldots n-1.\f$
|
|
|
|
|
|
|
|
|
|
Периодическое заполнение согласно выражению:
|
|
|
|
|
|
|
|
|
|
\f$x(k) = 10^{x_0} \cdot dx^k\f$, где \f$dx = \sqrt[n]{10^{x_1 - x_0}}\f$,
|
|
|
|
|
\f$k = 0 \ldots n-1.\f$<BR>
|
|
|
|
|
|
|
|
|
|
\param[in] x0 Начальное значение показателя \f$x_0\f$.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\param[in] x1 Конечное значение показателя \f$x_1\f$.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\param[in] n Количество точек массива `x`.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\param[in] type Тип заполнения:<BR>
|
|
|
|
|
`DSPL_SYMMETRIC` - симметричное заполнение,<BR>
|
|
|
|
|
`DSPL_PERIODIC` - периодическое заполнение.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\param[in,out] x Указатель на вектор значений в логарифмической шкале.<BR>
|
|
|
|
|
Размер вектора `[n x 1]`.<BR>
|
|
|
|
|
Память должна быть выделена.<BR><BR>
|
|
|
|
|
|
|
|
|
|
\return
|
|
|
|
|
`RES_OK` - функция выполнена успешно. <BR>
|
|
|
|
|
В противном случае \ref ERROR_CODE_GROUP "код ошибки".
|
|
|
|
|
|
|
|
|
|
\note
|
|
|
|
|
Отличие периодического и симметричного заполнения можно
|
|
|
|
|
понять из следующих примеров. <BR>
|
|
|
|
|
Пример 1. Периодическое заполнение.
|
|
|
|
|
\code
|
|
|
|
|
double x[5];
|
|
|
|
|
logspace(-2, 3, 5, DSPL_PERIODIC, x);
|
|
|
|
|
\endcode
|
|
|
|
|
В массиве `x` будут лежать значения:
|
|
|
|
|
\code
|
|
|
|
|
0.01, 0.1, 1, 10, 100
|
|
|
|
|
\endcode
|
|
|
|
|
<BR><BR>
|
|
|
|
|
Пример 2. Симметричное заполнение.
|
|
|
|
|
\code
|
|
|
|
|
double x[5];
|
|
|
|
|
logspace(-2, 3, 5, DSPL_SYMMETRIC, x);
|
|
|
|
|
\endcode
|
|
|
|
|
В массиве `x` будут лежать значения:
|
|
|
|
|
\code
|
|
|
|
|
0.01 0.178 3.162 56.234 1000
|
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
|
|
\author
|
|
|
|
|
Бахурин Сергей.
|
|
|
|
|
www.dsplib.org
|
|
|
|
|
***************************************************************************** */
|
2018-03-14 21:00:30 +00:00
|
|
|
|
|