|
Текст подпрограммы и версий sf83r_p.zip , sf83e_p.zip |
Тексты тестовых примеров tsf83r_p.zip , tsf83e_p.zip |
Вычисление неполного эллиптического интеграла el2 (x, kc, a, b) второго рода общего вида.
Подпрограмма - функция SF83R вычисляет неполный эллиптический интеграл второго рода общего вида:
x
el2(x, kc, a, b) = ∫ [(a + b t 2) dt] / [ (1 + t 2) ( (1 + t 2)(1 + kc2 t 2) ) 1/2 ] ,
0
где x ≥ 0, kc, a, b - вещественные числа .
Справочник по специальным функциям. Под ред. Абрамовица М. и Стиган И., Изд - во "Наука", 1979.
function SF83R(X :Real; RKC :Real; var A :Real; var B :Real): Real;
Параметры
|
X, RKC - A, B | заданные значения аргументов x, kc, a и b соответственно (тип: вещественный). |
Версии
| SF83E - | вычисление неполного эллиптического интеграла el2 (x, kc, a, b) второго рода общего вида в режиме расширенной (Extended) точности; при этом все параметры функции SF83E должны иметь тип Extended, а сама функция тоже должна быть описана как Extended. |
Вызываемые подпрограммы: нет
Замечания по использованию: нет
Unit TSF83R_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF83R_p;
function TSF83R: String;
implementation
function TSF83R: String;
var
X,RKC2,RKC,A,R :Real;
begin
Result := ''; { результат функции }
X := 3.14159265/3.0;
RKC2 := 0.25;
RКС := Sqrt(RKC2);
A := 1.0;
R := SF83R(X,RKC,A,RKC2);
Result := Result + Format(' %16.7f %16.7f ',[RKC,R]) + #$0D#$0A;
UtRes('TSF83R',Result); { вывод результатов в файл TSF83R.res }
exit;
end;
end.
Результат: R = 0.746321