|
Текст подпрограммы и версий sfg4r_p.zip sfg4e_p.zip |
Тексты тестовых примеров tsfg4r_p.zip tsfg4e_p.zip |
Вычисление неполной гамма - функции 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