
- •Исследование датчиков равномерно распределенных псевдослучайных чисел Вариант 19
- •Цель работы
- •Описание исследуемого алгоритма
- •Изучение работы мультипликативного датчика
- •Сравнение качества работы датчика с выборками разной длины
- •Ответы на контрольные вопросы
- •1. Сформулируйте требования оформления подпрограмм в среде matlab.
- •2. Поясните работу подпрограммы, вычисляющей статистику Колмогорова-Смирнова.
- •3. Объясните, как в программе вычисляется корреляционная функция.
- •Заключение
- •Приложение Листинг программного кода
Сравнение качества работы датчика с выборками разной длины
Выполним сопоставление значений численных параметров, выведенных функцией proj4() в процессе моделирования трёх различных псевдослучайных последовательностей, состоящих из 100, 600 и 1000 элементов. Все полученные характеристики представлены в таблице 1.
Таблица 1 – Сопоставление параметров последовательностей разных длин |
||
Длина выборки |
Критерий согласия Колмогорова-Смирнова |
Вероятность равномерности |
N = 100 |
0.07 |
0.2504 |
N = 600 |
0.0569 |
0.959 |
N = 1000 |
0.0326 |
0.7601 |
В ходе анализа сведений из таблицы можно сделать следующие выводы:
с увеличением длины выборки уменьшается отклонение эмпирической случайной величины от теоретических значений, соответствующих равномерному закону распределения;
чем больше элементов входит в массив, тем больше их распределение совпадает с гипотетическим ожиданием и, соответственно, больше вероятность равномерности, однако на данное значение также оказывает влияние множество факторов, в связи с чем могут наблюдаться расхождения.
Ответы на контрольные вопросы
1. Сформулируйте требования оформления подпрограмм в среде matlab.
Любая подпрограмма в MATLAB состоит из заголовка и тела функции, в котором располагаются исполняемые операторы.
Структура описания функции:
%Заголовок
function[выходные формальные параметры] = Имя функции(входные формальные параметры)
%Тело функции
<перечень выражений и операторов на языке MATLAB>
%Окончание функции
end
В заголовке процедуры, помимо ключевого слова «function» и имени функции, перечисляются входные и выходные формальные параметры, которые служат для обмена значениями между процедурой и вызывающей ее программой.
Список входных формальных параметров заключается в круглые скобки, а список выходных параметров в квадратные.
Вызов функции в основной программе осуществляется по ее имени с указанием фактических входных параметров.
При вызове функции ей при помощи аргументов (формальных параметров) могут быть переданы некоторые значения (фактические параметры), используемые во время выполнения подпрограммы.
После завершения работы функции фактические значения присваиваются выходным параметрам.
Допускается также использование подпрограмм, не имеющих аргументов и не возвращающих никаких значений. Действие таких подпрограмм может заключаться, например, в выводе на печать некоторых данных и т.п.
2. Поясните работу подпрограммы, вычисляющей статистику Колмогорова-Смирнова.
В среде MATLAB величину критерия согласия Колмогорова-Смирнова можно вычислить с помощью следующих программных инструкций:
for i=1:N
A(i) = abs(RR(i)-(i-1)/N);
B(i) = abs(RR(i)-i/N);
end
for i=1:N
D(i)=max(A(i),B(i));
end
Dn = max(D);
В приведенном фрагменте используются две циклические конструкции for от 1 до N. В первом вычисляются значения векторов А и В. В выражениях, предназначенных для этого, применяется функция abs(). Во второй же структуре выбирается максимальный элемент среди пары членов с одинаковыми индексами из двух данных массивов, за счет чего формируется новая последовательность D. Результирующая величина – наибольшее значение вектора D. Выполнение описанного действия возможно благодаря встроенной команде max().