Created
December 1, 2013 12:50
-
-
Save jamesp/7733226 to your computer and use it in GitHub Desktop.
Learning about iPython notebooks using a simple predator-prey model.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "metadata": { | |
| "name": "" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Predator-Prey models\n", | |
| "\n", | |
| "## Rabbits\n", | |
| "\n", | |
| "A population of rabbits (R) grows by a rate r:\n", | |
| "\n", | |
| "$$ r = birthrate - deathrate $$\n", | |
| "\n", | |
| "$$ \\frac{dR}{dt} = rR $$\n", | |
| "\n", | |
| "While can easily solve this to get the rabbit population at time t:\n", | |
| "\n", | |
| "$$ R(t) = R_{0}e^{rt} $$\n", | |
| "\n", | |
| "we will instead model this with a discrete iteration. In Python, we can create an infinite iteration using a generator:\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def rabbits(R, birthrate, deathrate):\n", | |
| " \"\"\"Creates a generator that produces an infinite supply of rabbits.\n", | |
| " R: the initial population of rabbits\n", | |
| " birthrate & deathrate: proportion of rabbits that \n", | |
| " reproduce every time step\"\"\"\n", | |
| " while True:\n", | |
| " r = (birthrate - deathrate)\n", | |
| " R += R*r\n", | |
| " yield R\n" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 1 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "In iPython, you can use ? and ?? to get information about the defined functions." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "rabbits?" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 2 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "weeks = range(200)\n", | |
| "\n", | |
| "# create a population of 10 rabbits with a 3% growth rate\n", | |
| "r = rabbits(10, 0.04, 0.01)\n", | |
| "pop = [next(r) for w in weeks]\n", | |
| "\n", | |
| "# What is the population every 25 iterations?\n", | |
| "pop[::25]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 3, | |
| "text": [ | |
| "[10.3,\n", | |
| " 21.56591267543841,\n", | |
| " 45.15423199268302,\n", | |
| " 94.54293437676596,\n", | |
| " 197.95190940281933,\n", | |
| " 414.4673390405337,\n", | |
| " 867.8025670455802,\n", | |
| " 1816.985862177308]" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 3 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "The notebook also has affordances for writing code - tab completion of method names, dropdown selection and tooltip hover of method signatures:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": true, | |
| "input": [ | |
| "pop.\n", | |
| "\n", | |
| "rabbits(\n" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "ename": "SyntaxError", | |
| "evalue": "invalid syntax (<ipython-input-4-3e6c3026826b>, line 1)", | |
| "output_type": "pyerr", | |
| "traceback": [ | |
| "\u001b[0;36m File \u001b[0;32m\"<ipython-input-4-3e6c3026826b>\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m pop.\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 4 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Let's plot some rabbit populations. Using the ```%pylab inline``` directive we can use matplotlib directly embedded in the browser:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "%pylab inline" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "Populating the interactive namespace from numpy and matplotlib\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 5 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "plt.plot(weeks, pop, label='rabbits')\n", | |
| "plt.legend(loc='lower right')" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 6, | |
| "text": [ | |
| "<matplotlib.legend.Legend at 0x112a3fb50>" | |
| ] | |
| }, | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "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\nduwwhw4dMrNnzzY333yzMcaYyspKY7PZTEtLizHGmMTERJObm+uLo6ioyFx66aXms88+M8YY8957\n7/niOF5n8HhuAAAJ2UlEQVR7+7Kr+1glApEAam2FrVth2TK4/HJroLe//x1uu83q/fPcc5CWBsOG\nBTrS7mOz+edx5tu1sXjxYhwOBwMHDuT6668nPDwcgNTUVKKioigtLfW9PywsjCVLlnDWWWeRmprK\n2LFjefHFF33rSk9Px+VyMWjQIH7xi1+wbt26dhuIj51+9tlnU19fz7vvvktraytjx471xdFTlAhE\neti+ffDHP8KcORAeDrfcAvX11tAPtbXw7LNW//9BgwIdac8wxj+Pzrjwwgt9r5955hkSEhIYPnw4\nw4cP55133mHfvn2++ccPiXPRRRfh9XpPuq5Ro0bR1NTE3r17T7rdY9sJpkyZwm233cZPfvIT7HY7\nP/rRj6ivr+/cB+okJQKRblZfb9Xv33WXdYeviy+2+vx/85vw5ptW4++jj8LUqd0/7o+0dfSA/PHH\nH/PDH/6QJ598kv3793PgwAHGjx/f5sz9+NGSP/74Yy644ALf37t3727zOjQ0lPPPP7/dbR5r0aJF\nvPXWW5SXl7Nz504eeeSRLn+2M6FEIOJn//63Nb7/vfdavXpGjoRHHoEhQ6w7f+3dCwUF8OMfw0UX\nBTpaATh06BA2m43zzz+f1tZWnn76ad5555027/nkk094/PHHaWpqYv369bz33nskJycDVlXPs88+\ny7vvvsvhw4e5//77+f73v3/Sg77dbufDDz/0/f3WW29RWlpKU1MTgwYNYuDAgZzVw32A1X1UpAuM\ngffft8b1P/qorISvfx2uusrq73/55XDOOYGOVE7F5XJx5513csUVVzBgwADS09O58sorffNtNhuX\nX345FRUVjBgxgvDwcP785z8zfPhw3/z09HTmzp3Le++9R2JiIitXrmyz/FFLliwhIyOD3/72t6Sn\np5OSksLtt9/ORx99xMCBA5kxYwZ33XVXz314NNaQyBmprYV//hO2bbMO+lu2wNCh1pn/0UdcHISG\nBjrS4KHftP9011hDSgQiJ2GMdWZfVtb2ceSIdbb/9a9/eeDv4Q4evY5+0/6jRCDSDYyBTz6xGmzL\ny63Hjh3w9ttw7rmQkGAd9BMSrMeoUbqI60zpN+0/SgQiXdDUZI3R88EH1u0Zjz3oG2P134+Jscbv\n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\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x112a3fb10>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 6 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def plot_pop(gen, n_weeks, label='rabbits'):\n", | |
| " \"\"\"Plot a population generator on standard axes.\"\"\"\n", | |
| " w = range(n_weeks)\n", | |
| " pop = [next(gen) for i in w]\n", | |
| " plt.xlabel('t')\n", | |
| " plt.ylabel('population')\n", | |
| " plt.plot(w, pop, label=label)\n", | |
| "\n", | |
| "max_t = 500\n", | |
| "plot_pop(rabbits(10, 0.02, 0.01), max_t, 'more births')\n", | |
| "plot_pop(rabbits(500, 0.01, 0.02), max_t, 'more deaths')\n", | |
| "plot_pop(rabbits(300, 0.01, 0.01), max_t, 'stable')\n", | |
| "plt.legend(loc='upper left')\n" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 7, | |
| "text": [ | |
| "<matplotlib.legend.Legend at 0x112b1d6d0>" | |
| ] | |
| }, | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "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\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x112a58590>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 7 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "This seems a little bit unlikely, where are all these rabbits going to live? Suppose that the habitat can only support a maximum number of rabbits (k). The rate of growth in the rabbit population will become the *logistic equation*:\n", | |
| "\n", | |
| "$$ \\frac{dR}{dt} = \\frac{rR(R-k)}{k} $$\n", | |
| "\n", | |
| "And we can write a new rabbit generator to take this into account with a new ```max_rabbits``` parameter:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "def rabbits2(R, birthrate, deathrate, max_rabbits):\n", | |
| " \"\"\"Creates a generator that produces an supply of rabbits.\n", | |
| " R: the initial population of rabbits\n", | |
| " birthrate & deathrate: proportion of rabbits that \n", | |
| " reproduce or die every time step\n", | |
| " max_rabbits: the maximum sustainable population of rabbits.\"\"\"\n", | |
| " R = float(R)\n", | |
| " while True:\n", | |
| " r = birthrate - deathrate\n", | |
| " k = (max_rabbits - R) / max_rabbits\n", | |
| " R += R*k*r\n", | |
| " yield R\n", | |
| " " | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 8 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "max_t = 100\n", | |
| "plot_pop(rabbits2(10, 0.2, 0.1, 500), max_t)\n", | |
| "plot_pop(rabbits2(750, 0.2, 0.1, 500), max_t, 'above max pop')\n", | |
| "legend(loc='lower right')" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 9, | |
| "text": [ | |
| "<matplotlib.legend.Legend at 0x112bc2050>" | |
| ] | |
| }, | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "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\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x112a78e10>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 9 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Foxes\n", | |
| "\n", | |
| "Foxes eat rabbits. When there are rabbits to eat, foxes can reproduce. More rabbits means more foxes, which in turn means there are less rabbits. When there aren't enough rabbits the foxes will die out at a constant deathrate. This leads to the _Lotka-Volterra_ coupled equations:\n", | |
| "\n", | |
| "### Rabbit Population\n", | |
| "\n", | |
| "$$ \\frac{dR}{dt} = aR - bFR $$\n", | |
| "\n", | |
| "Where ```a``` is the basic birthrate of rabbits in the absence of foxes. And ```b``` is the evasive ability of rabbits to avoid being eaten by foxes.\n", | |
| "\n", | |
| "### Fox Population\n", | |
| "\n", | |
| "$$ \\frac{dF}{dt} = cRF - dF $$\n", | |
| "\n", | |
| "Where ```c``` is the efficiency of the foxes in catching rabbits and converting them into new foxes. And ```d``` is the deathrate of foxes." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "weeks = range(2000)\n", | |
| "ecosystem = {'rabbits': [60],\n", | |
| " 'foxes': [20]}\n", | |
| "\n", | |
| "params = {'rabbit_birthrate': 0.015,\n", | |
| " 'rabbit_evasion': 0.0005, # The chances of a rabbit being eaten by _one_ fox\n", | |
| " 'fox_deathrate': 0.01,\n", | |
| " 'fox_efficiency': 0.0003}\n", | |
| "\n", | |
| "def breed_rabbits(R, F, evasion, birthrate):\n", | |
| " return R + R*(birthrate - F*evasion)\n", | |
| "\n", | |
| "def breed_foxes(F, R, efficiency, deathrate):\n", | |
| " return F + F*(R*efficiency - deathrate)\n", | |
| "\n", | |
| "for w in weeks[:-1]:\n", | |
| " r, f = ecosystem['rabbits'][-1], ecosystem['foxes'][-1]\n", | |
| " ecosystem['rabbits'].append(breed_rabbits(r, f, params['rabbit_evasion'], params['rabbit_birthrate']))\n", | |
| " ecosystem['foxes'].append(breed_foxes(f, r, params['fox_efficiency'], params['fox_deathrate']))\n", | |
| "\n", | |
| "for species, pop in ecosystem.items():\n", | |
| " plot(weeks, pop, label=species)\n", | |
| "\n", | |
| "legend(loc='upper left')" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "metadata": {}, | |
| "output_type": "pyout", | |
| "prompt_number": 15, | |
| "text": [ | |
| "<matplotlib.legend.Legend at 0x112dc33d0>" | |
| ] | |
| }, | |
| { | |
| "metadata": {}, | |
| "output_type": "display_data", | |
| "png": "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\nQmCC\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x112dc3110>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 15 | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Small changes to the inputs can make big differences to the population cycles. Try changing the parameters in the cell above and rerunning with Shift-Enter." | |
| ] | |
| } | |
| ], | |
| "metadata": {} | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment