Функция: SF37R (модуль SF37R_p)
Назначение
Вычисление неполной бета - функции
Bx (a, b) вещественных аргументов.
Математическое описание
SF37R вычисляет неполную бета - функцию вещественных
аргументов a и b (a > 0, b > 0)
x
Bx (a, b) = ∫ t a - 1 (1 - t) b - 1 dt (0 ≤ x ≤ 1)
0
M.Abramowitz, I.A.Stegun, Handbook of Mathematical
Functions, New York, Dover Publications, INC., 1965.
Использование
function SF37R(X :Real; A :Real; B :Real; var IERR :Integer): Real;
Параметры
X -
|
заданное значение верхнего предела
интегрирования x (тип: вещественный);
|
A, B -
|
заданные значения аргументов A и B (тип: вещественный);
|
IERR -
|
целая переменная, служащая для сообщения об
ошибках, обнаруженных в ходе работы функции; при этом:
|
IERR=65 -
|
когда значение аргумента X не
придадлежит отрезку (0, 1); значение функции
полагается равным 3.4E38;
|
IERR=66 -
|
когда один или оба параметра неполной
бета - функции меньше либо равны 0;
значение функции полагается равным 3.4E38.
|
Версии
SF37E -
|
вычисление неполной бета - функции
Bx (A, B)
вещественных аргументов с расширенной (Extended) точностью.
|
Вызываемые подпрограммы
SF22R -
|
подпрограмма вычисления значений бета - функции.
|
SF36R -
|
подпрограмма вычисления бета - функции
распределения вероятностей Ix (A, B).
|
SF22E -
|
подпрограмма вычисления значений бета - функции
с расширенной (Extended) точностью.
|
SF36E -
|
подпрограмма вычисления бета - функции
распределения вероятностей Ix (A, B)
с расширенной (Extended) точностью.
|
UTSF12 -
|
подпрограмма выдачи диагностических сообщений
при работе функциии SF37R.
|
UTSF13 -
|
подпрограмма выдачи диагностических сообщений
при работе функции SF37E.
|
Замечания по использованию
|
Для функции SF37E параметры X, A и B должны иметь тип
Extended и при
IERR ≠ 0 значение SF37E
полагается равным 1.7E308.
|
Пример использования
Unit tsf37r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF37R_p;
function tsf37r: String;
implementation
function tsf37r: String;
var
IERR :Integer;
X,A,B,Y :Real;
begin
Result := ''; { результат функции }
X := 1.0;
A := 2.0;
B := 3.0;
Y := SF37R(X,A,B,IERR);
Result := Result + Format(' %20.16f ',[Y]) + #$0D#$0A;
Result := Result + Format(' %5d ',[IERR]) + #$0D#$0A;
UtRes('tsf37r',Result); { вывод результатов в файл tsf37r.res }
exit;
end;
end.
Результаты:
Y = 0.0833333333,
IERR = 0