Текст подпрограммы и версий ( Фортран ) 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 |
Вычисление функции Бесселя первого рода целых порядков 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