Во многих программных средах имеются генераторы случайных (псевдослучайных) чисел, которые обеспечивают формирование случайных чисел, равномерно распределенных в интервале $$[0; 1]$$. На основе этого распределения могут быть сформированы выборки случайных чисел с каким-либо другим законом распределения случайной величины. В некоторых случаях этого можно добиться на основе метода инверсии, или метода обратной функции. Суть метода обратной функции заключается в следующем. Пусть есть некоторая функция распределения $$F(t)$$ случайной величины $$t$$, которая по определению является неотрицательной и не превосходящей значения $$+1$$. Если выбрать на оси ординат
Таким образом, последовательность случайных чисел $$r_1, r_2, …$$, принадлежащая интервалу $$[0; 1]$$, преобразуется в последовательность $$t_1, t_2, …$$, которая имеет заданную функцию распределения $$F(t)$$ и, соответственно, функцию плотности $$f(t)$$.
Метод обратной функции нельзя применять напрямую к непрерывным распределениям, для которых функция распределения не может быть выражена в квадратурах от соответствующей функции плотности. Типичными примерами такого рода являются нормальное распределение, гамма-распределение, логарифмически-нормальное распределение, а также
Например, в случае второго метода, случайная величина, подчиняющаяся распределению Эрланга $$k$$ -го порядка (или гамма-распределению с целочисленным параметром), представляет собой сумму экспоненциально распределенных случайных величин, а время между наступлениями событий в пуассоновском процессе также распределено экспоненциально.
Равномерно распределенная случайная величина в интервале $$[a; b]$$ имеет функцию плотности
$$f(t)=\frac{1}{b-a}.$$Определим функцию распределения в соответствии с (1.1) и приравняем случайному числу $$R$$, равномерно распределенному в интервале $$[0; 1]$$:
$$F(t)=R=\int\limits_{a}^{t} \frac{d\tau}{b-a}=\left.\frac{\tau}{b-a}\right|_{a}^{t}=\frac{t}{b-a}-\frac{a}{b-a}=\frac{t-a}{b-a};\Rightarrow t=a+(b-a)R.$$Если требуется сформировать выборку из $$N$$ случайных чисел из интервала $$[a; b]$$, то выражение (3.2) перепишем в виде
$$t_{i}=a+(b-a)R_{i},\mbox{ }i=\overline{1,N}.$$В системе MATLAB случайные числа, равномерно распределенные в интервале $$[0; 1]$$, формируются встроенной функцией $$rand$$ (см. $$help rand$$ ).
Рассмотрим следующий пример формирования выборки случайных чисел в системе MATLAB.
Пример 1. Сформируйте 20 случайных чисел с равномерным распределением из интервала $$[2; 5]$$.
Программный код решения примера (возможно, в командном окне MATLAB):
a = 2; b = 5; N = 20; t20 = a + (b - a)*rand(N,1)
Задание 1
№1: [–1; 1.1]; №2: [–0.2; 2.2]; №3: [–3; 3.3]; №4: [–4.4; 6.6]; №5: [–5, 5.5]; №6: [–6.6, –3.3]; №7: [–7, 8]; №8: [–8, 8.8]; №9: [–9, 9]; №10: [–10.1, 10.1].
Функция плотности $$f(t)$$ экспоненциального распределения случайной величины и функция распределения $$F(t)$$ даются формулами
$$f(t)=\lambda e^{-\lambda t},\qquad F(t)=1-e^{-\lambda t},$$где $$\lambda$$ — параметр экспоненциального распределения, имеющий размерность $$с^{-1}$$.
В соответствии с методом обратной функции запишем откуда найдем $$t$$:
$$t=-\frac{1}{\lambda}\ell n (1-R).$$Известно, что функция случайной величины $$R$$ имеет такое же распределение, что и сама случайная величина $$R$$. Поэтому (3.4) представим в виде
$$t_{i}=-\frac{1}{\lambda}\ell n (R_{i}),\qquad i=\overline{1,N}.$$Рассмотрим пример формирования выборки случайных чисел с экспоненциальным распределением в MATLAB.
Пример 2. Сформируйте $$N = 20$$ случайных чисел с экспоненциальным распределением по методу обратной функции.
Программный код решения примера:
L = 0.25; N = 20; texp20 = -1/L*log(rand(N,1))
Если воспользоваться встроенной функцией $$exprnd$$ (см. $$help exprnd$$ ) системы MATLAB, то будем иметь следующий программный код:
L = 0.25; N = 20; texp20M = exprnd(1/L,N,1)
Следует обратить внимание, что аргументом функции exprnd является величина математического ожидания ( $$М = 1/\lambda$$ ) экспоненциального распределения.
Для приведенных программ результаты их выполнения не приводятся, так как они будут различными при каждом выполнении программы.
В системе MATLAB
clear,clc
L = 0.25; N = 20;
texp20 = –1/L*log(rand(N,1));
cdfplot(texp20), %% специальная графическая функция
title('\bf Функция экспоненциального распределения');
xlabel('\bf - - - - - - - t - - - - - - - ');
ylabel('\bf F(t)');
Примечание. Моделирование случайной величины с экспоненциальным распределением и заданным параметром можно произвести, взяв за основу моделирование случайной величины с экспоненциальным распределением и параметром, равным единице [21]. В этом случае поступают следующим образом:
Задание 2
В соответствии с методом Бокса–Маллера случайные числа формируются парами с математическим ожиданием, близким к значению $$m = 0$$, и средним квадратическим отклонением, близким к единице, т. е. $$s = 1$$:
$$z_{1}=-2\ell nR_{1}\cos(2\pi R_{2});\qquad z_{2}=-2\ell nR_{1}\sin(2\pi R_{2}),$$где $$R_{1}$$, $$R_{2}$$ — случайные числа из интервала $$(0; 1)$$ с равномерным распределением.
Выборка случайных чисел, сформированная по методу Бокса–Маллера, может центрироваться с целью получения параметров
Пример 3. Сформируйте $$N = 500$$ случайных чисел в соответствии со стандартным
Программный код решения примера:
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
Для выборки случайных чисел, сформированных по методу Марсальи–Брея, рассчитать параметры
Примечание. Для формирования выборки $$X$$ нормально распределенных случайных чисел с произвольными параметрами $$m_{x}$$ и $$s_{x}$$ следует воспользоваться формулой
$$X=m_x+s_xZ,$$где $$Z$$ — выборка случайных чисел, распределенных по стандартному
Известно [20], что сумма $$n$$ одинаково распределенных независимых случайных величин стремится к нормально распределенной величине при бесконечном увеличении $$n$$. Например, можно воспользоваться случайными числами, равномерно распределенными в интервале $$[0; 1]$$. В соответствии с центральной предельной теоремой сформированное случайное число является асимптотически нормальной величиной со средним $$m = n/2$$ и дисперсией $$s^2 = n/12$$. В случае, когда используется какое-либо другое распределение с заданным математическим ожиданием $$m_x$$ и средним квадратическим отклонением $$s_x$$, расчетное математическое ожидание будет равно $$m = n\cdot m_x$$ и среднее квадратическое отклонение $$s = s_x\cdot n^{1/2}$$.
Когда для формирования нормально распределенных случайных чисел суммируются равномерно распределенные случайные величины из интервала $$[0; 1]$$, то приемлемые результаты в смысле параметров стандартного
где $$r$$ — равномерно распределенное случайное число из интервала $$[0; 1]$$.
Пример 4. Сформируйте 5000 нормально распределенных чисел в соответствии с центральной предельной теоремой на основе суммирования случайных чисел, равномерно распределенных в интервале $$[0, 1]$$.
Программный код решения примера:
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
При необходимости произведите центрирование полученных случайных величин.
В системе
Пример 5. Выполните моделирование одноканальной системы обслуживания, для которой известно, что поступление требований подчиняется равномерному закону из интервала $$[10; 16]$$ мин., время обслуживания подчиняется
Для решения примера сначала сформируем в среде MATLAB функцию стандартного
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);
Получаемые результаты здесь не приводятся, они будут использованы в
Примечание. В системе
Программный код решения примера в
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
В программе предусмотрено табулирование времени пребывания транзактов в устройстве обслуживания по стандартному числовому атрибуту $$mp1$$, где цифра $$1$$ относится к номеру параметра, через который производится отметка времени блока $$mark$$.
На рис. 3.1 приведена гистограмма распределения времени обслуживания. Эта гистограмма может быть получена после запуска программы на исполнение при закомментированном операторе $$end$$, и далее с помощью комбинации клавиш Alt+T можно перейти в окно просмотра таблиц.
(рис 3.1) Гистограмма распределения времени обслуживанияКак видно из рис. 3.1, гистограмма имеет форму, близкую к функции плотности
Задание 5
Случайная величина, подчиняющаяся распределению Эрланга с параметрами $$k$$ (порядок распределения Эрланга) и $$\lambda$$, представляет собой сумму n независимых, одинаково распределенных случайных величин с параметром $$\lambda$$ (интенсивность, $$с^{–1}$$ ) [20]. Это означает, что можно получить выборку, соответствующую распределению Эрланга, при помощи многократного применения метода инверсии (метода обратной функции).
Пример 6. Сформируйте выборку объема $$N = 1000$$ случайных чисел $$Т$$ с распределением Эрланга 3-го порядка ( $$k = 3$$ ) и параметром $$\lambda = 1.25$$.
Программный код решения примера:
L = 1.25; k = 3;
N = 1000;
for I = 1 : N
T(I) = 0;
for J = 1 : k
T(I) = T(I) - 1/L*log(rand);
end
end
T2 = sort(T);
Задание 6
Для моделирования распределения Эрланга $$k$$ -го порядка используется экспоненциальная функция распределения, которая может оставаться неизменной при изменении порядка потока Эрланга.
Пример 7. Смоделируйте одноканальную систему массового обслуживания, в которую требования поступают по равномерному закону через $$18 \pm 2$$ мин., а обслуживание осуществляется по закону Эрланга 3-го порядка с параметром \ $$lambda = 0.25$$. Произведите обслуживание 5600 требований.
Для решения примера 7 сначала сформируем функцию экспоненциального распределения случайной величины с параметром $$\lambda = 1$$, а затем выполним пересчет для параметра $$\lambda = 0.25$$. Для этого может быть использована следующая программа в системе MATLAB:
clear, clc
L = 0.25;
t = linspace(0, 9, 50);
F = 1 - exp(-t);
t2 = 1/L*t;
fid = fopen('erlang.txt', 'w'); %% запись в текстовый файл
fprintf(fid, '\nexp function RN22,C50\n');
for J = 1 : length(F)
if mod(J,3)
fprintf(fid, '%g,%g/', F(J), t2(J));
else
fprintf(fid, '\r\n');
fprintf(fid, '%g,%g/', F(J), t2(J));
end
end
fprintf(fid,'\r\n;------------------------------\r\n');
fclose(fid);
Программный код решения примера в системе
simulate exp function RN22,C50 0,0/0.167792,0.734694/ 0.307431,1.46939/0.423639,2.20408/0.520348,2.93878/ 0.60083,3.67347/0.667808,4.40816/0.723547,5.14286/ 0.769934,5.87755/0.808537,6.61224/0.840663,7.34694/ 0.867399,8.08163/0.889648,8.81633/0.908164,9.55102/ 0.923574,10.2857/0.936397,11.0204/0.947069,11.7551/ 0.955951,12.4898/0.963342,13.2245/0.969493,13.9592/ 0.974612,14.6939/0.978872,15.4286/0.982417,16.1633/ 0.985367,16.898/0.987822,17.6327/0.989866,18.3673/ 0.991566,19.102/0.992981,19.8367/0.994159,20.5714/ 0.995139,21.3061/0.995955,22.0408/0.996633,22.7755/ 0.997198,23.5102/0.997668,24.2449/0.99806,24.9796/ 0.998385,25.7143/0.998656,26.449/0.998882,27.1837/ 0.999069,27.9184/0.999225,28.6531/0.999355,29.3878/ 0.999464,30.1224/0.999554,30.8571/0.999628,31.5918/ 0.999691,32.3265/0.999743,33.0612/0.999786,33.7959/ 0.999822,34.5306/0.999852,35.2653/0.999877,36/ ;------------------------------ tab1 table mp1,0,3,50 ******** Erlang distribution ******* 10 generate 18,2 20 assign 1,1 30 seize 1 40 mark 1 50 advance 1,fn$exp 60 advance 1,fn$exp 70 advance 1,fn$exp 80 tabulate tab1 90 release 1 100 terminate 1 start 5600 ;end
В программе обслуживание по закону Эрланга 3-го порядка осуществляется с помощью трехкратной временной задержки транзактов на время, распределенное по экспоненциальному закону с заданным параметром. Временная задержка производится блоками $$advance$$ (строки 50, 60, 70). Контролируемая отметка времени осуществляется блоком $$mark$$ по 1-му параметру и табулированием стандартного числового атрибута $$mp1$$ с помощью оператора $$table$$ (с меткой tab1). Таким образом, реализация обслуживания транзактов (требований) по закону Эрланга $$k$$ -го порядка может быть запрограммирована с помощью $$k$$ блоков $$advance$$ в теле устройства, т. е. между блоками $$seize$$ и $$release$$. Результат выполнения программы показан на рис. 3.2, который дает наглядное представление о форме распределения времени обслуживания, и в нем приводятся числовые данные распределения – среднее значение, равное 10.72, и
(рис 3.2) Распределение времени обслуживания по закону ЭрлангаРассчитаем величину параметра закона Эрланга 3-го порядка по данным рис. 2 или из файла стандартного отчета. Как известно [2], математическое ожидание и параметр закона Эрланга $$k$$ -го порядка связаны между собой формулой
$$M=\frac{k}{\lambda}$$ или $$M=\frac{k+1}{\lambda}$$
Применим первую формулу, считая, что среднее $$М$$ равно 10.72:
$$\lambda=\frac{k}{M}=\frac{3}{10.72}=0,279851\approx 0.28$$Получен результат одного порядка по сравнению с заданным условием.
Задание 7
Во многих программных средах имеются генераторы случайных (псевдослучайных) чисел, которые обеспечивают формирование случайных чисел, равномерно распределенных в интервале $$[0; 1]$$. На основе этого распределения могут быть сформированы выборки случайных чисел с каким-либо другим законом распределения случайной величины. В некоторых случаях этого можно добиться на основе метода инверсии, или метода обратной функции. Суть метода обратной функции заключается в следующем. Пусть есть некоторая функция распределения $$F(t)$$ случайной величины $$t$$, которая по определению является неотрицательной и не превосходящей значения $$+1$$. Если выбрать на оси ординат
Таким образом, последовательность случайных чисел $$r_1, r_2, …$$, принадлежащая интервалу $$[0; 1]$$, преобразуется в последовательность $$t_1, t_2, …$$, которая имеет заданную функцию распределения $$F(t)$$ и, соответственно, функцию плотности $$f(t)$$.
Метод обратной функции нельзя применять напрямую к непрерывным распределениям, для которых функция распределения не может быть выражена в квадратурах от соответствующей функции плотности. Типичными примерами такого рода являются нормальное распределение, гамма-распределение, логарифмически-нормальное распределение, а также
Например, в случае второго метода, случайная величина, подчиняющаяся распределению Эрланга $$k$$ -го порядка (или гамма-распределению с целочисленным параметром), представляет собой сумму экспоненциально распределенных случайных величин, а время между наступлениями событий в пуассоновском процессе также распределено экспоненциально.
Равномерно распределенная случайная величина в интервале $$[a; b]$$ имеет функцию плотности
$$f(t)=\frac{1}{b-a}.$$Определим функцию распределения в соответствии с (1.1) и приравняем случайному числу $$R$$, равномерно распределенному в интервале $$[0; 1]$$:
$$F(t)=R=\int\limits_{a}^{t} \frac{d\tau}{b-a}=\left.\frac{\tau}{b-a}\right|_{a}^{t}=\frac{t}{b-a}-\frac{a}{b-a}=\frac{t-a}{b-a};\Rightarrow t=a+(b-a)R.$$Если требуется сформировать выборку из $$N$$ случайных чисел из интервала $$[a; b]$$, то выражение (3.2) перепишем в виде
$$t_{i}=a+(b-a)R_{i},\mbox{ }i=\overline{1,N}.$$В системе MATLAB случайные числа, равномерно распределенные в интервале $$[0; 1]$$, формируются встроенной функцией $$rand$$ (см. $$help rand$$ ).
Рассмотрим следующий пример формирования выборки случайных чисел в системе MATLAB.
Пример 1. Сформируйте 20 случайных чисел с равномерным распределением из интервала $$[2; 5]$$.
Программный код решения примера (возможно, в командном окне MATLAB):
a = 2; b = 5; N = 20; t20 = a + (b - a)*rand(N,1)
Задание 1
№1: [–1; 1.1]; №2: [–0.2; 2.2]; №3: [–3; 3.3]; №4: [–4.4; 6.6]; №5: [–5, 5.5]; №6: [–6.6, –3.3]; №7: [–7, 8]; №8: [–8, 8.8]; №9: [–9, 9]; №10: [–10.1, 10.1].
Функция плотности $$f(t)$$ экспоненциального распределения случайной величины и функция распределения $$F(t)$$ даются формулами
$$f(t)=\lambda e^{-\lambda t},\qquad F(t)=1-e^{-\lambda t},$$где $$\lambda$$ — параметр экспоненциального распределения, имеющий размерность $$с^{-1}$$.
В соответствии с методом обратной функции запишем откуда найдем $$t$$:
$$t=-\frac{1}{\lambda}\ell n (1-R).$$Известно, что функция случайной величины $$R$$ имеет такое же распределение, что и сама случайная величина $$R$$. Поэтому (3.4) представим в виде
$$t_{i}=-\frac{1}{\lambda}\ell n (R_{i}),\qquad i=\overline{1,N}.$$Рассмотрим пример формирования выборки случайных чисел с экспоненциальным распределением в MATLAB.
Пример 2. Сформируйте $$N = 20$$ случайных чисел с экспоненциальным распределением по методу обратной функции.
Программный код решения примера:
L = 0.25; N = 20; texp20 = -1/L*log(rand(N,1))
Если воспользоваться встроенной функцией $$exprnd$$ (см. $$help exprnd$$ ) системы MATLAB, то будем иметь следующий программный код:
L = 0.25; N = 20; texp20M = exprnd(1/L,N,1)
Следует обратить внимание, что аргументом функции exprnd является величина математического ожидания ( $$М = 1/\lambda$$ ) экспоненциального распределения.
Для приведенных программ результаты их выполнения не приводятся, так как они будут различными при каждом выполнении программы.
В системе MATLAB
clear,clc
L = 0.25; N = 20;
texp20 = –1/L*log(rand(N,1));
cdfplot(texp20), %% специальная графическая функция
title('\bf Функция экспоненциального распределения');
xlabel('\bf - - - - - - - t - - - - - - - ');
ylabel('\bf F(t)');
Примечание. Моделирование случайной величины с экспоненциальным распределением и заданным параметром можно произвести, взяв за основу моделирование случайной величины с экспоненциальным распределением и параметром, равным единице [21]. В этом случае поступают следующим образом:
Задание 2
В соответствии с методом Бокса–Маллера случайные числа формируются парами с математическим ожиданием, близким к значению $$m = 0$$, и средним квадратическим отклонением, близким к единице, т. е. $$s = 1$$:
$$z_{1}=-2\ell nR_{1}\cos(2\pi R_{2});\qquad z_{2}=-2\ell nR_{1}\sin(2\pi R_{2}),$$где $$R_{1}$$, $$R_{2}$$ — случайные числа из интервала $$(0; 1)$$ с равномерным распределением.
Выборка случайных чисел, сформированная по методу Бокса–Маллера, может центрироваться с целью получения параметров
Пример 3. Сформируйте $$N = 500$$ случайных чисел в соответствии со стандартным
Программный код решения примера:
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
Для выборки случайных чисел, сформированных по методу Марсальи–Брея, рассчитать параметры
Примечание. Для формирования выборки $$X$$ нормально распределенных случайных чисел с произвольными параметрами $$m_{x}$$ и $$s_{x}$$ следует воспользоваться формулой
$$X=m_x+s_xZ,$$где $$Z$$ — выборка случайных чисел, распределенных по стандартному
Известно [20], что сумма $$n$$ одинаково распределенных независимых случайных величин стремится к нормально распределенной величине при бесконечном увеличении $$n$$. Например, можно воспользоваться случайными числами, равномерно распределенными в интервале $$[0; 1]$$. В соответствии с центральной предельной теоремой сформированное случайное число является асимптотически нормальной величиной со средним $$m = n/2$$ и дисперсией $$s^2 = n/12$$. В случае, когда используется какое-либо другое распределение с заданным математическим ожиданием $$m_x$$ и средним квадратическим отклонением $$s_x$$, расчетное математическое ожидание будет равно $$m = n\cdot m_x$$ и среднее квадратическое отклонение $$s = s_x\cdot n^{1/2}$$.
Когда для формирования нормально распределенных случайных чисел суммируются равномерно распределенные случайные величины из интервала $$[0; 1]$$, то приемлемые результаты в смысле параметров стандартного
где $$r$$ — равномерно распределенное случайное число из интервала $$[0; 1]$$.
Пример 4. Сформируйте 5000 нормально распределенных чисел в соответствии с центральной предельной теоремой на основе суммирования случайных чисел, равномерно распределенных в интервале $$[0, 1]$$.
Программный код решения примера:
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
При необходимости произведите центрирование полученных случайных величин.
В системе
Пример 5. Выполните моделирование одноканальной системы обслуживания, для которой известно, что поступление требований подчиняется равномерному закону из интервала $$[10; 16]$$ мин., время обслуживания подчиняется
Для решения примера сначала сформируем в среде MATLAB функцию стандартного
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);
Получаемые результаты здесь не приводятся, они будут использованы в
Примечание. В системе
Программный код решения примера в
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
В программе предусмотрено табулирование времени пребывания транзактов в устройстве обслуживания по стандартному числовому атрибуту $$mp1$$, где цифра $$1$$ относится к номеру параметра, через который производится отметка времени блока $$mark$$.
На рис. 3.1 приведена гистограмма распределения времени обслуживания. Эта гистограмма может быть получена после запуска программы на исполнение при закомментированном операторе $$end$$, и далее с помощью комбинации клавиш Alt+T можно перейти в окно просмотра таблиц.
(рис 3.1) Гистограмма распределения времени обслуживанияКак видно из рис. 3.1, гистограмма имеет форму, близкую к функции плотности
Задание 5
Случайная величина, подчиняющаяся распределению Эрланга с параметрами $$k$$ (порядок распределения Эрланга) и $$\lambda$$, представляет собой сумму n независимых, одинаково распределенных случайных величин с параметром $$\lambda$$ (интенсивность, $$с^{–1}$$ ) [20]. Это означает, что можно получить выборку, соответствующую распределению Эрланга, при помощи многократного применения метода инверсии (метода обратной функции).
Пример 6. Сформируйте выборку объема $$N = 1000$$ случайных чисел $$Т$$ с распределением Эрланга 3-го порядка ( $$k = 3$$ ) и параметром $$\lambda = 1.25$$.
Программный код решения примера:
L = 1.25; k = 3;
N = 1000;
for I = 1 : N
T(I) = 0;
for J = 1 : k
T(I) = T(I) - 1/L*log(rand);
end
end
T2 = sort(T);
Задание 6
Для моделирования распределения Эрланга $$k$$ -го порядка используется экспоненциальная функция распределения, которая может оставаться неизменной при изменении порядка потока Эрланга.
Пример 7. Смоделируйте одноканальную систему массового обслуживания, в которую требования поступают по равномерному закону через $$18 \pm 2$$ мин., а обслуживание осуществляется по закону Эрланга 3-го порядка с параметром \ $$lambda = 0.25$$. Произведите обслуживание 5600 требований.
Для решения примера 7 сначала сформируем функцию экспоненциального распределения случайной величины с параметром $$\lambda = 1$$, а затем выполним пересчет для параметра $$\lambda = 0.25$$. Для этого может быть использована следующая программа в системе MATLAB:
clear, clc
L = 0.25;
t = linspace(0, 9, 50);
F = 1 - exp(-t);
t2 = 1/L*t;
fid = fopen('erlang.txt', 'w'); %% запись в текстовый файл
fprintf(fid, '\nexp function RN22,C50\n');
for J = 1 : length(F)
if mod(J,3)
fprintf(fid, '%g,%g/', F(J), t2(J));
else
fprintf(fid, '\r\n');
fprintf(fid, '%g,%g/', F(J), t2(J));
end
end
fprintf(fid,'\r\n;------------------------------\r\n');
fclose(fid);
Программный код решения примера в системе
simulate exp function RN22,C50 0,0/0.167792,0.734694/ 0.307431,1.46939/0.423639,2.20408/0.520348,2.93878/ 0.60083,3.67347/0.667808,4.40816/0.723547,5.14286/ 0.769934,5.87755/0.808537,6.61224/0.840663,7.34694/ 0.867399,8.08163/0.889648,8.81633/0.908164,9.55102/ 0.923574,10.2857/0.936397,11.0204/0.947069,11.7551/ 0.955951,12.4898/0.963342,13.2245/0.969493,13.9592/ 0.974612,14.6939/0.978872,15.4286/0.982417,16.1633/ 0.985367,16.898/0.987822,17.6327/0.989866,18.3673/ 0.991566,19.102/0.992981,19.8367/0.994159,20.5714/ 0.995139,21.3061/0.995955,22.0408/0.996633,22.7755/ 0.997198,23.5102/0.997668,24.2449/0.99806,24.9796/ 0.998385,25.7143/0.998656,26.449/0.998882,27.1837/ 0.999069,27.9184/0.999225,28.6531/0.999355,29.3878/ 0.999464,30.1224/0.999554,30.8571/0.999628,31.5918/ 0.999691,32.3265/0.999743,33.0612/0.999786,33.7959/ 0.999822,34.5306/0.999852,35.2653/0.999877,36/ ;------------------------------ tab1 table mp1,0,3,50 ******** Erlang distribution ******* 10 generate 18,2 20 assign 1,1 30 seize 1 40 mark 1 50 advance 1,fn$exp 60 advance 1,fn$exp 70 advance 1,fn$exp 80 tabulate tab1 90 release 1 100 terminate 1 start 5600 ;end
В программе обслуживание по закону Эрланга 3-го порядка осуществляется с помощью трехкратной временной задержки транзактов на время, распределенное по экспоненциальному закону с заданным параметром. Временная задержка производится блоками $$advance$$ (строки 50, 60, 70). Контролируемая отметка времени осуществляется блоком $$mark$$ по 1-му параметру и табулированием стандартного числового атрибута $$mp1$$ с помощью оператора $$table$$ (с меткой tab1). Таким образом, реализация обслуживания транзактов (требований) по закону Эрланга $$k$$ -го порядка может быть запрограммирована с помощью $$k$$ блоков $$advance$$ в теле устройства, т. е. между блоками $$seize$$ и $$release$$. Результат выполнения программы показан на рис. 3.2, который дает наглядное представление о форме распределения времени обслуживания, и в нем приводятся числовые данные распределения – среднее значение, равное 10.72, и
(рис 3.2) Распределение времени обслуживания по закону ЭрлангаРассчитаем величину параметра закона Эрланга 3-го порядка по данным рис. 2 или из файла стандартного отчета. Как известно [2], математическое ожидание и параметр закона Эрланга $$k$$ -го порядка связаны между собой формулой
$$M=\frac{k}{\lambda}$$ или $$M=\frac{k+1}{\lambda}$$
Применим первую формулу, считая, что среднее $$М$$ равно 10.72:
$$\lambda=\frac{k}{M}=\frac{3}{10.72}=0,279851\approx 0.28$$Получен результат одного порядка по сравнению с заданным условием.
Задание 7
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.