6Simulation systems Лекция 20 Случайные числа (1014328), страница 3
Текст из файла (страница 3)
1. Выбирается очередное случайное число i.
2. Проверкой неравенства i Р устанавливается принадлежность этого числа отрезку [0,P].
Если число удовлетворяет этому неравенству, говорят, что событие А наступило, в противном случае - не наступило.
Аналогично выглядит процедура моделирования на ЭВМ дискретной случайной величины с заданным законом распределения. Пусть случайная величина принимает возможные значения Z1, Z2,..., Zn c вероятностью Р1, Р2,..., Рn. Очевидно, что:
значение Z1 будет принято случайной величиной в том случае, когда выполняется неравенство i Рi (наступает событие, состоящее в том, что =Z1);
значение Z2 - когда Р1< i Р1+Р2 (наступает событие, состоящее в том, что =Z2);
значение Z3 - когда Р1+Р2 i Р1+Р2+Р3 (наступает событие, состоящее в том, что =Z3) и т.д. Другими словами, пусть
Тогда, если
наступает событие, состоящее в том, что =Zm. Процедура реализации этого способа моделирования дискретной случайной величины на ЭВМ сводится к следующему.
-
Вырабатываем случайные величины i с равномерным распределением в интервале (0,1).
-
Очередное i сравниваем с
; если неравенство выполнено, считаем, что =Z1; в противном случае переходим к
.
-
Сравниваем i с
, если неравенство выполнено, считаем, что =Z2, в противном случае переходим к
и т.д. до тех пор, пока одно из неравенств окажется выполненным.
Эта процедура всегда рано или поздно приводит к цели, так как событие, состоящее в том, что случайная величина принимает какое-нибудь из своих значений Zi является достоверным.
Перейдем к рассмотрению метода моделирования непрерывных случайных величин. Пусть по-прежнему в нашем распоряжении имеются случайные числа i с равномерным распределением в интервале (0,1).
Требуется получить случайные числа Yi, являющиеся возможными значениями случайной величины с законом распределения, заданным функцией плотности f(Y). Можно показать, что случайная величина Y, являющаяся решением уравнения
(1)
имеет распределение f(Y), если случайная величина распределена равномерно в интервале (0,1). Эти соотношением можно воспользоваться для получения случайных чисел с заданным законом распределения. Методику преобразования случайных чисел поясним на примерах.
Пример 1. Предположим, что нам необходимо получить случайные числа с показательным распределением.
f(Y)= (Y>0)
Используем соотношение (1), тогда:
Этот интеграл берется в конечном виде, поэтому
Решим последнее уравнение относительно
Yi
Полученное соотношение полностью решает поставленную задачу.
Заметим, что случайное число имеет также равномерное распределение в интервале (0,1). Поэтому вместо полученного соотношения обычно пользуются формулой
Yi
Подставляя в правую часть последовательно случайные числа i , мы получим последовательность чисел Yi с показательным законом распределения.
Пример 2. Случайная величина имеет функцию плотности
f(Y)= (
) (2)
Располагая случайными числами i, имеющими равномерное распределение в интервале (0,1), требуется получить случайные числа с законом распределения, который выражается функцией плотности (2).
Используем интеграл (1):
После его вычисления:
Далее: Yi=
Применяя те же рассуждения относительно 1- получим:
Можно привести и другие примеры использования соотношения (1).
Однако приходится признать, что практически изложенная методика имеет весьма ограниченную сферу применения. Это объясняется следующими обстоятельствами.
Во-первых, для многих законов распределения, встречающихся в практических задачах, интеграл в конечном виде не берется. Например, для нормального распределения (закон Гаусса)
f(Y)=
получаем интеграл, который можно вычислить только численными методами. Это приводит к недопустимо большим затратам машинных операций на преобразование случайных чисел.
Во-вторых, даже для тех случаев, когда соответствующие интегралы берутся в конечном виде, получаются формулы, весьма неудобные для расчета на ЭВМ. Причина в том, что вычисление логарифмов, корней и других элементарных функций на ЭВМ выполняется при помощи стандартных программ, состоящих из многих исходных операций машины (сложение, умножение и т.д.). Учитывая, что применение метода статистических испытаний требует большого количества случайных чисел, естественно, возникает опасность существенных затрат машинного времени. Поэтому на практике обычно пользуются приближенными методами преобразования случайных чисел, обеспечивающими достаточную экономию операций ЭВМ.
Способы получения случайных чисел с заданным законом распределения, основанные на использовании предельных теорем вероятностей.
Пример. Рассмотрим способ получения случайных чисел с нормальным законом распределения, весьма часто встречающийся при решении практических задач.
В силу центральной предельной теоремы теории вероятностей сумма большого числа одинаково распределенных независимых случайных величин при весьма общих условиях имеет приближенно нормальное распределение.
Пусть 1, 2,... n случайные величины, имеющие равномерное распределение в интервале (0,1). Тогда
1+2+...+n
оказывается случайной величиной с распределением, близким к нормальному, при больших n. Как известно, математическое ожидание (среднее значение) случайной величины i : ,
а среднее квадратичное отклонение: .
Поэтому математическое ожидание: ,
а среднее квадратичное отклонение:
Процедура формирования случайных чисел с нормальным распределением, имеющим М=0, сводится к следующему:
-
выбирается n последовательных случайных чисел i, i+1,..., i+n
-
вычисляется сумма =i+ i+1+... +i+n
-
определяется случайное число
,
имеющее приближенно нормальное распределение со средним значением, равным 0 и дисперсией 1. Как показывает опыт, для решения практических задач можно пользоваться n = 5 6.
Рассмотрим числовой пример.
Получим (например, с помощью таблиц) шесть равномерно распределенных случайных чисел:
0,63112; 0,17716; 0,34499; 0,87574; 0,27905; 0,22282.
Их сумма =2,53088, затем:
*=-0,66
Нормальные случайные числа могут быть получены также одним из методов отбраковки, приписываемых Нейману. Для этого берутся два равномерных случайных числа 1 и
2. Если удовлетворяется неравенство
,
то нормальное случайное число определим формулой:
, где b - постоянная.
Еще способ.
Если два равномерно распределенных случайных числа и
удовлетворяют неравенству:
,
то нормальное число вычисляется с помощью соотношения:
Применяя метод, предложенный Муллером, можно получить пару случайных чисел R1 и R2 , принадлежащих нормальному распределению с нулевым математическим ожиданием и нулевой дисперсией. Эти числа R1 и R2 находятся по равномерно распределенным числам и
с помощью зависимостей:
,
Случайные величины, распределенные по биномиальному закону.
Также существует много методов.
Рассмотрим один из них.
Для небольших значений n образуем n равномерно распределенных случайных чисел . Случайная биномиальная величина равняется количеству равномерно распределенных случайных чисел, не превосходящих по величине Р.
Пример. Получим случайную величину для биномиального распределения, у которого n=7 и Р=0,3.
Выберем с этой целью семь равномерно распределенных случайных чисел: 0,02011; 0,85393; 0,97265; 0,61680; 0,16656; 0,42751; 0,69994. Замечаем, что два из них не превышают по величине 0,3. Следовательно, случайная биномиальная величина равна 2. При больших значениях n и малых Р можно поступить следующим образом.
Возьмем случайное число и будем повторять операции до тех пор, пока не удовлетворится неравенство:
где: и
Случайная биномиальная величина S равняется в этом случае числу итераций N, которое нужно выполнить для того, чтобы неравенство удовлетворялось.
В библиотеке стандартных программ имеется программа вычисления нормально распределенного числа GAUSS:
CALL GAUSS( LX, S, AM, V )
LX - при первом обращении должен содержать некоторое нечетное число с девятью или меньшим числом цифр. После этого LX будет содержать равномерно распределенное целое число, полученное в ходе выполнения программы и необходимое для следующего обращения к ней;
S - задаваемое среднеквадратичное отклонение нормально распределенной случайной величины;
AM - задаваемое среднее значение (матожидание);
V - значение вычисленной случайной величины, распределенной по нормальному закону.
9.4.3 Приближенные способы преобразования случайных чисел
Существуют способы, пригодные только для моделирования случайных величин с конкретными законами распределения. Существуют также универсальные способы, с помощью которых возможно моделировать законы распределения любого вида.
Рассмотрим один из таких универсальных способов. Пусть закон распределения случайной величины , предложенной для моделирования, задан функцией плотности f(Y), возможные значения которой лежат в интервале (a,b). Если это интервал с бесконечными границами, целесообразно перейти к усеченному распределению. Представим f(Y) на участке (a,b) в виде кусочно-постоянной функции: