МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА 44
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
Ассистент
должность, уч. степень, звание
подпись, дата
Григорьев Е.К.
инициалы, фамилия
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1
”Исследование датчиков равномерно распределенных
псевдослучайных чисел”
по дисциплине: Моделирование
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. №
Студенческий билет №
В9441
номер группы
подпись, дата
2019/1074
Санкт-Петербург 2021
А.А. Цывунина
инициалы, фамилия
1. Цель работы
Ознакомление с методами и алгоритмами получения в программной среде
MATLAB псевдослучайных чисел, равномерно распределенных на интервале
(0,1), а также изучение тестов для проверки качества генерируемых чисел.
Формулы по которым мы получали случайные числа:
2. Листинги программы в среде MATLAB и гистограммы
Алгоритм 1 (Мультипликативные датчики):
Рис.1. (Гистограмма 1-ого алгоритма генерирующая 100 чисел)
Рис.2. (Гистограмма 1-ого алгоритма генерирующая 500 чисел)
2
Рис.3. (Гистограмма 1-ого алгоритма генерирующая 1000 чисел)
Алгоритм 2 (1-ый вариант для линейных конгруэнтных датчиков):
Рис.4. (Гистограмма 2-ого алгоритма генерирующая 100 чисел)
Рис.5. (Гистограмма 2-ого алгоритма генерирующая 500 чисел)
3
Рис.6. (Гистограмма 2-ого алгоритма генерирующая 1000 чисел)
Алгоритм 3 (2-ый вариант для линейных конгруэнтных датчиков):
Рис.7. ( Гистограмма 3-ого алгоритма генерирующая 100 чисел)
4
Рис.8. (Гистограмма 3-ого алгоритма генерирующая 500 чисел)
Рис.9. (Гистограмма 3-ого алгоритма генерирующая 1000 чисел)
3. Таблицы
№1
Табл. №1 (Значение для 1-ого алгоритма)
№2
Табл. №2 (Значение для 2-ого алгоритма)
5
№3
Табл. №3 (Значение для 3-ого алгоритма)
4. Листинги алгоритмов
Алгоритм 1:
clc
clear all
close all
N=100;
M=65093;
m=10;
R=[];
R(1)=2^-m;
for i=2:1:N+1;
R(i)=M*R(i-1);
R(i)=R(i)-fix(R(i));
end
figure(1);
hist(R);
grid on
xlabel('значения')
ylabel('частота')
axis([0 1 0 50]);
Алгоритм 2:
clc
clear all
close all
N=100;
R=[];
R(1)=0;
for i=2:N+1;
R(i)=(pi+11*R(i-1));
R(i)=R(i)-fix(R(i));
end
6
disp(R);
figure(1);
hist(R)
grid on
xlabel ('значения')
ylabel ('частота')
axis ([0 1 0 50]);
Алгоритм 3:
clc;
clear all;
close all;
Z=0.011;
N=100;
R=(100);
R(1)=0;
for i=2:N+1
R(i)=R(i-1)/(Z+i*0.001)+pi;
R(i)=R(i)-fix(R(i));
end
disp(R);
S = std(R);
M = mean(R);
V = var(R);
figure(1)
histogram(R);
grid on
xlabel('значения')
ylabel('частота')
axis([0 1 0 150]);
5. Вывод
Изучены методы и алгоритмы получения в программной среде MATLAB
псевдослучайных чисел, равномерно распределенных на интервале (0,1), а
также изучены тесты для проверки качества генерируемых чисел.
7