|
Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://num-anal.srcc.msu.su/lib_na/cat/sf_htm_p/sf60r_p.htm
Дата изменения: Fri Nov 6 13:44:27 2015 Дата индексирования: Sun Apr 10 02:22:55 2016 Кодировка: Windows-1251 |
|
Текст подпрограммы и версий sf60r_p.zip , sf61r_p.zip |
Тексты тестовых примеров tsf60r_p.zip , tsf61r_p.zip |
Вычисление функции распределения вероятностей Пуассона.
SF60R вычисляет вероятности того, что целочисленная случайная величина, распределенная по закону Пуассона с параметром RLАМ, примет значение I
P {ξ = I} = T(I + 1) = (RLAM) I exp (- RLAM) / I ! , I = 0, 1, ..., K
а также вероятность P = P {ξ ≤ K} , т.е.
K
P = ∑ T(I + 1)
I=0
M.Abramowitz, I.A.Stegun, Handbook of Mathematical Functions, New York, Dover Publications, Inc., 1965.
procedure SF60R(K :Integer; RLAM :Real; var T :Array of Real;
var P :Real);
Параметры
| K - | максимальное значение I, для которого вычисляется вероятность P {ξ = I} (тип: целый); |
| RLAM - | заданный параметр распределения вероятностей Пуассона (тип: вещественный); |
| T - | вещественный вектоp длины K + 1, содержащий вычисленные значения вероятностей P {ξ = I} , 0 ≤ I ≤ K; |
| P - | вещественная переменная, содержащая вычисленное значение вероятности P {ξ ≤ K}. |
Версии
| SF61R - | вычисление функции распределения вероятностей Пуассона P {ξ ≤ K} (см. замечания по использованию). |
Вызываемые подпрограммы: нет
Замечания по использованию
|
Если P {ξ = I} меньше наименьшего представимого на данной ЭВМ вещественного числа , то программа полагает T(I) = 0. Если RLAM ≤ 0 , то P {ξ ≤ K} = 1. , T(1) = 1. , I(J) = 0, 2 ≤ J ≤ K. Подпрограмма SF61R имеет следующий список формальных параметровprocedure SF61R(K :Integer; RLAM :Real; var P :Real);так как производится вычисление только вероятности P {ξ ≤ K}. Смысл остальных параметров остается прежним. |
Unit TSF60R_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, SF60R_p;
function TSF60R: String;
implementation
function TSF60R: String;
var
K,_i :Integer;
RLAM,P :Real;
T :Array [0..1] of Real;
begin
Result := ''; { результат функции }
K := 1;
RLАМ := 0.6;
SF60R(K,RLAM,T,P);
Result := Result + #$0D#$0A;
for _i:=0 to 1 do
begin
Result := Result + Format('%20.16f ',[T[_i]]);
if ( ((_i+1) mod 2)=0 )
then Result := Result + #$0D#$0A;
end;
Result := Result + #$0D#$0A;
Result := Result + Format(' %10d %20.16f %20.16f ',
[K,RLAM,P]) + #$0D#$0A;
UtRes('TSF60R',Result); { вывод результатов в файл TSF60R.res }
exit;
end;
end.
Результаты:
T(1) = 0.54881163609
T(2) = 0.32928698166
P = 0.87809861775