Функция: SF20R (модуль SF20R_p)
Назначение
Вычисление неполных эллиптических интегралов второго рода.
Математическое описание
Функция SF20R производит вычисление интегралов вида:
T
E (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 SF20R(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.
|
Версии
SF20E -
|
вычисление неполных эллиптических интегралов
второго рода с расширенной (Extended) точностью.
|
Вызываемые подпрограммы
UTSF10 -
|
подпрограмма выдачи диагностических сообщений
при работе функции SF20R.
|
UTSF11 -
|
подпрограмма выдачи диагностических сообщений
при работе функции SF20E.
|
Замечания по использованию
|
Для функции SF20E параметры RK2, T
имеют тип Extended.
Значение функции SF20E при
IERR ≠ 0
полагается равным 1.7E308.
|
Пример использования
Unit tsf20r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF20R_p;
function tsf20r: String;
implementation
function tsf20r: String;
var
IERR :Integer;
RK2,T,Y :Real;
begin
Result := ''; { результат функции }
RK2 := 0.75;
T := 3.14159265/3;
Y := SF20R(RK2,T,IERR);
Result := Result + Format(' %20.16f %5d ',[Y,IERR]) + #$0D#$0A;
UtRes('tsf20r',Result); { вывод результатов в файл tsf20r.res }
exit;
end;
end.
Результаты:
Y = 0.918393294308, IERR = 0