Моделирование процессов в физике частиц (7 сем) / Model_B
.pdf
Генерация случайных чисел
●Физические датчики
●Таблицы случайных чисел
●Программные датчики (псевдо)случайных чисел
Псевдослучайные числа
●Рекурентная формула
●Доступ к определяющему значению „seed“
●Возможность повторения ряда с заданного значения
●Неизбежность повторения
●Период и отрезок апериодичности
●Тщательно отработанный алгоритм CLHEP
●В дальнейшем функция double gamma();
Общий метод моделирования дискретной случайной величины
●Набор значений xi (конечный или бесконечный)
●Каждому значению соответствует вероятность Pi
●Построить отображение отрезка [0, 1] в пространство событий
●Каждому i соответствует своя область Bi внутри [0, 1]
●i Pi=∫dx
Bi
Общий метод моделирования дискретной случайной величины
●Вероятность попадания γ в область Bi равна длине этой области
●Разбить [0, 1] на отрезки длиной в соответствующую вероятность.
● |
|
P0 |
|
P1 |
|
P2 |
|
P3 |
|
|
|
Pn |
|
|
|
|
|
|
|
|
|||||||
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
||
● |
Получить γ и определить номер отрезка |
|
|
|
|||||||||
Алгоритм
●Получить и запомнить γ
●Из полученного значения γ последовательно вычитать
вероятности до получения отрицательного результата
●Номер вероятности, вычитание которой привело к отрицательному результату, равен номеру значения дискретной случайной величины
Пример программы
double x[] = { , , , , }; // значения double P[] = { , , , , +1}; //
double gam, ksi; // базовая сл. вел. и ответ int k; // номер значения
k = 0; gam = gamma() - P[0]; // начало
while (gam >= 0) { k = k+1; gam = gam – P[k];} // цикл ksi = x[k]; // ответ
Пример другой программы
double r(int k); // Pk+1 = Pk r(k) double gam, P
int k;
k = 0; P = P0; gam = gamma() - P;
while(gam >= 0){P = P*r(k); k = k+1; gam = gam – P;}
Некоторые распределения
|
Биномиальное |
r (k) = n−k P |
|
Pk = P(ξ = k) = Cnk Pk (1 − P)n−k |
|||
|
|
|
k +1 1−P |
|
Пуассон |
|
|
Pk = |
λk e−λ |
r(k ) = |
λ |
|
k ! |
|
k +1 |
Геометрическое
Pk = P(1 − P)k |
r (k) = 1 − P |
Оптимизация метода
n
Число шагов(циклов) 1 + ∑ kPk
k=0
Сортировать вероятности по убыванию
Специальные методы
ξ = nγ , |
P(ξ = k ) = |
1 |
k = 0 |
, 1 , 2 , ... , n−1 |
||
|
|
|
n |
|
|
|
ξ = |
ln(γ ) |
, P(ξ = k) = P(k |
ln (γ ) |
<k +1)= |
||
|
ln (1−p) |
|
|
|
ln (1−p) |
|
P(−k ln (1− p) −ln (γ )<−(k +1)ln (1− p)) = P((1−p)k +1 γ <(1−p)k )= (1− p)k−(1− p)k +1 = p(1−p)k
n |
|
ξ = min n : ∏γ k < e−λ |
Пуассон |
k=0 |
|
