Текст подпрограммы и версий ( Фортран )
sf33r.zip  sf33d.zip 
Тексты тестовых примеров ( Фортран )
tsf33r.zip  tsf33d.zip 
Текст подпрограммы и версий ( Си )
sf33r_c.zip  sf33d_c.zip 
Тексты тестовых примеров ( Си )
tsf33r_c.zip  tsf33d_c.zip 
Текст подпрограммы и версий ( Паскаль )
sf33r_p.zip , sf33e_p.zip
Тексты тестовых примеров ( Паскаль )
tsf33r_p.zip , tsf33e_p.zip

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

Назначение

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

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

SF33R вычисляет функции Бесселя первого рода  Jn (x) и функции Неймана (функции Бесселя второго рода) для вещественных значений аргумента  x (x > 0) и всех целых значений порядка  n от 0 до M  (M ≥ 1). Поскольку при малых x функции  Jn (x)  и   Nn (x) с pостом  n  быстро стремятся к  0  и  ∞, соответственно, то при 0 < x ≤ 1 вычисляются следующие функции:

     in (x) = n! (x / 2)- n Jn (x) ,
     k0 (x) = N0 (x) ,
     kn (x) = 2 (x / 2)n Nn (x) / (n - 1)! ,    n ≥ 1 

В.Н.Родин, Стандартные программы вычисления полных эллиптических интегралов, интеграла вероятностей, гамма - функции и функции Бесселя, Сб. "Численный анализ на ФОРТРАНе", вып. 8, Изд - во МГУ, 1974 г.

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

    SUBROUTINE  SF33R (X, N, NMAX, FUN1, FUN2, WORK, IERR) 

Параметры

X - заданное значение аргумента x (тип: вещественный);
N - определяет, до какого порядка включительно надо вычислять функции, и его значение должно быть pавно M + 1, где M - максимальный порядок вычисляемых функций (тип: целый);
NMAX - целая переменная, определяющая длины вектоpов FUN1, FUN2; необходимо при обращении задавать NMAX ≥ max (N, 2*[x] + 4), где [x] - целая часть X;
         FUN1 -
         FUN2  
вещественные векторы длины NMAX, в первых N компонентах которых помещаются вычисленные значения функций  Jn (x) и  Nn (x) соответственно (n = 0, 1, ..., N - 1);
WORK - вещественный вектоp длины NMAX, используемый в подпрограмме как рабочий;
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы:
IERR=65 - если значение N (число значений порядка, для которых нужно посчитать функции  Jn  и  Nn)  меньше двух;
IERR=66 - если значение NMAX (длина массивов FUN1 и FUN2) не удовлетворяет условию:  NMAX ≥ max (N, 2*[x] + 4);
IERR=67 - если значение аргумента  x  меньше или pавно нулю;
IERR=68 - если значение вычисляемой функции превосходит максимально допустимое в машине число.

Версии

SF33D - вычисление функции Бесселя первого рода целых порядков  Jn (x)  и функции Неймана целых порядков  Nn (x)  с повышенной точностью.

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

UTSF10 - подпрограмма печати диагностических сообщений при работе подпрограммы SF33R.
UTSF11 - подпрограмма печати диагностических сообщений при работе подпрограммы SF33D.

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

  Для подпрограммы SF33D параметры FUN1, FUN2, X, WORK имеют тип DOUBLE PRECISION.

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

         DIMENSION  FUN1(3), FUN2(3), WORK(3)
         X = 0.1
         N = 3
         NMAX = 4
         CALL  SF33R (X, N, NMAX, FUN1, FUN2, WORK, IERR)

Результаты:

       FUN1(1)  =   0.997501562056, 
       FUN1(2)  =   0.998750520715, 
       FUN1(3)  =   0.999166927031;

       FUN2(1)  =  -1.53423865134, 
       FUN2(2)  =  -0.645895109469,
       FUN2(3)  =  -0.638223916213;

       IERR  =  0