Текст подпрограммы и версий sf32r_c.zip sf32d_c.zip |
Тексты тестовых примеров tsf32r_c.zip tsf32d_c.zip |
Вычисление сферической функции Бесселя первого рода целых порядков Jn (x).
sf32r_c вычисляет сферическую функцию Бесселя первого рода целых порядков для вещественных положительных значений аргумента
jn (x) = (π / 2x) 1/2 Jn + 1/2 (x) ,
где Jn + 1/2 (x) - функция Бесселя первого рода и 0 ≤ n ≤ 29.
M.A.Abramowitz, I.A.Stegun, Handbook of Mathematical Functions, Nat. Bur. Stand. Washington D.C., 1964.
int sf32r_c (real *x, integer *n, real *y, integer *ierr)
Параметры
x - | заданное значение аргумента x (тип: вещественный); |
n - | заданное значение порядка n (тип: целый); |
y - | вещественный вектоp длины n + 1, в который в pезультате работы подпрограммы помещаются вычисленные значения j0 (x), ..., jn (x); |
ierr - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом: |
ierr=65 - | когда значение аргумента отрицательно; |
ierr=66 - | когда заданный порядок сферической функции Бесселя не принадлежит отрезку (0, 29). |
Версии
sf32d_c - | вычисление сферической функции Бесселя первого рода целых порядков jn (x) с повышенной точностью. |
Вызываемые подпрограммы
utsf10_c - | подпрограмма выдачи диагностических сообщений при работе подпрограммы sf32r_c. |
utsf11_c - | подпрограмма выдачи диагностических сообщений при работе подпрограммы sf32d_c. |
Замечания по использованию
Для подпрограммы sf32d_c параметры x и y должны иметь тип double. |
int main(void) { /* Local variables */ extern int sf32r_c(float *, int *, float *, int *); static int ierr, n; static float x, y[3]; x = .1f; n = 2; sf32r_c(&x, &n, y, &ierr); printf("\n %16.7e %5i %5i \n",x,n,ierr); printf("\n %16.7e %16.7e %16.7e \n",y[0],y[1],y[2]); return 0; } /* main */ Результаты: y(1) = 0.998334166468, y(2) = 0.033300011902, y(3) = 0.000666190608, ierr = 0