Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. from math import factorial
  2. import matplotlib
  3. import matplotlib.pyplot as plt
  4.  
  5. #Вычисление первой формулы Эрланга
  6. def Erlang_one(A, n):
  7. E_1 = 1
  8. for i in range(1, n+1):
  9. E_1 = 1 + E_1*(i/A)
  10. return 1/E_1
  11.  
  12. #Вычисление второй формулы Эрланга
  13. def Erlang_two(A,n):
  14. E_1 = Erlang_one(A,n)
  15. E_2 = E_1/(1-A/n*(1-E_1))
  16. return (E_2)
  17.  
  18. #Вычисление длины очереди
  19. def length(A,n):
  20. E_1 = Erlang_one(A,n)
  21. L = (A*E_1*n)/((n-A)+A*E_1*(n-A))
  22. return L
  23.  
  24. #Графики
  25. n = 70
  26. A = 35
  27.  
  28. #1.1
  29.  
  30. X = []
  31. Y = []
  32.  
  33. for A in range (1,1000):
  34. E = Erlang_one(A,n)
  35. X.append(A)
  36. Y.append(E)
  37.  
  38. plt.plot(X,Y, color = 'k')
  39. plt.xlabel("Интенсивность поступающей нагрузки")
  40. plt.ylabel("Вероятность блокировки заявки")
  41. plt.show()
  42. #
  43. #1.2
  44.  
  45. X = []
  46. Y = []
  47. for n in range (1,100):
  48. E = Erlang_one(A, n)
  49. X.append(n)
  50. Y.append(E)
  51.  
  52. plt.plot(X,Y, color = 'k')
  53. plt.xlabel("Число обслуживающих устройств")
  54. plt.ylabel("Вероятность блокировки заявки")
  55. plt.show()
  56.  
  57. #
  58. #2.1
  59. X = []
  60. Y = []
  61. for A in range(1,71):
  62. P = Erlang_two(A,n)
  63. X.append(A)
  64. Y.append(P)
  65.  
  66. plt.plot(X,Y, color = 'k')
  67. plt.xlabel("Интенсивность поступающей нагрузки")
  68. plt.ylabel("Вероятность ожидания начала обслуживания")
  69. plt.show()
  70.  
  71. #2.2
  72. X = []
  73. Y = []
  74. for A in range (1,70):
  75. L = length(A,n)
  76. X.append(A)
  77. Y.append(L)
  78.  
  79. plt.plot(X,Y, color = 'k')
  80. plt.xlabel("Интенсивность поступающей нагрузки")
  81. plt.ylabel("Средняя длина очереди")
  82. plt.show()
  83.  
  84. #2.3
  85.  
  86. X = []
  87. Y = []
  88. for n in range(35,100):
  89. E = Erlang_two(A,n)
  90. X.append(n)
  91. Y.append(E)
  92.  
  93. plt.plot(X,Y, color = 'k')
  94. plt.xlabel("Число обсуживающих устройств")
  95. plt.ylabel("Вероятность ожидания начала обслуживания")
  96. plt.show()
  97.  
  98. #2.4
  99.  
  100. X = []
  101. Y = []
  102.  
  103. for n in range (36,100):
  104. L = length(A,n)
  105. X.append(n)
  106. Y.append(L)
  107.  
  108. plt.plot(X,Y,color = 'k')
  109. plt.xlabel("Число обслуживающих устройств")
  110. plt.ylabel("Средняя длина очереди")
  111. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement