Текст подпрограммы и версий sf43r_p.zip , sf43e_p.zip |
Тексты тестовых примеров tsf43r_p.zip , tsf43e_p.zip |
Вычисление функции 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