Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1

.docx
Скачиваний:
14
Добавлен:
16.04.2021
Размер:
835.88 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ

ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

ассистент

М. С. Иванова

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1

Исследование датчиков равномерно распределенных псевдослучайных чисел

по курсу: МОДЕЛИРОВАНИЕ

РАБОТУ ВЫПОЛНИЛА

СТУДЕНТКА ГР.

4716

С.А. Янышева

подпись, дата

инициалы, фамилия

Санкт-Петербург

2020

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

Исследование датчиков равномерно распределенных псевдослучайных чисел

  1. Цель работы

Ознакомление с методами и алгоритмами моделирования в программной среде MathCAD или MatLab случайных событий, а также изучение тестов для проверки качества моделирования.

  1. Вариант задания

Мультипликативные датчики Полларда

  1. Ход работы

Разработана программа генерации псевдослучайных чисел, результат работы которой приведён на рисунках 1-3, программный код представлен в листинге 1.

Рисунок 1 – Объем выборки 100

Рисунок 2 – Объем выборки 600

Рисунок 3 – Объем выборки 1000

На рисунке 4 представлены статистические показатели для СВ с объемом выборки равным 100, 600 и 1000.

Рисунок 4 – Статистические показатели

  1. Программный код

Листинг 1

M = [286588 434446 388251];

K = [0.1452 0.8242 0.7653];

L = 997783;

temp = [];

n = [100 600 1000];

for i = 1:3

[M,K,L,temp] = myRand(M,K,L,n(i));

disp(['Среднее значение n=' int2str(n(i)) ': ' num2str(mean(temp))])

disp(['Дисперсия n=' int2str(n(i)) ': ' num2str(cov(temp))])

disp(['Стандартное отклонение выборки n=' int2str(n(i)) ': ' num2str(std(temp))])

end

function [M, K, L, R] = myRand(M, K, L, x)

R = 1:x;

for i = 1:x

n = length(K)+1;

k = (M(1)*K(n-1)+M(2)*K(n-2)+M(3)*K(n-3))-floor((M(1)*K(n-1)+M(2)*K(n-2)+M(3)*K(n-3))/L)*L;

K = [K k];

R(i) = k/L;

end

figure(i)

plot(R)

title(['СВ N = ', num2str(i)])

ylabel('Значения СВ')

xlabel('Индекс СВ')

Y = sort(R);

figure(i+3)

plot(Y)

title(['Отсортированные СВ N = ', num2str(i)])

ylabel('Значения СВ')

xlabel('Индекс СВ')

end

  1. Выводы о проделанной работе

В результате выполнения лабораторной работы, были получены практические навыки работы с методами и алгоритмами моделирования в программной среде MatLab случайных событий, а также проведены тесты для проверки качества моделирования. Реализованный алгоритм даёт корректные результаты в интервале от 0 до 1. Из полученных статистических показателей видно, что чем больше объём выборки, тем ближе среднее случайных величин к медиане границ генерации чисел, сокращается дисперсия.

Соседние файлы в предмете Моделирование