Текст подпрограммы и версий
sf84r_p.zip , sf84e_p.zip
Тексты тестовых примеров
tsf84r_p.zip , tsf84e_p.zip

Функция:  SF84R (модуль SF84R_p)

Назначение

Вычисление полного эллиптического интеграла  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