Текст подпрограммы и версий sfa2r_c.zip sfa2d_c.zip |
Тексты тестовых примеров tsfa2r_c.zip tsfa2d_c.zip |
Вычисление функций Риккати - Бесселя первого рода 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