Добрый день. Я приступила сегодня к самостоятельному изучению курса "Моделирование систем". Хочу понять - необходимо ли отсылать мои решения практических заданий на сайт, (и если да - то где найти волшебную кнопку "Загрузить...") или практические задания остаются полностью на моей совести? (никто не проверяет, и отчётности по ним я предоставлять не обязана?) P.S.: тьютора я не брала |
Моделирование непрерывных случайных величин с заданным законом распределения
3. Формирование нормально распределенных случайных чисел по методу бокса и маллера
В соответствии с методом Бокса–Маллера случайные числа формируются парами с математическим ожиданием, близким к значению , и средним квадратическим отклонением, близким к единице, т. е.
:

где ,
— случайные числа из интервала
с равномерным распределением.
Выборка случайных чисел, сформированная по методу Бокса–Маллера, может центрироваться с целью получения параметров нормального закона практически равным своим теоретическим значениям стандартного нормального закона, т. е. ,
.
Пример 3. Сформируйте случайных чисел в соответствии со стандартным нормальным законом.
Программный код решения примера:
clear, clc N = 500; z1 = -2*log(rand(N,1)).*cos(2*pi*rand(N,1)); z2 = -2*log(rand(N,1)).*sin(2*pi*rand(N,1)); z = sort([z1;z2]); %-------------- Средняя величина--------------------- mz = sum(z)/(2*N); fprintf('\n\t m = %g\n',mz) %-------------- Стандартное отклонение ------------ stz = sqrt(sum((z-mz).^2)/(length(z)-1)); fprintf('\t s = %g\n', stz) %--------------- Нормализованные данные ---------- zz = (z-mz)/stz; mzN = sum(zz)/(2*N); fprintf('\t m = %g\n', mzN) stzN = sqrt(sum((zz-mzN).^2)/(2*N-1)); fprintf('\t s = %g\n', stzN)
Задание 3
- В программе примените циклические операции расчета средних значений и средних квадратических отклонений.
- Рассчитайте параметры нормального закона для сформированной выборки случайных чисел с помощью функций
и
, сравните результаты.
- Постройте функцию плотности и функцию распределения для нормализованных данных. Сравните с функциями для данных, получаемых с помощью встроенной функции
.
- Напишите программу формирования выборки случайных чисел, распределенных по нормальному закону в соответствии с методом Марсальи–Брея по следующему алгоритму:
- Генерируются два равномерно распределенных случайных числа
,
из интервала
.
- Формируются два соотношения
.
- Составляется сумма
.
- Если
, то пп. 1-3 повторяются.
- Если
, то вычисляется первая пара случайных чисел
,
:
- Генерируются два равномерно распределенных случайных числа
Для выборки случайных чисел, сформированных по методу Марсальи–Брея, рассчитать параметры нормального закона, т. е. математическое ожидание (среднее) и среднее квадратическое отклонение (стандартное отклонение).
Примечание. Для формирования выборки нормально распределенных случайных чисел с произвольными параметрами
и
следует воспользоваться формулой
![]() |
( 3.6) |
где — выборка случайных чисел, распределенных по стандартному нормальному закону, т. е. когда
,
.
4. Формирование выборки случайных чисел, соответствующей нормальному распределению, с помощью центральной предельной теоремы
Известно [20], что сумма одинаково распределенных независимых случайных величин стремится к нормально распределенной величине при бесконечном увеличении
. Например, можно воспользоваться случайными числами, равномерно распределенными в интервале
. В соответствии с центральной предельной теоремой сформированное случайное число является асимптотически нормальной величиной со средним
и дисперсией
. В случае, когда используется какое-либо другое распределение с заданным математическим ожиданием
и средним квадратическим отклонением
, расчетное математическое ожидание будет равно
и среднее квадратическое отклонение
.
Когда для формирования нормально распределенных случайных чисел суммируются равномерно распределенные случайные величины из интервала , то приемлемые результаты в смысле параметров стандартного нормального закона дает формула
![]() |
( 3.7) |
где — равномерно распределенное случайное число из интервала
.
Пример 4. Сформируйте 5000 нормально распределенных чисел в соответствии с центральной предельной теоремой на основе суммирования случайных чисел, равномерно распределенных в интервале .
Программный код решения примера:
clear, clc N = 5000; for J = 1 : N X(J) = sum(rand(12,1))-6; end X = sort(X); m = mean(X); s = std(X); fprintf('\n\t m = %g\n', m) fprintf('\t s = %g', s)
Задание 4
- Постройте функции плотности и распределения для случайных величин, сформированных по вышеприведенной программе.
- Получите выборку случайных чисел со стандартным нормальным распределением при суммировании случайных чисел, распределенных:
- по экспоненциальному закону,
- по закону Эрланга 3-го порядка.
При необходимости произведите центрирование полученных случайных величин.
5. Моделирование нормального закона распределения в системе GPSS/PC
В системе GPSS/PC, как и в других версиях среды GPSS, необходимо обеспечить неотрицательность значений интервалов поступления требований (транзактов) в систему и их задержки (обслуживания). Область определения случайной величины для нормального закона представляет собой всю числовую ось. Поэтому, чтобы обеспечить по возможности только неотрицательные значения случайной величины, необходимо выполнить требование , где
— математическое ожидание, а
– среднеквадратическое отклонение нормально распределенной случайной величины. Во многих системах программирования имеются генераторы случайных чисел со стандартным нормальным законом распределения, для которого
,
. Но переход к нормальному закону с другими параметрами можно произвести по формуле (3.6). Поэтому в системах GPSS можно использовать стандартный нормальный закон распределения с последующим преобразованием по формуле (3.6).
Пример 5. Выполните моделирование одноканальной системы обслуживания, для которой известно, что поступление требований подчиняется равномерному закону из интервала мин., время обслуживания подчиняется нормальному закону с параметрами
.,
. Моделирование произведите по обслуживанию 1000 требований (транзактов).
Для решения примера сначала сформируем в среде MATLAB функцию стандартного нормального закона для области определения от 0 до 30 мин. Затем данные функции распределения и ее аргумента экспортируем в систему GPSS/PC.
MATLAB-программа формирования массива данных для стандартной функции нормального распределения:
X = linspace(-3,3.2, 49); F = normcdf(X); %------ Преобразование нормального закона ------------- m = 18; s = 3; xx = m + s*X; F2 = [0,F]; X2 = [0, xx]; %%% Заголовок и имя функции для GPSS/PC fid = fopen('norm.txt', 'w'); %% запись в текстовый файл fprintf(fid, 'nor function RN6,C50\r\n') %%% Цикл форматированного вывода данных для GPSS/PC for J = 1 : length(X2) if mod(J, 3) fprintf(fid, '%g,%g/', F2(J), X2(J)); else fprintf(fid, '\r\n'); fprintf(fid, '%g,%g/', F2(J), X2(J)); end end fprintf(fid,';\r\n------------------------------\r\n'); fclose(fid);
Получаемые результаты здесь не приводятся, они будут использованы в GPSS-программе после их экспортирования.
Примечание. В системе GPSS/PC массив данных для функции распределения должен начинаться с нулевых значений, поэтому в программе предусмотрено прибавление нулей к формируемому массиву.
Программный код решения примера в GPSS/PC:
simulate nor function RN6,C50 0,0/0.0013499,9/ 0.00204696,9.3875/0.00305642,9.775/0.00449413,10.1625/ 0.00650796,10.55/0.00928214,10.9375/0.0130406,11.325/ 0.0180485,11.7125/0.0246108,12.1/0.0330681,12.4875/ 0.0437873,12.875/0.0571489,13.2625/0.0735293,13.65/ 0.0932785,14.0375/0.116696,14.425/0.144004,14.8125/ 0.175324,15.2/0.21065,15.5875/0.249838,15.975/ 0.29259,16.3625/0.338461,16.75/0.386865,17.1375/ 0.437097,17.525/0.488366,17.9125/0.539828,18.3/ 0.59063,18.6875/0.639953,19.075/0.687048,19.4625/ 0.731273,19.85/0.772116,20.2375/0.809213,20.625/ 0.842351,21.0125/0.871463,21.4/0.896616,21.7875/ 0.917988,22.175/0.935849,22.5625/0.950529,22.95/ 0.962394,23.3375/0.971826,23.725/0.9792,24.1125/ 0.98487,24.5/0.989157,24.8875/0.992346,25.275/ 0.994678,25.6625/0.996355,26.05/0.997542,26.4375/ 0.998368,26.825/0.998933,27.2125/0.999313,27.6/ ;------------------------------ tab1 table mp1,5,2,15 *********************************** 10 generate 13,3 20 seize 1 30 mark 1 40 advance fn$nor 50 tabulate tab1 60 release 1 70 terminate 1 start 1000 ;end
В программе предусмотрено табулирование времени пребывания транзактов в устройстве обслуживания по стандартному числовому атрибуту , где цифра
относится к номеру параметра, через который производится отметка времени блока
.
На рис. 3.1 приведена гистограмма распределения времени обслуживания. Эта гистограмма может быть получена после запуска программы на исполнение при закомментированном операторе , и далее с помощью комбинации клавиш Alt+T можно перейти в окно просмотра таблиц.
Как видно из рис. 3.1, гистограмма имеет форму, близкую к функции плотности нормального закона. Среднее значение времени распределения обслуживания требований в устройстве равно 17.62 ( ), стандартное отклонение равно 3.00 (
), что достаточно близко к условию примера.
Задание 5
- По файлу стандартного отчета постройте функцию распределения времени обработки транзактов в устройстве. Сравните с той же функцией, построенной в среде MATLAB.
- Проанализируйте результаты для разных номеров генераторов случайных чисел в зависимости от номера компьютера:
.
- Проанализируйте результаты при различных значениях счетчика завершений, т. е. положите
,
и т. д. в зависимости от номера компьютера, за которым выполняется лабораторная работа (1, 2, 3, ...). Графический образ получаемой гистограммы внесите в отчет лабораторной работы.