Генераторы случайных величин Рахманова И.О. Рассматриваем методы машинной имитации вероятностных распределений случайной величины ( 0 r 1). Программы-генераторы вычисляют псевдослучайные числа, которые: r – – определяются детерминированными отношениями обладают статистическими свойствами случайных чисел, равномерно распределенных на интервале [0,1]. Требования к идеальному генератору Числовые последовательности должны быть: равномерно распределенными статистически независимыми, воспроизводимыми, неповторяющимися Генератор должен: работать быстро занимать минимальный объем машинной памяти. Рассматриваем реализации генераторов случайных величин с непрерывными и дискретными распределениями вероятностей. Непрерывные описываются функциями плотности вероятностей, Дискретные – вероятностями отдельных значений случайной величины. Описание случайной величины Описание случайной величины - функция распределения вероятностей F(x), F(x) при данном значении аргумента х есть вероятность того, что случайная реализация величины Х не превосходит х Описание случайной величины Для дискретной случайной величины функция F (х) – ступенчатая x F ( x) P( X x) f (t ) t 0 Описание случайной величины Для непрерывной случайной величины определяем производную f ( x) dF ( x) / dx Производная f(x) - функция плотности вероятностей. Функция распределения имеет вид F ( x) P( X x) f (t )dt 0 F ( x) 1 Дискретное распределение Функция распределения дискретной случайной величины X x F ( x) P( X x) f (t ) t 0 f(t) – частота или функция вероятностей, которая определяется для целых значений аргумента t по формуле f (t ) P ( X t ) t 0,1, 2... Дискретное распределение Дискретное распределение имеет вид: x1 , p1 x , p 2 2 x ... x n , p n n p i 1 i 1 Дискретное распределение Требуется построить датчик дискретной случайной величины Для этого интервал [0,1] делится на промежутки, длины которых равны вероятностям в порядке убывания. p1 0 1 p2 2 pm m 1 Дискретное распределение Алгоритм синтеза генератора: u RAND - псевдослучайная величина x xi , если u i Вероятность попадания в промежуток есть длина промежутка p i независимо от того, где на оси располагается этот промежуток. Значит, выдаваться эти значения будут с вероятностью p i . u i Дискретное распределение Пример. Получить случайную величину: 2 0, 7 4 1, x 7 1 2, 7 Дискретное распределение 0 p3 p2 p1 2/7 6/7 1 Дискретное распределение Генерируем псевдослучайную величину U 2 0, u [0, 7 ] 2 6 x 1, u [ , ] 7 7 2, u [ 6 ,1] 7 Дискретное распределение Закон Бернулли с параметром 1, p x 0,1 p p 0 1 p p 1 Дискретное распределение Алгоритм генерации псевдослучайной величины u: 1. u RAND - псевдослучайная величина 2. 1, u p x 0, u p Дискретное распределение Биноминальный закон распределения Производится m независимых испытаний. х – число испытаний, в которых событие происходит. х – случайная величина, которая подчиняется биноминальному закону распределения: m! x m x p m ( x) p (1 p) x!(m x)! Дискретное распределение Два способа построения генератора псевдослучайной величины, распределенной по биноминальному закону. Дискретное распределение 1. Присваиваем вычисляем x 0 1 … m x все возможные (m+1) значения и pm (x) pm (x) pm (0) pm (1) … pm (m) Дискретное распределение Теорема. Сумма m случайных величин, распределенных по закону Бернулли с параметром p, распределена по биноминальному закону с параметрами m и p. Алгоритм: Предполагается, что имеется датчик распределения псевдослучайной величины по закону Бернулли m раз обращаемся к датчику случайной величины закона Бернулли суммируем полученные реализации, в результате чего получаем 1 реализацию случайной величины, распределенную по биноминальному закону. 1. Непрерывное распределение Пусть х – случайная величина, распределенная на промежутке [a,b] с плотностью распределения f(x)>0. Теорема. Случайная величина u, удовлетворяющая условию F ( x) u , имеет плотность распределения f(x). F(х) 1 F(х+dx) F(х) a x x+dx b х Промежуток [x,x+dx] находится внутри промежутка [a,b]. Рассмотрим вероятность того, что точка X находится внутри промежутка [x,x+dx], т.е X [ x, x dx] p{x X x dx} p{F ( x) F ( X ) F ( x dx)} p{F ( x) F ( X ) F ( x dx)} p{F ( x) u F ( x dx)} Т.к. u равномерно распределена на промежутке [0,1], то эта вероятность зависит только от длины промежутка [F(x),F(x+dx)] и не зависит от расположения этого промежутка в интервале [0,1]. Следовательно, p{F ( x) u F ( x dx)} F ( x dx) F ( x) f ( x)dx при dx 1 Доказательство. Т.к. f(x)>0, то F(x) – строго возрастающая функция a F (a) f (t )dt 0 a b F (b) f (t )dt 1 a Экспоненциальное распределение x0 x F ( x) 1 e f ( x) e ( x x0 ) F ( x) u u 1 e 1 u e ( x x0 ) ( x x0 ) ( x x0 ) ln( 1 u ) ( x x0 ) x x0 ln( 1 u) x x0 1 ln( 1 u ) Экспоненциальное распределение Если u равномерно распределена на [0,1], то и (1-u) такая же случайная величина, распределенная на [0,1] x x0 1 ln( u ) (*) Экспоненциальное распределение Алгоритм работы генератора Получаем первое значение u RAND Применяем формулу (*), т.е. находим x как реализацию случайной величины GOTO 1 Нормальное распределение x 1 F ( x) 2 где e ( t ) 2 2 2 dt -математическое ожидание, 2 -дисперсия Нормальное распределение F ( x) u 1 u 2 e ( t ) 2 2 2 dt Нормальное распределение Теоремы теории вероятности: существует достаточно большое число независимых случайных величин, распределенных по 2 любому закону с параметрами и , которые можно считать распределенными по нормальному закону с параметрами 2 и . Нормальное распределение В качестве случайной величины будем рассматривать псевдослучайную величину. m 1 1 ' 2 u X i i i 2 12 i 1 Нормальное распределение ' Тогда для случайной величины X имеем нормальное распределение с m m параметрами N ( , ) 2 12 Требуется построить датчик случайной величины, распределенной по 2 нормальному закону с параметрами a, т.е. N (a, 2. ) Нормальное распределение Алгоритм построения датчика следует из m формулы m ui 2 i 1 X a m 12 Чтобы полученное с помощью датчика распределение было близко к нормальному, достаточно положить m 12 Нормальное распределение m X a ui 6 m 12 i 1 Алгоритм работы датчика: Двенадцать раз обращаемся к RAND Находим Х по формуле. Х распределено по нормальному закону.