|
Добрый день. Я приступила сегодня к самостоятельному изучению курса "Моделирование систем". Хочу понять - необходимо ли отсылать мои решения практических заданий на сайт, (и если да - то где найти волшебную кнопку "Загрузить...") или практические задания остаются полностью на моей совести? (никто не проверяет, и отчётности по ним я предоставлять не обязана?) P.S.: тьютора я не брала |
Исследование качества генераторов случайных чисел
3. Исследование качества ГСЧ по критерию независимости случайных чисел с помощью нормированной автокорреляционной функции
Корреляционная функция называется автокорреляционной, если производится статистический анализ одного случайного процесса (или одной выборки случайных чисел).
Нормированной корреляционной функцией называется отношение центрированной корреляционной функции к дисперсии случайного процесса [4].
Для нахождения значений нормированной корреляционной функции необходимо предварительно центрировать значения случайного процесса или значения отсчетов случайной величины, т.е. выполнить операцию
,
где:
— случайное число;
— теоретическое математическое ожидание равномерного распределения.
Для определения корреляционной функции по результатам опыта выбирается достаточно большой объем выборки, чтобы можно было в широком диапазоне формировать разницу между двумя соседними значениями случайных чисел. Эту разницу для непрерывного времени обычно обозначают через
и тогда корреляционная функция обозначается как
. Если объем выборки составляет N, то диапазон вычисления корреляционной функции будет определяться как
. Величина
задает область определения корреляционной функции. Например,
может меняться от 0 до 6-8. При этом
должно быть много больше 6 или 8. Область суммирования принимает значения от 1 (первое случайное число выборки) до
.
После этого корреляционная функция вычисляется по следующей экспериментальной формуле:
![]() |
( 5.3) |
где
— случайное число из заданной выборки случайных чисел.
Расчет по приведенной формуле: если взято какое-либо случайное число, то другое случайное число отстоит от первого на величину
.
Обозначим нормированную корреляционную функцию как
. Центрированную корреляционную функцию обозначим через
. Тогда нормированная корреляционная функция будет определяться в виде отношения

где
— дисперсия данной выборки случайных чисел.
Вычисление
можно выполнять по приведенной экспериментальной формуле (5.3), если в ней применяются центрированные случайные числа.
ГСЧ считается хорошим, если при
, не равным нулю, модуль нормированной корреляционной функции меньше 0.1, т. е.
.
Приведем пример программного анализа независимости последовательности случайных чисел, формируемых функцией
, с помощью автокорреляционной функции.
Программный код решения примера:
clear,clc
%% Ввод параметров в интерактивном режиме
V1 = inputdlg({'Введите число больше 10.......................................',...
'Сдвиг больше 1'},'Корреляционная функция',1,{'800','6'});
%% Преобразование к числам с плавающей точкой
V2 = str2num(char(V1));
% Гарантированное выделение целой части
V = fix(V2(1));
z = fix(V2(2));
% Формирование выборки случайных чисел
N = rand(V,1);
%% Центрирование выборки случайных чисел относительно математического ожидания
Nc = N - 0.5;
%% Расчет автокорреляционной функции
sum1 = Nc(1:(V-z));
sum2 = Nc((1+z):V);
Rc = sum(sum1.*sum2)/(V-z);
s = var(N);
Rn = (Rc/s);
%% Проверка качества случайных чисел
if abs(Rn) < 0.1
fprintf('\n\t ГСЧ выcокого качеcтва\n')
else
fprintf('\n\t ГСЧ низкого качеcтва\n')
end
%% Интерактивное сообщение
helpdlg('Смотрите результаты в командном окне','Корреляционная функция')В программе по умолчанию исследуется объем выборки величиной 800 со сдвигом между числами, равным 6.
Задание 6
- Произведите расчет нормированной корреляционной функции для интервального сдвига
в пределах от 0 до 50. - Постройте график нормированной автокорреляционной функции, т. е. зависимость
от
. - Произведите расчет нормированной корреляционной функции для объема выборки в соответствии с номером компьютера:
Компьютер № 1: N = 410; Компьютер № 2: N = 520; Компьютер № 3: N = 630; Компьютер № 4: N = 740; Компьютер № 5: N = 850; Компьютер № 6: N = 960; Компьютер № 7: N = 1070; Компьютер № 8: N = 1180; Компьютер № 9: N = 1190; Компьютер № 10: N = 1210.
- Выполните первые три пункта задания для анализа ГСЧ в Excel.
- Выполните первые три пункта задания для анализа ГСЧ в Delphi (консольное приложение).
- Выполните первые три пункта задания для анализа ГСЧ в Pascal.
- Выполните первые три пункта задания для анализа ГСЧ в С.
- Выполните первые три пункта задания для анализа ГСЧ, созданного по методу срединных квадратов в MATLAB.
- Выполните первые два пункта задания для анализа ГСЧ, созданного по методу Фибоначчи в MATLAB.
- Выполните первые два пункта задания для анализа ГСЧ, созданного по линейному конгруэнтному методу в MATLAB.
- Сделайте заключение о системе программирования, в которой ГСЧ является наиболее качественным.
Контрольные вопросы
- По каким причинам не имеет практического применения метод срединных квадратов?
- Как осуществляется статистическая оценка программных генераторов псевдослучайных чисел?
- Что означает конгруэнтность двух чисел по заданному модулю?
- В программных генераторах псевдослучайных чисел используются детерминированные методы или вероятностные?
- Что определяет собой корреляционная функция?
- Что означает "центрированная автокорреляционная функция"? Для чего она применяется?
- Что определяет собой тест критерия Колмогорова–Смирнова?
- Что определяет собой длина периода генератора псевдослучайных чисел?
