libdspl-2.0/dspl/dox/ru/ellipj.dox

468 wiersze
17 KiB
Plaintext
Czysty Zwykły widok Historia

2018-05-25 13:52:16 +00:00
/*! ****************************************************************************
\ingroup SPEC_MATH_ELLIP_GROUP
\fn int ellip_acd(double* w, int n, double k, double* u)
\brief Обратная эллиптическая функция Якоби
\f$ u = \textrm{cd}^{-1}(w, k)\f$ вещественного аргумента
Функция рассчитывает занчения значения обратной эллиптической функции
\f$ u = \textrm{cd}^{-1}(w, k)\f$ для вещественного вектора `w`.<BR>
Для расчета используется итерационный алгоритм на основе преобразования
Ландена.<BR>
\param[in] w Указатель на массив вектора переменной \f$ w \f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\param[in] n Размер вектора `w`. <BR><BR>
\param[in] k Значение эллиптического модуля \f$ k \f$.<BR>
Эллиптический модуль -- вещественный параметр,
принимающий значения от 0 до 1. <BR><BR>
\param[out] u Указатель на вектор значений обратной эллиптической
функции \f$ u = \textrm{cd}^{-1}(w, k)\f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\return
`RES_OK` Расчет произведен успешно.<BR>
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".<BR>
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */
/*! ****************************************************************************
\ingroup SPEC_MATH_ELLIP_GROUP
\fn int ellip_acd_cmplx(complex_t* w, int n, double k, complex_t* u)
\brief Обратная эллиптическая функция Якоби
\f$ u = \textrm{cd}^{-1}(w, k)\f$ комплексного аргумента
Функция рассчитывает занчения значения обратной эллиптической функции
\f$ u = \textrm{cd}^{-1}(w, k)\f$ для комплексного вектора `w`.<BR>
Для расчета используется итерационный алгоритм на основе преобразования
Ландена.<BR>
\param[in] w Указатель на массив вектора переменной \f$ w \f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\param[in] n Размер вектора `w`. <BR><BR>
\param[in] k Значение эллиптического модуля \f$ k \f$.<BR>
Эллиптический модуль -- вещественный параметр,
принимающий значения от 0 до 1. <BR><BR>
\param[out] u Указатель на вектор значений обратной эллиптической
функции \f$ u = \textrm{cd}^{-1}(w, k)\f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\return
`RES_OK` Расчет произведен успешно.<BR>
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".<BR>
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */
/*! ****************************************************************************
\ingroup SPEC_MATH_ELLIP_GROUP
\fn int ellip_asn(double* w, int n, double k, double* u)
\brief Обратная эллиптическая функция Якоби
\f$ u = \textrm{sn}^{-1}(w, k)\f$ вещественного аргумента
Функция рассчитывает занчения значения обратной эллиптической функции
\f$ u = \textrm{sn}^{-1}(w, k)\f$ для вещественного вектора `w`.<BR>
Для расчета используется итерационный алгоритм на основе преобразования
Ландена.<BR>
\param[in] w Указатель на массив вектора переменной \f$ w \f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\param[in] n Размер вектора `w`. <BR><BR>
\param[in] k Значение эллиптического модуля \f$ k \f$.<BR>
Эллиптический модуль -- вещественный параметр,
принимающий значения от 0 до 1. <BR><BR>
\param[out] u Указатель на вектор значений обратной эллиптической
функции \f$ u = \textrm{sn}^{-1}(w, k)\f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\return
`RES_OK` Расчет произведен успешно.<BR>
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".<BR>
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */
/*! ****************************************************************************
\ingroup SPEC_MATH_ELLIP_GROUP
\fn int ellip_asn_cmplx(complex_t* w, int n, double k, complex_t* u)
\brief Обратная эллиптическая функция Якоби
\f$ u = \textrm{sn}^{-1}(w, k)\f$ комплексного аргумента
Функция рассчитывает занчения значения обратной эллиптической функции
\f$ u = \textrm{sn}^{-1}(w, k)\f$ для комплексного вектора `w`.<BR>
Для расчета используется итерационный алгоритм на основе преобразования
Ландена.<BR>
\param[in] w Указатель на массив вектора переменной \f$ w \f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\param[in] n Размер вектора `w`. <BR><BR>
\param[in] k Значение эллиптического модуля \f$ k \f$.<BR>
Эллиптический модуль -- вещественный параметр,
принимающий значения от 0 до 1. <BR><BR>
\param[out] u Указатель на вектор значений обратной эллиптической
функции \f$ u = \textrm{sn}^{-1}(w, k)\f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\return
`RES_OK` Расчет произведен успешно.<BR>
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".<BR>
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */
/*! ****************************************************************************
\ingroup SPEC_MATH_ELLIP_GROUP
\fn int ellip_cd(double* u, int n, double k, double* y)
\brief Эллиптическая функция Якоби
\f$ y = \textrm{cd}(u K(k), k)\f$ вещественного аргумента
Функция рассчитывает занчения значения эллиптической функции
\f$ y = \textrm{cd}(u K(k), k)\f$ для вещественного вектора `u` и
эллиптического модуля `k`.<BR>
Для расчета используется итерационный алгоритм на основе преобразования
Ландена.<BR>
\param[in] u Указатель на массив вектора переменной \f$ u \f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\param[in] n Размер вектора `u`. <BR><BR>
\param[in] k Значение эллиптического модуля \f$ k \f$.<BR>
Эллиптический модуль -- вещественный параметр,
принимающий значения от 0 до 1. <BR><BR>
\param[out] y Указатель на вектор значений эллиптической
функции \f$ y = \textrm{cd}(u K(k), k)\f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\return
`RES_OK` Расчет произведен успешно.<BR>
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".<BR>
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */
/*! ****************************************************************************
\ingroup SPEC_MATH_ELLIP_GROUP
\fn int ellip_cd_cmplx(complex_t* u, int n, double k, complex_t* y)
\brief Эллиптическая функция Якоби
\f$ y = \textrm{cd}(u K(k), k)\f$ комплексного аргумента
Функция рассчитывает занчения значения эллиптической функции
\f$ y = \textrm{cd}(u K(k), k)\f$ для комплексного вектора `u` и
эллиптического модуля `k`.<BR>
Для расчета используется итерационный алгоритм на основе преобразования
Ландена.<BR>
\param[in] u Указатель на массив вектора переменной \f$ u \f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\param[in] n Размер вектора `u`. <BR><BR>
\param[in] k Значение эллиптического модуля \f$ k \f$.<BR>
Эллиптический модуль -- вещественный параметр,
принимающий значения от 0 до 1. <BR><BR>
\param[out] y Указатель на вектор значений эллиптической
функции \f$ y = \textrm{cd}(u K(k), k)\f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\return
`RES_OK` Расчет произведен успешно.<BR>
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".<BR>
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */
/*! ****************************************************************************
\ingroup SPEC_MATH_ELLIP_GROUP
\fn int ellip_landen(double k, int n, double* y)
\brief Расчет коэффициентов \f$ k_i \f$ ряда полного эллиптического интеграла.
Полный эллиптический интеграл \f$ K(k) \f$ может быть представлен рядом:
\f[
K(k) = \frac{\pi}{2} \prod_{i = 1}^{\infty}(1+k_i),
\f]
где \f$ k_i \f$ вычисляется итерационно при начальных условиях \f$ k_0 = k\f$:
\f[
k_i =
\left(
\frac{k_{i-1}}
{
1+\sqrt{1-k_{i-1}^2}
}
\right)^2
\f]
Данная функция рассчитывает ряд первых `n` значений \f$ k_i \f$, которые в
дальнейшем могут быть использованы для расчета эллиптического интеграла и
эллиптических функций.
\param[in] k Эллиптический модуль \f$ k \f$.<BR>
\param[in] n Размер вектора `y` соответсвующих
коэффициентам \f$ k_i \f$. <BR><BR>
\param[out] y Указатель на вектор значений
коэффициентов \f$ k_i \f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\return
`RES_OK` Расчет произведен успешно.<BR>
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".<BR>
Пример использования функции `ellip_landen`:
\include ellip_landen_test.c
Результат работы программы:
\verbatim
i k[i]
1 4.625e-01
2 6.009e-02
3 9.042e-04
4 2.044e-07
5 1.044e-14
6 2.727e-29
7 1.859e-58
8 8.640e-117
9 1.866e-233
10 0.000e+00
11 0.000e+00
12 0.000e+00
13 0.000e+00
\endverbatim
\note Ряд полного эллиптического интеграла сходится при значениях
эллиптического модуля \f$ k<1 \f$. При этом сходимость ряда достаточно
быстрая и для практический приложений достаточно от 10 до 20 значений
\f$ k_i \f$ для обеспечения погрешности при расчете полного
эллиптического интеграла в пределах машинной точности.
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */
/*! ****************************************************************************
\ingroup SPEC_MATH_ELLIP_GROUP
\fn int ellip_sn(double* u, int n, double k, double* y)
\brief Эллиптическая функция Якоби
\f$ y = \textrm{sn}(u K(k), k)\f$ вещественного аргумента
Функция рассчитывает занчения значения эллиптической функции
\f$ y = \textrm{sn}(u K(k), k)\f$ для вещественного вектора `u` и
эллиптического модуля `k`.<BR>
Для расчета используется итерационный алгоритм на основе преобразования
Ландена.<BR>
\param[in] u Указатель на массив вектора переменной \f$ u \f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\param[in] n Размер вектора `u`. <BR><BR>
\param[in] k Значение эллиптического модуля \f$ k \f$.<BR>
Эллиптический модуль -- вещественный параметр,
принимающий значения от 0 до 1. <BR><BR>
\param[out] y Указатель на вектор значений эллиптической
функции \f$ y = \textrm{sn}(u K(k), k)\f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\return
`RES_OK` Расчет произведен успешно.<BR>
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".<BR>
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */
/*! ****************************************************************************
\ingroup SPEC_MATH_ELLIP_GROUP
\fn int ellip_sn_cmplx(complex_t* u, int n, double k, complex_t* y)
\brief Эллиптическая функция Якоби
\f$ y = \textrm{sn}(u K(k), k)\f$ комплексного аргумента
Функция рассчитывает занчения значения эллиптической функции
\f$ y = \textrm{sn}(u K(k), k)\f$ для комплексного вектора `u` и
эллиптического модуля `k`.<BR>
Для расчета используется итерационный алгоритм на основе преобразования
Ландена.<BR>
\param[in] u Указатель на массив вектора переменной \f$ u \f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\param[in] n Размер вектора `u`. <BR><BR>
\param[in] k Значение эллиптического модуля \f$ k \f$.<BR>
Эллиптический модуль -- вещественный параметр,
принимающий значения от 0 до 1. <BR><BR>
\param[out] y Указатель на вектор значений эллиптической
функции \f$ y = \textrm{sn}(u K(k), k)\f$.<BR>
Размер вектора `[n x 1]`.<BR>
Память должна быть выделена.<BR><BR>
\return
`RES_OK` Расчет произведен успешно.<BR>
В противном случае
\ref ERROR_CODE_GROUP "код ошибки".<BR>
\author
Бахурин Сергей
www.dsplib.org
***************************************************************************** */