Текст подпрограммы и версий
sf23c_p.zip , sf23z_p.zip
Тексты тестовых примеров
tsf23c_p.zip , tsf23z_p.zip

Подпрограмма:  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.