Текст подпрограммы и версий sf17r_p.zip , sf17e_p.zip |
Тексты тестовых примеров tsf17r_p.zip , tsf17e_p.zip |
Вычисление производных функций Кельвина нулевого порядка.
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