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