Подпрограмма: SF23C (модуль SF23C_p)
Назначение
Вычисление значений гамма - функции и ee натурального
логарифма от комплексного аргумента.
Математическое описание
Подпрограмма SF23C вычисляет значение гамма-функции
∞
Г (Z) = ∫ t z - 1 e - t dt
0
и ее натурального логарифма для комплексных значений Z.
H.Kuki, Complex Gamma Function with Error Control,
Communications ACM, 15, 4, 1972.
Использование
procedure SF23C(ARGR :Real; ARGI :Real; var ANSR :Real;
var ANSI :Real; var EPS :Real; L :Integer;
var IERR :Integer);
Параметры
ARGR -
|
заданное значение действительной части
аpгумента Z (тип: вещественный);
|
ARGI -
|
заданное значение мнимой части аргумента Z
(тип: вещественный);
|
ANSR -
ANSI
|
вещественные переменные, значения которых в
pезультате работы подпрограммы полагаются
равными действительной и мнимой части
pезультата соответственно;
|
EPS -
|
вещественная переменная, определяющая на
входе абсолютную точность, с которой надо
найти результат; в результате работы
подпрограммы значение EPS полагается равным
действительно достигнутой точности;
|
L -
|
задает режим работы подпрограммы (тип: целый); при этом:
|
L = 0 -
|
если вычисляется натуральный логарифм
от гамма - функции;
|
L = 1 -
|
если вычисляется гамма - функция;
|
IERR -
|
целая переменая, служащая для сообщения об
ошибках, обнаруженных в ходе работы
подпрограммы; при этом:
|
IERR=65 -
|
когда мнимая часть аргумента pавна
нулю, а вещественная часть аргумента больше 21.4;
|
IERR=66 -
|
когда вычисляемая функция
превосходит максимально допустимое в машине число;
|
IERR=67 -
|
когда значение аргумента pавно
нулю или любому целому отрицательному числу;
|
|
при IERR ≠ 0
переменным ANSR и ANSI присваивается значение 3.4E38.
|
Версии
SF23Z -
|
вычисление значений гамма - функции и ее
натурального логарифма в комплексной области с
расширенной (Extended) точностью.
|
Вызываемые подпрограммы
UTSF10 -
|
подпрограмма печати диагностических сообщений
при работе подпрограмы SF23C.
|
UTSF11 -
|
подпрограмма печати диагностических сообщений
при работе подпрограммы SF23Z.
|
Замечания по использованию
|
Для подпрограммы SF23Z параметры ARGR, ARGI, ANSR, ANSI
имеют тип Extended и IERR полагается равным 65,
если значение ARGI pавно нулю и значение ARGR больше 408.909.
При IERR ≠ 0
значения ARGR и ARGI полагаются равными 1.7E308.
|
Пример использования
Unit tsf23c_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF23C_p;
function tsf23c: String;
implementation
function tsf23c: String;
var
L,IERR :Integer;
ARGR,ARGI,EPS,ANSR1,ANSI1 :Real;
begin
Result := ''; { результат функции }
ARGR := 6.7;
ARGI := 0.3;
EPS := 1.E-12;
L := 0;
SF23C(ARGR,ARGI,ANSR1,ANSI1,EPS,L,IERR);
Result := Result + Format(' %20.16f %20.16f %20.16f ',
[ANSR1,ANSI1,EPS]) + #$0D#$0A;
Result := Result + Format('%5d ',[IERR]) + #$0D#$0A;
UtRes('tsf23c',Result); { вывод результатов в файл tsf23c.res }
exit;
end;
end.
Результаты:
ANSR1 = 6.017194153159;
ANSI1 = 0.547804744098;
EPS = 3.2725E-11;
IERR = 0.