Методы получения случайных чисел с заданным законом распределения вероятностей
Для получения обратной функции аналитически преобразуем формулу (6), положив в качестве независимой переменной F. Получим. Рассмотрим второй пример. Пусть функция плотности распределения случайной величины p (x) задана графически. Рисунок. 5. График обратной функции для экспоненциального закона распределения вероятности. Решая эти уравнения как квадратные относительно x, получим выражения для… Читать ещё >
Методы получения случайных чисел с заданным законом распределения вероятностей (реферат, курсовая, диплом, контрольная)
В качестве основы при построении генераторов случайных чисел с заданным законом распределения берется хорошо работающий генератор случайных чисел с равномерным законом распределения. На практике широко применяются два метода получения последовательности случайных чисел с заданным законом распределения: метод обратной функции и метод режекции. моделирование генератор случайный число.
Метод обратной функции
Пусть функция распределения вероятности F (x) задана аналитически. Метод обратной функции основан на взаимно — однозначном соответствии значений функции F (x) точкам случайной переменной, равномерно распределенной на отрезке [0, 1].
Например, для экспоненциального закона распределения вероятности.
(6).
График этой функции имеет следующий вид.
Рисунок 4. Функция распределения вероятности для экспоненциального закона.
Для получения обратной функции аналитически преобразуем формулу (6), положив в качестве независимой переменной F. Получим.
(7).
Независимая переменная F имеет смысл вероятности и изменяется на интервале 0? F < 1.
График обратной функции представлен на следующем рисунке.
Рисунок. 5. График обратной функции для экспоненциального закона распределения вероятности.
Метод обратной функции заключается в том, что в качестве независимой переменной F принимаются случайные числа с равномерным законом распределения на интервале [0, 1). Таким образом, для получения последовательности случайных чисел с экспоненциальным законом распределения необходимо взять генератор случайных чисел с равномерным законом распределения (п. 1.1 и 1.2) и преобразовать случайные числа по формуле (7).
Рассмотрим второй пример. Пусть функция плотности распределения случайной величины p (x) задана графически.
Рисунок 6. Функция плотности распределения случайной величины, заданная графически.
Необходимо построить генератор случайных чисел с этой функцией распределения. На первом этапе необходимо получить аналитическое описание заданной функции. Площадь S области, ограниченной функцией распределения плотности вероятности и осью x, равна 1. Это позволяет найти высоту h на графике на рисунке 6. Площадь двух треугольников равна.
(8).
Поэтому Найдем аналитическое описание функции на отрезке [1, 5]. Возьмем уравнение прямой, проходящей через две заданные точки в форме.
(9).
и найдем значения коэффициентов a и b. Для этого подставим в это уравнения координаты двух базовых точек (x = 1, y = ј) (x = 5, y = 0). Получим два алгебраических уравнения.
Из этих уравнений находим a = - 1/16, b = 5/16. Поэтому функция плотности вероятности на отрезке [1, 5] имеет следующий вид Аналогично для отрезка [5, 9] получим (10).
Для создания генератора случайных чисел по методу обратной функции необходимо найти функцию распределения вероятности F (x).
Подставим формулы (10) в интеграл (1) и проведем вычисления.
(11).
Решая эти уравнения как квадратные относительно x, получим выражения для обратных функций.
Знаки в этих формулах выбираются из граничных условий. Подставляя в первую формулу F = 0, получим, что необходим знак минус. Подставляя во вторую формулу F =0.5, получим, что необходим знак плюс. Окончательно получим.
(13).
Для получения последовательности случайных чисел с законом распределения, представленным на рисунке 6, необходимо взять генератор случайных чисел с равномерным законом распределения (п. 1.1 и 1.2) и преобразовать случайные числа по формулам (13).
Программа, реализующая этот генератор случайных чисел, имеет следующий вид (функция rrsch — генератор равномерно распределенных случайных чисел в интервале [0,1)).
function generator: real;
var f: real;
begin.
f := rrsch;
if f<0.5 then
generator := 5−4*sqrt (1−2*f).
else
generator := 5+4*sqrt (2f-1);
end;