Донецкий национальный технический университет
Опубликован: 15.03.2007 | Доступ: свободный | Студентов: 6121 / 2256 | Оценка: 4.11 / 3.78 | Длительность: 12:32:00
Специальности: Математик
Лекция 8:

Генерирование на ЭВМ последовательностей равномерно распределенных случайных чисел. Моделирование нормально распределенной случайной величины

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >
Аннотация: Лекция рассматривает алгоритмы и методы генерации равномерно распределенных случайных чисел.

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

В настоящее время все языки высокого уровня имеют программные генераторы равномерно распределенных последовательностей псевдослучайных чисел. Их называют датчиками случайных чисел. Датчики случайных чисел, как правило имеют имена: RAN, RAND, RANDU, RND, RANDOM, RANDOMIZE и т.д. Эти имена получены от английского слова random, означающего случайный или выбранный наугад. Поэтому датчики случайных чисел иногда называют рандомизаторами.

Датчики случайных чисел обычно генерируют последовательность действительных чисел Un, равномерно распределенных между нулем и единицей, т.е. последовательность случайных дробей в интервале [0,1]. Но вначале датчики генерируют последовательность целых случайных чисел xi в интервале от нуля до m, где m – размер машинного слова (на единицу меньше максимального целого числа, размещающегося в машинном слове).

Как уже говорилось, для 32-х разрядного машинного слова:

m = 231 = 2147483648;

1/m = 0.4656613 E-9.

Приведем датчик равномерно распределенных случайных чисел RANDU.

Этот датчик специально предназначен для системы IBM и образует 229 значений перед началом повторений, т.е. длина цикла равна 229 (при 32-х разрядном машинном слове). Алгоритм датчика реализует метод остатка степеней (рис. 8.1).

Назначение датчика RANDU:

Вычисление равномерно распределенных случайных действительных чисел YF в интервале [0,1] и случайных целых чисел IY в интервале [0,231]. В качестве входа служит целое случайное число IX, на выходе образуется новое целое число IY и вещественное YF.

Обращение к датчику:

RANDU (IX,IY,YF).

Описание параметров:

IX – при первом обращении – нечетное целое число с числом цифр \le 9.

После первого обращения IX=IY, где IYцелое число, вычисленное при предыдущем обращении.

IY – полученное в результате целое случайное число, требуемое при последующих обращениях. IY находится в интервале [0, 231].

YF – полученное в результате равномерно распределенное действительное число в интервале [0,1], представленное в форме с плавающей запятой.

Алгоритм датчика RANDU

Рис. 8.1. Алгоритм датчика RANDU

Используя датчик RANDU, построим алгоритм вычисления последовательности равномерно распределенных случайных чисел и ее печать (рис. 8.2).


Рис. 8.2.

Алгоритм вычисления последовательности равномерно распределенных случайных чисел.

Исходные данные:

N - длина последовательности (количество испытаний).

IX - начальное значение, нечетное целое число с числом цифр <9.

Например: IX = 1234567.

Различные начальные значения параметра IX позволяют формировать различные последовательности равномерно распределенных псевдослучайных чисел.

Для генерирования равномерно распределенных случайных чисел на отрезке [0,1] используется отделение дробной части от сложного арифметического выражения, содержащего предшествующее число.

Vi+1 =FRAC(k Vi)

FRAC – оператор выделения дробной части,

Vi - предшествующее случайное число,

Vi+1 - последующее случайное число,

k-8t = 3,

t - нечетное целое число.

Задание различных начальных значений V0 позволяет формировать различные последовательности случайных чисел.

Количество случайных чисел в одном периоде от нескольких тысяч до сотен тысяч.

Для перевода равномерно распределенных случайных чисел из отрезка [0,1] в отрезок [а,b] можно использовать:

xi+1= a + (b-a)Vi+1.

Задачу моделирования случайных величин с нормальным законом распределения решают в несколько этапов:

  1. Вначале имитируют равномерное распределение и получают последовательность псевдослучайных чисел, равномерно распределенных на интервале [0,1].
  2. Затем, используя равномерно распределенную псевдослучайную величину, получают последовательность псевдослучайных чисел с нормальным законом распределения (чаще всего в нормированном виде, т.е. М(X) = 0. \sigma =1 ).

Пусть Y – равномерно распределенная случайная величина на интервале, [0,1]. Необходимо получить случайную величину X c нормальным законом распределения.

Различают три основных способа формирования последовательности нормально распределенных случайных величин:

  1. Прямое преобразование псевдослучайного числа y являющегося реализацией случайной величины Y, равномерно распределенной на интервале [0,1], с помощью некоторой функции W в число x, которое может рассматриваться как реализация случайной величины X, имеющей нормальный закон распределения.
  2. Отсеивание псевдослучайных чисел из первоначальной последовательности Y равномерно распределенной на интервале [0,1], таким образом, чтобы оставшиеся числа были распределены по нормальному закону.
  3. Моделирование условий, соответствующих центральной предельной теореме теории вероятности.

Рассмотрим некоторые методы моделирования нормально распределенной случайной величины.

Метод полярных координат относится к первому способу получения последовательности псевдослучайных чисел с нормальным законом распределения. Метод вычисляет две независимые нормально распределенные случайные величины x1 и x2 со средним значением, равным нулю, и среднеквадратичным отклонением, равным единице, по двум заданным независимым равномерно распределенным случайным числам y1 и y2.

< Лекция 7 || Лекция 8: 1234 || Лекция 9 >
Равиль Султанов
Равиль Султанов

В уравнениях движения кривошипно-шатунного механизма вместо обозначения радиуса кривошипа "r" ошибочно записан символ "γ" (гамма).

P.S. Может быть это слишком очевидно, но не упомянуто, что угол поворота кривошипа φ считается малым.

Александр Никитин
Александр Никитин

Добрый день.

В расчете параметра Т4 xi суммируется с величиной h/2 ?