Генерация равномерно распределенной на отрезке случайной величины и имитация случайных событий

Получение случайных чисел, равномерно распределенных на интервале, вычислительные алгоритмы, позволяющие получить длинные последовательности псевдослучайных чисел. Метод линейного конгруента Лехмера. Имитация наступления события с заданной вероятностью.

Рубрика Экономико-математическое моделирование
Вид лабораторная работа
Язык русский
Дата добавления 21.05.2014
Размер файла 168,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Лабораторный практикум

Генерация равномерно распределенной на отрезке (0,1) случайной величины и имитация случайных событий

Оглавление

  • 1. Цель работы
  • 2. Теоретические сведения
  • 3. Получение случайных чисел, равномерно распределенных на интервале [0,1]
  • 4. Имитация наступления события с заданной вероятностью
  • 5. Задание
  • 6. Отчет по работе
  • 7. Контрольные вопросы
  • Приложение

1. Цель работы

Изучение:

1) метода линейного конгруента получения псевдослучайных чисел, равномерно распределенных на интервале 0-1,

2) метода имитации наступления (ненаступления) событий.

2. Теоретические сведения

Эффективными методами исследования процессов и систем, получившими широкое распространение, являются методы компьютерного моделирования, в частности, имитационное моделирование и метод статистических испытаний (метод Монте-Карло). В основе вычислений по методу статистических испытаний лежит случайный выбор чисел из заданного вероятностного распределения. При практических вычислениях эти числа берут из таблиц или получают путем некоторых операций, результатами которых являются псевдослучайные числа с теми же свойствами, что и числа, получаемые путем случайной выборки. Имеется большое число вычислительных алгоритмов, которые позволяют получить длинные последовательности псевдослучайных чисел.

3. Получение случайных чисел, равномерно распределенных на интервале [0,1]

псевдослучайный алгоритм конгруент вероятность

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

Алгоритм имеет четыре параметра:

- модуль (основание системы), ;

- множитель, ;

- приращение, ;

- начальное значение, или зерно (seed), .

Последовательность случайных чисел получается с помощью следующего итерационного равенства:

.

Если , и являются целыми, то создается последовательность целых чисел в диапазоне .

Выбор значений , и является критичным для разработки хорошего генератора случайных чисел.

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

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

- функция должна создавать полный период, т.е., должны появиться все числа между 0 и до того, как создаваемые числа начнут повторяться;

- создаваемая последовательность должна появляться случайно. Фактически последовательность чисел не является случайной, так как она создается детерминированным образом, но различные статистические тесты, которые могут применяться, должны показывать, что последовательность случайна;

- программа, реализующая метод, должна эффективно выполняться на 32-битных процессорах.

Значения , и должны быть выбраны таким образом, чтобы эти три критерия выполнялись. В соответствии с первым критерием можно показать, что если является простым и , то при определенном значении период, создаваемый функцией, будет равен . Для 32-битной арифметики соответствующее простое значение . Таким образом, функция создания псевдослучайных чисел имеет вид:

.

Только небольшое число значений удовлетворяет всем трем критериям. Одно из таких значений , которое использовалось в семействе компьютеров IBM 360.

Генератор широко применяется, и прошел более тысячи тестов, больше, чем все другие генераторы псевдослучайных чисел.

Программа на языке С++ имеет следующий вид

Для задания базового значения в программе использовано битовое содержимое таймера компьютера, что обеспечивает случайных характер выбора начальной точки последовательности чисел. Это удобно для проведения экспериментов на модели, но создает сложности в процессе ее отладки, так как не дает возможность обеспечить воспроизводимость запусков. С целью обойти эту проблему следует задавать в качестве начального значения конкретную величину, одну и ту же для всех отладочных тестов.

4. Имитация наступления события с заданной вероятностью

Пусть некоторое событие происходит с вероятностью . Требуется воспроизвести факт наступления события .

Поставим в соответствие событию событие , состоящее в том, что , где - случайное число с равномерным на интервале (0…1) законом распределения. Вычислим вероятность события :

.

Таким образом, события и являются равновероятными. Отсюда следует процедура имитации факта появления события . Она сводится к проверке неравенства , и алгоритм заключается в следующем:

1) Генерируется случайное число ;

2) Проверяется выполнение неравенства ;

3) Если неравенство выполняется, считается, что событие произошло, если нет - не произошло.

5. Задание

Подготовка эксперимента

Соберите проект С++ в соответствии с указаниями, содержащимися в Приложении (используется модуль 001). Запустите табличный редактор Microsoft Excel.

Изучение генератора случайных чисел

1. Запустите несколько раз программу для небольшого значения NexpR с получением трассировочного вывода и убедитесь, что это приводит к появлению различных последовательностей псевдослучайных чисел.

2. Замените (long)time(NULL) в тексте функции rundum() на выражение

или на заранее просчитанное по этой формуле значение.

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

3. Восстановите текст функции rundum() и осуществите прогоны программы с разными значениями числа выполнения программы-генератора NexpR, задавая в разделе параметров модели значения NexpR равные

- 100;

- 1000;

- 10000.

Для каждого значения NexpR проведите по пять запусков и найдите среднее значение для оценок математического ожидания случайной величины, получаемой в результате выполнения программы-генератора, по всем запускам. Результаты занесите в Excel-таблицу:

N

1

2

3

4

5

СРЕДНЕЕ

100

1000

10000

100000

Чтобы отменить вывод в файл итог каждого испытания, возьмите в знаки комментария оператор вывода получаемого значения в цикле.

4. Проанализируйте полученные данные.

5. Для отключения в последующих запусках экспериментов с генератором случайных чисел установите в разделе "Параметры модели" NexpR=0.

Изучение алгоритма имитации наступления событий

1) В разделе параметров модели задайте значение вероятности наступления события равное

2) Выполните пробные прогоны программы с небольшим значением NexpE и изучите трассировочный вывод.

3) Осуществите прогоны программы с разными значениями числа выполнения программы-генератора NexpE, задавая в разделе параметров модели значения NexpE равные

- 100

- 1000

- 10000

4) Для каждого значения NexpE проведите по пять запусков и найдите среднее значение для оценок математического ожидания случайной величины, получаемой в результате выполнения программы-генератора, по всем запускам. Результаты занесите в Excel-таблицу:

N

1

2

3

4

5

СРЕДНЕЕ

100

1000

10000

Чтобы отменить вывод в файл итоги всех испытаний, возьмите в знаки комментария оператор вывода получаемого в цикле значения.

5) Проанализируйте полученные данные.

6) Для отключения в последующих запусках экспериментов с программой имитации наступления события установите в разделе "Параметры модели" NexpR=0.

6. Отчет по работе

Отчет по работе должен включать таблицы результатов экспериментов с

1) генератором случайных чисел

2) имитатором наступления события

7. Контрольные вопросы

1. Чем вызывается необходимость применения программного генератора псевдослучайных чисел?

2. Чем отличается псевдослучайное число от случайного?

3. Какие требования предъявляются к программным генераторам псевдослучайных чисел?

4. В каких случаях целесообразно задавать начальное значение в виде константы, а в каких - случайной (псевдослучайной) величиной?

5. Какой прием обычно используется для задания начального значения последовательности случайных чисел?

6. Что понимается под имитацией случайного события?

7. Какой прием применяется для имитации случайных событий?

Приложение

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.