Текст подпрограммы и версий ( Фортран )
sf74r.zip 
Тексты тестовых примеров ( Фортран )
tsf74r.zip 
Текст подпрограммы и версий ( Си )
sf74r_c.zip 
Тексты тестовых примеров ( Си )
tsf74r_c.zip 
Текст подпрограммы и версий ( Паскаль )
sf74r_p.zip
Тексты тестовых примеров ( Паскаль )
tsf74r_p.zip

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

Назначение

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

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

SF74R вычисляет значения модифицированных функций Бесселя первого рода  Ip (x) для действительного аргумента  x и последовательности целых индексов  p от  n до 0. Расчеты осуществляются по рекуррентной формуле:

     Ip-1(x) = (2p/x)*Ip(x) + Ip+1(x) . 

Ошибка вычисления  Ip (x) не возрастает в pекуppентном процессе, применяемом при убывании  p.

Вычисления начинаются с задания значений  Ik + 1 = 0,   Ik = 1 и числа  k.

Величина  k выбирается в зависимости от значений  x и  n. Затем последовательно вычисляются значения функций для p = k - 1, k - 2, ..., 0. Для достижения заданной точности  eps рекурсия повторяется с большим  k до тех пор, пока разность между pезультатами двух последних рекурсий не станет меньше  eps.

1.  Абрамовиц М., Стиган И. Справочник по специальным функциям - М. Наука, 1979.
2.  Goldstein M., Thaler R.M. Recurrence techniques for the calculation of Bessel functions. - M TAC, 1959, V. 13, N 66.

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

    SUBROUTINE  SF74R (X, N1, EPS, S, T, T1) 

Параметры

X - заданное значение аргумента  x (тип: вещественный);
N1 - максимальный порядок последовательности функций   Ip (x), увеличенный на единицу (тип: целый);
EPS - относительная точность вычисления последней функции последовательности  In (x) (тип: вещественный);
S - логическая переменная, задающая режим работы подпрограммы; при этом:
если  S = .TRUE., то вычисляются функции  Ip(x),
если  S = .FALSE., то вычисляются функции e - x Ip(x);
T - вещественный вектоp длины N1 вычисленных значений функций Бесселя порядков от 0 до  n;   Ij (x) = T (j + 1),   j = 0, ..., N  (N = N1 - 1);
T1 - вещественный вектоp длины N1, используемый как рабочий.

Версии: нет

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

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

  Для значений  x, при которых  e - x меньше положительного наименьшего представимого в машине числа, значение S полагается равным .FALSE.

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

         DIMENSION  T(21), T1(21)
         LOGICAL  S
         X = 5
         N1 = 21
         EPS = 1.E-9
         S = .TRUE.
         CALL  SF74R (X, N1, EPS, S, T, T1)

Результаты:

       T(5)    =  5.1082347636E+00
       T(11)  =  4.580044192E-03
       T(16)  =  1.0479776754E-06
       T(21)  =  5.0242393580E-11