Gorcupt

Untitled

Sep 23rd, 2020
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.68 KB | None | 0 0
  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. import math
  4.  
  5. print("Введите чему равна лямбда:")
  6. lymbda = int(input())
  7. print("Введите степень эпсилона(10^(-x):")
  8. epsilon = 10 ** (-int(input()))
  9. print(epsilon)
  10. print("Введите чему равен мю:")
  11. mu = int(input())
  12. t = 0
  13. t1 = 0
  14. e =  2.718281828459045
  15. deltat = 0.1
  16. p0prev = 1
  17.  
  18. while True:
  19.     t1 += deltat
  20.     p0 = ((mu + lymbda * math.exp((-(lymbda + mu) * t1))) / (lymbda + mu))
  21.     ans = abs(p0 - p0prev) / p0prev
  22.     p0prev = p0
  23.     print("t = {0} | p0 = {1} | ans = {2}".format(round(t1,1), round(p0,5), ans))
  24.     if (ans <= epsilon):
  25.         break
  26. print("Ответ:", round(t1,1))
  27.  
  28.  
  29. t = np.linspace(0, 5, 100)                     # от 0 до 4 сделать 100 точек
  30. p0 = (1 / (lymbda + mu)) * (mu + lymbda * e ** (-(lymbda + mu) * t))                         # y1 - тоже много точек
  31. p1 = (lymbda / (lymbda + mu) * (1 - e ** (-t * (lymbda + mu))))
  32. fig, ax = plt.subplots()                        # будет 1 график, на нем:
  33. ax.plot(t, p0, color="blue", label="p(t)")      # функция p0(t), синий, надпись p(t)
  34. ax.plot(t, p1, color="blue", label="p(t)")      # функция p0(t), синий, надпись p(t)
  35. ax.set_xlabel("t")                              # подпись p горизонтальной оси t
  36. ax.set_ylabel("p0")                              # подпись p вертикальной оси p
  37. ax.legend()                                     # показывать условные обозначения
  38.  
  39. plt.show()                                      # показать рисунок
  40.  
Advertisement
Add Comment
Please, Sign In to add comment