|
Текст подпрограммы и версий sf58r_p.zip |
Тексты тестовых примеров tsf58r_p.zip |
Вычисление предельного распределения статистик Колмогорова - Смирнова.
SF58R вычисляет значения P1 (x) и P2 (x) по следующим формулам:
P1(x) = 0 , x ≤ 0
(1)
P1(x) = 1 - exp( -2x2) , x > 0
P2(x) = 0 , x ≤ 0
(2) ∞
P2(x) = 1 + 2 ∑ (- 1) k exp(- k2x2) , x > 0
k=1
procedure SF58R(X :Real; var P1 :Real; var P2 :Real);
Параметры
| X - | заданное значение аргумента x (тип: вещественный); |
| P1, P2 - | вещественные переменные, содержащие вычисленные значения функций по формулам (1) и (2) соответственно. |
Версии: нет
Вызываемые подпрограммы: нет
Замечания по использованию
| Для 0 ≤ x ≤ 0.2 P2 ≡ 0 ; для x ≥ 4.0 P1 = P2 = 1. |
Unit tsf58r_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF58R_p;
function tsf58r: String;
implementation
function tsf58r: String;
var
X,P1,P2 :Real;
begin
Result := ''; { результат функции }
X := 0.4;
SF58R(X,P1,P2);
Result := Result + Format('%s',[' P1' + #$0D#$0A]);
Result := Result + Format('%20.16f ',[P1]) + #$0D#$0A;
Result := Result + Format('%s',[' P2' + #$0D#$0A]);
Result := Result + Format('%20.16f ',[P2]) + #$0D#$0A;
UtRes('tsf58r',Result); { вывод результатов в файл tsf58r.res }
exit;
end;
end.
Результаты:
P1 = 0.27385096292
P2 = 0.28076732217*10 - 2