|
Текст подпрограммы и версий 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