Текст подпрограммы и версий
sfg5r_p.zip  sfg5e_p.zip 
Тексты тестовых примеров
tsfg5r_p.zip  tsfg5e_p.zip 

Функция:  SFG5R (модуль SFG5R_p)

Назначение

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

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

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

       Q(a, x) = 1 - P(a, x)  =
                                                         
                                       =  1/ Г(a)   ∫   e -t t a -1 dt     ( x ≥ 0 ,  a > 0 )  ,
                                                        x
       Q(a, 0)  =  1 ,       Q(a, ∞)  =  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.

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

function SFG5R(A :Real; X :Real; EPS :Real;
                ITMAX :Integer; var IERR :Integer): Real;

Параметры

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

Версии

SFG5E - вычисление неполной гамма - функции Q (a, x) вещественного аргумента и вещественного параметра в режиме расширенной (Extended) точности; при этом параметры  A, X, EPS имеют тип Extended, а функция SFG5E должна быть описана как Extended.

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

       SF66R -
       SF66E  
вычисление натурального логарифма гамма - функции Г (х) вещественного аргумента в режимах одинарной и расширенной (Extended) точности; используются в подпрограммах - функциях SFG5R и SFG5E соответственно.
      UTSF10 -
      UTSF11  
подпрограммы выдачи диагностических сообщений при работе подпрограмм - функций SFG5R и SFG5E соответственно.

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

  В подпрограммах - функциях SFG5R и SFG5E используются рабочие подпрограммы SFG4R1, SFG4R2 и SFG4E1, SFG4E2 соответственно.

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

Unit TSFG5R_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SFG5R_p;

function TSFG5R: String;

implementation

function TSFG5R: String;
var
ITMAX,IERR :Integer;
A,X,EPS,R :Real;
begin
Result := '';  { результат функции }
A := 0.5;
X := 6.0;
EPS := 0.000001;
IТМАХ := 100;
R := SFG5R(A,X,EPS,ITMAX,IERR);
Result := Result + Format(' %16.7f  %5d ',[R,IERR]) + #$0D#$0A;
UtRes('TSFG5R',Result);  { вывод результатов в файл TSFG5R.res }
exit;
end;

end.

Результаты:

       R       = 0.5320055E - 03 
       IERR = 0