3. Метод кусочной аппроксимации
Существуют различные приближенные приемы моделирования случайных величин: численное решение уравнения
относительно
при использовании метода нелинейного преобразования, обратного функции распределения; замена непрерывных распределений соответствующими дискретными распределениями, для которых можно указать достаточно простые моделирующие алгоритмы, и другие приемы [10, 23]. Среди них универсальным и наиболее простым является метод кусочной аппроксимации, предложенный Н. П. Бусленко [11].
Сущность этого метода состоит в следующем. Пусть требуется получить случайную величину
с функцией плотности
. Предположим, что область возможных значений величины
ограничена интервалом
(неограниченное распределение можно приближенно заменить ограниченным). Разобьем интервал
на
достаточно малых интервалов
, так, чтобы распределение заданной случайной величины в пределах этих интервалов можно было довольно точно аппроксимировать каким-нибудь простым распределением, например равномерным, трапецеидальным и т. д. В дальнейшем рассмотрим кусочную аппроксимацию равномерным распределением (рис. 1.3).
Пусть
— вероятность попадания случайной величины
в каждый из интервалов
. Получать реализации величины
с кусочно-равномерным распределением можно, очевидно, в соответствии со следующей схемой преобразования случайных чисел: 1) случайным образом с вероятностью
выбирается интервал
; 2) формируется реализация
случайной величины, равномерно распределенной в интервале
; 3) искомая реализация
получается по формуле
.
Случайный выбор интервала
с вероятностью
означает, по существу, моделирование дискретной случайной величины, принимающей
значений
, с вероятностью
каждое, что можно сделать достаточно просто [11]. Интервал
разбивается на
интервалов
длиной
каждый. Из датчика случайных равномерно распределенных в интервале (0, 1) чисел выбирается некоторая реализация
. Путем последовательного сравнения
с
определяется тот интервал
, в котором оказывается
.
![](/archive/arch.php?path=../htm/book_dm/files.book&file=dm_8.files/image020.jpg)
Рис. 1.3.
В основу этого процесса положен очевидный факт: вероятность попадания равномерно распределенной в интервале
случайной величины в некоторый подинтервал
равна длине этого подинтервала. Рассмотренный выше процесс представляет интерес не только как составной элемент метода кусочной аппроксимации, он широко используется в качестве алгоритма для моделирования дискретных случайных величин и случайных событий [10, 11].
Для моделирования случайных величин методом кусочной аппроксимации наиболее удобно при машинной реализации выбирать вероятности попадания во все интервалы
одинаковыми
, а число
таким, что
, где
— целое число, меньше или равное количеству двоичных разрядов чисел, вырабатываемых датчиком случайных чисел [10, 11]. В этом случае величины
должны быть выбраны такими, чтобы
.
При равенстве вероятностей
для случайного выбора индекса
можно использовать первые
разрядов числа, извлекаемого из датчика равномерно распределенных случайных чисел.
Используя рассмотренный прием, приходим к следующему способу преобразования равномерно распределенных случайных чисел в случайные числа с заданным законом распределения.
Из датчика равномерно распределенных в интервале (0, 1) случайных чисел извлекается пара реализаций
. Первые
разрядов числа
используются для нахождения адресов ячеек, в которых хранятся величины
и
, а затем по формуле
![](/archive/arch.php?path=../htm/book_dm/files.book&file=dm_8.files/image031.gif)
получается реализация
случайной величины
с заданным законом распределения. Такой алгоритм является довольно экономичным по количеству требуемых операций, которое не зависит от числа
, т. е. не зависит от точности кусочной аппроксимации. Однако с увеличением точности аппроксимации возрастает количество ячеек памяти, требуемое для хранения величин
,
, что является недостатком рассмотренного метода, в особенности при больших
.