|
Текст подпрограммы и версий sf84r_p.zip , sf84e_p.zip |
Тексты тестовых примеров tsf84r_p.zip , tsf84e_p.zip |
Вычисление полного эллиптического интеграла cel (kc, p, a, b) второго рода общего вида.
Подпрограмма - функция SF84R вычисляет полный эллиптический интеграл второго рода общего вида:
∞
cel( kc, p, a, b) = ∫ [(a + b t 2) dt] / [ (1 + p t 2) ( (1 + t 2)(1 + kc2 t 2) ) 1/2 ] ,
0
где kc, p, a, b - вещественные числа.
Справочник по специальным функциям. Под ред. Абрамовица М. и Стиган И., Изд - во "Наука", 1979.
function SF84R(RKC :Real; var P :Real; var A :Real;
var B :Real): Real;
Параметры
|
RKC, P - A, B | заданные значения аргументов kc, p, a и b соответственно (тип: вещественный). |
Версии
| SF84E - | вычисление полного эллиптического интеграла cel (kc, p, a, b) второго рода общего вида в режиме расширенной (Extended) точности; при этом все параметры функции SF84E должны иметь тип Extended, а сама функция тоже должна быть описана как Extended. |
Вызываемые подпрограммы: нет
Замечания по использованию
|
Если RKC = 0 и B = 0, то значение функции полагается равным 1. Если RKC = 0 и B ≠ 0, то значение функции полагается равным наибольшему представимому на используемой машине числу (это означает, что при данном условии интеграл расходится). |
Unit TSF84R_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF84R_p;
function TSF84R: String;
implementation
function TSF84R: String;
var
RKC,P,A,B,R :Real;
begin
Result := ''; { результат функции }
RКС := 0.5;
P := 1.0;
A := 1.0;
B := 1.0;
R := SF84R(RKC,P,A,B);
Result := Result + Format(' %16.7f ',[R]) + #$0D#$0A;
UtRes('TSF84R',Result); { вывод результатов в файл TSF84R.res }
exit;
end;
end.
Результат: R = 2.15652