Главная страница
Навигация по странице:

  • Цель работы Провести исследование способов формирования случайной величины на основе датчиков псевдослучайных чисел.Общая постановка задачи

  • Листинг датчика на основе алгоритма сложения

  • Результат работы датчика сложения

  • Листинг датчика на основе алгоритма умножения

  • Результат работы датчика умножения

  • Рисунок 10 – Полученные математическое ожидание и дисперсия

  • Рисунок 11 – Гистограмма, где размерность массива N равна 100000

  • Результат работы датчика, встроенного в Matlab

  • Рисунок 13 – Гистограмма размерностью 1000

  • Рисунок 16 – Математическое ожидание и дисперсия.

  • Рисунок 17 - Гистограмма размерностью 100000

  • Листинг датчика сложения на новом интервале значений

  • Рисунок 19 – Гистограмма, где размерность массива N равна 1000

  • Рисунок 21 –Гистограмма, где размерность массива N равна 10000

  • Контрольные вопросы к защите 1. Почему нельзя получить последовательность действительно случайных чисел программными методами

  • 2. На чем основан принцип построения датчика случайных чисел с равномерным распределением

  • 3. Каким образом достигается распределение значений случайных чисел датчика в интервале значений от 0 до 1

  • 4. Как изменить границы интервала [0,1], например, от n1 до n2, где n – целые или вещественные числа

  • Исследование способов формирования случайной величины на основе псевдослучайных последовательностей. Лаб 1. Лабораторная работа 1 по теме Исследование способов формирования случайной величины на основе псевдослучайных последовательностей


    Скачать 207.93 Kb.
    НазваниеЛабораторная работа 1 по теме Исследование способов формирования случайной величины на основе псевдослучайных последовательностей
    АнкорИсследование способов формирования случайной величины на основе псевдослучайных последовательностей
    Дата29.01.2023
    Размер207.93 Kb.
    Формат файлаdocx
    Имя файлаЛаб 1.docx
    ТипЛабораторная работа
    #911412

    Лабораторная работа №1

    по теме:

    «Исследование способов формирования случайной величины на основе псевдослучайных последовательностей»

    Цель работы

    Провести исследование способов формирования случайной величины на основе датчиков псевдослучайных чисел.
    Общая постановка задачи

    Для выполнения лабораторной работы необходимо:

    • Изучить теоретический материал и ответить на контрольные вопросы.

    • Самостоятельно в любой доступной программной среде (Matlab (лучше всего!), Excel и т.д.) разработать программные модули, реализующие рассмотренные выше датчики случайных чисел в соответствии с исходными данными в приведенной ниже таблице.

    • Задать произвольные значения входных параметров a, c, m, x и сгенерировать массивы случайных чисел размерностью N=1000 с использованием разработанных модулей и проанализировать полученные результаты визуально по гистограммам. Рекомендуется значение модуля m задавать значительно больше переменных a и с. Если гистограммы имеют пустые столбцы, изменить входные параметры.

    • Рассчитать для полученных массивов чисел математическое ожидание и дисперсию и сравнить их с теоретическими значениями m=0,5 и D=0,0833.

    • Выполнить ещё несколько раз пункты 2 и 3 для различных значений входных параметров a, c, m, x, а также для различного числа сгенерированных чисел в массиве N (увеличивать на порядок несколько раз), стараясь получить датчики с возможно близкими значениями математического ожидания и дисперсии к теоретическим значениям и с равномерным распределением столбцов гистограммам.

    • Если при увеличении объема массива N сгенерированных чисел вид гистограммы не изменяется, то датчик зациклился и следует изменить входные параметры.

    • Сделать выводы о работе датчиков для каждого из двух алгоритмов в зависимости от числа сгенерированных чисел в массиве N.

    • Исследовать параметры встроенного в системе MATLAB датчика равномерно распределенных на интервале (0, 1) с помощью встроенной функции X = rand(n) сравнив качество его работы с разработанными самостоятельно датчиками для одинаковых значений параметра N.

    • Используя свой датчик сформировать массив чисел с равномерным распределением в другом интервале значений [а, в], и рассчитать математическое ожидание и дисперсию для нового интервала. Значение параметра, а задать по номеру студента в списке группы, а параметр определить по формуле в=2,5 х а.

    • Оформить бланк отчета установленным ниже образом.



    Листинг датчика на основе алгоритма сложения:

    a = 565;

    c = 323;

    m = 56238423983;

    x = ones;

    n = 1000;

    u = 1/m;

    for i=1:n

    x(i+1) = mod((a*x(i)+c),m);

    u(i+1) = x(i+1)/m;

    end

    figure

    histogram(u,n);
    M = sum(u)/n;

    disp("M = "); disp(M);

    Dr = zeros;

    for i=1:n

    Dr(i) = (u(i)-M)^2;

    end

    D = sum(Dr)/n;

    disp("D = "); disp(D);

    Результат работы датчика сложения

    Для построения гистограммы использовался массив N = 1000 при a = 565, c =323, m = 56238423983.



    Рисунок 1 – Гистограмма, где размерность массива N равна 1000



    Рисунок 2 – Полученные математическое ожидание и дисперсия

    Рассматривая полученные данные (рисунки 1-2) затруднительно сделать вывод о том смог ли зациклиться датчик сложения. Результаты дисперсии и математического ожидания приблизительно равны теоретическим данным. Для более точного анализа работы датчика увеличим размерность последовательности до 10000.



    Рисунок 3 – Гистограмма, где размерность массива N равна 10000



    Рисунок 4 – Полученные математическое ожидание и дисперсия

    Рассматривая полученные данные (рисунки 3-4) затруднительно сделать вывод о том смог ли зациклиться датчик сложения. Результаты дисперсии и математического ожидания приблизительно равны теоретическим данным. Для более точного анализа работы датчика увеличим размерность последовательности до 100000.



    Рисунок 5 – Гистограмма, где размерность массива N равна 100000



    Рисунок 6 – Полученное математическое ожидание и дисперсия

    Рассматривая полученные данные (рисунки 5-6) затруднительно сделать вывод о том смог ли зациклиться датчик сложения. Результаты дисперсии и математического ожидания приблизительно равны теоретическим данным. Для более точного анализа работы датчика увеличим размерность последовательности до 1000000.



    Рисунок 7 – Гистограмма, где размерность массива N равна 1000000



    Рисунок 8 – Полученное математическое ожидание и дисперсия

    Рассматривая полученные данные (рисунки 7-8) можно сделать вывод о том, что датчик сложения не зациклился. Математическое ожидание и дисперсия примерно равны теоретическим и меняются незначительно. В каждый интервал попадает одинаковое количество точек.

    Листинг датчика на основе алгоритма умножения:

    x = 565;

    m = 56238423983;

    arr = ones;

    n = 1000;

    u = 1/m;

    for i=1:n

    arr(i+1) = mod(x*arr(i), m);

    u(i+1) = arr(i+1)/m;

    end

    figure

    histogram(u,n);
    M = sum(u)/n;

    disp("M = "); disp(M);

    Dr = zeros;

    for i=1:n

    Dr(i) = (u(i)-M)^2;

    end

    D = sum(Dr)/n;

    disp("D = "); disp(D);
    Результат работы датчика умножения

    Для построения гистограммы использовался массив N = 1000 при x = 565, m =56238423983.



    Рисунок 9 – Гистограмма, где размерность массива N равна 1000


    Рисунок 10 – Полученные математическое ожидание и дисперсия

    Анализируя, гистограмму на рисунке 9 заметим, что при данной размерности массива N невозможно прийти к точному выводу смог ли зациклиться датчик умножения. При этом рассчитанные математическое ожидание и дисперсия приблизительно равны теоретическим, поэтому для более точных результатов следует увеличить размерность N до 100000.


    Рисунок 11 – Гистограмма, где размерность массива N равна 100000


    Рисунок 12 – Полученные математическое ожидание и дисперсия

    Изучая, гистограмму на рисунке 11 заметим, что при данной размерности массива N можно прийти к выводу, что данный датчик умножения не зациклился. Математическое ожидание и дисперсия примерно равны теоретическим и меняются незначительно.

    Результат работы датчика, встроенного в Matlab

    Для построения гистограммы использовался массив N = 1000.


    Рисунок 13 – Гистограмма размерностью 1000


    Рисунок 14 – Математическое ожидание и дисперсия

    Анализируя, гистограмму на рисунке 13 заметим, что при данной размерности массива N невозможно прийти к точному выводу смог ли зациклиться встроенный датчик rand(n). При этом рассчитанные математическое ожидание и дисперсия приблизительно равны теоретическим, поэтому для более точных результатов следует увеличить размерность N до 10000.



    Рисунок 15 - Гистограмма размерностью 10000

    Рисунок 16 – Математическое ожидание и дисперсия.

    Анализируя, гистограмму на рисунке 15 заметим, что при данной размерности массива N невозможно прийти к точному выводу смог ли зациклиться встроенный датчик rand(n). При этом рассчитанные математическое ожидание и дисперсия приблизительно равны теоретическим, поэтому для более точных результатов следует увеличить размерность N до 100000.


    Рисунок 17 - Гистограмма размерностью 100000



    Рисунок 18 - Математическое ожидание и дисперсия

    Изучая, гистограмму на рисунке 17 заметим, что при данной размерности массива N можно прийти к выводу, что данный встроенный датчик rand(n) не зациклился. Математическое ожидание и дисперсия примерно равны теоретическим и меняются незначительно. В каждый интервал попадает одинаковое количество точек.

    Листинг датчика сложения на новом интервале значений:

    a = 565;

    c = 323;

    m = 56238423983;

    x = ones;

    n = 1000;

    u = 1/m;

    Num = 24;

    B = 2.5*Num;

    g = zeros;
    for i = 1:n

    x(i+1) = mod(a*x(i) + c,m);

    u(i+1) = x(i+1)/m;

    g(i+1) = Num+(B-Num)*u(i+1);

    end

    figure

    histogram(g,n);
    M = sum(u)/n;

    disp("M = "); disp(M);

    Dr = zeros;

    for i=1:n

    Dr(i) = (u(i)-M)^2;

    end

    D = sum(Dr)/n;

    disp("D = "); disp(D);
    Для построения гистограммы использовался массив N = 1000 при a = 565, c = 323, m = 56238423983 на интервале [24; 60].


    Рисунок 19 – Гистограмма, где размерность массива N равна 1000


    Рисунок 20 – Полученные математическое ожидание и дисперсия

    Анализируя, гистограмму на рисунке 19 заметим, что при данной размерности массива N невозможно прийти к точному выводу смог ли зациклиться датчик сложения на новых интервалах. Для более точных результатов следует увеличить размерность N до 10000.


    Рисунок 21 –Гистограмма, где размерность массива N равна 10000


    Рисунок 22 – Полученные математическое ожидание и дисперсия

    Анализируя, гистограмму на рисунке 21 заметим, что при данной размерности массива N невозможно прийти к точному выводу смог ли зациклиться датчик сложения на новых интервалах.
    Вывод

    В ходе выполнения лабораторной работы были изучены методы формирования случайных чисел при помощи различных датчиков псевдослучайных чисел на определенном интервале.

    Была исследована работа двух алгоритмов формирования случайных чисел: сложения и умножения. В процессе увеличения количества формируемых случайных чисел оба датчика не зацикливаются. Чем больше производится выборка чисел, тем точнее вычисляются математическое ожидание и дисперсия. Это связано с тем, что все точки распределяются равномерно по интервалу случайных чисел. Поэтому эти методы можно назвать псевдослучайными, так как случайные числа, которые они образуют начинают повторяться.

    Также в ходе выполнения был рассмотрен встроенный датчик rand(n), он также, как и собственные алгоритмы формирования при увеличении количества случайных чисел не зацикливается, что говорит об аналогичном алгоритме генерирования псевдослучайных чисел.

    При увеличении интервала значений увеличивается математическое ожидание и дисперсия, при этом математическое ожидание становится больше дисперсии, так как при увеличении интервала увеличивается и разброс случайных чисел.
    Контрольные вопросы к защите


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

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


    2. На чем основан принцип построения датчика случайных чисел с равномерным распределением?

    За эталон генератора случайных чисел (ГСЧ) принят такой генератор, который порождает последовательность случайных чисел с равномерным законом распределения в интервале (0; 1). За одно обращение данный генератор возвращает одно случайное число. Если наблюдать такой ГСЧ достаточно длительное время, то окажется, что, например, в каждый из десяти интервалов (0; 0.1), (0.1; 0.2), (0.2; 0.3), …, (0.9; 1) попадет практически одинаковое количество случайных чисел — то есть они будут распределены равномерно по всему интервалу (0; 1). Если изобразить на графике k = 10 интервалов и частоты Ni попаданий в них, то получится экспериментальная кривая плотности распределения случайных чисел.


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

    В алгоритме используют два положительных, нечетных целых числа, каждое из которых может содержать до четырех цифр. Первое из этих двух чисел, никогда не меняющее свое значение называется «ядром», второе, изменяющееся — «множителем». Каждый раз, когда надо получить новое случайное число, значение множителя изменяют в соответствии с некоторой последовательностью. Первым шагом алгоритма является умножение ядра на множитель.

    Непрерывная случайная величина имеет равномерное распределение на отрезке [a,b], если она принимает значения только из этого отрезка, и любое число из этого отрезка не имеет преимущества перед другими числами этого отрезка в смысле возможности быть значением этой случайной величины.


    4. Как изменить границы интервала [0,1], например, от n1 до n2, где n – целые или вещественные числа?

    Изменить границы интервала [0,1] можно при помощи умножения случайной величины на сумму новых интервалов.



    написать администратору сайта