Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка-Емельянова-2004.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.83 Mб
Скачать

3.5.2. Программные способы построения генераторов случайных чисел

Программные генераторы случайных чисел обеспечивают получение только псевдослучайных последовательностей со всеми указанными выше недостатками. Общий принцип построения программных генераторов состоит в том, что на первом этапе имитируется равномерный закон распределения в интервале [0; 1], а затем полученная последовательность преобразуется для обеспечения требуемых характеристик. Рассмотрим ряд способов построения программных генераторов.

1. Получение равномерного закона в интервале [0; 1] обеспечивается на основе использования рекуррентных соотношений различного вида, например:

, i=1,2,...,

где a,b - положительные числа, m=2l, l - разрядность представления целого числа в ЦВМ. Генераторы, или датчики, случайных чисел с равномерным законом распределения имеются в виде встроенных процедур во всех языках программирования, позволяющих решать вычислительные задачи. Существует ряд способов проверки качества таких генераторов [23, 37]. Но прежде всего при выборе программных средств для статистического моделирования следует обратить внимание на способ начальной установки генератора и возможности ее изменения.

2. Метод обратных функций, обеспечивающий получение заданного закона распределения, основан на использовании известного результата теории вероятностей: независимо от вида непрерывного закона распределения при известных его ПРВ f(x) и ФРВ F(x) случайная величина

(3.25)

распределена по равномерному закону в интервале [0; 1].

Действительно, в соответствии с (3.25) значения x и R связаны взаимно однозначной зависимостью. Поэтому для любых A и B

, (3.26)

что является свойством равномерного закона распределения.

Если удается получить аналитическое выражение для функции F-1(R), обратной ФРВ F(x), процедура генерирования случайных чисел xi будет выглядеть следующим образом:

а) с помощью стандартного генератора получают равномерно распределенные в интервале [0; 1] числа i;

б) числа xi получают по формуле xi=F-1(i).

Например, для экспоненциального закона распределения (x>0)

f(x)=e-x, F(x)=1-e-x, .

Рассмотренный способ позволяет получать любой непрерывный закон распределения, если только существует аналитическое выражение для F(x) и может быть получена в аналитическом виде обратная функция.

3. Для нормального закона распределения аналитического выражения для ФРВ не существует. Простейший способ получения случайных чисел с нормальным законом распределения основан на центральной предельной теореме. В соответствии с ней среднее арифметическое n равномерно распределенных в интервале [0; 1] случайных чисел имеет асимптотически нормальный закон распределения с математическим ожиданием 0,5 и дисперсией

.

На практике это в достаточной степени подтверждается при n=12.

Поэтому процедура получения нормального закона выглядит следующим образом:

а) с помощью стандартного генератора получают 12 равномерно распределенных в интервале [0; 1] чисел i;

б) числа xi со стандартизованным нормальным законом распределения получают по формуле, являющейся следствием (3.5):

, .

Для сокращения трудоемкости этот способ иногда применяют с n=6.

Отметим, что рассмотренным способом не обеспечивается свойственный нормальному закону неограниченный диапазон распределения генерируемых чисел.

От указанного недостатка свободна, например, следующая процедура:

а) с помощью стандартного генератора получают два равномерно распределенных в интервале [0; 1] числа i и i+1;

б) вычисляют V1=2i–1, V2=2i+1–1, s=V12+V22;

в) если , повторяют пункты а) и б);

г) вычисляют и получают два распределенных по стандартизованному нормальному закону числа xj =V1r, xj+1=V2r.

4. Для произвольных законов распределения, не допускающих аналитического получения ФРВ, существует универсальный способ (рис. 25), основанный на кусочной аппроксимации функции ПРВ. Рассмотрим его на примере усеченного закона распределения, когда f(x)=0 за пределами отрезка [xmin; xmax]. Разобьем указанный отрезок на m=2l, (l - целое) интервалов таким образом, чтобы вероятность попадания x в каждый интервал была одинаковой:

, j=1,2,...m; a1=xmin, am+1=xmax.

В пределах каждого интервала ПРВ аппроксимируется константой:

, j=1,2,...m.

Процедура формирования случайных чисел в соответствии с заданной ПРФ f(x) выглядит следующим образом:

а) с помощью стандартного генератора получают равномерно распределенное в интервале [0; 1] число 2i-1;

б) по первым l разрядам 2i-1 выбирают номер интервала j;

в) получают следующее значение 2i;

г) значение xi вычисляют по формуле xi=aj+(aj+1-aj)2i.

Рассмотренный способ обеспечивает получение псевдослучайных чисел с любыми непрерывными или кусочно-непрерывными законами распределения, в том числе задаваемыми таблично. Его недостатками являются сравнительно большие объемы подготовительной работы и используемой оперативной памяти ЭВМ.

5. Отметим другой универсальный способ построения генератора случайных чисел с заданной ПРВ усеченного закона распределения (рис. 26), также часто называемый в литературе методом Неймана. Он предусматривает следующую процедуру обеспечения заданной ПРВ f(x):

а) с помощью стандартного генератора получают пары равномерно распределенных в интервале [0; 1] чисел 2i-1 и 2i;

б) выполняют их преобразование:

xi=xmin+(xmax–xmin)2i-1, yi=fmax2i; (3.27)

в) в качестве генерируемых значений случайной величины x выбирают значения xi из тех пар xi и yi, для которых выполняется неравенство

. (3.28)

Покажем справедливость данного способа, применительно к его реализации на ЦВМ. Будем рассматривать для каждого xi элементарную полосу шириной , в пределы которой с учетом разрядности используемой ЦВМ другие значения x попасть не смогут. Величина  достаточно мала, чтобы при законе распределения с ПРВ f(x) вероятность x=xi можно было считать пропорциональной f(xi). С учетом свойства равномерного закона (3.26) нетрудно убедиться, что это и будет обеспечиваться при достаточно большой длине генерируемой последовательности на основе условия (3.28).

Преимущество рассмотренного способа - минимальный объем подготовительной работы. Тем не менее он не получил широкого практического применения из-за низкого быстродействия, обусловленного большой долей “безрезультатных” вычислений. Применение этого способа можно порекомендовать только для более сложных задач моделирования случайных векторов со статистически зависимыми составляющими, которые будут рассмотрены в подразд. 3.9.

6. Для формирования случайных чисел с дискретным законом распределения используется выражаемое соотношением (3.26) свойство непрерывного равномерного закона.

Пусть требуется построить генератор дискретной случайной величины Z, имеющей n возможных значений z1,z2,…,zn. Закон распределения Z задается в табличном виде или в виде ряда , где pj=P(Z = zj), причем

. (3.29)

Соотношение (3.26) позволяет установить соответствие между значениями непрерывной случайной величины  с равномерным законом распределения в интервале [0; 1] и значениями дискретной случайной величины Z следующим образом. Разобьем интервал [0; 1] на n непересекающихся последовательных отрезков j, выбрав длину каждого из них равной ajaj-1=pj. В соответствии с (3.29) эти отрезки полностью займут весь интервал [0; 1] (рис. 27), причем их границы будут определяться соотношениями: .

Теперь достаточно принять Z=zj, если значение случайной величины  попадает в пределы отрезка [aj-1; aj]. Соответствующая процедура получения дискретного закона распределения выглядит следующим образом:

а) с помощью стандартного генератора получают равномерно распределенное в интервале [0; 1] число i;

б) определяют номер j отрезка j из условия ;

в) случайной величине Z присваивают значение zj.

В заключение отметим, что широкий набор разработанных к настоящему времени способов построения генераторов случайных чисел, безусловно, не исчерпывается рассмотренным перечнем. Так для получения нормального и ряда других важных для практических приложений законов распределения в литературе [1, 7, 17, 23, 28, 36, 41, 44, 46] предлагается большой выбор различающихся по точности и трудоемкости специальных способов.