Текст подпрограммы и версий 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