Скачиваний:
1
Добавлен:
08.07.2024
Размер:
3.01 Кб
Скачать
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))/10
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