Gorcupt

Untitled

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