Текст подпрограммы и версий
sfa2r_c.zip  sfa2d_c.zip 
Тексты тестовых примеров
tsfa2r_c.zip  tsfa2d_c.zip 

Подпрограмма:  sfa2r_c

Назначение

Вычисление функций  Риккати - Бесселя первого рода  Sn (x) и второго рода  Cn (x) от вещественных аргументов.

Математическое описание

Подпрограмма sfa2r_c вычисляет для вещественных аргументов  x  функции Риккати - Бесселя первого рода

           Sn(x)  =  (πx/2)1/2  Jn+1/2(x)  =  x jn(x) ,      n = 0, 1, 2, ..., N 

   и второго рода

           Cn(x)  =  (πx/2)1/2  Yn+1/2(x)  =  x yn(x) ,    n = 0, 1, 2, ..., N ,

  где  Jn + 1/2  и  Yn + 1/2  -  функции Бесселя первого и второго рода,
                         jn  и  yn  -  сферические функции Бесселя первого и второго рода.  

Абрамовиц М., Стиган И. Справочник по специальным функциям. М.: Наука, 1979.

Использование

    int sfa2r_c (real *x, integer *n, real *s, real *c)

Параметры

x - заданное значение аргумента (тип: вещественный);
n - заданное значение максимального порядка, для которого необходимо вычислить функции  Sn (x) и Cn (x),  n = 0, 1, ..., n (тип: целый);
s, c - вещественные одномерные массивы длины n + 1, в которых размещаются вычисленные значения  S0 (x), ..., Sn (x)  и  C0 (x), ..., Cn (x)  соответственно.

Версии

sfa2d_c - вычисление функций Риккати - Бесселя первого рода Sn (x)  и  второго рода Cn (x) от вещественных аргументов в режиме удвоенной точности; при этом параметры x, s и c должны иметь тип double.

Вызываемые подпрограммы: нет

Замечания по использованию: нет

Пример использования

int main(void)
{
    /* Local variables */
    extern int sfa2r_c(float *, int *, float *, float *);
    static float c__[3], s[3], x;

    x = 3.f;
    sfa2r_c(&x, &c__2, s, c__);

    printf("\n %16.7e %16.7e %16.7e \n", s[0], s[1], s[2]);
    printf("\n %16.7e %16.7e %16.7e \n", c__[0], c__[1], c__[2]);
    return 0;
} /* main */


Результаты:

       s     =   0.141120,   1.03703,  0.895913 
       c__ = -0.989992,  -0.188878,  0.801115