Текст подпрограммы и версий 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