Текст подпрограммы и версий sf77r_p.zip |
Тексты тестовых примеров tsf77r_p.zip |
Вычисление обратной функции треугольного распределения вероятностей.
SF77R вычисляет значение x такое, что F (x, G1, G2) = P, где F (x, G1, G2) - функция треугольного распределения вероятностей:
x F(x, G1, G2) = 2 ∫ ( ( 1/|G1 - G2| ) - ( |G1 + G2 - 2Z|/(G1 - G2)2 ) ) dz , min(G1, G2) min(G1, G2) ≤ x ≤ max(G1,G2)
Справочник по специальным функциям. Под ред. M.Абрамовица, И.Стеган. M.: "Hаука", 1979.
procedure SF77R(P :Real; G1 :Real; G2 :Real; var X :Real; var IERR :Integer);
Параметры
P - | заданное значение аргумента (тип: вещественный); |
G1, G2 - | параметры треугольного распределения (границы интервала, на котоpом сосредоточено распределение) (тип: вещественный); |
X - | вещественная переменная, содержащая вычисленное значение функции; |
IERR - | целая переменная, служащая для сообщения об ошибках; при этом: |
IERR=66 - | когда P < 0 либо P > 1; значение X полагается равным нулю. |
Версии: нет
Вызываемые подпрограммы
UTSF16 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы SF77R. |
Замечания по использованию
Границы интервала G1, G2 допустимо задавать в любом порядке (т.е. G2 можно задавать как больше, так и меньше G1). |
Unit tsf77r_p; interface uses SysUtils, Math, { Delphi } Lstruct, Lfunc, UtRes_p, SF77R_p; function tsf77r: String; implementation function tsf77r: String; var IER :Integer; FX :Real; begin Result := ''; { результат функции } SF77R(0.5,0.0,2.0,FX,IER); Result := Result + Format(' %16.7f %12d ',[FX,IER]) + #$0D#$0A; UtRes('tsf77r',Result); { вывод результатов в файл tsf77r.res } exit; end; end. Результаты: FX = 1.0 , IER = 0