Текст подпрограммы и версий sf62r_p.zip |
Тексты тестовых примеров tsf62r_p.zip |
Вычисление экспоненциального интеграла En(x).
SF62R производит вычисление экспоненциальных интегралов
∞ En(x) = ∫ t -n e -xt dt , 1
для n = 0, 1, 2, ... и x > 0, а также выражения вида e x En(x).
I.A.Stegun and R.Zucker, Automatic Computing Methods for Special Functions. The Exponential Integral En (x), Journal of Research of the National Bureau of Standards - B. Mathematical Sciences, Vol. 78 B, No. 4, October - December 1974.
procedure SF62R(N :Integer; X :Real; var ENX :Real; var EXPENX :Real);
Параметры
N - | заданное значение параметра n (тип: целый); |
X - | заданное значение аргумента x (тип: вещественный); |
ENX - | вещественная переменная, значение которой в pезультате работы подпрограммы полагается pавной En (x); |
EXPENX - | вещественная переменная, значение которой в pезультате работы подпрограммы полагается pавной e x En (x). |
Версии: нет
Вызываемые подпрограммы: нет
Замечания по использованию
Подпрограмма проводит вычисления для абсолютных значений N и X. Подпрограмма выделяет несколько специальных случаев:EN(0) = 9*1018, если N ≤ 1; EN(0) = 1 / (N - 1), если N > 1; E0(x) = e - x / x, если x > 9*10 - 18; E0(x) = 9*10 18, если x ≤ 9*10 - 18 . |
Unit tsf62r_p; interface uses SysUtils, Math, { Delphi } Lstruct, Lfunc, UtRes_p, SF62R_p; function tsf62r: String; implementation function tsf62r: String; var N :Integer; X,ENX,EXPENX :Real; begin Result := ''; { результат функции } N := 1; X := 0.1; SF62R(N,X,ENX,EXPENX); Result := Result + Format(' %20.16f %20.16f ',[ENX,EXPENX]) + #$0D#$0A; UtRes('tsf62r',Result); { вывод результатов в файл tsf62r.res } exit; end; end. Результаты: ENX = 1.822923958416 EXPENX = 2.014642544706