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

ЛР 3 / ЛАБА_3

.docx
Скачиваний:
1
Добавлен:
08.07.2024
Размер:
240.22 Кб
Скачать

Цель работы:

Исследование основных характеристик входных потоков заявок, а также базовых принципов моделирования СМО по событиям.

Вариант №9

Порядок эрланговского потока – 1

Параметр

Ход работы:

Результат работы алгоритма в соответствии с рисунком 1.

Рисунок 1 – Вывод значений

Пусть имеется n независимых случайных величин, каждая из которых имеет показательное (экспоненциальное) распределение с одним и тем же параметром лямбда. Тогда сумма этих случайных величин имеет распределение Эрланга. Плотность распределения Эрланга в соответствии с рисунком 2.

Рисунок 2 – Формула распределения Эрланга

График закона распределения интервалов распределения Эрланга в соответствии с рисунком 3.

Рисунок 3 – График закона распределения интервалов распределения Эрланга

График зависимости коэффициента вариации в зависимости от размера выборки с теоретическим значением соответствии с рисунком 4 (Листинг A).

Рисунок 4 – График зависимости коэффициента вариации от размера выборки

График зависимости интенсивности потока от размера выборки с теоретическим значением в соответствии с рисунком 5.

Рисунок 5 – График зависимости интенсивности потока от размера выборки

Список использованных переменных:

Название

Тип переменной

Хранимое значение

mass_N

массив

массив cо значениями размера выборки

mass_lambda

массив

массив со значениями интенсивности потока

mass_v

массив

массив со значениями коэффициента вариации

N

int

стартовое количество поступивших заявок

v_old

float

cтарое значение коэффициента вариации

lamda_old

float

cтарое значение интенсивности потока

k

int

порядок эрланговского потокa

o

int

параметр интенсивности потока

u

массив

случайные числа распределенные по закону Эрланга

Q

float

стандартное отклонение

m

float

мат. ожидание

lamda_new

float

новое значение интенсивности потока

v_new

float

новое значение коэффициента вариации

Вывод:

В ходе работы я исследовала основные характеристики входных потоков заявок, а также базовые принцы моделирования СМО по событиям, построила график закона распределения интервалов, а также график зависимости коэффициента вариации от размера выборки и график зависимости интенсивности потока от размера выборки, добавив на графики теоретические значения.

По полученным графикам можно сделать вывод, что с увеличением выборки значения коэффициента вариации и интенсивности потока приближаются к теоретическим.

Листинг

import numpy as np

import scipy.stats as st

import matplotlib.pyplot as plt

import random

import math

import time

def main():

start_time = time.time()

mass_N = np.array([]) # размер выборки

mass_lambda = np.array([]) # интенсивность потока

mass_v = np.array([]) # коэффициента вариации

N = 10

lamda_old, v_old = 999999, 999999

k = 1 # порядок эрланговского потока

o = 9 # параметр интенсивности потока

scale = 1/o

while True == True:

u = []

for i in range(N):

result = 0

for j in range(k):

result += -math.log(random.random()) * scale

u.append(result)

m = np.mean(u)

Q = np.std(u)

lamda_new = 1/m

v_new = Q/m # коэффициент вариации

if abs((lamda_new - lamda_old)/lamda_old) > 0.01 or abs((v_new - v_old) / v_old) > 0.01:

lamda_old = lamda_new

v_old = v_new

N = 2 * N

else:

lamd = lamda_new

v = v_new

break

mass_N = np.append(mass_N, N)

mass_lambda = np.append(mass_lambda, lamda_new)

mass_v = np.append(mass_v, v_new)

print('Массив значений коэффициента вариации', mass_v)

print('Массив значений интенсивности потока', mass_lambda)

print('Время работы программы:', time.time() - start_time)

# График закона распределения интервала

plt.figure(1)

x = np.linspace(0, 1, 100)

pdf = (pow(o, k) * pow(x, k-1) * np.exp(-o * x)) / math.factorial(k-1)

plt.plot(x, pdf)

plt.title('График закона распределения интервалов')

plt.xlabel('Интервал между событиями')

plt.ylabel('Плотность вероятности')

plt.legend()

plt.show()

# график интенсивности потока

plt.figure(2)

plt.plot(mass_N, mass_lambda)

plt.axhline((1/(k/o)), lw=4, alpha=0.5, color='orange')

plt.title("График зависимости коэффициента вариации от интенсивности потока")

plt.xlabel('Размер выборки N')

plt.ylabel('Интенсивность потока')

plt.show()

# график коэф. вариации

plt.figure(3)

plt.plot(mass_N, mass_v)

plt.axhline(np.sqrt(k / (o ** 2)) / (k / o), lw=4, alpha=0.5, color='orange')

plt.title("График зависимости коэффициента вариации от размера выборки")

plt.xlabel('Размер выборки N')

plt.ylabel('Коэффициент вариации')

plt.show()

main()

Соседние файлы в папке ЛР 3