Текст подпрограммы и версий
sf57r_p.zip , sf57e_p.zip
Тексты тестовых примеров
tsf57r_p.zip , tsf57e_p.zip

Подпрограмма:  SF57R (модуль SF57R_p)

Назначение

Вычисление функции гипергеометрического распределения вероятностей H (N, L ; N1).

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

SF57R вычисляет вероятность того, что случайная величина, подчиненная закону гипергеометрического распределения вероятностей, меньше или pавна  k.

Другими словами, SF57R вычисляет вероятность того, что некоторая случайная бесповторная выборка объема  L содержит точно или меньше  k элементов класса 1, если эта выборка производится из генеральной совокупности N элементов, среди которых N1 элементов принадлежит классу 1:

     P (x = k) = CkN1 CL-kN-N1 /  CLN ,


     P (x ≤ k) = P (x = k) + P (x = k - 1) + ... + P (x = 0) .

Здесь  N ≥ L ≥ 1 ,   N ≥ N1 = q N ≥ 0 ,   N ≥ k ≥ 0 . 

M.Abramowitz, I.A.Stegun, Handbook of Mathematical unctions, New York, Dover Publications, Inc., 1965.

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

procedure SF57R(K :Integer; N :Integer; L :Integer;
                N1 :Integer; var P :Real; var Q :Real;
                var IERR :Integer);

Параметры

K - заданное значение аргумента  k (тип: целый);
N - заданное число элементов генеральной совокупности (тип: целый);
L - заданный объем случайной бесповторной выборки (тип целый);
N1 - заданное число элементов в генеральной совокупности, принадлежащих интересующему классу (тип: целый);
P - вещественная переменная, значение которой в pезультате работы подпрограммы полагается равной вероятности того, что случайная величина pавна K;
Q - вещественная переменная, значение которой в pезультате работы подпрограммы полагается равной вероятности того, что случайная величина меньше или pавна K;
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом:
IERR=65 - когда заданное значение числа элементов генеральной совокупности меньше 1;
IERR=66 - когда значение параметра K не принадлежит отрезку (0, L);
IERR=67 - когда заданный объем случайной выборки не принадлежит отрезку (1, N);
IERR=68 - когда значение параметра N1 не принадлежит отрезку (0, N).

Версии

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

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

UTSF14 - подпрограмма выдачи диагностических сообщений при работе подпрограммы SF57R.
UTSF15 - подпрограмма выдачи диагностических сообщений при работе подпрограммы SF57E.

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

  B SF57E параметры P и Q должны иметь тип Extended.

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

Unit tsf57r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF57R_p;

function tsf57r: String;

implementation

function tsf57r: String;
var
K,N,L,N1,IERR :Integer;
P,Q :Real;
begin
Result := '';  { результат функции }
K := 2;
N := 32;
L := 2;
N1 := 4;
SF57R(K,N,L,N1,P,Q,IERR);
Result := Result + Format(' %20.16f  %20.16f  %10d  %10d  %10d  %10d %10d ',
 [P,Q,IERR,K,N,L,N1]) + #$0D#$0A;
UtRes('tsf57r',Result);  { вывод результатов в файл tsf57r.res }
exit;
end;

end.


Результаты:

       P  =  0.012096774193
       Q  =  1.
       IERR  =  0