Skip to content

Instantly share code, notes, and snippets.

@jph00
Created September 12, 2021 12:59
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save jph00/0c14b78daecc94345f52e41bff5e6e3c to your computer and use it in GitHub Desktop.
Save jph00/0c14b78daecc94345f52e41bff5e6e3c to your computer and use it in GitHub Desktop.
Basic SIR epidemic model
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"id": "30ad4b7a",
"cell_type": "code",
"source": "import numpy as np, matplotlib.pyplot as plt",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"id": "268b71b0",
"cell_type": "code",
"source": "beta,gamma = 0.2,1./10 # Contact & recovery rates (in 1/days)\nN = 1000 # Population\nI,R = 1,0 # Initial number of infected and recovered\nS = N-I-R # susceptible\n\nres = []\nfor i in range(160):\n diff_I = beta * S * I / N\n S -= diff_I\n diff_R = gamma*I\n R += diff_R\n I += diff_I-diff_R\n res.append((S,I,R))\n\nSs,Is,Rs = map(np.array, zip(*res))",
"execution_count": 2,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"id": "b64f4739",
"cell_type": "code",
"source": "fig,ax = plt.subplots()\nax.plot(Ss/1000, 'b', label='Susceptible')\nax.plot(Is/1000, 'r', label='Infected')\nax.plot(Rs/1000, 'g', label='Recovered')\nax.legend();",
"execution_count": 4,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"id": "bbc4f792",
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.8.3",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"toc": {
"nav_menu": {},
"number_sections": false,
"sideBar": true,
"skip_h1_title": false,
"base_numbering": 1,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
},
"gist": {
"id": "",
"data": {
"description": "Basic SIR epidemic model",
"public": false
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment