<jupyter_start><jupyter_text>Model SEIR w akcjiZastosowanie modelu SEIR w praktyce $\frac{dS}{dt} = - \rho \beta IS $ $\frac{dE}{dt} = \rho \beta IS - \alpha E$ $\frac{dI}{dt} = \alpha E - \gamma I$ $\frac{dR}{dt} = \gamma I$gdzie:* $ \alpha $ - $ \frac{1}{okresinkubacji} $* $ \beta $ - współczynnik kontaktów (ile osób może zarażony zarazić) * $ \gamma $ - $ \frac{1}{okreszarazania} $* $ \rho $ - współczynnik "Social distancing"   * 0 - lockdown  * 1 - brak ograniczeń<jupyter_code>import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
import seaborn as ss

def seir_model(y, t, alpha, beta, gamma, rho):
    S, E, I, R = y
    dSdt = -rho*beta * S * I
    dEdt = rho*beta * S * I - alpha * E
    dIdt = alpha * E  - gamma * I
    dRdt = gamma * I
    return dSdt, dEdt, dIdt, dRdt

#@title Parametry wejściowe

#@markdown Jak długo epidemia (dni)
total_days =3000#@param {type: "integer"}

#@markdown Populacja:
N =  380#@param {type:"integer"}

# początkowa liczba podatnych
S0 = 1 - 1./N
# początkowa liczba narażonych
E0 = 1./N
# początkowa zainfekowanych
I0 = 0
# początkowa liczba zdrowych 
R0 = 0

#@markdown Okres inkubacji
incubation_period = 5 #@param {type: "integer"}
alpha = 1./incubation_period

#@markdown Współczynnik reprodukcji wirusa
r_not =  1#@param {type: "number"}

#@markdown Social distancing
rho =  1#@param {type:"number"}

#@markdown Okres zarażania
infection_period =  14#@param {type: "integer"}
gamma = 1./(infection_period)
beta = r_not * gamma

# czas (punkty w godzinach)
t = np.linspace(0, total_days, total_days)

# wartości początkowe
y0 = S0, E0, I0, R0

# rozwiązanie układu równań.
ret = odeint(seir_model, y0, t, args=(alpha, beta, gamma, rho))
S, E, I, R = ret.T

# wykres
fig = plt.figure(facecolor='w', figsize=(15,9), dpi=300)
ax = fig.add_subplot(111, axisbelow=True)
ax.plot(t, S, 'b', alpha=0.5, lw=2, marker='o', label='Podejrzani')
ax.plot(t, E, 'brown', alpha=0.5, lw=2, marker='o', label='Narażeni')
ax.plot(t, I, 'r', alpha=0.5, lw=2, marker='o', label='Zarażeni')
ax.plot(t, R, 'g', alpha=0.5, lw=2, marker='o', label='Uleczeni')
ax.set_xlabel('Czas / dni')
ax.set_ylabel('Procent populacji')
ax.grid()
ax.legend(loc='best')
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1662971175166297, 'fraction_numerical': 0.024390243902439025, 'mean_word_length': 4.333333333333333, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '311616', 'license': 'MIT', 'n_tokens_mistral': 1022, 'n_tokens_neox': 1003, 'n_words': 244, 'path': 'covid-19-seir.ipynb', 'repo_name': 'fl4izdn4g/colab-training', 'size': '2255'}