Файл: Белгородский государственный национальный исследовательский университет.docx
Добавлен: 05.12.2023
Просмотров: 446
Скачиваний: 6
СОДЕРЖАНИЕ
Лабораторная работа №1. «Исследование псевдослучайных последовательностей»
Листинг датчика на основе алгоритма сложения:
Результат работы датчика сложения
Листинг датчика на основе алгоритма умножения:
Результат работы датчика умножения
Рисунок 10 – Полученные математическое ожидание и дисперсия
Рисунок 11 – Гистограмма, где размерность массива N равна 100000
Рисунок 12 – Полученные математическое ожидание и дисперсия
Результат работы датчика, встроенного в Matlab
Рисунок 13 – Гистограмма размерностью 1000
Рисунок 14 – Математическое ожидание и дисперсия
Рисунок 16 – Математическое ожидание и дисперсия.
Рисунок 17 - Гистограмма размерностью 100000
Листинг датчика сложения на новом интервале значений:
Рисунок 19 – Гистограмма, где размерность массива N равна 1000
Рисунок 20 – Полученные математическое ожидание и дисперсия
Рисунок 21 –Гистограмма, где размерность массива N равна 10000
Лабораторная работа №1. «Исследование псевдослучайных последовательностей»
Студента заочного отделения 2 курса 12002153 группыПасивенко А.Ю.Проверил: Белгород 2023Цель работы: Научиться генерировать последовательности случайных чисел и считать их вероятностные характеристики.Теоретическая часть
В настоящее время создано большое количество разнообразных программных продуктов для моделирования случайных процессов, однако, следует знать, что задача формирования случайных величин с заданным законом распределения по-прежнему полностью не решена. Возникает вопрос: почему? Ответ состоит в том, что нельзя искусственно получить случайный поток с заданными вероятностными свойствами, так как все существующие методы получения случайных чисел используют рекуррентные формулы, реализующие детерминированные алгоритмы. То есть, на практике находят широкое применение способы получения потоков «случайных» величин, которые удовлетворяют определенным критериям на случайность, хотя на самом деле таковыми не являются.Для формирования потоков случайных величин необходимо иметь последовательность чисел со случайным законом распределения, обычно равномерным. Формирование таких последовательностей задача довольно сложная. Строго говоря, утверждение о том, что конечная последовательность чисел, цифр или событий любого рода случайна, относится не к фактическому виду последовательности, а к способу ее получения. Случайным, например, является процесс подбрасывания монеты, отдельные результаты которого не могут быть предсказаны заранее, но соответствуют некоторому распределению вероятностей. Любую последовательность событий, сформированных таким способом, не совсем точно можно назватьслучайной. Однако важно понимать, что когда последовательность называют случайной, то имеют в виду не характер и свойства последовательности апостериори, а априорныеусловия ее формирования.Функцию получения равномерно распределенных чисел в интервале от 0 до 1 выполняют так называемые датчики случайных чисел, встраиваемые во все существующие программные средства для моделирования систем. На основе таких датчиков, как будет показано далее, можно получить последовательность случайных величин с любым распределением вероятностей.Простейшие датчики случайных чисел генерируют значения случайной величины, имеющей равномерное распределение в интервале (0, 1). Основная проблема разработки таких программ состоит в необходимости обеспечить случайные числа с помощью детерминированного процесса исполнения. Реально такие программы генерируют псевдослучайные числа. Качество последовательностей, генерируемых датчиком случайных чисел, оценивается близостью к действительно случайным с помощью многих тестов. Как показал многолетний опыт разработки, наиболее эффективными алгоритмами работы датчиков случайных чисел являются так называемые конгруэнтные генераторы. Алгоритмы их работы можно описать следующими соотношениями:алгоритм 1 (1)или алгоритм 2 . (2)Здесь всюду а, с, х1, х— целые числа, а в качестве выходного псевдослучайного числа используется действительное Uj= хj/т. Операции вычисления по модулю mod(m) обеспечиваются работой алгоритма в компьютерах с конечной разрядностью. Приведем сначала демонстрационный пример работы такого алгоритма при следующих параметрах: .Так как 32=25, следовательно, здесь используются пятиразрядные машинные слова для представления целых чисел. Пока эти числа не превышают 31, результаты операций очевидны. При превышении этого значения будет использоваться остаток от деления на целое, кратное 32 так, как это показано на рисунке 1.
Рис.1 Пример результатов работы датчика случайных чисел для m=32.Если продолжить вычисление, то на следующем шаге будет получена единица и цикл замкнется. Далее последовательность нельзя будет считать псевдослучайной. Ясно, что чем больше период, тем последовательность лучше отражает свойства случайного потока. Нетрудно убедиться, что период будет зависеть как от выбора т, так и от начального значения х.Таким образом, получить равномерное распределение чисел в единичном интервале можно используя либо формулу суммирования (1), либо формулу умножения чисел (2) по заданному модулю m.Для того чтобы убедиться в равномерности распределения полученных чисел можно воспользоваться методом на основе анализа гистограмм, построенных после проведения нескольких циклов работы датчика. Гистограмма – это разновидность диаграммы, столбцы которой пропорциональны числу значений случайной величины в заданных интервалах. Для построения гистограммы необходимо разделить весь диапазон значений случайной величины на несколько смежных поддиапазонов (интервалов), например на 10 или 100, а затем подсчитать, по сколько случайных величин из сформированного массива попало в каждый поддиапазон.Программу, реализующую построение гистограммы можно написать самостоятельно, или, в случае затруднений, использовать имеющуюся в системе MATLAB специальную функцию hist(Y). Здесь Y – массив случайных величин, для которого строится гистограмма для 10 интервалов. При необходимости задать другое количество интервалов (часто рекомендуется значение 100), следует использовать функцию вида hist(Y,n), где параметр n определяет заданное число интервалов.При построении гистограммы подсчитывается число попаданий полученных значений в эквидистантные интервалы, на которые разбивается вся область возможных значений чисел. Чем больше число выполненных испытаний, тем точнее полученное распределение стремится к равномерному распределению.Известно, что полной, исчерпывающей характеристикой случайной величины является ее закон распределения. Генерирование случайной величины с заданным законом распределения вероятностей, как известно, может выполнено на основе использования датчика случайной величины с равномерным распределением в интервале значений [0, 1] с последующим преобразованием полученных значений в соответствии с обратной функцией нужного закона распределения вероятностей.
Пусть, например, необходимо реализовать поток с интервалами между поступающими событиями, распределенными по показательному закону, отличному от равномерного. Для этого, как правило, используют механизм нелинейного преобразования случайной величины. Суть такого преобразования состоит в следующем.Если случайная величина X распределена по равномерному закону на интервале (0, 1), то значения неслучайной действительной функции f(X) также будут являться случайной величиной Y, функция распределения которой будет равна F(y)=fI(y)=P{Y<=y}. Соответственно обращая это утверждение, получаем, что для генерации случайной величины с функцией распределения F(y) можно построить детерминированную функцию f(x)=F-1(x) и получать искомые случайные числа как значения этой функции от аргумента, определяемого числом, являющимся случайной величиной с равномерным законом распределения на интервале (1,0).Учитывая вышеизложенное, рассмотрим в качестве важного практического примера получение случайных чисел, распределенных по экспоненциальному закону. Этот механизм используется, например, для формирования пуассоновского потока, в котором при описании межсобытийного интервала времени имеет место именно экспоненциальное распределение. Пусть необходимо генерировать случайные числа с функцией плотности вероятностииз случайных чисел с равномерной плотностью вероятности на интервале (0, 1).Сначала находится функцию распределения по плотности вероятностиЗатем определяется обратная функция, решая такое уравнение:Далее можно записать, что обратная функция, определенная конечно только на интервале (0, 1), будет иметь вид:Имея последовательность равномерно распределенных случайных чисел на интервале (0,1), можно вычислять значения случайных чисел с экспоненциальным распределением и средним значением
X с помощью следующего алгоритма: (3)Поступая аналогично, можно в принципе, генерировать случайные межсобытийные интервалы с любым заданным законом распределения.Так, например, имея последовательность равномерно распределенных случайных чисел на интервале (0,1), можно вычислять значения случайных чисел на основе показательного закона распределения с помощью следующего алгоритма: (4) Здесь Ui- случайная величина с равномерным распределением на интервале (0,1).Математическое ожидание в этом случае в соответствии с теорией должно быть равно среднеквадратическому отклонению случайной величины, а численно –1/λ.В системе MATLAB можно генерировать массив из п случайных чисел, равномерно распределенных на интервале (0, 1) с помощью функции X = rand(n).Для полученной псевдослучайной последовательности можно рассчитать ее вероятностные характеристики:Математическим ожиданием случайной величины Ui называется сумма произведений случайной величины на ее вероятность, т.е. Но, так как вероятности случайной величины Ui неизвестны, то оценка математического ожидания для случайной последовательности производится по формуле: (5)Дисперсией называется математическое ожидание квадрата отклонения случайной величины от ее математического ожидания, т.е. (6)Среднеквадратическим отклонением называется корень квадратный из дисперсии, т.е. (7)Aавтокорреляционная функция (нормированная) представляет собой последовательность коэффициентов корреляции, зависящих от величины сдвига, как от аргумента.