Главная страница

Отчет по лабе 4(сети). Цель работы исследовать сумму двух простейших потоков и определить характеристики результирующего потока. Ход работы


Скачать 84.67 Kb.
НазваниеЦель работы исследовать сумму двух простейших потоков и определить характеристики результирующего потока. Ход работы
АнкорОтчет по лабе 4(сети
Дата05.10.2022
Размер84.67 Kb.
Формат файлаdocx
Имя файлаОтчет по лабе 4(сети).docx
ТипДокументы
#714975

Цель работы: исследовать сумму двух простейших потоков и определить характеристики результирующего потока.

Ход работы:

В данной лабораторной работе случайный поток задается последовательностью промежутков времени между вызывающими моментами методом Монте Карло.

Исходя из программы, написанной в ходе 3 лабораторной работы смоделируем два случайных потока и выведем так же поток, получившийся в ходе суммирования этих двух потоков:

Построим график данных потоков используя библиотеку matplotlib:



Выведем модельную интенсивность и сравним ее с суммой интенсивностей двух смоделериванных потоков:



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

Расчитаем остальные характеристики:



Оценка мат. ожидания примерно равна модельному мат.ожиданию, что говорит нам о приемлимости смоделированного суммарного потока.

Оценка дисперсии так же примерно равна дисперсии потока, что так же позволяем нам сделать вывод о приемлимости потока.

Код:

import random, math, csv
import matplotlib.pyplot as plt

def potok(l):
r = []
T = []
t = []
t.append(0)
r.append(0)
T.append(0)
x = 0.1
math.log(x)
for i in range(1,1000):
r.append(random.random())
st = float(-math.log(r[i])*(1/l))
T.append(st)
st = 0
for j in range(i+1):
st += T[j]
t.append(st)
if t[i] >= 12:
break
g = (12 - 5)/21
q = 0
t2 = 5
for i in range(len(t)):
if t[i] >= 5:
q = i
break
Xn = []
Xn.append("Xn(g)")
for i in range(21):
count = 0
t1 = t2
t2 += g
for j in range(len(t)):
if t[j] >= t1 and t[j] <= t2:
count +=1
Xn.append(count)
print(Xn)
return Xn

def int(Xn):
g = (12 - 5) / 21
k = max(Xn)
Xn2 = []
nk = []
nk.append(" nk ")
Xn2.append("Xn(g)")
for i in range(k + 1):
count = 0
Xn2.append(i)
for j in range(len(Xn)):
if Xn[j] == i:
count += 1
nk.append(count)
nk.pop(0)
Xn2.pop(0)

a = 0
for i in range(len(Xn2)):
a += (Xn2[i] * nk[i])
a = a / 20
print("Модельное мат. ожидание " + str(a))
l = a / g
print("Модельная интенсивность " + str(l))
return a,l

N = []
N.append(" N ")
for i in range(21):
count = 0
N.append(i)

print("Первая таблица")
print(N)
Xn1 = potok(9/4)
Xn2 = potok(17/4)
Xns = []
Xn1.pop(0)
Xn2.pop(0)
N.pop(0)
Xns.append('x1+x2')
for i in range(len(Xn1)):
Xns.append(Xn1[i]+Xn2[i])
print(Xns)
Xns.pop(0)


a,l = int(Xns)
print("Сумма интенсивностей двух потоков: ", (9/4)+(17/4))
Dx_ = 0
Mx_ = 0
Dx = 0

Mx_ = sum(Xns)/len(Xns)
print("Оценка мат.ожидания для суммарного потока: ", Mx_)

for i in range(len(Xns)):
Dx_ += math.pow(Xns[i],2)
Dx_ = Dx_/len(Xns) - math.pow(Mx_,2)
print("Оценка дисперсии для суммарного потока: ", len(Xns)/(len(Xns)-1)*Dx_)

for i in range(len(Xns)):
Dx += math.pow(Xns[i]-a,2)
Dx = Dx/len(Xns)
print("Дисперсия суммарного потока: ", Dx)

x = N
y1 = Xn1
y2 = Xn2
y3 = Xns

plt.title("График")
plt.xlabel("N")
plt.ylabel("Xn(g)")
plt.plot(x, y1, x, y2, x, y3)
plt.grid(True)
plt.show()
Вывод: в ходе данной лабораторной работы было смоделированно два потока и найден суммарный поток. Были найдены его числовые характеристики, которые свидетельствовали о том, что данный поток можно считать приемлимым. Модельная интенсивность суммарного потока примерно равна сумме интенсивностей двух смоделированных потоков, погрешность очень маленькая и роли не играет.


написать администратору сайта