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