задачі моделювання дискретної випадкової величини із заданим розподілом. Вищенаведений алгоритм легко реалізується програмно, - наприклад так, як в нижчеподаній функції int discrete (float p []). br/>
unsigned int discrete (float p [])
{, r; intk = 0; = p [0]; r = rand (); (s
Функція приймає масив ймовірностей модельованої дискретної випадкової величини і видає індекс чергового її згенерованого значення. Слід врахувати, що оскільки індексація масивів у мові С починається з нуля, також з нуля індексуються значення розігруваної випадкової величини. Тобто функція видає значення в діапазоні від 0 до k-1 для випадкової величини, що приймає до значень. br/>
1.8 Моделювання випадкової величини, рівномірно розподіленої в інтервалі (а, b)
Ми використовуємо метод зворотної функції для моделювання рівномірного і показового розподілів. Вирішуємо рівняння
. br/>
Для цього, підставивши вираз для щільності рівномірного розподілу на місце р (х), спочатку обчислимо інтеграл у лівій частині рівняння,
,
а потім для обчислення значень і рівномірно розподіленим в інтервалі (а, b) випадкової величини?, через значення g випадкової величини? рівномірно розподіленим в інтервалі (0,1) просто висловимо змінну і через змінну g з рівняння
: u = g (b-a) + a.
Зауважимо, що отримана формула очевидна. Дійсно, для перерахунку рівномірно розподіленим в інтервалі (0,1) випадкової величини у випадкову величину, рівномірно розподілену в інтервалі (а, b), ми повинні спочатку "розтягнути" діапазон значень одиничної довжини в діапазон значень довжини (b-а) множачи значення g на (b-а), а потім перемістити отриманий результат з інтервалу (0,1) в інтервал (а, b), додавши до нього значення а. Запис отриманої формули у вигляді функції мови С:
float uniform (float a, float b) {return rand () * (ba) + a;}
дозволить нам програмно генерувати випадкові величини з рівномірним розподілом в будь-якому заданому кінцевому інтервалі значень (а, b).
.9 Моделювання випадкової величини з показовим розподілом
Так само як і в попередньому параграфі для моделювання рівномірного розподілу, вирішуємо задачу методом зворотної функції. Вихідне рівняння має вигляд
, де,
Спочатку обчислимо значення інтеграла в лівій частині рівняння:
В
Тепер висловимо і через g з отриманого рівняння. Отримаємо формулу. Оскільки випадкова величина (1 -?) Має таке ж розподіл, як і випадкова величина?, То для отримання значення і випадкової величини? з показовим розподілом за значенням g випадкової величини? з рівномірним розподілом в інтервалі (0,1) використовуємо більш просту формулу
.
Функція мови С для моделювання показового розподілу може бути реалізована, таким ...