SIRS ---- :download:`Downloadable Source Code ` .. image:: arbitrary_dynamics/SIRS.png :width: 80 % :: import EoN import networkx as nx from collections import defaultdict import matplotlib.pyplot as plt N = 50000 G = nx.fast_gnp_random_graph(N, 5./(N-1)) H = nx.DiGraph() #DiGraph showing possible transitions that don't require an interaction H.add_edge('I', 'R', rate = 1.4) #I->R H.add_edge('R', 'S', rate = 0.2) #R->S J = nx.DiGraph() #DiGraph showing transition that does require an interaction. J.add_edge(('I', 'S'), ('I', 'I'), rate = 1) #IS->II IC = defaultdict(lambda: 'S') for node in range(200): IC[node] = 'I' return_statuses = ('S', 'I', 'R') t, S, I, R = EoN.Gillespie_simple_contagion(G, H, J, IC, return_statuses, tmax = 30) plt.plot(t, S, label = 'Susceptible') plt.plot(t, I, label = 'Infected') plt.plot(t, R, label = 'Recovered') plt.legend() plt.savefig('SIRS.png')