Моделирование систем

Моделирование непрерывных случайных величин с заданным законом распределения

Разбить на страницы
Показывать лекцию целиком

Теоретическая часть

Во многих программных средах имеются генераторы случайных (псевдослучайных) чисел, которые обеспечивают формирование случайных чисел, равномерно распределенных в интервале $$[0; 1]$$. На основе этого распределения могут быть сформированы выборки случайных чисел с каким-либо другим законом распределения случайной величины. В некоторых случаях этого можно добиться на основе метода инверсии, или метода обратной функции. Суть метода обратной функции заключается в следующем. Пусть есть некоторая функция распределения $$F(t)$$ случайной величины $$t$$, которая по определению является неотрицательной и не превосходящей значения $$+1$$. Если выбрать на оси ординат графика функции $$F(t)$$ случайную точку $$r$$, то мы сможем получить значение величины $$t$$ такое, что $$F(t) = r$$. Как известно, функция распределения есть вероятность того, что случайная величина $$t_0$$ не превысит своего некоторого значения $$t$$, т. е. $$F(t) = P(t_0 < t)$$. На основе заданной функции распределения $$F(t)$$ существует однозначное соответствие между значением аргумента функции и значением самой функции, что позволяет записать выражение $$F(t) = P(t0 < t) = P(R < F(t))$$, где $$R$$ — случайная величина, равномерно распределенная в интервале $$[0; 1]$$. Используя соотношение $$f(t) = dF(t)/dt$$, можно записать функцию распределения случайной величины $$t$$:

$$F(t)=P(t_{0} < t)=\int\limits_{0}^{t} f(\tau)d\tau =P(R<F(t))=\int\limits_{0}^{F(t)} f(r)dr.$$

Таким образом, последовательность случайных чисел $$r_1, r_2, …$$, принадлежащая интервалу $$[0; 1]$$, преобразуется в последовательность $$t_1, t_2, …$$, которая имеет заданную функцию распределения $$F(t)$$ и, соответственно, функцию плотности $$f(t)$$.

Метод обратной функции нельзя применять напрямую к непрерывным распределениям, для которых функция распределения не может быть выражена в квадратурах от соответствующей функции плотности. Типичными примерами такого рода являются нормальное распределение, гамма-распределение, логарифмически-нормальное распределение, а также дискретное распределение Пуассона. В таких случаях для получения выборок случайных чисел можно воспользоваться одним из следующих методов:

  • аппроксимацией непрерывной функции $$F(t)$$ дискретной функцией распределения;
  • получением с помощью статистических соотношений необходимой информации на основе других распределений, имеющих простую аналитическую форму.
  • Например, в случае второго метода, случайная величина, подчиняющаяся распределению Эрланга $$k$$ -го порядка (или гамма-распределению с целочисленным параметром), представляет собой сумму экспоненциально распределенных случайных величин, а время между наступлениями событий в пуассоновском процессе также распределено экспоненциально.

    Практическая часть

    1. Формирование выборки случайных чисел с равномерным распределением в заданном интервале

    Равномерно распределенная случайная величина в интервале $$[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

  • Рассчитайте теоретическое значение математического ожидания случайной величины, равномерно распределенной в интервале $$[2; 5]$$. Рассчитайте среднее значение величины $$t20$$ при трехкратном обращении к программе. Сравните результаты.
  • Постройте функцию распределения случайной величины из интервала по сформированной выборке. Интервал $$[a; b]$$ примите следующим (в соответствии с номером компьютера, за которым выполняется лабораторная работа):
    №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].
  • 2. Формирование выборки случайных чисел с экспоненциальным распределением

    Функция плотности $$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 эмпирическую функцию распределения можно построить с помощью $$cdfplot$$ (см. $$help cdfplot$$ ). Тогда программа формирования и построения функции распределения примет следующий вид:

    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]. В этом случае поступают следующим образом:

  • генерируют значения случайной величины, распределенной по экспоненциальному закону с параметром $$\lambda = 1$$ ;
  • находят произведение полученного значения и математического ожидания случайной величины, у которой $$\lambda \ne 1$$. Математическое ожидание экспоненциально распределенной величины обратно пропорционально параметру.
  • Задание 2

  • Постройте эмпирическую функцию плотности экспоненциального распределения по сформированному массиву случайных чисел.
  • Постройте эмпирическую функцию распределения по сформированному массиву случайных чисел без применения функции $$cdfplot$$.
  • Сравните выборку случайных чисел, распределенных по экспоненциальному закону с параметром $$\lambda = 0.25$$, и выборку чисел, полученных для $$\lambda = 1$$, с последующим преобразованием — умножением математического ожидания на массив сформированных чисел, для которых $$\lambda = 0.25$$.
  • Сформируйте выборку случайных чисел с экспоненциальным распределением по формуле (3.5) с помощью операторов цикла.
  • 3. Формирование нормально распределенных случайных чисел по методу бокса и маллера

    В соответствии с методом Бокса–Маллера случайные числа формируются парами с математическим ожиданием, близким к значению $$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)$$ с равномерным распределением.

    Выборка случайных чисел, сформированная по методу Бокса–Маллера, может центрироваться с целью получения параметров нормального закона практически равным своим теоретическим значениям стандартного нормального закона, т. е. $$m = 0$$, $$s = 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

  • В программе примените циклические операции расчета средних значений и средних квадратических отклонений.
  • Рассчитайте параметры нормального закона для сформированной выборки случайных чисел с помощью функций $$mean$$ и $$std$$, сравните результаты.
  • Постройте функцию плотности и функцию распределения для нормализованных данных. Сравните с функциями для данных, получаемых с помощью встроенной функции $$randn$$.
  • Напишите программу формирования выборки случайных чисел, распределенных по нормальному закону в соответствии с методом Марсальи–Брея по следующему алгоритму:
  • Генерируются два равномерно распределенных случайных числа $$R1$$, $$R2$$ из интервала $$[0; 1]$$.
  • Формируются два соотношения $$V1= –1 + 2R1, V2= –1 + 2R2$$.
  • Составляется сумма $$S: S = V1^{2} + V2^{2}$$.
  • Если $$S \ge 1$$, то пп. 1-3 повторяются.
  • Если $$S < 1$$, то вычисляется первая пара случайных чисел $$t1$$, $$t2$$:$$t1=V1\sqrt{\frac{-2\ell nS}{S}},\qquad t2=V2\sqrt{\frac{-2\ell nS}{S}}$$
  • Для выборки случайных чисел, сформированных по методу Марсальи–Брея, рассчитать параметры нормального закона, т. е. математическое ожидание (среднее) и среднее квадратическое отклонение (стандартное отклонение).

    Примечание. Для формирования выборки $$X$$ нормально распределенных случайных чисел с произвольными параметрами $$m_{x}$$ и $$s_{x}$$ следует воспользоваться формулой

    $$X=m_x+s_xZ,$$

    где $$Z$$ — выборка случайных чисел, распределенных по стандартному нормальному закону, т. е. когда $$m = 0$$, $$s = 1$$.

    4. Формирование выборки случайных чисел, соответствующей нормальному распределению, с помощью центральной предельной теоремы

    Известно [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]$$, то приемлемые результаты в смысле параметров стандартного нормального закона дает формула

    $$X=\sum\limits_{i=1}^{12}r_i-6,$$

    где $$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

  • Постройте функции плотности и распределения для случайных величин, сформированных по вышеприведенной программе.
  • Получите выборку случайных чисел со стандартным нормальным распределением при суммировании случайных чисел, распределенных:
  • по экспоненциальному закону,
  • по закону Эрланга 3-го порядка.
  • При необходимости произведите центрирование полученных случайных величин.

    5. Моделирование нормального закона распределения в системе GPSS/PC

    В системе GPSS/PC, как и в других версиях среды GPSS, необходимо обеспечить неотрицательность значений интервалов поступления требований (транзактов) в систему и их задержки (обслуживания). Область определения случайной величины для нормального закона представляет собой всю числовую ось. Поэтому, чтобы обеспечить по возможности только неотрицательные значения случайной величины, необходимо выполнить требование $$m \ge 5s$$, где $$m$$ — математическое ожидание, а $$s$$ – среднеквадратическое отклонение нормально распределенной случайной величины. Во многих системах программирования имеются генераторы случайных чисел со стандартным нормальным законом распределения, для которого $$m = 0$$, $$s = 1$$. Но переход к нормальному закону с другими параметрами можно произвести по формуле (3.6). Поэтому в системах GPSS можно использовать стандартный нормальный закон распределения с последующим преобразованием по формуле (3.6).

    Пример 5. Выполните моделирование одноканальной системы обслуживания, для которой известно, что поступление требований подчиняется равномерному закону из интервала $$[10; 16]$$ мин., время обслуживания подчиняется нормальному закону с параметрами $$m = 18 мин$$., $$s = 3 мин$$. Моделирование произведите по обслуживанию 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

    В программе предусмотрено табулирование времени пребывания транзактов в устройстве обслуживания по стандартному числовому атрибуту $$mp1$$, где цифра $$1$$ относится к номеру параметра, через который производится отметка времени блока $$mark$$.

    На рис. 3.1 приведена гистограмма распределения времени обслуживания. Эта гистограмма может быть получена после запуска программы на исполнение при закомментированном операторе $$end$$, и далее с помощью комбинации клавиш Alt+T можно перейти в окно просмотра таблиц.

    (рис 3.1) Гистограмма распределения времени обслуживания

    Как видно из рис. 3.1, гистограмма имеет форму, близкую к функции плотности нормального закона. Среднее значение времени распределения обслуживания требований в устройстве равно 17.62 ( $$Mean: 17.62$$ ), стандартное отклонение равно 3.00 ( $$S.D.: 3.00$$ ), что достаточно близко к условию примера.

    Задание 5

  • По файлу стандартного отчета постройте функцию распределения времени обработки транзактов в устройстве. Сравните с той же функцией, построенной в среде MATLAB.
  • Проанализируйте результаты для разных номеров генераторов случайных чисел в зависимости от номера компьютера: $$RN1, RN2, … $$.
  • Проанализируйте результаты при различных значениях счетчика завершений, т. е. положите $$start\ 200$$, $$start\ 300$$ и т. д. в зависимости от номера компьютера, за которым выполняется лабораторная работа (1, 2, 3, ...). Графический образ получаемой гистограммы внесите в отчет лабораторной работы.
  • 6. Формирование выборки случайных чисел, распределенных по закону эрланга k-го порядка

    Случайная величина, подчиняющаяся распределению Эрланга с параметрами $$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

  • Упростите программный код, используя матричные возможности системы MATLAB.
  • Постройте функцию плотности и функцию распределения по аналитическим формулам для распределения Эрланга [3]:$$f_{k}(t)=\frac{\lambda(\lambda t)^{k-1}}{(k-1)!}e^{-\lambda t}, \qquad F_{k}(t)=1-\sum\limits_{j=0}^{k-1}\frac{(\lambda t)^{j}}{j!}e^{-\lambda t}$$
  • Выполните предыдущий пункт с помощью встроенных функций $$gampdf$$ и $$gamcdf$$. Сравнить результаты.
  • 7. Моделирование процесса обслуживания по закону эрланга k-го порядка в системе GPSS/PC

    Для моделирования распределения Эрланга $$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);

    Программный код решения примера в системе GPSS/PC:

    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, и стандартное отклонение, равное 6.92.

    (рис 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

  • По файлу стандартного отчета постройте в MATLAB функцию распределения времени обслуживания транзактов в устройстве.
  • В соответствии с номером компьютера, за которым выполняется лабораторная работа, примите следующие числа обработки транзактов (оператор $$start$$ ): № 1: 1000; № 2: 2000 и т. д. Проанализируйте результаты, рассчитайте параметр закона Эрланга 3-го порядка.
  • Контрольные вопросы

  • Что из себя представляет график функции плотности равномерного закона распределения случайных величин?
  • Как формируется поток Эрланга $$k$$ -го порядка?
  • Чему соответствует область определения функции распределения случайных величин экспоненциального закона?
  • Чему соответствует область определения функции распределения случайных величин равномерного закона?
  • Какая связь между стандартным отклонением и дисперсией случайных величин?
  • Что собой отображает гистограмма случайных величин?
  • Какая связь между функцией плотности и функцией распределения случайных непрерывных величин?
  • Что является параметром в экспоненциальном законе распределения случайных величин? Какой функциональный смысл имеет параметр экспоненциального распределения случайной величины?
  • Назовите допустимую область определения функции распределения потока Эрланга $$k$$ -го порядка.
  • Страницы:

    Теоретическая часть

    Во многих программных средах имеются генераторы случайных (псевдослучайных) чисел, которые обеспечивают формирование случайных чисел, равномерно распределенных в интервале $$[0; 1]$$. На основе этого распределения могут быть сформированы выборки случайных чисел с каким-либо другим законом распределения случайной величины. В некоторых случаях этого можно добиться на основе метода инверсии, или метода обратной функции. Суть метода обратной функции заключается в следующем. Пусть есть некоторая функция распределения $$F(t)$$ случайной величины $$t$$, которая по определению является неотрицательной и не превосходящей значения $$+1$$. Если выбрать на оси ординат графика функции $$F(t)$$ случайную точку $$r$$, то мы сможем получить значение величины $$t$$ такое, что $$F(t) = r$$. Как известно, функция распределения есть вероятность того, что случайная величина $$t_0$$ не превысит своего некоторого значения $$t$$, т. е. $$F(t) = P(t_0 < t)$$. На основе заданной функции распределения $$F(t)$$ существует однозначное соответствие между значением аргумента функции и значением самой функции, что позволяет записать выражение $$F(t) = P(t0 < t) = P(R < F(t))$$, где $$R$$ — случайная величина, равномерно распределенная в интервале $$[0; 1]$$. Используя соотношение $$f(t) = dF(t)/dt$$, можно записать функцию распределения случайной величины $$t$$:

    $$F(t)=P(t_{0} < t)=\int\limits_{0}^{t} f(\tau)d\tau =P(R<F(t))=\int\limits_{0}^{F(t)} f(r)dr.$$

    Таким образом, последовательность случайных чисел $$r_1, r_2, …$$, принадлежащая интервалу $$[0; 1]$$, преобразуется в последовательность $$t_1, t_2, …$$, которая имеет заданную функцию распределения $$F(t)$$ и, соответственно, функцию плотности $$f(t)$$.

    Метод обратной функции нельзя применять напрямую к непрерывным распределениям, для которых функция распределения не может быть выражена в квадратурах от соответствующей функции плотности. Типичными примерами такого рода являются нормальное распределение, гамма-распределение, логарифмически-нормальное распределение, а также дискретное распределение Пуассона. В таких случаях для получения выборок случайных чисел можно воспользоваться одним из следующих методов:

  • аппроксимацией непрерывной функции $$F(t)$$ дискретной функцией распределения;
  • получением с помощью статистических соотношений необходимой информации на основе других распределений, имеющих простую аналитическую форму.
  • Например, в случае второго метода, случайная величина, подчиняющаяся распределению Эрланга $$k$$ -го порядка (или гамма-распределению с целочисленным параметром), представляет собой сумму экспоненциально распределенных случайных величин, а время между наступлениями событий в пуассоновском процессе также распределено экспоненциально.

    Практическая часть

    1. Формирование выборки случайных чисел с равномерным распределением в заданном интервале

    Равномерно распределенная случайная величина в интервале $$[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

  • Рассчитайте теоретическое значение математического ожидания случайной величины, равномерно распределенной в интервале $$[2; 5]$$. Рассчитайте среднее значение величины $$t20$$ при трехкратном обращении к программе. Сравните результаты.
  • Постройте функцию распределения случайной величины из интервала по сформированной выборке. Интервал $$[a; b]$$ примите следующим (в соответствии с номером компьютера, за которым выполняется лабораторная работа):
    №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].
  • 2. Формирование выборки случайных чисел с экспоненциальным распределением

    Функция плотности $$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 эмпирическую функцию распределения можно построить с помощью $$cdfplot$$ (см. $$help cdfplot$$ ). Тогда программа формирования и построения функции распределения примет следующий вид:

    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]. В этом случае поступают следующим образом:

  • генерируют значения случайной величины, распределенной по экспоненциальному закону с параметром $$\lambda = 1$$ ;
  • находят произведение полученного значения и математического ожидания случайной величины, у которой $$\lambda \ne 1$$. Математическое ожидание экспоненциально распределенной величины обратно пропорционально параметру.
  • Задание 2

  • Постройте эмпирическую функцию плотности экспоненциального распределения по сформированному массиву случайных чисел.
  • Постройте эмпирическую функцию распределения по сформированному массиву случайных чисел без применения функции $$cdfplot$$.
  • Сравните выборку случайных чисел, распределенных по экспоненциальному закону с параметром $$\lambda = 0.25$$, и выборку чисел, полученных для $$\lambda = 1$$, с последующим преобразованием — умножением математического ожидания на массив сформированных чисел, для которых $$\lambda = 0.25$$.
  • Сформируйте выборку случайных чисел с экспоненциальным распределением по формуле (3.5) с помощью операторов цикла.
  • 3. Формирование нормально распределенных случайных чисел по методу бокса и маллера

    В соответствии с методом Бокса–Маллера случайные числа формируются парами с математическим ожиданием, близким к значению $$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)$$ с равномерным распределением.

    Выборка случайных чисел, сформированная по методу Бокса–Маллера, может центрироваться с целью получения параметров нормального закона практически равным своим теоретическим значениям стандартного нормального закона, т. е. $$m = 0$$, $$s = 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

  • В программе примените циклические операции расчета средних значений и средних квадратических отклонений.
  • Рассчитайте параметры нормального закона для сформированной выборки случайных чисел с помощью функций $$mean$$ и $$std$$, сравните результаты.
  • Постройте функцию плотности и функцию распределения для нормализованных данных. Сравните с функциями для данных, получаемых с помощью встроенной функции $$randn$$.
  • Напишите программу формирования выборки случайных чисел, распределенных по нормальному закону в соответствии с методом Марсальи–Брея по следующему алгоритму:
  • Генерируются два равномерно распределенных случайных числа $$R1$$, $$R2$$ из интервала $$[0; 1]$$.
  • Формируются два соотношения $$V1= –1 + 2R1, V2= –1 + 2R2$$.
  • Составляется сумма $$S: S = V1^{2} + V2^{2}$$.
  • Если $$S \ge 1$$, то пп. 1-3 повторяются.
  • Если $$S < 1$$, то вычисляется первая пара случайных чисел $$t1$$, $$t2$$:$$t1=V1\sqrt{\frac{-2\ell nS}{S}},\qquad t2=V2\sqrt{\frac{-2\ell nS}{S}}$$
  • Для выборки случайных чисел, сформированных по методу Марсальи–Брея, рассчитать параметры нормального закона, т. е. математическое ожидание (среднее) и среднее квадратическое отклонение (стандартное отклонение).

    Примечание. Для формирования выборки $$X$$ нормально распределенных случайных чисел с произвольными параметрами $$m_{x}$$ и $$s_{x}$$ следует воспользоваться формулой

    $$X=m_x+s_xZ,$$

    где $$Z$$ — выборка случайных чисел, распределенных по стандартному нормальному закону, т. е. когда $$m = 0$$, $$s = 1$$.

    4. Формирование выборки случайных чисел, соответствующей нормальному распределению, с помощью центральной предельной теоремы

    Известно [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]$$, то приемлемые результаты в смысле параметров стандартного нормального закона дает формула

    $$X=\sum\limits_{i=1}^{12}r_i-6,$$

    где $$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

  • Постройте функции плотности и распределения для случайных величин, сформированных по вышеприведенной программе.
  • Получите выборку случайных чисел со стандартным нормальным распределением при суммировании случайных чисел, распределенных:
  • по экспоненциальному закону,
  • по закону Эрланга 3-го порядка.
  • При необходимости произведите центрирование полученных случайных величин.

    5. Моделирование нормального закона распределения в системе GPSS/PC

    В системе GPSS/PC, как и в других версиях среды GPSS, необходимо обеспечить неотрицательность значений интервалов поступления требований (транзактов) в систему и их задержки (обслуживания). Область определения случайной величины для нормального закона представляет собой всю числовую ось. Поэтому, чтобы обеспечить по возможности только неотрицательные значения случайной величины, необходимо выполнить требование $$m \ge 5s$$, где $$m$$ — математическое ожидание, а $$s$$ – среднеквадратическое отклонение нормально распределенной случайной величины. Во многих системах программирования имеются генераторы случайных чисел со стандартным нормальным законом распределения, для которого $$m = 0$$, $$s = 1$$. Но переход к нормальному закону с другими параметрами можно произвести по формуле (3.6). Поэтому в системах GPSS можно использовать стандартный нормальный закон распределения с последующим преобразованием по формуле (3.6).

    Пример 5. Выполните моделирование одноканальной системы обслуживания, для которой известно, что поступление требований подчиняется равномерному закону из интервала $$[10; 16]$$ мин., время обслуживания подчиняется нормальному закону с параметрами $$m = 18 мин$$., $$s = 3 мин$$. Моделирование произведите по обслуживанию 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

    В программе предусмотрено табулирование времени пребывания транзактов в устройстве обслуживания по стандартному числовому атрибуту $$mp1$$, где цифра $$1$$ относится к номеру параметра, через который производится отметка времени блока $$mark$$.

    На рис. 3.1 приведена гистограмма распределения времени обслуживания. Эта гистограмма может быть получена после запуска программы на исполнение при закомментированном операторе $$end$$, и далее с помощью комбинации клавиш Alt+T можно перейти в окно просмотра таблиц.

    (рис 3.1) Гистограмма распределения времени обслуживания

    Как видно из рис. 3.1, гистограмма имеет форму, близкую к функции плотности нормального закона. Среднее значение времени распределения обслуживания требований в устройстве равно 17.62 ( $$Mean: 17.62$$ ), стандартное отклонение равно 3.00 ( $$S.D.: 3.00$$ ), что достаточно близко к условию примера.

    Задание 5

  • По файлу стандартного отчета постройте функцию распределения времени обработки транзактов в устройстве. Сравните с той же функцией, построенной в среде MATLAB.
  • Проанализируйте результаты для разных номеров генераторов случайных чисел в зависимости от номера компьютера: $$RN1, RN2, … $$.
  • Проанализируйте результаты при различных значениях счетчика завершений, т. е. положите $$start\ 200$$, $$start\ 300$$ и т. д. в зависимости от номера компьютера, за которым выполняется лабораторная работа (1, 2, 3, ...). Графический образ получаемой гистограммы внесите в отчет лабораторной работы.
  • 6. Формирование выборки случайных чисел, распределенных по закону эрланга k-го порядка

    Случайная величина, подчиняющаяся распределению Эрланга с параметрами $$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

  • Упростите программный код, используя матричные возможности системы MATLAB.
  • Постройте функцию плотности и функцию распределения по аналитическим формулам для распределения Эрланга [3]:$$f_{k}(t)=\frac{\lambda(\lambda t)^{k-1}}{(k-1)!}e^{-\lambda t}, \qquad F_{k}(t)=1-\sum\limits_{j=0}^{k-1}\frac{(\lambda t)^{j}}{j!}e^{-\lambda t}$$
  • Выполните предыдущий пункт с помощью встроенных функций $$gampdf$$ и $$gamcdf$$. Сравнить результаты.
  • 7. Моделирование процесса обслуживания по закону эрланга k-го порядка в системе GPSS/PC

    Для моделирования распределения Эрланга $$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);

    Программный код решения примера в системе GPSS/PC:

    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, и стандартное отклонение, равное 6.92.

    (рис 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

  • По файлу стандартного отчета постройте в MATLAB функцию распределения времени обслуживания транзактов в устройстве.
  • В соответствии с номером компьютера, за которым выполняется лабораторная работа, примите следующие числа обработки транзактов (оператор $$start$$ ): № 1: 1000; № 2: 2000 и т. д. Проанализируйте результаты, рассчитайте параметр закона Эрланга 3-го порядка.
  • Контрольные вопросы

  • Что из себя представляет график функции плотности равномерного закона распределения случайных величин?
  • Как формируется поток Эрланга $$k$$ -го порядка?
  • Чему соответствует область определения функции распределения случайных величин экспоненциального закона?
  • Чему соответствует область определения функции распределения случайных величин равномерного закона?
  • Какая связь между стандартным отклонением и дисперсией случайных величин?
  • Что собой отображает гистограмма случайных величин?
  • Какая связь между функцией плотности и функцией распределения случайных непрерывных величин?
  • Что является параметром в экспоненциальном законе распределения случайных величин? Какой функциональный смысл имеет параметр экспоненциального распределения случайной величины?
  • Назовите допустимую область определения функции распределения потока Эрланга $$k$$ -го порядка.
  • Вернуться к учебному плану