Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import matplotlib.pyplot as plt
- import numpy as np
- import math
- print("Введите чему равна лямбда:")
- lymbda = int(input())
- print("Введите степень эпсилона(10^(-x):")
- epsilon = 10 ** (-int(input()))
- print(epsilon)
- print("Введите чему равен мю:")
- mu = int(input())
- t1 = 0
- deltat = 0.1
- p0prev = 1
- while True:
- t1 += deltat #делаем шаг
- p0 = ((mu + lymbda * math.exp((-(lymbda + mu) * t1))) / (lymbda + mu))
- ans = abs(p0 - p0prev) / p0prev #вычисляем погрешность
- p0prev = p0
- print("t = {0} | p0 = {1} | ans = {2}".format(round(t1,1), round(p0,5), ans))
- if (ans <= epsilon):
- break
- print("Ответ:", round(t1,1))
- t = np.linspace(0, 5, 100) # от 0 до 4 сделать 100 точек
- p0 = ((mu + lymbda * np.exp((-(lymbda + mu) * t))) / (lymbda + mu)) # y1 - тоже много точек
- p1 = (lymbda / (lymbda + mu) * (1 - np.exp(-t * (lymbda + mu))))
- fig, ax = plt.subplots() # будет 1 график, на нем:
- ax.plot(t, p0, color="blue", label="p(t)") # функция p0(t), синий, надпись p(t)
- ax.plot(t, p1, color="blue", label="p(t)") # функция p1(t), синий, надпись p(t)
- ax.set_xlabel("t") # подпись p горизонтальной оси t
- ax.set_ylabel("p0") # подпись p вертикальной оси p
- ax.legend() # показывать условные обозначения
- plt.show() # показать рисунок
Advertisement
Add Comment
Please, Sign In to add comment