3. Метод кусочной аппроксимации
Существуют
различные приближенные приемы моделирования случайных величин: численное решение
уравнения относительно
при
использовании метода нелинейного преобразования, обратного функции
распределения; замена непрерывных распределений соответствующими дискретными
распределениями, для которых можно указать достаточно простые моделирующие
алгоритмы, и другие приемы [10, 23]. Среди них универсальным и наиболее простым
является метод кусочной аппроксимации, предложенный Н. П. Бусленко [11].
Сущность
этого метода состоит в следующем. Пусть требуется получить случайную величину с функцией плотности . Предположим, что
область возможных значений величины ограничена интервалом (неограниченное распределение
можно приближенно заменить ограниченным). Разобьем интервал на достаточно малых интервалов , так, чтобы
распределение заданной случайной величины в пределах этих интервалов можно было
довольно точно аппроксимировать каким-нибудь простым распределением, например равномерным,
трапецеидальным и т. д. В дальнейшем рассмотрим кусочную аппроксимацию
равномерным распределением (рис. 1.3).
Пусть — вероятность попадания
случайной величины в
каждый из интервалов .
Получать реализации величины с кусочно-равномерным распределением
можно, очевидно, в соответствии со следующей схемой преобразования случайных
чисел: 1) случайным образом с вероятностью выбирается интервал ; 2) формируется реализация случайной величины,
равномерно распределенной в интервале ; 3) искомая реализация получается по формуле
.
Случайный
выбор интервала с
вероятностью означает,
по существу, моделирование дискретной случайной величины, принимающей значений , с вероятностью каждое, что можно
сделать достаточно просто [11]. Интервал разбивается на интервалов длиной каждый. Из датчика случайных
равномерно распределенных в интервале (0, 1) чисел выбирается некоторая
реализация . Путем
последовательного сравнения с определяется тот интервал , в котором оказывается .
Рис. 1.3.
В основу
этого процесса положен очевидный факт: вероятность попадания равномерно
распределенной в интервале случайной величины в некоторый подинтервал
равна длине
этого подинтервала. Рассмотренный выше процесс представляет интерес не только
как составной элемент метода кусочной аппроксимации, он широко используется в
качестве алгоритма для моделирования дискретных случайных величин и случайных
событий [10, 11].
Для
моделирования случайных величин методом кусочной аппроксимации наиболее удобно
при машинной реализации выбирать вероятности попадания во все интервалы одинаковыми , а число таким, что , где — целое число, меньше
или равное количеству двоичных разрядов чисел, вырабатываемых датчиком
случайных чисел [10, 11]. В этом случае величины должны быть выбраны такими, чтобы
.
При
равенстве вероятностей для случайного выбора индекса можно использовать
первые разрядов
числа, извлекаемого из датчика равномерно распределенных случайных чисел.
Используя
рассмотренный прием, приходим к следующему способу преобразования равномерно
распределенных случайных чисел в случайные числа с заданным законом
распределения.
Из
датчика равномерно распределенных в интервале (0, 1) случайных чисел
извлекается пара реализаций . Первые разрядов числа используются для нахождения
адресов ячеек, в которых хранятся величины и , а затем по формуле
получается реализация случайной величины с заданным законом
распределения. Такой алгоритм является довольно экономичным по количеству
требуемых операций, которое не зависит от числа , т. е. не зависит от точности кусочной
аппроксимации. Однако с увеличением точности аппроксимации возрастает
количество ячеек памяти, требуемое для хранения величин , , что является недостатком рассмотренного
метода, в особенности при больших .