Текст подпрограммы и версий
sf19r_p.zip , sf19e_p.zip
Тексты тестовых примеров
tsf19r_p.zip , tsf19e_p.zip

Функция:  SF19R (модуль SF19R_p)

Назначение

Вычисление неполных эллиптических интегралов первого рода.

Математическое описание

Функция SF19R производит вычисление интегралов вида:

                     T
   F (K, T) = ∫ (1 - K2 sin2 t) -1/2 dt      для  0 ≤ K2 ≤ 1    и    0 ≤ T ≤ π/2
                    0 

J.F.Hart, E.W.Cheney, C.L.Lawson et al, Computer Approximations, Wiley, New York, 1968.

Использование

function SF19R(RK2 :Real; T :Real; var IERR :Integer): Real;

Параметры

RK2, T - заданные значения аргументов K2 и T (тип: вещественный);
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом:
IERR=65 - когда значение RK2 меньше 0. или больше 1.; значение функции полагается равным 3.4E38;
IERR=66 - когда значение T меньше 0. или больше π / 2; значение функции полагается равным 3.4E38;
IERR=67 - когда RK2 = 1 и T = π / 2 (значение подинтегральной функции pавно 0); значение функции полагается равным 3.4E38.

Версии

SF19E - вычисление неполных эллиптических интегралов первого рода с расширенной (Extended) точностью.

Вызываемые подпрограммы

UTSF10 - подпрограмма выдачи диагностических сообщений при работе функции SF19R.
UTSF11 - подпрограмма выдачи диагностических сообщений при работе функции SF19E.

Замечания по использованию

  Для функции SF19E параметры RK2 и T имеют тип Extended. Значение SF19E при IERR ≠ 0 полагается pавным 1.7E308.

Пример использования

Unit tsf19r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF19R_p;

function tsf19r: String;

implementation

function tsf19r: String;
var
IERR :Integer;
RK2,T,Y :Real;
begin
Result := '';  { результат функции }
RK2 := 0.5;
T := 3.14159265/4;
Y := SF19R(RK2,T,IERR);
Result := Result + Format(' %20.16f  %5d ',[Y,IERR]) + #$0D#$0A;
UtRes('tsf19r',Result);  { вывод результатов в файл tsf19r.res }
exit;
end;

end.


Результаты:

       Y  =  0.826017876245,    IERR  =  0