Текст подпрограммы и версий sf46r_p.zip |
Тексты тестовых примеров tsf46r_p.zip |
Вычисление функции χ2 - распределения вероятности с целыми степенями свободы.
SF46R вычисляет вероятность того, что случайная величина, подчиненная χ2 - распределению с целым параметром N (N ≥ 1), больше x (x ≥ 0).
I.D.Hill, M.C.Pike, Algorithm 299 - Chi - squared Integral (S15), CACM, 10 (4), 1967.
function SF46R(X :Real; N :Integer; var IERR :Integer): Real;
Параметры
X - | заданное значение аргумента x (тип: вещественный); |
N - |
заданное значение степени свободы χ2 - распределения (тип: целый); |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом: |
IERR=65 - | когда верхний предел интегрирования меньше 0; значение функции положено равным 3.4E38; |
IERR=66 - | когда заданная степень свободы меньше 1; значение функции положено равным 3.4E38. |
Версии: нет
Вызываемые подпрограммы
SF35R - | вычисление дополнительной функции ошибок (дополнительного интеграла вероятности) erfc x. |
UTSF12 - | подпрограмма выдачи диагностических сообщений в ходе работы функции SF46R. |
Замечания по использованию: нет
Unit tsf46r_p; interface uses SysUtils, Math, { Delphi } Lstruct, Lfunc, UtRes_p, SF46R_p; function tsf46r: String; implementation function tsf46r: String; var N,IERR :Integer; X,Y :Real; begin Result := ''; { результат функции } X := 9.2205; N := 2; Y := SF46R(X,N,IERR); Result := Result + Format(' %20.16f ',[Y]) + #$0D#$0A; Result := Result + Format('%5d ',[IERR]) + #$0D#$0A; UtRes('tsf46r',Result); { вывод результатов в файл tsf46r.res } exit; end; end. Результаты: Y = 0.00994933066 IERR = 0