|
Текст подпрограммы и версий sfa5r_p.zip sfa5e_p.zip |
Тексты тестовых примеров tsfa5r_p.zip tsfa5e_p.zip |
Вычисление экспоненциального интеграла Bn (a).
Подпрограмма - функция SFA5R вычисляет значение интеграла
1
Bn(a) = ∫ t n e-at dt ,
-1
для n = 0, 1, 2,... и вещественного параметра a . Если | a | < 1, то используется разложение e- at в ряд Тейлора. В противном случае используется рекуррентная формула
Bn(a) = ( (-1)n ea - e-a + n Bn-1(a) ) / a , где B0(a) = ( ea - e-a) / a .
Абрамовиц М., Стиган И. Справочник по специальным функциям. М.: Наука, 1979.
function SFA5R(N :Integer; A :Real): Real;
Параметры
| N - | заданное значение параметра n (тип: целый); |
| A - | заданное значение параметра a (тип: вещественный). |
Версии
| SFA5E - | вычисление экспоненциального интеграла Bn (a) в режиме расширенной (Extended) точности; при этом параметр A должен иметь тип Extended. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
Unit tsfa5r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SFA5R_p;
function tsfa5r: String;
implementation
function tsfa5r: String;
var
N :Integer;
A,RES :Real;
begin
Result := ''; { результат функции }
N := 3;
A := 0.25;
RES := SFA5R(N,A);
Result := Result + Format('%15.8f ',[RES]) + #$0D#$0A;
UtRes('tsfa5r',Result); { вывод результатов в файл tsfa5r.res }
exit;
end;
end.
Результат: RES = -0.1007459