- •Исследование датчиков равномерно распределенных псевдослучайных чисел Вариант 19
- •Цель работы
- •Описание исследуемого алгоритма
- •Изучение работы мультипликативного датчика
- •Сравнение качества работы датчика с выборками разной длины
- •Ответы на контрольные вопросы
- •1. Сформулируйте требования оформления подпрограмм в среде matlab.
- •2. Поясните работу подпрограммы, вычисляющей статистику Колмогорова-Смирнова.
- •Заключение
- •Приложение Листинг программного кода
- •3. Объясните, как в программе вычисляется корреляционная функция.
3. Объясните, как в программе вычисляется корреляционная функция.
Качество датчиков оценивается тестами на «случайность». В качестве одного из них можно рассматривать вычисление значения корреляционной функции. Данная характеристика определяется по следующей формуле:
где: j=0, 1, …, N-1.
4. Почему выражение для Р можно использовать лишь при n=50.
Из полученных статистических показателей видно, что чем больше объём выборки, тем ближе среднее случайных величин к медиане границ генерации чисел, а также сокращается дисперсия. В связи с этим рекомендуется для изучения выполнять моделирование последовательностей, количество элементов которых не меньше 50.
Заключение
Данная лабораторная работа позволила ознакомиться с возможностями системы MATLAB, представляющей собой пакет прикладных приложений для решения задач технических вычислений с собственным одноименным языком программирования, используемым в этой среде.
В процессе выполнения заданий, представленных в методическом пособии, были изучены математические операторы и стандартные функции для работы с числами разных типов. Были получены навыки создания и заполнения векторов элементами, вычисляемыми по указанной рекуррентной формуле, а также реализации сортировки образованной последовательности с помощью команды sort(). Построение графиков и поверхностей – важное умение для анализа имеющихся данных, поэтому был осуществлен ряд действий с применением функций plot(), hist() и ecdf(). Также был приобретен опыт использования итерационной структуры for и создания пользовательских подпрограмм для выполнения повторяющихся команд с разными значениями входных параметров.
Приложение MATLAB – система многоцелевого назначения, которая пользуется популярность у специалистов многих направлений и позволяет легко и быстро выполнять высокоточные вычисления. В связи с этим оформление настоящей лабораторной работы даёт возможность извлечь знания, обладающие актуальностью и имеющие большую ценность в современном мире
Приложение Листинг программного кода
function proj = proj4(N)
% Исходные данные
p = 5;
M = 5^(2*p+1);
R1 = rand;
% Моделирование датчика
for i=1:N
R(i) = rem((M*R1),1);
R1 = R(i);
end
% Построение вариационного ряда
RR = sort(R);
% Расчет критерия согласия Колмогорова - Смирнова
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);
disp('Критерий согласия Колмогорова-Смирнова равен '), disp(Dn)
% Вероятность равномерности выборки
P = 1-2*exp(-2*N*(Dn^2));
disp('Вероятность равномерности выборки равна '), disp(P)
% Гистограмма Случайной Величины
figure(1)
hist(R,15)
title(['Гистограмма СВ N=',num2str(N)])
xlabel('Значения СВ')
ylabel('Количество СВ')
axis([-0.2 1.2 0 N]);
% Смоделированная Случайная Величина
figure(2)
plot(R)
grid;
title(['Распределение СВ N=',num2str(N)])
xlabel('Индекс СВ')
ylabel('Значения СВ')
% Эмпирическая Функция Распределения
figure(3)
ecdf(R)
title(['Распределение отсортированной СВ N=',num2str(N)])
xlabel('Значения СВ')
ylabel('Значения функции распределения')
end
