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