Получить

advertisement
Генераторы случайных величин
Рахманова И.О.

Рассматриваем методы машинной имитации
вероятностных распределений случайной
величины
( 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
 Находим Х по формуле. Х распределено
по нормальному закону.
Download