libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
Эллиптические функции вещественного

Функции

int ellip_acd (double *w, int n, double k, double *u)
 Обратная эллиптическая функция Якоби $ u = \textrm{cd}^{-1}(w, k)$ вещественного аргумента Подробнее...
 
int ellip_acd_cmplx (complex_t *w, int n, double k, complex_t *u)
 Обратная эллиптическая функция Якоби $ u = \textrm{cd}^{-1}(w, k)$ комплексного аргумента Подробнее...
 
int ellip_asn (double *w, int n, double k, double *u)
 Обратная эллиптическая функция Якоби $ u = \textrm{sn}^{-1}(w, k)$ вещественного аргумента Подробнее...
 
int ellip_asn_cmplx (complex_t *w, int n, double k, complex_t *u)
 Обратная эллиптическая функция Якоби $ u = \textrm{sn}^{-1}(w, k)$ комплексного аргумента Подробнее...
 
int ellip_cd (double *u, int n, double k, double *y)
 Эллиптическая функция Якоби $ y = \textrm{cd}(u K(k), k)$ вещественного аргумента Подробнее...
 
int ellip_cd_cmplx (complex_t *u, int n, double k, complex_t *y)
 Эллиптическая функция Якоби $ y = \textrm{cd}(u K(k), k)$ комплексного аргумента Подробнее...
 
int ellip_landen (double k, int n, double *y)
 Расчет коэффициентов $ k_i $ ряда полного эллиптического интеграла. Подробнее...
 
int ellip_sn (double *u, int n, double k, double *y)
 Эллиптическая функция Якоби $ y = \textrm{sn}(u K(k), k)$ вещественного аргумента Подробнее...
 
int ellip_sn_cmplx (complex_t *u, int n, double k, complex_t *y)
 Эллиптическая функция Якоби $ y = \textrm{sn}(u K(k), k)$ комплексного аргумента Подробнее...
 

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

и комплексного аргумента

Функции

◆ ellip_acd()

int ellip_acd ( double *  w,
int  n,
double  k,
double *  u 
)

Обратная эллиптическая функция Якоби $ u = \textrm{cd}^{-1}(w, k)$ вещественного аргумента


Функция рассчитывает значения обратной эллиптической функции $ u = \textrm{cd}^{-1}(w, k)$ для вещественного вектора w.
Для расчета используется итерационный алгоритм на основе преобразования Ландена.

Аргументы
[in]wУказатель на массив вектора переменной $ w $.
Размер вектора [n x 1].
Память должна быть выделена.

[in]nРазмер вектора w.
[in]kЗначение эллиптического модуля $ k $. Эллиптический модуль – вещественный параметр, принимающий значения от 0 до 1.

[out]uУказатель на вектор значений обратной эллиптической функции $ u = \textrm{cd}^{-1}(w, k)$.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK Расчет произведен успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле ellipj.c строка 60

◆ ellip_acd_cmplx()

int ellip_acd_cmplx ( complex_t w,
int  n,
double  k,
complex_t u 
)

Обратная эллиптическая функция Якоби $ u = \textrm{cd}^{-1}(w, k)$ комплексного аргумента


Функция рассчитывает занчения значения обратной эллиптической функции $ u = \textrm{cd}^{-1}(w, k)$ для комплексного вектора w.
Для расчета используется итерационный алгоритм на основе преобразования Ландена.

Аргументы
[in]wУказатель на массив вектора переменной $ w $.
Размер вектора [n x 1].
Память должна быть выделена.

[in]nРазмер вектора w.

[in]kЗначение эллиптического модуля $ k $.
Эллиптический модуль – вещественный параметр, принимающий значения от 0 до 1.

[out]uУказатель на вектор значений обратной эллиптической функции $ u = \textrm{cd}^{-1}(w, k)$.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK Расчет произведен успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле ellipj.c строка 125

◆ ellip_asn()

int ellip_asn ( double *  w,
int  n,
double  k,
double *  u 
)

Обратная эллиптическая функция Якоби $ u = \textrm{sn}^{-1}(w, k)$ вещественного аргумента


Функция рассчитывает занчения значения обратной эллиптической функции $ u = \textrm{sn}^{-1}(w, k)$ для вещественного вектора w.
Для расчета используется итерационный алгоритм на основе преобразования Ландена.

Аргументы
[in]wУказатель на массив вектора переменной $ w $.
Размер вектора [n x 1].
Память должна быть выделена.

[in]nРазмер вектора w.

[in]kЗначение эллиптического модуля $ k $.
Эллиптический модуль – вещественный параметр, принимающий значения от 0 до 1.

[out]uУказатель на вектор значений обратной эллиптической функции $ u = \textrm{sn}^{-1}(w, k)$.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK Расчет произведен успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле ellipj.c строка 210

◆ ellip_asn_cmplx()

int ellip_asn_cmplx ( complex_t w,
int  n,
double  k,
complex_t u 
)

Обратная эллиптическая функция Якоби $ u = \textrm{sn}^{-1}(w, k)$ комплексного аргумента


Функция рассчитывает занчения значения обратной эллиптической функции $ u = \textrm{sn}^{-1}(w, k)$ для комплексного вектора w.
Для расчета используется итерационный алгоритм на основе преобразования Ландена.

Аргументы
[in]wУказатель на массив вектора переменной $ w $.
Размер вектора [n x 1].
Память должна быть выделена.

[in]nРазмер вектора w.

[in]kЗначение эллиптического модуля $ k $.
Эллиптический модуль – вещественный параметр, принимающий значения от 0 до 1.

[out]uУказатель на вектор значений обратной эллиптической функции $ u = \textrm{sn}^{-1}(w, k)$.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK Расчет произведен успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле ellipj.c строка 275

◆ ellip_cd()

int ellip_cd ( double *  u,
int  n,
double  k,
double *  y 
)

Эллиптическая функция Якоби $ y = \textrm{cd}(u K(k), k)$ вещественного аргумента


Функция рассчитывает занчения значения эллиптической функции $ y = \textrm{cd}(u K(k), k)$ для вещественного вектора u и эллиптического модуля k.
Для расчета используется итерационный алгоритм на основе преобразования Ландена.

Аргументы
[in]uУказатель на массив вектора переменной $ u $.
Размер вектора [n x 1].
Память должна быть выделена.

[in]nРазмер вектора u.

[in]kЗначение эллиптического модуля $ k $.
Эллиптический модуль – вещественный параметр, принимающий значения от 0 до 1.

[out]yУказатель на вектор значений эллиптической функции $ y = \textrm{cd}(u K(k), k)$.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK Расчет произведен успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле ellipj.c строка 360

◆ ellip_cd_cmplx()

int ellip_cd_cmplx ( complex_t u,
int  n,
double  k,
complex_t y 
)

Эллиптическая функция Якоби $ y = \textrm{cd}(u K(k), k)$ комплексного аргумента


Функция рассчитывает занчения значения эллиптической функции $ y = \textrm{cd}(u K(k), k)$ для комплексного вектора u и эллиптического модуля k.
Для расчета используется итерационный алгоритм на основе преобразования Ландена.

Аргументы
[in]uУказатель на массив вектора переменной $ u $.
Размер вектора [n x 1].
Память должна быть выделена.

[in]nРазмер вектора u.

[in]kЗначение эллиптического модуля $ k $.
Эллиптический модуль – вещественный параметр, принимающий значения от 0 до 1.

[out]yУказатель на вектор значений эллиптической функции $ y = \textrm{cd}(u K(k), k)$.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK Расчет произведен успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле ellipj.c строка 424

◆ ellip_landen()

int ellip_landen ( double  k,
int  n,
double *  y 
)

Расчет коэффициентов $ k_i $ ряда полного эллиптического интеграла.


Полный эллиптический интеграл $ K(k) $ может быть представлен рядом:

\[ K(k) = \frac{\pi}{2} \prod_{i = 1}^{\infty}(1+k_i), \]

где $ k_i $ вычисляется итерационно при начальных условиях $ k_0 = k$:

\[ k_i = \left( \frac{k_{i-1}} { 1+\sqrt{1-k_{i-1}^2} } \right)^2 \]

Данная функция рассчитывает ряд первых n значений $ k_i $, которые в дальнейшем могут быть использованы для расчета эллиптического интеграла и эллиптических функций.

Аргументы
[in]kЭллиптический модуль $ k $.
[in]nРазмер вектора y соответсвующих коэффициентам $ k_i $.

[out]yУказатель на вектор значений коэффициентов $ k_i $.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK Расчет произведен успешно.
В противном случае код ошибки.

Пример использования функции ellip_landen:

#include <stdio.h>
#include <stdlib.h>
#include "dspl.h"
#define N 14
int main()
{
void* handle; // DSPL handle
handle = dspl_load(); // Load DSPL function
double k[N];
int i, err;
err = ellip_landen(0.93, N, k);
if(err != RES_OK)
{
printf("Error code: %8x\n", err);
return err;
}
printf(" i%8sk[i]\n\n", "");
for(i = 1; i < N; i++)
printf("%2d %11.3e\n", i, k[i]);
dspl_free(handle); // free dspl handle
return 0;
}

Результат работы программы:

 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
Заметки
Ряд полного эллиптического интеграла сходится при значениях эллиптического модуля $ k<1 $. При этом сходимость ряда достаточно быстрая и для практический приложений достаточно от 10 до 20 значений $ k_i $ для обеспечения погрешности при расчете полного эллиптического интеграла в пределах машинной точности.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле ellipj.c строка 545

Используется в ellip_acd(), ellip_acd_cmplx(), ellip_asn(), ellip_asn_cmplx(), ellip_cd(), ellip_cd_cmplx(), ellip_sn() и ellip_sn_cmplx().

◆ ellip_sn()

int ellip_sn ( double *  u,
int  n,
double  k,
double *  y 
)

Эллиптическая функция Якоби $ y = \textrm{sn}(u K(k), k)$ вещественного аргумента


Функция рассчитывает занчения значения эллиптической функции $ y = \textrm{sn}(u K(k), k)$ для вещественного вектора u и эллиптического модуля k.
Для расчета используется итерационный алгоритм на основе преобразования Ландена.

Аргументы
[in]uУказатель на массив вектора переменной $ u $.
Размер вектора [n x 1].
Память должна быть выделена.

[in]nРазмер вектора u.

[in]kЗначение эллиптического модуля $ k $.
Эллиптический модуль – вещественный параметр, принимающий значения от 0 до 1.

[out]yУказатель на вектор значений эллиптической функции $ y = \textrm{sn}(u K(k), k)$.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK Расчет произведен успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org
 

См. определение в файле ellipj.c строка 697

◆ ellip_sn_cmplx()

int ellip_sn_cmplx ( complex_t u,
int  n,
double  k,
complex_t y 
)

Эллиптическая функция Якоби $ y = \textrm{sn}(u K(k), k)$ комплексного аргумента


Функция рассчитывает занчения значения эллиптической функции $ y = \textrm{sn}(u K(k), k)$ для комплексного вектора u и эллиптического модуля k.
Для расчета используется итерационный алгоритм на основе преобразования Ландена.

Аргументы
[in]uУказатель на массив вектора переменной $ u $.
Размер вектора [n x 1].
Память должна быть выделена.

[in]nРазмер вектора u.

[in]kЗначение эллиптического модуля $ k $.
Эллиптический модуль – вещественный параметр, принимающий значения от 0 до 1.

[out]yУказатель на вектор значений эллиптической функции $ y = \textrm{sn}(u K(k), k)$.
Размер вектора [n x 1].
Память должна быть выделена.

Возвращает
RES_OK Расчет произведен успешно.
В противном случае код ошибки.
Автор
Бахурин Сергей www.dsplib.org

См. определение в файле ellipj.c строка 758