![]() |
Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Моделирование случайных чисел
Цель работы
Изучить методы и алгоритмы моделирования случайных чисел.
Теоретические сведения Моделирование на ЭВМ процессов функционирования различных систем связано с выработкой большого количества случайных чисел с заданными законами распределения. Для этой цели используется обычно один из следующих способов: - табличный (файловый) – ввод таблиц равномерно распределённых случайных чисел во внешнюю или оперативную память ЭВМ; - аппаратный (физический) – использование специального приспособления к ЭВМ – " датчика" случайных чисел, формирующего случайные величины путём физического моделирования некоторых случайных процессов (излучения радиоактивных источников, шумов электронных ламп и др.); - алгоритмический (программный) – использование псевдослучайных (квазислучайных) последовательностей, реализуемых программным генератором случайных чисел. Псевдослучайными числами называются числа, вырабатываемые ЭВМ рекуррентным способом по специальным алгоритмам, когда каждое последующее число Достоинства метода псевдослучайных чисел.
Генераторы случайных чисел Метод Неймана. Первый алгоритм для получения псевдослучайных чисел был предложен Дж. Нейманом. Его называют методом середины квадратов. Пусть задано четырехзначное число
а) конгруэнтные методы Самое широкое применение при моделировании на ЭВМ получили конгруэнтные методы генерации псевдослучайных последовательностей, в основе которых лежит фундаментальное понятие конгруэнтности. Два целых числа А и В конгруэнтны (сравнимы) по модулю m, если их разность делится на m без остатка. То есть В - А = km, где k - целое. Это определение записывается так A = B (mod m).
Например: 1984 º 4 (mod10), 5008 º 8 (mod 103) и т.д. Величина m берется равной длине машинного слова m = 2b, где b — число бит в машинном слове. Мультипликативный конгруэнтный метод (АлгоритмЛемера). Последовательность случайных чисел
где m - модуль, m > 0; a - множитель, 0 ≤ a < m;
Если m и а являются целыми, то создается последовательность целых чисел в диапазоне Последовательность случайных чисел периодически повторяются. Это связано с тем, что числа Последовательность чисел
Линейный конгруэнтный метод. Схема метода предложена Д.Лехмером в 1949 году. Работа этих генераторов основана на использовании формулы:
Число m выбирается аналогично предыдущему пункту. Множитель а предпочтительно выбирать в интервале [0, 01m; 0, 99m]. Значение с может быть произвольным, но не должно иметь общего множителя с m. При b=0 получаем, рассмотренный выше мультипликативный метод. С вычислительной точки зрения линейный метод генерации последовательности неотрицательных целых чисел сложнее мультипликативного на одну операцию сложения, но при этом возможность выбора дополнительного параметра позволяет уменьшить возможную корреляцию получаемых чисел. Однако экспериментальная проверка качества генерируемой последовательности чисел на основе этой формулы является сложнее.
Квадратичный конгруэнтный метод. Последовательность случайных чисел вычисляется с помощью следующего рекуррентного соотношения
Наибольшее значение периода данного датчика достигается при четном a, нечетном с и если нечетное b удовлетворяет условию Кубический конгруэнтный метод. Последовательность случайных чисел вычисляется с помощью следующего рекуррентного соотношения
Для практических расчетов принимают
Генератор Фибоначчи. Последовательность случайных чисел вычисляется с помощью следующего рекуррентного соотношения
где BBS – генератор. Данный генератор вычисляется по формуле
Вначале выбираются два больших простых числа p и q. Числа p и q должны удовлетворять условиям Системный генератор MS Fortran.
б) тригонометрические методы Основаны на использовании ошибки вычисления косинуса больших алгоритмов.
где n - целое число, определяемое типом ЭВМ;
Популярное:
|
Последнее изменение этой страницы: 2016-08-31; Просмотров: 2881; Нарушение авторского права страницы