Функция: sf19r_c
Назначение
Вычисление неполных эллиптических интегралов первого рода.
Математическое описание
Функция sf19r_c производит вычисление интегралов вида:
T
F (K, T) = ∫ (1 - K2 sin2 t) -1/2 dt для 0 ≤ K2 ≤ 1 и 0 ≤ T ≤ π/2
0
J.F.Hart, E.W.Cheney, C.L.Lawson et al, Computer
Approximations, Wiley, New York, 1968.
Использование
real sf19r_c (real *rk2, real *t, integer *ierr)
Параметры
rk2, t -
|
заданные значения аргументов K2 и T (тип:
вещественный);
|
ierr -
|
целая переменная, служащая для сообщения об
ошибках, обнаруженных в ходе работы функции;
при этом:
|
ierr=65 -
|
когда значение rk2 меньше 0. или
больше 1.; значение функции полагается равным 3.4e38;
|
ierr=66 -
|
когда значение t меньше 0. или больше
π / 2;
значение функции полагается равным 3.4e38;
|
ierr=67 -
|
когда rk2 = 1 и
t = π / 2
(значение подинтегральной функции pавно 0); значение
функции полагается равным 3.4e38.
|
Версии
sf19d_c -
|
вычисление неполных эллиптических интегралов
первого рода с повышенной точностью.
|
Вызываемые подпрограммы
utsf10_c -
|
подпрограмма выдачи диагностических сообщений
при работе функции sf19r_c.
|
utsf11_c -
|
подпрограмма выдачи диагностических сообщений
при работе функции sf19d_c.
|
Замечания по использованию
|
Для функции sf19d_c параметры rk2 и t имеют тип
double. Значение sf19d_c при
ierr ≠ 0 полагается
pавным 1.7e308.
|
Пример использования
rk2 = 0.5
int main(void)
{
/* Local variables */
static int ierr;
extern float sf19r_c(float *, float *, int *);
static float t, y, rk2;
rk2 = .5f;
t = .78539816250000005f;
y = (float)sf19r_c(&rk2, &t, &ierr);
printf("\n %16.7e %5i \n",y, ierr);
return 0;
} /* main */
Результаты:
y = 0.826017876245, ierr = 0