
- •4.1. Имитация, как инструмент исследования сложных систем.
- •4.2.2.1. Классификация методов генерирования и имитации входных воздействий.
- •4.2.2.2. Источники первичной случайности.
- •Эта запись означает, что
- •Числа с логарифмически нормальным распределением генерируются преобразованием
- •Используя формулу скользящего суммирования
- •Эта реализация порождает векторный случайный процесс
- •Когда в момент t'2в агрегат поступает входной сигналx'2, то состояние агрегата принимает значение
- •4.2.3.3. Индивидуальное моделирование
- •4.2.4. Планирование эксперимента.
- •4.2.4.1.Полный факторный эксперимент.
- •Дробный факторный эксперимент.
- •Проведение и обработка результатов экспериментов.
- •4.2.5. Обработка результатов.
- •4.2.5.2. Двух- и многофакторный анализ.
4.2.2.2. Источники первичной случайности.
В качестве первичных случайных чисел, которые в дальнейшем подвергаются каким-либо преобразованиям, выбирают некоррелированные реализации j случайной величины , обладающей равномерным в интервале [0,1] одномерным распределением вероятностей. Реже в качестве первичных случайных чисел используются реализации i, случайной дискретной величины , которая с равной вероятностью 1/10 принимает значения 0, 1, 2, 3, 4, 6, 5, 7, 8, 9. В дальнейшем в этом параграфе i будем называть случайным числом, а величину i - случайной цифрой. Для установления связи между i и i, разложим число i в бесконечную десятичную дробь:
i = 0,1,2, …, k, … (4.1)
Эта запись означает, что
i
=
В [40] доказана теорема о независимости случайных цифр в случайном числе, которая формулируется следующим образом.
Десятичные цифры 1,2, …,k, … случайного числа k представляют собой независимые случайные цифры. Обратно, если 1,2, …, k, … - независимые случайных цифры, то формула (4.1) дает случайное число.
В вычислительных процессах всегда используют числа с конечным количеством десятичных знаков, поэтому вместо случайных чисел i употребляют конечные десятичные дроби i=0, 1,2, …, k. Принято считать, что здесь имеют место ошибки округления.
Предположим, что, используя некоторый механизм (игральную кость, рулетку и т.п.), мы осуществили ряд опытов, в результате которых получили случайных цифр, 1,2, …, N. Записав эти цифры в таблицу, получим то, что называется таблицей случайных цифр (приложение 2). Это есть первый способ получения первичных случайных чисел.
Способ употребления такой таблицы прост. Если в ходе решения некоторой задачи нам потребуется случайная цифра j, то мы можем взять любую цифру k из этой таблицы. Если нам потребуется случайное число j, то мы можем по произвольному алгоритму выбрать из таблицы n очередных цифр и считать, что
i = 0, 1, …, n.
Еще раз отметим произвольность выбора алгоритма получения цифр из таблицы, не зависящего от конкретных значений этих цифр.
Пример 4.1. Используя таблицу (см. приложение 2) равномерно распределенных случайных цифр, получить пять случайных цифр.
Решение 4.1.а. Выбираем наугад строку таблицы. Пусть это будет 5-я строка. Выписываем из нее 5 цифр: 1,2,8,0,7.
Решение 4.1.б. Выбираем наугад строку и колонку и, начиная с выбранной цифры, двигаемся по диагонали влево и вверх по таблице.
Пусть мы выбрали 9-ю строку и 10-ю колонку. Тогда получаем следующие цифры: 5, 0, 8, 4, 9.
Пример 4.2. Используя таблицу равномерно распределенных случайных цифр, получите четыре случайных трехзначных числа.
Решение 4.2.а. Выбираем наугад колонку и выписываем из нее, двигаясь вниз, 12 цифр. Пусть мы выберем, первую колонку и тогда получим цифры: 1,3,0,9,1,6,3,8,6,7,9,1. Сгруппируем их в четыре группы (заметим, что это можно сделать по-разному): 130, 916, 386, 791.
Решение 4.2.б. Воспользовавшись ходом шахматного коня и начиная с первой цифры таблиц, получим следующие четыре трехзначных числа: 180, 276, 299, 379.
Второй
способ получения первичных случайных
чисел заключается в использовании
технических устройств
-
датчиков или генераторов случайных
чисел. В качестве таких могут применяться
механические (рулетка, кубик, и т.п.),
электронные (резисторы, диоды,
электронные лампы и т.п.), радиоактивные
и другие типы устройств. На
выбор
конкретного типа устройства оказывают
влияние ряд факторов:
стабильность параметров генерируемых
сигналов, взаимозаменяемость
элементов, срок их службы, условия
эксплуатации, простота источника
преобразований сигнала и т.п. После
определения
типа
источника требуется сконструировать
преобразователь случайного сигнала,
основное назначение которого состоит
в преобразовании полученного первичного
случайного сигнала в форму, пригодную
для использования в вычислительном
устройстве. Приведем пример такого
генератора (рис.
4.6) – [43]. Пусть
мы имеем
генераторов стандартных импульсов
ГИ-j, которые воспроизводят детерминированные
по свойствам импульсы. В силу того, что
каждый из генераторов не является
идеальным устройством, сигналы на
их выходахj
будут иметь случайные отклонения от
идеального. Эти отклонения не превышают
допустимых. Объединяя все сигналы
j
элементом ИЛИ, будем получать выходной
сигнал ,
который по своей сути (в силу неидеальности
генераторов) будет представлять
собой последовательность импульсов со
случайными параметрами, например,
амплитудой.
Числа 1, 2, …, n, …, которые вычисляются по какой-либо формуле и могут быть использованы вместо случайных чисел при решении некоторых задач, называются псевдослучайными числами.
Большинство алгоритмов, используемых на практике, представляют собой рекуррентные формулы следующего вида:
n+1=( n), (4.2)
где 0 - задано.
Часто в качестве функции выбирают следующую функцию i+1=[i], где [] - знак целой части числа, а- некоторый множитель(>>1).
Важной чертой алгоритмов вида (4.2) является то, что при реализации на компьютере они всегда порождают периодические последовательности. В самом деле, так как в коде любого персонального компьютера можно записать лишь конечное количество чисел, заключенных между нулем и единицей (равномерное распределение в интервале [0,1]), то рано или поздно какое-нибудь значение j совпадает с одним из предыдущих значений i.
Вместо формулы (4.2) можно попытаться использовать для получения последовательностей псевдослучайных чисел более сложные рекуррентные формулы
n+1=(n, n+1, … , n-r+1),
считая, что начальные значения 0, 1, …, r-1 заданы. В [40] приведены алгоритмы, основанные на подобных формулах.
В качестве конкретных алгоритмов вида (4.2) можно назвать методы усечения, вычетов, перемешивания и т.д.
Метод усечения. В качестве рекуррентного процесса берется произвольное число 0, состоящее из 2n двоичных цифр. Величина 0 возводится в квадрат (состоящий уже из 4n цифр) и выбирает число 1 из 2n средних двоичных цифр (от n+1-й до 2n -й). В дальнейшем процесс повторяется в той же последовательности.
Такой рекуррентный процесс не дает удовлетворительной (в смысле некоррелированности) последовательности случайных разрядов, а распределение полученных этим способом псевдослучайных чисел отклоняется от равномерного.
Пример 4.3. Пусть 0=1011. Построить последовательность из трех псевдослучайных чисел методом усечения.
Решение
4.3.
=(1011)
=01111001.
Отсюда1=1110,
=(1110)
=11000100.
Отсюда
=0001,
=(0001)
=00000001.
Отсюда 3=0000.
Имеем последовательность:
1110, 0001, 0000.
Приведенный пример демонстрирует один из существенных моментов в использовании методов генерирования псевдослучайных чисел: неудачный выбор начальных констант может привести к вырождению последовательности чисел, то есть получению последовательности нулей.
Способ произведений. Значительно лучшие результаты дает следующее видоизменение метода усечений: выбирается произвольная пара чисел 0 и 1; составляется их произведение и его средние цифры используются в качестве 2.
Данный рекуррентный процесс дает меньшее отклонение псевдослучайных чисел от равномерного распределения, чем метод усечения в первоначальном виде.
Пример 4.4. Пусть 0=24 и 1=31. Построить последовательность из трех псевдослучайных чисел методом произведений.
Решение 4.4. 01=0744. 2=74. 12=2294. Тогда 3=29. 23=2146. Отсюда 4=14. Таким образом, получена последовательность: 74, 29, 14.
4.2.2.3. P-методы.
Методы генерирования некоррелированных случайных чисел с требуемым одномерным законом распределения вероятностей носят название Р-методов.
В зависимости от точности воспроизведения последовательности случайных чисел одномерного закона распределения вероятностей Р-методы можно разделить на точные и приближенные.
К числу точных Р-методов относятся метод обратных функций (метод Н.В.Смирнова) и специальные методы, к приближенным - метод Неймана и метод кусочной аппроксимации (метод Н.П. Бусленко) [12].
В дальнейшем будем использовать следующие обозначения:
- случайное некоррелированное число, равномерно распределенное в интервале [0,1] ;
- случайное число с одномерным законом распределения вероятностей, который требуется получить;
- случайное число с гауссовским (нормальным) законом распределения вероятностей.
Метод обратных
функций.Суть метода состоит в
подборе некоторого преобразования
исходных случайных чисел,
трансформирующего равномерное в
интервале [0,1]распределение
в требуемое F(x)
,гдеF
(x)
- функция распределения. Выбор
преобразования осуществляется в
соответствии со следующим предложением [12] .
Если удовлетворяет уравнению
,
(4.3)
где
-
величина, распределенная равномерно
на
[0,1],
то
распределено по закону F(x).
Выражение (4.3) можно, очевидно, переписать и через плотность распределения вероятностей
,
(4.4)
Ясно, что преобразование Н.В. Смирнова можно применить и для дискретных распределений, соответственно представив уравнение (4.3).
Пример 4.5. Пусть требуется найти преобразование для генерирования случайных чисел, распределенных по равномерному в интервале [a,b] закону распределения вероятностей.
Решение 4.5. Плотность равномерного в интервале распределения имеет вид:
xa,b.
В соответствии с формулой (4.4) имеем
Отсюда
(4.5)
Пример 4.6. Найти преобразование для генерирования случайных чисел экспоненциальным распределением
.
Решение 4.6. В соответствие с формулой (4.4) имеем
Отсюда,
после логарифмирования левой и правой
части равенства
,
получаем
или, с учетом того, что
и
(1-)
распределены равномерно в интервале
[0,1] , можно
записать
.
Пример 4.7. Построить процедуру получения биномиально распределенных случайных чисел.
Решение 4.7. Известно [44], что биномиально распределенная случайная величина есть число успехов в n независимых испытаниях Бернулли с вероятностью успеха в каждом из испытаний p и вероятностью неудачи q=1-p.
Тогда алгоритм генерирования биномиально распределенных чисел c параметрами n и р имеет следующий вид:
устанавливается начальное значение биномиальной величины =0;
генерируется источником первичной случайности равномерно распределенное на интервале [0,1] случайное число (разыгрывается испытание Бернулли);
проверяется условие <p (произошло ли событие в испытании Бернулли?), если событие не произошло (<р), то осуществляется переход к шагу 5;
если событие в испытании Бернулли произошло (р), то биномиальная величина увеличивается на единицу;
шаги 2,3,4 повторяются n раз.
Пример 4.8. Получить три случайных числа с распределением Бернулли, если вероятность успеха в каждом испытании p = 0,4.
Решение 4.8. В соответствии с физическим механизмом, описывающим испытания Бернулли, имеем следующий алгоритм генерирования:
устанавливается начальное значение бернуллиевского случайного числа = 0;
генерируется источником первичной случайности равномерно распределенное на интервале [0,1] случайное число ;
проверяется условие <0,4 (произошло ли событие в схеме Бернулли?), если событие произошло (≥0,4), то =1. В противном случав (<0,4) число не изменяется, то есть = 0.
На выходе процедуры получено случайное число , имеющее распределение Бернулли с вероятностью успеха р .
Для получения трех случайных чисел необходимо (в соответствии с алгоритмом) три исходных числа . Получим их из таблицы случайных цифр (см. приложение 2). Ограничимся при этом двумя знаками после запятой (заметим, что это ограничение зависит от точности задания параметров генерируемого распределения). Возьмем три первых пары цифр из первой строки таблицы и запишем их в виде десятичной дроби:
1=0,10; 2=0,09; 3=0,73.
Используя описанный выше алгоритм (р=0,4):
1) 1= 0;
2) 1 0,4 (0,1 < 0,4). Следовательно, 1=0;
3) 2=0;
4) 2 0,4 (0,09 < 0,4). Следовательно, 2=0;
5) 3=0;
6) 3>0,4 (0,73 > 0,04). Следовательно, 3=1.
Итак, получены три случайных числа 0,0,1, имеющих распределение Бернулли с вероятностью успеха (появления события) р=0,4.
В соответствии с центральной предельной теоремой теории вероятностей можно получить нормально распределенные случайные числа
причем точность аппроксимации растет с ростом k. Для многих практических целей достаточно взять k=12, так что
Гауссовские случайные числа могут быть получены и как функции от двух и большего количества чисел с другими, негауссовскими распределениями вероятностей, например, произведение двух чисел 1 и 2, имеющих одно распределение арксинуса, а другое - распределение Рэлея, имеет гауссовское распределение. Для генерирования чисел с распределениями арксинуса и Рэлея может использоваться метод обратных функций
,
Тогда
(4.6)
т.е. необходимо два исходных числа 1 и 2, подвергнуть этому преобразованию.
Гауссовски распределенные числа являются основой для генерирования чисел с рядом распределений (в силу существующей взаимосвязи между гауссовским и некоторыми другими распределениями). Так, например, числа с распределением Рэлея могут быть получены из пары гауссовских чисел