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