jukaukor

SIR-Model-odeint.py

Mar 7th, 2020
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. # SIR-Model-odeint.py
  2. # Juhani Kaukoranta 07.03.2020
  3. from scipy.integrate import odeint #diffyht
  4. import numpy as np # nopeat vektorit, matriisit
  5. import matplotlib.pyplot as plt #plottaus
  6.  
  7. # diffyhtälöryhmän sirmodel määrittely
  8. def sirmodel(y,t):
  9. b = 1.0/2 #parametrit
  10. k = 1.0/3
  11. s, i, r = y # kolme funktiota
  12. dydt = [-b*s*i, b*s*i - k*i, k*i] # derivaatat dy/dt
  13. return dydt
  14.  
  15. # alkuarvot
  16. y0 = [1, 1.27e-6, 0]
  17. # aikaväli 151 päivää, välillä 0...150,
  18. t = np.linspace(0,150,151)
  19. # ratkaisu
  20. sol = odeint(sirmodel,y0,t)
  21. # plottaukset s,i,r väreillä r,g,b
  22. plt.title('Epidemian kulku')
  23. plt.plot(t, sol[:,0], 'b', label = 's=susceptible')
  24. plt.plot(t, sol[:,1], 'g' ,label = 'i=infected')
  25. plt.plot(t, sol[:,2], 'r' ,label = 'r=recovered')
  26. plt.legend(loc='best')
  27. plt.xlabel('t = päivä')
  28. plt.ylabel('suht osuus')
  29. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment