Текст подпрограммы и версий
sf43r_p.zip , sf43e_p.zip
Тексты тестовых примеров
tsf43r_p.zip , tsf43e_p.zip

Функция:  SF43R (модуль SF43R_p)

Назначение

Вычисление функции  F - распределения вероятностей (распределение Снедекора) с вещественными степенями свободы.

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

SF43R вычисляет вероятность того, что случайная величина, подчиненная закону  F - распределения вероятностей (распределению Снедекора) с вещественными степенями свободы, меньше или равна значению  f .

M.Abramowitz, I.A.Stegun, Handbook of Mathematical Functions, New York, Dover Publications, INC., 1965.

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

function SF43R(F :Real; AN1 :Real; AN2 :Real;
                var IERR :Integer): Real;

Параметры

F - заданное значение аргумента f (тип: вещественный);
         AN1 -
         AN2  
заданные значения степеней свободы (тип: вещественный);
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом:
IERR=65 - когда одна или обе степени свободы меньше или равны 0; значения функции полагаются равными 3.4E38;
IERR=66 - когда заданный предел интегрирования меньше 0; значение функции полагается равным 3.4E38.

Версии

SF43E - вычисление функции  F - распределения вероятностей (распределение Снедекора) с вещественными степенями свободы с расширенной (Extended) точностью.

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

SF36R - вычисление бета - функции распределения вероятностей Ix (p, q) (используется в SF43R).
SF36E - вычисление бета - функции распределения вероятностей Ix (p, q) с расширенной (Extended) точностью (используется в SF43E).
UTSF12 - подпрограмма выдачи диагностических сообщений при работе функции SF43R.
UTSF13 - подпрограмма выдачи диагностических сообщений при работе функции SF43E.

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

  B SF43E параметры F, AN1 и AN2 должны иметь тип Extended и при IERR ≠ 0 значение SF43E полагается равным 1.7E308.

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

Unit tsf43r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF43R_p;

function tsf43r: String;

implementation

function tsf43r: String;
var
IERR :Integer;
F,AN1,AN2,Y :Real;
begin
Result := '';  { результат функции }
F := 4.0/9.0;
AN1 := 12.0;
AN2 := 8.0;
Y := SF43R(F,AN1,AN2,IERR);
Result := Result + Format(' %20.16f %3d ',[Y,IERR]) + #$0D#$0A;
UtRes('tsf43r',Result);  { вывод результатов в файл tsf43r.res }
exit;
end;

end.


Результаты:

       Y  =  0.099352575999
       IERR = 0