Текст подпрограммы и версий
sfg4r_c.zip  sfg4d_c.zip 
Тексты тестовых примеров
tsfg4r_c.zip  tsfg4d_c.zip 

Функция:  sfg4r_c

Назначение

Вычисление неполной гамма - функции P (a, x) вещественного аргумента и вещественного параметра.

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

Подпрограмма - функция sfg4r_c вычисляет неполную гамма - функцию P (a, x):

                                        x
       P(a, x)   =   1/ Г(a)    ∫  e -t t a -1 dt      ( x ≥ 0 ,  a > 0 )  ,
                                       0 

где через  Г обозначена гамма - функция.

Если  x < a + 1, то используется ряд:

                                                
   P(a, x)  =  [ e-x  xa / Г(a) ]    ∑   [ Г(a) / Г(a+1+n) ]  xn
                                               n=0 

Если  x ≥ a + 1, то используется непрерывная дробь

  P(a, x)  =  1 - e-x xa / Г(a)  [ 1 /( x+ (1-a) /(1+ 1 /(x+ (2-a) /(1+ 2 /(x+ ...)))) ]

                  ( x > 0 ) 

Справочник по специальным функциям. Под ред. Абрамовица М. и Стигана И. Изд - во "Наука", 1979.

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

    real sfg4r_c (real *a, real *x, real *eps, integer *itmax, integer *ierr)

Параметры

a - заданное значение параметра  a (тип: вещественный);
x - заданное значение параметра  x (тип: вещественный);
eps - заданная относительная точность, с которой необходимо вычислить значение P (a, x) (тип: вещественный);
itmax - максимально допустимое количество членов ряда или непрерывной дроби, используемых при вычислении P (a, x) (тип: целый);
ierr - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом
ierr=65 - значение аргумента  x меньше 0; значение функции полагается равным наибольшему представимому на машине числу;
ierr=66 - значение аргумента  a меньше или равно 0; значение функции полагается равным наибольшему представимому на машине числу;
ierr=67 - заданное максимальное количество итераций недостаточно для заданных значений  a и eps; значение функции полагается равным наибольшему представимому на машине числу.

Версии

sfg4d_c - вычисление неполной гамма - функции P (a, x) вещественного аргумента и вещественного параметра в режиме удвоенной точности; при этом параметры  a, x, eps имеют тип double, а функция sfg4d_c должна быть описана как double.

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

sf66r_c -
sf66d_c  
вычисление натурального логарифма гамма - функции Г (х) вещественного аргумента в режимах одинарной и удвоенной точности; используются в подпрограммах - функциях sfg4r_c и sfg4d_c соответственно;
utsf10_c -
utsf11_c  
подпрограмма выдачи диагностических сообщений при работе подпрограмм - функций sfg4r_c и sfg4d_c соответственно.

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

 

В подпрограммах - функциях sfg4r_c и sfg4d_c используются рабочие подпрограммы sfg4r1_c, sfg4r2_c и sfg4d1_c, sfg4d2_c соответственно.

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

int main(void)
{
    /* Local variables */
    static int ierr;
    extern float sfg4r_c(float *, float *, float *, int *, int *);
    static float a, r__, x;
    static int itmax;
    static float eps;

    a = .5f;
    x = 6.f;
    eps = 1e-6f;
    itmax = 100;
    r__ = (float)sfg4r_c(&a, &x, &eps, &itmax, &ierr);

    printf("\n %16.7e %5i \n",r__,ierr);
    return 0;
} /* main */


Результаты:

        r__ = 0.999468 
        ierr = 0