Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МС / Лекция 25.doc
Скачиваний:
35
Добавлен:
10.06.2015
Размер:
182.27 Кб
Скачать

Табличный метод генерации нормально распределенных чисел

Для этого нормальное число можно взять из справочника в таблице функции Лапласа и получить случайное число по методу взятия обратной функции (см. лекцию 24): x = F–1(r), где F — интегральная функция Лапласа.

Технически это означает, что надо разыграть случайное равномерно распределенное число r из интервала [0; 1] стандартным ГСЧ (см. таблицу абсолютно случайных проверенных чисел), найти равное ему число в таблице значений функции Лапласа в столбце F и по строке определить случайную величину x, соответствующую этому числу.

Недостатком метода является необходимость хранения в памяти компьютера всей таблицы чисел функции Лапласа.

Метод генерации нормально распределенных чисел, использующий центральную предельную теорему

Общая идея метода следующая: требуется сложить случайные числа с любым законом распределения, нормализовать их и перевести в нужный диапазон нормального распределения.

Допустим, что нам надо в целях имитации получить ряд случайных чисел x, распределенных по нормальному закону с заданными математическим ожиданием mx и среднеквадратичным отклонением σx.

  1. Сложим n случайных чисел, используя стандартный ГСЧ:

Согласно ЦПТ числа V образуют ряд значений, распределенный по нормальному закону. Эти числа тем лучше описывают нормальный закон, чем больше параметр n. На практике n берут равными 6 или 12. Заметим, что закон распределения чисел V имеет математическое ожидание mV = n/2, σV = sqrt(n/12). Поэтому он является смещенным относительно заданного произвольного.

  1. С помощью формулы z = (V – mV)/σV нормализуем этот ряд. Получим нормализованный закон нормального распределения чисел Z. То есть mz = 0, σz = 1.

  2. Формулой (сдвиг на mx и масштабирование на σx) преобразуем ряд Z в ряд xx = z · σx + mx.

Пример. Смоделировать поток заготовок для обработки их на станке. Известно, что длина заготовки колеблется случайным образом. Средняя длина заготовки составляет 35 см, а среднеквадратичное отклонение реальной длины от средней составляет 10 см. То есть по условиям задачи mx = 35, σx = 10. Тогда значение случайной величины будет рассчитываться по формуле:V = r1 + r2 + r3 + r4 + r5 + r6, где r — случайные числа из ГСЧрр [0; 1], n = 6.  X = σx · (sqrt(12/n) · (V – n/2)) + mx = 10 · sqrt(2) · (V – 3) + 35  или  X = 10 · sqrt(2) · ((r1 + r2 + r3 + r4 + r5 + r6) – 3) + 35.

Метод Мюллера

Совсем простым методом получения нормальных чисел является метод Мюллера, использующий формулы: Z = √(–2 · Ln(r1)) · cos(2π · r2), где r1 и r2 — случайные числа из ГСЧрр [0; 1].

Можно также воспользоваться аналогичной формулой Z = √(–2 · Ln(r1)) · sin(2π · r2), где r1 и r2 — случайные числа из ГСЧрр [0; 1].

Пример. Материал поступает в цех один раз в сутки по 10 штук сразу. Расход материала из цеха случайный по нормальному закону с математическим ожиданием m = 10 и среднеквадратичным отклонением σ = 3.5. Вычислить вероятность дефицита на складе при запасе материала в начальный момент времени 20 штук.

При реализации в среде моделирования Stratum решение задачи будет выглядеть следующим образом.

z := sqrt(–2 · ln(rnd)) · cos(2 · PI · rnd) x := σ · z + m запас := запас + 10 запас := (запас – x) · ed(запас – x) дефицит := дефицит + not(ed(запас – x)) N := N + 1 P := дефицит/N stop(N > k)

z — нормальное нормализованное случайное число; x — нормальное число, ежедневный расход материалов; запас — состояние склада: начало дня, моделирование прихода; запас — состояние склада: конец дня, моделирование расхода; дефицит — счетчик дней, в течение которых наблюдался дефицит; N — количество дней; P — вероятность дефицита; k — моделирование в течение k дней.

Соседние файлы в папке МС