
- •Учебное пособие
- •1. Моделирование. Основные понятия и принципы
- •2. Аналитическое моделирование
- •2.1. Математические модели.
- •2.2. Типовые схемы моделирования
- •2.3. Непрерывно-детерминированные модели (d-схемы)
- •2.4. Дискретно-детерминированные модели (f-схемы)
- •2.5. Дискретно-стохастические модели (р-схемы)
- •2.6. Марковский случайный процесс
- •2.7 Непрерывно – стохастические модели (q– схемы)
- •2.7.1. Системы массового обслуживания. Потоки событий
- •2.7.2. Простейший поток
- •2.7.3. Непрерывные марковские цепи. Уравнения Колмогорова
- •2.7.4.Диаграмма интенсивностей переходов
- •2.7.5 Формула Литтла
- •2.7.6.Исследование смо с помощью диаграмм интенсивностей переходов
- •2.7.7. Замкнутые системы массового обслуживания (смо с ожиданием ответа)
- •2.7.8. Распределение Эрланга. Метод этапов
- •2.7.8. Немарковские смо
- •3. Имитационное моделирование
- •3.1. Условия примененияимитационного моделирования
- •3.2. Этапы имитационного моделирования
- •3.3. Способы моделирования случайных величин
- •3.4. Равномерно-распределённые случайные числа (ррсч).
- •3.4.1. Методы формирования ррсч.
- •3.4.2. Проверка качества последовательностей ррсч
- •1) Проверка равномерности.
- •2) Проверка стохастичности
- •3) Проверка независимости
- •3.5. Формирование случайных величин с заданным законом распределения.
- •3.5.1. Метод обратной функции.
- •3.5.2. Универсальный метод
- •3.5.3. Метод исключения (отбраковки, режекции, Дж. Неймана)
- •3.5.4. Метод композиции (суперпозиции).
- •3.6. Формирование случайных векторов с заданными вероятностными характеристиками
- •3.7. Моделирование случайных событий
- •2) Полная группа несовместных событий
- •3. 8. Сетевые модели
- •3.8.1. Сети Петри
- •3.8.3. Сетевая модель взаимодействующих параллельных процессов в операционной системе.
- •3.9. Управление модельным временем
- •3.10. Планирование машинных экспериментов
- •3.11. Обработка экспериментальных данных
- •3.11.1. Экспериментальные оценки
- •3.11.2. Оценки для математического ожидания и дисперсии
- •3.11.2. Доверительные интервал и вероятность
- •3.11.3. Точность. Определение числа реализаций
- •Литература Основная литература
3.5.3. Метод исключения (отбраковки, режекции, Дж. Неймана)
Основой метода является следующая теорема:
Если
множество точек (x,y)
является реализацией случайного вектора
,
равномерно распределенного в области,
ограниченной осью 0X
и кривой f(x),
такой, что
,
то одномерная плотность распределения величины ξ равна
.
Отсюда
следует, что, если f(x)
– искомая функция плотности распределения
(т.е.
),
то, реализовав процедуру построения
множества случайных векторов, равномерно
распределенных под графиком f(x),
мы, тем самым, получим множество значений
абсцисс {xi},
распределённых в соответствии с законом,
определяемым функцией f(x).
Однако, процедура генерирования случайных векторов может оказаться достаточно сложной в вычислительном плане (надо использовать условные функции плотности ввероятностей). Для упрощения процедуры формирования случайных чисел воспользуемся следующим достаточно очевидным утверждением.
Если
вектор
равномерно распределён под кривой
,
такой, что
для всей области определения f(x), то его реализации, ограниченные областью между 0X и f(x) будут равномерно распределены в этой области.
Функция g1(x) называется мажорирующей функцией по отношению к f(x) (рис. 3.9) .
Рис. 3.9. Мажорирующая функция
Можно выбрать функцию g1(x) такой, что вектора, равномерно распределенные в области G1 , будет просто генирировать. Удобно выбирать функцию, имеющую постоянное значение на всей области определения f(x):
g1(x)= const,
как правило, равное максимальному значению fmax функции f(x).
y
fmax
f(xi)
x а b 0 . xi yi
Рис. 3.10. Метод исключения
Отсюда вытекает процедура метода (рис. 3.10):
а) если функция f(x) не ограничена, то, учитывая допустимую погрешность, область ее определения ограничивают интервалом (a,b);
б)
имитируется реализация (xi,yi)
вектора
,
равномерно распределеного в области
G1
(между OX
и g1(x)):
– генерируется РРСЧ xi из диапазона (a,b);
– генерируется РРСЧ yi из диапазона (0, fmax(x));
в) если, yi<f(xi) то (xi,yi) является реализацией вектора, распределённого в области G (между осью 0X и f(x)) и xi – искомая реализация ξ. Иначе процедура повторяется, начиная с пункта б).
Так как в качестве базовой последовательности обычно берут числа, равномерно распределенные в диапазоне от 0 до 1, то от случайной величины ξ сискомой функцией распределения f ξ переходят к случайной величине
ξ*
=
.
Для нее область возможных значений (0, 1), а функция плотности вероятностей имеет вид
fξ*(z) = (b-a)f ξ[a+(b-a)z]
(сжатие по оси абсцисс).
Произведем сжатие по оси ординат:
f*ξ*(z) = fξ*(z)/fmax ,
где fmax максимальное значение fξ*(z).
В результате произведенных действий функция f*ξ*(z) расположилась в единичном квадрате в начале системы координат.
Теперь процедура получения последовательности чисел с функцией плотности fξ(x) сводится к следующему.
генерируется пара РРСЧ из диапазона (0, 1) – ηi, ηi+1;
проверяется выполнение условия
ηi+1
f*ξ*(
ηi
)
;
если это условие выполняется, то очередное число, включаемое в выходную последовательность получаем как
xj = a+(b-a) ηi ,
иначе процедура повторяется, начиная с пункта 1.
Эффективность метода исключения характеризуется коэффициентом использования kn – отношением количества отобранных реализаций к общему числу реализаций. Очевидно, что это отношение при равномерном распределении реализаций равно отношению площадей под графиками функций f(x) и g1(x):
,
где
,
а
.
Чем ближе значение kn к 1, тем эффективнее использование метода. Можно, например, использовать в качестве мажорирующей функции g1(x) ступеньчатую функцию (рис. ). При этом значение коэффициента kn увеличивается, но следует иметь в виду, что при этом одновременно увеличивается число вычислений.
g1(x)
. . . .
Рис. 3.11. Ступенчатая мажорирующая функция
Пример. 3.1.
Рассмотрим использование метода для получения чисел с треугольным распределением:
Переходим от случайной величины ξ к величине ξ*, реализацией которой является значение
z
=
.
Значениz z лежат в диапазоне от 0 до 1 (рис. б) и для нее функция плотности распределения
fξ*(z)
= (b-a)f
ξ[a+(b-a)z]=.
fξ(x) а) б)
a b x
0
fξ*(z) f*ξ*(z)
z
1 1 0
Рис. 3.12. Имитация треугольного распределения
Максимальное значение эта функция принимает при z=1:
fmax=2.
Произведем масштабирование по вертикальной оси:
f*ξ*(z) = fξ*(z)/fmax =z.
Таким образом, мы пришли к функции, вписанной в единичный квадрат (рис. 3.12. б).
Теперь формирование чисел с треугольным распределением будем производить по следующему алгоритму:
1) Берём η1 и η2 − равномерно распределенные в диапазоне от0 до 1 числа;
2) Если η1 > η2, то включаем в выходную последовательность очередное число xj = a+(b-a) η1 , иначе переходим к пункту 1.
Для ускорения процедуры можно заполнять квадрат сразу парами точек , симметричными относительно диагонали с координатами (η1, η2) и (η2, η1) .
Тогда пункт 2 будет иметь вид: xj = a+(b-a)max ((η1, η2) .