Текст подпрограммы и версий
sf17r_p.zip , sf17e_p.zip
Тексты тестовых примеров
tsf17r_p.zip , tsf17e_p.zip

Подпрограмма:  SF17R (модуль SF17R_p)

Назначение

Вычисление производных функций Кельвина нулевого порядка.

Математическое описание

SF17R вычисляет производные функций Кельвина первого рода (ber' (x) и bei' (x)) и второго рода (ker' (x) и kei' (x)) нулевого порядка.

J.F.Hart, E.W.Cheney, C.L.Lawson et al, Computer Approximations, Wiley, New York, 1968.

Использование

procedure SF17R(X :Real; var BERD :Real; var BEID :Real;
                var AKERD :Real; var AKEID :Real; var IERR :Integer);

Параметры

X - заданное значение аргумента x (тип: вещественный);
           BERD -
           BEID  
         AKERD  
         AKEID  
вычисленные значения функций ber' (x), bei' (x), ker' (x), kei' (x) соответственно (тип: вещественный);
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом:
IERR= 1 - когда значение аргумента меньше 0.; значения AKERD и AKEID полагаются равными 3.4E38;
IERR=66 - когда абсолютное значение аргумента больше 57.58; значения BERD и BEID полагаются равными 0.; в случае, когда аргумент неотрицателен, AKERD и AKEID также полагаются равными 0.; иначе AKERD и AKEID полагаются равными 3.4E38.

Версии

SF17E - вычисление производных функций Кельвина нулевого порядка.

Вызываемые подпрограммы

       SF16R -
       SF16E  
подпрограммы вычисления функций Кельвина нулевого порядка с обычной точностью и расширенной (Extended) точностью ( используются в SF17R и SF17E соответственно).
UTSF10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы SF17R.
UTSF11 - подпрограмма выдачи диагностических сообщений при работе подпрограммы SF17E.

Замечания по использованию

 

Для подпрограммы SF17E параметры X, BERD, BEID, AKERD и AKEID имеют тип Extended и абсолютное значение аргумента X не должно превосходить 2.04E03. При нарушении этого условия значение IERR полагается равным 66 и для отрицательного X значения AKERD и AKEID полагаются равными 1.7E308.

При X = 0, BERD = 0., BEID = 0., AKEID = 0., AKERD = - 3.4E38 (для SF17R) или - 1.7E308 (для SF17E).

Пример использования

Unit tsf17r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF17R_p;

function tsf17r: String;

implementation

function tsf17r: String;
var
I :Integer;
X,X1,X2,X3,X4 :Real;
begin
Result := '';  { результат функции }
X := 0.6;
SF17R (X,X1,X2,X3,X4,I);
Result := Result + Format(' %20.16f  %20.16f  %20.16f  %20.16f  %20.16f %10d ',
 [X,X1,X2,X3,X4,I]) + #$0D#$0A;
UtRes('tsf17r',Result);  { вывод результатов в файл tsf17r.res }
exit;
end;

end.


Результаты:

       X1    =  -0.134984812705, 
       X2    =    0.299797506834, 
       X3    =  -1.45653855074, 
       X4    =    0.348164425113, 
       I       =    0