Текст подпрограммы и версий
sfg4r_p.zip  sfg4e_p.zip 
Тексты тестовых примеров
tsfg4r_p.zip  tsfg4e_p.zip 

Функция:  SFG4R (модуль SFG4R_p)

Назначение

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

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

Подпрограмма - функция SFG4R вычисляет неполную гамма - функцию 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.

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

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

Параметры

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; значение функции полагается равным наибольшему представимому на машине числу.

Версии

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

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

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

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

 

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

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

Unit TSFG4R_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SFG4R_p;

function TSFG4R: String;

implementation

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

end.

Результаты:

        R       = 0.999468 
        IERR = 0