diff --git a/code/SIRR Project.ipynb b/code/SIRR Project.ipynb new file mode 100644 index 00000000..1e2ed551 --- /dev/null +++ b/code/SIRR Project.ipynb @@ -0,0 +1,553 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 199, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "from modsim import *\n", + "\n", + "from random import random\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "init = State(Susceptible=349, Infected=1, Removed=0, Recovered=0) \n", + " \n" + ] + }, + { + "cell_type": "code", + "execution_count": 201, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system():\n", + " \n", + " init = State(Susceptible=349, Infected=1, Removed=0, Recovered=0)\n", + " infected=init.Infected\n", + " recovered=init.Recovered\n", + " removed=init.Removed\n", + " susceptible=init.Susceptible\n", + " \n", + " init_infection_exit = State(new_susceptible=0, new_infected=0, new_recovered=0, new_removed=0)\n", + " \n", + " t0=0\n", + " t_end=98\n", + " \n", + " \n", + " system = System(t0=t0, t_end=t_end, init=init, init_infection_exit=init_infection_exit,\n", + " susceptible=susceptible, infected=infected, recovered=recovered, removed=removed)\n", + " \n", + " return system" + ] + }, + { + "cell_type": "code", + "execution_count": 202, + "metadata": {}, + "outputs": [], + "source": [ + "system = make_system()" + ] + }, + { + "cell_type": "code", + "execution_count": 203, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
t00
t_end98
initSusceptible 349\n", + "Infected 1\n", + "Removed ...
init_infection_exitnew_susceptible 0\n", + "new_infected 0\n", + "new_...
susceptible349
infected1
recovered0
removed0
\n", + "
" + ], + "text/plain": [ + "t0 0\n", + "t_end 98\n", + "init Susceptible 349\n", + "Infected 1\n", + "Removed ...\n", + "init_infection_exit new_susceptible 0\n", + "new_infected 0\n", + "new_...\n", + "susceptible 349\n", + "infected 1\n", + "recovered 0\n", + "removed 0\n", + "dtype: object" + ] + }, + "execution_count": 203, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system" + ] + }, + { + "cell_type": "code", + "execution_count": 204, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update2 (state, state2, system):\n", + " \n", + " s, i, rd, r = state\n", + " \n", + " ns, ni, nr, nrd = state2\n", + "\n", + " # print(system.susceptible)\n", + " for g in range(system.susceptible):\n", + " r = random()\n", + " if (r <= 0.33):\n", + " ni += 1\n", + " else:\n", + " ns += 1\n", + " \n", + " \n", + " # print(system.infected)\n", + " \n", + " for k in range(system.infected):\n", + " r = random()\n", + " if (r <= 0.74):\n", + " ni += 1\n", + " elif (r <= 0.29):\n", + " nr += 1\n", + " else:\n", + " nrd += 1\n", + " \n", + " for l in range(system.recovered):\n", + " r = random()\n", + " if (r <= 0.995):\n", + " nr += 1\n", + " else:\n", + " ni += 1\n", + " \n", + " system.susceptible = ns\n", + " system.infected = ni\n", + " system.removed += nrd\n", + " system.recovered = nr\n", + "\n", + " init = State(Susceptible=system.susceptible, Infected=system.infected, Removed=system.removed, Recovered=system.recovered)\n", + " return init" + ] + }, + { + "cell_type": "code", + "execution_count": 205, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
Susceptible235
Infected115
Removed0
Recovered0
\n", + "
" + ], + "text/plain": [ + "Susceptible 235\n", + "Infected 115\n", + "Removed 0\n", + "Recovered 0\n", + "dtype: int64" + ] + }, + "execution_count": 205, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "check_update = update2(init, system.init_infection_exit, system)\n", + "check_update" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
Susceptible235
Infected115
Removed0
Recovered0
\n", + "
" + ], + "text/plain": [ + "Susceptible 235\n", + "Infected 115\n", + "Removed 0\n", + "Recovered 0\n", + "dtype: int64" + ] + }, + "execution_count": 206, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "check_update" + ] + }, + { + "cell_type": "code", + "execution_count": 207, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation(system,update2):\n", + " frame = TimeFrame(columns=system.init.index)\n", + " frame.loc[system.t0] = system.init\n", + " \n", + " for i in linrange(system.t0, system.t_end):\n", + " frame.loc[i+1] = update2(frame.loc[i], system.init_infection_exit, system)\n", + " \n", + " system.results = frame" + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": {}, + "outputs": [], + "source": [ + "run_simulation(system,update2)" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SusceptibleInfectedRemovedRecovered
0349.01.00.00.0
1152.0165.033.00.0
2104.0171.075.00.0
371.0161.0118.00.0
445.0151.0154.00.0
\n", + "
" + ], + "text/plain": [ + " Susceptible Infected Removed Recovered\n", + "0 349.0 1.0 0.0 0.0\n", + "1 152.0 165.0 33.0 0.0\n", + "2 104.0 171.0 75.0 0.0\n", + "3 71.0 161.0 118.0 0.0\n", + "4 45.0 151.0 154.0 0.0" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(S, I, Rd, R):\n", + " plot(S, '--', color='blue', label='Susceptible')\n", + " plot(I, '-', color='red', label='Infected')\n", + " plot(Rd, ':', color='green', label='Removed')\n", + " plot(R, '*-', color='purple', label='Recovered')\n", + " \n", + " decorate(xlabel='Time (days)', ylabel='Population')" + ] + }, + { + "cell_type": "code", + "execution_count": 211, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nE1auXMn48ePZsmULRUVFPP3003Tv3p2ePXuycuVKMjMz+fzzzy3l9OnTh9tuu41OnTpx0003UVZW\nxi233MKQIUPo27cvEydO5MiRIwB89NFH5ObmsnLlSnr37k2fPn144YUXOH/+PB9//DGdOnVi0KBB\nbNmyxVL+5s2bmTJlCnq9nvXr1zN69Ghuv/12oqOjGTZsGImJiWzatInTp0+zc+dOUlJSWL58OT16\n9GDo0KE8+uijLv9sncXtB/69veGFF5xb5rQe0xjZeSTpuelE+Ec4t3AhhMWMGTO48cYbMRqNbN++\nnTVr1nDttddy1VVXAXDo0CGys7MZPHiwXb6ioiKSk5Mtr6Ojoy3Xbdq0AaBz586Wez4+PpaWz5Ej\nR4iJiaFt27aW9JCQEGJjY0lKSgJg6tSpPP/88zzyyCMcP36cAwcOsGLFCkA7svnYsWPEx8db8leO\n4SYnJ3PkyBGCg4OJjIy0pPfv378Rn1Lzcvsg0xR0Oh3hfuGE+8lum6J1maxMZrIyudb063pfx3W9\nr6s1/aZ+N3FTv5tqTZ89cDazB85uVB1tBQUFWQJE165d0ev1PPXUU4SEhHD11VdjMBjo1q0bL774\nYrW8AQEBlmvPGg6W0ul0Nb6nj49PjfdNJhOGiplEEydOZOnSpfz444/8+uuv9O3bl9jYWEAbL5o6\ndSpz5sypVkZYWBiHDh2qNnHIYDtDqZVx++4yIcTF49Zbb2XQoEEkJiZy5swZ4uLiSEtLo23btkRH\nRxMdHU1oaCjLli2ztDocFRsbS0pKCjk5OZZ72dnZpKSkWAKJv78/l112Gf/73//47LPPmDp1quXZ\nbt26kZycbKlPdHQ02dnZLF++nIKCAnr27Mm5c+dITU215Dlw4EDDPpAWQIKMEOKiodfrefLJJyku\nLmbp0qVMnjyZ4OBg7r//fvbv309SUhLz5s1j3759xMXFNeg9pkyZQkhICA888AAHDx7k4MGDPPDA\nAwQGBlq66QCmTZvG5s2bOX78uN39OXPm8Ntvv7Fs2TKSk5P56aefmD9/Pnl5eYSFhZGQkEDv3r15\n6KGH2L9/P7t372bp0qWN/myaiwQZIDkZDhyAvXsbvyAzvzSfMqOs6hSiucTGxnLHHXewdetWdu7c\nyWuvvYaPjw+zZs1i+vTplJeX8/rrrxMa2rCjN7y9vVm/fj1eXl7cdNNNzJo1i4CAAN566y0CAwMt\n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\nesAAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frame = system.results\n", + "plot_results(frame.Susceptible, frame.Infected, frame.Removed, frame.Recovered)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def add_immunization(system,total):\n", + " system.init.susceptible -= total\n", + " system.init.recovered +=total" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/code/chap01_fig01.pdf b/code/chap01_fig01.pdf new file mode 100644 index 00000000..086f490e Binary files /dev/null and b/code/chap01_fig01.pdf differ diff --git a/code/chap01.ipynb b/code/chap01mine.ipynb similarity index 55% rename from code/chap01.ipynb rename to code/chap01mine.ipynb index c1833675..2d132f99 100644 --- a/code/chap01.ipynb +++ b/code/chap01mine.ipynb @@ -65,6 +65,30 @@ "8. Finally, when you are done with a notebook, selection \"Close and Halt\" from the File menu." ] }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello\n" + ] + } + ], + "source": [ + "print('Hello')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Taco truck" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -95,9 +119,17 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "If this cell runs successfully, it produces no output other than this message.\n" + ] + } + ], "source": [ "# If you want the figures to appear in the notebook, \n", "# and you want to interact with them, use\n", @@ -112,7 +144,7 @@ "\n", "# To switch from one to another, you have to select Kernel->Restart\n", "\n", - "%matplotlib notebook\n", + "%matplotlib qt5\n", "\n", "from modsim import *\n", "\n", @@ -132,7 +164,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 29, "metadata": { "collapsed": true }, @@ -146,17 +178,26 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "To find out what units are defined, type `UNITS.` (including the period) in the next cell and then press TAB. You should see a pop-up menu with a list of units." + "To find out what units are defined, type `UNITS.` in the next cell and then press TAB. You should see a pop-up menu with a list of units." ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (, line 1)", + "output_type": "error", + "traceback": [ + "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m UNITS.\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + ] + } + ], + "source": [ + "UNITS." + ] }, { "cell_type": "markdown", @@ -167,9 +208,28 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], + "execution_count": 30, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "9.8 meter/second2" + ], + "text/latex": [ + "$9.8 \\frac{meter}{second^{2}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a = 9.8 * meter / second**2\n", "a" @@ -186,9 +246,26 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 31, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "4 second" + ], + "text/latex": [ + "$4 second$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t = 4 * second\n", "t" @@ -205,13 +282,29 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "156.8 meter" + ], + "text/latex": [ + "$156.8 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "h = a * t**2 / 2" + "h = a * t**2\n", + "h" ] }, { @@ -227,9 +320,26 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 35, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "8.817885349720552 second" + ], + "text/latex": [ + "$8.817885349720552 second$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "h = 381 * meter\n", "t = sqrt(2 * h / a)\n", @@ -247,9 +357,26 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 37, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "86.41527642726142 meter/second" + ], + "text/latex": [ + "$86.41527642726142 \\frac{meter}{second}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "v = a * t\n", "v" @@ -266,7 +393,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 38, "metadata": { "collapsed": true }, @@ -278,9 +405,26 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 39, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "193.30546802805438 mile/hour" + ], + "text/latex": [ + "$193.30546802805438 \\frac{mile}{hour}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "v.to(mile/hour)" ] @@ -296,11 +440,22 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 40, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "20.0705" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "20.0705" ] }, { @@ -319,13 +474,13 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 50, "metadata": { "collapsed": true }, "outputs": [], "source": [ - "bikeshare = System(olin=10, wellesley=2)" + "bikeshare = System(olin=10, wellesley=2, babson=0)" ] }, { @@ -337,9 +492,57 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 43, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare" ] @@ -353,24 +556,128 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 44, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.olin" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 47, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.wellesley" ] }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin10
wellesley2
babson0
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "babson 0\n", + "dtype: int64" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare.babson" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -400,8 +707,10 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": {}, + "execution_count": 63, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "newfig()\n", @@ -418,9 +727,62 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin3
wellesley9
babson0
\n", + "
" + ], + "text/plain": [ + "olin 3\n", + "wellesley 9\n", + "babson 0\n", + "dtype: int64" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.olin -= 1\n", "bikeshare.wellesley += 1\n", @@ -436,7 +798,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 66, "metadata": { "collapsed": true }, @@ -455,11 +817,12 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 81, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "plot(bikeshare.olin, 'rs-')\n", + "plot(bikeshare.wellesley, 'bo-')" ] }, { @@ -473,7 +836,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 82, "metadata": { "collapsed": true }, @@ -493,7 +856,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 83, "metadata": { "collapsed": true }, @@ -513,9 +876,64 @@ }, { "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], + "execution_count": 86, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin-1
wellesley13
babson0
\n", + "
" + ], + "text/plain": [ + "olin -1\n", + "wellesley 13\n", + "babson 0\n", + "dtype: int64" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bike_to_wellesley()\n", "plot_state()\n", @@ -533,9 +951,20 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 87, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bike_to_wellesley" ] @@ -556,11 +985,69 @@ }, { "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], + "execution_count": 105, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin10
wellesley2
babson0
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "babson 0\n", + "dtype: int64" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "def bike_to_olin():\n", + " bikeshare.olin += 1\n", + " bikeshare.wellesley -= 1\n", + " \n", + "bike_to_olin()\n", + "bikeshare" ] }, { @@ -579,8 +1066,10 @@ }, { "cell_type": "code", - "execution_count": 24, - "metadata": {}, + "execution_count": 123, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "bikeshare = System(olin=10, wellesley=2)\n", @@ -597,7 +1086,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 124, "metadata": { "collapsed": true }, @@ -617,7 +1106,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 125, "metadata": { "collapsed": true }, @@ -641,9 +1130,57 @@ }, { "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], + "execution_count": 126, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin9
wellesley3
\n", + "
" + ], + "text/plain": [ + "olin 9\n", + "wellesley 3\n", + "dtype: int64" + ] + }, + "execution_count": 126, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bike_to_wellesley()\n", "plot_state()\n", @@ -659,9 +1196,57 @@ }, { "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 127, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bike_to_olin()\n", "plot_state()\n", @@ -677,7 +1262,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 128, "metadata": { "collapsed": true }, @@ -697,22 +1282,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Whenever you make a figure, you should put labels on the axes to explain what they mean and what units they are measured in.\n", - "\n", - "We can use `decorate`, which is defined in the `modsim` library, to label the axes and add a title." + "Whenever you make a figure, you should put labels on the axes to explain what they mean and what units they are measured in. Here's how:" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 129, "metadata": { "collapsed": true }, "outputs": [], "source": [ - "decorate(title='Olin-Wellesley Bikeshare',\n", - " xlabel='Time step (min)', \n", - " ylabel='Number of bikes')" + "label_axes(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')" ] }, { @@ -726,9 +1309,17 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 115, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap01_fig01.pdf\n" + ] + } + ], "source": [ "savefig('chap01_fig01.pdf')" ] @@ -744,20 +1335,33 @@ }, { "cell_type": "code", - "execution_count": 32, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 171, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64\n", + "\n" + ] + } + ], "source": [ + "bikeshare = System(olin=10, wellesley=2)\n", "def move_bike_debug(n):\n", " print('Running move_bike_debug with argument', n)\n", " bikeshare.olin -= n\n", " bikeshare.wellesley += n\n", - " \n", + "print (bikeshare)\n", + "\n", "def bike_to_wellesley_debug():\n", " print('Running bike_to_wellesley_debug')\n", " move_bike_debug(1)\n", + "n=1\n", + "print (move_bike)\n", " \n", "def bike_to_olin_debug():\n", " print('Running bike_to_olin_debug')\n", @@ -766,29 +1370,64 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 172, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64\n" + ] + } + ], "source": [ - "# Solution goes here" + "bikeshare = System(olin=10, wellesley=2)\n", + "def move_bike_debug(n):\n", + " print('Running move_bike_debug with argument', n)\n", + " bikeshare.olin -= n\n", + " bikeshare.wellesley += n\n", + "print (bikeshare)" ] }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 178, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64\n" + ] + } + ], "source": [ - "# Solution goes here" + "def bike_to_wellesley_debug():\n", + " print('Running bike_to_wellesley_debug')\n", + " move_bike_debug(1)\n", + "bike_to_wellesley()\n", + "print (bikeshare)" ] }, { "cell_type": "code", - "execution_count": 35, - "metadata": {}, + "execution_count": 36, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ - "# Solution goes here" + "def bike_to_olin_debug():\n", + " print('Running bike_to_olin_debug')\n", + " move_bike_debug(-1)\n", + "bike_to_olin()\n", + "print (bikeshare)" ] }, { @@ -809,11 +1448,12 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 187, "metadata": {}, "outputs": [], "source": [ - "flip(0.7)" + "if flip(0.7):\n", + " print('tails')" ] }, { @@ -827,9 +1467,17 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 188, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "heads\n" + ] + } + ], "source": [ "if flip(0.7):\n", " print('heads')" @@ -844,9 +1492,17 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 190, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "heads\n" + ] + } + ], "source": [ "if flip(0.7):\n", " print('heads')\n", @@ -863,8 +1519,10 @@ }, { "cell_type": "code", - "execution_count": 39, - "metadata": {}, + "execution_count": 191, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "bikeshare = System(olin=10, wellesley=2)\n", @@ -881,9 +1539,64 @@ }, { "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [], + "execution_count": 193, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Moving a bike to Wellesley\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin8
wellesley4
\n", + "
" + ], + "text/plain": [ + "olin 8\n", + "wellesley 4\n", + "dtype: int64" + ] + }, + "execution_count": 193, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "if flip(0.7):\n", " bike_to_wellesley()\n", @@ -902,9 +1615,64 @@ }, { "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [], + "execution_count": 195, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Moving a bike to Olin\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin9
wellesley3
\n", + "
" + ], + "text/plain": [ + "olin 9\n", + "wellesley 3\n", + "dtype: int64" + ] + }, + "execution_count": 195, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "if flip(0.6):\n", " bike_to_olin()\n", @@ -923,7 +1691,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 199, "metadata": { "collapsed": true }, @@ -948,9 +1716,64 @@ }, { "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [], + "execution_count": 204, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Moving a bike to Wellesley\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin9
wellesley3
\n", + "
" + ], + "text/plain": [ + "olin 9\n", + "wellesley 3\n", + "dtype: int64" + ] + }, + "execution_count": 204, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "step()\n", "plot_state()\n", @@ -961,39 +1784,61 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Finally, we should label the axes and add a title. This time, I'll wrap `decorate` in a function, so we don't have to write the same code over and over." + "The following function labels the axes and adds a legend to the figure." ] }, { "cell_type": "code", - "execution_count": 44, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 206, + "metadata": {}, + "outputs": [ + { + "ename": "SyntaxError", + "evalue": "invalid syntax (, line 2)", + "output_type": "error", + "traceback": [ + "\u001b[1;36m File \u001b[1;32m\"\"\u001b[1;36m, line \u001b[1;32m2\u001b[0m\n\u001b[1;33m legend(random string)\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n" + ] + } + ], "source": [ - "def decorate_bikeshare():\n", - " decorate(title='Olin-Wellesley Bikeshare',\n", - " xlabel='Time step (min)', \n", - " ylabel='Number of bikes')" + "def decorate(): \n", + " legend(random string)\n", + " label_axes(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "As always, the function doesn't do anything until we call it." + "As always, when you define a function, it has no effect until you run it." ] }, { "cell_type": "code", - "execution_count": 45, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 207, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\ProgramData\\Miniconda3\\lib\\site-packages\\matplotlib\\axes\\_axes.py:545: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.\n", + " warnings.warn(\"No labelled objects found. \"\n" + ] + } + ], + "source": [ + "decorate()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [ - "decorate_bikeshare()" + "**Exercise:** Change the argument of `legend` to `'random string'` and run `decorate` again. You should get an error message that lists the valid location where you can put the legend." ] }, { @@ -1012,8 +1857,10 @@ }, { "cell_type": "code", - "execution_count": 46, - "metadata": {}, + "execution_count": 257, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "bikeshare = System(olin=10, wellesley=2)\n", @@ -1030,7 +1877,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 258, "metadata": { "collapsed": true }, @@ -1057,9 +1904,18 @@ }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 259, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p1 -> 0.5\n", + "p2 -> 0.5\n" + ] + } + ], "source": [ "step()\n", "plot_state()" @@ -1074,9 +1930,18 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 260, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p1 -> 0.4\n", + "p2 -> 0.5\n" + ] + } + ], "source": [ "step(0.4)\n", "plot_state()" @@ -1091,9 +1956,18 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 261, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p1 -> 0.4\n", + "p2 -> 0.2\n" + ] + } + ], "source": [ "step(0.4, 0.2)\n", "plot_state()" @@ -1108,9 +1982,18 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 262, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p1 -> 0.4\n", + "p2 -> 0.2\n" + ] + } + ], "source": [ "step(p1=0.4, p2=0.2)\n", "plot_state()" @@ -1125,9 +2008,18 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 263, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p1 -> 0.5\n", + "p2 -> 0.2\n" + ] + } + ], "source": [ "step(p2=0.2)\n", "plot_state()" @@ -1142,9 +2034,18 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 264, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "p1 -> 0.4\n", + "p2 -> 0.2\n" + ] + } + ], "source": [ "step(0.4, p2=0.2)\n", "plot_state()" @@ -1159,7 +2060,7 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 220, "metadata": { "collapsed": true }, @@ -1182,27 +2083,30 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "**Exercise:** Write a function called `round_trip` that takes an optional parameter, `n`, with default value `1`. It should use `move_bike` to move `n` bikes from Olin to Wellesley and then back to Olin. Test your function by calling `round_trip(2)`." + "**Exercise:** Write a version of `decorate` that takes an optional parameter named `loc` with default value `'best'`. It should pass the value of `loc` along as an argument to `legend.` Test your function with different values of `loc`. [You can see the list of legal values here](https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.legend)." ] }, { "cell_type": "code", - "execution_count": 55, - "metadata": { - "collapsed": true - }, + "execution_count": 251, + "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def decorate(loc=\"best\"):\n", + " legend(loc=loc)\n", + " label_axes(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')\n", + "decorate()" ] }, { "cell_type": "code", - "execution_count": 56, + "execution_count": 265, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "decorate(\"upper right\")" ] }, { @@ -1221,7 +2125,7 @@ }, { "cell_type": "code", - "execution_count": 57, + "execution_count": 313, "metadata": { "collapsed": true }, @@ -1244,14 +2148,16 @@ }, { "cell_type": "code", - "execution_count": 58, - "metadata": {}, + "execution_count": 314, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "bikeshare = System(olin=10, wellesley=2)\n", "newfig()\n", "plot_state()\n", - "decorate_bikeshare()" + "decorate()" ] }, { @@ -1263,7 +2169,7 @@ }, { "cell_type": "code", - "execution_count": 59, + "execution_count": 315, "metadata": { "collapsed": true }, @@ -1283,7 +2189,7 @@ }, { "cell_type": "code", - "execution_count": 60, + "execution_count": 316, "metadata": { "collapsed": true }, @@ -1303,8 +2209,10 @@ }, { "cell_type": "code", - "execution_count": 61, - "metadata": {}, + "execution_count": 317, + "metadata": { + "collapsed": true + }, "outputs": [], "source": [ "for i in range(52):\n", @@ -1323,33 +2231,30 @@ }, { "cell_type": "code", - "execution_count": 62, - "metadata": { - "collapsed": true - }, + "execution_count": 320, + "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def run_steps(num_steps,p1,p2):\n", + " for i in range(num_steps):\n", + " step(p1,p2)\n", + " plot_state()" ] }, { "cell_type": "code", - "execution_count": 63, + "execution_count": 321, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "bikeshare = System(olin=10, wellesley=2)\n", + "newfig()\n", + "plot_state()\n", + "decorate()\n", + "\n", + "run_steps(40,0.5,0.5)" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, diff --git a/code/chap02mine.ipynb b/code/chap02mine.ipynb new file mode 100644 index 00000000..d082c439 --- /dev/null +++ b/code/chap02mine.ipynb @@ -0,0 +1,2142 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 2: Simulation\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll start with the same code we saw last time: the magic command that tells Jupyter where to put the figures, and the import statement that gets the functions defined in the `modsim` module." + ] + }, + { + "cell_type": "code", + "execution_count": 285, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "%matplotlib qt5\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## More than one System object\n", + "\n", + "Here's the code from the previous chapter, with two changes:\n", + "\n", + "1. I've added DocStrings that explain what each function does, and what parameters it takes.\n", + "\n", + "2. I've added a parameter named `system` to the functions so they work with whatever `System` object we give them, instead of always using `bikeshare`. That will be useful soon when we have more than one `System` object." + ] + }, + { + "cell_type": "code", + "execution_count": 286, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_steps(system, num_steps=1, p1=0.5, p2=0.5):\n", + " \"\"\"Simulate the given number of time steps.\n", + " \n", + " system: bikeshare System object\n", + " num_steps: number of time steps\n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " \"\"\"\n", + " for i in range(num_steps):\n", + " step(system, p1, p2)\n", + " plot_system(system)\n", + " \n", + "def step(system, p1=0.5, p2=0.5):\n", + " \"\"\"Simulate one minute of time.\n", + " \n", + " system: bikeshare System object\n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " \"\"\"\n", + " if flip(p1):\n", + " bike_to_wellesley(system)\n", + " \n", + " if flip(p2):\n", + " bike_to_olin(system)\n", + " \n", + "def bike_to_wellesley(system):\n", + " \"\"\"Move one bike from Olin to Wellesley.\n", + " \n", + " system: bikeshare System object\n", + " \"\"\"\n", + " move_bike(system, 1)\n", + " \n", + "def bike_to_olin(system):\n", + " \"\"\"Move one bike from Wellesley to Olin.\n", + " \n", + " system: bikeshare System object\n", + " \"\"\"\n", + " move_bike(system, -1)\n", + " \n", + "def move_bike(system, n):\n", + " \"\"\"Move a bike.\n", + " \n", + " system: bikeshare System object\n", + " n: +1 to move from Olin to Wellesley or\n", + " -1 to move from Wellesley to Olin\n", + " \"\"\"\n", + " system.olin -= n\n", + " system.wellesley += n\n", + " \n", + "def plot_system(system):\n", + " \"\"\"Plot the current system of the bikeshare system.\n", + " \n", + " system: bikeshare System object\n", + " \"\"\"\n", + " plot(system.olin, 'rs-', label='Olin')\n", + " plot(system.wellesley, 'bo-', label='Wellesley')\n", + " \n", + "def decorate():\n", + " \"\"\"Add a legend and label the axes.\n", + " \"\"\"\n", + " legend(loc='best')\n", + " label_axes(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can create more than one `System` object:" + ] + }, + { + "cell_type": "code", + "execution_count": 287, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 287, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare1 = System(olin=10, wellesley=2)\n", + "bikeshare1" + ] + }, + { + "cell_type": "code", + "execution_count": 288, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 288, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare2 = System(olin=10, wellesley=2)\n", + "bikeshare2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And whenever we call a function, we indicate which `System` object to work with:" + ] + }, + { + "cell_type": "code", + "execution_count": 289, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bike_to_olin(bikeshare1)" + ] + }, + { + "cell_type": "code", + "execution_count": 290, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bike_to_wellesley(bikeshare2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And you can confirm that the different systems are getting updated independently:" + ] + }, + { + "cell_type": "code", + "execution_count": 291, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin11
wellesley1
\n", + "
" + ], + "text/plain": [ + "olin 11\n", + "wellesley 1\n", + "dtype: int64" + ] + }, + "execution_count": 291, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare1" + ] + }, + { + "cell_type": "code", + "execution_count": 292, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin9
wellesley3
\n", + "
" + ], + "text/plain": [ + "olin 9\n", + "wellesley 3\n", + "dtype: int64" + ] + }, + "execution_count": 292, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Negative bikes" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the code we have so far, the number of bikes at one of the locations can go negative, and the number of bikes at the other location can exceed the actual number of bikes in the system.\n", + "\n", + "If you run this simulation a few times, it happens quite often." + ] + }, + { + "cell_type": "code", + "execution_count": 293, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2)\n", + "newfig()\n", + "plot_system(bikeshare)\n", + "decorate()\n", + "run_steps(bikeshare, 60, 0.4, 0.2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But this is relatively easy to fix, using the `return` statement to exit the function early if the update would cause negative bikes.\n", + "\n", + "If the second `if` statement seems confusing, remember that `n` can be negative." + ] + }, + { + "cell_type": "code", + "execution_count": 294, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def move_bike(system, n):\n", + " # make sure the number of bikes won't go negative\n", + " olin_temp = system.olin - n\n", + " if olin_temp < 0:\n", + " return\n", + " \n", + " wellesley_temp = system.wellesley + n\n", + " if wellesley_temp < 0:\n", + " return\n", + " \n", + " # update the system\n", + " system.olin = olin_temp\n", + " system.wellesley = wellesley_temp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now if you run the simulation again, it should behave." + ] + }, + { + "cell_type": "code", + "execution_count": 295, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2)\n", + "newfig()\n", + "plot_system(bikeshare)\n", + "decorate()\n", + "run_steps(bikeshare, 60, 0.4, 0.2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The variables `olin` and `wellesley` are created inside `move_bike`, so they are local. When the function ends, they go away.\n", + "\n", + "If you try to access a local variable from outside its function, you get an error:" + ] + }, + { + "cell_type": "code", + "execution_count": 296, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you remove the # from the last line in this cell and run it, you'll get\n", + "# NameError: name 'olin' is not defined\n", + "\n", + "#olin" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Add print statements in `move_bike` so it prints a message each time a customer arrives and doesn't find a bike. Run the simulation again to confirm that it works as you expect. Then you might want to remove the print statements before you go on." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Comparison operators" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `if` statements in the previous section used the comparison operator `<`. The other comparison operators are listed in the book.\n", + "\n", + "It is easy to confuse the comparison operator `==` with the assignment operator `=`.\n", + "\n", + "Remember that `=` creates a variable or gives an existing variable a new value." + ] + }, + { + "cell_type": "code", + "execution_count": 297, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "x = 6\n", + "print(x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Whereas `==` compared two values and returns `True` if they are equal." + ] + }, + { + "cell_type": "code", + "execution_count": 298, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 298, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x == 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can use `==` in an `if` statement." + ] + }, + { + "cell_type": "code", + "execution_count": 299, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "yikes\n" + ] + } + ], + "source": [ + "if x == 5:\n", + " print('yes, x is 5')\n", + "else:\n", + " print('yikes')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But if you use `=` in an `if` statement, you get an error." + ] + }, + { + "cell_type": "code", + "execution_count": 300, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you remove the # from the if statement and run it, you'll get\n", + "# SyntaxError: invalid syntax\n", + "\n", + "#if x = 5:\n", + "# print('yes, x is 5')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Add an `else` clause to the `if` statement above, and print an appropriate message.\n", + "\n", + "Replace the `==` operator with one or two of the other comparison operators, and confirm they do what you expect." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Metrics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have a working simulation, we'll use it to evaluate alternative designs and see how good or bad they are. The metric we'll use is the number of customers who arrive and find no bikes available, which might indicate a design problem." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we'll make a new `System` object that creates and initializes the system variables that will keep track of the metrics." + ] + }, + { + "cell_type": "code", + "execution_count": 301, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we need a version of `move_bike` that updates the metrics." + ] + }, + { + "cell_type": "code", + "execution_count": 302, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def move_bike(system, n):\n", + " olin_temp = system.olin - n\n", + " if olin_temp < 0:\n", + " system.olin_empty += 1\n", + " return\n", + " \n", + " wellesley_temp = system.wellesley + n\n", + " if wellesley_temp < 0:\n", + " system.wellesley_empty += 1\n", + " return\n", + " \n", + " system.olin = olin_temp\n", + " system.wellesley = wellesley_temp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now when we run a simulation, it keeps track of unhappy customers." + ] + }, + { + "cell_type": "code", + "execution_count": 303, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "newfig()\n", + "plot_system(bikeshare)\n", + "decorate()\n", + "run_steps(bikeshare, 60, 0.4, 0.2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After the simulation, we can print the number of unhappy customers at each location." + ] + }, + { + "cell_type": "code", + "execution_count": 304, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "5" + ] + }, + "execution_count": 304, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare.olin_empty" + ] + }, + { + "cell_type": "code", + "execution_count": 305, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 305, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare.wellesley_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Let's add a \"clock\" to keep track of how many time steps have elapsed:\n", + "\n", + "1. Add a new system variable named `clock` to `bikeshare`, initialized to 0, and \n", + "\n", + "2. Modify `step` so it increments (adds one to) `clock` each time it is invoked.\n", + "\n", + "Test your code by adding a print statement that prints the value of `clock` at the beginning of each time step." + ] + }, + { + "cell_type": "code", + "execution_count": 306, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0,clock=0)\n", + "\n", + "def step(system, p1=0.5, p2=0.5):\n", + " \"\"\"Simulate one minute of time.\n", + " \n", + " system: bikeshare System object\n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " \"\"\"\n", + " system.clock += 1\n", + " \n", + " if flip(p1):\n", + " bike_to_wellesley(system)\n", + " \n", + " if flip(p2):\n", + " bike_to_olin(system)" + ] + }, + { + "cell_type": "code", + "execution_count": 307, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "step(bikeshare)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 308, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After the simulation, check the final value of `clock`." + ] + }, + { + "cell_type": "code", + "execution_count": 309, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "print (bikeshare.clock)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Now suppose we'd like to know how long it takes to run out of bikes at either location. Modify `move_bike` so the first time a student arrives at Olin and doesn't find a bike, it records the value of `clock` in a system variable.\n", + "\n", + "Hint: create a system variable named `t_first_empty` and initialize it to `None`, which is a special value (like `True` and `False`) that can be used to indicate a \"special case\".\n", + "\n", + "Test your code by running a simulation for 60 minutes and checking the metrics." + ] + }, + { + "cell_type": "code", + "execution_count": 310, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Yup, example is None.\n" + ] + } + ], + "source": [ + "example = None\n", + "\n", + "if example == None:\n", + " print('Yup, example is None.')" + ] + }, + { + "cell_type": "code", + "execution_count": 311, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0,clock=0, t_first_empty=None)" + ] + }, + { + "cell_type": "code", + "execution_count": 312, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def move_bike(system, n):\n", + " olin_temp = system.olin - n\n", + " if olin_temp < 0:\n", + " system.t_first_empty +=1\n", + " system.olin_empty += 1\n", + " return\n", + " \n", + " wellesley_temp = system.wellesley + n\n", + " if wellesley_temp < 0:\n", + " system.wellesley_empty += 1\n", + " return\n", + " \n", + " system.olin = olin_temp\n", + " system.wellesley = wellesley_temp" + ] + }, + { + "cell_type": "code", + "execution_count": 313, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After the simulation, check the final value of `t_first_empty`." + ] + }, + { + "cell_type": "code", + "execution_count": 314, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "nan\n" + ] + } + ], + "source": [ + "print(bikeshare.t_first_empty)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we go on, let's put `step` and `move_bike` back the way we found them, so they don't break the examples below." + ] + }, + { + "cell_type": "code", + "execution_count": 315, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def step(system, p1=0.5, p2=0.5):\n", + " if flip(p1):\n", + " bike_to_wellesley(system)\n", + " \n", + " if flip(p2):\n", + " bike_to_olin(system)\n", + "\n", + "def move_bike(system, n):\n", + " olin_temp = system.olin - n\n", + " if olin_temp < 0:\n", + " system.olin_empty += 1\n", + " return\n", + " \n", + " wellesley_temp = system.wellesley + n\n", + " if wellesley_temp < 0:\n", + " system.wellesley_empty += 1\n", + " return\n", + " \n", + " system.olin = olin_temp\n", + " system.wellesley = wellesley_temp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Returning values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a simple function that returns a value:" + ] + }, + { + "cell_type": "code", + "execution_count": 316, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def add_five(x):\n", + " return x + 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's how we call it." + ] + }, + { + "cell_type": "code", + "execution_count": 317, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "8" + ] + }, + "execution_count": 317, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = add_five(3)\n", + "y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you run a function on the last line of a cell, Jupyter displays the result:" + ] + }, + { + "cell_type": "code", + "execution_count": 318, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 318, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "add_five(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "But that can be a bad habit, because usually if you call a function and don't assign the result in a variable, the result gets discarded.\n", + "\n", + "In the following example, Jupyter shows the second result, but the first result just disappears." + ] + }, + { + "cell_type": "code", + "execution_count": 319, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 319, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "add_five(3)\n", + "add_five(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "When you call a function that returns a variable, it is generally a good idea to assign the result to a variable." + ] + }, + { + "cell_type": "code", + "execution_count": 320, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8 10\n" + ] + } + ], + "source": [ + "y1 = add_five(3)\n", + "y2 = add_five(5)\n", + "\n", + "print(y1, y2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write a function called `init_system` that creates a `System` object with the system variables `olin=10` and `wellesley=2`, and then returns the new `System` object.\n", + "\n", + "Write a line of code that calls `init_system` and assigns the result to a variable." + ] + }, + { + "cell_type": "code", + "execution_count": 321, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "\n", + "def init_system():\n", + " exercise=System(olin=10,wellesley=2)\n", + " return exercise" + ] + }, + { + "cell_type": "code", + "execution_count": 322, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 322, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init_system()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Running simulations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before we go on, I want to update `run_steps` so it doesn't always plot the results. The new version takes an additional parameter, `plot_flag`, to indicate whether we want to plot.\n", + "\n", + "\"flag\" is a conventional name for a boolean variable that indicates whether or not a condition is true.\n", + "\n", + "This version of `run_steps` works even if `num_steps` is not an integer. It uses the `int` function to round down. See https://docs.python.org/3/library/functions.html#int" + ] + }, + { + "cell_type": "code", + "execution_count": 323, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_steps(system, num_steps=1, p1=0.5, p2=0.5, plot_flag=True):\n", + " \"\"\"Simulate the given number of time steps.\n", + " \n", + " `num_steps` should be an integer; if not, it gets rounded down.\n", + " \n", + " system: bikeshare System object\n", + " num_steps: number of time steps\n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " plot_flag: boolean, whether to plot\n", + " \"\"\"\n", + " for i in range(int(num_steps)):\n", + " step(system, p1, p2)\n", + " if plot_flag:\n", + " plot_system(system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now when we run a simulation, we can choose not to plot the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 324, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "bikeshare = System(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0)\n", + "run_steps(bikeshare, 60, 0.4, 0.2, plot_flag=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But after the simulation, we can still read the metrics." + ] + }, + { + "cell_type": "code", + "execution_count": 325, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 325, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bikeshare.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's wrap all that in a function." + ] + }, + { + "cell_type": "code", + "execution_count": 326, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation():\n", + " system = System(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0)\n", + " run_steps(system, 60, 0.4, 0.2, plot_flag=False)\n", + " return system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And test it." + ] + }, + { + "cell_type": "code", + "execution_count": 327, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system = run_simulation()" + ] + }, + { + "cell_type": "code", + "execution_count": 328, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 0\n" + ] + } + ], + "source": [ + "print(system.olin_empty, system.wellesley_empty)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we generalize `run_simulation` to take `p1` and `p2`, we can use it to run simulations with a range of values for the parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 329, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(p1=0.4, p2=0.2):\n", + " bikeshare = System(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0)\n", + " run_steps(bikeshare, 60, p1, p2, plot_flag=False)\n", + " return bikeshare" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When `p1` is small, we probably don't run out of bikes at Olin." + ] + }, + { + "cell_type": "code", + "execution_count": 330, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 330, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = run_simulation(p1=0.2)\n", + "system.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When `p1` is large, we probably do." + ] + }, + { + "cell_type": "code", + "execution_count": 331, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "12" + ] + }, + "execution_count": 331, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = run_simulation(p1=0.6)\n", + "system.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "**Exercise:** Write a version of `run_simulation` that takes all five model parameters as function parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 332, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(p1=0.4, p2=0.2,olin=10,wellesley=2,num_steps=60):\n", + " bikeshare = System(olin=olin, wellesley=wellesley, \n", + " olin_empty=0, wellesley_empty=0)\n", + " run_steps(bikeshare,num_steps, p1, p2, plot_flag=False)\n", + " return bikeshare" + ] + }, + { + "cell_type": "code", + "execution_count": 333, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6" + ] + }, + "execution_count": 333, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system=run_simulation(p1=.5,p2=.3,olin=4,wellesley=30,num_steps=20)\n", + "system.olin" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## More for loops" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`linspace` creates a NumPy array of equally spaced numbers." + ] + }, + { + "cell_type": "code", + "execution_count": 334, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0. , 0.25, 0.5 , 0.75, 1. ])" + ] + }, + "execution_count": 334, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p1_array = linspace(start=0, stop=1, num=5)\n", + "p1_array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use an array in a `for` loop, like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 335, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0\n", + "0.25\n", + "0.5\n", + "0.75\n", + "1.0\n" + ] + } + ], + "source": [ + "for p1 in p1_array:\n", + " print(p1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This will come in handy in the next section." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** The function `linspace` is part of NumPy. [You can read the documentation here](https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html).\n", + "\n", + "Use `linspace` to make an array of 10 equally spaced numbers from 1 to 10 (including both)." + ] + }, + { + "cell_type": "code", + "execution_count": 336, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0. , 1.11111111, 2.22222222, 3.33333333,\n", + " 4.44444444, 5.55555556, 6.66666667, 7.77777778,\n", + " 8.88888889, 10. ])" + ] + }, + "execution_count": 336, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p3_array = linspace(0,10,10)\n", + "p3_array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** The `modsim` library provides a related function called `linrange`. You can view the documentation by running the following cell:" + ] + }, + { + "cell_type": "code", + "execution_count": 337, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function linrange in module modsim:\n", + "\n", + "linrange(start=0, stop=None, step=1, **kwargs)\n", + " Returns an array of evenly-spaced values in the interval [start, stop].\n", + " \n", + " This function works best if the space between start and stop\n", + " is divisible by step; otherwise the results might be surprising.\n", + " \n", + " By default, the last value in the array is `stop` (at least approximately).\n", + " If you provide the keyword argument `endpoint=False`, the last value\n", + " in the array is `stop-step`. \n", + " \n", + " start: first value\n", + " stop: last value\n", + " step: space between values\n", + " \n", + " Also accepts the same keyword arguments as np.linspace. See\n", + " https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html\n", + " \n", + " returns: array or Quantity\n", + "\n" + ] + } + ], + "source": [ + "help(linrange)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use `linrange` to make an array of numbers from 1 to 10 with a step size of 2." + ] + }, + { + "cell_type": "code", + "execution_count": 338, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1. , 3.25, 5.5 , 7.75, 10. ])" + ] + }, + "execution_count": 338, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "linrange(1,10,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "## Sweeping parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following example runs simulations with a range of values for `p1`; after each simulation, it prints the number of unhappy customers at the Olin station:" + ] + }, + { + "cell_type": "code", + "execution_count": 339, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])" + ] + }, + "execution_count": 339, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p1_array = linspace(0, 1, 11)\n", + "p1_array" + ] + }, + { + "cell_type": "code", + "execution_count": 340, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0\n", + "0.1 0\n", + "0.2 0\n", + "0.3 0\n", + "0.4 0\n", + "0.5 13\n", + "0.6 21\n", + "0.7 17\n", + "0.8 22\n", + "0.9 23\n", + "1.0 41\n" + ] + } + ], + "source": [ + "for p1 in p1_array:\n", + " system = run_simulation(p1=p1)\n", + " print(p1, system.olin_empty)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can do the same thing, but plotting the results instead of printing them.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 341, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "newfig()\n", + "for p1 in p1_array:\n", + " system = run_simulation(p1=p1)\n", + " plot(p1, system.olin_empty, 'rs', label='olin')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As always, we should decorate the figure. This version of `decorate` takes `xlabel` as a parameter, for reasons you will see soon." + ] + }, + { + "cell_type": "code", + "execution_count": 342, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def decorate(xlabel):\n", + " legend(loc='best')\n", + " label_axes(title='Olin-Wellesley Bikeshare',\n", + " xlabel=xlabel, \n", + " ylabel='Number of unhappy customers')" + ] + }, + { + "cell_type": "code", + "execution_count": 343, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "decorate(xlabel='Arrival rate at Olin (p1 in customers/min)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Wrap this code in a function named `parameter_sweep` that takes an array called `p1_array` as a parameter. It should create a new figure, run a simulation for each value of `p1` in `p1_array`, and plot the results.\n", + "\n", + "Once you have the function working, modify it so it also plots the number of unhappy customers at Wellesley. Looking at the plot, can you estimate a range of values for `p1` that minimizes the total number of unhappy customers?" + ] + }, + { + "cell_type": "code", + "execution_count": 344, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def parameter_sweep(p1_array):\n", + " newfig()\n", + " for p1 in p1_array:\n", + " system = run_simulation(p1=p1)\n", + " plot(p1, system.olin_empty, 'rs', label='olin')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "**Exercise:** Write a function called `parameter_sweep2` that runs simulations with `p1=0.2` and a range of values for `p2`.\n", + "\n", + "Note: If you run `parameter_sweep2` a few times without calling `newfig`, you can plot multiple runs on the same axes, which will give you a sense of how much random variation there is from one run to the next. " + ] + }, + { + "cell_type": "code", + "execution_count": 345, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "p2_array = linspace(0, 1, 11)\n", + "\n", + "def parameter_sweep2(p2_array):\n", + " \n", + " for p in p2_array:\n", + " system = run_simulation(p1=0.2, p2=p)\n", + " plot(p, system.olin_empty, 'rs', label='olin')\n", + "parameter_sweep2(p2_array)" + ] + }, + { + "cell_type": "code", + "execution_count": 346, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "newfig()" + ] + }, + { + "cell_type": "code", + "execution_count": 347, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Hold `p1=0.4` and `p2=0.2`, and sweep a range of values for `num_steps`.\n", + "\n", + "Hint: You will need a version of `run_simulation` that takes `num_steps` as a parameter.\n", + "\n", + "Hint: Because `num_steps` is supposed to be an integer use `range` rather than `linrange`." + ] + }, + { + "cell_type": "code", + "execution_count": 348, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(p1=0.4, p2=0.2,olin=10,wellesley=2,num_steps=60):\n", + " bikeshare = System(olin=olin, wellesley=wellesley, \n", + " olin_empty=0, wellesley_empty=0)\n", + " run_steps(bikeshare,num_steps, p1, p2, plot_flag=False)\n", + " return bikeshare\n", + "\n", + "sweep_array = range(0,5)\n", + "\n", + "def sweep(steps_array):\n", + " for i in steps_array:\n", + " system = run_simulation(num_steps=i)\n", + "\n", + " plot(i, system.olin_empty, 'rs', label='olin')\n", + "sweep(sweep_array)" + ] + }, + { + "cell_type": "code", + "execution_count": 349, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 350, + "metadata": { + "collapsed": true, + "scrolled": false + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "**Exercise:** The code below runs a simulation with the same parameters 10 times and computes the average number of unhappy customers.\n", + "\n", + "1. Wrap this code in a function called `run_simulations` that takes `num_runs` as a parameter.\n", + "\n", + "2. Test `run_simulations`, and increase `num_runs` until the results are reasonably consistent from one run to the next.\n", + "\n", + "3. Generalize `run_simulations` so it also takes the initial value of `olin` as a parameter.\n", + "\n", + "4. Run the generalized version with `olin=12`. How much do the two extra bikes decrease the average number of unhappy customers.\n", + "\n", + "5. Make a plot that shows the average number of unhappy customers as a function of the initial number of bikes at Olin." + ] + }, + { + "cell_type": "code", + "execution_count": 361, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.0" + ] + }, + "execution_count": 361, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "num_runs = 10\n", + "total = 0\n", + "for i in range(num_runs):\n", + " system = run_simulation(p1=0.4, p2=0.2, olin=10, wellesley=2, num_steps=60)\n", + " total += system.olin_empty + system.wellesley_empty\n", + "total / num_runs" + ] + }, + { + "cell_type": "code", + "execution_count": 366, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "\n", + "def run_simulations (num_runs,olin):\n", + " total=0\n", + " for i in range(num_runs):\n", + " system=run_simulation(p1=0.4, p2=0.2, olin=olin, wellesley=2, num_steps=60)\n", + " total += system.olin_empty + system.wellesley_empty\n", + " return total / num_runs" + ] + }, + { + "cell_type": "code", + "execution_count": 369, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.1000000000000001" + ] + }, + "execution_count": 369, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulations(10,10)" + ] + }, + { + "cell_type": "code", + "execution_count": 371, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.3999999999999999" + ] + }, + "execution_count": 371, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulations(10,12)" + ] + }, + { + "cell_type": "code", + "execution_count": 375, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 olin 0\n", + "wellesley 2\n", + "olin_empty 9\n", + "wellesley_empty 0\n", + "dtype: int64\n", + "10 olin 0\n", + "wellesley 12\n", + "olin_empty 6\n", + "wellesley_empty 0\n", + "dtype: int64\n" + ] + } + ], + "source": [ + "for olin in range (0,12,10):\n", + " avg=run_simulation(olin=olin)\n", + " print (olin,avg)" + ] + }, + { + "cell_type": "code", + "execution_count": 380, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "newfig()\n", + "for p1 in p1_array:\n", + " system = run_simulation(p1=p1)\n", + " plot(p1, system.olin_empty, 'rs', label='olin')\n", + "xlabel('Initial bikes at Olin')\n", + "ylabel('Avg # of unhappy customers')\n", + "ylim([0, 12]);" + ] + }, + { + "cell_type": "code", + "execution_count": 354, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/chap03mine.ipynb b/code/chap03mine.ipynb new file mode 100644 index 00000000..c7bfe360 --- /dev/null +++ b/code/chap03mine.ipynb @@ -0,0 +1,4597 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 3: Explain\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 400, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# To switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pandas is a module that provides tools for reading and processing data. The `read_html` reads a web page from a file or the Internet and creates one DataFrame for each table on the page." + ] + }, + { + "cell_type": "code", + "execution_count": 401, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from pandas import read_html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The data directory contains a downloaded copy of https://en.wikipedia.org/wiki/World_population_estimates" + ] + }, + { + "cell_type": "code", + "execution_count": 402, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`tables` is a sequence of DataFrame objects. We can select the DataFrame we want using the bracket operator. The tables are numbered from 0, so `table2` is actually the third table on the page.\n", + "\n", + "`head` selects the header and the first five rows." + ] + }, + { + "cell_type": "code", + "execution_count": 403, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
United States Census Bureau (2015)[18]Population Reference Bureau (1973–2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]Maddison (2008)[8]HYDE (2007)[15]Tanton (1994)[9]Biraben (1980)[10]McEvedy & Jones (1978)[11]Thomlinson (1975)[12]Durand (1974)[13]Clark (1967)[14]
Year
195025576286542.516000e+0925251490002.544000e+092.527960e+092.400000e+092.527000e+092.500000e+092.400000e+09NaN2.486000e+09
19512594939877NaN25728509172.571663e+09NaNNaNNaNNaNNaNNaNNaN
19522636772306NaN26192920682.617949e+09NaNNaNNaNNaNNaNNaNNaN
19532682053389NaN26658653922.665959e+09NaNNaNNaNNaNNaNNaNNaN
19542730228104NaN27131720272.716927e+09NaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2015)[18] \\\n", + "Year \n", + "1950 2557628654 \n", + "1951 2594939877 \n", + "1952 2636772306 \n", + "1953 2682053389 \n", + "1954 2730228104 \n", + "\n", + " Population Reference Bureau (1973–2015)[6] \\\n", + "Year \n", + "1950 2.516000e+09 \n", + "1951 NaN \n", + "1952 NaN \n", + "1953 NaN \n", + "1954 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \\\n", + "Year \n", + "1950 2525149000 \n", + "1951 2572850917 \n", + "1952 2619292068 \n", + "1953 2665865392 \n", + "1954 2713172027 \n", + "\n", + " Maddison (2008)[8] HYDE (2007)[15] Tanton (1994)[9] \\\n", + "Year \n", + "1950 2.544000e+09 2.527960e+09 2.400000e+09 \n", + "1951 2.571663e+09 NaN NaN \n", + "1952 2.617949e+09 NaN NaN \n", + "1953 2.665959e+09 NaN NaN \n", + "1954 2.716927e+09 NaN NaN \n", + "\n", + " Biraben (1980)[10] McEvedy & Jones (1978)[11] Thomlinson (1975)[12] \\\n", + "Year \n", + "1950 2.527000e+09 2.500000e+09 2.400000e+09 \n", + "1951 NaN NaN NaN \n", + "1952 NaN NaN NaN \n", + "1953 NaN NaN NaN \n", + "1954 NaN NaN NaN \n", + "\n", + " Durand (1974)[13] Clark (1967)[14] \n", + "Year \n", + "1950 NaN 2.486000e+09 \n", + "1951 NaN NaN \n", + "1952 NaN NaN \n", + "1953 NaN NaN \n", + "1954 NaN NaN " + ] + }, + "execution_count": 403, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2 = tables[2]\n", + "table2.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`tail` selects the last five rows." + ] + }, + { + "cell_type": "code", + "execution_count": 404, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
United States Census Bureau (2015)[18]Population Reference Bureau (1973–2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]Maddison (2008)[8]HYDE (2007)[15]Tanton (1994)[9]Biraben (1980)[10]McEvedy & Jones (1978)[11]Thomlinson (1975)[12]Durand (1974)[13]Clark (1967)[14]
Year
201169440555836.986951e+096997998760NaNNaNNaNNaNNaNNaNNaNNaN
201270223492837.057075e+097080072417NaNNaNNaNNaNNaNNaNNaNNaN
201371010278957.136796e+097162119434NaNNaNNaNNaNNaNNaNNaNNaN
201471787228937.238184e+097243784000NaNNaNNaNNaNNaNNaNNaNNaN
201572564900117.336435e+097349472000NaNNaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2015)[18] \\\n", + "Year \n", + "2011 6944055583 \n", + "2012 7022349283 \n", + "2013 7101027895 \n", + "2014 7178722893 \n", + "2015 7256490011 \n", + "\n", + " Population Reference Bureau (1973–2015)[6] \\\n", + "Year \n", + "2011 6.986951e+09 \n", + "2012 7.057075e+09 \n", + "2013 7.136796e+09 \n", + "2014 7.238184e+09 \n", + "2015 7.336435e+09 \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \\\n", + "Year \n", + "2011 6997998760 \n", + "2012 7080072417 \n", + "2013 7162119434 \n", + "2014 7243784000 \n", + "2015 7349472000 \n", + "\n", + " Maddison (2008)[8] HYDE (2007)[15] Tanton (1994)[9] \\\n", + "Year \n", + "2011 NaN NaN NaN \n", + "2012 NaN NaN NaN \n", + "2013 NaN NaN NaN \n", + "2014 NaN NaN NaN \n", + "2015 NaN NaN NaN \n", + "\n", + " Biraben (1980)[10] McEvedy & Jones (1978)[11] Thomlinson (1975)[12] \\\n", + "Year \n", + "2011 NaN NaN NaN \n", + "2012 NaN NaN NaN \n", + "2013 NaN NaN NaN \n", + "2014 NaN NaN NaN \n", + "2015 NaN NaN NaN \n", + "\n", + " Durand (1974)[13] Clark (1967)[14] \n", + "Year \n", + "2011 NaN NaN \n", + "2012 NaN NaN \n", + "2013 NaN NaN \n", + "2014 NaN NaN \n", + "2015 NaN NaN " + ] + }, + "execution_count": 404, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Long column names are awkard to work with, but we can replace them with abbreviated names." + ] + }, + { + "cell_type": "code", + "execution_count": 405, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the DataFrame looks like now. \n", + "\n", + "Some of the values use scientific notation; for example, `2.544000e+09` is shorthand for $2.544 \\cdot 10^9$ or 2.544 billion.\n", + "\n", + "`NaN` is a special value that indicates missing data." + ] + }, + { + "cell_type": "code", + "execution_count": 406, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
censusprbunmaddisonhydetantonbirabenmjthomlinsondurandclark
Year
195025576286542.516000e+0925251490002.544000e+092.527960e+092.400000e+092.527000e+092.500000e+092.400000e+09NaN2.486000e+09
19512594939877NaN25728509172.571663e+09NaNNaNNaNNaNNaNNaNNaN
19522636772306NaN26192920682.617949e+09NaNNaNNaNNaNNaNNaNNaN
19532682053389NaN26658653922.665959e+09NaNNaNNaNNaNNaNNaNNaN
19542730228104NaN27131720272.716927e+09NaNNaNNaNNaNNaNNaNNaN
19552782098943NaN27616509812.769074e+09NaNNaNNaNNaNNaNNaNNaN
19562835299673NaN28115720312.822502e+09NaNNaNNaNNaNNaNNaNNaN
19572891349717NaN28630427952.879934e+09NaNNaNNaNNaNNaNNaNNaN
19582948137248NaN29160301672.939254e+09NaNNaNNaNNaNNaNNaNNaN
19593000716593NaN29703958142.995909e+09NaNNaNNaNNaNNaNNaNNaN
19603043001508NaN30260029423.041507e+093.042000e+09NaNNaNNaNNaNNaNNaN
19613083966929NaN30828302663.082161e+09NaNNaNNaNNaNNaNNaNNaN
19623140093217NaN31410715313.135787e+09NaNNaNNaNNaNNaNNaN3.036000e+09
19633209827882NaN32011782773.201354e+09NaNNaNNaNNaNNaNNaNNaN
19643281201306NaN32637388323.266477e+09NaNNaNNaNNaNNaNNaNNaN
19653350425793NaN33291224793.333138e+09NaNNaNNaNNaNNaNNaNNaN
19663420677923NaN33974752473.402224e+09NaNNaNNaNNaNNaNNaN3.288000e+09
19673490333715NaN34685217243.471464e+09NaNNaNNaNNaNNaNNaNNaN
19683562313822NaN35416748913.543086e+09NaNNaNNaNNaNNaNNaNNaN
19693637159050NaN36161087493.615743e+09NaNNaNNaNNaNNaNNaNNaN
19703712697742NaN36911726163.691157e+093.710000e+09NaN3.637000e+09NaN3.600000e+093,600,000,000– 3,700,000,0003.632000e+09
19713790326948NaN37667543453.769818e+09NaNNaNNaNNaNNaNNaNNaN
19723866568653NaN38428736113.846499e+09NaNNaNNaNNaNNaNNaNNaN
19733942096442NaN39191823323.922793e+093.923000e+09NaNNaNNaNNaNNaN3.860000e+09
19744016608813NaN39953049223.997677e+09NaNNaNNaNNaNNaNNaNNaN
19754089083233NaN40710204344.070671e+09NaNNaNNaN3.900000e+094.000000e+09NaNNaN
19764160185010NaN41461358504.141445e+09NaNNaNNaNNaNNaNNaNNaN
19774232084578NaN42208167374.213539e+09NaNNaNNaNNaNNaNNaNNaN
19784304105753NaN42956648254.286317e+09NaNNaNNaNNaNNaNNaNNaN
19794379013942NaN43715278714.363144e+09NaNNaNNaNNaNNaNNaNNaN
....................................
19864940571232NaN49533767104.920968e+09NaNNaNNaNNaNNaNNaNNaN
19875027200492NaN50453158715.006672e+09NaNNaNNaNNaNNaNNaNNaN
19885114557167NaN51382146885.093306e+09NaNNaNNaNNaNNaNNaNNaN
19895201440110NaN52300000005.180540e+09NaNNaNNaNNaNNaNNaNNaN
19905288955934NaN53208166675.269029e+095.308000e+09NaNNaNNaNNaNNaNNaN
19915371585922NaN54089087245.351922e+09NaNNaNNaNNaNNaNNaNNaN
19925456136278NaN54948995705.435722e+09NaNNaNNaNNaNNaNNaNNaN
19935538268316NaN55788651095.518127e+09NaNNaNNaNNaNNaNNaNNaN
19945618682132NaN56610863465.599396e+09NaNNaNNaNNaNNaNNaNNaN
199556992029855.760000e+0957418224125.681575e+09NaNNaNNaNNaNNaNNaNNaN
19965779440593NaN58210167505.762212e+09NaNNaNNaNNaNNaNNaNNaN
199758579725435.840000e+0958986883375.842122e+09NaNNaNNaNNaNNaNNaNNaN
19985935213248NaN59753036575.921366e+09NaNNaNNaNNaNNaNNaNNaN
19996012074922NaN60514780105.999622e+09NaNNaNNaNNaNNaNNaNNaN
200060885713836.067000e+0961277004286.076558e+096.145000e+09NaNNaN5.750000e+09NaNNaNNaN
200161652192476.137000e+0962041470266.154791e+09NaNNaNNaNNaNNaNNaNNaN
200262420163486.215000e+0962808538176.231704e+09NaNNaNNaNNaNNaNNaNNaN
200363185909566.314000e+0963579917496.308364e+09NaNNaNNaNNaNNaNNaNNaN
200463956995096.396000e+0964357055956.374056e+09NaNNaNNaNNaNNaNNaNNaN
200564730447326.477000e+0965140946056.462987e+09NaNNaNNaNNaNNaNNaNNaN
200665512635346.555000e+0965932279776.540214e+09NaNNaNNaNNaNNaNNaNNaN
200766299137596.625000e+0966731059376.616689e+09NaNNaNNaNNaNNaNNaNNaN
200867090497806.705000e+0967536492286.694832e+09NaNNaNNaNNaNNaNNaNNaN
200967882143946.809972e+0968347219336.764086e+09NaNNaNNaNNaNNaNNaNNaN
201068663323586.892319e+096916183482NaNNaNNaNNaNNaNNaNNaNNaN
201169440555836.986951e+096997998760NaNNaNNaNNaNNaNNaNNaNNaN
201270223492837.057075e+097080072417NaNNaNNaNNaNNaNNaNNaNNaN
201371010278957.136796e+097162119434NaNNaNNaNNaNNaNNaNNaNNaN
201471787228937.238184e+097243784000NaNNaNNaNNaNNaNNaNNaNNaN
201572564900117.336435e+097349472000NaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

66 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " census prb un maddison hyde \\\n", + "Year \n", + "1950 2557628654 2.516000e+09 2525149000 2.544000e+09 2.527960e+09 \n", + "1951 2594939877 NaN 2572850917 2.571663e+09 NaN \n", + "1952 2636772306 NaN 2619292068 2.617949e+09 NaN \n", + "1953 2682053389 NaN 2665865392 2.665959e+09 NaN \n", + "1954 2730228104 NaN 2713172027 2.716927e+09 NaN \n", + "1955 2782098943 NaN 2761650981 2.769074e+09 NaN \n", + "1956 2835299673 NaN 2811572031 2.822502e+09 NaN \n", + "1957 2891349717 NaN 2863042795 2.879934e+09 NaN \n", + "1958 2948137248 NaN 2916030167 2.939254e+09 NaN \n", + "1959 3000716593 NaN 2970395814 2.995909e+09 NaN \n", + "1960 3043001508 NaN 3026002942 3.041507e+09 3.042000e+09 \n", + "1961 3083966929 NaN 3082830266 3.082161e+09 NaN \n", + "1962 3140093217 NaN 3141071531 3.135787e+09 NaN \n", + "1963 3209827882 NaN 3201178277 3.201354e+09 NaN \n", + "1964 3281201306 NaN 3263738832 3.266477e+09 NaN \n", + "1965 3350425793 NaN 3329122479 3.333138e+09 NaN \n", + "1966 3420677923 NaN 3397475247 3.402224e+09 NaN \n", + "1967 3490333715 NaN 3468521724 3.471464e+09 NaN \n", + "1968 3562313822 NaN 3541674891 3.543086e+09 NaN \n", + "1969 3637159050 NaN 3616108749 3.615743e+09 NaN \n", + "1970 3712697742 NaN 3691172616 3.691157e+09 3.710000e+09 \n", + "1971 3790326948 NaN 3766754345 3.769818e+09 NaN \n", + "1972 3866568653 NaN 3842873611 3.846499e+09 NaN \n", + "1973 3942096442 NaN 3919182332 3.922793e+09 3.923000e+09 \n", + "1974 4016608813 NaN 3995304922 3.997677e+09 NaN \n", + "1975 4089083233 NaN 4071020434 4.070671e+09 NaN \n", + "1976 4160185010 NaN 4146135850 4.141445e+09 NaN \n", + "1977 4232084578 NaN 4220816737 4.213539e+09 NaN \n", + "1978 4304105753 NaN 4295664825 4.286317e+09 NaN \n", + "1979 4379013942 NaN 4371527871 4.363144e+09 NaN \n", + "... ... ... ... ... ... \n", + "1986 4940571232 NaN 4953376710 4.920968e+09 NaN \n", + "1987 5027200492 NaN 5045315871 5.006672e+09 NaN \n", + "1988 5114557167 NaN 5138214688 5.093306e+09 NaN \n", + "1989 5201440110 NaN 5230000000 5.180540e+09 NaN \n", + "1990 5288955934 NaN 5320816667 5.269029e+09 5.308000e+09 \n", + "1991 5371585922 NaN 5408908724 5.351922e+09 NaN \n", + "1992 5456136278 NaN 5494899570 5.435722e+09 NaN \n", + "1993 5538268316 NaN 5578865109 5.518127e+09 NaN \n", + "1994 5618682132 NaN 5661086346 5.599396e+09 NaN \n", + "1995 5699202985 5.760000e+09 5741822412 5.681575e+09 NaN \n", + "1996 5779440593 NaN 5821016750 5.762212e+09 NaN \n", + "1997 5857972543 5.840000e+09 5898688337 5.842122e+09 NaN \n", + "1998 5935213248 NaN 5975303657 5.921366e+09 NaN \n", + "1999 6012074922 NaN 6051478010 5.999622e+09 NaN \n", + "2000 6088571383 6.067000e+09 6127700428 6.076558e+09 6.145000e+09 \n", + "2001 6165219247 6.137000e+09 6204147026 6.154791e+09 NaN \n", + "2002 6242016348 6.215000e+09 6280853817 6.231704e+09 NaN \n", + "2003 6318590956 6.314000e+09 6357991749 6.308364e+09 NaN \n", + "2004 6395699509 6.396000e+09 6435705595 6.374056e+09 NaN \n", + "2005 6473044732 6.477000e+09 6514094605 6.462987e+09 NaN \n", + "2006 6551263534 6.555000e+09 6593227977 6.540214e+09 NaN \n", + "2007 6629913759 6.625000e+09 6673105937 6.616689e+09 NaN \n", + "2008 6709049780 6.705000e+09 6753649228 6.694832e+09 NaN \n", + "2009 6788214394 6.809972e+09 6834721933 6.764086e+09 NaN \n", + "2010 6866332358 6.892319e+09 6916183482 NaN NaN \n", + "2011 6944055583 6.986951e+09 6997998760 NaN NaN \n", + "2012 7022349283 7.057075e+09 7080072417 NaN NaN \n", + "2013 7101027895 7.136796e+09 7162119434 NaN NaN \n", + "2014 7178722893 7.238184e+09 7243784000 NaN NaN \n", + "2015 7256490011 7.336435e+09 7349472000 NaN NaN \n", + "\n", + " tanton biraben mj thomlinson \\\n", + "Year \n", + "1950 2.400000e+09 2.527000e+09 2.500000e+09 2.400000e+09 \n", + "1951 NaN NaN NaN NaN \n", + "1952 NaN NaN NaN NaN \n", + "1953 NaN NaN NaN NaN \n", + "1954 NaN NaN NaN NaN \n", + "1955 NaN NaN NaN NaN \n", + "1956 NaN NaN NaN NaN \n", + "1957 NaN NaN NaN NaN \n", + "1958 NaN NaN NaN NaN \n", + "1959 NaN NaN NaN NaN \n", + "1960 NaN NaN NaN NaN \n", + "1961 NaN NaN NaN NaN \n", + "1962 NaN NaN NaN NaN \n", + "1963 NaN NaN NaN NaN \n", + "1964 NaN NaN NaN NaN \n", + "1965 NaN NaN NaN NaN \n", + "1966 NaN NaN NaN NaN \n", + "1967 NaN NaN NaN NaN \n", + "1968 NaN NaN NaN NaN \n", + "1969 NaN NaN NaN NaN \n", + "1970 NaN 3.637000e+09 NaN 3.600000e+09 \n", + "1971 NaN NaN NaN NaN \n", + "1972 NaN NaN NaN NaN \n", + "1973 NaN NaN NaN NaN \n", + "1974 NaN NaN NaN NaN \n", + "1975 NaN NaN 3.900000e+09 4.000000e+09 \n", + "1976 NaN NaN NaN NaN \n", + "1977 NaN NaN NaN NaN \n", + "1978 NaN NaN NaN NaN \n", + "1979 NaN NaN NaN NaN \n", + "... ... ... ... ... \n", + "1986 NaN NaN NaN NaN \n", + "1987 NaN NaN NaN NaN \n", + "1988 NaN NaN NaN NaN \n", + "1989 NaN NaN NaN NaN \n", + "1990 NaN NaN NaN NaN \n", + "1991 NaN NaN NaN NaN \n", + "1992 NaN NaN NaN NaN \n", + "1993 NaN NaN NaN NaN \n", + "1994 NaN NaN NaN NaN \n", + "1995 NaN NaN NaN NaN \n", + "1996 NaN NaN NaN NaN \n", + "1997 NaN NaN NaN NaN \n", + "1998 NaN NaN NaN NaN \n", + "1999 NaN NaN NaN NaN \n", + "2000 NaN NaN 5.750000e+09 NaN \n", + "2001 NaN NaN NaN NaN \n", + "2002 NaN NaN NaN NaN \n", + "2003 NaN NaN NaN NaN \n", + "2004 NaN NaN NaN NaN \n", + "2005 NaN NaN NaN NaN \n", + "2006 NaN NaN NaN NaN \n", + "2007 NaN NaN NaN NaN \n", + "2008 NaN NaN NaN NaN \n", + "2009 NaN NaN NaN NaN \n", + "2010 NaN NaN NaN NaN \n", + "2011 NaN NaN NaN NaN \n", + "2012 NaN NaN NaN NaN \n", + "2013 NaN NaN NaN NaN \n", + "2014 NaN NaN NaN NaN \n", + "2015 NaN NaN NaN NaN \n", + "\n", + " durand clark \n", + "Year \n", + "1950 NaN 2.486000e+09 \n", + "1951 NaN NaN \n", + "1952 NaN NaN \n", + "1953 NaN NaN \n", + "1954 NaN NaN \n", + "1955 NaN NaN \n", + "1956 NaN NaN \n", + "1957 NaN NaN \n", + "1958 NaN NaN \n", + "1959 NaN NaN \n", + "1960 NaN NaN \n", + "1961 NaN NaN \n", + "1962 NaN 3.036000e+09 \n", + "1963 NaN NaN \n", + "1964 NaN NaN \n", + "1965 NaN NaN \n", + "1966 NaN 3.288000e+09 \n", + "1967 NaN NaN \n", + "1968 NaN NaN \n", + "1969 NaN NaN \n", + "1970 3,600,000,000– 3,700,000,000 3.632000e+09 \n", + "1971 NaN NaN \n", + "1972 NaN NaN \n", + "1973 NaN 3.860000e+09 \n", + "1974 NaN NaN \n", + "1975 NaN NaN \n", + "1976 NaN NaN \n", + "1977 NaN NaN \n", + "1978 NaN NaN \n", + "1979 NaN NaN \n", + "... ... ... \n", + "1986 NaN NaN \n", + "1987 NaN NaN \n", + "1988 NaN NaN \n", + "1989 NaN NaN \n", + "1990 NaN NaN \n", + "1991 NaN NaN \n", + "1992 NaN NaN \n", + "1993 NaN NaN \n", + "1994 NaN NaN \n", + "1995 NaN NaN \n", + "1996 NaN NaN \n", + "1997 NaN NaN \n", + "1998 NaN NaN \n", + "1999 NaN NaN \n", + "2000 NaN NaN \n", + "2001 NaN NaN \n", + "2002 NaN NaN \n", + "2003 NaN NaN \n", + "2004 NaN NaN \n", + "2005 NaN NaN \n", + "2006 NaN NaN \n", + "2007 NaN NaN \n", + "2008 NaN NaN \n", + "2009 NaN NaN \n", + "2010 NaN NaN \n", + "2011 NaN NaN \n", + "2012 NaN NaN \n", + "2013 NaN NaN \n", + "2014 NaN NaN \n", + "2015 NaN NaN \n", + "\n", + "[66 rows x 11 columns]" + ] + }, + "execution_count": 406, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use dot notatio to select a column from a DataFrame. The result is a Series." + ] + }, + { + "cell_type": "code", + "execution_count": 407, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2557628654\n", + "1951 2594939877\n", + "1952 2636772306\n", + "1953 2682053389\n", + "1954 2730228104\n", + "1955 2782098943\n", + "1956 2835299673\n", + "1957 2891349717\n", + "1958 2948137248\n", + "1959 3000716593\n", + "1960 3043001508\n", + "1961 3083966929\n", + "1962 3140093217\n", + "1963 3209827882\n", + "1964 3281201306\n", + "1965 3350425793\n", + "1966 3420677923\n", + "1967 3490333715\n", + "1968 3562313822\n", + "1969 3637159050\n", + "1970 3712697742\n", + "1971 3790326948\n", + "1972 3866568653\n", + "1973 3942096442\n", + "1974 4016608813\n", + "1975 4089083233\n", + "1976 4160185010\n", + "1977 4232084578\n", + "1978 4304105753\n", + "1979 4379013942\n", + " ... \n", + "1986 4940571232\n", + "1987 5027200492\n", + "1988 5114557167\n", + "1989 5201440110\n", + "1990 5288955934\n", + "1991 5371585922\n", + "1992 5456136278\n", + "1993 5538268316\n", + "1994 5618682132\n", + "1995 5699202985\n", + "1996 5779440593\n", + "1997 5857972543\n", + "1998 5935213248\n", + "1999 6012074922\n", + "2000 6088571383\n", + "2001 6165219247\n", + "2002 6242016348\n", + "2003 6318590956\n", + "2004 6395699509\n", + "2005 6473044732\n", + "2006 6551263534\n", + "2007 6629913759\n", + "2008 6709049780\n", + "2009 6788214394\n", + "2010 6866332358\n", + "2011 6944055583\n", + "2012 7022349283\n", + "2013 7101027895\n", + "2014 7178722893\n", + "2015 7256490011\n", + "Name: census, Length: 66, dtype: int64" + ] + }, + "execution_count": 407, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census = table2.census\n", + "census" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A Series object has two parts, `values` and `index`.\n", + "\n", + "The `values` part is an array." + ] + }, + { + "cell_type": "code", + "execution_count": 408, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([2557628654, 2594939877, 2636772306, 2682053389, 2730228104,\n", + " 2782098943, 2835299673, 2891349717, 2948137248, 3000716593,\n", + " 3043001508, 3083966929, 3140093217, 3209827882, 3281201306,\n", + " 3350425793, 3420677923, 3490333715, 3562313822, 3637159050,\n", + " 3712697742, 3790326948, 3866568653, 3942096442, 4016608813,\n", + " 4089083233, 4160185010, 4232084578, 4304105753, 4379013942,\n", + " 4451362735, 4534410125, 4614566561, 4695736743, 4774569391,\n", + " 4856462699, 4940571232, 5027200492, 5114557167, 5201440110,\n", + " 5288955934, 5371585922, 5456136278, 5538268316, 5618682132,\n", + " 5699202985, 5779440593, 5857972543, 5935213248, 6012074922,\n", + " 6088571383, 6165219247, 6242016348, 6318590956, 6395699509,\n", + " 6473044732, 6551263534, 6629913759, 6709049780, 6788214394,\n", + " 6866332358, 6944055583, 7022349283, 7101027895, 7178722893,\n", + " 7256490011], dtype=int64)" + ] + }, + "execution_count": 408, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census.values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `index` part is yet another kind of object, an `Int64Index`." + ] + }, + { + "cell_type": "code", + "execution_count": 409, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Int64Index([1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960,\n", + " 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971,\n", + " 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,\n", + " 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,\n", + " 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,\n", + " 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015],\n", + " dtype='int64', name='Year')" + ] + }, + "execution_count": 409, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census.index" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you ever wonder what kind of object a variable refers to, you can use the `type` function.\n", + "\n", + "The result indicates what type the object is, and the module where that type is defined.\n", + "\n", + "DataFrame, Series, and Int64Index are defined by Pandas.\n", + "\n", + "array is defined by NumPy." + ] + }, + { + "cell_type": "code", + "execution_count": 410, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.frame.DataFrame" + ] + }, + "execution_count": 410, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(table2)" + ] + }, + { + "cell_type": "code", + "execution_count": 411, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.series.Series" + ] + }, + "execution_count": 411, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(census)" + ] + }, + { + "cell_type": "code", + "execution_count": 412, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pandas.core.indexes.numeric.Int64Index" + ] + }, + "execution_count": 412, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(census.index)" + ] + }, + { + "cell_type": "code", + "execution_count": 413, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "execution_count": 413, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(census.values)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function plots the estimates generated by the US Censis and UN DESA, and labels the axes.\n", + "\n", + "`1e9` is scientific notation for $1 \\cdot 10^9$ or 1 billion." + ] + }, + { + "cell_type": "code", + "execution_count": 414, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_estimates(table):\n", + " \"\"\"Plot world population estimates.\n", + " \n", + " table: DataFrame with columns 'un' and 'census'\n", + " \"\"\"\n", + " un = table.un / 1e9\n", + " census = table.census / 1e9\n", + " \n", + " plot(census, ':', color='darkblue', label='US Census')\n", + " plot(un, '--', color='green', label='UN DESA')\n", + " \n", + " decorate(xlabel='Year',\n", + " ylabel='World population (billion)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can plot the estimates." + ] + }, + { + "cell_type": "code", + "execution_count": 415, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_estimates(table2)\n", + "savefig('chap03-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From here on, we will work in units of billions." + ] + }, + { + "cell_type": "code", + "execution_count": 416, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "un = table2.un / 1e9" + ] + }, + { + "cell_type": "code", + "execution_count": 417, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "census = table2.census / 1e9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This expression computes the elementwise differences between the series, then divides through by the UN value to produce relative errors, then finds the largest element.\n", + "\n", + "So the largest relative error between the estimates is about 1.3%." + ] + }, + { + "cell_type": "code", + "execution_count": 418, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.2862470293832287" + ] + }, + "execution_count": 418, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "max(abs(census - un) / un) * 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Break down that expression into smaller steps and display the intermediate results, to make sure you understand how it works.\n", + "\n", + "Where in the series is the largest relative error between the two estimates, near the beginning or the end?\n", + "\n", + "When I computed relative errors, I used `un` as the denominator. But that was an arbitraty choice. What happens if we use `census` instead? How much difference does it make." + ] + }, + { + "cell_type": "code", + "execution_count": 419, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 0.032480\n", + "1951 0.022089\n", + "1952 0.017480\n", + "1953 0.016188\n", + "1954 0.017056\n", + "1955 0.020448\n", + "1956 0.023728\n", + "1957 0.028307\n", + "1958 0.032107\n", + "1959 0.030321\n", + "1960 0.016999\n", + "1961 0.001137\n", + "1962 -0.000978\n", + "1963 0.008650\n", + "1964 0.017462\n", + "1965 0.021303\n", + "1966 0.023203\n", + "1967 0.021812\n", + "1968 0.020639\n", + "1969 0.021050\n", + "1970 0.021525\n", + "1971 0.023573\n", + "1972 0.023695\n", + "1973 0.022914\n", + "1974 0.021304\n", + "1975 0.018063\n", + "1976 0.014049\n", + "1977 0.011268\n", + "1978 0.008441\n", + "1979 0.007486\n", + " ... \n", + "1986 -0.012805\n", + "1987 -0.018115\n", + "1988 -0.023658\n", + "1989 -0.028560\n", + "1990 -0.031861\n", + "1991 -0.037323\n", + "1992 -0.038763\n", + "1993 -0.040597\n", + "1994 -0.042404\n", + "1995 -0.042619\n", + "1996 -0.041576\n", + "1997 -0.040716\n", + "1998 -0.040090\n", + "1999 -0.039403\n", + "2000 -0.039129\n", + "2001 -0.038928\n", + "2002 -0.038837\n", + "2003 -0.039401\n", + "2004 -0.040006\n", + "2005 -0.041050\n", + "2006 -0.041964\n", + "2007 -0.043192\n", + "2008 -0.044599\n", + "2009 -0.046508\n", + "2010 -0.049851\n", + "2011 -0.053943\n", + "2012 -0.057723\n", + "2013 -0.061092\n", + "2014 -0.065061\n", + "2015 -0.092982\n", + "Length: 66, dtype: float64" + ] + }, + "execution_count": 419, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census-un" + ] + }, + { + "cell_type": "code", + "execution_count": 420, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1.2813631502151765" + ] + }, + "execution_count": 420, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "max(abs(census - un) / census) * 100" + ] + }, + { + "cell_type": "code", + "execution_count": 421, + "metadata": { + "collapsed": true, + "scrolled": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 422, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Constant growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can select an element from a series using bracket notation and one of the elements from the index. Here's the first element:" + ] + }, + { + "cell_type": "code", + "execution_count": 423, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.5576286540000002" + ] + }, + "execution_count": 423, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census[1950]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the last element." + ] + }, + { + "cell_type": "code", + "execution_count": 424, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7.2564900110000004" + ] + }, + "execution_count": 424, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census[2015]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But we can get the first and last years from the index itself:" + ] + }, + { + "cell_type": "code", + "execution_count": 425, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1950, 2015)" + ] + }, + "execution_count": 425, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_year = census.index[0]\n", + "last_year = census.index[-1]\n", + "first_year, last_year" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And use them to look up the first and last elements.\n", + "\n", + "Then we can compute the average annual growth in billions of people per year." + ] + }, + { + "cell_type": "code", + "execution_count": 426, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.07229017472307693" + ] + }, + "execution_count": 426, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total_growth = census[last_year] - census[first_year]\n", + "elapsed_time = last_year - first_year\n", + "annual_growth = total_growth / elapsed_time\n", + "annual_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's create a `TimeSeries` to contain values generated by a linear growth model." + ] + }, + { + "cell_type": "code", + "execution_count": 427, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "results = TimeSeries()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initially the Series is empty, but we can initialize it so the starting value, in 1950, is the 1950 population estimated by the US Census." + ] + }, + { + "cell_type": "code", + "execution_count": 428, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
19502.557629
\n", + "
" + ], + "text/plain": [ + "1950 2.557629\n", + "dtype: float64" + ] + }, + "execution_count": 428, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[1950] = census[1950]\n", + "results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After that, the population in the model grows by a constant amount each year." + ] + }, + { + "cell_type": "code", + "execution_count": 429, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "for t in linrange(1950, 2015):\n", + " results[t+1] = results[t] + annual_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the results looks like, compared to the actual data." + ] + }, + { + "cell_type": "code", + "execution_count": 430, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nBM33y9YAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_estimates(table2)\n", + "plot(results, '--', color='gray', label='model')\n", + "decorate(xlabel='Year', ylabel='World population (billion)')\n", + "savefig('chap03-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model fits the data pretty well after 1990, but not so well before." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Try fitting the model using data from 1965 to the present, and see if that does a better job.\n", + "\n", + "Hint: Copy the code from above and make a few changes.\n", + "\n", + "Make sure your model starts in 1950, even though the estimated annual growth is based on later data. You might have to shift the first value in the series up or down to match the data." + ] + }, + { + "cell_type": "code", + "execution_count": 431, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1965, 2015)" + ] + }, + "execution_count": 431, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "first_year = 1965\n", + "last_year = census.index[-1]\n", + "first_year, last_year" + ] + }, + { + "cell_type": "code", + "execution_count": 432, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.078121284360000015" + ] + }, + "execution_count": 432, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total_growth = census[last_year] - census[first_year]\n", + "elapsed_time = last_year - first_year\n", + "annual_growth = total_growth / elapsed_time\n", + "annual_growth" + ] + }, + { + "cell_type": "code", + "execution_count": 433, + "metadata": {}, + "outputs": [], + "source": [ + "results = TimeSeries()" + ] + }, + { + "cell_type": "code", + "execution_count": 434, + "metadata": {}, + "outputs": [], + "source": [ + "results[1950] = census[1950]\n", + "results\n", + "\n", + "for t in linrange(1950, 2015):\n", + " results[t+1] = results[t] + annual_growth" + ] + }, + { + "cell_type": "code", + "execution_count": 435, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nH8tXNXQVpeNs/Z/6C7BMCJGIeZHXYcyVvC4BzgP+J4R4qGFfTUr55MlOKITwAFajisCcVhwdHXFy\ncrJ831V1dDOKMlift5oi/0RMZfUc1WfxffJv/G3SNLteR1HOVrYG/xcbvnoDj7ewvemwjwacNPgD\n/8OcHE49oTuN6HQ64uLiOHr0KKGhoXato6tpGpV1lWxI3cCvB8yppCIifMnJKWOiIZ7zhgm7XEdR\nFNsXedl1KaYQ4mJgBjAdSLTnuRX7qa+vZ9++fQwaNMgqwLu6ujJ16lS7DfGUl9eyYUM6WbVJlIfu\noqymzLLN38eLm8dcz8SwiSrlsqLYUbcnORFC9AHeBP6OebGY0gMVFRWRkJBARUUFRqORIUOGWG23\nV+AvLq7mgce+IlH7hmP6gxjc/fFuyMQ5LGgY18Zci6+br12upSjKcaciw9VrwKdSyq+FECGn4PpK\nG+rq6khNTSU7O9vSlpmZSUhICJ6enna/nsmlkrS+6zhWaL7bP1pUTVjfQP4W+zcMgQa7X09RFLNu\nDf5CiPmYE8TFd+d1FdscOXKEpKQkqqurLW1OTk5ER0fbNR9PU73denPl2Em8+8PXDAzzZtbIGVwq\nLsVV79ol11MUxay77/wXACHAESEEHE8T8ZUQ4h0p5a3d3B+F5nV0GwUGBhIXF4erq30CcUpKITt3\nHmHevBirnDt/HzUHo2MlVw25ilCfULtcS1GUtnV38J8LuDX5PhDYAtwEfNfNfTnraZpGTk4OycnJ\nVnV0XVxciIuLIzAw0C6J0TRN4623kvhi11YOuu4kLOIRJowdaNnu6eLJP8/9Z6evoyiK7VoN/kKI\n4PacSEp5yIZ9ck+4RuP4Qq6UMr8911M67/Dhw+zevduqrX///kRHR1ulY+6s4upifq39iBSPXQA8\n9807jD/33yrjpqKcQm3d+edgnrNvK7VY6zQTFBSEj48PxcXFuLu7Ex8fj7+/v93Ob9JM/JT1E5vk\nJnSBVbjkOuLt5cyA6HJq6mvUuL6inEJtBf8bOB78ewNPYa7h+yHHV/heinmVb4c+s0spczg+7q90\nMU3TrO62dTodBoOBgwcPIoSwy/RNo9HEli05hBk03k9eQ3axedaQo6MDw4cHMCV8ElcOuVIFfkU5\nxVr93y6lfLvxtRBiI/CulPLmE3ZbK4R4HrgGeL1Leqh0mslkIiMjg6NHjzJmjHWBEy8vL2JiYuxy\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_estimates(table2)\n", + "plot(results, '--', color='gray', label='model')\n", + "decorate(xlabel='Year', ylabel='World population (billion)')\n", + "savefig('chap03-fig02.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Now with system objects" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can rewrite the code from the previous section using system objects." + ] + }, + { + "cell_type": "code", + "execution_count": 436, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "t0 = census.index[0]\n", + "t_end = census.index[-1]\n", + "total_growth = census[t_end] - census[t0]\n", + "elapsed_time = t_end - t0\n", + "annual_growth = total_growth / elapsed_time" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the system object." + ] + }, + { + "cell_type": "code", + "execution_count": 437, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system = System(t0=t0, \n", + " t_end=t_end,\n", + " p0=census[t0],\n", + " annual_growth=annual_growth)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can encapsulate the code tha runs the model in a function that stores the resulting Series as a new system variable." + ] + }, + { + "cell_type": "code", + "execution_count": 438, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation1(system):\n", + " \"\"\"Runs the constant growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: system object\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " results[t+1] = results[t] + system.annual_growth\n", + " system.results = results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also encapsulate the code that plots the results." + ] + }, + { + "cell_type": "code", + "execution_count": 439, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(system, title=None):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " system: System object with `results`\n", + " \"\"\"\n", + " newfig()\n", + " plot_estimates(table2)\n", + " plot(system.results, '--', color='gray', label='model')\n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 440, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nDf5KKTUE/S/ueJcybGcgtAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation1(system)\n", + "plot_results(system, title='Constant growth model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`plot_results` uses `decorate`, which takes parameters that specify the title of the figure, labels for the $x$ and $y$ axis, and limits for the axes. To read the documentation of `decorate`, run the cells below." + ] + }, + { + "cell_type": "code", + "execution_count": 441, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function decorate in module modsim:\n", + "\n", + "decorate(**kwargs)\n", + " Decorate the current axes.\n", + " \n", + " Call decorate with keyword arguments like\n", + " \n", + " decorate(title='Title',\n", + " xlabel='x',\n", + " ylabel='y')\n", + " \n", + " The keyword arguments can be any of the axis properties\n", + " defined by Matplotlib. To see the list, run plt.getp(plt.gca())\n", + " \n", + " In addition, you can use `legend=False` to suppress the legend.\n", + " \n", + " And you can use `loc` to indicate the location of the legend\n", + " (the default value is 'best')\n", + "\n" + ] + } + ], + "source": [ + "help(decorate)" + ] + }, + { + "cell_type": "code", + "execution_count": 442, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " adjustable = box\n", + " agg_filter = None\n", + " alpha = None\n", + " anchor = C\n", + " animated = False\n", + " aspect = auto\n", + " autoscale_on = True\n", + " autoscalex_on = True\n", + " autoscaley_on = True\n", + " axes = Axes(0.125,0.125;0.775x0.755)\n", + " axes_locator = None\n", + " axis_bgcolor = (1.0, 1.0, 1.0, 1.0)\n", + " axisbelow = True\n", + " children = [\n", + " label = \n", + " legend = None\n", + " legend_handles_labels = ([], [])\n", + " lines = \n", + " navigate = True\n", + " navigate_mode = None\n", + " path_effects = []\n", + " picker = None\n", + " position = Bbox(x0=0.125, y0=0.125, x1=0.9, y1=0.88)\n", + " rasterization_zorder = None\n", + " rasterized = None\n", + " renderer_cache = None\n", + " shared_x_axes = \n", + " xlabel = \n", + " xlim = (0.0, 1.0)\n", + " xmajorticklabels = \n", + " xminorticklabels = \n", + " xscale = linear\n", + " xticklabels = \n", + " xticklines = \n", + " xticks = [ 0. 0.2 0.4 0.6 0.8 1. ]\n", + " yaxis = YAxis(54.000000,36.000000)\n", + " yaxis_transform = BlendedGenericTransform(BboxTransformTo(Transforme...\n", + " ybound = (0.0, 1.0)\n", + " ygridlines = \n", + " ylabel = \n", + " ylim = (0.0, 1.0)\n", + " ymajorticklabels = \n", + " yminorticklabels = \n", + " yscale = linear\n", + " yticklabels = \n", + " yticklines = \n", + " yticks = [ 0. 0.2 0.4 0.6 0.8 1. ]\n", + " zorder = 0\n" + ] + }, + { + "data": { + "image/png": "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\nAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.getp(plt.gca())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** The constant growth model doesn't make a lot of sense, because it seems like the number of deaths and births should depend on the size of the population. As a small improvement, let's write a version of `run_simulation1` where the number of deaths is proportional to the size of the population, but the number of births is constant. This model doesn't make a lot of sense, either, but it's a good exercise.\n", + "\n", + "Write a function called `run_simulation1b` that implements a model where the number of births is constant, but the number of deaths is proportional to the current size of the population. Set the death rate to `0.01`, which means that 1% of the population dies each year; then choose the number of annual births to make the model fit the data as well as you can.\n", + "\n", + "Hint: It probably won't fit very well." + ] + }, + { + "cell_type": "code", + "execution_count": 443, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation1b(system):\n", + " \n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " births = system.birth_rate * results[t]\n", + " deaths = system.death_rate * results[t]\n", + " results[t+1] = results[t] + births - deaths\n", + " system.results = results" + ] + }, + { + "cell_type": "code", + "execution_count": 444, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system.death_rate = 0.01\n", + "system.birth_rate = 0.02" + ] + }, + { + "cell_type": "code", + "execution_count": 445, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_results(system, title=None):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " system: System object with `results`\n", + " \"\"\"\n", + " newfig()\n", + " plot_estimates(table2)\n", + " plot(system.results, '--', color='gray', label='model')\n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "code", + "execution_count": 446, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nudGqgSlKLWgQyd/U5C4Krclh+YdrFEVRlIps0brl2GOqWDfTUIp9otCaDiqKoijV05vLrctKNZTk\nnwiwbt06AgKupc8uRVGUpuXChQuMGTMGqujht6EkfwNAQEAAISEh1o5FURSlIam0qFw19VQURWmC\nVPJXFEVpglTyVxRFaYJU8lcURamnzqadJSY9pla2rZK/oihKPXQy9STv/fke8/+aT2KWxUNyW0wl\nf0VRlHrEaDTy3ZnvmP/nfPRFerILspn6xdv8+qvF4ylZpKE09VQURWn0MvWZrDiwghMp2tDZhYUG\nomUhwecH8Pn+UwjRjObNXWtkX+rKX1EUpR44mnyUmTtnliZ+gFY+Lemmvw+X4mYUFBj45pvoGtuf\nuvJXFEWxoqLiIjad2MQPZ38onabT6bi9ze0MjxhOQqsc5s3bzaBBYdx5Z+sa269K/oqiKFaSlJ3E\n8v3LOZ9xHoC8/EICvHx5pPMjtPPVRhBt0cKD2bN74+npWKP7VsU+iqIoVnIx7yLnM85jKC7m9N9p\nnPvThQfD/lWa+EvUdOIHlfwVRVGs5ka/G7mtzW2c/TsLl7PduCF7OJ+viUGvL6r1fddpsY8Qoh+w\no4rZO6SU1RqcuzEZMGAA9957L5MnT77qPL1ez5IlS9i6dSvx8fG4urrSpUsXnnjiCTp06HDF/WRn\nZ7N8+XK+/fZbEhIS8PT0JCoqiieffJKWLVvWyrEpiqIpNBRib2tvNu1ucTcRLpEs+28M+RQREuKO\nwVD746zUdZn/72iDC5Q1GFgFzKvjWBqsqVOncuLECV555RVatWpFeno6K1asYOzYsWzYsIHWrSuv\nFEpNTWX06NG4uLgwZcoUhBCkpqby4Ycfcv/997N27Vratm1bx0ejKI2f0Wjk+7Pfs+PcDqb2noq7\no3vpPFsbWzqEtWbsWBeKi6F79wB0Ol2tx1SnxT5SygIp5YWSHyAPeBN4S0r5bV3G0lBlZ2ezdetW\nnn/+efr06UNISAgdOnTgrbfewsfHh88//7zKdWfMmIHRaGTt2rUMGjSIFi1a0LlzZxYuXIi/vz/z\n5qnzr6LUtEx9Jgt2L2DD8Q1czLvIK1/8lyNHkissFxUVSI8egXWS+MH6Zf7/AfTATCvH0aDY2Niw\na9cuDIbL3XTb2tqyevVqJk2aVOk6KSkp/Pjjj4wbNw43Nzezefb29rzzzjtMmzatdNqpU6d49NFH\n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\nKIqShPw/pKzFve0PY3UAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation1b(system)\n", + "plot_results(system, title='Constant growth model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Proportional death, proportional birth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's get to a more realistic model where the number of births and deaths is proportional to the current population." + ] + }, + { + "cell_type": "code", + "execution_count": 447, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation2(system):\n", + " \"\"\"Runs the constant growth model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + " \n", + " system: system object\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " births = system.birth_rate * results[t]\n", + " deaths = system.death_rate * results[t]\n", + " results[t+1] = results[t] + births - deaths\n", + " system.results = results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I kept the death rate at 1% and chose the birth rate to fit the data." + ] + }, + { + "cell_type": "code", + "execution_count": 448, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system.death_rate = 0.01\n", + "system.birth_rate = 0.027" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### run_simulation2(system)\n", + "plot_results(system, title='Proportional model')\n", + "savefig('chap03-fig03.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model fits the data pretty well for the first 20 years, but not so well after that." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** In this implementation, we compute the number of deaths and births separately, but since they are both proportional to the current population, we can combine them.\n", + "\n", + "Write a function called `run_simulation2b` that implements a model with a single parameter, `alpha`, that represents the net growth rate, which is the difference between the birth and death rates. For example, if `alpha=0.01`, the population should grow by 1% per year.\n", + "\n", + "Choose the value of `alpha` that fits the data best." + ] + }, + { + "cell_type": "code", + "execution_count": 449, + "metadata": {}, + "outputs": [], + "source": [ + "system.alpha=.15\n", + "\n", + "def run_simulation2b(system):\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " net_growth=system.alpha\n", + " system.results = results" + ] + }, + { + "cell_type": "code", + "execution_count": 450, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(system, title=None):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " system: System object with `results`\n", + " \"\"\"\n", + " newfig()\n", + " plot_estimates(table2)\n", + " plot(system.results, '--', color='gray', label='model')\n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "code", + "execution_count": 451, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation2b(system)\n", + "plot_results(system, title='Alpha Model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Factoring out the update function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The functions that run the model all look the same except the body of the loop. So we can factor that part out into a function." + ] + }, + { + "cell_type": "code", + "execution_count": 452, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func1(pop, t, system):\n", + " \"\"\"Compute the population next year.\n", + " \n", + " pop: current population\n", + " t: current year\n", + " system: system object containing parameters of the model\n", + " \n", + " returns: population next year\n", + " \"\"\"\n", + " print (pop,t,system)\n", + " births = system.birth_rate * pop\n", + " deaths = system.death_rate * pop\n", + " return pop + births - deaths" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now the name `update_func1` refers to a function object." + ] + }, + { + "cell_type": "code", + "execution_count": 453, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 453, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "update_func1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Which we can confirm by checking its type." + ] + }, + { + "cell_type": "code", + "execution_count": 454, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "function" + ] + }, + "execution_count": 454, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(update_func1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`run_simulation` takes the update function as a parameter and calls it just like any other function." + ] + }, + { + "cell_type": "code", + "execution_count": 455, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system2, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + "\n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system2.t0] = system2.p0\n", + " for t in linrange(system2.t0, system2.t_end):\n", + " results[t+1] = update_func(results[t], t, system2)\n", + " system2.results = results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we use it." + ] + }, + { + "cell_type": "code", + "execution_count": 456, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.557628654 1950.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "2.60110834112 1951.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "2.64532718292 1952.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "2.69029774503 1953.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "2.73603280669 1954.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "2.78254536441 1955.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "2.8298486356 1956.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "2.87795606241 1957.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "2.92688131547 1958.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "2.97663829783 1959.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.02724114889 1960.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.07870424842 1961.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.13104222065 1962.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.1842699384 1963.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.23840252735 1964.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.29345537032 1965.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.34944411161 1966.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.40638466151 1967.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.46429320075 1968.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.52318618517 1969.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.58308035032 1970.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.64399271627 1971.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.70594059245 1972.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.76894158252 1973.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.83301358942 1974.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.89817482044 1975.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "3.96444379239 1976.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.03183933686 1977.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.10038060559 1978.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.17008707588 1979.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.24097855617 1980.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.31307519163 1981.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.38639746988 1982.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.46096622687 1983.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.53680265273 1984.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.61392829783 1985.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.69236507889 1986.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.77213528523 1987.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.85326158508 1988.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "4.93576703202 1989.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.01967507157 1990.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.10500954779 1991.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.1917947101 1992.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.28005522017 1993.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.36981615891 1994.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.46110303361 1995.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.55394178519 1996.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.64835879553 1997.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.74438089506 1998.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.84203537027 1999.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "5.94134997157 2000.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "6.04235292108 2001.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "6.14507292074 2002.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "6.2495391604 2003.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "6.35578132612 2004.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "6.46382960867 2005.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "6.57371471201 2006.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "6.68546786212 2007.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "6.79912081577 2008.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "6.91470586964 2009.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "7.03225586943 2010.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "7.15180421921 2011.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "7.27338489093 2012.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "7.39703243408 2013.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "7.52278198546 2014.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n", + "7.65066927921 2015.0 t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "annual_growth 0.072290\n", + "dtype: float64\n" + ] + } + ], + "source": [ + "run_simulation(system, update_func1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Remember not to put parentheses after `update_func1`. What happens if you try?" + ] + }, + { + "cell_type": "code", + "execution_count": 466, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n/wAU/PgZNwB+ZwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system, title='Proportional model, factored')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** When you run `run_simulation`, it runs `update_func1` once for each year between `t0` and `t_end`. To see that for yourself, add a print statement at the beginning of `update_func1` that prints the values of `t` and `pop`, then run `run_simulation` again." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Combining birth and death" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since births and deaths get added up, we don't have to compute them separately. We can combine the birth and death rates into a single net growth rate." + ] + }, + { + "cell_type": "code", + "execution_count": 468, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func1b(pop, t, system):\n", + " \"\"\"Compute the population next year.\n", + " \n", + " pop: current population\n", + " t: current year\n", + " system: system object containing parameters of the model\n", + " \n", + " returns: population next year\n", + " \"\"\"\n", + " net_growth = system.alpha * pop\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how it works:" + ] + }, + { + "cell_type": "code", + "execution_count": 469, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "system.alpha = system.birth_rate - system.death_rate\n", + "\n", + "run_simulation(system, update_func1b)\n", + "plot_results(system, title='Proportional model, combined birth and death')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Maybe the reason the proportional model doesn't work very well is that the growth rate, `alpha`, might be changing over time. So let's try a model with different growth rates before and after 1980 (as an arbitrary choice).\n", + "\n", + "Write a function called `update_func1c` that takes `pop`, `t`, and `system` as parameters. The system object, `system`, should contains two parameters: the growth rate before 1980, `alpha1`, and the growth rate after 1980, `alpha2`. It should compute and return the simulated population one year later.\n", + "\n", + "Note: Don't forget the `return` statement." + ] + }, + { + "cell_type": "code", + "execution_count": 470, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func1c(pop, t, system):\n", + " if t < 1980:\n", + " net_growth = system.alpha1 * pop\n", + " else:\n", + " net_growth = system.alpha2 * pop\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "code", + "execution_count": 471, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulationa(system, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + "\n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " system.results = results" + ] + }, + { + "cell_type": "code", + "execution_count": 472, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.015\n", + "0.013\n" + ] + } + ], + "source": [ + "alpha1 = 0.015\n", + "alpha2 = 0.013\n", + "system1 = System(t0=t0, \n", + " t_end=t_end,\n", + " p0=census[t0],\n", + " annual_growth=annual_growth,\n", + " alpha1 = alpha1,\n", + " alpha2 = alpha2)\n", + "\n", + "print(system1.alpha1)\n", + "print(system1.alpha2)" + ] + }, + { + "cell_type": "code", + "execution_count": 473, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulationa(system1, update_func1c)\n", + "plot_results(system, title='Changing Net Growth over Time')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Quadratic growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the implementation of the quadratic growth model." + ] + }, + { + "cell_type": "code", + "execution_count": 475, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func2(pop, t, system):\n", + " \"\"\"Compute the population next year.\n", + " \n", + " pop: current population\n", + " t: current year\n", + " system: system object containing parameters of the model\n", + " \n", + " returns: population next year\n", + " \"\"\"\n", + " net_growth = system.alpha * pop + system.beta * pop**2\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here are the results. Can you find values for the parameters that make the model fit better?" + ] + }, + { + "cell_type": "code", + "execution_count": 476, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEjCAYAAADaCAHrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VFX6wPHvZNJ7gSRAIEAIhwChIyDSFERBUFdRBFR+\n1rWtBV3LuiyiiOiyVuyiruLaUVF0LSCCuFKkJ5yEUAOkQ3qdub8/7iQkkIQJJJkE3s/z8MzklnPf\nCfDeM+eeYjEMAyGEEGcXN1cHIIQQovlJ8hdCiLOQJH8hhDgLSfIXQoizkCR/IYQ4C0nyF0KIs5Ak\nfyGEOAu5uzoAcWZQSgUDtwBTgRigAtgJvA28p7UudVFce4G9WuvRjVhmOFCotS50/PwOcL3W2tJY\n12huSqmfgc5a687NcZ5wPan5i9OmlOoF/AE8DmwB/up4nwO8DqxSSkW6LsLGo5S6GNBA22qbXwOu\ndU1EQpwaqfmL06KU8ge+AbyBwVrrrdV2P6eUugT4GPhcKXWe1truijgb0RAguPoGrfVvwG+uCUeI\nUyM1f3G6/gpEA/93XOIHQGv9NTAXGAZc38yxCSHqIDV/cbqmA8la62/rOeYl4DHHsW9D3W3xx29X\nSlmAW4EbgDjAA9jrKOdprbVR7dyrgYcBBaQAjxwfiKP8HzArPtOAbKCf47Xe61S27TuK2qOUWqW1\nHl1bm79Sqj1m09cEIABIBOZprb+o65fkKGeQI45/OuI67PjdfYB5E70B8AS+B27XWmdXOz/ecc3R\ngBdmE9xTx19TKTXWUVZfIA14so54egLzgDGOa24C5mqt/1vXZxCth9T8xSlTSrUDugK/1nec1roA\nWA+cdwqXeRx4BUgA7sNM6CXAU8Bt1WKZCXwIFGF+G1mB2dwUUUuZ1wB9gHuAN7TWWU5e5zVgqeP9\nvZiJ8QRKqVDgd8d13gPuB4oxm74uPcnnbQd8DawGZmE+OF+M2bR2PmbSXgJchXmDqLzmYOB/mM1S\nCx3xewJLlVJ3VDtuLPAtEAQ8CnwEvIB506n+GeIxm7J6Yt4c/oZ5Q1zuuMmKVk5q/uJ0tHe8pjlx\n7GHASykVqrXOcaZwpZQHcBfwodZ6ZrXtbwIZwEXAy0opK7AA8wYzSmtd7jjuDxzfNI7jA1yqtT7U\nkOtorX9TSm0FLge+0FrvrSP0B4Eo4Dyt9a+Ost4BtmMm0S/r+dihwF1a65cc5+3FTPzdAVXZa0op\n1Q+4sNp5LwJ2zOcuqY5jXsG8MT+jlPrIcZN7CvPvYpjWOs9x3A+YN8us48rLBAZU69X0ouO455VS\nS7XWZfV8DtHCSc1fNJfKB71OVzgcSTwCswtpdW2APMDf8fMAIBx4uzLxO7wHHKml6F2Vib+B13HW\nJcDGysTvuEYJZhPQlU6cv7Ta+yTH67fHdZfdg/ktAaVUBGaN/73KxF/tms9g3uzGObqoDgT+U5n4\nHcetBKqe1yilwoBRwHLARynVRinVBvNB91LM39VgJz6HaMGk5i9OR2UCbefEse0wmzCyT3bgccqA\niY7mEgXEAiGOfZWVl86O15TqJ2qtbUqp5FrKzDjF6zirM/DV8Ru11kknHlqr9GrvKxyvx8dsAyqf\nMXSuvEQtZSU6XqMdf+C435PDTswbCJjjNMD8NnRXHTF24iTNfaJlk+QvTpnW+rBSKoWTtOUrpXwx\n25TXa61tJynWWu08C/AFMAlYA6zFbHf/BbP5oVLlQ1+fWsqrLXHXiKEB13GWtVpMDaa1rqhlc33l\n1Te4rPLzl+H876ny72AR5u+lNjvquaZoBST5i9O1BJitlJqktV5WuVEp9Qxmk8Vi4M+YCee9aufZ\nMHukUO0cd8ymlsqa6QjMhPy41nr2cceFAbsdmypfY48rz4JZKz5ZonL2Os7az7Hac/V4rse8Ud7R\nyO3lex2vPWrZpxyvBxzHGRz3e3LoWkt5FVrrH2sUZvYA6oL5YF20YtLmL07X05jJ8U2lVN9q28Mx\ne8/8jtlbZBvmjaBSGqCUUtVroZMxB4tVCnO8Jhx3zZsBX45VXjZhJqzbHN8yKk3FvJmcjLPXgWPf\nGur7v7McGKyUGli5wfFQ+QFgUGM/KNVapwEbgBlKqahq1/TE7LlUCvzgeOD7i+O4iGrHDcN8blJZ\n3mFHeTMdXVarf4bFwKdIxbHVk79AcVq01oVKqYmY3RPXKaU+wOxyuA7ohfmAEeA7oPrD2P9g9ij5\nTin1PtAN84HrvmrHrMV84PqsUioa8+HtGOBqzG6YAY4YDKXUXZhNFL8ppRYDHYA7MaeYOBmnruOQ\n6Xh9QCn1rdb6hLZ9zJvdlcAKRw+ZQ5jdPuOo2UOnMf0Fs4lqvVLqZSAfmIH5+/+L1vqo47hZmN1I\n/6eUWgT4YXZbzaqjvI2O8rIdn2EI8HD18QWidZKavzhtWuudmElmNubAoWeAJxy7H8HsXngfsEEp\nVdnk8DLwD8wmhBcxByZdjtkdsrLcdMweMimYfdKfxHxoOdVxfq/KGqxjJPFEzP708x1l3cixB571\nxe/0dTDHEvwI/B9m99LaysvAHNG8DLPJawFmu/w4rfVPJ4vnVDimmBgObMQcV/AE5o3rMq31i9WO\n24jZk2c3MAe4yfH63zrK24B5w3gG80YxU2v9VFN8BtG8LIZxys+lhHCaY9DQfcDd1bsZCiFcQ5K/\nEEKchaTZRwghzkKt4oGvUsoLc0ThYY7roy2EEKJWVszBletrW0ypVSR/zMS/2tVBCCFEKzQCc/Bi\nDa0l+R8GWLJkCZGRZ8SCUEII0aTS0tKYPn06OPLn8VpL8rcBREZGEhUVdbJjhRBCHFNrU7k88BVC\niFbqyJEjZGef2ng7Sf5CCNEK7d27l19//ZU//viD0tITnueelCR/IYRohXx9fTEMg5KSErZv337y\nE44jyV8IIVqh8PBwunXrRkhICHFxcQ0+v7U88BVCiLNWZQ3fx6fmUgxKmTN2u7k1vB4vNX8hhGjB\nysrKWLduHWvWrKGsrOZs4G5ubqeU+EGSvxBCtFjZ2dmsWrWKjIwMioqL2LRpE401H5skfyGEaGEM\nwyA5OZnffvuNkpISDuQdYHPaZjx9PBvtGtLmL4QQLUhpaSmbN28mIyMDgJQjKRwsPEhRWBHf531P\nT1tPvNy9TlLKyUnyF0KIFiI7O5s//viDkpISDAx0liatIo3CyEIMdwN3iwcGjdPsI8lfCCFczDAM\ndu3ahdYawzAot5ebid8jjZKwEnMduMNR2PQwvM49/Vo/SJu/EEK4XHp6Ojt37sQwDHKKc9iYvpHU\ngFRKQszEP7rzaO4Ydgspyfn8/POBRrmmJP8W4vzzz+fll192al9paSkvvPAC48ePp3fv3gwZMoTb\nbrvNqVF+BQUFPPfcc1x88cX07duXkSNHMmvWLPbs2dNon0UI0TARERFEREawK2cXW3O3kt02mwqf\nCgAmqUlM7T2VPvERDB/egcOHCxvlmtLs0wo98sgjJCYm8re//Y2uXbty9OhRFi9ezIwZM/jss8+I\niYmp9bysrCymTZuGr68vs2bNQilFVlYWr7zyClOnTuX9998nNja21nOFEE2n1FbKN3nfcMT9CKUh\npeQcLSYiKIw7zr2FuLbHRu/OmNETNzdLo1xTav6tTEFBAd988w33338/I0eOJCoqit69e/PMM88Q\nFhbGxx9/XOe5c+bMwTAM3n//fcaOHUvHjh3p378/ixYtIiIiggULFjTjJxHi7FRaWsr27dux2Y7N\ntOzt7k1MmxgK/YpJ2nWEtE3BtNOXocJ61Di3sRI/SPJvldzc3FizZk2NfzxWq5V3332XW265pdZz\nMjMz+emnn7j++uvx9/evsc/Dw4OFCxfy6KOPVm1LSkrixhtvrGoamj17Nnl5eVX7zz//fBYvXsyf\n//xn+vbty/Dhw3nppZeq9mdlZXHnnXdyzjnn0K9fP2bOnEliYmLVfqUUX375ZY04qm/bvXs3N9xw\nAwMGDGDgwIHcfvvtpKamnsJvS4iWIzs7m19++YU9e/awY8eOGvuu7nU1odZIgvaeS1zRRPanlLJq\nVeO079fmjE7+y5alcOut33Prrd+zbFnKCfs/+URX7f/hh70n7H///YSq/atXn5h43nxza9X+detq\nXSyn0fn7+zNt2jSWLFnCyJEj+etf/8onn3zCoUOHiIqKIiwsrNbzEhMTsdvt9O3bt9b9sbGxdO7c\nGTAfPl177bV0796dpUuX8sILL7Br1y7uvPPOGuc8//zzjBkzhq+//pqZM2fy4osvsmHDBgAee+wx\nKioq+M9//sPnn3+On58fd911l9Of8/7776d9+/YsXbqUJUuWcOTIER555BGnzxeiJTl+0FZ2UTa7\n9+yuUaHycvfi6UvmcuO4SViwMGhQJIMHN93KhQ1q81dK+QAdgCAgCzistS6r/6wa548GVtaxe6XW\n+vyGxHO2evTRR+nTpw+ffvopy5cv58svv8RisXDhhRcyb948AgICTjin8h9ZYGDgScv/4IMPiIqK\n4sEHH6za9uyzzzJy5Eg2bdpE//79ARgzZgxXX301ADfffDOvv/46mzdvZtCgQezbtw+lFFFRUXh5\neTF37lx27dqF3W53ai6Sffv2MXz4cDp06IC7uzvPPPMMWVlZTv1+hGhJqg/ashk2UnJSSCtOI6Zn\nDD4+fjWOtVgsXHxxFzp3DiQ+vm2TxnXS5K+U8gJuAKYB5xx3ToVSahXwKfBubSvEH2ct5mry1Y0D\n3gHO6gZnd3d37HZ7rfvsdjvu7jX/qiZPnszkyZMpKipi48aNfPvttyxduhQ3Nzeee+65E8oICQkB\nIDc396SxJCYmkpiYWJXkq0tJSanaXvlNoVJAQADl5eUA3H777Tz44IN8//33DB48mJEjRzJp0iSn\nJ6G6++67WbBgAR988AFDhw5l9OjRTJw40alzhWgpcnJy2LhxIyUlJeSX5bMzayeFboXkhxfw6eaV\nbFrpyUt/ux4PD2vVOe7ubk2e+OEkyV8pNRN4CvAClgGfAHuBQiAEiAKGA08C/1BK/UNr/WZd5Tm+\nJaRVKz8IeBp4Rmv939P5ILWZNCmGSZNq7/kCMGWKYsoUVef+GTN6MmNGzzr333RTH266qc9pxVgp\nMDCQgoKCWvfl5uYSHBwMwO+//87PP/9cVSv39fVlxIgRjBgxgjZt2vDee+/VWkbv3r1xd3dn8+bN\n9OlzYszLli3jp59+YsGCBXh4eDB8+PAazwAqhYaGVr339DxxnpHKSacuuugizj33XFatWsXatWt5\n+eWXee211/jyyy9p06bNCedVVFTU+Pm6665jwoQJrFy5krVr1zJ//nwWL17Ml19+Wet1hWhJDMMg\nJSWlqu/+/tz97M/dT0lgCcVBxWzekoFPdgwVxW354otd9eahplJnNUwp9TVwG/BnIEJrfZ3W+gWt\n9Vda65+01p9qrZ/TWk8B2gN/BW5XSi1vwPX/DpQCc0/jM5wRevXqxaZNm07YvnPnToqKioiPjwfM\n3j6LFy8+4WERmDXvutr8g4KCGDduHO+++y6FhTX7CZeWlvLGG29w9OhRvLy86NatGykpKbRv357o\n6Giio6Nxc3PjySef5PDhkz/bqKioYMGCBRw8eJBJkyYxf/58vvnmG7Kysli3bh1gPmSufrPbt29f\n1fsjR47w+OOPU1FRwZQpU3j22Wd555132L17Nzt37jzp9YVwpfLyctatW0diYiLF5cVsSdvC3vy9\nFLQtoCS4BF9PX24acBM9isfjjhfp6YXY7Y0zZUND1Ffz/0hrXXs18jiOGv0SpdQHwHXOnKOUCgfu\nBG7TWhc5c86Z7Nprr+Xyyy9n9uzZVX3xk5KSWLhwIWPGjKlaqWfMmDEMHjyYW2+9lbvvvptzzjmH\nkpISNm3axGuvvcbf/va3Oq/x0EMPMW3aNKZPn85f/vIXYmNjOXjwIIsWLSI9Pb2quWjGjBksWbKE\nhx56iFtuuYWysjLmzp1LXl7eCU09tXF3d2fHjh1s2LCBRx99lNDQUJYtW4aHhwe9evUCoF+/fnz8\n8ccMHDgQm83G/Pnzq2r0QUFB/PLLLxw4cID77rsPHx8fPv/8cwIDA+nSpctp/qaFaFpWq5Xy8nLS\nC9NJyUmhzKOsam6e2LBYbuh/AyHeIVgObSMuLpThwztgsTReF05n1Zn8nU38x51jAO86efhtQAbw\nfkOvcybq1q0bS5Ys4aWXXuL666+nqKiIyMhIJkyYwB133FF1nJubG6+//jpvvvkm77zzDk888QQW\ni4UePXrw5JNPcuGFF9Z5jcjISD766CNee+01nnzySTIyMggNDeWcc85h3rx5dOrUCYC2bdvy9ttv\n889//pOrrroKb29vhgwZwvPPP+90k8vChQt58sknufXWWyksLCQ2NpZFixYRHR0NmGMO5syZw5Qp\nUwgPD+fuu+8mPT296jO+9tprPPXUU1x77bWUlZURHx/PW2+9VevDbCFakgqjgu3W7aQcSaHUv5Rd\nBVm0t/hzRY/LGd9tPG4Ws8Hl5psbp8n4VFkasjCAUioe8KOW5iKt9dqGXFgplQx8oLX+hxPHdgb2\n/PTTT0RFRTXkMkII0aTKy8txd3evqr0bhsGL615k/e4t6F3ZVOT6MSVmBg/fdnGzxpWamsoFF1wA\n0EVrvff4/U519VRKDcR82Btdy24LYADWWvbVVV4voBvwobPnCCFES1PZm6dLly5069YNMLtrzuw3\nk40pD+KfrehaPIK9m63s2JFFr14ndnZwFWf7+T8P2IGZQKrj/ekYgTlGIPGkRwohRAtTvTdPUXkR\nJTtLCAkJqepwEegVyEtXPM3Siv38/vthJk+OIS6u9s4YruJs8h8ITNVaf3nSI53THzj5FJRCCNHC\nlJWVsWnTJjIyMjiUf4g9R/YQFRJFn4KBVO9sF+AVwJQp3Rk3Lpp27fzrLtBFnE3+mYDtpEc5rx2Q\n04jlCSFEk6ts5skrzCMpO4kjJUcocSvjw5RV7D8QyVMPXFFj8jUfHw98fDxcGHHdnE3+rwAPKaVW\nNEa3TK315NMtQwghmkv1Zp7MwkySc5KpsFdQ5FfCKr0b77I2HC4qZ8WK/YwdW9uj0ZbH2eQfDfQC\nDiultgHH3wAMrfX4Ro1MCCFagMpmnsPph0nJSSG9MB3DzaCobRE2XxuXuE0g69cuuLu5U1Fxuo9D\nm4+zyV8Bm6v93DK/xwghRCPbuHEjuw/uRmdrSipKsHnaKGxTSHBAMDf0v4GuQd14t3wH48ZF06nT\nySdObCmcSv5a6zFNHYgQQrQ0NruNA14H2JKxBbvN4EDJEQI7uDEseihTe0/F18MXgBtvjHdxpA3X\n0CmdewKjMKd0zgTWaK11UwQmhBCuZmCQXJDMYbcj7DmYS25ZBdMipnFD/ytdHdppc2p+XaWUm1Lq\nDWAbsAhzFs83gASl1DtKqeafmOIM4+wC7qmpqSiluPfee2s9trYVsipVnlv9T9++fbn00ktZsmQJ\n1Ud7f/755yccW/3Pd999V3VsSkoKd999N0OHDqV3796MGzeOp59+us5ZSm+99VaUUmzZssWp340Q\nzSUnJ6fG5IXubu7c0P8GCt3LsRWHMjB/OvvWBpGZ2fqnI3O25v8Q5oRtDwFLgHTM7prTMGfkTMCc\nmlk0k+XLlzNx4kTGjh3b4HNffvll+vTpg2EY5Ofns3LlSp566ilSU1NrLOBitVpZtWpVrWUEBQUB\n5vKQ06ZNY+zYsbz99tsEBASgtWb+/Pls376df//73zXOy8zMZM2aNXTu3JmPPvqozpXFhGhOlb15\ntiVsw9vDm4CAgKrlTtsFtOO5K+ey9N1MDh8uZObMXrRt6+viiE+fs8n/RmCe1vqZattSgaeVUt6O\n/ZL8m1HHjh2ZM2cOgwcPrkrEzgoKCqJtW3OxiPDwcGJiYnB3d2fBggVcccUVVcPUgarj6lL5DWDe\nvHlV26KiovDz8+P6669n586d9OhxbBHqr776ivDwcKZPn86zzz7LI488csKawkI0p9LSUjZt2sSO\nvTtIOZJCx4BO+P0RyMiRw6uO6RTciRtuiMTd3dJi++03lLNr+LYDfq1j31qgU+OEI5z1wAMPUF5e\nzvz58xulvClTpuDp6cm3337boPPc3NzIz89n48aNNbYPHjyYr7/++oQpmL/44guGDh3KuHHjKC4u\n5quvvjrt2IU4VdnZ2fz080+sTlyNztYUlZTyc/Imft9+YpNlQIDnGZP4wfma/25gGPBTLfuGAc2z\nenkDLdPL+Drpa6eOHRE9ghl9ZtTY9v7W91m9b7VT51/S/RImqUkNjvFUhYWF8fDDD/Pggw8yYcIE\nRo4ceVrl+fn5ERUVRVJSUoPOmzhxIm+99RbTpk2jV69eDBkyhCFDhjB06FBiY2NrHLtt2zaSkpKY\nNWsW7dq1o1+/fnzyySdMmzbttGIXoqEMw2DXrl38tvk3krKTKLOVUVFhZ0dGOlnlNqzb09mwIY1B\ng5puAXVXczb5vwnMV0oVYs7EmQ5EANcAj2A+ABbN7LLLLuPbb79l9uzZfP3116fdfHL8UpI2m63W\ndXxDQkJYsWIFAMHBwXz22WcsXryY77//nsWLF7N48WL8/f25//77ueaaa6rOW7p0KYGBgZx77rmA\neeN44okn2Lp1a61LSwrRFEpLS9nwxwbWJa3jcIFZbzXcDErbFdPFvSedtvYhwKf1t+mfjLPJ/0XM\nydgWAv+stt2CuRjLvNpOEs5r6ALulR577DEmTpzI008/zdy5p7caZkFBQY02fqvVyhdffHHCcccv\nwh4SEsKsWbOYNWsWhw4dYu3atXzwwQfMmTOH9u3bM2rUKMrKyvjmm2+44IILqhaEueiii3jyySf5\n6KOPJPmLZpGdnc2KtSvYdmgbJRUlANg8bVg6WLh14K10D+rJRx/tZPLkboSEeLs42qbl7CAvG3C9\nUuppYCTm4u1HgF+01icuJttCTFKTTqspZkafGSc0BTUVZxdwP15kZCQPPvggs2fPZsKECad8/eLi\nYvbs2cPEiRNrbK9ceasur7/+OtHR0Ywfb87u0b59e6688komT57MRRddxKpVqxg1ahQrVqzg6NGj\nfPnllzXa+e12O8uXL+fhhx+WB7+iSZXbyvku6Tu27N9CRbmdwqJyvDoaxPWIY0afGQR4mavEXX99\nbxdH2jwaNMjLkehbbLJvzZxdwL02V111FcuXL+fRRx895et/8skn2O32Bt9Atm7dyrfffsvYsWOx\nWo+t5+Pp6YmPj0/V/OZLly4lIiKCN998s8b5GzduZM6cOSxbtqxGE5EQjc1m2EgoSuBg2VGMbDf2\nlecyNe5q/jzoUpesoetqdSZ/pVQScKXWeqtjycX61ns0tNaq0aM7izi7gHtdnnjiCSZNcu5bTm5u\nLpmZmRiGQV5eHr/88gvPPfcct9xyS9U6vpUyMzNrLcPHxwd/f3/uuOMOpk2bxi233MJNN91Ep06d\nOHz4MEuXLiU3N5err766qm//HXfcQffu3WuUExMTwxtvvMEnn3wiyV80uoqKiqomU293b2b2m8lf\nEv9BYVEQsUVXsvuXIEovtuHt3aB68Bmhvk/8K5Bf7b3zi/2KBnN2Afe6REVFMWvWLB5//PGTHnv7\n7bdXvQ8ODiYmJobHH3+cSy+9tMZxNpuN8847r9Yypk+fzuzZs4mLi+Ojjz7ilVde4YEHHuDo0aME\nBgYyfPhwPvzwQ9q0acNbb72FxWLhqquuOqEcq9XKddddx/z589m2bVu933CEcJZhGGzavomc9BxG\njBiBl5cXALFhsTx39WN8/GomHuFWZs7sfVYmfmjgAu6uIgu4CyGcVVxSzIc/fIjer+kc0I0+3Xoz\nbNiQGk07ubmlBAR41lh45Uxzygu4K6XaN+RCWutDDY5OCCEaUcLeBD5b8Rn5xfkUFpTzv8NbKS8I\nZPDggXh4HBugFRTk5cIoW4b6vu+k0rCmHuvJDxFCiMZns9v49JdP2ZSwCbthp6Skgrz8Mo6UG2zY\nZmHfvgK6dQtxdZgtSn3J/waknV8I0cLtz9rPe9+/R+6R3Kpt3n7uBNo74bOrB506BuHjc3a269en\nzt+I1vqdZoxDCCEaxG7YWfbHMtauX4thO1ZP9Q/259oLryXYvR2//XaI8eM7Y7U6O43Z2aO+Nv9H\nGlCOobVunBnGhBDiJLKLsnlj7Rvk6BwKC8spL7cTEuxNn159uHrE1bhbzdQ2YUJXF0factX3XeiJ\nBpRjAJL8hRDNwsPqQVpZGqnZ+fiUeYPdkwsHTeDK0aNcHVqrUV+zj3xPEkK0SIFegUzvO52HExfi\nndcJ34KBpCb6w3hXR9Z6SIIXQrRodsPOzsyd7Nq1C5vNVrV9UPtBLJ75L6K9zmfyJXHcddeJM9CK\nusn0DkKIFiutII131r1D5q5MOtnjGD2siL59zRlgLRYLncLa89hjkbi7Sz22oWR6ByFEi2M37PyQ\n8gPL/1iOJc2dvCNl5JTtwNPwISqqQ9WEgYAk/lNUX5v//1V7P7NZohFNasOGDUyfPh1np8n4/PPP\nefTRR0lISGiG6IQwHco/xDt/vEPGngy8Cr0oKC6jotzAzx7MziQPbLYze5795uL0yAellBtwCXAe\nEIS5mtfPWusVTRSbEOIsYrPb+D7le5ZvX45npiee5eaiPxEhoYSUhJOXG8WES3rRps2Zv8pWc3Aq\n+SulIoDvgL5AKZAJhAN/U0r9BFyutS5ssiiFEGe01LxU3tn0DmkH0/A54oMFC2640Sm4E4PVYCLC\nY/HwcKddO1nwp7E421i2EGgHXKy19tFad9JaewNXAAOoubSjOAVKKT755BOmTp1KfHw8EyZMYPPm\nzXzwwQeMGjWKAQMGcN9991FWVlZ1zoYNG5gxYwb9+/fn3HPP5YknnqC4uLhq/86dO5kxYwZ9+/bl\nkksuYceOmuvw2O12Xn31VcaMGUO/fv244oorWLVqVbN9ZiEAfjvwG/N+nsfBnekUJVvIzysnwDOA\ngR0GcsmISxg0cBCdOgVL4m9kzjb7TALu1Fr/t/pGrfUXSqm2wALgNmcvqpS6Cfgr0BFIAB5oiuYj\nrTVJSUkpKxr1AAAgAElEQVROHRsdHX3COrJbt25l3759Tp3fvXt3lDq9Dk//+te/mDdvHp07d+ah\nhx7illtuIT4+njfeeIM9e/Ywa9YsBg0axLRp09iyZQszZ87k2muv5bHHHiM1NZU5c+aQmprKq6++\nSm5uLjNnzmTo0KF89tln7N27l7///e81rrdw4UJ++OEH5s6dS6dOnVi9ejV33nknb775JkOGDDmt\nzyKEs7qEdKGoqIK8/WUEWHzwKQmjZ/eBXHjBCAICAlwd3hnL2Zp/KZBbxz7nsqODUup6YBHwFBAP\nrAK+cszZf1a76qqrOP/88+natSuXXnopubm5zJkzh+7duzN+/Hji4uJITk4GYPHixfTu3ZsHH3yQ\nmJgYRo0axZw5c1i5ciXJycl88803lJeXM2/ePLp168bYsWO58847q65VWFjIv//9bx555BFGjBhB\ndHQ0M2bM4NJLL+X111931a9AnIUi/SO5ZuAVEOhPWFl3vMtiiIyMl8TfxJyt+b8CPK6U+l1rnV65\nUSnlBzwEvOFMIUopC/AYsEBrvdix7X7gfOBcYK/zoZ95qi+h6OPjg5ubW41eOd7e3lXNPsnJyYwa\nVXMo+6BBg6r2JScn06VLF/z8/Kr29+vXr+p9SkoKZWVl3H333bi5HasDlJeX06ZNm8b9YEI47Dmy\nh/TCdAZGDMTd3b1qgZULu13I4JtH8v5725g6tTcREX4nKUmcrvoGeX1f7UcL0BPYrZT6FbOnTwgw\nHPAAnF3IRQHRwEeVG7TWdqBfnWecBqXUaTXF9OnT54SmoKZUudZoJYvFUufC0t7eJ3Z3q1yVrfI/\n1fGrtFVfzMLT0+xJ8eKLLxIdHV3juOo3AyEaQ7mtnC/1l/y4+0fKciz0ztVcMn5Y1ZrObhY3wkJ9\nuftuaW5sLvXV/D2pObBrjePVA6isjm52vDq76lfl6t3BSqkVQG9gJ/CQ1nqtk2UIzIXPN23aVGPb\nxo0bq/bl5uZWLaIeFBQEwPbt26uOjY6OxsPDg/T0dEaOHFm1/aWXXsJms3H33Xc3w6cQZ4NdObt4\nd/O7pBekk5tsw/OINwn2BEJ+9aVNmzaEhoa6OsSzUn2DvEY3wfUCHa/vArMxE/9NwAqlVH+tdWIT\nXPOMdPPNN3P55ZezYMECpkyZwsGDB3nssccYNWoUMTExREREsGjRIv76178ya9Ys0tPTeeGFF6rO\n9/HxYebMmSxcuBA/Pz/i4+NZuXIlixYtYt68eS78ZOJMUVpRyhc7v2Dl3pVQDv7Z/lhKbdjsXgRV\ndGD37nzKyspdHeZZq75mn+Fa618bWqBSaoTWenUduyv/pudprT9wHH8HMAKzt9BfGnq9s1X37t15\n9dVXee6553jvvfcIDg5m4sSJ3HPPPQD4+/vz7rvvMnfuXKZMmUJ4eDg333wzc+fOrSrjnnvuwcPD\ng6effpqsrCw6duzI3Llz+dOf/uSqjyXOEEnZSby7+V2yirJwL3bHN9sXd8MdFd2FAzvBPzCIGTPG\nERkptX5XsRzfLlxJKbUFSASe0Fpvr/WgmscPxnz4G6u1rrWhXCl1HrAaGKy13lBt+8eAj9Z6Uh3n\ndQb2ODstgRDCNUorSlm6cykr96yksKCc0HJ/vPO9CfUOJTYsFi93LyIjOzFgQG95ttTEUlNTueCC\nCwC6aK33Hr+/vjb/QcAcYINjVs/PgHXAHqAQCMZs+z8PuBjzYe6LwLR6yvzDce5gYANU9QDqCfzo\n/McSQrREr2x4hR3pCRzaW4h3hg8Ee6I6KsL9wvH29qZ///7Sm6yFqK/Nvxxz+oaXgXuBmzHb6at/\nVbAA+4FPgUu01gfru5jWukgp9SwwTymVDmwDbgdiMEcLCyFasYmxE/lx83q8MnwINdrgld2BgOhQ\nwsPD6devH15eXq4OUTictJ+/I6HfD9yvlOoBdMWc2C0L2Ke1dm4I7TGzgSLgOcz5gTYDF2qtdQPL\nEUK0MLFhsdw0agr//SQN/wIICfaie/ce9O3bo85uy8I1nJ7VE0BrvROzh84p01pXrvcra/4K0UqV\n28r5YucXxITGMKDdgBr7Lou7jEE35LNpUxLnndeVkJAQF0Up6tOg5C+EEPuO7uPtzW9zKP8Q//nl\nv0zwuYqLxvas0RkjKiqAqKiBLoxSnIwkfyGEU2x2G8uTl7M8eTml5eUkbjtC25JA/jD+h59XEZMn\nh9SYTkS0bJL8hRAndTj/MG9vfpt9R815HL0rPImzdMDXHoGvPZTU1FySk5NrzB8lWjZJ/kKIOhmG\nwcq9K/k88XPKbeVggHeuN+Gl4XTuHkPitjw6dPBnxIi+9OwZ5+pwRQNI8hdC1OpoyVHe2fwOiZmJ\n5OWXEuzjg3+2P119uhIVYbbvDx8ezMCBAwgPD3dxtKKhnF3G0Rt4GHMNXz9OXAfA0Fqf3komQogW\nw27YeebXZ0jLyyAl5SjlWRY6totiYMd4fD3MNXTbtm1L//79pe9+K+Vszf95zAnYfga2A/amCkgI\n4XpuFjcu63EZj3z6TzyzvYizxGBNb4d7lBcWi4W4uDi6du0qffdbMWeT/5XAI1rrBU0ZjBCi5Rjc\nYTA3jPoTaz4pwq+8hDYRPgQE+HHOOYMJDg52dXjiNDmb/D0x5/URQpxh7Iadb5K+IT4ins7BnWvs\nu6bf1QzyO8LOnYlERfkQHx9/wqJDonVy9m/xe8zJ21Y2YSxCiGaWVZTFW3+8RcqRFD5c/T3TO/2Z\nYYPb1xiVGxsbQrduw6SJ5wzjbPJ/H3hDKdUGWIs5N08NlfPzCyFah/UH1/P+1vfJLy4kITEHS74b\nX6d8TmnhACZMGFvjQa4k/jOPs8n/M8frTMef4xmAJH8hWoHSilI+3P4haw+YK6darW5EVgTT3tIZ\nf1sbdu/OZuvWrQwePNi1gYom5Wzy79KkUQghmsX+3P28sfENMgozAHArcyMiry1DY7qxa0cxUdH+\nxMa2pWvXri6OVDQ1p5K/1npf5XullB8QAGQ75vwXQrRwhmGwYs8KPkv8jKKSMrw8rHjme9K5ojMx\nYTFYLVZCzwmiY8cO9OnTB09PT1eHLJqY04/tlVKjgQXAQMxFXFBKrQMe1Vr/1CTRCSFOm2EYvL7x\ndTYe2si+fXmkpRYysnMs/UJ6ER5ojsy1Wq306dOHTp06Sfv+WcKpRTSVUiMxe/z4YC7GcgvmEo/+\nwLdKqRFNFaAQ4vRYLBY6BXUiZfdRclMr6GuNxf9wV8K8zeUUg4KCGDlyJNHR0ZL4zyLO1vwfx1xj\nd6JjMRYAlFJPAN9g3gguaPTohBCN4qJuF7G5bwKb0nKJqIgkwN8Hux26d4+hR48espj6WcjZ5D8I\nuKp64gdzVS6l1CLgP40emRDilBSWFWIzbAR6BVZts1gs/HXUPWwNzmL79s1ERFjo378/bdu2dWGk\nwpWcTf5HMJt4ahMA2BonHCHE6dh7dC+vb3wdS6kPUzvdQvfY4Kr++lY3K/37R9C79/kYhiEPdc9y\nzib/FcAcpdRqrfWhyo1KqfaYTT4/NkFsQggnGYbBqn2r+HjHx+w7cJSDewpIs9qZMnI448aNwWq1\nVh3r4eHhwkhFS+Fs8n8Y2AAkK6XWAGlAJHAekAc82DThCSFOprSilPe2vsf6g+upqLBTcNBGL/eO\n+Nm82bIllQ4dEoiPj3d1mKKFceopj9b6INAfeBkIAoYBwcAioL/WeneTRSiEqFN6QTpPrXmK9QfX\ngx0Ccv0YHq6IrOhOW782dO0ajLu7O4ZhnLwwcVZxup+/1joNeKAJYxFCNMCWtC0s3rSYkooSrKVW\nfLN96eDdga7RXckNKiMy0lxlKywszNWhihaozuSvlHoEeFtrfdjxvj6G1np+44YmhKiN3bCzTC9j\n6favSE46SnxkJIElAcSGxhLuZw7a6t07hvj4eGnfF3Wqr+b/BOaD3MOO9/UxAEn+QjSDH3f/yAfr\nP2d3Yh4dLWHYD3jTp1dfArz8cXd3Jz4+nqioKFeHKVq4OpO/1tqttvdCCNca3Xk0/92xiiz2EGqE\nEVTUEVuxB2Htw+jXrx++vr6uDlG0As5O7zDb0a2ztn3RSqkXGjcsIURdPK2ePDz2Xi4YMJYISy8G\n9GvPsGH9GDZsmCR+4TRnH/j+A/gWOFTLvmGYc/38pbGCEkKYbHYbfxz+g75t++Pu7lY1DUMb3zY8\nfMX/kTMmD3d3c34eIRqivge+azATO5izeP5PKVXX4esbOS4hznr5pfm8tuE1fty4kZjsQVx1/hBG\njhxeNfmaxWIhLEySvjg19dX8bwKuwEz8c4HXgdTjjrEBR4EvmiQ6Ic5S+3P38/L6l9mwfi+hBYHk\nW/awZp0/7dtHEBsb6+rwxBmgvge+O4F5AEopK/CmY7CXEKIJ/Z76O+9teQ+3HDfiPNqTaynF3xaO\npdyTo0dzMQxDpl4Wp83ZlbweA1BKhQGeOBZzwXxg7AeM0Fq/6UxZSqmewI5ado3QWq9xpgwhzkR2\nw85nCZ+xQq/AN9sXa5kVdz93wulCG79wLrnkXKKioiTxi0bhVPJXSsUDS4BedRxiAE4lfyAeyHK8\nVpft5PlCnHEKygp44deXOZC6j4D8ADDA18OXnm17EhURJV04RaNztrfPM0AYcD9wCVAKLAMmABcD\noxtwzd5AgmO6CCHOevtz9zNv+bNkJuYR5ukHIRDmE0ZceBy94nrRtWtXqe2LRufs4K1hwN+11s8C\nHwF+WutXtNaTMB/2NqSbZ28gsWFhCnFmstltLFz1Inu2ZuJn96akxIZfRThDY4YyeuRoYmJiJPGL\nJuFs8vcCkh3vk4C+1fa9zbEuoc7oDUQrpf6nlEpTSv2olDqnAecLccawulm567xbsUTaKDPshNOF\nYXEjGDFiBIGBgScvQIhT5Gzy3w90cbxPAgKVUtGOn0uAUGcKUUr5AF0xp4V+AJiMOXBslVIqztmg\nhWjtqk+x3C20G4/96R5Gxf6Ju26azoUXDpE1dUWTc/Zf2FLgKaXU5Y6VvHYCjzsS9r1AijOFaK2L\ngRBgjNZ6tdZ6HTAT2A3c3tDghWhtdhxO4KV3P2D9+g01bgBDOw7h9pnj6Ny5nQujE2cTZx/4PgbE\nAjdj3gjudbxOxxzoNdXZC2qt84772a6U2gF0dLYMIVobwzBYsvoTvl/5M5Zyd8pyS+jQoT0dOnRw\ndWjiLOXsSl5FWus/AZc7fv4vZlfNqUCc1vpzZ8pRSg1USuUppQZW22YF+lF7338hWr3C0kKeX/Y8\nv/32G0a5BTs2EtOS0Pr4AfNCNB+nV/IC0FqXVnufgpPNPdVsAfYCryml7gAKMNf/bQM838CyhGjx\nduzfwcc/fkxxcTF+/h6UltmoKPFkVP+LGDNG+jkI16lvYrdkzMFbzjC01nXO+lZJa12hlLoYeBpz\nnIAf8CswUmud4eS1hGjxbDYbX6z5gvU71mM37FXb43t0Z1z8n+jZo9YZ0oVoNvXV/H/F+eTvNMf8\nQNMbu1whWor0zAwWLnmd3KJMgoK8AHCzujFm8BguHHCh9NsXLUJ9E7vNbMY4hDgj7M7ax99fWYhb\nmQ0ALy8rYRFBzBw/k+i20Sc5W4jm4+zcPuee7Bit9drTD0eI1u1oeTZpPumEl4Xghhvl9hAenvog\nnu6erg5NiBqcfeC7hpM3AVlPMxYhWh3DMLDb7Vit5j//Ae0GMGPMRN796jsm97yce666Ejc3aeYR\nLY+zyX9MLdv8gRHAtZiLvghxVsnLy+Pb/66mV1w0vXv3rto+o/81jIsZS1SIPNQVLZez8/mvqmPX\nN0qpAuBRzNk+hTjjGYbB1m0JfPDNMjIK0snJGUi7du0ICwsDwMPqIYlftHiNMYHIaho2pbMQrVZ+\nfj7fr/yef//3PxwqPECFpYxN+xM4cCDT1aEJ0SANGuRVh0lA3kmPEqIVMwyDXbt2sWbTGpKyknDz\nseFR5MbRsmKIKKdLbJSrQxSiQZzt7fN9LZutmPPxxAALGjMoIVqS/Px81m9czx97/yCj0ByLaLGA\nR5TBBR3P57ZxU3GzyCyconVxtubvyYm9fQwgAXO07uLGDEqIlsAwDJKSkvnq+5UcKE7B28/cbvO0\n4RPlw0NDb6NLSJf6CxGihXL2ge/oJo5DiBYnN7+IFz/+mLzSwwCEenpjb1NO/179uSb+GrzdvV0c\noRCnrkFt/o55eUZgzsmfDqzQWv/SFIEJ4WpJeTvY5raVKNpQbJSRXV7E4xfcxYB2A1wdmhCnzdk2\n/zDgW2AQ5uLtmUA48HfH84DLtdYlTRalEM0gLy+PgICAqrl3BncYzIRzh7L0x1/pG9OT+VPvI9Q3\nxMVRCtE4nK35v4i5jOMkrfU3lRuVUpOBt4CngHsaPzwhmp7NZiMpKYlt23YyYEA83bp1A8BisXDb\nuTcxMKo/F3QbLROyiTOKs8n/YuCe6okfQGv9lVLqYWAekvxFK5Sdnc2mTZv5detW9mcfoqi4gsjI\nSPz9/QEI9ApkbGxtA9yFaN2cTf4VwNE69h3G7A0kRKtRUVFBYmIiSSlJ/J6ylcNHssACa3QC4/PH\n4sj9QpyxnE3+LwNPKqXWOxZwB0ApFQg8hNksJESrkJGRwZYtW9iXvY+UnBTsnhXgZrCvLAe/4Ao8\nvT1cHaIQTc7Z5N/e8SdFKbUGOASEAcOBAKC02kAwQ2s9vtEjFeI0lZWVsX37dvbs30NydjI5JTkA\n2HwrKO1czCjfkfz9yptk+mVxVnA2+XcDNlc7p5PjfeU2KzKls2jB8vLy+PnnNazbkUiu9TA+fm4Y\nbgbFIcWEtA3hyf530C20m6vDFKLZODvIS554iVZtT1oWS9f9TAWFWCxgBFupCC/j/NjzuazHZXha\npbYvzi4NHeTVExgFBGH29V+jtdZNEZgQjekgmj0e+4goC2ZfeTbdPCKZPeI+uod1d3VoQriEs4O8\n3IDXgBuA6p2dDaXUe8D/aa0bfbF3IU5Ffn4+qamp9OjRo6pv/vhuF7Ky/1p+/mMb08dM5rbR0/Fy\n93JxpEK4jrM1/4eA6xyvSzCndmgHTAPmcmyCNyFcxm63k5yczMY/dpB9JJ/AwEA6dOgAgNXNyr1j\nbuOWc4uIbSNt+0I4m/xvBOZprZ+pti0VeFop5e3YL8lfuExOTg6bN29m3aZkknOSwbAQuTaMK65o\nh5ubOd1y+4D2Zt80IYTTK3m1A36tY99ajvX+EaJZlZeXs3XrVtb8uoaEgwmkFCdQZikmx3KEFcl7\nZUoGIergbM1/NzAM+KmWfcMwR/kK0WwMw+Dw4cNs376drPwskrKTKCovIiDIg11FGdgCbFx7cRdJ\n/kLUwdnk/yYwXylVCHyI2eYfAVwDPAI82TThCXGioqIitm7dxrYduyn0SOdQvjnovNynnOKQYkZ0\n78Wfh91A+0BZRF2IujRkVs/+wELgn9W2W4D3MSd2E6JZrFmzhRVr/0da+T4CQ93w8rVSFFqENcDK\n1XFXM7qzzMApxMk4O8jLBlyvlHoaczGXUOAI8IvWekcTxidEDYZh8MXunzlSsQ93i5WUowW06+xJ\nn6h4psdPJ8w3zNUhCtEqNGiQF3AAs/3/CJDheC9EkykvLwfAw8OcbM1isTDknI68mbqZMnsFHbuE\ncOM5NzI0aojU9oVogIYM8noauBPw4NhAr0Kl1Dyt9VNNFJ84S1U+0P3990106dKBfv36Ve27us+V\nrE3ZQFxkd24851oCvKT/phAN5WzNfw5wN/Ac8BlmrT8CmALMVUrlaa1fbujFlVJDgTXAWK31zw09\nX5yZioqK2LRpCxs3prDr8AFSD2fTqVMnQkNDAfB292bhpU/g7ymT7gtxqhoyyGuu1vrxatt2A78p\npfKBezHn/HeaUsoPeA+ZDVQ42O12UlJSSE5OZvf+TLamJVBqLWDLwXwuzBxdlfwBSfxCnCZnB3kF\nAevq2LcGc67/hvoX5ihhIcjKymLVqlXs3LmT1NxUUu2J2L2KyLDlkeCjSTfSXR2iEGcUZ2v+XwN/\nBv5by76pwPKGXFQpNQGYiLk28NaGnCvOLKWlpezYsYPU1IOU2kpIyk4itzQXm4eNii4l+JTBDUOv\nYki3Pq4OVYgzirPJ/xdgnlJqK+Ygr8OYK3ldApwH/Esp9YjjWENrPb+ugpRSbYC3gP/D7DUkzlKF\nhYX88MNKEhMzKXbPpswvCxs2SoJLKAsoo0tAe67rex0xoTGuDlWIM46zyf8lx2sQ8EQt+++v9t4A\n6kz+mFNDf6W1/k4pFeXk9cUZqKDA4Oe1qeR77KLcUoyvnxu0K8fiYeHibhczMXYiHlZZT1eIpuDs\nIC9nnw3USyl1PeZIYfkOfxYyDKNGX3ybTx7bQlYRUuBPankOYRYvhobGcV3f64gOjnZhpEKc+Rol\nqTfATCAKSFNKFQCVq4B9q5R6tZljEc3EMAz279/P2rVrsdvtVdvbBbTjomFDOOCdRUy/IG67YBoP\nj3hYEr8QzaChI3xP1wzAp9rPkcBq4Cbgh2aORTSD3Nxctm3bRmpqBpmZRbRt25bu3c2lEy0WCzcP\nnYm7l8GUXlOICpRWQCGaS7Mmf631weo/K6VKHG8Paq0zmjMW0bTKysrQWrNv3z727csl5UAGBW6Z\nBK8LIDY2tqr5J9g7mHuH3eviaIU4+zR3zV+c4QzD4MCBAyQmJlJWVoaBwcGiA2S47yfNlktWgg/T\n7JOwWmUeHiFcyaXJX2udSs0F4UUrdvToUbZt28bRo0cBKCgrMBdZCT5CUl4aFj+DznGHKLYV4W+V\nEbpCuFKdyV8p1aBRu1rrQ6cfjmittm/fzp49eygsLMfHx8r+vP3sL9pPUXARFT4VxIWE0DOyOzP7\nzZSpGYRoAeqr+adi9tl3lszRcxZzd/dk7948Ug6mYWmThS2ikNLIUnADT6snU+OnyiIrQrQg9SX/\nGziW/EOBpzDX8P2YYyN8J2OO8r2vCWMUrcDeVINNB3eS5ZbKgawj9O4Yiq+bBz3a9ODavtfSxreN\nq0MUQlRTZ/LXWr9T+V4ptRT4t9b65uMO+0Ap9TxwFfB6k0QoWpSioiISExPp3r07AQHH5tF375JK\ngs8OcgtLCQ72wtfTh+l9rmZEpxFS2xeiBXL2ge+FwGV17PsaOP6mIM4wFRUVpKSkkJKSgs1mo6ys\njKFDh1Yl9vO7jmH0oF/YkbqLcf2GcG2fawnxCXFx1EKIujib/LOAc6h9INZo4GAt28UZwDAMDh06\nRGJiIsXFxdjtBnv35rIrJYe4uDiCg4MBcLO4cdeIWziQd4AhHWRJRSFaOmeT/xvAbKWUD/AVkMmx\nlbz+AtzTNOEJVzp69Cg7duwgJycHgPJyOxs3H+JA2T5SK44yMWMSjtwPQIfADnQI7OCiaIUQDeFs\n8p8HBAMPAA9X214C/F1rvaixAxOuU1pays6dOzlw4ACGcazDV55xhB0+G9Elh8EN3l31FfO6z3Rd\noEKIU+bsrJ4GcL9S6nFgGBCC2RS0Vmtd2ITxiWZ28OBBtm7dSkVFRdW2MnsZu43d7HLfRXB38N5i\nJbpTIL2HeLkwUiHE6WjQCF+tdS7wXRPFIloAPz8/KioqKCuzk55RQEC0nfX29ZRaSwHw8rQyfkQv\nru93HXFt41wcrRDiVNU3wjcZ5wd5GVpr1TghCVcKDg6mqMiP3zclssW2lUCvIsLb+gLmLJzndzmf\nS9WleLlLrV+I1qy+mv+vNGyEr2hFSkpKSExMJCQkhM6dO1dtNwyDDfkJfGf/DsNikJniRliYNx2D\noriu73V0CeniuqCFEI2mvkFeMyvfK6WmAj9prTObIyjRdI7vr5+RkUGHDh3w8DCXS7RYLPQdGMYP\ne91ws1ro0b0Nl8ddxvhu43F3k0lghThTNKSr50zgs6YLRTSlyqmWtdaUlJRUbU9Ly+PAgYN07dq5\natuU+D/x+74NRIVFcF2/a2kX0M4FEQshmpKzyf8g4NuUgYimk5mZSUJCAnl5eVXbiosr2L27hD/S\nDuITEkvXrseO93L34rHxfyPEO0QGawlxhnI2+b8CPK+UGgpsAQqOP0Br/UFjBiZOX35+PgkJCWRk\n1Fwkzdvbm5xSG0szvybPM43MXw5ywXBFWNixFTZDfUKbO1whRDNyNvk/63i9rY79BiDJvwVJT09n\n/fr1NQZpWa1WOnXpREJFAr+VrsAelI2lAKwdD7GvKJmwsD4ujFgI0ZycTf7SxaOVCQsLw8vLi5KS\nEkpLbXTsGEVZm2LeTXmXvFKz+ad79xCsFit/6nsJvdv3cHHEQojm5OwI332V75VSfkAAkK21Lm+q\nwITz7HY7FRUVeHp6Vm1zd3cnJqYbP/+cwJqtORR2XU1wl5qtdQOj47mm9zXyQFeIs5DTffeUUqOB\nBcBAHOvuKqXWAY9qrX9qkuhEvQzDIC0tjcTERAICAhg8eHCN/dn58P7W1aR5bsNIhX5t2hIY4EWw\ndzBX9LyCwe0HywNdIc5STiV/pdRI4HtgJzAbSAfaYy7i8q1S6gKt9eomi1KcICcnh4SEBI4cOQJA\nYWEhOTk5hIYee1Ab0KGUsnbJGNng7++Bh9Wd8d3GMzF2oozQFeIs52zN/3HgR2CiY5I3AJRSTwDf\nAHOACxo9OnGC/Px8EhMTSU9Pr7HdanUnKyuvRvLv0aYHk88ZwZrk9VzQ5xym9p5KhH9Ec4cshGiB\nnE3+g4Crqid+MGf7VEotAv7T6JGJGoqKikhKSiI1NbVGDx43Nzc8Pdvw5erd+Cb+jwX3Rddoypl5\nzjQu7nkBvcN7SxOPEKKKs8n/COBfx74AwNY44YjjlZaWsmvXLvbu3Yvdbq/abrFY6NChA4afN3e/\n+jJZ7rv/v717j4+quhY4/stkQhIegQQICQQCUVgULYoilvfbCq2KLbVa69V766O11vq4lfZWq7Ut\ntddeWrX2Q6/trbXeal/XV6tWlIra+qL11ZQs3gQCSSAkBBLyIJn7xz6TnARIBkLmwazv55NP4Jwz\ne2c2O14AABOySURBVPbKnFlnzz579ia9vh9L3prKtHML247L7ZdLbr/cWFTdGBPHAhEetxq4S0SG\n+zd6/78L1yVkekF9fT2bN2/ukPiHDRvGGVPOoDi1mP9efx/phe5LXC1p9bxZabdejDHdi7Tl/zVg\nLbBBRF4DyoE8YAZQCyzrneqZ7Oxs8vLyKC8vJzs7m+GFI/hb7VoeWfsIzS1upO3owixCrSGWTJnH\nZZPOj3GNjTGJINJx/mUiMgm4FZiJ+9JXNfAgsEJVy3uviskhPPFaIBCgoKCgw77x48fTf2A2D61+\njr+8eB8Tz8om4Ou/Pz3vNL4x9xOMGjgq2tU2xiSorhZzmY1bprEZwEvwX4lWxZJFKBRi586dqCp1\ndXWkp6eTl5dHMNj+0lQ0VXLlo//B/ga3YmZZWRojCwZQOKiQi8dfbCtqGWOOWVct/z8DdSLyCm6M\n/4uqWhydap38QqEQFRUVqGqH2TYbGxspLS2lyDfNZsHAEYwamUXxBpf8gwcH8fnJ13Bm3pk2gscY\nc1y6Sv4X4/r0ZwL3AqkiUo67ubsKdzGw7p5jFAqF2LNnDyUlJdTU1HTYl5aWRs6QPMr3tnSYYjkj\nmMHn5izl/prf8dlzPsVlsxcSSIn0Xr0xxhyuq5W8ngKeAhCRvsBU3MVgFrASyBSRYtyFYJWqRrSw\nu4gU4GYJnY8bbfQ8cIuq7uxBHAmhqqoKVaWqqqrD9mAwyPCRI/jxH1fz+p6HGBwaxVPj7iErq/1b\nuAuK5nPerQtJDaRGu9rGmJNQpDd864GXvB9EJAjMBq4FbgBuArrNSiKSgvtG8G5grrf5fuAZ3JxB\nJ60dO3bwzjvvdNgWCAQYPnI4pamlPLz953zQuo3mlEbKU9bz+LNvce2lM9uOTUtNi3aVjTEnsWOZ\n2C0DmAMswCXuibh5/N/C3ROIxDBgHfBVVd3qlbsCeFJEslW1OuKaJ5i8vDzS0tKoqqqjsvIgBWPy\nCBTu4+Gyh2k45JZVzB3al5rqRkbkDGPw8K7LM8aYnugy+YvI6cBHvZ8ZQAawCZfs7wb+rKq1Ry+h\nI+8ewaW+8guA64C3T6bEX1NTQ1paGv369WvbFgwG2bu3P6+vLWNTaAsHGp5hQuqgDo8bXziKL864\nmnnjZlr3jjGmV3U11HMHkI8bz/8yrmvnhXCLvadE5EngIq/8ud0cnhBqampYv349FRUV5OfnM3ny\n5A77B5x+kJfffYoWWkiphsamAaT3SWVY/2EsHruYKSOm2I1cY0xUdNXyHw7sAX6Gu6n76glevOUO\nYDlwO7BKRCapatkJLD9q/EkfoLGxhb/+tYSiolPJyWlv3X+oYAy5+RkQgtxhfSkaMorFYxdzVv5Z\nlvSNMVHVVfJfgOvuWQTcBtT7xvy/oKrrevLEqvoBgIhcCmwHrsRdDBJG56QPsGXLPnaUHaD2UDPv\nvl/BvDntyf/UnFNZNOUcWkOtLBq7iA/nftjG6RtjYqKroZ6rcRO6LRORYbgLwULcPD8/8LqFVuEu\nBqtUdW93T+aVM1dVH/c9T72IbAJG9CiSKKqurmb9+vVUVlZ23JECDelNvNHyd3anltG0JpW5s8d1\nSPBfnPJFMoOZlvSNMTEV6VDPCuAR7wcRORN3IZgFPOyVE8lYxELgMRHZqKprvbIGAgL84lgrHwsl\nJSVs2LABgEOHWgkGA4QIUZ9RT/GhYnbmllO9dReD+qfTZ+xGWkOtpKa037ztm9Y3VlU3xpg2EQ/1\nBBCRQbgve00DzsUt8hIE/hZhEWuBV4Gfisi1QDNwD27cf0Ik/6FDh/LOO8WUlu6nel8dp0zNQFnH\n/ob9AASDAc6enEe/jHSmjjyLppYmMgOZMa61McZ01N1Qz7G4RD/d+z0e963cf+K+8PUj4OVIh3uq\naquIfAL4PvAH3NDRPwGzVfXA8QbRG0KhELt372bIkCEEAu03Y3Nycnh33V5KGzazPkV5f0cGIwsG\ntO3vm9aXRWNnM2/MPLLSs2JRdWOM6VZXQz13AzlAClCKS/bLgdU9mdNHVfcAVx3v43tbKBRi165d\nbNiwgdraWiZOnEhhYfvKWC2hFraNXst7JTsgBA0N7k+Yk5nDgqIFTB81nYxgRqyqb4wxEeluVs8X\ngZdUdVOU6hMzra2tlJWVsXHjRg4cOEBra4jy8jp27Hib664b2db6DwaCXHLu+eyufYz8/P6cPmIc\nC4sWMil/kg3XNMYkjK5G+1wSzYrESktLC6WlpWzatImDBw8C0Nzcyhtrt1ET2k1NSxNLq85n6ND2\nJYwXnDqfqoY9zC+aT1F20dGKNsaYuHVMN3xPJs3NzWzdupXNmzfT1NTUtr2qvopd9bsoyVS27K+i\nhVaeXVPMlUvPbTsmKz2La86+JhbVNsaYEyIpk38oFGLNmjXU1dWzZ89BAmmt1Af2suvgLmoza2nM\naaRPoJW0zQFGj8hi0ITK7gs1xpgEkpTJPyUlhdbWLF556z1qQ3toyqwl65QATcOa3O1tYPDgTOZN\nmMq8MXORwRLbChtjzAl20if/6upqqqurOyyLCFDaT9nKOipaa9m7v47JwWFkpqQxIH0AM0fNZFbh\nLLIzs2NUa2OM6V0nZfIPr4+7ceNGtm+vYPfug1xxxWCyswe2HTPnQ1N5+LUnqatrZnT+QMbnjmPh\n2PlMyp9EMHBS/lmMMabNSZXlWlpaKCsrY9OmTRw4cIDidZVs37uLhtQahr2Ux6eXLmg79pTsU/jo\nOWdTNGQ0c8fMYfgAWz3FGJM8Tork39TUxJYtW9i2bRuNjY3UNtZSfqCcHZSxL9hAVWsdr25Yz6dp\nT/4pKSncPvdrNsGaMSYpJXTyr6ysYdWqv7N58zbS+rSSM6qFXft3UddcRyglROuQZv5ZXUbWkD70\nPWX3YY+3xG+MSVYJnfyrq/ez9v33qE/dS0NjDblVGYSCIZoGNdHYvxECsKRoMnPGzGbKiCmxrq4x\nxsSNhE7+DQP3Ut63hGBzkIOhJnZnNpE+FPoE+zB9xHRmFc6icGChtfCNMaaThE7+E4ZOIG1EKo2H\n6hmYG2RkTj6zC2fzkYKPkJlm0ygbY8zRJHTyT0tN4+LpC9lTv4fZo2czNmestfKNMSYCCZ38AZaM\nX2IJ3xhjjlHCz0Fsid8YY45dorT8UwHKy497DRljjEkqvnyZeqT9iZL88wEuv/zyWNfDGGMSTT5w\n2IJciZL83wZmAruAlhjXxRhjEkEqLvG/faSdKaFQKLrVMcYYE3MJf8PXGGPMsbPkb4wxSciSvzHG\nJCFL/sYYk4Qs+RtjTBKKu6GeIrISCKrq1b5tVwDLgDHAP4DbVXWVb//1wIOdimpR1aDvmJuBm4Ch\nwF+A61V1QxzF0Af4LnA50A94BbhBVbckQgwichdw51GKu1NV745mDMf5GowB7gNmAQeBPwBfUdUa\n3zFx+xp4+8d6MUwDDgA/A76lqoeiFYOIDAP+EzgPyATeBG5V1X94+8/z9guwAVimqs/5Hp8L/Mh7\nfBPwc+Dr0Yqhp/X3lZMOvAXcq6qPdtoXtfPoaOKm5S8iKSJyN3Bdp+2XAb8A/heYBDwCPC0ic3yH\nfRh4GjemNfwzwlfG54BvArcC5+Le2M97L068xPAT4BLgM8BU3En3tIikJEgM36fj3z8fWAlU4hJQ\nVGI43vqLSBB4Fvc9kqnAJ4EZwEO+MuL6NRCRbOBVIAOYC1yGO6d+Eq0YRCQAPAGMAy7CXYT2AS+J\nyGARmYB7r/7Wi+Ep4EkROc1XzO+BPGA2cBXwr16dez2GE1R/RGSAV87EIzxHVM6j7sRFy19EinAJ\n4nSgtNPuZcCvVPW73v/Xi8iZuFbmy96204HVqnq0+R9uA1ao6u+85/sM7gtjnwR+FesYvMdeBcxX\n1dVeeV8AXgBOATbGewyqegDX0gyXNRW4FviYqpZ5m3s1hh6eR+O9n0tUdZ1X3gPAPb4y4vo1AK4E\n+gJLVXWvV97VwGsi8i1V3RqFGM7AXTwn+P6OVwB7gY8B04E3VPU73vF3iMgM4MvAtd55MwMo8j71\nviciXwEeEJG7VbWxl2PoUf294xfgLrg1HFmvn0eRiJeW/zRgO64Fv6XTvrG41ozfO8A0r7UGcBqw\n7kgFex8hx9F+ocBLVGtx3xo+UXoSw3nA7nDi9+qoqlqoqhsTJIY23qeV+4Dfq+rz3rZoxNCT+u8F\nWnEJKENEhuBazWujWP+exjAWKA4nft9+gFlRiqEU+Digvm2t3u9s73le7vSYl33PPxPY5u/u9PYP\nAM6MQgw9rT/ABbhPZdM6Fx7F86hbcdHy9/rDHgUQkc67dwIjO20bDfQBBnkflbKBRV6/cz9gDXCb\nqu4ECrzHlHUq40jlHreexIA7GTZ7LYBltPcD3qyqO0iMGPb4tl8InIXrwgrr9Rh6Un9V3SkiX8L1\n5V6Paxitw3U9QGK8BjuBC0QkoKqtvv0AuUTnNagC/thp8424bswXgG918/wFR9mPd0yz9+9eieEE\n1B9V/XL430d4DaNyHkUiLpJ/N34J3CIif8ZdLWcBn/P29cG1+sGdFJcCQ4DluD66s3AfgwEaOpXb\niOsbjYbuYsjCdTncCtzs1e27uBjOIDFi8LsJ+K2qbvRti3UMXdbf6+sdD7yI6+rJwt3H+LWILCT2\n9YfuX4PfAHcA3xORO3Gt5fuBQ97+qMcgIhfizuUVqrpORPp28/yH7VfVZhEJecdENYbjqH934uE8\nAhIj+d+Da7U8h5uoqBi4F/eC7FPVF0RkqKq2tTxFpBh3ZV0MbPU2d76Zkg7U9W7V23QZA+7CNRDX\nV7sFQESW4voBFwPbfHX2i6cYABCRAmAOMK/T4w96v2MVQ3f1vxz3SaVQVesARGQJbjbExbS3PuP2\nNfA+vXwK1998C+4ezDdwNx33EeXXQESuwt0wfxzXz41Xh66e/7D9IpIGpHjHRC2G46x/d2L9PmgT\nL33+R6WqTap6A64VM0JVJwL1QEX4TepP/N7/d+G6IUbi+k/BmxbaZziHf/TqFRHEUAbU+fs5VbUS\nqMIN6UuEGMIuwl201nQqIqYxRFD/jwAl/lhUdTPuPDo11vX36hPJe+EZVR2O614YihsmORR3EYta\nDCLyde+5VwL/4uuG2t7N8x9tP94xUYmhB/XvTszPo7C4T/4i8m0RWaaqjb7RPEtw/W+IyI0istNr\nHYQfU4g74Yu9JLqB9r5bRKQ/MBk3lj7mMeBu4vUTkQ/5HpOH68LalCAxhM0E1vjeLEDbxSxmMURQ\n/x3AOP9wOxHJBwYDG2Jd/0hiEJEZIvKSiKSq6i5VbfL21wF/jVYMInIb8G3gG6r6JVX1Tx38mv/5\nPXN9z/8aUCQiIzvt3w+8G40Yelj/LsXDeRSWCN0+W4H/EpEPgBJcf/I5wBe8/X8EvgP8TESW496s\n9wGvafuXX1YA3xeRjbgvxizHtU7/L05ieAV3AXjMG+JZB/wQN+Lg2QSJIWwSbiz6kcQyhq10Xf9H\ncB/tfyki38T1zf4AeBd4Pg7qH0kMJbgb7d8TkQeBM4EHgOWqWhuNGERkolfm/wAPeY2YsP1eff7m\n/Y0fw3W1neuL4XXgDdy9lhuA8BeuVngXs16N4QTUPxKxPo+ABGj5q+pPcf2aPwHexw2Bm6eq6u3f\nBCzEdfG8hfsCxvu4ESfhMlbiLhArcCdWH+B838kU6xhCXn3X4i5mf8H10S4M1zHeY/DJxw2bPFIZ\nMYshgtegDPepZQDuQvw0sBn4qHrfLI3318Dr/rzAiyN8P+BOVV3uK6O3Y7gUdz/i33AJzf9zs6p+\nAFwMLMVdWC8ELlBvTL33XrgYqMC9Dj8HfgrcHaUYelT/SMT6PAqzxVyMMSYJxX3L3xhjzIlnyd8Y\nY5KQJX9jjElClvyNMSYJWfI3xpgkZMnfGGOSkCV/k9REZKWIhERk8VH2X+jtvz3adTOmN9k4f5PU\nxK24VAyEgNO8udXD+wYC/8RN/TBNVVtiU0tjTjxr+Zukpqr7cSswjcJ9zd7vXiAHuNISvznZWMvf\nGEBEHgauwLXw3xSRWbg5829R1R/6jvs8bsm+ItwsjCtxC3SHfMd8AbgGtz5ACu7Tw7dV9Qlv/9W4\nuZuW4ZZgDACT1S2zaExUWMvfGOdm3HwyD4hIH+DHuAn37gsfICJ3AA/i5l+6ADfvzHfwrfMrIrfg\nFlD5DW4dgM/ilgF8zJslNCwTNxnYlbg5Y7b2VmDGHEkizOppTK9T1WoRuR54AliF6wb6eLhFLyLZ\nwH8A96vqv3sPe0FE6oF7ROR+b3K40cA9quq/IGwH3sStGfCEtzkA3KWqz/V+dMYczpK/MR5VfVJE\nHsfN7Hhtp9b4dNwye890WrD+adxyj3OBR1X1Rmi7WAhuIZj53rGdl7t894QHYUyELPkb09GfcMm/\nc4t8sPf7paM8bjiAiIzFTbk8F7cuawluznZw/f9+BzAmRiz5GxOZ8DrFn6J9XWi/MhFJxS2+Uwuc\nDbyvqoe8BUIuj0otjYmQJX9jIvM60AzkqervwhtFZAZwB/BVXMv+VODzqvp332MXeb9tgIWJG5b8\njYmAqlaIyA9xSyRm41ZbG437bkAVbjhnE26B7ptEpBL3CWARcKNXTL9o19uYo7GWiDGRWwZ8HdeF\n8xxuke8/4JZSbPRGBl0EVAK/BH6NW2P3Y8BG3PKKxsQF+5KXMcYkIWv5G2NMErLkb4wxSciSvzHG\nJCFL/sYYk4Qs+RtjTBKy5G+MMUnIkr8xxiQhS/7GGJOE/h9vxc/oxPPViQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "system.alpha = 0.025\n", + "system.beta = -0.0018\n", + "\n", + "run_simulation(system, update_func2)\n", + "plot_results(system, title='Quadratic model')\n", + "savefig('chap03-fig04.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To understand the quadratic model better, let's plot net growth as a function of population." + ] + }, + { + "cell_type": "code", + "execution_count": 477, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "pop_array = linspace(0.001, 15, 100)\n", + "net_growth_array = system.alpha * pop_array + system.beta * pop_array**2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like. Remember that the x axis is population now, not time.\n", + "\n", + "The function `sns.set` sets the style for the plots. I added a grid to this one to make it easier to read." + ] + }, + { + "cell_type": "code", + "execution_count": 478, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig05.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "sns.set(style='whitegrid', font_scale=1.5)\n", + "plot(pop_array, net_growth_array, '-')\n", + "decorate(xlabel='Population (billions)',\n", + " ylabel='Net growth (billions)',\n", + " legend=False)\n", + "savefig('chap03-fig05.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using `sns.set` to reset the plot style." + ] + }, + { + "cell_type": "code", + "execution_count": 479, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sns.set(style='white', font_scale=1.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the book we found that the net growth is 0 when the population is $-\\alpha/\\beta$:" + ] + }, + { + "cell_type": "code", + "execution_count": 480, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "13.88888888888889" + ] + }, + "execution_count": 480, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "-system.alpha / system.beta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is the equilibrium the population tends toward." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** In the book, I presented a different way to parameterize the quadratic model:\n", + "\n", + "$ \\Delta p = r p (1 - p / K) $\n", + "\n", + "where $r=\\alpha$ and $K=-\\alpha/\\beta$. Write a version of `update_func2` that implements this version of the model. Test it by computing system variables `r` and `K` equivalent to `alpha` and `beta`, and confirm that you get the same results. " + ] + }, + { + "cell_type": "code", + "execution_count": 482, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system.r = system.alpha\n", + "system.k = -system.alpha/system.beta" + ] + }, + { + "cell_type": "code", + "execution_count": 483, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func2(pop, t, system):\n", + " \n", + " net_growth = system.alpha * pop * (1-pop/ system.k)\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "code", + "execution_count": 484, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap03-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nCCHkwVHxJ4SQcYiKPyGEjENU/AkhZByi4k8IIePQqCv+CQkJePXVV5Xazp49i8WLF8Pb2xvPPfcc\nLly4oNR/4sQJuLm5KT2mTZumtM3Ro0cxa9YseHl5Yd26daioqBhVOfT29iIxMRGhoaHw8fHBxo0b\nUV1dPWZyOHDgwKD3YODx/vvvqz2Hh3kPqqursXnzZvj5+SEsLAzx8fFoa2tT2mY0vwcAUFFRgQ0b\nNsDPzw/h4eHYv38/+vv71ZqDVCrFK6+8grCwMPj5+WH9+vUoKSnh+jMyMrB06VLMmDEDTz/9NNLT\n05We39jYiK1bt8LPzw/BwcF499131ZrDcOMf0NvbiyVLluCrr74a1KfO42hIbJRQKBRs3759TCQS\nsd27d3PtqampzM3NjX300UesvLycHT9+nHl6erJLly5x2yQkJLDNmzcziUTCPRoaGrj+L774gvn4\n+LDvvvuOFRUVsU2bNrE5c+YwmUw2anLYuXMnCw8PZ7/99hsrLi5mq1evZosXL2YKhWJM5NDR0aH0\n+5dIJCwhIYEFBwczsVisthweNv6+vj42f/58Fhsby8rKylhOTg6bP38++8tf/sLtY7S/By0tLSwk\nJIStXr2aFRQUsKysLDZ//ny2a9cuteUgl8vZ888/z5YvX87y8/NZaWkp27JlCwsODmZNTU2stLSU\neXh4sIMHD7KysjKWlJTEpk+fzkpKSrh9rFixgq1cuZIVFhayX375hQUFBbH33ntPLTk8ivgZY6y9\nvZ39+c9/ZiKRiJ09e1apT13H0f2MiuJfVVXFYmJiWGBgIIuIiFA64JcsWcJ27NihtP2rr77KYmJi\nuJ9XrFjBkpOTh9z/3Llz2f79+7mfOzo6mLe3N/v6669HRQ5VVVVMJBKx3377jeu/ceMGi4iIYBUV\nFWMih9/Lzc1l7u7uLD09nWsb6RyGE39xcTETiUSsqKiI6z9+/Djz8fFRW/zDzeHIkSPMx8eHNTc3\nc/3Z2dlMJBKx6upqteRQUFDARCIRKysr49pkMhnz8vJiZ86cYa+99tqgYyYmJobFx8czxm4fNyKR\niFVVVXH9p0+fZj4+PlxxHMkchhs/Y4xduHCBzZkzh0VHR9+z+KvjOFLFqLjsk5ubC1tbW6SmpmLS\npElKfZWVlfDz81Nqmzp1KvLy8riPgmVlZXB2dr7nvhsbG1FRUYGAgDsreRkaGsLDwwPZ2dmjIoeM\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation(system, update_func2)\n", + "plot_results(system, title='Quadratic model')\n", + "savefig('chap03-fig04.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** On the Wikipedia page about world population estimates, the first table contains estimates for prehistoric populations. The following cells process this table and plot some of the results." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Select `table1`, which is the second table on the page." + ] + }, + { + "cell_type": "code", + "execution_count": 487, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Population Reference Bureau (1973–2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]Maddison (2008)[8]HYDE (2010)[citation needed]Tanton (1994)[9]Biraben (1980)[10]McEvedy & Jones (1978)[11]Thomlinson (1975)[12]Durand (1974)[13]Clark (1967)[14]
Year
-10000NaNNaNNaN2M[15]NaNNaN4.01–10MNaNNaN
-9000NaNNaNNaN4.NaNNaNNaNNaNNaNNaN
-80005.0NaNNaN5.NaNNaNNaNNaN5–10MNaN
-7000NaNNaNNaN8.NaNNaNNaNNaNNaNNaN
-6000NaNNaNNaN11.NaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " Population Reference Bureau (1973–2015)[6] \\\n", + "Year \n", + "-10000 NaN \n", + "-9000 NaN \n", + "-8000 5.0 \n", + "-7000 NaN \n", + "-6000 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \\\n", + "Year \n", + "-10000 NaN \n", + "-9000 NaN \n", + "-8000 NaN \n", + "-7000 NaN \n", + "-6000 NaN \n", + "\n", + " Maddison (2008)[8] HYDE (2010)[citation needed] Tanton (1994)[9] \\\n", + "Year \n", + "-10000 NaN 2M[15] NaN \n", + "-9000 NaN 4. NaN \n", + "-8000 NaN 5. NaN \n", + "-7000 NaN 8. NaN \n", + "-6000 NaN 11. NaN \n", + "\n", + " Biraben (1980)[10] McEvedy & Jones (1978)[11] Thomlinson (1975)[12] \\\n", + "Year \n", + "-10000 NaN 4.0 1–10M \n", + "-9000 NaN NaN NaN \n", + "-8000 NaN NaN NaN \n", + "-7000 NaN NaN NaN \n", + "-6000 NaN NaN NaN \n", + "\n", + " Durand (1974)[13] Clark (1967)[14] \n", + "Year \n", + "-10000 NaN NaN \n", + "-9000 NaN NaN \n", + "-8000 5–10M NaN \n", + "-7000 NaN NaN \n", + "-6000 NaN NaN " + ] + }, + "execution_count": 487, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table1 = tables[1]\n", + "table1.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Not all agencies and researchers provided estimates for the same dates. Again `NaN` is the special value that indicates missing data." + ] + }, + { + "cell_type": "code", + "execution_count": 488, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Population Reference Bureau (1973–2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]Maddison (2008)[8]HYDE (2010)[citation needed]Tanton (1994)[9]Biraben (1980)[10]McEvedy & Jones (1978)[11]Thomlinson (1975)[12]Durand (1974)[13]Clark (1967)[14]
Year
1913NaNNaN1793.NaNNaNNaNNaNNaNNaNNaN
1920NaN1860.01863.1912.NaNNaNNaNNaNNaN1968.
1925NaNNaNNaNNaNNaNNaN2000.0NaNNaNNaN
1930NaN2070.0NaN2092.NaNNaNNaNNaNNaN2145.
1940NaN2300.02299.2307.NaNNaNNaNNaNNaN2340.
\n", + "
" + ], + "text/plain": [ + " Population Reference Bureau (1973–2015)[6] \\\n", + "Year \n", + "1913 NaN \n", + "1920 NaN \n", + "1925 NaN \n", + "1930 NaN \n", + "1940 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \\\n", + "Year \n", + "1913 NaN \n", + "1920 1860.0 \n", + "1925 NaN \n", + "1930 2070.0 \n", + "1940 2300.0 \n", + "\n", + " Maddison (2008)[8] HYDE (2010)[citation needed] Tanton (1994)[9] \\\n", + "Year \n", + "1913 1793. NaN NaN \n", + "1920 1863. 1912. NaN \n", + "1925 NaN NaN NaN \n", + "1930 NaN 2092. NaN \n", + "1940 2299. 2307. NaN \n", + "\n", + " Biraben (1980)[10] McEvedy & Jones (1978)[11] Thomlinson (1975)[12] \\\n", + "Year \n", + "1913 NaN NaN NaN \n", + "1920 NaN NaN NaN \n", + "1925 NaN 2000.0 NaN \n", + "1930 NaN NaN NaN \n", + "1940 NaN NaN NaN \n", + "\n", + " Durand (1974)[13] Clark (1967)[14] \n", + "Year \n", + "1913 NaN NaN \n", + "1920 NaN 1968. \n", + "1925 NaN NaN \n", + "1930 NaN 2145. \n", + "1940 NaN 2340. " + ] + }, + "execution_count": 488, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table1.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Some of the estimates are in a form we can't read as numbers. We could clean them up by hand, but for simplicity I'll replace any value that has an `M` in it with `NaN`." + ] + }, + { + "cell_type": "code", + "execution_count": 489, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table1.replace('M', np.nan, regex=True, inplace=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, we'll replace the long column names with more convenient abbreviations." + ] + }, + { + "cell_type": "code", + "execution_count": 490, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table1.columns = ['prb', 'un', 'maddison', 'hyde', 'tanton', \n", + " 'biraben', 'mj', 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function plots selected estimates." + ] + }, + { + "cell_type": "code", + "execution_count": 491, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_prehistory(table):\n", + " \"\"\"Plots population estimates.\n", + " \n", + " table: DataFrame\n", + " \"\"\"\n", + " plot(table.prb, 'ro', label='PRB')\n", + " plot(table.un, 'co', label='UN')\n", + " plot(table.hyde, 'yo', label='HYDE')\n", + " plot(table.tanton, 'go', label='Tanton')\n", + " plot(table.biraben, 'bo', label='Biraben')\n", + " plot(table.mj, 'mo', label='McEvedy & Jones')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are the results. Notice that we are working in millions now, not billions." + ] + }, + { + "cell_type": "code", + "execution_count": 492, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\ngg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_prehistory(table1)\n", + "decorate(xlabel='Year', \n", + " ylabel='World population (millions)',\n", + " title='Prehistorical population estimates')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use `xlim` to zoom in on everything after Year 0." + ] + }, + { + "cell_type": "code", + "execution_count": 493, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nmjZtKrVr105tf3t7e+nGjRtyWXh4uGRvby+NHTtWLuvRo4fUqFEj+XX16tWlqVOnqsW+YMECyd3d\nXYqLi5MkSZLOnTsn2dnZSTt27JDrzJkzR7Kzs5OOHDmitu+UKVMkOzs76cSJE5IkSdLixYslOzs7\naeXKlWr1duzYIdnZ2Unnzp2TJEmSTpw4IdnZ2UnLly9Xqzd69Gjp888/l2JiYqSVK1dK9vb20t27\nd9XqzJ07V7Kzs5PPPXPb2mTU6dixo5SUlCSXz58/X7Kzs5NOnTolSZIk/fLLL5KdnZ30888/q+2/\nevVqyc7OTtq0aVO22ssqtszlmV/reu6SJEl2dnbSuHHj5NdhYWGSnZ2dtHjxYkmSJCk0NFSyt7eX\nhgwZIqWlpcn1rl69Ktnb20vDhw9X269BgwZSfHy8XG/fvn2SnZ2dtHXr1ix/vg8fPpQcHBykuXPn\nqpX/9ddf0ueffy7NmDFDra1r167JdZKSkqQOHTqo7Zvx+/SmzO/lHj16SHZ2dtKxY8fksk2bNkl2\ndnZS586d5bK0tDSpfv36UpcuXSRJkiSVSiW5uLhIPj4+au2/evVKcnR0lLy9veWyjPdzWFiY2nGb\nNGmi9jNKTk6WunfvLtWrV09+P+jyu1aQidt9+VSHDh2oW7cudevWxdXVlS5duhAcHIynpyejR49W\nq1u+fHlKliwpv/7zzz8JCwujSZMmxMTEEB0dTXR0NK9fv6ZRo0bcunVLbVi4jY0Nn3/+ufy6TJky\nmJub8/z58yzjK1WqFPv37ycwMFDuEB45ciQ7duzA2Ng4y/2OHTuGra2txhXa4MGDAQgODlYrr127\ndpZtAZw4cQI9PT169OihVj5u3Dh27dqFsbExAwYM4MyZM2pXn69fv0ZPL/3t/z7Dgvv06aM2cMXL\nywtIP7+Mf01MTPDw8FDbr2fPnpiYmMj1dG3vfX3Mcz9+/DiSJDFgwAD5tjNAjRo1+Oqrrzh58iQp\nKSlyeYMGDdRGsjk4OADw7NmzLI9x5MgR0tLScHNzk9+30dHRWFhYULVqVU6cOAGkv/8A5s2bx8WL\nF0lNTUWpVBIYGKjx+6ELAwMDvv76a/l1xYoVgfTbcxkUCgVlypSR49fX1+fs2bNMmzZNra0XL15g\nYmLy1p/tixcvuHDhAg0aNOD169fyecbGxtK0aVOeP3/O9evX5XN9n9+1gkLc7sun5syZg4WFBQB6\nenqYmppia2uLgYGBRt0SJUqovX748CEAs2fPZvbs2Vrbf/TokZzYMu8P6YM0kpOTs4xvypQpjBw5\nkgkTJjB58mScnJxo2rQpHTt2pGjRolnuFx4ervZhkMHS0hJTU1MiIiLeem6ZRUREUKJECUxMTDTa\ns7S0lF8nJyezYMECbt68ycOHDwkPD5f7rNLS0t56DG0yD4E3MzPDzMxMjj88PJxy5cpp3EZUKpWU\nK1dO4zzf1d6H+FjnntHvlPEB/iZbW1tOnz7Nixcv5DJzc3O1OhlJ+G3HzHjvdu3aVev2jJ+ni4sL\nPXv2ZOPGjfz++++YmZnh6upK27Ztadiwoc7nlMHMzIzChf/9OCxUqBCg+f4rVKiQ3NeUEc+JEycI\nDg7m/v37PHjwQO4rkt6yClLGs1sbN25k48aNWutERkYC7/+7VlCIJJVPubi4aAxBz0rGL1SGjA+B\nESNG4OTkpHWfSpUqyd9n/FWdHXXr1uX48ePy15kzZ5g5cybr1q0jMDBQ4wMqw9t+cdPS0jQ+1N8V\n25uDI7Jy8eJF+vbti5GREfXq1aNjx4589tlnPHz4UOOvYF1p68NKTU2V483ueb6rvay86/w/5rm/\n65wg/Twyhny/z/sqo53ly5dTpEiRt9adOHEinp6eHDp0iFOnTnHo0CH27t1Lly5dsn1ubyaoN715\nxZiZJEkMHjyY48ePU7NmTZydnenSpQu1a9emV69ebz1exv+bh4dHlv2+lStXBt7/d62gEEmqACpT\npgyA/MH0pmvXrhETE/POD4C3UalU3Lp1i1KlStG6dWtat25NWloaP//8M7Nnz2bfvn1ZzmJRpkwZ\n7t+/r1H+7Nkz4uLisLa2zlYspUuX5uzZs8THx6vd+rh58yZr165l0KBBLF68mCJFirBv3z61X+gV\nK1Zk61hvCgsLU0v00dHRvHr1ChsbGyD9PK9evUpycrJaAlKpVISHh6sNXNGlvYwPfJVKpbbf227J\nAh/13DP+aPq///s/atSoobbt/v37GBkZUaxYMeLi4rLddoaM9661tTVVq1ZV23by5En5ivn58+eE\nhoZSt25d+vfvT//+/Xnx4gVDhgxh27ZtjB07NsevMi5evMjx48cZPHgwI0aMkMtTUlJ4+fLlW5/n\nyzjPQoUKafyO3r17l/DwcAwNDT/od62gEH1SBZCjoyOWlpZs3LiR+Ph4uTwuLk6+bZD56is7Xrx4\nQZcuXVi5cqVcpqenR7Vq1eTv4d8rvDdv7zRq1Ih79+5x9OhRtTZXrVoFkO1bNQ0aNCAtLY3t27er\nlW/ZsoUDBw5gYWHBy5cvMTc3V/uQfvXqlTw8WZerscw2bdqkdmWRMQqvadOmAPLzbJs3b1bb75df\nfiE+Pl7jPN/VXsaty1u3bsl1UlJSOHz48FvjzM656+npvfVWXKNGjQBYvXq1Wqw3b97k7NmzNGjQ\n4K1XHrrIOMbKlSvVjnHr1i0GDRrE+vXrgfQh6r1795b7bQCKFy9OhQoVUCgU8nsw49/3uaX7Li9f\nvgT+veLJsG3bNhITE9X65zJfYVtZWeHo6EhQUJBa/3BycjLff/89w4cPJyUlRefftYJMXEkVQPr6\n+kyaNAkfHx/c3d359ttvMTAwYPv27Tx69Ii5c+dmeXtDFyVLlqRt27b88ssvJCYm4uzszMuXL9m0\naRMWFha0bNkSQB5mvHv3biRJokOHDnh7e3P48GFGjhxJt27dsLGx4dy5cxw+fJhmzZrRoEGDbMXi\n5uaGq6srfn5+hIaGUq1aNa5cucLOnTsZMmQIZmZm1K9fn9WrVzNixAhcXV159uwZv/32m3wV8mYi\n19X58+fp378/jRo14o8//mDXrl20b99eHmqfMc+in58fd+7cwdHRkRs3bhAYGIiTkxOdOnXKVnt1\n6tTB0tKSZcuWkZSURIkSJdi1a9c7Bz5k59zNzc25cOEC27Ztw9XVVaOtKlWq4OnpycaNG/Hy8qJJ\nkyY8e/aMjRs3Ympq+l4DFjKzs7OTj/Hy5UuaNGkiv7eMjY3lK5b27dvz888/M3DgQLp160bJkiW5\nceMGO3fupEOHDvJVdUZyXrx4MV988QV169b94BgzODs7Y2JiwsyZM4mIiKBYsWKcP3+e/fv3Y2Bg\noPGzBQgICKB+/fo0btyYSZMm0atXLzp27Ei3bt0wMzNj3759/PHHH4wePVr+/dHld60gE0mqgGrR\nogXFihVj+fLlLFu2DD09PapUqcLy5cvlv1Y/xPTp0ylXrhz79u1j3759GBoaUrduXXx8fORfSFtb\nWzw9PQkMDOT69et88cUXlC9fnq1bt7Jw4UL2799PbGws5cqV47vvvqN3797ZjkNPT49ly5axdOlS\n9uzZw+7duylfvjy+vr5069YNgGHDhpGamsr+/fs5fvw4VlZW1KtXjz59+tC6dWvOnTsnX7Ho6qef\n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\nyMhQ5s2bp8TGxip5eXlKenq60qNHD2XlypVKZmamsmLFCqVXr162oa1Wq1WZOHGi8uCDDyqpqam2\n+RRXD01tLiZPnlxtyLQzrt3HH3+s9OnTR/nqq6+UX375RXnyySeVkSNHNovh/ddez40bNyo9e/ZU\ndu7cqZw+fVr5/PPPlZiYGOXzzz9XFEWu59XS0tKUbt26KS+++KLd/Eej0djon81mn6QuXbqkvPHG\nG8rAgQOVfv36Kc8884ySn5/f2GG5rPPnzytz585V4uLilJiYGGXatGnKL7/8Ytv+zTffKHfffbfS\ns2dP5d5771X27dtXbf+cnBxl5syZSkxMjDJkyBDl7bffViwWS0OfRqO79ktVUZxz7davX6/Ex8cr\nffr0UX73u9/VOk+oqbn2elqtVuW9995TRo4cqfTs2VMZOXKk8umnn1bbR65nlbffflvp2rVrjT9r\n165VFKVxP5tS9FAIIYTLatbPpIQQQrg2SVJCCCFcliQpIYQQLkuSlBBCCJclSUoIIYTLkiQlhBDC\nZUmSEqKeLVy4kKioKLtqppft2bOHqKgo1q1b18CRCeH6ZJ6UEPWstLSUe+65B41Gw1dffYWPj49t\nW0lJCXfffTft2rXj008/pUWLFo0YqRCuR+6khKhnrVq14tVXX+XcuXMsX7682ra33nqLoqIilixZ\nIglKiBpIkhKiAQwbNoz77ruPjz76iCNHjgCg1+vZvn07c+fOJSIiwvbeTz75hISEBHr27Mntt9/O\npk2buLbD4+OPP+a+++4jJiaG3r17M378eP75z3/atm/fvp2+ffvy0UcfMXjwYAYNGsTZs2cb5mSF\ncCLp7hOigRQVFTF69GjatWvHxx9/zPjx4wkICGDr1q22VafXrl3LmjVrmDp1KvHx8Rw5coR169Yx\ndepUW32f999/n2XLlvHMM88QExNDYWEhGzduJCMjgz179hASEsL27dtZuHAhERERzJs3j4sXLzJu\n3LjGPH0hfpNmXfRQiIbk5+fHokWLmDVrFr/73e84d+4c69evtyWooqIiNmzYwKOPPsoLL7wAwNCh\nQ/Hy8uLtt99mypQptG3bluzsbKZPn84TTzxhO7ZOp+OBBx7gyJEj3HnnnQBYrVb+93//l9tuu63h\nT1YIJ5HuPiEa0B133MHo0aPR6/XMnz+f9u3b27YdOnQIk8nEiBEjqKystP38z//8D5WVlfz4448A\nvPzyy8yePZuioiJ++ukn/u///o9PPvkEwK6Cardu3Rru5ISoB3InJUQDGzp0KLt372bYsGHV2gsL\nCwGYOnVqjftdrnZ66tQpFi5cyP79+9FqtXTu3JnIyEgAu2dX3t7eTo5eiIYlSUoIF9G6dWsAVq5c\nSVhYmN32tm3bYrFYeOKJJ2jVqhU7duwgKioKd3d30tPT2bVrV0OHLES9k+4+IVxEnz59aNmyJXl5\nefTq1cv2YzKZWLFiBXl5eeTl5XH69GkmTpxIjx49cHev+j1z7969QNVzKCGaErmTEsJFtGnThilT\nprBs2TKKioro168f2dnZLF++HH9/f7p06ULLli3R6XRs2bKFoKAgWrVqxd69e/nwww8BKC8vb+Sz\nEMK55E5KCBcyb948Zs+eza5du5g+fTorVqxg+PDhbNmyBa1Wi0ajYd26dQQFBfH8888ze/Zsjh49\nyoYNG+jYsSMHDx5s7FMQwqlknpQQQgiXJXdSQgghXJYkKSGEEC5LkpQQQgiXJUlKCCGEy5IkJYQQ\nwmVJkhJCCOGyJEkJIYRwWZKkhBBCuKz/ByMlQGdaI70dAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_prehistory(table1)\n", + "decorate(xlim=[0, 2000], xlabel='Year', \n", + " ylabel='World population (millions)',\n", + " title='Prehistorical population estimates')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "See if you can find a model that fits these data well from Year -1000 to 1940, or from Year 0 to 1940.\n", + "\n", + "How well does your best model predict actual population growth from 1950 to the present?" + ] + }, + { + "cell_type": "code", + "execution_count": 496, + "metadata": {}, + "outputs": [], + "source": [ + "p0 = table1.tanton[1]\n", + "\n", + "prehistory = System(t0=1,\n", + " t_end=2016,\n", + " p0=p0\n", + " ,alpha=.00111)\n", + "\n", + "run_simulation(prehistory, update_func1b)" + ] + }, + { + "cell_type": "code", + "execution_count": 497, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\neMnNzU1q3769yvG2trbSjRs35LLQ0FDJ1tZWmjBhglzWq1cvqVmzZvLrWrVqSTNmzFCJfcmSJVLH\njh2luLg4SZIk6fz585KNjY20e/dueZ8FCxZINjY20tGjR1WOnT59umRjYyOdPHlSkiRJWr58uWRj\nYyOtXbtWZb/du3dLNjY20vnz5yVJkqSTJ09KNjY20urVq1X2GzdunPT5559LMTEx0tq1ayVbW1vp\n3r17KvssXLhQsrGxka/93bqzkrFPp06dpKSkJLl88eLFko2NjXT69GlJkiTp559/lmxsbKRNmzap\nHL9+/XrJxsZG2r59e67qyy62d8vffa3utUuSJNnY2EgTJ06UX4eEhEg2NjbS8uXLJUmSpODgYMnW\n1lYaMWKElJaWJu939epVydbWVvruu+9UjmvSpIkUHx8v73fw4EHJxsZG+u2337L9+T5+/Fiys7OT\nFi5cqFJ+584d6fPPP5dmz56tUte1a9fkfZKSkqQOHTqoHJvxeXrbu+/lXr16STY2NtLx48flsu3b\nt0s2NjZS165d5bK0tDSpcePGUrdu3SRJkiSlUik5ODhIHh4eKvW/evVKsre3l4YOHSqXZbyfQ0JC\nVM7bvHlzlZ9RcnKy1LNnT6lRo0by+0Gdz1pxJpr7iqgOHTrg5OSEk5MTzs7OdOvWjYCAAHr37s24\nceNU9q1UqRJly5aVX//zzz+EhITQvHlzYmJiiIyMJDIyktevX9OsWTNu3bqlMiy8SpUqfP755/Jr\nS0tLjI2NefnyZbbxlStXDj8/P/bs2SN3CI8ZM4bdu3djYGCQ7XHHjx/H2to60x3a8OHDAQgICFAp\nd3R0zLYugJMnT6KhoUGvXr1UyidOnMgff/yBgYEBQ4YM4ezZsyp3n69fv0ZDI/3t/yHDggcMGKAy\ncKV///5A+vVl/G1oaIi7u7vKcX369MHQ0FDeT936PlReXvuJEyeQJIkhQ4bIzc4AtWvX5ssvv+TU\nqVOkpKTI5U2aNFEZyWZnZwfAixcvsj3H0aNHSUtLw8XFRX7fRkZGYmpqSo0aNTh58iSQ/v4DWLRo\nERcvXiQ1NRUdHR327NmT6fOhDl1dXb766iv5tZWVFZDePJdBoVBgaWkpx6+trc25c+eYOXOmSl1R\nUVEYGhrm+LONioriwoULNGnShNevX8vXGRsbi5ubGy9fvuT69evytX7IZ624EM19RdSCBQswNTUF\n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\nKb5otmns2yf5NvHp9kEmk3HDDTfw5ZdfMn78eA4fPsyaNWvsPueIh563tzcREZdfZrjlllv485//\nTE1NDZ9//jk333wzTk5O1pnOkiVLmpytOzs7I5PJuLQu56UzpPHjx6NSqfjyyy/RarXExMTQv3//\nJm3Zs2cPkZGR3HvvvQC8/PLLzJo1izlz5lBVVcUf/vCHJo/TaDTo9Xr69OljZ+OljjqNmM1mmzFs\n6h5svDYXFxeio6PZsGGD3Wc8PRvytD399NPMnj2b7777jv379/PMM8/w6aefinpuXQBtjYEfj2ts\nSrgDuCqcSOoXxKAof5zaqIx7SgoULNUQdyYft9p66txdqOgTxqQFPXi5709/+pNdm9lsprCwkPPn\nzzN//vzf9cObqkM1fvx4xo8f3+wxAQEBbNy48bLnfeCBB3jggQd+l03tTaMXX3lqOcYCI4pQBb6T\nOs67r5FJkyYxb948/vGPfzBixAgbT79GoqKiSE9Pt2lbs2YN2dnZbNq0yeGflZycjFqt5rPPPuPg\nwYMsWbIEaHj4BgUFkZeXx4wZM6yf/+ijj8jIyGD58uXEx8ezZ88eTCaT9YF/qU0uLi7cdNNNfPXV\nV2i1Wm655ZZmbXFzc6Oqqor6+npcXFxQKpW8/vrrTJ48mV69ejVbwv7VV1/FZDJZr1ur1SKXy/H2\n9sbHxwcXFxcOHz5MbGys9ZhDhw41e75LiYmJYefOnfj4+ODt3RAjU1NTwxNPPMHcuXMJDQ3l7bff\n5tlnn7U6K/3rX//iscceo6ysDD8/P4d+jqBt0RtMpGUUcfxUKRbLhS9TTnIZg6MDGNYvEKWibcMx\nzMU/M6DyLDqzmnrJFW9zNaGVP2Eu1gDJbfqzugIOSXt9fb3dS5IkoqKiWL58uXXPQuAYXkleRC6J\nJPavsUQuiexwgYKGkAFvb282bNjQ5FIfNHw5SUtLY9OmTZw7d44vv/ySHTt22Mw2amtrKSkpafLV\nOEuQy+VMnTqVN998k379+tk8yB988EHee+89PvnkE86fP8+ePXtYsWKF1a39jjvuoLKykqVLl3Lq\n1Cn+9a9/NfnlZvr06fz444+kp6dz8803N3vdt956K9XV1Tz33HOcOnWKtLQ0nnnmGWJjYykrK+OJ\nJ55oMlyh0XV///79nDp1ivfee4+kpCTc3NxQKpXMmzePtWvXkpqaytmzZ9myZQv//ve/mTdvnkO/\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_prehistory(table1)\n", + "plot(prehistory.results, label='model')\n", + "decorate(xlim=[0, 2000], xlabel='Year', \n", + " ylabel='World population (millions)',\n", + " title='Prehistorical population estimates')" + ] + }, + { + "cell_type": "code", + "execution_count": 499, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n5agAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_estimates(table2)\n", + "plot(prehistory.results/100, label='model')\n", + "decorate(xlim=[0, 2000], xlabel='Year', \n", + " ylabel='World population (millions)',\n", + " title='Prehistorical population estimates')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/chap04-fig01.pdf b/code/chap04-fig01.pdf new file mode 100644 index 00000000..3933cb74 Binary files /dev/null and b/code/chap04-fig01.pdf differ diff --git a/code/chap04mine.ipynb b/code/chap04mine.ipynb new file mode 100644 index 00000000..6b212693 --- /dev/null +++ b/code/chap04mine.ipynb @@ -0,0 +1,1126 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 4: Predict\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# To switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Functions from the previous chapter" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_estimates(table):\n", + " \"\"\"Plot world population estimates.\n", + " \n", + " table: DataFrame with columns `un` and `census`\n", + " \"\"\"\n", + " un = table.un / 1e9\n", + " census = table.census / 1e9\n", + " \n", + " plot(census, ':', color='darkblue', label='US Census')\n", + " plot(un, '--', color='green', label='UN DESA')\n", + " \n", + " decorate(xlabel='Year',\n", + " ylabel='World population (billion)')" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(system):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " system: System object with `results`\n", + " \"\"\"\n", + " newfig()\n", + " plot_estimates(table2)\n", + " plot(system.results, '--', color='gray', label='model')\n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)')" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Run a model.\n", + " \n", + " Adds TimeSeries to `system` as `results`.\n", + "\n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \"\"\"\n", + " results = Series([])\n", + " results[system.t0] = system.p0\n", + " for t in linrange(system.t0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " system.results = results" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### Reading the data" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# The data directory contains a downloaded copy of\n", + "# https://en.wikipedia.org/wiki/World_population_estimates\n", + "\n", + "from pandas import read_html\n", + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')" + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": { + "collapsed": true, + "scrolled": true + }, + "outputs": [], + "source": [ + "table2 = tables[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 155, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot_estimates(table2)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### Running the quadratic model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the update function for the quadratic growth model with parameters `alpha` and `beta`." + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func2(pop, t, system):\n", + " \"\"\"Update population based on a quadratic model.\n", + " \n", + " pop: current population in billions\n", + " t: what year it is\n", + " system: system object with model parameters\n", + " \"\"\"\n", + " net_growth = system.alpha * pop + system.beta * pop**2\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Select the estimates generated by the U.S. Census, and convert to billions." + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "census = table2.census / 1e9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Extract the starting time and population." + ] + }, + { + "cell_type": "code", + "execution_count": 159, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "t0 = census.index[0]\n", + "p0 = census[t0]\n", + "t_end = census.index[-1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initialize the system object." + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
t01950.000000
t_end2015.000000
p02.557629
alpha0.025000
beta-0.001800
\n", + "
" + ], + "text/plain": [ + "t0 1950.000000\n", + "t_end 2015.000000\n", + "p0 2.557629\n", + "alpha 0.025000\n", + "beta -0.001800\n", + "dtype: float64" + ] + }, + "execution_count": 160, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(t0=t0, \n", + " t_end=t_end,\n", + " p0=p0,\n", + " alpha=0.025,\n", + " beta=-0.0018)\n", + "\n", + "system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the model and plot results." + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "run_simulation(system, update_func2)\n", + "plot_results(system)\n", + "decorate(title='Quadratic model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generating projections" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To generate projections, all we have to do is change `t_end`" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap04-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "system.t_end = 2250\n", + "run_simulation(system, update_func2)\n", + "plot_results(system)\n", + "decorate(title='World population projection')\n", + "savefig('chap04-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The population in the model converges on the equilibrium population, `-alpha/beta`" + ] + }, + { + "cell_type": "code", + "execution_count": 163, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "13.856665141368708" + ] + }, + "execution_count": 163, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results[system.t_end]" + ] + }, + { + "cell_type": "code", + "execution_count": 164, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "13.888888888888889" + ] + }, + "execution_count": 164, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "-system.alpha / system.beta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** What happens if we start with an initial population above the carrying capacity, like 20 billion? The the model with initial populations between 1 and 20 billion, and plot the results on the same axes." + ] + }, + { + "cell_type": "code", + "execution_count": 165, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "p0_array=linspace(1,20,150)\n", + "\n", + "for system.p0 in p0_array:\n", + " run_simulation(system,update_func2)\n", + " plot(system.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Comparing projections" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can compare the projection from our model with projections produced by people who know what they are doing." + ] + }, + { + "cell_type": "code", + "execution_count": 166, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
United States Census Bureau (2015)[18]Population Reference Bureau (1973-2015)[6]United Nations Department of Economic and Social Affairs (2015)[7]
Year
20167.334772e+09NaN7.432663e+09
20177.412779e+09NaNNaN
20187.490428e+09NaNNaN
20197.567403e+09NaNNaN
20207.643402e+09NaN7.758157e+09
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2015)[18] \\\n", + "Year \n", + "2016 7.334772e+09 \n", + "2017 7.412779e+09 \n", + "2018 7.490428e+09 \n", + "2019 7.567403e+09 \n", + "2020 7.643402e+09 \n", + "\n", + " Population Reference Bureau (1973-2015)[6] \\\n", + "Year \n", + "2016 NaN \n", + "2017 NaN \n", + "2018 NaN \n", + "2019 NaN \n", + "2020 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[7] \n", + "Year \n", + "2016 7.432663e+09 \n", + "2017 NaN \n", + "2018 NaN \n", + "2019 NaN \n", + "2020 7.758157e+09 " + ] + }, + "execution_count": 166, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table3 = tables[3]\n", + "table3.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`NaN` is a special value that represents missing data, in this case because some agencies did not publish projections for some years." + ] + }, + { + "cell_type": "code", + "execution_count": 167, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "table3.columns = ['census', 'prb', 'un']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function plots projections from the UN DESA and U.S. Census. It uses `dropna` to remove the `NaN` values from each series before plotting it." + ] + }, + { + "cell_type": "code", + "execution_count": 168, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_projections(table):\n", + " \"\"\"Plot world population projections.\n", + " \n", + " table: DataFrame with columns 'un' and 'census'\n", + " \"\"\"\n", + " census = table.census / 1e9\n", + " un = table.un / 1e9\n", + " \n", + " plot(census.dropna(), ':', color='darkblue', label='US Census')\n", + " plot(un.dropna(), '--', color='green', label='UN DESA')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the model until 2100, which is as far as the other projections go." + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system.p0 = census[t0]\n", + "system.t_end = 2100\n", + "run_simulation(system, update_func2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap04-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nC/UAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system)\n", + "plot_projections(table3)\n", + "decorate(title='World population projections')\n", + "savefig('chap04-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "People who know what they are doing expect the growth rate to decline more sharply than our model projects." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose there are two banks across the street from each other, The First Geometric Bank (FGB) and Exponential Savings and Loan (ESL). They offer the same interest rate on checking accounts, 3%, but at FGB, they compute and pay interest at the end of each year, and at ESL they compound interest continuously.\n", + "\n", + "If you deposit $p_0$ dollars at FGB at the beginning of Year 0, the balanace of your account at the end of Year $n$ is\n", + "\n", + "$ x_n = p_0 (1 + \\alpha)^n $\n", + "\n", + "where $\\alpha = 0.03$. At ESL, your balance at any time $t$ would be\n", + "\n", + "$ x(t) = p_0 \\exp(\\alpha t) $\n", + "\n", + "If you deposit \\$1000 at each back at the beginning of Year 0, how much would you have in each account after 10 years?\n", + "\n", + "Is there an interest rate FGB could pay so that your balance at the end of each year would be the same at both banks? What is it?\n", + "\n", + "Hint: `modsim` provides a function called `exp`, which is a wrapper for the NumPy function `exp`." + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": {}, + "outputs": [], + "source": [ + "alpha=.03\n", + "p0=1000\n", + "ts=linrange(101)" + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0., 1030., 2060., 3090., 4120., 5150.,\n", + " 6180., 7210., 8240., 9270., 10300., 11330.,\n", + " 12360., 13390., 14420., 15450., 16480., 17510.,\n", + " 18540., 19570., 20600., 21630., 22660., 23690.,\n", + " 24720., 25750., 26780., 27810., 28840., 29870.,\n", + " 30900., 31930., 32960., 33990., 35020., 36050.,\n", + " 37080., 38110., 39140., 40170., 41200., 42230.,\n", + " 43260., 44290., 45320., 46350., 47380., 48410.,\n", + " 49440., 50470., 51500., 52530., 53560., 54590.,\n", + " 55620., 56650., 57680., 58710., 59740., 60770.,\n", + " 61800., 62830., 63860., 64890., 65920., 66950.,\n", + " 67980., 69010., 70040., 71070., 72100., 73130.,\n", + " 74160., 75190., 76220., 77250., 78280., 79310.,\n", + " 80340., 81370., 82400., 83430., 84460., 85490.,\n", + " 86520., 87550., 88580., 89610., 90640., 91670.,\n", + " 92700., 93730., 94760., 95790., 96820., 97850.,\n", + " 98880., 99910., 100940., 101970., 103000., 104030.])" + ] + }, + "execution_count": 172, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "FGB=p0*(1+alpha)*ts\n", + "FGB" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1000. , 1030.45453395, 1061.83654655, 1094.17428371,\n", + " 1127.49685158, 1161.83424273, 1197.21736312, 1233.67805996,\n", + " 1271.24915032, 1309.96445073, 1349.85880758, 1390.96812846,\n", + " 1433.32941456, 1476.98079388, 1521.96155562, 1568.31218549,\n", + " 1616.07440219, 1665.29119495, 1716.00686218, 1768.26705143,\n", + " 1822.11880039, 1877.61057926, 1934.7923344 , 1993.71553324,\n", + " 2054.43321064, 2117.00001661, 2181.4722655 , 2247.90798668,\n", + " 2316.36697678, 2386.91085352, 2459.60311116, 2534.50917762,\n", + " 2611.69647342, 2691.23447235, 2773.19476396, 2857.65111806,\n", + " 2944.67955107, 3034.35839444, 3126.76836519, 3221.99263853,\n", + " 3320.11692274, 3421.22953629, 3525.42148737, 3632.78655575,\n", + " 3743.42137726, 3857.4255307 , 3974.90162749, 4095.95540407,\n", + " 4220.695817 , 4349.23514106, 4481.68907034, 4618.1768223 ,\n", + " 4758.82124514, 4903.74892833, 5053.09031656, 5206.97982718,\n", + " 5365.55597112, 5528.96147762, 5697.34342267, 5870.85336138,\n", + " 6049.64746441, 6233.88665852, 6423.73677143, 6619.36868104,\n", + " 6820.95846929, 7028.68758059, 7242.74298516, 7463.31734732,\n", + " 7690.60919888, 7924.82311785, 8166.16991257, 8414.86681144,\n", + " 8671.13765846, 8935.2131147 , 9207.33086588, 9487.73583636,\n", + " 9776.68040953, 10074.42465501, 10381.23656273, 10697.39228411,\n", + " 11023.17638064, 11358.88208 , 11704.81153998, 12061.27612044,\n", + " 12428.59666358, 12807.10378266, 13197.13815966, 13599.05085183,\n", + " 14013.20360773, 14439.9691928 , 14879.73172487, 15332.88701991,\n", + " 15799.84294826, 16281.01980179, 16776.85067214, 17287.78184057,\n", + " 17814.27317961, 18356.79856702, 18915.84631226, 19491.91959603,\n", + " 20085.53692319, 20697.23258939])" + ] + }, + "execution_count": 173, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ESL=p0*exp(alpha*ts)\n", + "ESL" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.030454533953516938" + ] + }, + "execution_count": 174, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "common_intrest=exp(alpha)-1\n", + "common_intrest" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1000. , 1030.45453395, 1061.83654655, 1094.17428371,\n", + " 1127.49685158, 1161.83424273, 1197.21736312, 1233.67805996,\n", + " 1271.24915032, 1309.96445073, 1349.85880758, 1390.96812846,\n", + " 1433.32941456, 1476.98079388, 1521.96155562, 1568.31218549,\n", + " 1616.07440219, 1665.29119495, 1716.00686218, 1768.26705143,\n", + " 1822.11880039, 1877.61057926, 1934.7923344 , 1993.71553324,\n", + " 2054.43321064, 2117.00001661, 2181.4722655 , 2247.90798668,\n", + " 2316.36697678, 2386.91085352, 2459.60311116, 2534.50917762,\n", + " 2611.69647342, 2691.23447235, 2773.19476396, 2857.65111806,\n", + " 2944.67955107, 3034.35839444, 3126.76836519, 3221.99263853,\n", + " 3320.11692274, 3421.22953629, 3525.42148737, 3632.78655575,\n", + " 3743.42137726, 3857.4255307 , 3974.90162749, 4095.95540407,\n", + " 4220.695817 , 4349.23514106, 4481.68907034, 4618.1768223 ,\n", + " 4758.82124514, 4903.74892833, 5053.09031656, 5206.97982718,\n", + " 5365.55597112, 5528.96147762, 5697.34342267, 5870.85336138,\n", + " 6049.64746441, 6233.88665852, 6423.73677143, 6619.36868104,\n", + " 6820.95846929, 7028.68758059, 7242.74298516, 7463.31734732,\n", + " 7690.60919888, 7924.82311785, 8166.16991257, 8414.86681144,\n", + " 8671.13765846, 8935.2131147 , 9207.33086588, 9487.73583636,\n", + " 9776.68040953, 10074.42465501, 10381.23656273, 10697.39228411,\n", + " 11023.17638064, 11358.88208 , 11704.81153998, 12061.27612044,\n", + " 12428.59666358, 12807.10378266, 13197.13815966, 13599.05085183,\n", + " 14013.20360773, 14439.9691928 , 14879.73172487, 15332.88701991,\n", + " 15799.84294826, 16281.01980179, 16776.85067214, 17287.78184057,\n", + " 17814.27317961, 18356.79856702, 18915.84631226, 19491.91959603,\n", + " 20085.53692319, 20697.23258939])" + ] + }, + "execution_count": 175, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "FGB2=p0*(1+common_intrest)**ts\n", + "FGB2" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nREREVu3/A7qm8q1x2Ww1AAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot(ts,FGB2,'-')\n", + "plot(ts,ESL,'s')" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose a new bank opens called the Polynomial Credit Union (PCU). In order to compete with First Geometric Bank and Exponential Savings and Loan, PCU offers a parabolic savings account where the balance is a polynomial function of time:\n", + "\n", + "$ x(t) = p_0 + \\beta_1 t + \\beta_2 t^2 $\n", + "\n", + "As a special deal, they offer an account with $\\beta_1 = 30$ and $\\beta_2 = 0.5$, with those parameters guaranteed for life.\n", + "\n", + "Suppose you deposit \\$1000 at all three banks at the beginning of Year 0. How much would you have in each account at the end of Year 10? How about Year 20? And Year 100?" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "p0=1000\n", + "beta1=30\n", + "beta2=.5" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "ts=linrange(101)" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1000. , 1030.5, 1062. , 1094.5, 1128. , 1162.5, 1198. ,\n", + " 1234.5, 1272. , 1310.5, 1350. , 1390.5, 1432. , 1474.5,\n", + " 1518. , 1562.5, 1608. , 1654.5, 1702. , 1750.5, 1800. ,\n", + " 1850.5, 1902. , 1954.5, 2008. , 2062.5, 2118. , 2174.5,\n", + " 2232. , 2290.5, 2350. , 2410.5, 2472. , 2534.5, 2598. ,\n", + " 2662.5, 2728. , 2794.5, 2862. , 2930.5, 3000. , 3070.5,\n", + " 3142. , 3214.5, 3288. , 3362.5, 3438. , 3514.5, 3592. ,\n", + " 3670.5, 3750. , 3830.5, 3912. , 3994.5, 4078. , 4162.5,\n", + " 4248. , 4334.5, 4422. , 4510.5, 4600. , 4690.5, 4782. ,\n", + " 4874.5, 4968. , 5062.5, 5158. , 5254.5, 5352. , 5450.5,\n", + " 5550. , 5650.5, 5752. , 5854.5, 5958. , 6062.5, 6168. ,\n", + " 6274.5, 6382. , 6490.5, 6600. , 6710.5, 6822. , 6934.5,\n", + " 7048. , 7162.5, 7278. , 7394.5, 7512. , 7630.5, 7750. ,\n", + " 7870.5, 7992. , 8114.5, 8238. , 8362.5, 8488. , 8614.5,\n", + " 8742. , 8870.5, 9000. , 9130.5])" + ] + }, + "execution_count": 182, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "PCU=p0 + beta1 * ts + beta2 *ts **2\n", + "PCU" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_results():\n", + " newfig()\n", + " plot(ts,FGB2,'-',label='FGB2')\n", + " plot(ts,ESL,'s',label='ESL')\n", + " plot(ts,PCU,'o',label='PCU')\n", + " decorate(xlabel='Year', ylabel='Total Accumulated')" + ] + }, + { + "cell_type": "code", + "execution_count": 186, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nO++8Ac9ZsGDBgGUAyWSSn//85wAcc8wxAOy8887svPPOvc679dZbmT17Nnvssccoa62UGg3XddnS\n3NM6qq8e/Zp1A9GAVGIvvr51QoIRQCqd5cXXtw47ID3wwAP87ne/63XsQx/6EOeeey7ZbJaGhoZe\nZZ///Od5+umn8+8PPvhgbrvttvz70047jUDA9g7H43Gy2SwXXHABM2bM6Pf+1157LY8//jg/+tGP\nerWalFLjJ5dZ196VZEPc5pA5AG6UnSjNH4oakErsgD2bJrSFdMCeTcP+3NFHH82Xv/zlXseqqqqo\nra3FcRxaWlp6lV122WXE43au8XXXXUdzc3Ov8quuuop99tkHgK6uLp5++mmuvfZaAM4444z8eZlM\nhssvv5zly5dz6aWX9snQU0qNLxfYsqMns66xNsa8mVVjmlnnpwGpxA6UWWPWZTZeqqur2WWXXfot\n22effXjuued6HZs9e3avzxYGpFmzZvW63t57782aNWtYtmxZPiAlEgnOPfdcVqxYwTXXXMNxxx03\nVo+jlBqhts4k3YkMAIGAM6arMvRHN+hTw/LZz36WJ554gpUrV/Ypc12XLVu2FHUd13VxXTsNLJvN\ncu6557Jy5Up+/OMfazBSqgzkWkc5jbUxwsHShgxtIalhOf7443nhhRc488wzOeOMMzjqqKOora1l\n1apV3H777Tz33HOcffbZvT7T2trK1q1bAUin0zz11FP89re/5ZOf/CQAv/jFL3jsscf41re+xV57\n7ZU/F6C+vp5wODx+D6iUAmBHe5xE0raOggFnzFb0HowGJDVsl156Ke973/tYvnw59957L62trcya\nNYt3v/vdfOMb38iPF+WcddZZ+dfhcJiddtqJk08+mXPOOQeA3/72t4CdcFvo7rvv5pBDDinh0yil\nCqXSWbb61qybWV9BMFD63Xk0IKlecinZQznyyCM58sgjBz1n/vz5GGMGPQfg3nvvLeqeSqnSymXW\nbW3pZlvaLiEacBwCqQhNJcqs89OApJRSKi+Tddnm2w123swqGmtiJcus89OkBqWUUnlbW7rJZG3C\nUTQSpKFm/LaJ04CklFIKgGQ6S3Nrz9jRrIZKSj9y1EMDklJKKQC2NHfhNY6ojIWorYqM6/01ICml\nlGJzcxctHYn8+zmNVePaOgJNalBKqWkrl1XnAm9uaKOVjQBEQgEqY/2vNVlKGpCUUmqaa+9K0hlP\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results()" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/chap05mine.ipynb b/code/chap05mine.ipynb new file mode 100644 index 00000000..98c16059 --- /dev/null +++ b/code/chap05mine.ipynb @@ -0,0 +1,2042 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 5: Design\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# To switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### SIR implementation\n", + "\n", + "We'll use a `State` object to represent the number or fraction of people in each compartment." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
S89
I1
R0
\n", + "
" + ], + "text/plain": [ + "S 89\n", + "I 1\n", + "R 0\n", + "dtype: int64" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(S=89, I=1, R=0)\n", + "init" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To convert from number of people to fractions, we divide through by the total." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
S0.988889
I0.011111
R0.000000
\n", + "
" + ], + "text/plain": [ + "S 0.988889\n", + "I 0.011111\n", + "R 0.000000\n", + "dtype: float64" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init /= sum(init)\n", + "init" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`make_system` creates a `System` object with the given parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(beta, gamma):\n", + " \"\"\"Make a system object for the SIR model.\n", + " \n", + " beta: contact rate in days\n", + " gamma: recovery rate in days\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " init = State(S=89, I=1, R=0)\n", + " init /= sum(init)\n", + "\n", + " t0 = 0\n", + " t_end = 7 * 14\n", + "\n", + " return System(init=init, t0=t0, t_end=t_end,\n", + " beta=beta, gamma=gamma)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an example with hypothetical values for `beta` and `gamma`." + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
initS 0.988889\n", + "I 0.011111\n", + "R 0.000000\n", + "dtyp...
t00
t_end98
beta0.333333
gamma0.25
\n", + "
" + ], + "text/plain": [ + "init S 0.988889\n", + "I 0.011111\n", + "R 0.000000\n", + "dtyp...\n", + "t0 0\n", + "t_end 98\n", + "beta 0.333333\n", + "gamma 0.25\n", + "dtype: object" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "system = make_system(beta, gamma)\n", + "system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The update function takes the state during the current time step and returns the state during the next time step." + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update1(state, system):\n", + " \"\"\"Update the SIR model.\n", + " \n", + " state: State with variables S, I, R\n", + " system: System with beta and gamma\n", + " \n", + " returns: State object\n", + " \"\"\"\n", + " s, i, r = state\n", + "\n", + " infected = system.beta * i * s \n", + " recovered = system.gamma * i\n", + " \n", + " s -= infected\n", + " i += infected - recovered\n", + " r += recovered\n", + " \n", + " return State(S=s, I=i, R=r)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To run a single time step, we call it like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
S0.985226
I0.011996
R0.002778
\n", + "
" + ], + "text/plain": [ + "S 0.985226\n", + "I 0.011996\n", + "R 0.002778\n", + "dtype: float64" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = update1(init, system)\n", + "state" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run a simulation by calling the update function for each time step." + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \n", + " returns: State object for final state\n", + " \"\"\"\n", + " state = system.init\n", + " for t in linrange(system.t0, system.t_end):\n", + " state = update_func(state, system)\n", + " return state" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is the state of the system at `t_end`" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
S0.520453
I0.000615
R0.478933
\n", + "
" + ], + "text/plain": [ + "S 0.520453\n", + "I 0.000615\n", + "R 0.478933\n", + "dtype: float64" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(system, update1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise** Suppose the time between contacts is 4 days and the recovery time is 5 days. After 14 weeks, how many students, total, have been infected?\n", + "\n", + "Hint: what is the change in `S` between the beginning and the end of the simulation?" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.37943042989926101" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tc = 4 # time between contacts in days \n", + "tr = 5 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "system = make_system(beta, gamma)\n", + "\n", + "s0=system.init.S\n", + "\n", + "final=run_simulation(system, update1)\n", + "\n", + "sf=final.S\n", + "\n", + "Change_S=s0-sf\n", + "\n", + "Change_S" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using Series objects" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we want to store the state of the system at each time step, we can use one `TimeSeries` object for each state variable." + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " Add three Series objects to the System: S, I, R\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \"\"\"\n", + " S = TimeSeries()\n", + " I = TimeSeries()\n", + " R = TimeSeries()\n", + "\n", + " state = system.init\n", + " t0 = system.t0\n", + " S[t0], I[t0], R[t0] = state\n", + " \n", + " for t in linrange(system.t0, system.t_end):\n", + " state = update_func(state, system)\n", + " S[t+1], I[t+1], R[t+1] = state\n", + " \n", + " system.S = S\n", + " system.I = I\n", + " system.R = R" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we call it." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "system = make_system(beta, gamma)\n", + "run_simulation(system, update1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then we can plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(S, I, R):\n", + " \"\"\"Plot the results of a SIR model.\n", + " \n", + " S: TimeSeries\n", + " I: TimeSeries\n", + " R: TimeSeries\n", + " \"\"\"\n", + " plot(S, '--', color='blue', label='Susceptible')\n", + " plot(I, '-', color='red', label='Infected')\n", + " plot(R, ':', color='green', label='Recovered')\n", + " decorate(xlabel='Time (days)',\n", + " ylabel='Fraction of population')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what they look like." + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\ne236ks8bQQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(system.S, system.I, system.R)\n", + "savefig('chap05-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using a DataFrame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Instead of making three `TimeSeries` objects, we can use one `DataFrame`.\n", + "\n", + "We have to use `loc` to indicate which row we want to assign the results to. But then Pandas does the right thing, matching up the state variables with the columns of the `DataFrame`." + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " Add a DataFrame to the System: results\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \"\"\"\n", + " frame = DataFrame(columns=system.init.index)\n", + " frame.loc[system.t0] = system.init\n", + " \n", + " for t in linrange(system.t0, system.t_end):\n", + " frame.loc[t+1] = update_func(frame.loc[t], system)\n", + " \n", + " system.results = frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it, and what the result looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SIR
00.9888890.0111110.000000
10.9852260.0119960.002778
20.9812870.0129360.005777
30.9770550.0139340.009011
40.9725170.0149880.012494
\n", + "
" + ], + "text/plain": [ + " S I R\n", + "0 0.988889 0.011111 0.000000\n", + "1 0.985226 0.011996 0.002778\n", + "2 0.981287 0.012936 0.005777\n", + "3 0.977055 0.013934 0.009011\n", + "4 0.972517 0.014988 0.012494" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "sir = make_system(beta, gamma)\n", + "run_simulation(system, update1)\n", + "system.results.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can extract the results and plot them." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZUAAAETCAYAAAD+spv+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VFX6wPHvpBeSkIQaOgkepIciUiJNFBTEhg1RUVzb\nroqy0iyAKAqWXWVZ1hULYi/YYFVAQUVF/KEISg7NgEAEQ4AkkD7z++PMJFOScANJJgnv53nOMzP3\n3rnzhjJvTrc5HA6EEEKIqhDg7wCEEELUH5JUhBBCVBlJKkIIIaqMJBUhhBBVRpKKEEKIKiNJRQgh\nRJUJ8ueHK6UWAUFa64kVXNMb+CeQDOwDHtZaL6mhEIUQQlSCX2oqSimbUmo2cMsJrmsMfApsBHoC\nzwCLlVLnVX+UQgghKqvGaypKqfbAYqALsOcEl08EjgJ3aa3tQKpSqicwGfisgs8IBfoA6UBxVcQt\nhBCngUCgObBBa51/MjfwR/NXf+B34GrgjRNcmwJ86UwoLmuAhUopm9a6vOUA+gBfnWqgQghxmkoB\nvj6ZN9Z4UtFaLwWWAiilTnR5S+BHr2P7gQggHsgo533pAK+++irNmjU76ViFEOJ08scffzBu3Dhw\nfoeeDL921FsQAeR5HXNVycIqeF8xQLNmzWjZsmV1xCWEEPXZSXcb1PakkguEeh1zvT52MjdMT4eX\nXoKkJOjQwZTIyFMJUQghhEttTyq/YzqN3CUAOZgO/Erbvh3S0kxZtQpsNmjRAjp2BKVMCfVOY0II\nISyp7Unla2CCV6f8EGCdV+e9ZTt2eL52OGDvXlNWrYLAQEhMhE6doEcPaO6d0oQQQpSrViUVpVQI\nEAdkaq0LMEOP7wMWKaX+AZwLXAOMONnPuPJK6N3b1Fi2b4fdu8Hulp6Ki2HbNlOOHIGrrz6Vn0gI\nIU4vtSqpYIYbf4GpjazRWh9QSo3ATHr8EdgNXKe1/vxkPyAyErp1MwUgL8/UXlJTYetWU2Nx6drV\n9/0rV0JcHHTpIs1kQgjhza9JRWs92Ov1GsDmdew74KzqiiEszCSILl3M66NHTXL59VfTv+IuPx8+\n+AAKCyEkxCSmXr1M8gkOrq4IhRCi7qhtNRW/i4mBs882xduvv5qEAlBQAD/8YEp4uEkuZ59tRpXZ\nbL7vFUKI04EklUpo1QpGjYL/+z8zNNklNxe+/tqURo1gwADo1w9iY/0XqxBC+IMklUpo1AhGjzZl\n/35TS1m/HjLc5vVnZJgmstRUuOce/8UqhBD+IEnlJCUkwEUXmQSzaxd8951JMsePm/MDBvi+x26H\nANnBRghRj0lSOUU2m5nXkpgIV1wBP/0EGzZAcrLndQ4HPPIItG4NQ4eapjQhhKhv5PfmKhQcDH36\nwO23m9Fh7n791QxX/uYbmDMHnn4atmwxyUYIYc3777/P5ZdfTo8ePUhOTuaqq65ixYoV/g7LsvT0\ndJYvX17yevz48cyYMQOA9957j06dOlX4fqUUH3zwQbXGeKqkplJDfv3V83VqqikJCTBihElG0jQm\nRPnefPNNHn/8ce6//3569epFYWEhK1eu5J577iE/P59LLrnE3yGe0PTp02natCkXXnghAM8++yxB\nQfXra7h+/TS12NixZib/6tVm9JhrFv/+/fDCC/Dhhya59OsH9ezfmBBV4s033+SKK67g0ksvLTmW\nlJREWloaS5YsqRNJxeHVNNGwYUM/RVJ95HfjGtSuHUycaJq/hg3znJGfkQFLl8L995slYoQQngIC\nAti4cSPZ2dkex6dMmcKzzz4LlN085H5s165d3HjjjfTs2ZNevXpx++23s9dtGY2MjAzuvfdezjrr\nLPr06cOdd97JwYMHS86/9dZbnH/++XTr1o3Ro0ezbNmyknPr16+nU6dOfPLJJwwdOpTk5GRuueUW\n0p3zD6ZOncq3337LsmXLSvaScm/+cnn11VcZOHAgycnJ3H333WRmZpb7Z1JRPP4iScUP4uNNp/5j\nj5nRY+5L7x89apaBEUJ4uummm/j5559JSUnh1ltvZfHixWzdupW4uDjL+yZNnjyZhIQEli1bxquv\nvsrhw4eZPn06AEVFRdx4443s3buX5557jqVLl5KRkcGdd94JwGuvvcbTTz/NpEmT+Pjjj5k4cSKP\nPPKIxxd5cXExTz75JHPmzOHVV1/l6NGjTJw4kaKiImbMmEHv3r0ZOXIkX39d9qaKxcXFvPvuuyxc\nuJDFixezfft2pk2bVua1VuLxB2lo8aOICDOZ8txz4csv4bPPoHt3Mx/GXVGRWT1ZZuqLqvbRR/Dx\nx9auTUmBa6/1PLZ0KXxlcePuUaPML1Ena+TIkTRt2pSXX36ZdevW8cUXXwDQqVMn5s2bR4cOHU54\nj927dzNgwABatGhBUFAQ8+fPJ8M50ezbb79Fa82qVato5RyeOWfOHN577z3y8/NZtGgRf/3rXxkx\nwqxn27p1a/bv38+iRYs8mt6mTZtG//79AZg3bx7Dhw/n22+/JSUlheDgYMLCwmjcuHG5Mc6fP5/E\nxEQAHnroIcaPH8/u3btp06aNx3VW46lpklRqgbAwOO88GDTIJBBv//ufGSl22WVwxhk1H58QtUXP\nnj3p2bMnxcXF/PLLL3z++ecsXbqUm2++mc8+++yE77/rrrt4/PHHee211zj77LMZPHhwSaf5tm3b\niIuLK0koAO3bt2fy5MlkZmZy4MABHn/8cZ544omS80VFRRQXF1NQUFBy7KyzSpcqbN26NXFxcWzb\nto2UlJQTxhcTE1OSUAC6OBcl3L59u0dSsRJPiPcQ1BoiSaUWCQ31Xfk4O9usjJyfD08+aWoyl10G\nTZv6J0Yh/CE9PZ3//Oc/3HHHHTRu3JjAwEC6detGt27d6N27NzfddBNaa5/3FXn9lnbddddxwQUX\n8MUXX/DNN98wd+5cXnjhBT744IMKR2EFO1eMfeCBBzyShov7e73vY7fbCbA4tNP7OlfHfrDXirWV\niaemSVKp5XbtMnu8uGzaBJs3m1rNRReZJjQhTpZr2aGTde21vk1i1SE0NJR33nmHNm3aMGHCBI9z\n0dHR2Gw24uPjCQ4OJicnp+Tc7t27S54fPnyYBQsWcPPNNzN27FjGjh3Lzz//zNixY0lNTSUxMZHM\nzEz27dtHixYtANi5cyfjxo3jnXfeoWnTpuzdu5exY8eW3PP1119n69atzJ49u+TYli1b6N27NwC/\n/fYbR44c4cwzzwTAdoI27CNHjpCenk5z5+6AGzduxGazkZSU5HFdVFSU5XhqmnTU13Ldu5vRYu6r\nJtvt8MUXZqTY2rWem4wJUR/FxcVx00038eSTT/Lss8+itWb37t2sXLmSadOmcckll5CQkECPHj14\n6623SE1N5ZdffuGhhx4qaQaKiYnhyy+/5MEHHyQ1NZXdu3fz3nvvER0dTbt27ejfvz+dOnViypQp\nbNmyhdTUVB544AESExNp2bIlt912Gy+99BJvvvkme/bs4aOPPuKxxx7z6R+ZNWsWGzduZPPmzdx3\n33107dq1pDYRGRnJ3r172bdvX5k/p81mY9KkSWzevJn169cze/ZsRo8eXZLk3FmNp6ZJTaUOiI2F\nCRPMMOS33y4dcnzsGLz2munkv+Yas1SMEPXVpEmTaNOmDW+99RYvvfQS+fn5tG7dmksuuYQbbrgB\ngJkzZzJz5kzGjh1LkyZNuOuuuzhw4ABgmpb+85//8NhjjzF+/HgKCgro2rUrixcvJioqCoB///vf\nPPLII4wfP56QkBAGDhxYMjrs6quvpqCggMWLF/Pwww/TtGlTbr/9dv7yl794xHnxxRdz9913k5OT\nw5AhQ5gxY0ZJs9a4ceOYPHkyF1xwAatWrfL5GRs3bszw4cNLRoyNHDmy5PO9WY2nptm8J+PUB0qp\ntsBvq1evtjzUsK5wOMz6Ym+/DYcOeZ67/XZTsxFC1Lz169dz3XXXsXbtWpo1a+bvcE7K3r17GTZs\nGEA7rXXaydxDaip1jM1mFqvs0sV04K9YYTYOa9wYTrBskBBCVDtJKnVUcDBccAH07WtqLQMH+m5p\n7HDI3BYhRM2SpFLHxcfDrbf6Hnc4YNEis2DlBRf4JhwhRNXq27dvmcOaTzeSVOqpH380fS8//QQb\nN8L48eA1KlEIIaqcDCmup/7v/0qf//EHzJ8Pr79uJlEKIUR1kaRST02caIYZh4WVHluzBmbNMvu4\nCCFEdbDU/KWUCgOmAaOASHyTkUNrrao4NnEKbDYz675bN3j1VTMLH8ww5KefNucuu8x3WRghhDgV\nVvtU/glMBNYAWwCZw11HxMbCHXfA99/DG2/A8ePm+Nq18MsvcMMNYGFxVyGEsMRqUrkcmK61frw6\ngxHVw2YzQ487djS1lk2bzPGMDLMTpSQVIURVsdqnEgJ8X52BiOoXEwO33WaWfAkPhwYNYNw4f0cl\nhKhPrCaVz4CR1RmIqBk2m1mccuZMM7/FueRRiaIiWaBS1E5Tp04tWePLijlz5pCcnEyvXr1KNuI6\nWQ6Hg/fff59D3msjVVKnTp147733TuketZ3V5q+lwH+VUo2Ab4Dj3hdorV+rysBE9WrY0BRv779v\nltu/8UbfHSiFqCt27NjBK6+8wqxZsxg4cCCNTvEf88aNG5kyZQqrV6+uogjrL6tJ5V3n4w3O4s0B\nSFKp47SGVavMbPyHH4arrzZ9MbLUi6hrjh49CsCAAQOqZFHZ+rjwbnWx2vzV7gSlvdUPVEoFKqXm\nKqXSlVI5Sql3lFLl7mOolBqqlPpeKXVMKbVTKXWfUkq+5qpBenppAsnLgxdfhOefLx0xJkRtMXTo\nUF544QVuvfVWunfvzoABA1iwYAEA7733Htdccw0A5557LlOnTgXMdsE33XQT3bt355xzzuHBBx8k\nKyur5J6FhYU8/fTTDBo0iB49enDVVVfx008/sXfvXsY5Ox+HDRvGs88+a+l+R44c4d5776VXr14M\nHDiQZcuW1cifjb9ZqqlorUu2T1NKRQJRwCGtdeFJfOZM4HrgOuAQsBBTExrofaFSKgn4GHgMuAro\nCbwMHAP+dRKfLSoweDC0bQuLF8PBg+bYDz/Azp1w000ySqzeWbkSPvrIP8sshIaaLSeHDz/pW/zz\nn/9k+vTpzJgxg08++YQnnniCs88+mwsuuICYmBhuv/123n77bdq1a8eBAwcYP348l156KTNmzCAr\nK4t58+bx17/+lSVLlgCmD2b16tXMnDmTDh068NJLLzFx4kQ++eQTFi5cWHK/xMRES/e76667yMzM\n5PnnnycwMJBZs2ZR7L6Naz1leUa9UmqwUmo9cBTYB+Qppb5VSg2rxD1CgLsww5NXaq03YpLFAKVU\n/zLeMgLI1VrP1lrv0lq/AywHzrf6maJy2rY1O0qmpJQeO3wYnnwSPvjAc2tjUcetXOm/dXvy883n\nn4IhQ4Zw5ZVX0qpVK26++Waio6P56aefCAsLIyYmBjA7RkZFRfHaa6/RsmVLpkyZQvv27enRowdP\nP/0069ev58cffyQnJ4d3332Xe+65h3PPPZc2bdowY8YMxo4dS1ZWlsf9IiMjT3i/nTt38t133/HQ\nQw+RnJxMt27dePzx02NGhtUZ9edgRoClAg8CB4AE4Argf0qpYVrrryzcqgemlrPGdUBrnaaUSgNS\nMIMA3P0JxCmlrgbeBDoB52BqN6KahIaafcc7d4ZXXjE7TDocZu+W1FRTa5FO/Hpg+HD/1lROoZYC\n0LZtW4/XUVFRFBaW3XiydetWtm7dSnJyss+5nTt3EhQURGFhId26dSs5HhQUxJQpUwDIzMys1P0i\nIyMB6Ny5c8nxpKSkkuP1mdWO+oeBVcCFWuuSHiul1BxMzWEmYKXG4uox896geT/Qqozr3wUWA68C\nrwCBwFvAHItxi1OQnAzt2pm+Fdd6Ybt2wcsvw733+jc2UQWGDz/lL3Z/cu097668DvXg4GAGDBjA\n/fff73MuLi6u3D3jy3Oi+61bt67MeIJPgz0orDZ/9Qb+5Z5QAJyv/wX0sXifCMBeRl9MPhBWxvUN\ngbbAPOdnXA8MBx6y+HniFDVsCHfdBZdcAgEBEBJiajFC1CVJSUns3LmThIQE2rRpQ5s2bQgICODR\nRx8lPT2d1q1bExQUxJYtW0reY7fbOf/881m+fDk2ryGQJ7pfx44dAfjxxx9L3rN3716OHDlSMz+w\nH1lNKoeBBuWciwKstrTnAgFKKe8aUiim893b40CR1nqq1vpHrfUSYDIwTSkVb/EzxSkKCIARI2DK\nFLNWWNNyx+oJUTtde+21ZGVlMXXqVLTWbN68mXvuuYe0tDTatm1LREQE11xzDU8//TRr164lLS2N\n2bNnc/ToUfr27VvSbLV161ays7NPeL+2bdsybNgwZs2axffff8/WrVuZMmUKAQH1f2F4qz/h58BM\npVSC+0Hn65mYpjErfnc+Nvc6noBvkxjA2cAPXsfWA8FAa4ufKapI27bQq5fv8S+/NH2uMpRf1FaN\nGzfmxRdfJCMjgyuuuIKJEyfSvHlzXnzxxZJmtL///e+MHDmS6dOnc/HFF7Nz504WL15Mo0aNSEpK\n4vzzz2fSpEk888wzlu73xBNP0LdvX+644w5uuOEGhgwZQuPGjf35x1AjbFYm9SilWmC+3KOBr4E/\ngGaYYcBZwACt9S4L9wnFdL7frrVe6jzWFvgN6Ke1/s7r+k+BfK31RW7HrsRMtIzVWmdRBtc9V69e\nXSUTn0T59u6FuXPN8i6dO5uaTHS0v6MSQpyMvXv3MmzYMIB2Wuu0k7mHpZqK1nofkIwZdRUD9MP0\nd/wLSLaSUJz3yXfe4wml1AilVE/gDWCt1vo7pVSIUqqZc+gxmCX3Ryml7ldKtVdKjQKeAhaWl1BE\nzVq50iQUMEvpP/ww/Pqrf2MSQviP5T3qtdZ/AH+vgs+8H9N8tdT5+Alwh/Ncf+ALYAiwRmu9Qil1\nqfM9UzE1pOeAR6sgDlEFxo83qx9/+ql5nZUF//wnnHcejBkDQZb/hQkh6oNym7+UUtOBF7XW6c7n\nFXForedWeXQnSZq/at7WrfDCCyapuLRpY7Y1btLEf3EJIayriuavin6PnIPpgE/nxPNCHECtSSqi\n5p15Jjz4ILz0ErhGZe7eDXPmwFVXQb9+sjClEKeDcpOK1jqgrOdClCcqCv76V/j8c3j3XbOkS36+\nmSy5bx+MHevvCIUQ1c1SslBKPeg9nNjtXBul1DNVG5aoq2w2GDYMpk0rnc9is5nZ+UKI+s9qDeQh\noEU55/oBf6macER90aoVzJgBAwfChRdCUpK/IxJC1IRym7+UUl9jEgaADfhOKVXe5RuqOC5RD4SG\nmtFhZY0FSU2F+Hg4DeaCCXFaqaijfiJwGSahzMYM5d3rdU0xcAR4v1qiE/WCdwf9kSPw3HNmfsuV\nV0L//tKJL0R9UVFHfSrwCJjdGoHnnZMghTglS5aY5fRdzzdvNotUNihvdTkhMLs9eq8mHBYWRkJC\nAldeeSU33HCDfwLzk+HDh3PRRRfxt7/9zd+heLC68+MsAOcijiGY2guYPplIIEVr/Xy1RCjqnTFj\nICMDDhwwr3/80ewued110LWrf2MTtdvNN9/M9ddfX/L6yJEjvPHGG8ydO5cmTZpwwQUX+DE6AdZH\nf3VVSv0MHMQ0gf3uLLuBX4FF1RahqHfatDG7Sw4eXHosKwsWLIClS/23GaGo/SIiImjcuHFJ6dCh\nAw888ACtW7dmxYoV/g5PYH3013wgHrPs/BrgU+CvwArMxMfB1RCbqMdCQuDqq+Fvf/NcgPKrr2D2\nbNi+3X+xibonODiYwMBAANLT07nzzjvp2bMn/fv3Z9KkSRxwVYsxG2e99NJLnHfeeXTv3p0xY8aw\ndu3akvPbtm3j5ptvpk+fPpx11lncd999JTs/Tp06lfHjx3t89s8//4xSirS0NABWrVrFRRddRNeu\nXRkxYgSLFy/GbrcDZsa6UopFixbRr18/Ro4cSUFBwQljzs/PZ/bs2fTt25ezzjqL5557rlr+HKuC\n1aTSD3hAa/00ZlvfSK31v7XWozGd9HdWV4CifuvSBR56CHr2LD2WkQFPPmm2LxaiIrm5uTz//PPs\n3LmTiy66iOPHjzN+/HhCQ0N54403WLx4MYWFhVx//fUUFBQA8N///pdnnnmG22+/nY8++ogRI0Zw\nxx13sH37dvbu3cvVV19NTEwMr776KgsXLiQ1NZUbb7yR4uJiLr74Yn744QePL/yPPvqI5ORk2rZt\ny9q1a5k8eTLXXXcdy5cv5+9//ztLlixh4ULPHdCXL1/O0qVLeeKJJygqKjphzLNmzWL16tU89dRT\nvPLKK3z//ffs2bOn5v6gK8Hqcn+hgOt3x21Ad7dzLyLNX+IUNGgAf/kLrF8Pb7wBublmGHKL8mZG\niSrzkf6Ij7d9DMCoM0YxWo32OP/2L2+zapfZLunyTpczPNFz++GlPy/lq91fAXBtt2tJaZPicf75\njc+zYZ+ZcXBTz5s4q8VZpxTvwoUL+e9//wuYGkd+fj5KKZ566imGDRvG22+/TW5uLo899lhJzeWp\np56ib9++fPbZZ1x44YUsWbKECRMmcPHFFwNw2223UVRUxPHjx1m2bBnR0dHMnTu3ZOvfp59+mgsu\nuICvvvqKQYMG0bx5c1asWMGECRMoLi5mxYoVJZ3lixYt4uqrr+byyy8HoHXr1hw7dowHHniA22+/\nveTnGDduHImJiebP+AQxDx48mA8//JA5c+YwYMAAAObPn89g9/bjWsRqUtkDtAO+wiSVaKVUG631\nbiAPiKum+MRpwmaDs88GpeCVV8ySL927n/h94vQybtw4rrnmGoqLi1m9ejULFy7k0ksv5cILLwTg\n119/JTMzk969e3u8Lzc3l507d3L48GH+/PNPunXr5nHelRQWLFhA165dPfaST0xMJDY2lm3btjF4\n8GAuuugiPv74YyZMmMC3335LVlZWyQCBrVu3snnzZt54442S99vtdvLy8ti3b1/JtsStWrUqOX+i\nmFu3bk1hYSFdunQpORcbG0vr1rVzn0KrSWUZ8JhSKltrvUwplQo8rJSaC0wCdlZbhOK0Ehtr+llc\ne7S427bNPJ5xRs3GJGqPmJgY2rRpA0D79u0JCAjgkUceIS4ujlGjRhEcHExSUhILFizweW9UVJRH\nsihLWFhYmcftdnvJey+++GL+/e9/k5aWxscff8zQoUOJdnYMBgcHM3HiREaPHu1zj6ZNm3Lw4EEA\nQkNDS46fKGbXMGrvFeVP9LP4i9WkMgvoANyMSTCTnI/jMBMgr6qW6MRpyWYD7/8veXlmaf3DhyEl\nBS67DMLD/RNffTJajfZp8nI3tvNYxnYufyXQa7tdy7Xdri33/MSeE5nYc+IpxViRCRMmsHr1ambN\nmkXfvn3p0KEDb7/9Ng0bNiQmJgaAnJwcJk+ezA033MDZZ59N48aN2bx5M4MGDSq5z/jx4xk0aBCJ\niYl88MEHFBYWlnxp79ixg6NHj5Y0V7Vt25bk5GSWL1/OqlWrmD9/fsl9kpKSSEtLK0l8ACtXrmT5\n8uXMmzevzJ/hRDF37dqVkJAQfvzxRzp06FBy3jUwoLaxuvPjca31pcAlztefAl0xyeRMrfV71Rei\nEPDhhyahgBkhNnOmmd9iYTdsUY8FBATw8MMPk5eXx5w5cxg9ejSxsbHcfffdbN68mW3btnHvvfey\nadOmki/kiRMn8tJLL7F8+XL27NnDwoUL2bRpE4MGDeLaa68lOzubadOmsX37dn744QcmT55Mx44d\n6devX8nnXnLJJSxevJiQkBBSUkr7kW677TaWL1/Oc889R1paGmvWrOHBBx8kLCysZO96byeKOTIy\nkquuuop//OMffP755+zYsYPp06eTl5dXvX+4J6lS+/I5twN2Pd+JNHuJGnLeeWZU2KZN5vWRI7Bo\nEXTrZvZriY/3b3zCfxITE7nlllt49tlnGTNmDC+++CKPPfYY119/PTabjR49evDyyy8T7/xHct11\n15GXl8f8+fPJzMykQ4cOLFq0qCTpvPDCC8yfP5/LLruM8PBwhg4dyt///neP5qaRI0fyyCOPMGrU\nKILctjc955xzmDdvHs899xzPPPMMcXFxXHzxxUyaNKnc+MPCwk4Y85QpUwgLC2PGjBnk5+czduxY\nn36h2qKinR+3Y+agWOHQWpe72mRNk50f6yeHw9ROXn/dc4fJkBAYPdosue8cPCOEOAnVvfPjOqwn\nFSGqnc1m5rN07AjLlsGXX5rjBQVmU7BvvoFrrpGOfCH8qaIFJW+owTiEsCwiAsaNM0OQly6F/fvN\n8fR0+Pe/Ye5cKGcQjxCimlnqU1FK9T/RNVrrb049HCGsS0w0a4h9/jl89JFZM+ziiyWhCOFPVjvq\nv+bETWHSmi1qXGAgDB8OffrAmjVmuLG3nTuhfXvZs0WImmA1qQwp41gDIAUYj9nMSwi/adjQ1FK8\n7doF8+aZpHL55aZ2I4SoPlb3U1lbzqnlSqkc4H5gVJVFJUQVcDjgnXfMc1dySU42yadZM//GJkR9\nZXWV4op8hSx9L2qh4mJTM3GbRsCPP5qJk0uWlE6mFEJUnUpNfizHaCDrhFcJUcOCgsxyLoMGmSHI\nP/xgjjscsG6dWRU5JQVGjgTn6hhCiFNkdfTXZ2UcDgRaAYnA41UZlBBVqVEjuPlmMyt/2TLYutUc\nLyqCL76Ar7+GIUPg0kulM1+IU2W1phKC7+gvB2Yr4XnAC1UZlBDVoU0buPtuSE2F99+H334zxwsL\n4dAhSShCVAWrHfWDqzkOIWpMx44wZQr88otZqHL3bnBuh+Hh+HEz0VIIYV2l+lSUUiMxw4hjgQPA\n51rrL6sjMCGqk81mtjLu3NnUWLyXiMvLgxkzICnJNJslJUlNRggrrPapxAP/A3oD+cCfQBPgAWd/\nyyVa69q5DrMQFbDZzBwWb199ZWoqP/9sSqtWcO650Lu352gyIYQnq/89nsVsJzxaa73cdVApdRGw\nGHgMuNvKjZRSgcAc4AYgCvgEuENrfaCc61sC/wDOB3KBd4DJWuvjFmMXotKcG/SV+P13ePFFM+8l\nJcWUONlEjyzSAAAgAElEQVREWwgfVuepjMR8kS93P6i1/hCYBlxdic+cCVwPXAecA7QE3i3rQqVU\nKLASiAMGAFdiJlmWvYWaEFVk3DgznyUlxXMXyuxsWLECpk+HhQth82aw2/0WphC1jtWkUgQcKedc\nOmZ02AkppUKAu4DpWuuVWuuNmN0jB5SzaOU1QHPgMq31z1rrL4CHgLMsxi3ESWveHK69Fh57zMzC\nb9iw9JzDYTYMW7DAJBYhhGE1qSwEHlVKJbgfVEpFA1MxzWNW9MA0ea1xHXBuBJOGGQDg7Xxgpdb6\nsNv1L2qtJamIGtOggZkgOXcu3HqrGT3mEh1tOvzdFRWZ/hghTkdW+1QSnGWnUuprYD8Qj2mSigLy\n3SZIOrTW55dzH9cYm31ex/djJlJ6OwP4XCn1MHAtZm7Me8D9MjBA1LSAALN2WHIyHDhgJk02aOC7\n2+SmTfDCC9C1K5x1lnl0b0IToj6zmlSSgJ/c3tPa+dx1LBBrS99HAHatdaHX8XygrF0wooGbMCPP\nxgItgAWYkWfXWYxdiCrXtKlZAqYs335rais//mhKaKhJLD17mlpNaGjNxipETbI6+bGspe9PRi4Q\noJQK0loXuR0PBY6VcX0hkAmM11oXAz8opYKBt5VSk7TWh6ooLiGqRHGx6cx3l59v1h374QdTYznz\nTOjRA7p1g6go/8QpRHWp7OTHTsAgIAYzV+VrrbWuxC1+dz42d3sOpmnNu0kM57E8Z0Jx+dX52BaQ\npCJqlcBAmDbNNI99/z1s2GCeuxQWls59sdngnnvgjDP8F68QVc3q5McA4D/AjYD7vGKHUuoVYILW\n+kQ7QwJsArIxiWmp895tMQmirJn5XwE3K6WC3ZrMugDFmM59IWqlpk1h9GgYNQrS0+H//g82boT9\n+0uvCQw065G5c9VqzjxT5sGIuslqTWUqpg9jKvAqZomW5pghv7MpXViyQlrrfKXUQuAJpVQGcBAz\nsmyt1vo755DjOCBTa10ALAL+BixRSs3CdPTPB5ZI05eoC2w2SEgwZfRo+PNP05H/008QFubbv6K1\n2esFzOrKSpmaTIcOJsnIUjGitrOaVG4CHtFaz3c7theYp5QKc563OiHxfiAYU1MJxjmj3nmuP/AF\nZvviNVrrA0qpc4CngY1AjvN90yx+lhC1SuPGZrmXc88te9Kka1l+gIwMU9atM69jY80aZImJZmmZ\nli19R54J4W9Wk0pzYF05576hEl/yzg76e53F+9waPJvX0Fr/ipmvIkS9ElDGLLHWraFTJ9ixAwoK\nPM8dPmz6aDZsMK9TUszkTCFqE6tJZRfQD1hdxrl+mFn1QohT1K+fKUVFkJZmmsO2b4ddu0x/i7t2\n7Xzfv2gRZGWZBTBbtoQWLUyRYcyiplhNKs8Dc5VSx4A3MH0qTTFrfk0HHq2e8IQ4PQUFmaaupCTz\n2m43i1ru3GkSzK5dvqsrOxwmAeXkmOvcxcebZWcSEsxj06amViSTMkVVq8wqxcnAk8ATbsdtmD6O\nR6o4LiGEm4AAM1KsTRsYOrTsa44cMQmlLIcOmbJlS+mxWbOgWbPS10VFZpRa48amNGggAwNE5Vmd\n/FgMXK+UmodZoysOOAx8qbX+pRrjE0JYFBsL8+aZGs3evaXlwAHfQQEBASZxuMvIMMvLuISEmBpO\nfLwZeeYqsbGmeL9fCKjk5EfMhMVdmIRy0PlcCFFLxMSY4r7IZVGR2R9m/34zZ+aPP8wkTO+RYxkZ\nnq8LCsz16WX0mMbGmtWb3e3ZY+bYREeXlqgoUxo0KHtggqh/KjP5cR7wV8wwYFel+JhS6hGt9WPl\nvlkI4VdBQaVzZSoSHm4Wy8zIMPNp8ipYsjU21vdYWhp8+mn574mIMAkmMtJM7rzoIs/z6emQmWni\nCA8314eHm34faYarO6zWVGZi9kH5B2ZDrYOYjvqxwGylVJbWemG1RCiEqBGJiaaA6fTPzTX9MBkZ\nZjhzZqYpR46YkWXesrIqvv/x46VbAsTH+57/5hv47DPf4wEBJrmEhZU+9u0L55zjed2mTSbe0FDT\ndOd6dJXg4NLnoaGyLXR1qczkx9la64fdju0CvlVKZQOTMDPjhRD1gM1magoREWZ4shVnnmma1I4e\nNQkmO9uUrCyTTBxuCzk1aOD7/mNlLSmL6Q86dszzfFnrpa1bZxKLFVdfDYMHex5buNA0DQYFmRIc\n7Pk8MLD09ZAhvon1iy9KmxXLKgEBpc+TkkxydHE4TPOh6zr3YrP5HouI8Ky9ORym2Gz+r9VZTSox\nwPflnPsamFw14Qgh6ir3mo43u90kluxskxzKSirNm5uJn64aTW6uKUVFvteGlbFRhvc8noqElLFX\nbUaG5+KfFUlO9k0qH39c/ug7bw884Pl+ux0ercTEjCee8FzhOjPTbHHt4kpGroTk/jwoCObP971n\nVbGaVD4GbgXKajG9ClhRZREJIeqdgACTSMpKJi7Dh5virbDQ9O+4Sm5u2c1nyckmMeXnm0EGrkdX\nKSwsfV5WUin03uWpAmU1nRUX+x4rj/cgibKW7KmI96AHh9dyvhXdr7qb/aze/kvgEaXUz5jJj+mY\nnR9HAQOBp5RSrjzp0FrPrfJIhRCnpeBgU06094x3c1Zl3XOPSURFRSbBFBV5Pi8uLj3mPr/HZehQ\n8/7iYs9it3s+Fhf71rQcDtPMaLeXFofD872u1w5H2UnJZvNNLmWp7uYxq0llgfMxBphTxnn35i8H\nIElFCFGnlDWirTK8R7NVRkgI3H//yb+/SROzRA+U9q94JyJX7cVK4jkVVic/yghzIYSoA9z7T/xB\nkoUQQogqI0lFCCFElZGkIoQQosrInFIhhKjjHA4HDhzYHXbsDjshgZ5jpu0OO0fzjmJ3mN76+Igy\nxmRXkXKTilJqAfCU1nqXUqo1kK61rsRIbiGEqD9yCnLIL8qnoLiA+Ih4ny/unw/8THZ+NkX2Ivq0\n6ENEcITH+Y/0R2TlZ1FkL+LyTpcTGRLpcf5f3/+LY4XHKLYXM6nfJMKCPMcdT189ncLiQoodxcwb\nPo+ggNKv72JHMXcsN7uyBwYEsvBCzwVOcgtzmbpqKgARwRE8PeLpU/vDqEBFNZWJwJuY5Vh+A84G\nNlRbJEIIcYocDgf5xfkE2gIJDvTcgeyXg7+QnpNOXlEevZr3onlUc4/zr29+nR2ZO8gvzmdCjwkk\nxnkuD/Ds+mdJO5IGwJSBU2gf67lL2rKty9ifvR+ApLgkn6Ty7d5vOXT8EAAXnnGhT1LZdXgXOQVm\nSn5hcaFPUsnKz6KwuLDk53QXYCvtyXDVRtzZ3CanOKjeMcUVJZV04DGl1GeYVYlvVkqNLOdah9e6\nYEIIUaV2Zu7ktyO/kVOQQ9cmXX2+9Jf+vJSv93yNw+FgQvIEzm55tsf5r/d8zcb0jQA0a9DMJ6lk\nHM9gb9ZeAI4V+i5E5l4zcX25u3NPYkV237Vl3GsWZZ0PDCid0Vjs8J2e7544ih3FBFP6eTZs2Gw2\nbNgIDAjE4XB4JJJAWyANwxpis9kIDwr3uXdVqiip3Ac8A8zATGicUMG1DkCSihCiQnaHnaz8LAJs\nAUSHRnuc++b3b1ibtpbsgmyGthvKue3P9Ti/MX0jq3atAiA8KNwnqQTaAkt+gz9eeNzns91/888v\n8l0ozP18QXGBz/mYsBjiwuMIDgz2SAAuXZt0JSEqgeCAYJ9aCMCFHS4kryiPoIAgn58d4JZet2B3\n2AkMCKRBiO96NrOHzCbAFkCALYDQwFCPczabjUWjFvm8xyU0KJTHhz9e7vmqVG5S0Vq/DbwNoJSy\nAwO01uUtKimEEOQX5XMo9xA2bD41gTVpa3hzy5vYHXaGthvKlV2u9DifU5BT0ryUmZvpc2/3L9qy\nahKu5qaQwJAym4A6Ne5EeHA4oYGhtIz2Xbt/TMcxjEgaQWhQKDGhMT7nJ/acWMZPXGq0Gl3h+b4t\n+1Z43jtJemsY1rDC87WF1dFfQ4BfqzMQIUTdcLzwOLmFuT4jiDbs28DzG58HoGfzntzS+xaP85HB\nkSVf9kfyjvjc1/2396x8381Z2sW2Y2i7oUSGRNIhroPP+Qs6XMCoM0aVWYsA6NOiD31a9Cn352oS\n2aTcc8I6q8u0rFVKdVRKzQIGY9YAywC+AubIPvVC1H+7Du9i4YaFZOdn0yG+A5P7e+54ERteunhW\nWTUN12/aDUIa+IycAlOTuG/AfUSFRpVZU+jYqCMdG3UsNz7vjnnhH1a3E+4KrAOOAx8AB4DmwGhg\ntFLqbK31lmqLUghR7Y4VHGP59uXszdpLkb2I+wbc53E+OjSa7PxsAP7I+cPn/Y0iGhEYEEh8eDyN\nIxv7nG8f254FFywo98s/OjS6zL4GUbdYbf56HEgFhmitSxozlVKRwGrgEWBM1YcnhKhKdoedP3L+\n4Pejv3NWi7M8RggFBQTx+W+fl4wcKiwu9EgA8eHxJa+jQ6N9zseExvCvC/7lcU93gQGBBFJ205So\nP6wmlRRgvHtCAdBaH1NKzQMWV3lkQogq5XA4mLJySkl/xRnxZ3g0WYUGhdIksgkHcg7gcDhIz0mn\ndUzrkvM2m405Q+cQExpTZuIoL5mI04vVpHIcyp0x4wD59UOI2uBYwTG2HdrG9sztDG03lEYRjUrO\n2Ww2mjVoVpJU0o6keSQVgDFqDIEBgbSMbkl8uO9SHnVlBJLwH6tJ5VtgqlLqU611nuugUiocM5/l\nm+oITghROS/+9CKbD2wGoHmD5qS0SfE4nxiXyB85f9Auth3hwb6T4Hol9KqROEX9ZTWpTAO+B35T\nSn0I/AE0w3TUR2Oax4QQNeDgsYNsPrCZxpGN6da0m8e5jo06liSV7ZnbfZLKqDNGMUaNkaYqUW2s\nDineqpTqDzyI6ZCPAw4Da4HZlRn5pZQKxGxJfAMQBXwC3KG1PmDhvR8DDbTWg61+nhD1ybo961iy\naQkA3Zp2KzOptItth4pXdG7S2ef97kuFCFEdLP8L01pvBsZWwWfOBK4HrgMOAQuBd4GBFb1JKXUL\ncCEmkQlRrxXbi0nPSfeZ+d0hvnTSnz6kKbIXeSSKltEtmTpwao3FKYS3Gv21RSkVAtwF3Km1Xuk8\ndhWmWa2/1rrMvhmlVBLwKKZvR4h6K68ojze3vMlPf/yE3WHnifOe8Bi22ySyCa1iWhEXHkfXJl19\nVqsVwt9qui7cA9PktcZ1QGudppRKw/TL+CQVZ3PZEsxcmTOApBqIUwi/CA0MZduhbSULIv765690\nb9bd45oZKTOkT0TUWjW9nbCrLr/P6/h+oFU575mGGbb8RHUFJURNO5p3lM92fsbvR3/3OG6z2Tir\nxVmAWfYkv9h3NV1JKKI2q+maSgRgL2MHyXwgzPtipVQv4F6gj9barpSqgRCFqF6rdq3i3V/fxe6w\nM6jtIK7peo3H+XPanEPXpl1p17CdJBBR59R0TSUXCFBKeSezUMBjtr5SKgx4Bbhfa72jhuITotq1\nim5Vslrvhn0bfDZsig2PpX1se0kook6yuqCkDTMEeBQQiW8ycmitz7dwK1ddv7nbc4AEfJvE+gJn\nAo8rpVy7y4RiklIO0ElrvcdK/ELUNIfDwW9HfmPTH5u4uOPFHgnijPgzaBLZhJiwGAa0GuDHKIWo\nelabvx4FpmD2qt8L+O6AY80mIBsYBCwFUEq1BdoCX3pd+z3gvWnCo0AbYBymH0aIWsfhcPDkt0+y\n/dB2AHo060G72HYl5202GzPOmeGzB7kQ9YHVpHID8JTWevKJLqyI1jpfKbUQeEIplQEcxMxTWau1\n/s455DgOyNRa5wIezV5KqSwgV5rDRG1ms9loFNGoJKmsSVvjkVQASSii3rLapxINfFRFn3k/8Cqm\npvIFsBu43HmuP5DufBSi1svOz/YZwQUwrN0wggKCGNB6AMMTh/shMiH8w2pN5RtgAFUwm11rXYQZ\n0XVvGefWAOX2TmqtK94kWogacqzgGCu2r+DL3V/SKKIRDw560KPfpFVMK+afN79k33QhThdWk8oj\nwGvOUVvfYJbC91DebHgh6quv9nxFQXEB+7P3s+nAJno06+FxXhKKOB1ZTSqfOx9nOh/d14awIXuq\niNNMZEgkg9sO5tMdn9IyuiWhgaH+DkmIWsFqUhlSrVEIUUvlFuby2c7PaBzZmP6tPLv6zm1/Lklx\nSXRt0lXmlAjhZHXpe1kZWJx2dh3exYLvF3Cs4BgxYTH0TuhNSGBIyfno0GifpeeFON1ZXqZFKdUR\nmAUMBmKADOAr4GGt9a/VEp0QftQiqkXJsvJH847y3d7vOKfNOX6OSojazdKQYqVUV8xkxEHAB8B8\nzOZaQ4HvneeFqNO8l5EPDQpljBpDo4hG3Jh8IwNbV7jljxAC6zWVx4FUYIjWumSNLqVUJLAas5Pj\nmKoPT4jql5mbyXtb36NZg2aMOmOUx7l+rfrRt2Vf2TFRCIus/k9JAca7JxQArfUxpdQ8YHGVRyZE\nDdh9ZDfzv5lPYXEhwYHBDGg1gNjw2JLzAbYAAmw1ve6qEHWX1f8tx/EcRuxOhhOLOqtVTCuaNWgG\nQGFxIT/98ZOfIxKibrOaVL4FpjqXoy+hlAoH7qOMHRuFqAsCbAFc1eUqWse0ZnL/yQxpJ6PnhTgV\nVpu/pmE66n9TSn0I/AE0A0Zj1gVLqZ7whKgaRfYiPt3xKccKj3FF5ys8ziXFJTE9ZbrMNRGiClid\np7JVKdUfeBDTIR8HHMasBTZba72l+kIU4tTkFOQwb908DuQcwGaz0TuhN+1j23tcIwlFiKpheUiL\n1nozMLYaYxGiWkQGR9IksgkHcg7gcDj4cveXPklFCFE1yk0qSqlrgE+01pnO5xXSWr9WpZEJUUVs\nNhtXd7maPUf3MDJpJIPaDvJ3SELUWxXVVJYCZ2P6Upae4D4OQJKK8LsjeUdYv3c95yWe59GkFR8R\nz6PDHpX5JkJUs4r+h7XDbJjlei5ErfbN79/w1i9vkVuYS3xEPL0Tenucl4QiRPUr93+Z1nq328tB\nwHKt9SHv65RSzTB7xj9Z9eEJYd2uw7vILcwF4M0tb9K9aXeCA4P9HJUQpxer81ReBMrr2eyB2cRL\nCL+67MzLiA2PpXFkY27udbMkFCH8oKKO+o+BTs6XNuB9pVR+GZc2BXZWQ2xClCsrP4sGIQ08llAJ\nDw7nzr530iiikccS9UKImlNRI/Mc4Cbn85uADcCfXtcUA0eAl6s+NCF8ORwONuzfwOubX+fCMy7k\n3PbnepxPiErwU2RCCKi4T+U74DsA5970s7XWv9VUYEKU5Yf9P7B4o1m/dNnWZXRp0qVk7S4hhP9Z\n6lPRWk8AzlRKzXcdU0qdpZRaqZSSxZJEjUlunkyrmFYANAxrSF5Rnp8jEkK4s7pJ1xXAR5T2sQAc\nc77/M6XUiGqITQgfQQFB3Jh8I4PaDuKBQQ/QtmFbf4ckhHBjdfTXDOBfWusLXQe01r9orYcBi4DZ\n1RGcOL3tOryL1btW+xxPiErgmq7XEBYUVsa7hBD+ZHU2WBJwdznnlgETqiYcIcDusLNi+wqWb1uO\nAwetY1rTIb6Dv8MSQlhgtaZyAOhVzrluQGbVhCME2LCxI3MHdocdh8PBG1ve8Nk/XghRO1mtqbwK\nPKSUysHUTA4CjTH7qcwCFlZPeOJ0ZLPZuKHHDcxaM4sW0S2Y0GOCLE0vRB1hNanMBjpikse/3I7b\ngPcw+6wIcVLyi/IJDQr1ONYwrCH3DbiPpg2ayh7xQtQhVjfpKgTGKqW6AAMxm3QdBb7WWm+qxvhE\nPZeakcqLP77IVV2uIrl5sse55lHN/RSVEOJkVWrZVucOjz67PCqlGmitc6osKnFa2LBvA89vfB6A\nV35+hXax7WgY1tDPUQkhToWlpKKUCgHuxKxWHIJp9gLT0R+J6ayPtHivQMwSMDcAUcAnwB1a6wPl\nXH8lMA3ogFmK/3lgvta62Mrnidqrc5POxIXHkZmbiQ0bGcczJKkIUcdZrak8DtwFbAaaALmYdcC6\nYpLMzEp85kzgeuA64BCmn+ZdTLOaB6XUSMwggbuB/wHJwH+BYODhSnymqIUigiO4MflGPtnxCdf3\nuJ7o0Gh/hySEOEVWe0AvB57UWncHngV+0Fr3xdQe0qzex1njuQuYrrVeqbXeCFwFDFBK9S/jLbcC\n72qtF2itd2qt3wGeQubF1DnZ+dlsOejTckqH+A78re/fJKEIUU9YTSpNMTUFMLWVswC01vuAxzCJ\nwYoemCavNa4DWus0TGJKKeP6OZghy+7sQKzFzxO1wJaDW5i9djaLflhEenb6id8ghKizrCaVI5hm\nLoAdQCulVJTz9TagtcX7tHQ+7vM6vh9o5X2x1nqD1vpX12ulVDRwG6YfRtQBdoedZVuXkZWfRWFx\nIYt/XCwTGYWox6wmla+BvymlwoHtmMUkL3ae64sZXmxFBGB3DlF2lw9UuJCTUioCeB8IB6Za/Dzh\nZwG2AG5MvpGggCCiQ6O5pOMlMpFRiHrMalKZjelIX661LsJ0rj+nlFoPPIrpaLciFwhw7s/iLhST\nqMqklGoErAJ6AiO01rstfp6oYWXVQlpEt+CW3rfw4KAH6dyksx+iEkLUFKv7qfwEnIkZBQZmiO/D\nQAam32Oyxc/73fnoPastAd8mMQCUUm2Bb4B2wDla6w0WP0vUsMzcTP7x3T/Ymem7u3S3pt2ICo0q\n411CiPrE6jyVZ4GXtdafAmitHZgaSmVtArIx812WOu/dFmgLfFnG5zYBvsBsW9xfdp6svbb+uZVF\nPywiryiPjOMZPDDoAVmaXojTkNV5KjcBH57qh2mt85VSC4EnlFIZmIUpFwJrtdbfOYccxwGZWusC\nzDpjjYChQK5SyrVvrKO8yZLCP5o1aFayRteh3EOkZqTSo1kPP0clhKhpVvtUvqPsIb8n437MhMal\nmFrIbsw8GID+mFnz/Z2DAi4FGgDfO4+7SplNZcJ/YsNjuabrNTSObMx9A+6ThCLEacpqTWUjMEUp\ndTnwE+C9zpdDa32LlRs5O/rvdRbvc2soXQIGINBifKIG5RXlkZ6dTrvYdh7H+7ToQ49mPQgODPZT\nZEIIf7OaVC7DzCUJB/qVcV4mHpwmUjNSWbJpCXlFecwcPNNnJrwkFCFOb1aXvm934qtEfVdkL+KV\nTa9w6PghAF7Z9Aq397ld5p0IIUqU26eilBqqlGpQk8GI2i0oIIjx3ccDZjHIvi37SkIRQnioqKay\nEtPU9b3rgFLqL5gFHg9Vd2DC/+wOu8+uix0bdWR89/F0a9pNFoEUQvioaPSXx6+gzn1Q/g20qdaI\nRK2w5eAWHvziQfZn7/c5N7D1QEkoQogyVXbzb2nrOA38b/v/eHb9s/x57E9e/ull7A67v0MSQtQR\nlU0q4jTQo1kPggJMy+ih3EMcPHbQzxEJIeqKSu1RL04PzaOaM7LDSP489idjO4+lQYiM1xBCWHOi\npFLW/BOZk1JPFBQX8L/t/yMxLpEuTbp4nLuww4UysksIUWknSirvKKXyvY69X8Yxh9ZaVWFcoprt\nObqHRT8s4tDxQ8RHxDNz8ExCAkNKzktCEUKcjIqSystlHFtXXYGImhUfHk9eUR4Ah44fYt2edQxp\nN8TPUQkh6rpyk4rWekJNBiJqVmRIJJd0vIRlqcu49MxLGdBqgL9DEkLUA9JRX8/ZHXbW7VmHAwfn\ntDnH49zA1gPpldCLiOAIP0UnhKhvJKnUY5m5mTyz/hnSs9MJDQqlR7MeHpMWbTabJBQhRJWSeSr1\nWMOwhtic81Xzi/L5dMenfo5ICFHfSVKpRxwOz9HeAbYALut0GaFBoYzpOIYxHcf4KTIhxOlCmr/q\ngYzjGSzfthyA63tc73Guc+POzB02l8iQSH+EJoQ4zUhSqeMOHT/EA58/gN1hx2azMTxxOAlRCSXn\nbTabJBQhRI2R5q86Lj4ins5NOgOm+Wtj+kY/RySEOJ1JTaUOSTuSht1hp31se4/jo88YTUFxAaPP\nGE2H+A5+ik4IISSp1Anp2em8tvk1th3aRvvY9tw34D6PZVTaNGzDPf3u8WOEQghhSPNXHRARHMGu\nw7sA2HV4FzsP7/RzREIIUTZJKrVMenY6uYW5HsdiwmLo27IvAbYA+rbsS1RIlJ+iE0KIiknzVy2x\n9c+trNi+gm2HtnFF5ysY1n6Yx/nRZ4xm9BmjiQ2P9VOEQghxYpJUaonM3Ey2HdoGwNrdaxnabqhH\nv0mdSSZ2OxQXQ1GRKXZ7afGanInNZkpAgCmBgaYEBZlHWX5fiDpHkkoNO5J3hO2HttOnRR+P470S\nevHmL29SWFxIQlQCuUW5Nbcul8MB+fmQkwPHjsHx46WPubmmHD8OeXmlJT/flIICUwoLzaO9Cvez\nDwoyJSSktISFQWioKWFhpoSHl5aIiNISGWlKeLgkKCFqiCSVGmJ32Pnnd/9EH9IAdIjvQMOwhiXn\nw4LCmNhzIq2iW1VNrSQ/H7KySkt2dtnFlUiKi0/9M6uaq7aTl3dq97HZShNMgwaeJSqqtERHm8cG\nDUwyE0JUmvzPqSYOh8Oj+SrAFoDNZitZn+v7fd9zXuJ5Hu/p1rRbxTe1200iOHrUJIqjR8t+npVl\nkoo/2GylzVeuEhBQ2szlusbhKC2u5rHi4tKms6pMcg6HSZ45OXDggLX3RER4JproaM/ifiwk5MT3\nE+I0IUmlCh3IOcCG/Rv4+cDPpLROIaVNisf5Pgl9SM1IRcUrmjVoVnrCvVZRVqJwlexs336JqhIS\n4vnbvHszknvzkqvZydUEFRpq3hscbEpV9YU4HCa5uJrVXMXV7ObeFJebax6PH/csx46ZcjI1Hdc9\nrCSh0FDfpOOdeFzPQ0OlKU7Ua5JUqtDWjK18pD8CHEQSQkq4MonAmTB6H82k69HeRO8tgq8+gay3\nqq9WERRkvshiYjy/1FzNO9HRns1AwcFVH8OpsNlKE1XEKfYtFReb5OJq6nM1++XkeDYDujcTViZ5\n56tu7oUAAA+MSURBVOfDn3+aciKuvxfXn79785t7k5zrufQHiTpGksqJuDqxjx2jKPso+o8tpB7c\nyvHco4yP7F/65ZSTQ7esA7xesB4KC9nuWEf+0lRCCSy5VaiznJLISJMoXCU62vO1K5HIl1GpwMDS\nGoMVruYy1y8Ebr8YePRRuZ5XpqmuqAgOHzbFioAAzxqk67l7cQ1KcD26apUBMg1N1LwaTypKqUBg\nDnADEAV8AtyhtS6znUEp1Rv4J5AM7AMe1lovOekA9u0z/6Fdo5rcRze5Sm6u5ygo54imfFshz0R/\nC0AANq44etAjacQBI8Ka0Kq4AZ2KYj3OVSgoqPRL70QJQzqQq5/NVlp7SEio+FqHw/w78U405T0v\nLKxcLK5+tOzsyv8cYWG+zZcREaUj5twf3Yt3E2egxX/HQuCfmspM4HrgOuAQsBB4FxjofaFSqjHw\nKfAacBMwHFislPpDa/1ZpT/57bdh1aoKL/k65A900BF2BWYxOac7sY7SukWkI5gWxZHsCzyGHQfb\ng47SpSjO4/2X5LUzT0JDPZs5ympndxWpVdRd7iPLmjc/8fX5+WWPwPN+dJVTGfnm6nM6Va5h3d79\naK5H9xIc7Pm8vBIUVPro/jw4uHT+kqiTajSpKKVCgLuAO7XWK53HrgJ+U0r111p/4/WWicBR4C6t\ntR1IVUr1BCYDlU8qO3YAcMxWyN6AYzS2hxHnCPO4ZEPwQVKDjgCwKyiLXoWNzT90Z9PD2SEODoc6\n6BjdjqSGSRAd59seHhVV+/ooRO3g+lJu1Mja9UVFpQMOXInGVYvOyfGcU+Q+QKEqkol7DEVF5t41\nwX0EoSvpuE+K9X7uXdwn0rq/dp9k63q02TzPlVVcIxe9H8s67z6ht6zjFRX30ZHuidX7uoqucT0/\n0aMrrmpQ0zWVHpgmrzWuA1rrNKVUGpACeCeVFOBLZ0JxWQMsVErZtNaVGwp1xRW89eFcVudpCArk\nipj+DIvvU9osEB5OuyPfkZrxHQQFsbP9MHolX+vR5HReBbcXosoFBZU2f1aG3V46Is67qde9uCay\nuj/3fqyuEYflcThMM2FlmwqFdcHBMGoUjBhR5beu6aTS0vm4z+v4fqBVOdf/WMa1EUA8kFGpT09M\nJH7M1fDLWwDsbXUm9LjM45LkI82IOdyNtg3b0iqmFQRIH4aogwICSoeEnwrXF7xr9QT3VRTcn3uv\nrOD+vLCwdHi4q7heez8WF1ftqgyibIWFpivg/POrvMZS09+YEYBda+39K0g+EPb/7Z17sN3TFcc/\n95LQqgpS2lQmEcZXU1GPRhFBRko8IuJZqkRrKMVQFVQnXvVK1ShlGCoeqXeUNBpEuEGIZ71jjXe9\ngsQrQcUj/WPtX/Lzyzn33Nyeey/ntz4zZ37n7L1/57f3mnN+67f2XnutKu2Ldnzmf1upfU16r9Cb\nbkt1o9fyvej5zcWnIPr06EOfHn3a89VB0Hg0NS1aI+ksvvhi0ZRbfjNsvqwtr+Km2vz7bNNt9j7f\nvhivrtLnfHl+E29xU2+19/DlttVeWbviOcXzs8/FNtXKl1nGrZQOmALrbKXyMdAsaWkz+yxXvgzw\nYZX2RS/c7HOl9jVZc6U1OWfbc2huCnfLIPhK0tzc+YosqBudfWd9JR2LbjK9WHxKLGtfqe08fAF/\niWluag6FEgRB0EF0tqXyGDAX2AIYDyCpL9AXuKtC+3uA/QqL8kOA6YXF+yJLAcyaNas+vQ6CICgB\nuXtmuzcnNS3Iz711ApJOxzc+jgLewvep/NfMtkwuxysB75jZfEmrAgZcA5wNDAX+DAwzsztaucZm\nwN0dOY4gCIIGZrCZ3dOeE7vCtekPQDfcUulG2lGf6jYF7sStkRYze1PSMOAc3AvsZWCf1hRK4kHc\nHfkN4CsY0z0IguAryVL4ksOD7f2CTrdUgiAIgsYlVqyDIAiCuhFKJQiCIKgboVSCIAiCuhFKJQiC\nIKgbpQlstaR5XBqB5JI9Fo+D+Q3gfuBIM3sy1W+d6gU8CxxtZpO7qLsdjqSN8b1PQ82sJZWVQgaS\n9gdG4zH2ngaOyrwoyyADScsBpwO74OGf7sP/C0+n+oaWgaQLgKXNbP9cWatjlrQK8Ff8/jEfGAcc\nV4iGshhlslROYFEel83xYJUTurJDHYmkZuAfwFrACNxd+31gqqSVJfUHJgLX4QnQbgJulPTDLupy\nh5JuKleQ29RVFhlI2hc4D7+pDgCmARMl9S2LDPBEf0OB3YBN8JiCt0hatpFlIKlJ0knAgYXytox5\nAvBdfLP6KGA/4MRa1yyFS3HaVDkbz+NyaSrrC7wIDKqQx+Vrj6T1gUeA/mY2M5UtA7wDHAQMAmRm\nW+bOuRN41swO6PwedyySLsQV7JbAEDNrSWUNLQNJTfjv/HIzG5PKmvHfxlj8htHQMgCQNBs40czO\nTZ/7A08BG+I33IaTgaR+wN+AdYCPgCmZpVLrty9pEzwVST8zezHV7wucC3zHzD6hCmWxVCrmcQFe\nwjdJNiL/AXbAIxJkZKFtVsTH3VI4p4UGlIek7YDtgcMKVWWQgYA+eFQKAMzsCzNbz8yupBwyAHgb\n2EPSKukh81fAu8ALNK4MNsXjJw7AHyzy1BrzYODlTKHk6pfH76dVKcuaypLmcfnaY2ZzgJsLxYfh\nayu3ASdTAnlI6ok/re2H30TyrEbjy2CtdOwh6Q78qfUZ4JhkoZdBBgAH4FE83sSjbHwEbG1m70lq\nSBmY2XgWxVgsVtcac7V6Upv7q123LJbKkuZxaTgk7QicBpyVpsOq5appNHlcCEw0s1sq1JVBBt9O\nx8uAi4FhwJPAHZJ+QDlkALAmMAu3WAcBtwLXJ4VSFhnkqTXmxerT/XMBNeRSFktlSfO4NBSSRgEX\nAVfjHkBQPVdNw8gjzQGvD6xbpUnDywDIHqROSdNdSPoNPr1xECWQgaTV8d//ZmY2I5XtBcwEjqAE\nMqhArTEvVi+pG9BEDbmUxVJZ0jwuDYOk43BXwAvwYJzZukq1XDWNJI9RuBk/S9I8Fq0vTU4ulmWQ\nQTaWJ7KClEZiJrA65ZDBj3Gvv4eygvTU/W/cgimDDIrUGnO1eqghl7IolXweF6BmHpeGQNJofG/O\nGDM7NJeTBny/xhaFU4bQWPLYG+iPLyyuB2yTyvcHxlAOGTyCP1kOzAqSR1h/4HnKIYNX03GhxZqT\nwbOUQwZFao35HqCfpN6F+rnAo619cSlciqH1PC5d16uOQ9K6+A3lMuC4QvVcoB/wML7OchWwF3AU\nsEHmgtxopPnzV1jkUjyAEshA0sl4eon9cYvlYODXuKLtToPLIG18vgdYDh/7bOBw4Oe448K3aXwZ\ntADP5VyKW/3tJ6V7L76GcgiwKn4vOd/MTmjtWmWxVMDzuPwd94a4E8/NsmuX9qhj+Rlu8v8SzyuT\nfx1hZk8AI3EZPArsCAxvlD9RWyiRDMYAf8IT3T2Bb/7b2pyGl4GZfQ4Mxz2WrgZm4NNeg83s5TLI\noEitMadZjZG4t9zd+BT6xcBJtb67NJZKEARB0PGUyVIJgiAIOphQKkEQBEHdCKUSBEEQ1I1QKkEQ\nBEHdCKUSBEEQ1I1QKkEQBEHdKEvsr6DBkXQpnoStNaaZ2ZZpI9hnZja0wztWBUkr4ZtTh5rZc1Xa\njML3B/Q2s1crtemgvk0FLjSzazvrmkHjEEolaBROxuObZZwPfMaXc6h8kI4H4zuFu5JzgWurKZQu\n5ghgiqQWM3urqzsTfL0IpRI0BGb2PB7LCgBJH+DWyIwKbZ/uzL4VkTQQT2vbq1bbrsDMHpc0A49C\nUUxsFgStEkolKB3F6S9JC/CUspsDI/A8EufiYU3OBnbBQ4Ffhie3WpDOWxnP+z4Cz4j3MHC0mU2v\n0YWj8dSus3N9agZ+jyeT6oknUlssoKGkA1ObtfE10Zl4WPsJaUrtdWBsljo4nbMCnkvkd2Z2nqQ9\ngWPwBF5z07VGm9nruUtdCVwi6WQze7vGeIJgIbFQHwTOmXigwRHAJOBE4AE8Q+DOwA14LpqdASQt\nC0zFkz4di8dQeheYmiyRikj6Fh5naUKhaixwPB5faSQwB1dY+XMPA85L526PB0T8FLhK0vfN7B1g\nYirPsweeB+MqSYOAK9J3DAN+C2yFx8XLMwmPHbdTtbEEQSXCUgkC5xEzOxxA0mOkaNZmdkgquwO/\nWW+C35B/gYdS38jMHkptJuOK6FTgp1WuMxjoltqRzuuBTzOdaWZZwL5bJfXCb/wZq+NWyKm5c1/C\nLaRNgeuAS4DdJA3KWUz7AP80s3ckDcYV5Rlm9kn6jjnAQElNmRVmZh9KmomHO7+oTRIMAkKpBEHG\nwpzbZjZH0ueFsgWS3gV6pKKt8GRFj0rK/48mAcdK6m5m8ytcp186vpgr2xhXNDcV2l5LTqmY2RGw\nUAmtjUfaHZKqu6fjbXj+kL2B6ZLWwNPn7pDqpwGnAE9Kuh74F3CbmU2u0NeX8JxDQdBmYvorCJy5\nFcpaS5u6Mp5V8tPC63j8Bt+zynkrpONHubKV0rG4dvFG/oOkNSTdjk+zTcPzX3RL1U0AKbPn5cDu\nkrrjVsobwC2p/j5gO+AFfOrrLuA1SYdW6OuHuf4GQZsIpRIE7eN9fJF8YJXX7CrnZeUrVChbtdB2\n5exNWsi/GVdWA4HlzOxHFNZdEuNwRTUU2B0Yn3KKAGBmt5rZNsCKeJ6RJ4BzJG1Y+J4VWxlHEFQk\npr+CoH1MA7YFXs97TaUsi32ovhHz5XRcDXgvvb8X9y7bLb3PGJ573xMQcEi2hpPYNh0XPiCa2XOS\n7sIdC9bGvdey/p2BT5n9xMw+AiZJegVP1NQbX5/JWA14vMo4gqAioVSCoH2MAw4Fbpd0Kr6+sgM+\npXRituBdgbtxBbIZ8CSAmc1LyuiPkj4GWnDvroVKxczeSovyh0l6Hd/IuQ2eFhc8VW6xf+OABwv7\ncm7Hp80ulTQen6objVskLVmj5Ia8Dp4xMgjaTEx/BUE7MLN5uCfX/cBZ+IL3MODQ1nJ4J+tgMoss\njKz8NFxB7IG7BQ8AjiycvhO+PnI5cA2+wD8ceCb1Jc+kdBxXuM4UYE9cYdyA5yefBwwxs/dyTbcG\n5uNTbkHQZiKdcBB0MpI2AqYDfc3stQ66xj542Jrvmdn77Th/CvBU5mYdBG0lLJUg6GTM7AHgRha3\nRP5vJI1M03F/AS5qp0LZANiAyk4AQdAqoVSCoGs4GNhV0pp1/t6++DTafXjsrvZwFu4QMKtenQrK\nQ0x/BUEQBHUjLJUgCIKgboRSCYIgCOpGKJUgCIKgboRSCYIgCOpGKJUgCIKgboRSCYIgCOrG/wDK\ne236ks8bQQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frame = system.results\n", + "plot_results(frame.S, frame.I, frame.R)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise** Suppose the time between contacts is 4 days and the recovery time is 5 days. Simulate this scenario for 14 days and plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\ne236ks8bQQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tc = 4 # time between contacts in days \n", + "tr = 5 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "\n", + "frame = system.results\n", + "plot_results(frame.S, frame.I, frame.R)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Metrics" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Given the results, we can compute metrics that quantify whatever we are interested in, like the total number of sick students, for example." + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def calc_total_infected(system):\n", + " \"\"\"Fraction of population infected during the simulation.\n", + " \n", + " system: System object with results.\n", + " \n", + " returns: fraction of population\n", + " \"\"\"\n", + " frame = system.results\n", + " return frame.S[system.t0] - frame.S[system.t_end]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an example.|" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.333 0.25 0.467162931836\n" + ] + } + ], + "source": [ + "system.beta = 0.333\n", + "system.gamma = 0.25\n", + "run_simulation(system, update1)\n", + "print(system.beta, system.gamma, calc_total_infected(system))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write functions that take a `System` object as a parameter, extract the `results` object from it, and compute the other metrics mentioned in the book:\n", + "\n", + "1. The fraction of students who are sick at the peak of the outbreak.\n", + "\n", + "2. The day the outbreak peaks.\n", + "\n", + "3. The fraction of students who are sick at the end of the semester.\n", + "\n", + "Hint: If you have a `TimeSeries` called `I`, you can compute the largest value of the series like this:\n", + "\n", + " I.max()\n", + "\n", + "And the index of the largest value like this:\n", + "\n", + " I.idxmax()\n", + "\n", + "You can read about these functions in the `Series` [documentation](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html)." + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def metrics(system):\n", + " frame = system.results\n", + " return frame.I.max()" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.043536202687592354" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "metrics(system)" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def time(system):\n", + " frame = system.results\n", + " return frame.I.idxmax()" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "30" + ] + }, + "execution_count": 92, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "time(system)" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sick_end(system):\n", + " frame = system.results\n", + " return frame.I[system.t_end]" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.00067419431560344738" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sick_end(system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What if?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use this model to evaluate \"what if\" scenarios. For example, this function models the effect of immunization by moving some fraction of the population from S to R before the simulation starts." + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def add_immunization(system, fraction):\n", + " \"\"\"Immunize a fraction of the population.\n", + " \n", + " Moves the given fraction from S to R.\n", + " \n", + " system: System object\n", + " fraction: number from 0 to 1\n", + " \"\"\"\n", + " system.init.S -= fraction\n", + " system.init.R += fraction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's start again with the system we used in the previous sections." + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0.3333333333333333, 0.25)" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "system = make_system(beta, gamma)\n", + "system.beta, system.gamma" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And run the model without immunization." + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.46832081102878098" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(system, update1)\n", + "calc_total_infected(system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now with 10% immunization." + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.30650802853979753" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system2 = make_system(beta, gamma)\n", + "add_immunization(system2, 0.1)\n", + "run_simulation(system2, update1)\n", + "calc_total_infected(system2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "10% immunization leads to a drop in infections of 16 percentage points.\n", + "\n", + "Here's what the time series looks like for S, with and without immunization." + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nb2/c3fFWVR7paWVlhaen500vhtkYmBS5EOIx4D3ga2AYULoK4hdAL2B+XQTXUtlYWzB+YAh2Nto+\nEfmFxfy69TTZV2u2052iXMv+/fvx9fXl119/rXbR1ejoaHr37l2hrE+fPkRHRwPg7+9PQkICGRkZ\nxMbGcvnyZXx9fcnIyGDlypU8+eSTJsVRvvlr2bJlPP7447z33nv069eP8PBwXn31VVJTU5k8eTJh\nYWGMHDmSLVu2VLj+888/54knnqBr164MGzaMDRs2sHbtWkaMGEF4eDiTJ0/m4sWLQPXNS5XLIiMj\n+fLLL3nqqacICwtjwIABvP/++8bzyzd/zZ49GyFEla+HHnoIgPz8fBYtWsTQoUPp3Lkzffv2Zc6c\nOeTm5pKSksIDDzwAwLBhw1i2bFmVWHJzc1myZAmRkZF06dKFe+65h507dxpjmT17NnPnzuW1116j\nT58+hIeHM3PmTLKzG651w9SdH2cBb0spnxdCGLdAk1L+KIRoBcwEnjPlRiXXvwY8CjgCa4BnpJTV\nDncSQowqOb89EA+8LqX83sS4mywneyvGRbRh1eZYCgqLyc4tZPX2eO4cGoqlhfmNb6DUu1/lr/wW\n85tJ5w4MGsiDXR+sUPbN4W/YmrjVpOtvb3c748S4GsdYasKECUyYMOGax9PT0/H29q5Q5uXlZXyz\n69q1K6NGjWLgwIGYm5szbdo0PD09mT9/Pvfee+9Nf5LfvXs3rq6ufPfdd+zfv5+5c+eyfv16nn/+\neWbPns3ixYuZM2cO27dvN17zwQcf8Morr/Dyyy/zxhtv8NxzzxEaGsrbb79NTk4OU6dO5YsvvmDW\nrFkmx/HPf/6TuXPnMm/ePNasWcOSJUvo27cvPXv2rHDevHnzmDlzpvH1xo0befXVV41J9c0332Tb\ntm0sXrwYHx8fDh8+bExEDz30EB9++CFTpkzhhx9+ICQkhKNHj1a4/4wZMzh16hTz58/Hz8+P77//\nnieeeILvvvuOsLAwAH755Rfuuece/vOf/5CUlMT06dMJCQlhypQpNf771wZT61jBwNprHDsC+NTg\nma8CjwAPA4MAf+B/1Z0ohBgA/A5sA3oCi9Ca3B6qwfOaLE9XW0b3a41ZyfL45zNzWbsrUa0TptS5\nvLy8KlvaWllZkZ+fb3w9f/58du/ezZ49e5g8eTJJSUmsW7eOSZMmsXLlSm677TbuvvtuTp48WaNn\nL1iwgODgYO666y5cXV0ZMGAA48ePJyQkhPvvv5+MjAxjzQO0msUdd9xBYGAgf/nLX8jJyeHZZ5+l\nS5cu9O3bl/79+1fY/90UQ4cO5d577yUgIIDJkyfj5OTEwYMHq5zn6OiIp6cnnp6eXLhwgUWLFvHC\nCy8QEREBQFhYGIsWLaJnz574+/szZswYunbtSkxMDObm5jg7ayM+3dzcjJt7lYqNjWXjxo3Mnz+f\ngQMHEhISwosvvkinTp344osvjOe5uLjw4osvEhwczODBg+nfv3+1sdYXU5NKCtD7GsfCS47fkBDC\nCpgGzJVSrpNS7gfuAwYIIfpXc8ksYIeUcrqU8qSU8jvgTWCBiXE3eQHejgzpUdY8EZ92me2Hb7wX\ntqLcCmtrawoLCyuUFRQUYGtrW6HMycnJ2CeydOlSHn/8cXJycnjjjTf417/+xWOPPcbzzz9v8nM9\nPT0r9LHY2dkREBBgfG1jY2OMpVRQUJDx59L4AgMDK1xT/nxTtG7dusJrR0fHKn+P8jIyMnj66acZ\nPXo0jzzyiLF8woQJ5Obm8tZbbzFlyhRGjBhBdHQ0er3+hjHExMQAWud9eT169KiQJAMDAzE3L2u9\nuFGsdc3U5q8vgZeEEFeB0vq9rRBiPDAPrb/FFN3Qmrw2lRZIKROEEAnAQGBHpfPbAr9UKjsAtBZC\nBEopk2gBOga7k3kln/3yHACHTp3HxcGaLqEeDRyZUt44Me6WmqQe7PpglSaxhuLr68u5c+cqlJ07\nd65Kk1ip48ePc+DAARYtWsSWLVsIDg7Gz88PNzc3ZsyYQXZ2Ng4ODtVeW175XSdL3ajT+mauKa+4\nuLhKWeVaGlTtVC9VUFDAM888g4+PD6+++mqFY/PmzSMqKoqJEycyYsQIZsyYwYIFpn0mLk2glen1\n+gq/c01irQ+mJpVFQBDwdskXQGlv2X+AhSbep/Qj95lK5alAAFVVV9665LsX0CKSCkC/Lr5kZecT\nd0Ybtrn14Blcnazx93Js4MiU5qhHjx7s3bu3Qtnu3bur9CmUevvtt5kyZQrW1tbodDrjJ/GioiIA\nkz6Z1wdLS23wS/mO7ISEhFu659y5czl37hwrV66s8AZ/6dIlVq5cybJlyxgxYgSg/T2Sk5ONI+6u\nt/NraGgooA2qGDhwoLF8//79xmONkUlJRUppAJ4UQrwNRAJuQBawRUp5pAbPswP0UsrKdbN8oLq0\n/G/gCyHEL8CPQBfKBgRUTc/NmE6nY3jvIK5siuXcpavoDQbW7EzknmFtcXawbujwlGbmwQcf5K67\n7uK9995j7Nix/Pbbbxw6dKjKJ3GAnTt3kpKSwsSJEwHo2LEjsbGx7N69m0OHDhESEtJo9rNv164d\ndnZ2fPzxx0ydOpWEhAS++uqrm77fRx99RFRUFJ999hkGg4Hz588bj7m4uODg4EBUVBTt27cnOzub\nTz75hLS0NGNzXGk/yokTJ4z9K6UCAwMZO3Ysr776KvPnz8fX15cVK1Zw7Ngx5s6de9Mx1zVTayoA\nSCljgJhbeF4uYCaEsJBSFpUrtwZyqnneciFEENpQ5u/RaiZLgPfRklqLYmlhxpj+rVkRdYqreYXk\nFRTx+/Z47opsi5WlGhGm1B4hBO+//z6LFy/ms88+o02bNnz88ceEhIRUOfftt99m2rRpxiYZPz8/\nZs2axbRp03B1deXNN9+s7/CvycHBgcWLF7NkyRLGjBlD+/bteeGFF3jmmWdu6n4//PADV69eNQ4N\nLk9KydKlS3nzzTe5/fbbcXNzY9CgQTz22GOsX78e0GojI0eOZMaMGdx///0MHz68wj3+8Y9/sHjx\nYmbNmsXVq1fp0KEDX3zxRZV+lsZEd622NyHEtUZ7VccgpRx5o5OEEL2B3UCglDK5XHk88JGU8q1r\nXGeB1tyVBoxDq7W4SCmrHYwthGgNxEdFRVU7Bj+vKA8bi+rbK5uC9As5rNoUS3HJKLA2rZwZ3a/1\ndavSiqIoN5KSksKwYcMAgqWUCTdzj+v1ZlkBliZ+mdoUdQi4AgwuLShJAK0p66Oh3LG/CSGWSimL\npJSpJc1wd6CNCLup2T0Xrl5g1tpZLD+0nLQrTXOJeR93e4Z0L+tqOn0mi30nz13nCkVRlPpxzeYv\nKeWQ2n6YlDJfCPEhsEQIkQGcAz4ENkspd5UMOXYDLkopC4CTwLtCiGi0uSr3Aw8CN72aW1R8FAXF\nBWxP2s72pO109urMqNBRtHVve6u/Xr3qEOxGRlYuh05pbbi7j6Xj5WpLoE/jaLtWFKVlMrlPRQhh\nBtwORADOwFlgk5RyQw2f+SJa7eabku9rgNIGzf7ARmBoyb3XCyGeRpsw6QccBcZJKTdXvqkpDAYD\nqVcqzvE4eu4oR88dJcQthNGho+ns1bnJNCP17+rH+Uu5pGZkYzAYWLs7ib8Mb4eTfYsaw6AoSiNy\nzT6V8oQQ3mhv/mFoI7XOo/VxWAJRwEQpZZWO9oZyvT4Vg8FA3KU41sWt49DZQ1XGcwc4BzC27Vi6\n+XRrEsnlal4hK9bHkJ2rDajzdLHlrsi2WJg33QXpFEVpGHXdp1Le24AvMFpKaSulDJRS2gB3Ad3R\nRmQ1CTqdjlC3UJ7u9TTzh8xnQOAAzM3KRk4lZyXzcfTHLNi8gEu5lxowUtPY2Vgyql9rzMzKlnLZ\nerDyNCBFUZT6YWpSGQfMklL+Wb5QSvkTMAe4t7YDqw/eDt48HPYwCyMXMqzNMCzNLSscd7ZxvsaV\njYuPuz0Dw1oZXx87fYGTiRevc4WiKErdMDWp5HPteSGJtRRLg3G1deUvnf7ComGLGBk6EmsLa8aJ\ncZjpKv558oryGijCG+sc4k7bgLJ97jfvS1F7sCiKUu9MTSofAf8o6VsxKtmcazbwWW0H1hAcrR25\ns8OdLBq2iHCfipOLDAYD7+58l3d3vktCZkLDBHgdOp2OoT38jZt7FRbr+XNXIoVFVdc1UhRFqSvX\nHP1VafKjDugInBZCbEcb+eUKDEDrrG9Wy+baW1XdyPLQ2UPGZLJo6yJ6+vVkYoeJeNg1nkUdrSzN\nGd2vNT9EnaKoWM/Fy3ls3p/C8N5BN75YURSlFpg6+dECbZ7InpLX/oA9cBDYizbct1lLvZJaYTRY\ndGo0L298mRXHVpBT0GgGvuHubFthqfyTiZdU/4qiKPWmXic/NmVj2o6hh28Pfjr5E/vT9gNQrC8m\n6nQUu1J2Ma7dOAYFDaowkqyhtA9yI+VstjGZbN6fgrebHa6OTXdpGkVRmgY1maEGvB28ebLnk7wQ\n8QIhbmUL6+UU5PCfo/9hweYFHDt3rAEjLDO4e6uy/pUiPWt3JVJU3DiWH1cUpfm6Xp9KATBASrlX\nCFEIXHeWpJSyxUzjbuPahln9Z3Ew/SArj68k42oGAOnZ6Szbs4wFQxfgZe/VoDFaWpgzsk9rVm6I\noVhv4HxmLjsOpzIovOoCm4qiKLXlesu0LKRsM62F3CCptDQ6nY5w33C6eHdhQ/wGVsesJq8oj4jA\niAZPKKU8XW2JCGvF5gPabs+HYzMI9HGita9aH0xRlLpxvT6V+eV+fvV6NxFCNPuO+muxMLNgRMgI\n+vr3ZXXMam5vd3uVczLzMnGxcWmA6LT5K0lnrxCfqk0zitqbxP0jBHY2lje4UlEUpeZM6lMRQhQL\nIXpd49hAQNZqVE2Qk7UT93e5H0fritv7Zhdks2DzAj7Y8wEXc+t/FJZOpyOyZwD2JUkkN7+I9XuT\nGnQPa0VRmq/r9anMRBs2DNo8lclCiNHVnDoAKKiD2JqFH0/8SE5BDofPHkZekIwX44kMjqwyW78u\n2VpbMLx3ID9viQMgKf0Kh09lENbOs95iUBSlZbhen4ol8FLJzwZgUjXnFAOZwPxqjrV4BoOhQvLI\nL8rnh2M/sCtlFw91fYggl/qblBjg7Ui48OKA1Dbz2nEkFX9vB9ydbestBkVRmj9Tl77XA32llHvq\nPqRbd6PthOtb3MU4vjn8TYW9XMx0ZgxvM5xxYhxW5vUzcK64WM/KDac4n6mtCebhYss9kW0xV8vk\nK4pCPS59L6U0K00oQggbIYS3EEL19JooxC2EeYPmMbHDRONKyHqDnrVxa1mweQExF2LqJQ5zczNu\n6xNk3GslIzOX3cfS6+XZiqK0DCZ/RBVCjBNC7Aay0db6yhFCbBBCRNRZdM2IhZkFo0JH8fLglxEe\nwlh+Puc8b+94m59O/lQvcbg52dC/q6/x9YGY86Sez66XZyuK0vyZOvrrPuBntA77F4HJwCto2wpv\nEEIMrbMImxkvey9m9J3BQ2EPYWtZ1p/h4+BTbzF0CfEgwFsbpWYwGFi/N4n8QrWasaIot87UPepf\nAr6TUj5YqXyREOK/wCKgb61G1ozpdDoiAiPo7NWZbw9/C0CfVn3q9fnDegXy/dqT5BcUczmngG0H\nzzCsV2C9xaAoSvNkavNXMLD8Gse+ALrUTjgti4uNC1N6TWFyj8kVVkAGSMpKIu5iXJ0928HWkiHd\nywYxnEi4aJwgqSiKcrNMTSqHgGs1cXUHTtROOC2PTqerMvqrsLiQLw98yeIdi1l1YhVF+qI6eXbb\nANcKu0Vu3JdCbn7dPEtRlJbB1OavV4DvhRCOwPdoHfXuwO3ALGCGEKJ/6clSyh21HWhLsvrUatKu\npAGwJnYNR88d5fHuj+PnWPur4QwOb8WZ89lczSvkal4hm/anMKpvUJWak6IoiilMramsQdvpcQqw\nBYgFdgMvA7Zo2w1vRdvIa2vth9myDA4aTHuP9sbXKZdTWLhlIVGno2p9eRUbawuG9Qwwvo5LyeRU\ncmatPkNRlJbD1JqKGt1Vj1xtXZnedzobEzby44kfKSwupEhfxIpjKzh2/hiPhD2Cs41zrT0vyNeJ\njsHuHI+/AMDmAym08nTA3lZNRVIUpWZMSipSys11HYhSkU6nIzI4kg4eHfjiwBckZyUDcOzcMRZs\nXsAj3R5HP9WYAAAgAElEQVShq3fXWnteRJgfKeeucDmngPyCYjbtS2bMgGDVDKYoSo3UZPKjoxBi\nTsmExxNCiE5CiOeEEJF1GWBL5+voy+yI2YwMHWl8g88uyOaDPR+w4tiKWmsOs7I0Z2iPsmaw+LTL\nyKRLtXJvRVFaDlMnP7YCDqJNfARoB1gD/YA/VGKpWxZmFtzZ4U6m951eYV8WWwvbWq1JBHg70iXE\nw/h668EzZOcW1tr9FUVp/kytqbwD5KPNVxmBNrMe4B4gCm10mFLH2nu05+XBL9PNpxuhbqGMbTe2\n1p/Rv6svTvbaEOf8gmI2RiervVcURTGZqUllJPCKlPIc5bYVllLqgWVAWB3EplTD3sqep3o+xd/7\n/L3KnixX8q+QV5R3S/e3tDCvMLM+MV01gymKYjpTk4oZcK13KwvKai5KPdDpdNhY2FQo0xv0fL7/\ncxZuWWjs1L9ZrTwd6BqqmsEURak5U5PKNmCOEKL8jk6lNZa/AttrNSqlxtbEruFkxknO5ZzjjW1v\nsDlh8y01W/XrUrEZbPM+1QymKMqNmZpUXgA6AaeAr9ASynQhxF4gkrIOfKWBeNp5GmsvRfoivjvy\nHZ/v//ymm8MqN4PFp10mRjWDKYpyA6bOUzkihOiF1iF/G9o2wmOAzcDjUsrDpj5QCGEOvAY8Cjii\nzdZ/Rkp59hrnRwJvoCW1dOATYLGUUn1sLqdXq14EuQTxSfQnpFxOASA6NZqkrCSe7Pkk/k413wGz\nlacDXUI8OBKXAcCWg2cI8HbEzkZNilQUpXomz1ORUsZIKR+QUvpKKa0Af+D/apJQSrwKPAI8DAwq\nuc//qjtRCBEK/Fby1QWtxvQK2nIxSiVe9l7MjpjNoKBBxrLS5rDtSTfXQll5NNjm/SmqGUxRlGsy\ndZ6KmRDiDSHElnLFA4AMIcTLpj5MCGEFTAPmSinXSSn3A/cBA8ovSFnOKCBXSrlASnlaSrkSWI02\nGk2phqW5JQ90fYAnuj+BtYU1oK16vPzQcv518F8UFtesw93SouKkyLgzWcSlqCXyFUWpnqk1lZfR\nksHacmVHgcXAC0KIGSbepxtak9em0gIpZQKQAAys5vzzgJsQ4v6SxNYZrXYTbeLzWqxerXoxd+Dc\nCisb70jewepTq2t8rwBvRzq1cTe+3nxALZGvKEr1TE0qjwCzpJSvlRZIKc9JKf8BzAOeMvE+pQ37\nZyqVpwIBVPU/tE3AvgUKgCNo/TivVXOuUomPgw+zI2bT17+v8fXo0NE3da/+Xf1wKFlgMje/iK0H\nK/8nVBRFMT2peAEnr3HsCGDqPrR2gF5KWbkNJh+wqeZ8F6A18BbQCy253YaawW8yawtrHu32KA92\nfZCnej5lbBKr8X0szRlSrhksJumS2ilSUZQqTE0qEph4jWPjAFP3vc0FzIQQlUedWQM51Zz/JlAk\npZwtpTwgpVwOPIc2Z8a9mvOVauh0OgYGDcTX0bfKsU0Jm7iSf8Wk+7T2daJ9UNlOkZv3p5BXoJrB\nFEUpY+p+Ku8C/yp5I18FnAM80RLK/cATJt6ndKq3b7mfAfyo2iQG0LfkeeXtBizRakcXTHyuUo2d\nyTv5/sj3rIldw5M9niTYNfiG10SEtSIx/Qq5+UVk5xay43AqkT1NragqitLcmVRTkVL+G/g7MARt\nO+H1wH/QRmdNl1J+beLzDgFXgMGlBUKI1mhNXFuqOT8FqLxpSGdAj+m1I6UaV/Kv8N2R7wC4lHuJ\nJTuWsDVx6w2HC9tYWzC4e9mcl+PxF0k+a1pNR1GU5q8m81Q+QKthdEAbqdUF8JFSvl+De+QDHwJL\nhBCjhBDd0ZLTZinlLiGElRDCp2ToMcA/gduFEC8KIdoIIW5HWzH5QynlZVOfq1TlaO3Ikz2fxM7S\nDtBm4X9z+Bv+ffjfNxx2HOrvQoh/2RL8G/clU1hUXKfxKorSNJicVErYSc0OtD1Vpggh2tTwHi+i\njeb6BtgIJAJ3lxzrD6SVfEdK+TtwJ3AHcBhYCnwKPFvDZyrV6OzVmbkD51aYbb89aTuLdyzmYu7F\n6147OLwV1lbmAFzOKWDXkfQ6jVVRlKZBZ8rsaCGEQJvV/h8p5UtCiH8Ac9FWJ84FbitJNI1CSZNa\nfFRUFP7+NV+epKUpKC7g28Pfsitll7HMwcqByT0m096j/TWvO5l4kfV7kgBtMMCdQ0Lx9bCv83gV\nRakbKSkpDBs2DCC4ZA5hjZlaU3kDKAJ+LmmaegZYgTbk909g4c08XGkcrMyteLTbo9zX+T7jHi3Z\nBdks3bWUdXHrrtnPIgJdCfRxBMBgMBAVnURRsb7e4lYUpfExNakMRltaJRqts94Z+KSkX+NjoGfd\nhKfUF51Ox9DgoczsPxMnaydASxR/xP7BlYLqO+J1Oh1DewRgaaH9M8q8ks/e49WuC6ooSgthalKx\nBEob2UejzSnZVvLaHK0WozQDoW6hzBs0jzaubdDpdEzuPtmYZKrjaGdF/65lS8EckOc4d+lqfYSq\nKEojZGpSOQrcKYTwQduXfq2UskgIYQn8DW1WvdJMuNi4MLP/TKb1mUYHzw43PL9zG3f8PBwA0BsM\nbIhOplivVjJWlJaoJgtKPoE2QdENrY8FIAYYiracvdKMWJhZVJtQYi/G8sepPyr0s+h0OiJ7BmBh\nrv1zysjM5YA8V2+xKorSeJg6+XEd2ryU/wM6lPStALwN9JRSbqij+JRGJDMvk0+iP+Gnkz/x6b5P\nK+wq6eJoTe9OPsbXe4+nc/Hyze06qShK02XqMi1IKU8DpyuVmTzxUWn6/oz9k8v52pzT/Wn7SctO\nY0qvKXjZewHQra0ncSmZnL14lWK9gai9Sdw1tC1mZrqGDFtRlHpkUlIRQqy90TlSyhG3Ho7SmN3d\n8W4MGNgYvxGAtCtpvL71dZ7o/gSdvTpjZqY1g/13fQx6vYGzF69yOPY83dp5NXDkiqLUF1P7VKzQ\nRoCV/3JF2/0xDIitk+iURsXczJz7Ot/Ho90excJM+zySW5jL+3ve5/dTv2MwGHB3tqVXB2/jNbuO\nppN5Jb+hQlYUpZ6ZVFORUg6prlwI4Qr8wbX3WlGaoX4B/fBz9OOj6I+4lHsJg8HAzyd/JjEzkUnh\nk+je3pu4M1lkZOZSVKxn475k7hgcgk6nmsEUpbmr6dpfFUgpLwGLAFO3E1aaiSCXIOYNnIfwEMay\ng+kHWbR1ERlXzxHZIwCzkiRy5nw2R0+rXQoUpSW4paRSjveNT1GaG0drR6b3nc7wNsONZenZ6cRc\niMHLzY5wUdaXsuNwKpdzChoiTEVR6pGpHfX9qyk2R9tXfj6wrzaDUpoOM50Z93S6h0DnQP59+N/0\nbtWbiMAIAHp19CY+NYuLl/MoLNKawcYPbKOawRSlGTN1SPE2oLop0jq0HRyn11pESpPUx78PAc4B\neNp5GpOGhbkZkT0D+N/GWAwGA8lnr3A8/iKd2qidoBWluTI1qQytpswAXAYOSynV0rQKfo5+Vcrc\nXCyJt/gDl6vdcbH0YvvhVIJ8HHGws6rmDoqiNHWmjv7aXLlMCGEO2KuEolyLwWDg34f+TZbZaQ5n\nHSHMfgxBdGLDvmTGRahmMEVpjkzqqBdCWAghXhJC/F/J6yHAWeCSEOJPIYTLdW+gtEjnr57n0NlD\nmOl0eHlYszNzFfuz1pKQlsnJhEsNHZ6iKHXA1NFf89EWlSxNHsvQlsKfAbRHG1asKBV42XsxJ2IO\n3g7e2NtY4uZkQ0zOHjZe+JZ1+yXZV9VoMEVpbkxNKvcDc6SUHwohOgCdgNeklO+hbSt8R10FqDRt\nvo6+zImYQzefbni72WFlacb5giR+SfuEb7duu+aukoqiNE2mJhU/YHfJz2MBPfB7yesUtJ0gFaVa\ntpa2PNXzKe7qeCetPB1BB3nF2XwjP+KrnT+pxKIozYipSSUVaF3y83jggJQyo+R1f7TEoijXpNPp\nGBU6irlDnqOVmxugdeR/ve873t/1MQXFqilMUZoDU5PKd8C7Qog1QATwJYAQYinaBl3/rpPolGan\ng2cH3pvwOn4OAQDo9Qb2xyVhrjNv4MgURakNpiaVl9A25DIAs6WUH5WUdwfeBF6rg9iUZsrb0YN3\nxr9KqH13bM0d6WgxluPxajSYojQHps5TMaCN8FpUqXxQXQSlNH/+ns5M7v0ou04kYG1mx47DqQR6\nO+LsYI3eoEdv0BuX11cUpemorQUlFaXG+nTywddF618pLNKzfk8Ser2B1TGreWv7W2RczbjBHRRF\naWxUUlEajIW5GcN7BRqXyE+7kMOP0dtYfWo1iZmJLNyykEPphxo4SkVRakIlFaVBebnZ0bNj2c4J\nO0/GkV9QDMDVwqt8uPdDfjj2A0X6ooYKUVGUGlBJRWlwPdp74+VqB0CwbTfCLe/F2aZs5Z/1p9ez\nZMcSLlxVG30pSmOnkorS4MzNdAzvHYi5mdYMZpbnwSiPyXTx7mI8J/5SPK9teY0DaQcaKkxFUUxg\n6iZdOuBR4HbAnqrJyCClHFm7oSktiZuTDf27+LH10BkATsTlMHHQI7Rz38mqE6vQG/RcLbzKx9Ef\nM6T1EO7ueDeW5pYNHLWiKJWZWlN5HfgC6AbYApaVvtTmGMot69rWA38vR0CbbR8VnczgwGHMGjAL\nN1s343mbEjax/NDyhgpTUZTrMHUiwKPAO1LK5+owFqWF0+l0DO8VwPfrJPkFxVzOKWDrgRSG927D\nS4NfYvmh5RxIO4CVuRVj2o5p6HAVRamGqUnFCfi1LgNRFAAHOyuGdPfnz12JAJxMvESQrxNtA1x5\nsseTbEncgrWFNb6Ovg0cqaIo1TE1qewABgBVdoCsqZIdI19Dq/04AmuAZ6SUZ6s5dxMw+Bq3Giyl\n3HKr8SiNT9sAVxJSLyOTtKVbNu1LwdvNHid7Kwa3rv6fw87knbjbudPOvV19hqooSiWmJpWFwHdC\nCAu0BHO18glSyh0m3utV4BHgYeAC8CHwP7SFKiu7k4r9NWbAb8DlkjiUZmpQd3/SLuRwOaeA/MJi\n1u9J4o7BIZiZVd2COPVKKt8c/oZiQzEjQkYwXoxXS7woSgMx9f+8DSXfXy35Xn4DDF3J6xsuMyuE\nsAKmAVOllOtKyu4D4oUQ/SsnJinlxUrXvwC0AdpLKdVsuGbM2tKcEX2C+HFjLHqDgdSMbPbLc/Ts\n4F3l3P8e/a9xcuSfsX9y4vwJHgt/TDWRKUoDMHX019BKX5Hlvkpfm6IbWpPXptICKWUCkAAMvN6F\nQggf4EVgrpQy3cTnKU2Yj7t9hdn2e46lk34hp8p5k8In0cGzg/F1UlYSC7cuJOp0lNoATFHqmamr\nFN9yX0oJ/5LvZyqVpwIBN7j2BeAc8EktxaI0AT3be5Ny9gqpGTnoDQbW7k7kL8PbYWNV9k/XxcaF\naX2msSF+Az+e+JEifRGFxYWsOLaCw2cP80i3RyoMSVYUpe6YPKNeCNFeCPFfIcRZIUSeECJFCPG9\nEKJjDZ5nB+illIWVyvMBm+s82xF4DHhLSllcg+cpTZyZmY7hvYOwttJaVy/nFLBxX0qVGohOp2NY\nm2HMGzQPfyd/Y/nJjJPM3zSf7UnbVa1FUeqBSUlFCNEF2IM2EutnYDHaqK1IYE/JcVPkAmYlHf7l\nWQNV2zXKTECrVX1j4nOUZsTJ3orIHmUV2biUTI6ern4dMD9HP+YMnMPotqPRlax+nFeUx/JDy/nv\nsf/WS7yK0pKZ2lH/JnASGCqlNL75CyHsgSi0IcITTLhPcsl333I/A/hRtUmsvAnAb+WfrbQsIf4u\ndAnx4EictsfKtoNn8HW3x8PFtsq5FmYW3NH+Drp4deHrg19zLuccOp2O3q1613fYitLimNr8NRB4\nvfKbesnrtwBTd4A8BFyh3NwTIURroDVwvTknAykbgaa0UAPC/IxJpFhvYM2uBAoKr90aGuIWwkuD\nXyIyOJJRoaNo49qmvkJVlBbL1KRylYrDiMszaTgxgJQyH21eyhIhxCghRHfgP8BmKeUuIYSVEMKn\nZOgxAEIIX8AbOGJirEozZWFuxsi+QVhaaP9sM6/kV9u/Up6VuRX3dr6XCaJqRXp3ym42J2xWfS2K\nUotMTSo7gdlCiAqd6UIIW+B5ajYR8UXgW7T+kY1AInB3ybH+QFrJ91Klkw0qzFlRWiZXRxuGdC/r\niD+VfImjcTfeZ6W0f6XU5fzL/Ofof/juyHcs2bGE9Gw1Sl1RaoOpfSpz0Drq44UQvwDpgA8wDm1d\nsOvOMSmvZNLizJKvysc2oU2mLF+2v3KZ0rKJIDfSMnKMnfXbDp3B280OLzc7k++xJnYNVwu1hSFi\nL8byj83/YHTb0YwKHaVm4yvKLTCppiKlPIFWe9iG1mk+B7ij5HVfKaXaOUmpVxHdWuFZqX8lL9/0\nRRYmtp/ImLZjMNNp/wsU6Yv4Vf7Kgs0LiLkQUycxK0pLoGuO7cklnf/xUVFR+Pv73+h0pYnKys5n\nxfoY8ks66wN9HLl9QJtq1we7lpTLKfz70L9JyEyoUN7Hvw93d7wbJ2un2gxZURq1lJQUhg0bBhBc\nstpJjV2zni+E+D9gjZTyYsnP1yWl/O5mAlCUm+XsYM3w3oGs3h4PQFL6FfYcT6dvZ9PX/PJ38ueF\niBfYkriFVSdWkVeUB2id+IfSD3FH+zsY3HqwsUajKMr1Xa/x+BugL1pfyo0mHRoAlVSUehfs50zP\nDt5En9B2Tog+cRYvVzvatHI2+R5mOjOGtB5CN59urDi2gn2p+wBt0uTauLUMCByAlbna3FRRTHG9\npBKMNhKr9GdFaZR6d/Th3KWrJKVfAWD93iTucWyLq9M1V/6plouNC3/t8VeOBx7n+yPfcy7nHPd0\nukclFEWpgWsmFSllYrmXg4HVUsoqYzdLVg9+AHi79sNTlBszM9MxoncQK6JiuJxTQEFhMat3xHN3\nZNsKC0+aqqNnR14Z8grRqdGE+4RXOGYwGNhzZg/dfbtjaW5ZW7+CojQbpjYUf4W2j0l1uqFt4qUo\nDcbG2oLR/YKxMC+bGLl2dyJ6/c0NRLEws6Cvf98q81uOnT/Glwe+5KWNL7H3zF41cVJRKrleR/1v\nQOkKxDrgJyFEfjWnegNxdRCbotSIp6stw3oFGPe3T0q/ws6jaQzo6lcr9y/WF7Pi2AoALuVe4vP9\nn7P+9Hru7ng3bd3b1sozFKWpu15N5TW0xSKjSl7vLfe69GstsIyyGfGK0qDaBrhW2B3ygDzHycTa\nWYxBp9NxW5vbcLR2NJYlZCawZMcSPtz7IWlX0q5ztaK0DNfrU9kF7AIoWap+gZQyvr4CU5Sb1aeT\nDxey8ohPzQJgQ3QyTnZW+Hk63NJ9zXRmDAwaSE+/nvwR+wdRp6OM2xgfSj/E4bOH6effj3FinNoU\nTGmxTJ1RPwnoIIRYXFomhOgthFgnhBhaZ9Epyk3Q6XTc1jsQ95LRX3q9gd93JJB5pbrW25qztbTl\nzg538o/If9DXv6+x3GAwsCN5By9teImVx1eq/halRTJ1k66/AL9S1scC2qZaZsBaIcSoOohNUW6a\nlaU5YyPaYGejjdDKKyjit+2na7SUy4242boxKXwSLw56kU5enYzlRfoicgtzq3TyK0pLYOror3nA\nB1LKsaUFUspjUsphwMfAgroITlFuhZO9FWMHVBwR9vuOBIqL9bX6nADnAKb2mcrM/jNp49oGCzML\nxrYbW+W80qYyRWnOTE0qocCqaxxbRcUajKI0Gt5udgzvHWh8nZqRzfq9SXXSNNXOvR3PD3ieeYPm\nVelTuZJ/hdnrZ7Py+Eqy8rJq/dmK0liYmlTOAj2ucawraq8TpREL9Xehf5eyYcWnkjPZfji1Tp6l\n0+nwc6w6hHlt3Fqu5F9hXdw65kbN5dvD35JxNaNOYlCUhmTqdONvgVeEENloNZNzgCfafirz0XZz\nVJRGK1x4kp1bwOFY7Y38YMx5HGwt6dbOq86fbTAYiLtUNpWrSF/ElsQtbEvaRg+/HowIGUGgc+B1\n7qAoTYepSWUB0B4teXxQrlwH/Ai8XMtxKUqt0ul0RIS1Iie3kLgzWvPTtkOp2FpbIILqdvivTqdj\nVv9ZHD57mN9P/W5cZl9v0LP3zF72ntlLe4/23BZyG508O6kOfqVJMympSCkLgXuEEJ2BCMANyAK2\nSSkP1WF8ilJrzMx03NYniKub40i7kANA1N5krCzNCfYzfVXjm6HT6QjzCaOrd1fkBcma2DWcOH/C\nePxkxklOZpzEx8GHGf1m4GLjUqfxKEpdqdFqe1LKo8DRyuVCCAcpZXatRaUodcTC3IyxEcGs2hTH\nhaxc9AYDa3YmMH5QCK1ucXKkKXQ6He092tPeoz1JWUmsjVvLvtR96A1lI9Kcres2wSlKXTIpqQgh\nrICpaKsVW1G2Z7wZYI/WWW9fFwEqSm2zsbJg/MA2/G/jKS7nFFCsN7B6ezwTBoXgXYN97m9VoHMg\nT3R/gontJ7IhfgPbkrYxrM2wqotYnjtGkb6ILt5d1GZhSqNnak3lTWAacATwAnKB80AXtCTzal0E\npyh1xd7WkgmDQvhxYyw5eYUUFBbzy9Y47hgUiqerbb3G4m7nzj2d7mGcGIe5zrzCMYPBwKqTq0jO\nSsbV1pWIwAgGBAzA1da1XmNUFFOZ+rHnbuBtKWUY2gKS0VLKPkBbIKEG91GURsPZwZrxg9oY91zJ\nLyjm5y1as1hDsLGwqbJHS2JWIslZyYC2MvKv8lfmRM3hvd3vsT9tv5pQqTQ6piYDb+CPkp+PAL0B\npJRngDeA+2o/NEWpe+7OtkwYFIK1lVZDyCso4qfNcVy8nNfAkWlcbFwYFTqqwsrIBoOBY+eO8Un0\nJzy/7nm+P/I9CZkJaq0xpVEwNalkojVzAcQCAUKI0n/lMYAaZK80WZ6utowfGIKVpZZYcvOLWLUp\ntsFqLOW52LgwscNE3hj+BpN7TKaDZ4cKx3MKctiUsIlFWxexdNfSBopSUcqYmlS2AX8XQtgCp9AW\nk7yj5FgftOHFitJkebvZMX5gGywttP8ltMQSx/lLDZ9YQNuJsqdfT6b3nc7rw17n9na3427nXuGc\n6iZQquYxpb6ZmlQWoM1PWS2lLEKbBPmpEGI38DrwvzqKT1HqjY+7PRMGldVY8gqK+GlLLGcvXm3g\nyCpyt3NnnBjHwsiFPNvvWfoH9MfawprerXpXOff9Pe/z1va3WH96PReuXmiAaJWWxtTJjweFEB3Q\nRnsBzAEuAwPQdohcVDfhKUr9Kk0sv2yNI7+g2Nh5P3ZAcL3MY6kJnU6H8BAID8H9Xe7H0qxiJ//l\n/MuczDipLRNzMY4fjv1AkEsQ3Xy60c2nG74Ovmr2vlLrTJ2nsgz4l5TyTwAppQGthqIozY63mx13\nDArl5y1x5BUUacONt8Qxql/rOp95f7OszK2qlMVfikeHDgNlHfiJmYkkZiby88mf8bDzMM7yD3UL\nxcKsRnOhFaVapjZ/PQ6ogfFKi+HpasvEISE42Gqf/ov1Bv7YkcCJ+KazIHeYTxhv3fYWD4U9RCev\nTpibVZwDk3E1g6jTUby7813mb5qvRo8ptcLUjya7gIHAujqMRVEaFXdnW+4c2pZftsSRmZ2P3mAg\nKjqJnLxCerT3ahJNR47WjkQERhARGMHVwqscOXuEQ2cPcfTcUfKLyrZXDnULrfL7nLpwityiXNq5\nt8PGwqa+Q1eaKFOTyn7gBSHE3cBBoPI6XwYp5ZO1GpmiNAJO9lbcOTSUX7aeJiNTGwm262gal3MK\nGNLdHzOzxp9YStlZ2tHHvw99/PtQpC9CZkiOnDvCkbNH6OLdpcr560+v52D6Qcx0ZrR2aa3137gL\nQtxCqm1uUxQwPancBaQCtkC/ao6rerPSbNnZWDJxSCh/7Egg5dwVAI7HXyAnt5CRfYOMo8WaEgsz\nCzp5daKTVyfu7XRvleN6gx55QRp/Pn3pNKcvneaPU38Yk0xb97aEuoUS4hqCvZVa+k/RmDr6K7i2\nHiiEMEcbMfYo4AisAZ6RUp69xvn+wFJgJNqaYyuB56SUjWucp9KsWVuaMy4imI37kjmZeAmAxPTL\n/G/DKcYMCMbZwbqBI7x51TXjFRQXMChoECfOnyApK6nCsfJJ5k/+BGDuwLkEuQTVS7xK43bNpCKE\niAT21MGS9q8CjwAPAxfQ5rz8D20eTOUYrNH6cdLQhi+7A/8C9MDfajkuRbkuc3MzhvUKxMHOiugT\n2megC5fz+CHqFGP6t8avkQ05vhU2Fjbc2eFO6KDN2o+5EIO8IJEZktQrFbditjCzqLKFcmZeJl8e\n+JLWLq1p7dKaIOcg3GzdmkQ/lHJrrldTWYfW1LWntEAI8Vfgf1LKm5pFVbKE/jRgqpRyXUnZfUC8\nEKK/lHJHpUv+D/AF+kspL5Wc/wrw9M08X1FulU6no29nX1wcrdkYnUyx3lAySTKOQd1a0amNe7N7\n47S3sifcN5xw33BASzKxF2OJuRBD7MVYrMytqiyEmZCZgMzQklD5+wQ6BxLgFECgcyD+Tv54O3ir\n5fybmesllQr/Z5Q0W30ERKPVMG5GN7Qmr02lBVLKBCFEAtrosspJZSSwrjShlJz/FfDVTT5fUWpF\n+yA3XBysWb09ntz8IvR6A5v2p5B+4SpDevhjYd583yjtrewJ8wkjzCcMoNqhyKVbJpeXU5DDifMn\nKux4aWluSU+/njza7dG6ClepZzWd7XSrH8H8S76fqVSeCgRUc347YIMQ4h/Ag2gDAn4EXpRSNo5l\nZJUWy8fdnr8Mb8fv2+M5XzIy7GTiRS5k5TKqX+sm3c9SE9XVzIa2HkqgcyAJmQkkZiaSlJXE1cKq\n3aCFxYVV9pAB+P3U7xw5ewRfR198HHyMXx52Hqpm08jV9xRaO0Bfsud9eflAdQPhndAmXv4B3AO0\nAt5H2yjs4TqMU1FM4mhnxV2Rbdm0L4WTidrEyPOZuaxYH8PQngGE+rfMveadbZzp7tud7r7dAa02\nc6e2plsAABfZSURBVCH3AklZSSRnJZN8OZnkrGQy8zLxd/Kvcn38pXjjYIDyzM3M8bDzwNveG097\nT7zsvejo2REve696+b2UG6vvpJILmAkhLEoWpixljbbycWWFwEXgISllMRAthLAEfhBCzLjZvh1F\nqU0W5mYM6xWAt7sdWw+eQa83kF9YzJqdCXRu405Et1bNujnMFDqdDg87DzzsPIyJBrQmsepqOpUH\nA5Qq1hdzNvssZ7PLBotOCp9UJan8Kn9Fp9PhbuuOu507brZuuNi4qKVo6sGN/sLVzT+5lTkpySXf\nfcv9DOBH1SYxSsryShJKqeMl31tz8307ilKrdDodXUI88HSxZe3uRC7nFABw9PQF0jJyuK1PEB4u\n9btNcVNwrfktz/V/jvTsdNKz00nLTuNs9lnSs9PJzMuscq6nnWeVsg3xG6o0t+l0OpysnXCzdcPV\nxhVXW1dcbFwYEDBAzbOpRTdKKiuFEPmVyn6qpswgpRQmPO8QcAUYDHwDIIRojZYgtlRz/lZgshDC\nslyTWWegGG0bY0VpVEr7WTbu+//27jxKrqpO4Pj31dr7ku6kk0539uQXiIRAArIvyioioqIjOIgz\nHhwXODKOqKMHRFwQPW6MHD06Isi4oDjCoCCbQULYhSTQySUJSUink17Ta+3L/HFfdaqrV0J3Oqn6\nfc6p86rue6/eezed96u7vHub2d5sb4CdvRHueew1Tloxh1XLZh5RT+FPl+pie9PPnZQsmojSNtA2\n5JVbSgnFQyO236TTaXoiPfREetjBjsH0NfVrKKV0yP63rLuFymAlFcEKKosqKQ+UUxGsoDxol2WB\nMsoD5QS8gbzr7fdWjRVU7hwh7am3cjBjTFREbge+KyIdQBv2OZUnjDHPuF2OZwBdxpgY8BPgGuAu\nEbkJ29D/HeAurfpSh6uigI8LTprPq6+XsW5DC4lkilQqzfpNLezc28s71jRSVV4YjfiTLegL0ljZ\nSGPlSP16LI/j4fJjLqcz3ElnqJOucBed4U56o70j9lSrCFYM+dwT6RlWxTaaYn8x3z//+0MCS0eo\ng6d3P01poJRSfymlgVJK/CWU+u2yxF8ybHDPfDJqUDHGfGyKjvkVwI8tqfhxn6h3150C/A04G1hr\njGkVkTOA72PHH+t39/vSFJ2bUpPCcRzetriWubPKePS5NwYn+mrp6Oe3jxhOXDGbVUu11DIVinxF\nnLngzGHpiVSCnkgPXeEuuiPd7I/sJxQPDWtn6YlOfCLboDc4rKTS0tfCA689MPZ+viDFvmIWVC3g\nkycMfexuZ/dOmtqbKPYVE/QFKfIVDXkFvTYt6Aselm1Eh/yM3Ab6z7mv3HVryem2bIxpwj6votQR\np7q8iPedvZQXN7fywuZWUuk0iWSK9Rtb2N7czdmrG7Wt5RDxeXzUlNQMm4Y51+Lqxdx41o30RHro\njfYOvvpifYPv+2P99EX7KAsMH0VhIDZSn6Ohooko0USUgfjwbbd3bee+LfdN6JpW16/m6tVXD0l7\ncteTvLTvJQLeAEFvkIA3MPjye/0EvAEWVC1gyYwlEzrGm3X4hTml8ozX43DiitksqK/g8Rd2D452\n3NoV4p5HX2Pl0lpOPHr2ETkwZT7ye/3Ul9cPG3omVzqdJpFKDEufWzGXi5ZdxEBsgIH4AKF4iP5Y\nP+F4ePBzphqu2Df8B0U4EZ7wuY40WvSevj282vbqmPudv+R8DSpKHelmVZdw2TuX8ZJp4/mmfSRT\naVLpNC+/1s623d2csrKepY1V2vB7hHAcZ9jwNADzKucxr3LeqPul02miySjh+MjBY8mMJVy49ELC\n8TCRRGTIK5qM2mXCLoPe4W1zsWRs3HPPnXp6MmlQUeoQ8noc1hxVx+K5lTzxUjPNbXa81v5wnIef\n3cWmbR2cvmous2aUTPOZqqniOM5g+8hIltcuZ3nt8nG/J51OD5kqOuPcRedy/JzjiSaixFNxYskY\nsWRsyOdF1Yve8nWMRoOKUtOguqKIS85YzNbd3azb0EIoYnvM7+0c4J7HXmP5/GpOXDGHilKdDEuN\nzHEcnBFGzppTPoc55XOm4YwsDSpKTRPHcVg2r5r5cyp4YXMrG7a2k0rZX55bdu1n6+5ujllSy5rl\ndRQF9b+qOjLoX6pS0yzo93LqynpWLKzhqY0t7GixXVqTKdve0rSji2OX1HLsspkUBfS/rDq86V+o\nUoeJqvIgF526kD3t/azf2DL4bEssnuT5za1s2NbBqqUzWbmkVksu6rBV2KPcKXUYmjuzjA+8YykX\nnryAGRUHGnNj8STPNe3jzr80sW7DHvpD4/fyUepQ0587Sh2GHMdhcUMVC+sr2dbczfNNrezvs1MI\nxRMpXn6tnY3bOljWWMXKpTOZVa29xdThQYOKUocxj8c25i9pqGJbczcvbmmjs8c+35BKpdmyaz9b\ndu2nvraMlUtrWVhfiVeHflHTSIOKUkeATHBZ2ljFG/v6eHFLGy0d/YPrWzr6aenop6TIz9ELZ7Bi\nUQ3lJdodWR16GlSUOoI4jsP8ORXMn1NBa1eIjVvb2bq7m5Q77EcoEueFza28uKWNhlllHLVgBovm\nVhb8JGHq0NGgotQRqm5GCee+fT4nr6yn6fVOXn29kwH3Icp0Os3u1j52t/YRDHhZPLcKmV9NfW2p\nDgOjppQGFaWOcGXFfk5cMZvVR9Wxs6WHV1/vZHdb/+CghdFYkqYdnTTt6KSs2M/ihiqWNFQxu6ZE\nA4yadBpUlMoTXo/tMba4oYq+UAyzaz9NOzoHpzYGO8bYhq3tbNjaTlmxn4X1lSysr2DuzDK8WkWm\nJoEGFaXyUHlJgDVH1bF6+Sxau0KYXfvZ1txNOHpgqPb+cJxN2zvYtL2DgN9LY10582eXM292BWXF\nUzeKrcpvGlSUymOO4zC7ppTZNaWctmouLe39bGvu5vU9PUMCTCyeZHtzN9ubuwGorSqmcVY5DXVl\n1NeW4vfpXC9qYjSoKFUgvB6HxrpyGuvKOfO4Blo6+tnR0suOlp4hVWQAHd1hOrrDvPRaGx6PQ111\nCfUzy5g70wYonVBMjUaDilIFyONxaJhVTsOsck47tp6u3gi79vXxxr5eWjoGBkdLBvuQ5d7OAfZ2\nDvDiFlv6qa0scktAJdTNKKWyLKCN/grQoKJUwXMch5rKYmoqizleZhGLJ9nT3k9zWz/NrX109kaG\nbJ9Op2nvDtPeHWbTdpsWDHiZVV3CrOpiZlaVUFtVrIGmQGlQUUoNEfB73V5hlYB9oLKlY4CW9n5a\nOgbo7IkMdlfOiMaSg8/FZPh9Hmori6mpLKKmspgZlUXMqCiiWEdYzmv6r6uUGlNJkZ8l7rMtYBv1\nW7tC7O0coLUzRGtXiEgsMWy/eCI1WG2WrTjoo7q8iOqKIFVlQarKg1SWBaksDWi35jygQUUp9aZk\nuh831pUDtjqsdyBG+/4w7d0hdxke0rssWziaIBztHzJ2GdhquLJiPxWlASrLAlSUBikr8VNREqC8\nNEBpkR+PDpZ52NOgopR6SxzHsSWNsiBLGm1pJp1OE4ok6OgJ09kdoas3TFdvlK7eCIlkasTvSafT\n9IVi9IVi7Gkf+TilRT7KSgKUFvspK/ZTWuyntMhHSZF9XxL0EQx4tS1nGmlQUUpNOsdx7A2/2M/8\n2RWD6TZwxNnfF6G7N8r+/ig97qsvFB/WVpMtnU7TH47TH46PeWyPx6Ek6KO4yEdx0EdJ0EdR0EdR\nwH4uCnjdz16CAR9Bvxef19FANEk0qCilDhnHcagoDVBRGmD+7KHrkskUvaEYvQMxevtj9IZi9A3E\n3NJLnFBk7GCSkUpNLPhk83qcwQATDHgJ+D0E/V4CmZfPQ8Dnxe8/sPT7PPi9dlu/z758Xk/BBycN\nKkqpw4LX67EN+OVFI65PJlP0h+MMuAEj8z4UiTMQThCKxAlFE8TiyTd97GQqbfefYOAai89rg4vf\n58HrdfC7n30+Dz6Pg8/nwevx4PM6eL0Hll6Pg8/jweN18Hrcl5vuyXz2HPicSfN4HDzOgTSP4+Bx\nbIltOgKcBhWl1BHB6/UMtt2MJZFMEYok3A4BCcLu+0jMvsKRBJFYkmg8STiaIBpPDnnY861KJFMk\nkikisfG3nWqZYOO4Qcbj2EAT8HtYc1Qdy+fPmPRjalBRSuUVn9czWMU2Eel0mkQyRdQNNLF4yl1m\nXvZzPGHfxxNJ4okUsUSKeDxJPJkinkiRSKSIj9IJYbqk0mlSyeEBMxSB9Rv3IvOqJ700o0FFKVXQ\nHMfB7/Pi93kpe4vflQlQ8USKRNK+TyRSg6WXZCpNPJEimUyTSKVIJu12qVR6cH3SXSaSaTcopEik\n7DbJnGUqbbdPpRn8nMpaN9Y1L5tXNSXVYxpUlFJqkmQHqOmWTqdJpd1lVqBJpcHncSiaopENNKgo\npVQechwHrwPgwCGMcfkaVLwA+/btm+7zUEqpI0bWPfOgw1C+BpU5AFdcccV0n4dSSh2J5gDbD2bH\nfA0qzwOnA3uBN99pXSmlCpMXG1CeP9gvcMYaFkEppZR6M3ScaaWUUpNGg4pSSqlJo0FFKaXUpNGg\nopRSatJoUFFKKTVp8rVL8TAi4gW+DlwFlAMPAZ82xrRO53lNJRGpA24FzgOKgWeBzxljXnHXn+eu\nF2Ar8AVjzIPTdLpTTkROAtYB5xhj1rppBZEHIvJx4HqgEWgCPm+Medxdl/d5ICKlwC3A+4ES4Gns\n/4Umd31e54GI/ATwGWM+npU25jWLyCzgv7D3jxhwB/BlY8zI80S7Cqmk8lXgo8CVwBlAA3DvdJ7Q\nVBIRD/C/wDLgEuAUoAd4TERqRORo4H7g98BxwH3An0RkxTSd8pRybyq/IutJ4ULJAxH5KPBj7E31\nGOAJ4H4RWVAoeQD8EDgHuAw4GYgAD4lIUT7ngYg4IvI14BM56RO55nuB2cCZ2B/jHwNuGu+YBfGc\niogEgA7gWmPML920BcAO4FRjzPrpO7upISLHAf8AjjbGbHbTgkAX8EngVECMMWdl7fM3YKsx5upD\nf8ZTS0R+ig2wZwFnG2PWuml5nQci4mD/zu8yxtzgpnmwfxu3Ym8YeZ0HACLSAdxkjLnN/Xw08Cqw\nGnvDzbs8EJFFwH8DbwNCwCOZksp4f/sicjKwHlhkjNnhrv8ocBsw0xgTHe24hVJSWYWt8lqbSTDG\n7AR2Yp+8z0dvAO8GTFZaZrKHaux1r83ZZy15mB8i8i7gIuDanFWFkAcCzAd+l0kwxqSMMauMMb+m\nMPIAoB34kIjMcn9k/iuwH3id/M2DU4Dd2NLpjpx1413z6cCuTEDJWl+OvZ+OqlDaVBrc5Z6c9BZs\nHXPeMcZ0An/OSb4W27byMHAzBZAfIlKL/bX2MexNJFsD+Z8Hy9xllYg8jv3VugX4oltCL4Q8ALga\nuBtoxQ7dFALOM8Z0i0he5oEx5m7sNSMiuavHu+bR1uNu8+xoxy2UkkoJkDLG5E5AHQVGnhA7z4jI\ne4BvAd9zq8NKsPXK2fIxP34K3G+MeWiEdYWQBxXu8k7g58AFwCvA4yJyFIWRBwBLgH3YEuupwF+B\nP7gBpVDyINt41zxsvXv/TDNOvhRKSSUMeETEl9NzIQgMTNM5HTIichXwM+C32B5AYPMkd7LvvMoP\ntw74OGDlKJvkfR4AmR9S33CruxCRT2OrNz5JAeSBiCzE/v2fZox5xk27HNgMXEcB5MEIxrvmYetF\nxA84jJMvhVJS2e0u5+Sk1zO8iJdXROTL2K6APwGuNMZk2lV2k//5cRW2GL9PRPo50L70oNvFshDy\nIHMtmzIJxpg09oa6kMLIgzXYXn8vZBLcX90vYUswhZAHuca75tHWwzj5UihBZQPQh+3pAgz2/loA\n/H16Tmnqicj12GdzbjDGXOPeTDLWkZUfrrPJr/z4CHA0tmFxFXC+m/5x4AYKIw/+gf1leUImwe0R\ndjR2voxCyINmdzlYYs3Kg60URh7kGu+a1wGLRKQxZ30f8PJYX1wQXYoBROQW7C/Xq4A24HYgkt2l\nLp+IyErsDeVO4Ms5q/uARcCL2HaW3wCXA58Hjs90Qc43bv35bg50KT6GAsgDEbkZ+DQ2mG4CPgX8\nGzbQBsjzPHAffF4HlGKvvQP4LHAFtuNCBfmfB2uBbVldisf823eD7npsG8pngDrsveR2Y8xXxzpW\noZRUAL4C/A+2N8TfgF3AB6b1jKbWP2GL/P+Cnaws+3WdMWYTcCk2D14G3gNcnC//iSaigPLgBuA7\nwA+wQeVkbM8nUwh5YIxJAhdjeyz9FngGW+11ujFmVyHkQa7xrtmt1bgU21vuSWwV+s+Br4333QVT\nUlFKKTX1CqmkopRSaoppUFFKKTVpNKgopZSaNBpUlFJKTRoNKkoppSaNBhWllFKTplDG/lJ5TkR+\niZ2EbSxPGGPOch8ESxhjzpnyExuFiMzAPpx6jjFm2yjbXIV9PqDRGNM80jZTdG6PAT81xtxzqI6p\n8ocGFZUvbsaOb5ZxO5Bg6Bwqve7yU9gnhafTbcA9owWUaXYd8IiIrDXGtE33yagjiwYVlReMMdux\nY1kBICK92NLIMyNs23Qozy2XiJyAnda2frxtp4MxZqOIPIMdhSJ3YjOlxqRBRRWc3OovEUljp5Q9\nA7gEO4/EbdhhTX4AvB87FPid2Mmt0u5+Ndh53y/Bzoj3IvAFY8xT45zCF7BTu3ZknZMH+E/sZFK1\n2InUhg1oKCKfcLdZjm0T3Ywd1v5et0qtBbg1M3Wwu08ldi6R/zDG/FhEPgx8ETuBV597rOuNMS1Z\nh/o18AsRudkY0z7O9Sg1SBvqlbK+ix1o8BLgAeAm4DnsDIHvA/6InYvmfQAiUgQ8hp306UvYMZT2\nA4+5JZERiUgZdpyle3NW3QrciB1f6VKgExuwsve9Fvixu+9F2AER48BvRGSuMaYLuN9Nz/Yh7DwY\nvxGRU4Ffud9xAfDvwDux4+JlewA7dtx7R7sWpUaiJRWlrH8YYz4LICIbcEezNsZ8xk17HHuzPhl7\nQ/5n7FDqJxpjXnC3eRAbiL4JnDvKcU4H/O52uPtVYauZvmuMyQzY91cRqcfe+DMWYksh38zadye2\nhHQK8HvgF8BlInJqVonpSuD/jDFdInI6NlB+2xgTdb+jEzhBRJxMKcwYMyAim7HDnf9sQjmoFBpU\nlMoYnHPbGNMpIsmctLSI7Aeq3KR3YicrellEsv8fPQB8SUQCxpjYCMdZ5C53ZKWdhA009+Vsew9Z\nQcUYcx0MBqHl2JF2z3ZXB9zlw9j5Qz4CPCUii7HT577bXf8E8A3gFRH5A/AX4GFjzIMjnOtO7JxD\nSk2YVn8pZfWNkDbWtKk12Fkl4zmvG7E3+NpR9qt0l6GstBnuMrftYm/2BxFZLCKPYqvZnsDOf+F3\nVzsA7syedwEfFJEAtpSyF3jIXf808C7gdWzV19+BPSJyzQjnOpB1vkpNiAYVpQ5OD7aR/IRRXh2j\n7JdJrxwhrS5n25rMG7ch/8/YYHUCUGqMOZacdhfXHdhAdQ7wQeBud04RAIwxfzXGnA9UY+cZ2QT8\nSERW53xP9RjXodSItPpLqYPzBHAh0JLda8qdZXE+oz+IuctdNgDd7vv12N5ll7nvMy7Oel8LCPCZ\nTBuO60J3OfgD0RizTUT+ju1YsBzbey1zft/GVpm93RgTAh4Qkd3YiZoase0zGQ3AxlGuQ6kRaVBR\n6uDcAVwDPCoi38S2r7wbW6V0U6bBewRPYgPIacArAMaYfjcYfV1EwsBabO+uwaBijGlzG+WvFZEW\n7IOc52OnxQU7VW7u+d0BPJ/zXM6j2GqzX4rI3diquuuxJZK1mY3cbshvw84YqdSEafWXUgfBGNOP\n7cn1LPA9bIP3BcA1Y83h7ZYOHuRACSOT/i1sgPgQtlvwMcDncnZ/L7Z95C7gd9gG/ouBLe65ZHvA\nXd6Rc5xHgA9jA8YfsfOT9wNnG2O6szY9D4hhq9yUmjCdTlipQ0xETgSeAhYYY/ZM0TGuxA5bM8cY\n03MQ+z8CvJrpZq3URGlJRalDzBjzHPAnhpdE3jIRudStjvsh8LODDCjHA8czcicApcakQUWp6fEp\n4AMismSSv3cBthrtaezYXQfje9gOAfsm66RU4dDqL6WUUpNGSypKKaUmjQYVpZRSk0aDilJKqUmj\nQUUppdSk0aCilFJq0vw/g284ayXXOccAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(system.results.S, '-', label='No immunization')\n", + "plot(system2.results.S, 'g--', label='10% immunization')\n", + "\n", + "decorate(xlabel='Time (days)',\n", + " ylabel='Fraction susceptible')\n", + "\n", + "savefig('chap05-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can sweep through a range of values for the fraction of the population who are immunized." + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.468320811029\n", + "0.1 0.30650802854\n", + "0.2 0.161365457006\n", + "0.3 0.0728155898425\n", + "0.4 0.035520216753\n", + "0.5 0.0196887157825\n", + "0.6 0.0116220579983\n", + "0.7 0.00683873780062\n", + "0.8 0.00369649625371\n", + "0.9 0.00148153267227\n", + "1.0 -0.000161212109412\n" + ] + } + ], + "source": [ + "immunize_array = linspace(0, 1, 11)\n", + "for fraction in immunize_array:\n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " run_simulation(system, update1)\n", + " print(fraction, calc_total_infected(system))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function does the same thing and stores the results in a `Sweep` object." + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_immunity(immunize_array):\n", + " \"\"\"Sweeps a range of values for immunity.\n", + " \n", + " immunize_array: array of fraction immunized\n", + " \n", + " returns: Sweep object\n", + " \"\"\"\n", + " sweep = SweepSeries()\n", + " for fraction in immunize_array:\n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " run_simulation(system, update1)\n", + " sweep[fraction] = calc_total_infected(system)\n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "immunize_array = linspace(0, 1, 21)\n", + "infected_sweep = sweep_immunity(immunize_array)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's what the results look like." + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "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\ngg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(infected_sweep)\n", + "\n", + "decorate(xlabel='Fraction immunized',\n", + " ylabel='Total fraction infected',\n", + " title='Fraction infected vs. immunization rate',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig03.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If 40% of the population is immunized, less than 4% of the population gets sick." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Logistic function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To model the effect of a hand-washing campaign, I'll use a [generalized logistic function](https://en.wikipedia.org/wiki/Generalised_logistic_function), which is a convenient function for modeling curves that have a generally sigmoid shape. The parameters of the GLF correspond to various features of the curve in a way that makes it easy to find a function that has the shape you want, based on data or background information about the scenario." + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def logistic(x, A=0, B=1, C=1, M=0, K=1, Q=1, nu=1):\n", + " \"\"\"Computes the generalize logistic function.\n", + " \n", + " A: controls the lower bound\n", + " B: controls the steepness of the transition \n", + " C: not all that useful, AFAIK\n", + " M: controls the location of the transition\n", + " K: controls the upper bound\n", + " Q: shift the transition left or right\n", + " nu: affects the symmetry of the transition\n", + " \n", + " returns: float or array\n", + " \"\"\"\n", + " exponent = -B * (x - M)\n", + " denom = C + Q * exp(exponent)\n", + " return A + (K-A) / denom ** (1/nu)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following array represents the range of possible spending." + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0., 60., 120., 180., 240., 300., 360., 420.,\n", + " 480., 540., 600., 660., 720., 780., 840., 900.,\n", + " 960., 1020., 1080., 1140., 1200.])" + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "spending = linspace(0, 1200, 21)\n", + "spending" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`compute_factor` computes the reduction in `beta` for a given level of campaign spending.\n", + "\n", + "`M` is chosen so the transition happens around \\$500.\n", + "\n", + "`K` is the maximum reduction in `beta`, 20%.\n", + "\n", + "`B` is chosen by trial and error to yield a curve that seems feasible." + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def compute_factor(spending):\n", + " \"\"\"Reduction factor as a function of spending.\n", + " \n", + " spending: dollars from 0 to 1200\n", + " \n", + " returns: fractional reduction in beta\n", + " \"\"\"\n", + " return logistic(spending, M=500, K=0.2, B=0.01)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 134, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "percent_reduction = compute_factor(spending) * 100\n", + "\n", + "plot(spending, percent_reduction)\n", + "\n", + "decorate(xlabel='Hand-washing campaign spending (USD)',\n", + " ylabel='Percent reduction in infection rate',\n", + " title='Effect of hand washing on infection rate',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig04.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Modify the parameters `M`, `K`, and `B`, and see what effect they have on the shape of the curve. Read about the [generalized logistic function on Wikipedia](https://en.wikipedia.org/wiki/Generalised_logistic_function). Modify the other parameters and see what effect they have." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Hand washing" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can model the effect of a hand-washing campaign by modifying `beta`" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def add_hand_washing(system, spending):\n", + " \"\"\"Modifies system to model the effect of hand washing.\n", + " \n", + " system: System object\n", + " spending: campaign spending in USD\n", + " \"\"\"\n", + " factor = compute_factor(spending)\n", + " system.beta *= (1 - factor)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's start with the same values of `beta` and `gamma` we've been using." + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(0.3333333333333333, 0.25)" + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tc = 3 # time between contacts in days \n", + "tr = 4 # recovery time in days\n", + "\n", + "beta = 1 / tc # contact rate in per day\n", + "gamma = 1 / tr # recovery rate in per day\n", + "\n", + "beta, gamma" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can sweep different levels of campaign spending." + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.332887143272 0.466770231236\n", + "100.0 0.332134252669 0.464141650401\n", + "200.0 0.330171608455 0.457217006313\n", + "300.0 0.325386471865 0.439887202912\n", + "400.0 0.315403905242 0.401630646271\n", + "500.0 0.3 0.33703425949\n", + "600.0 0.284596094758 0.267317030568\n", + "700.0 0.274613528135 0.22184699046\n", + "800.0 0.269828391545 0.200791598416\n", + "900.0 0.267865747331 0.192392183393\n", + "1000.0 0.267112856728 0.189213207818\n", + "1100.0 0.26683150821 0.18803175228\n", + "1200.0 0.266727403413 0.187595503995\n" + ] + } + ], + "source": [ + "spending_array = linspace(0, 1200, 13)\n", + "\n", + "for spending in spending_array:\n", + " system = make_system(beta, gamma)\n", + " add_hand_washing(system, spending)\n", + " run_simulation(system, update1)\n", + " print(spending, system.beta, calc_total_infected(system))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a function that sweeps a range of spending and stores the results in a `Sweep` object." + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_hand_washing(spending_array):\n", + " \"\"\"Run simulations with a range of spending.\n", + " \n", + " spending_array: array of dollars from 0 to 1200\n", + " \n", + " returns: Sweep object\n", + " \"\"\"\n", + " sweep = SweepSeries()\n", + " for spending in spending_array:\n", + " system = make_system(beta, gamma)\n", + " add_hand_washing(system, spending)\n", + " run_simulation(system, update1)\n", + " sweep[spending] = calc_total_infected(system)\n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "spending_array = linspace(0, 1200, 20)\n", + "infected_sweep = sweep_hand_washing(spending_array)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's what it looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig05.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ4AAAEjCAYAAAACKGekAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl83FW9+P/XTPY0S5O0Sdqm+/Juy9bSspWyVhAVFVBU\nLtf1p/eq3IviAoKoqLigfK969eL14nKv4IKCiIIsBbpAoZSlGxTe3dIlbdOsbdZmm/n9cT6TTKZZ\nPmknmSzv5+ORx8x8tnnPZD5z5pzz/pwTCIfDGGOMMUMlmOgAjDHGjC1W8BhjjBlSVvAYY4wZUlbw\nGGOMGVJW8BhjjBlSVvAYY4wZUsmJDmA4EZH/BT7az2aPqOpV3vYB4PvAJ4F04MvAz2OXqeo9cY6z\nEGhU1cY4He8m4GZgPPATVf1KD9usBmao6ox4POfJGm7x9CTyeVLVQD/b3QF8A5ipqnsGP7KhJSKz\nVHX3UO0rIjOAUuCbqnpHH9uFgf9T1Y8N8PhpuPP8/d6i61X17wM5ho/n6Pa6R8LnfSCs4OnZTUBV\nL+v2R91/F+4L+zHgr8BzvSyLGxF5B/B7YDFw0gWPiJwG/AewHvgVsOlkj2kG7C/ATqAy0YHEm4g8\nCRwCPnYC+/4CmAdcEuewIj4M7DqB/T4FfBy4D1gLvBLPoETk48A9QEbU4u8A4+L5PIlkBU/P/urz\nl+fp3u2tqroVQETeF7sszs7B1Uzi5TTv9rvx/tVm/FHVLcCWRMcxSC4H/u8E9307sCd+oXSnqvef\n4K6R8/4GVa2PVzxRLsK1lnRS1ZWD8DwJY308JyfVu63vZ9lwNtLiNSbRUgEGqdAZE6zGc4JEZA8w\n3XtYKiJ7vfvdlkXaZEXkPOBbwLne+heB21V1Q8xxz8G19y8DOnBNYF9R1a0xfVClIrJGVS/uI8bT\ngG8DFwNpwGbg+6r6V2/9atyvK4BVIoKP/ojLge8CpwIVwP/gakuhqG2uBf4NWIRrLjgA/Bn4mqq2\nRD33MeDHwJ3e8SpxzX3fijne27z37gyg3Hv+PonIw95rmxA5lohcCfwd+Kmq3hi17V+Beaq6cADx\npwF3Ae8Bpnjvxd9w/9PamFiWAnfjaqtHgT/gasTHvPV3ENXH4z3+Cq42+iPvdbR7x/+CqlZHHXuy\nF8cVuC/EvwEP4pp5L1HV1X28R5nA14DrgMnAQeCPuPe/ydvmY8BvvPfiFuAdQArwNPD53loGovpZ\nAD4qIh+NxCMiScAXcP2gM4Bq4BHv/a3y9o+M5TXdu/9xVf1fEckGbgOu9vZtB17HfQb/1ttr7SXG\nbn083uNbgVbgBqAE2O69H3+OiStyv/Mc9D5ft3nvVQvwLO7/vD3med+B+/+eiWsuX407x/dEn5PR\n8fXUx9Pf+e1tsxof59lAPs/xYDWenuWJyIRe/pK8bT4PPOzdv8l73NMyROQyYA2QizvR7wSmAWtF\n5ILIk3r31wILgR/gPlSnAKu9E/kXMcf/Tm8vQETOwhVa5wD/D3dCpAIPi8gN3mbfwRUc4L7MP9zP\n+1IMPIQ7oT4P7PVijP4S/yTwJ+AI7ovqS952X/a2jXaat+1q7xi7cF/An4463tuAx3Hv3e3AA8B/\nAkv7ifVxIA/3JRAR6SuIfs9TgEtxfXIDif9nuLb+PwKfxX3Z/4sXX6xngW2492yDd/v9fuJPAlbh\naqJfwr3vH8F1akdiz8Z9Xq7B/R/vwH2Z/bqfYyMiqcBK7zU+A3wO93+4BXjKe1+i/Q33ft4G/Ddw\nJe596k0lXZ+n57z7b3qP/4j7fL+O+xw/iCuE1olIpBn5w7h+1re8+2u9ZJ7HcD8KHsYVDnfjCqCH\nvS/ik/UZL6Z7cf/zccADInJqVFzPRd3/DnQW0H/DFSQ34/pNzwNeEpF5kYOLyIe815CH+3/9BHgb\n8Iz32r8Tc/xf9BSkz/M7ot/zjIF9nk+a1Xh69lof6xYDm1T1ryKyCPfLq7NPKHaZiARxJ+oG4CJV\n7fC2+xmuI/8/vWOCO4mqgSWRX7Ui8g/cCftZVb1ZRLbEPmcvfgqEgLNUtcw71s+BdcAPReQBVV0p\nIlNwH7CVff069qQB16nqw97xfgeU4b74fuxt80Vcbe4qVQ17292D+/V7Be6kjJgMvCfStyQiv8X9\n6r4e17kK7gv6EHCeqtZ5263EfZn3lgACruABV6hE/p+X4Govp4tIrqoexX05ZOMVPAOI/3rg16p6\nW+QJRaQBuEJEslS1ISqWb6jqj7xt7gXUe88+30f8ycADqvpF7/EvvP/V1SKS6dVIPg/MBi5T1ae9\n4/8S94We38exAT6Bq1XfpKqR/93PReQNXKHwKbr+BwCvqGqk/xIRGQd8WkTmquqO2IN7GZf3i8h9\nwO5If4qIXIHLBvuJqn4+6njP4b4cbwNuVtX7ReRO4HDUvufgfjR8WlV/EbXvi8ATwGXAyfarFgBz\nVLXcO/ZLuC/464CvenG9DbggKq4cXAHygKpeFxXXvbgfHHfh/m9BXIG0FThXVZu97V7G/Qj4J1W9\nR0Sujz5+L/yc35Hzw895NpDP80mzGk/P/hn3Ie7pb+cAj7UYmIVr+uisSeGacP4OLBKRKeJSpM8G\nfh/dlOJV05fiPry+iEgR7pfQfZEPpXesY8APvee+bICvA6AJ96sucrx63C/S4qhtTgfeGfnS9hQC\ntUBWD8eLfOFH4tPI8bz3ZAnwh0ih4223in4641V1P/AGruBBRPJwTXU/xn3uz/c2vQLX/PX8AOMv\nAz4oIh+L/EpX1a+p6lk9nKR/iIorhCsIi+lfbI1iE65AKvAeXw1sjRQ63vHr6V5g9OY9QB3wXzHL\nf+Itf6+PWMDf64h9XoDvRS/0mrK0h+eN3uYlXE3hN5FlXgtEpBUi9vN1Ip6LFDoeP6/zMiAH+Gt0\n6wiuGfBZ4O0ikoz7LE8C7o0UOgDe/+9swFeywwmc332eZ56BfJ5PmtV4erYujtdTzPZuf+j99WQa\n7kMK0NOvx40DfM4ZkV17WBdp7pjew7r+VEdqbFGagaLIA1VtE5GlInIdMB+Yg/viBtdkFXu8UMyy\nFrq+SCIx9pTy+hbu5OvL47hf5cm4dvMwrgnlNuBC4B+4zKmVqto+wPg/g/sy/g1wr/er+2Hcr8aj\nMXFUxDxuxvWT9Cc2vbrFu428P3OBp3rY7y0fx56Jq4m0RS9U1VYR2c3xn4/+YvFrJnBEVQ/3sO5N\nXB9SX9pw/9OLcf+bOXSlHcfjh3S316mqLSICfb/OyDn+xz62mUjXednTOf6y/xAHfH73d57BwD7P\nJ81qPIMv8s/9Gr3Xot6K2i4eEyT1lSAQ+Z+3nsBxYz+8xxGRn+KaDRbjfi1+A1fT6Ol6pv6OF3kv\nMnpY5+ez+w/cr+Czcc1sr3kn0XPABSIy0Yuz89eg3/hV9RncD4brcO3g8/GaUbzjRm/b7/vWi/72\nS6GrAIh2zMex+/uMxH4+TvQ1nOzzdvLe1624psAUXO37o/T/A2QgTuR1Rs7df6H3c7yW+J3jAz2/\n+31NA/k8x4PVeAbfHu+2IbpJBDo7CPNxv4D3eYtnE0NE7gJqVbW/DunY55zfwzrxbvf3sO6kiMh0\nXMfvfar6kZh1A22SAfc6wrhf9rFm+dj/eVzn/KW4Gk7k/V+Da+qJNOs87sXoK34vA2gRUKaqfwT+\n6LXffwFXq/0Qrg1+sO3GXWAZq6f3K9Ye4DwRSYmu9XhJBzOJ84XPMc/7dhEp6qHWI/T9ufyMF9sK\nVX22cyeRZXGPcmD2eLeVPZzjF+MKnBb6Psd/Dbygqr8cwPPF5fxOxOfZajyD7xVc5/iNItLZBu11\nSEaqtu2qehCXDnmdty6y3SxcxlGkOSvS1NXr/85ro34F+GcRKYk6Viruw9SC+1Ufb5EO7W3RC0Xk\nnbgvwwH90PE6R9fiXkdnc5641PQzfezfhsvYuhrXd7PGW7UalwF0K67TPPIF6Df+AlwCwq1RzxUC\nIs0lsc2Rg+Vh4EwRiaToR75E/j8f+/4d1y8RmwH1WVyyxaNxijFE989q5CLlW6M3EpGrcF+a0c/b\nEbNvpG9rW9R+AeDfvYeJ+iG9ElfL/HJ0NqCXDPIILsU5jDsnK4GPe+diZLvzcSMhREYmiCQg9XiO\nD8L5PeSfZ6vx9OwqEek1Y6qfbJPYbdtE5EZc9fU1L+voGC5raDpunKdI/85NwJPAy952IdxJdYSu\n5IJIG/SXReTxPq5duBHXsfmyl5VVj0uaWALcqKpH/L6GAdiG+1V3m4ik4zosz8YNl3IM94U2UF/E\n/fpeLyL/hTs5+xrSKNbjuJTUEF0JBJtwCQWzgN8ONH5VPehl9H3Wy+56AXfy/htwmL7TjOPpblzK\n7UoR+Qnus/ERun4J99Wk80tcM9V/iEtDfgWXxPJxXBaXn1/eflQCF4vIp3Cf7X/gvow/531pPour\ntX0GV4P7Xsy+Z4jIZ3A/Gh7Hfa4fFZFf4X48fBD3mQ5xYp+vk6aqVSJyG65p6kURuR/XFHgDbgSC\nL3nbtYrIF3CfuXXedtm4H5Zv0vWeR87xb4rIqujaXZS4nd+J+DxbjadnP8KNw9Tb34Co6oO4oUPK\ncH0938ZlDr1HVaMznlbh+iLKcH0LXwFeBc6PyrT5I67J6OP0kemmqi/iMrdexX3w78R9eV6lqoPS\nDKTu4sp34n49fQ73xbjEu38LkCMiSwZ4zFdxiQG7cdc9fNK7fdLnISJp1VsiJ6P3ay5SCP3jBOP/\nF9z/cRkuJf5LuFTW5VFprINK3YV9F+J+3d6Iu8h2C+56J+i5/yeybwuwAvdleRku2+9i3PVcl8Ym\nHZyEW3Bfwj/FXU4QBq7FnQdn4M619+GuQzor5gvzG7i+kR8DV6vqE7j//zgv7ptxlx+ch/sxcWmc\nYh4wL13+A7gkoe/izt3tuPdyTdR29+OaeDtwlwp8FlcLvES7Bv39Oa62cTPdLz+Ifr54n99D+nkO\nhMPx6Ms2xgw1L2W3NjbTUES+iCs0Z+sJjgptzGCyGo8xI9fdQKWIdGb9ede1XItrrtmToLiM6ZP1\n8Rgzct2H69NZ5fUXhHHNVucAnzqJNG5jBpU1tRkzgokbB/A2XH9JCu46l7tV9S8JDcyYPozJgsdL\nOT0Ll+Y8VKmvxhgz0iXhhv152UtQOSFjtantLAbvAjljjBntLqArM3TAxmrBcwjgd7/7HcXFJ3JB\nvTHGjD3l5eVcf/314H2HnqixWvB0ABQXF1NSUtLftsYYY7o7qS6KsVrw9Ki2/hgrX9rH0cYW0lKS\nSEtJItX7S0sJRt3vuk1LjWwT7FyenGRZ6sYY0xsreKLo3loqapsAaGk98QI9KRggIy2ZrMxUsjNT\nGJeRQlZGClmZqZ23mWnJBIN9zjJtjDGjkhU8UWZPGc/2fbXUNZ7IjAFdOkJhGprbaGhuo7y6522C\ngQCZ6X0XTuPSkwkErHAyxowuVvBEmZiXwT9fsYBjre20toVobeugpa2D1rYOWttCtLS1e7eRZR20\nxGzX0tpByEeKeijcf+GUmpLExPEZFOZnUpiXQWFeJjnjUq0wMsaMaFbwxAgGA2Smp5CZfmL7h8Nh\n2jtCNB1rdwVLU6t329btcXNLe7/Ham3r4EBlAwcqu2aeTUtNojAv0/vLoCg/k3EZKVYYGWNGDCt4\n4iwQCJCSnERuVhK5WWm9btfeEaKxua3nwqm5lfrGNo61Hl84tbR2sP9wPfsP13cuy0hLpjAvk6L8\nTCZ6hVFmup+ZlY0xZuhZwZMgyUlBcrPSei2cwuEwjc1tHK5poqK2mcraJg7XNvWY9NDc0s7e8jr2\nltd1LsvKSGFiXibTirKZM3U8GWn2rzbGDA/2bTRMBQIBl2iQmcrskvGAK4zqGlupqHWFUUVNE5VH\nmmltO74wcjWno5QePMpzmw8wY1IOMi2PGZNySLJ0b2NMAlnBM4IEAoHOWtLcqXmAK4yONLRQUdO9\nMGrv6BqYOBQKs/vAUXYfOEp6ajJzp45HpudRlJ9pfUPGmCE35AWPN1/InbjphLOBJ4Aboua972vf\nR4EsVb04atk7gcd62HyqqpbFI+bhLBAIkJedTl52OjLdLQuFwtTWH+NgZSO6r5by6sbO7Y+1trN1\nVxVbd1UxPjuN+dPzmTctj5xxqb08gzHGxFciajx34OZ6/whu2tp7gIeA5X3tJCL/CrwLN/d6tNOA\njbgpi6NVxCHWESkYDFCQm0FBbganzZlAbf0xdG/tcdcoHalvYf3rh1j/+iGmTMxi/vR8ZpfkkpqS\nlMDojTGj3ZAWPCKSipu//kZVXekt+xBQKiLLVPWFXvabg5vH/MUeVp8KbFXV8kEKe8TLy07n3FMn\ncc4pxRysakT31rCz7Gi3vqFI2vaajUFmTclFpucxtTDbRlcwxsTdUNd4FuGa11ZHFqjqHhHZgxtm\n+7iCx2ua+y1wFzAPmBOzyanAA4MS7SgTCASYMjGLKROzuGBRiNKDR3lrbw37DzcQmZepvSPE9n2u\ndjQuPYV50/M4ZWYB47N7Tw03xpiBGOqCJzIU9IGY5QeBqb3scytuSt+7gf+JXuEVSvOBJSKyGZgI\nvAzcrKoar6BHo5TkIPOm5TFvWh6NzW1s31fLW3trqT7a3LlN47E2NmoFW3ZUsmRBEUuk0DLijDEn\nbai/RTKBkKq2xSxvAY4bK0BElgBfBD7ay/zxs7390oBPAR/w7j8nIoXxDHw0G5eRwmIp5LrLhQ9d\nJiyaN7HbBagdoTAb3ijnT09v75aoYIwxJ2KoC55mICgisTWtNKDbN5qIpAP3Aber6s6eDqaq24EC\n4CpV3aCqzwPX4F7Xh+Md/FgwYXwGy8+YwsfetZB3L59FUX5m57rqumM8tGona14r6/HaIWOM8WOo\nm9r2e7eTou4DTOb45rdzgAXAXSJyl7csDVdwNQALVXWfqtZE76SqTSKym96b7owPwWCA6ZNymFqU\nzdZdVax//RBt7SHC4TBbd1VRevAoF51ZwszJuYkO1Rgzwgx1jWczUA9cFFkgIjOAGcDamG03AHNx\nCQmRv4eBV7z7B0XkKhGpF5GJUcfLxiUhvDFor2IMCQYDnDF3ItddPp/pxTmdyxua23hsXSlPrt9D\n07HYllNjjOndkNZ4VLVFRO4B7haRKty1NvcAa1R1vZdunQ/UqGoz0K2JTUTqgOZI05uIrAHqgPtE\n5Gbc6/kuUIVrpjNxkjMulSuXz2TH/iM8t+lA5+jaO/YfYd/hes4/fTILZuTbSAjGmH4lIkXpduB3\nwP3AKmAv8H5v3TLgkHfbL1WtBd4GtOFStFfj+oouVdVj8QzauHTsedPyuP7t81kwI79zeUtrB8++\nsp9H1u7iSH1LAiM0xowEgbCPSctGG695r/SZZ56hpKSkv81NL/YfrmfVq/u7jYaQnBTkrIVFLJpX\nSJJdfGrMqFJWVsaKFSsAZqrqnhM9jl2UYU7Y1KJsrrt8PoulkKDXxNbeEeLFrYf48zPbOVzTlOAI\njTHDkRU85qSkJAc5//TJXLtiHhPzMjqXVx1p5sFnd/D85gO0tVvqtTGmixU8Ji4m5mVw7aXzOP/0\nySR7oxuEw2E2ba/kD09ptxlTjTFjmxU8Jm6CwUDnCAhTi7I7l9c1tvL353az51BdH3sbY8YKK3hM\n3OVmpfGeC2bxtrOnkZ7qMvZD4TCPv1BqNR9jjBU8ZnAEAgHmT8/nQ5fN65xkriMU5h/rSjlY1ZDg\n6IwxiWQFjxlUWZmpXHXRHLIy3KCjbR0hHn2+1DLejBnDrOAxgy5nXCrvvWh254jXrW0d/O25XVQd\nae5nT2PMaNTrkDne0Da+qepnTz4cM1rlZafz3gtn8fDqXRxrbaeltYNH1u7imovnkJdz3IwYxphR\nrK+x2t4d87jI2/4gblibAmA6cAwbkNP4UJCbwXsunMUja3bR0tZBc0s7j6zdxdUXzyE3y2Y4NWas\n6LWpTVWnRv6AL+EG9FyuqiWqepaqzgIWA+W4qamN6VdhXibvvmAWKcnuo9fQ3MYja3fR0NTaz57G\nmNHCbx/P94BbVfWF6IWqugU36OdX4h2YGb2KC8Zx5fJZnRea1jW28tc1u2hstukVjBkL/BY8hUBN\nL+uagexe1hnToykTs3jHshkEvYFEjzS08MjaXZ3TLRhjRi+/Bc964DYRyYleKCITgG8Aa+IdmBn9\nphfncMW5MzoHGK2pO8bf1rrkA2PM6OV3Irgv4QqXfSKyFqjEJRtchJtR9H2DE54Z7WZNyeVtZ09j\n5YZ9hMNhKo808+jzpbznglmkpiQlOjxjzCDwVeNR1U3AqcBvgEnAxcBE4KfA6aq6e7ACNKPfvGl5\nXLKka16k8upGHltXSlt7KIFRGWMGi++pr1V1P3DTIMZixrCFMwvo6AizZmMZAAcqG3j8xVLetWwm\nSUl2nbMxo4nvgkdEArgpqi/D1XpuAs4GXlVVHZzwzFhy2pwJtHWEeGHLQQD2ldfz5Et7efu5M2w2\nU2NGEV8/Jb2kgrXAA8DbgXcCOcBHgJdE5IxBi9CMKWdKIWcvLO58vPvAUZ7esI9QaOxN0W7MaOW3\nDeMHwBxgCTAbiPz8/CCwHbgz/qGZseqshUUslsLOxzv217Lq1f2Ew1b4GDMa+C14rsFdQLoR6Dz7\nVfUo8F3gvEGIzYxRgUCAZadN4rTZEzqXvbmnhuc3H0xgVMaYePFb8GQBh3tZ1wxkxCccY5xAIMCF\ni6ewYEZ+57LNOyrZW26zmBoz0vkteF4F/qWXdR8AXotPOMZ0CQQCXLJkKjMn53YuW/1qGa1tHQmM\nyhhzsvwWPF8D3iUiG3Bjs4WB94nIn3AJBt8epPjMGBcMBrhkSUnnFNr1Ta28uPVQgqMyxpwMvxeQ\nrsZls4WBr+OSC24F5gFXqepTgxWgMZnpKVy4eErn4627qjhYadNnGzNS+b4yT1VXqeo5QC4wA8hT\n1UWq+thgBWdMxNyp45kxqWuowGdf2U97h41sYMxI5OsCUhHZDrxfVbeoagPQELXuLOBRVS3yeawk\nXPr1x3CjWj8B3KCqvSUvRO/7KJClqhdHLcsEfozLvEsG/gzc5MVpRolAIMDFZ5bw+6eU1rYOjjS0\nsOGNcpadPjnRoRljBqivqa8/ELV+DvAeETm1h03fxsCy2u4APorrG6oG7gEeApb3tZOI/CvwLo4f\nCfsXuOuLrgRSgF97y64fQExmBMjKTGXZaZNY/ZobVmfT9krmlIynMD8zwZEZYwairxrPecDnvPth\n4Ft9bPsjP08mIqneMW9U1ZXesg8BpSKyLHaiuaj95uCuF3oxZnkJ8E/AClVd7y37JLBKRG5W1QN+\n4jIjxymzCtix/wgHKhsIhcM8++p+rl0xz4bUMWYE6auP5xZgJjALl0xwjfc4+m8akKuqX/T5fItw\nzWurIwtUdQ+wB7igpx28prnfAncB22JWLwNCwLqoZeuADvqpQZmRKZJiHZm9tOpIMxu1IsFRGWMG\noteCR1VbVXWvVzDMBR4Dwt6yvbh+nimqWj+A54uMfR9bEzkITO1ln1txNa67ezlehap2zpmsqu1A\nRR/HMyPc+Ow0zjmlazy3l7eVU1N3LIERGWMGwm9W21FgFfB01LJzgBdF5MnYmUn7kAmEogsKTwuQ\nHruxiCwBvgh8VFV7SmHKBHr6xunxeGb0OGPuRIq8vp2OUJhnX9lvA4kaM0L4LXh+iKtB/FvUsieA\nFbhreb7j8zjNQFBEYvuW0oDG6AUikg7cB9yuqjv7OF5aD8uPO54ZXYLBAJcunUrQ69spr25k686q\nBEdljPHDb8HzDuBL0ReKqmpIVVcBtwFX+zzOfu92UszyyRzf/HYOsAC4S0QaRKQBlw13gfd4mne8\nQq8fCACvUCvs4XhmlCnIzWDpgq4s/vWvH+JoQ0sCIzLG+OG34MkEmnpZdxTI83mczUA9cFFkgYjM\nwF2QujZm2w24vqVFUX8PA6949w/iEgmS6T469nLc64pOODCj1BIppCDHtaq2dYRY9WqZTZ9gzDDn\ndwbSl4AbReRJr/MeABEJAjfgCoN+qWqLiNwD3C0iVbgkgHuANaq63ku3zgdqVLUZ6NbEJiJ1QHNU\n09sBb7y4X4nIJ3DZd/cC91kq9diQlBTk0rOm8eCzOwiHw5RV1PPmnhoWzixIdGjGmF74LXi+gUsu\n2C4ij+EKjIm4JripuL4ev27HXeh5v3f7BK7wApcevQq4hKiU6358Evgp8A+gHXgQ+PwA4jEjXFF+\nJovmTmTjdpdWvW7zQaYV55CVkZLgyIwxPQn4bZYQkaW4QuN8XK2kDnge+Laqbhi0CAeB17xX+swz\nz1BSUtLf5mYEaGsP8cBK5YjXxzNzci7vXDaDQMAuLDUmXsrKylixYgXATO9SmxPit8aDqr4CXHWi\nT2TMYEpJDnLJ0qk8vNq1wpYePMrOsiPMneq3+9EYM1R8FzzQOSDoZbistB8AAmxSVctjNQk3ZWIW\np84q4PXd1QCs3XiAksJsMtIG9DE3xgwyX1ltIpIiIn/AJRncAXwW18dzC7BJRGYNWoTGDMCy0yd3\n9u00t7Tz/CbLMTFmuPGbTv1t3MjQ7wPG47LHAD6Nu1DT7wWkxgyq1JQkLl7SNVqS7qtlz6G6BEZk\njInlt+D5Z+A2VX0YNxwNAKq6C5fxdskgxGbMCZkxKQeZ1tW3s/rV/bS2dSQwImNMNL8FTwGgvayr\nAvyO1WbMkFi+aEpn305DcxsvbDmY4IiMMRF+C55twAd7Wfd24M34hGNMfGSkJXPh4imdj1/fXc2B\nSpuU1pjhwG/B813gEyLyIK7ZLQycKyI/wE3s1tOUBcYk1JyS8cycnNv5+NlX9tPW3tMg58aYoeSr\n4FHVh3ADdJ4H/AaXXPAz4OPA51T1D4MWoTEnKBAIcNGZJaSluDFkjza0sGFbeYKjMsb0WvCIyBdE\npHMUaVW9Dzfx2mnAxcBiYJKq/nywgzTmRGVlpHD+GZM7H2/eXmkjWBuTYH1dWfdt3HU7h0SkFVjm\njV7wxpBEZkycLJiRz1t7ajhY1UgoHOaVNw+z4qxpiQ7LmDGrr4KnDvi8N65ZMvAOEZnX28aq+vs4\nx2ZMXAQKrSaGAAAgAElEQVQCAc49dRJ/8YbTeWtvLWfOLyQv2yapNSYR+ip47sIlDbwPl0zwzT62\nDQNW8Jhha/LELKYWZbP/cD3hcJgNbxzm7edOT3RYxoxJvfbxqOqPcRO8zcQlE1zj3e/pz4bMMcPe\nOacUd97fWXaE6qPNCYzGmLGrz9ETVbUeqBeRTwHPqWr10IRlTPwVF4xj5qQcSg/VebWect6xbGai\nwzJmzPE1bK+q/kpExonIO4Bx9FBTUtU/xTs4Y+Lt7FMmUeqN3bbrwFEqapsozMtMcFTGjC2+Ch4R\neRtuZs9sugYIjRYGrOAxw97EvAxml4xnV9kRADa8Uc6Vy62l2Jih5Heikh8Au4AvAWWAXf5tRqyz\nFxax+8BRwuEwew7VUV7dSHHBuESHZcyY4bfgWQhcpaqrBjMYY4ZCQW4G86aOR/fVArD+9XKuumh2\ngqMyZuzwO1bbfiBrMAMxZiidtbCYYMC1GpdV1NsAosYMIb8Fzw+Ar4vIlH63NGYEGJ+dxvwZXXP2\nvPT6IcLhcAIjMmbs8NvU9h5gKrBXRMqAppj1YVU9Ja6RGTPIli4o5q29tYRCYQ5WNbL/cD3Tim1q\nKWMGm9+C5wjw6GAGYsxQyxmXysKZBby+qwqAl94oZ2pRNoFAT4mbxph48Xsdz4cHOxBjEmHpgiLe\nLK2mIxTmcE0Tew7VdZvDxxgTf70WPCJSCFSraod3v0+qWhHXyIwZAlkZKZw2ZwKbtlcCrtYzY1KO\n1XqMGUR91XgO4SZ+2wCU4y4S7UuSnycUkSTgTuBjuAtSnwBuUNXDvWz/CeDLuDHhdgM/VNXfRK1/\nJ/BYD7tOVdUyPzGZse1MKeSNXdW0dYSoOtLMrrKjzJk6PtFhGTNq9VXw/AvuotHI/Xil/NyBm830\nI0A1cA/wELA8dkMReR/wc+BfgTXACuBeEalW1b95m50GbATeGbO71cCML5npKZw+dwKvvuU+Mhu2\nlTNrSi7BoNV6jBkMvRY8qvqrqPu/jMeTiUgq8DngRlVd6S37EFAqIstU9YWYXSYA31DV//Ue/1JE\nbsAVQJGC51Rgq6ranMbmhC2eV8jWXdW0tnVQU3eMHftrken5iQ7LmFHJ73U88bII17y2OrJAVfcA\ne4ALYjdW1V+o6vcBRCRZRK4FFgArozY7FXhz0CI2Y0J6WjKL5k7sfLxh22E6QnZdjzGDYagLnhLv\n9kDM8oO464R6JCJLgWO4gUjvx+vT8fqL5gNLRGSziBwUkUdEROIeuRn1zpg3kbRU11V5tKEF3VuT\n4IiMGZ2GuuDJBEKq2hazvAXoax7iUmAp8AngA7jkBIDZ3n5pwKe8dWnAc34y8YyJlpaSxOJ5XR+b\nl7cdpqPDxsM1Jt6GuuBpBoIiEtu3lAY09raTqlar6iYvm+07wE0ikqSq24EC3ACmG1T1edxMqUHA\nrj0yA3bG3AlkpLmPZ31TK9tKrdZjTLwNdcGz37udFLN8Msc3vyEiF4nIopjFW4EMIB9AVWtUtfNn\nqao24dKue226M6Y3KclJLJnfVet55c3DtFutx5i48jtkDiLyYeBKep6BNKyq7/JxmM1APXARrq8G\nEZkBzADW9rD9Lbi5f66MWnY2LlW6SkSuAu4DZqlqpXe8bGAecK+f12VMrFNnT2CjVtJ4rI3GY228\nvquKRfOs5daYePE7A+l3gFtxNZYTnghOVVtE5B7gbhGpwhUg9wBrVHW9l26dD9SoaivwY+AJEfkS\n8FdcgXUz8AVVDYvIGqAOuE9EbvZez3eBKlyBZMyAJScFWbqgiDUb3fXHr75VwSmzCkhJ9nWNtDGm\nH35rPB8HfqKqN8XhOW8HUnA1nhS8kQu8dcuAVcAlwGpVfUpE3g98A/g2ruD798g1Rqpa603L/QNc\ninYyLtX6UlU9FodYzRi1cGY+r2kF9U2tNLe0s3lHFUsXFCU6LGNGBb8Fz3hcjeOkqWo78EXvL3bd\naiAQs+wvwF/6ON6bwLvjEZsxEUlJQc5aWMSzr7huyY3bKzhtzgTSUqzWY8zJ8ptc8CJu3DZjxgyZ\nnk9uVhoALa0dbPYGEjXGnBy/NZ5vAn8QkSDwAsdPBIeqbohnYMYkWlIwwNkLi1i5YR8Am3ZUcvqc\nCaSn+c7JMcb0wO8ZtNq7vZPjBwsNeMusDcKMOnOn5vHqWxXU1B2jta2DjdsrOO+0yYkOy5gRzW/B\nc9mgRmHMMBUMBjh7YTFPrN8DwJYdVZwxdyKZ6SmJDcyYEczvDKTPDHYgxgxXs0tymTA+g6ojzbR1\nhHj1rQouWDQl0WEZM2IN5ALSubi5dC4GcnHXyjwH3KmqOhjBGTMcBAIBzjmlmMfWlQLwxu5qzpRC\nxmVYrceYE+Erq01ETgFeAS4HngR+iuv3uQJ4xVtvzKg1Y1IOhXmZALR3hHjNZno35oT5rfHcBewA\nLlHV+shCb3iaZ3EDd14V//CMGR4CgQBnLSzqVutZMr/Q+nqMOQF+r+O5EPhOdKED4D3+nrfemFHN\naj3GxIffgucY0NHLuhBu6BtjRrVIrSfi9V3VNB2LnVrKGNOfgYxccLOIpEUvFJF04Mu4i0qNGfVm\nTMph4vgMwNV6NqqNZmDMQPnt47kNeAnYJSKPAOVAMfBeIA9rajNjRCAQ4OyoDLetu6pYLHZdjzED\n4avGo6pvAOcDLwMfxKVVfwjYACxT1VcHK0Bjhpvjaj02hpsxA+L7Oh5V3QxcPYixGDMiBAIBli4o\n4vEX9wDw+s4qFs+zWo8xfvVa8IjIB4CV3pw3H+jvQKr6p7hGZswwNmtK99EMNm2vZNnpNoabMX70\nVeP5I3Aurjntj/0cJwxYwWPGjEAgwFlRtR7X11NIho1cbUy/+jpL5uJm/IzcN8ZEmTUll4LcDKqP\nNtPWHmKTjVxtjC+9Fjyquivq4TnAE6paE7udiBThEg1+Ev/wjBm+Itf1PPHiHgC27Kxi8bxCm6/H\nmH74vY7nPmB2L+sW4YbUMWbMmT0ll4KcdADa2i3DzRg/+kou+Bsw33sYAB4UkZYeNp0E7B6E2IwZ\n9gKBAEsXFvHk+r2A19czb6LVeozpQ19nx13AJ737c4CtQOzPuQ7gCPC/cY/MmBFiTsl4Xs453DlL\n6aYdlZx76qREh2XMsNVXH886YB2AiCQDX1fV0qEKzJiRItLXE6n1bNlZxaK5Vusxpjd+Ry74MDBX\nRL4XWSYiZ4nI4yJiw+WYMW/2lPHke309rW0dbN5hfT3G9MbvRHDvBx4HFkctbgYygadF5LJBiM2Y\nESMYdKMZRGzeWcWx1vYERmTM8OU3q+124L9V9YrIAlV9XVUvAn4J3DkYwRkzkswpGU9edletZ8uO\nqgRHZMzw5LfgmQs82Mu6BwGb+tqMecFg9/l6Nu+otFqPMT3w2/tZgWtmW9XDulOBWr9PKCJJuBrS\nx4Bs4AngBlU93Mv2n8DN+TMTl7b9Q1X9TdT6TODHwDW41/Nn4CZVbfAbkzHxMqdkPBu2lXOkvoWW\ntg627Kzi7IXFiQ7LmGHFb43n98AdIvJJESkAEJF8Efko8C1vvV93AB8FPoKbx6cEeKinDUXkfcDP\ncandC4D/AO4VkfdEbfYLYDlwJfBu4GJvmTFDLhh0Y7hFbN5RSUtbb5P3GjM2+S14vgk8A/wPUCEi\nbbhren4DrAa+5ucgIpIKfA64TVVXqupruOF2zheRZT3sMgH4hqr+r6qWquovcdcTrfCOVwL8E/BZ\nVV2vqs/hrj26TkSm+HxtxsTV3Kl5jM9yk/W2tHawxTLcjOnGV1ObqrYCV4vIIlztIh84Cjw/wEng\nFuGa11ZHHXuPiOwBLiBmCm1V7ay5eNcSXY2r+UQKumVACO96I8863IWty4EHBhCbMXERDLrRDJ7e\nsA+ATTsqOWPuRFJTkhIcmTHDw4CucFPVTcCm2OUikqmqTT4OUeLdHohZfhCY2ttOIrIUWA8kAb8C\nHos6XoWqtkXF2C4iFX0dz5jBNm9qHq9sO8yRhhZX69lZ1S3d2pixzFfBIyIpwA3ARUAqbuw2cE11\n4+iqyfQnEwhFFxSeFiC9j/1KgaW4BIefAIeBr3rHO9bD9v0dz5hBFbmu5+mXXa1n4/YKTp8zwWo9\nxuC/j+f7uI79ebgCYCFQhOvIPw+42+dxmoGg12wWLQ1o7G0nVa1W1U1eNtt3gJu87Lhmb99YfR7P\nmKEwb1oeudF9PTvtuh5jwH/Bcy3wY1U9BfhP4CVVXYIriPbh+lT8iEwsFzuC4mSOb35DRC7y+pWi\nbQUycP1M+4FCrxCK7JMMFPZ0PGOGUjAYYOn8rua1TdsrabUMN2N8FzzFwKPe/a3A2QCqug/4HnCd\nz+NsBupxTXYAiMgMYAawtoftb+H4URHOxl1XVIVLJEjG1boiluNe1zqMSbB50/PIGZcKwLHWdrbu\nslqPMX6TC47i+nYAdgDTRCTLu0hTgWl+DqKqLSJyD3C3iFThCpB7gDWqut5Lt84HarxMuh8DT4jI\nl4C/4gqsm4EvqGoYOCAifwJ+5V1oGgDuBe5TVavxmIRL8vp6nn3FVfY3aiWnz5lASrL19Zixy2+N\n53ngsyKShit4moDIRZxLcbUYv24HfgfcjxsJYS/wfm/dMuCQd4uqPuWt+zCupnUL8O+q+t9Rx/sk\nLg37H8AjwLPAZwYQjzGDSqbnd6/17KxOcETGJFYgHA73u5GInAmsAV5W1UtF5Ie4LLeNwFnA/6jq\nvw1qpHHkNe+VPvPMM5SUlPS3uTEn7Y3d1ax61dV6MtKS+cg7F1itx4w4ZWVlrFixAmCmqu450eP4\nnY/nNdyFm5HstZtxmW4NuOFsvnSiARgzFsyP6utpbmln6y6r9Zixy+91PD/C9Zv8A8DrX/nWYAZm\nzGiSlBRkyfyizlrPq28dZsGMfDJsllIzBvnt4/lXoGAwAzFmtIuu9bS0drD+9UMJjsiYxPBb8GzA\n6/A3xpyYpKQgFyzqGrt2W2kNh2v8jDRlzOjit56/AbjNm6ZgE65vJ1pYVW+Ia2TGjEIzJ+cyc1IO\npYfqCIfDrN1YxvsvnUsgEOh/Z2NGCb8Fz3W4a27ygEt6WB/GZbkZY/qxfNEU9h2upyMU5nBNE9tK\nazhllrVkm7Gj14JHRK4FnlbVWlW1kZ6NiZPcrDSWzC9iw7ZyAF7ceojZU3JJt0QDM0b01cfza9xg\noIjIdhE5fWhCMmb0O3N+YbeLSi3RwIwlff3EasXN5AkwBzhLRLJ621hVX+htnTGmu2Qv0eCxdaUA\nvFFaw8KZBRTmZyY4MmMGX18Fzy+BL+OGnwnjpr3uScBbb5dhGzMAMyblML04h73lXqLBpgO875I5\nlmhgRr1eCx5VvUVEfgtMwI2pdgOwbagCM2a0CwQCXLBoCmVPuUSD8upG3tpTy4KZ+YkOzZhB1Wdv\npqq+ASAi3wEeUdWDQxKVMWPE+Ow0Fs0r5NW3DgPwwtaDzJySQ3qqJRqY0cvvWG1fs0LHmMGxdEEh\nWRkpgBvHbcMb5QmOyJjB5XfkAmPMIElJTmJ51IgGW3dVU1nbnMCIjBlcVvAYMwzMnpLL1KJsgM4R\nDfxMWWLMSGQFjzHDQCAQ4MLFUwgGXUbboepGdF9tgqMyZnBYwWPMMJGXnc6iuRM7H7+w5RAtbR0J\njMiYwdHXkDn3DOA4NkioMXFw1sIitu+rpaG5jaZjbWx4o7zbiNbGjAZ95Wy+ewDHsUFCjYmDlOQk\nzj9jMk+u3wvA1p1VLJyZT0FuRoIjMyZ++rqA1AYGNSYB5pSM543CGsoq6gmFw6x57QBXXzzbRjQw\no8ZJ9/GISJKIXByHWIwxRCUaeAXNwaoGduw/kuCojIkfX5dHi0gJ8DPgIiAVNz4buIIrxbtvY7UZ\nEyf5OemcMXciG7dXALBu80FmTMohNcVOMzPy+a3x/Ai4FPg9oMBrwM+BHbj+nfcNSnTGjGFnLSxi\nXLr7Xdd4rI2Xtx1OcETGxIffgucS4HYvc+03QKOqfhFYDDwPvGuQ4jNmzEpNcYkGEZt3VFJTdyyB\nERkTH34Lnmxgk3f/LVyBg6q245rg3hb/0Iwxc6eOZ/IENw1WyEY0MKOE3yFwy4FC7/4OoEBEilW1\nHKgCivw+oYgkAXcCH8MVaE8AN6hqj+0IIvJB4FZgLnAIN0/QD1W1w1v/TuCxHnadqqplfuMyZjgK\nBAJcdOYUHli5nVA4TFlFAzvLjjB3al6iQzPmhPmt8TwOfFNElqrqHuAA8DkRSQX+2Xvs1x3AR4GP\nABcCJcBDPW0oIu8AfocrbE4HvgLcAtwWtdlpwEZgUsyfjaZtRoWC3AxOmzOh8/G6zQdpa7cRDczI\n5bfG83XgSeAuYAVwO66v58u4DLcb/RzEK6g+B9yoqiu9ZR8CSkVkWQ/TZ38aeEhVf+Y93iUiC4CP\nA9/2lp0KbPVqX8aMSmefUsyO/UdoOtZGQ7NLNFh2+uT+dzRmGPI7H08FcCaueQxV/S2uAPoacLmq\n/pfP51uEa15bHXXsPcAe4IIetr8T+GbMshAQ3c5wKvCmz+c3ZkRKS0li2emTOh9v2lFJbb0lGpiR\nyVfBIyK3AcWquj+yTFVXq+r3gJ0i8h8+n6/Eu41tmjsIHDdSgqq+rKqd022LSA7wGVy/UKS/aD6w\nREQ2i8hBEXlERMRnPMaMGDItj0kF4wAIhcI8vWEf7R2hBEdlzMD57eP5Nl2FRqyzgc/6PE4mEFLV\ntpjlLUB6XzuKSCbwVyAD19cDMNvbLw34FPAB7/5zIlLY03GMGalcokFJ59A5h2uaWLlhn2W5mRGn\nr9Gp1wLneg8DwLpeKhJJwKs+n68ZCIpIspeKHZEGNPYRywTgb8BC4DJV3QugqttFpAA4oqohb9tr\ngH3Ah4H/5zMuY0aECeMzWH7GZJ7b5BoNdpUd4cWtqdbfY0aUvpILPg1ciyt0vg78HxCbntwBHAH+\n4vP5Ik11k6LuA0yml8w4EZkBPIXrG7pQVbdEr1fVmpjHTSKymx6a7owZDc6YO5GjDS1s2VkFwGta\nQW5WGqfMKkhwZMb409fo1NvwOva9vpT/VtWBpE33ZDNQjxvz7X7v2DOAGcDa2I295rJVuAJumaqW\nxqy/CrgPmKWqld6ybGAecO9JxmrMsLX8jCnUN7ZSeqgOgDWvlZGVmcL04pwER2ZM/3ylU6vq1wBE\n5DLgYiAXd+Hoc6r6jN8nU9UWb4K5u0WkCqgA7gHWqOp6L906H6hR1Vbgv4AJuHHimkWk2DtU2Lvg\ndA1QB9wnIjd7r+e7Xmz3+Y3LmJEmGAxw+bnT+cvqnVTWNhMKh3ly/V6uuXgOE8bb3D1mePOb1ZYm\nIv/AXcvzZdygoF8FnhKRp0QkbQDPeTvuotD7cbWZvcD7vXXLcKMTLBORDOAaIAvY4C2P/B0AUNVa\n3HA9bbgU7dW4vqJLVdVyTc2olpKcxJXnzyIrww0k2trWwaPP76ahOTZ3x5jhxe8FpN/CXWdzPfCA\nqoa85rcPAv+N6wP6qp8DeUkFX/T+YtetpmvKBfAx1YKqvsnAZks1ZtQYl5HCuy+YxUOrdtLa1kFD\ncxuPPb+bay6ZQ0qyTaFghie/6dTXAV9X1T9EssdUtUNVfw98A/inwQrQGNO3gtwMrjh3eufEcZVH\nmnlq/V5CIUuzNsOT34KnANjay7qtuCw1Y0yCTCvO4aIzuy61Kz1Ux/ObD9g1PmZY8lvwKHB5L+uu\nAEp7WWeMGSKnzCpgyfyu66a37Kxiy46qBEZkTM/89vH8BPiV16/zR9w0CcW4Jrh/B74wOOEZYwbi\n3FMnUdfYyo79RwB4fstBsselMmtKboIjM6aL30FC/w83MvW/Aetxg3quB27AzY3z08EK0BjjXyAQ\nYMVZ0yj2xnQLh8M89dJeDtc0JTgyY7r4bWpDVb8KTAHei5uW4Cpgiqre1ueOxpghlZwU5J3LZpAz\nLhWA9o4Qj60rpa6xNcGRGeP0NVbbs8BnVfWtyDJVrQIeHYrAjDEnLjPdpVk/+OwOWlo7aDrWxqNe\nmnV6qt8WdmMGR181nosBG3/DmBEqLzuddy2bSVLQpVnX1B3jiRf30mFTKZgE893UZowZeSZPzOLS\npV3j5ZZV1LNmY5mlWZuE6q/gsU+nMSOcTM/nnFOKOx9vK63h1bcqEhiRGev6a+z9qYjU+ThOWFXf\nHo+AjDHxt3RBEXWNrby5x80isv71Q+SMS2XetLx+9jQm/voreFK8P2PMCBYIBLj4zBLqm9ooq6gH\n4JmX95GWmmRTKZgh11/B8xlV3TAkkRhjBlVSUpArzpvOX1btpKbuGB2hMH9/bjeL5xVy7qnFJCVZ\nl68ZGvZJM2YMSU9N5srlsxiX3tWQsXF7BX9+dgc1dTaTiBkaVvAYM8bkjEvlg5fN69bEVnWkmT89\nvZ2tO6ss480Mur4Knv8DKocqEGPM0MlMT+HK5TO5cPEUkr0mtvaOEGs2lvHo86U0HbPJ5Mzg6bXg\nUdWPq6qNOm3MKBUIBDh9zkSuXTG323TZe8vr+MNTyp5DfhJajRk4a2ozZowryM3g2kvnsmjexM5l\nzS3tPPr8bta8VkZbu410YOLLCh5jDElJQZafMYX3Xji7W+LB1l1V/PmZ7VTWNicwOjPaWMFjjOk0\ntSib6y4XZkfN31NTd4w/P7ud17TCEg9MXFjBY4zpJj0tmSvOm8GlS6eS4iUehEJhXthykEfW7qah\nyaZXMCfHCh5jzHECgQALZxbwwcuEovzMzuVlFfX8YaWys+xIAqMzI50VPMaYXo3PTuOaS+aydEER\ngYCbXqGltYMnXtzDs6/so629I7EBmhHJCh5jTJ+SggHOPXUSV180m+zM1M7l20pr+OPK7by1p4Z2\nm+PHDIAVPMYYXyZPzOKDl83rNqL10YYWnn55H7959A2e23SAWht2x/hgc+AaY3xLT03m8nOmM704\nmzUbD9Da5praWlo72Lyjks07KpkyMYtTZhUwe0quDTxqejTkBY+IJAF3Ah8DsoEngBtU9XAv238Q\nuBWYCxwCfgn8UFU7vPWZwI+Ba3Cv58/ATaraMLivxJixS6bnM7Uom7f21PL67irqGrsy3Q5UNnCg\nsoGMtGQWzMjnlFkF5GalJTBaM9wkosZzB/BR4CNANXAP8BCwPHZDEXkH8Dvg88DjwGLgXtwcQd/2\nNvsFsAS40lv+a2/Z9YP4GowZ8zLTUzhzfiGLZSL7D9fzxu5qSg/WEfKu9Wluaec1reA1rWBaUTan\nzCpg5uRcgsFAgiM3iTakBY+IpAKfA25U1ZXesg8BpSKyTFVfiNnl08BDqvoz7/EuEVkAfBz4toiU\nAP8ErFDV9d7xPgmsEpGbVfXAELwsY8a0QCDAtOIcphXn0NDcxrbSarbtrqahuWug0X2H69l3uJ6s\njBQWzixg4cx8sqISFczYMtQ1nkW45rXVkQWqukdE9gAXALEFz51AY8yyEBDp3VzmPV4XtX4d0IGr\nQT0Qn7CNMX5kZaRw9sJils4vYm95Ha/vqmbf4frOEQ8amtvYsK2cl988zIxJOZw6q4CpRdlWCxpj\nhrrgKfFuY2siB4GpsRur6svRj0UkB/gMrl8ocrwKVW2L2qddRCp6Op4xZmgEgwFmTs5l5uRc6hpb\neWN3NW/uqemcbiEcDlN68CilB4+SlZHClIlZFBeMo6ggkwm5GVYQjXJDXfBkAqHogsLTAqT3taOX\nRPBXIAP4StTxesrf7Pd4xpihkTMulfNOm8TZC4soPeRqQWUV9Z3rG5rb0H216L5aAFKSghTmZ1Jc\nMI7iAnebkWYJuKPJUP83m4GgiCSranvU8jSOb1LrJCITgL8BC4HLVHVv1PF6Spfp83jGmKGXlBRk\nTsl45pSM50h9C2+UVvNmaQ3HWtu7bdfWEerMjIsYn5XWWQgVF4wjPyfdakUj2FAXPPu920lR9wEm\nc3zzGwAiMgN4Ctc3dKGqbok5XqGIJEWlVycDhb0dzxiTeOOz0zj/9Mmce0oxlUeaOVzdRHlNI4eq\nGrslJUQcaWjhSEMLb+11taLUlCQK8zIpLshkUsE4JuZlkJGW3Dmsjxnehrrg2QzUAxcB90NnwTID\nWBu7sYgUAqtwyQLLepgRdR3uNZwHPO8tW44bkWEdxphhLSkp2FmLOQM3EV1DUyvlXkFUXt1ERW0T\noVD36Rha2zooq6jv1mSXkhQke1wqWZkp5GSmkpWZSs64VLIzU8nOTCEzPcVqScPEkBY8qtoiIvcA\nd4tIFVCBu45njaqu99Kt84EaVW0F/guYAFwKNItIsXeosKoeVtUDIvIn4Fci8gkggLvO5z5LpTZm\nZMrKTGVOZipzpo4HoL0jRGVtM+XVjZTXNFFe1UjjseNrRW0dIWrqjlHTy7A9wWCArIyUqMLI/WVl\numXjMlJItpEWhkQieuxux13oeb93+wRwg7duGa6Gc4mIvIQbjSAIbIg5RgddsX8S+CnwD6AdeBB3\nwakxZhRITgoyacI4Jk0YB7iMuPqmNsqrGzlc3cSh6kZq64/1O0V3KBSmrrG12ygLsZKCAdJSk0lP\nTSI1JYm0lKSu+6nucffbZHebmkRqctCa+nwKjMUZBb3mvdJnnnmGkpKS/jY3xgxz4XCYltYO6pva\nqG9qpb6xlfpm77apjbrG1uOSGOItEAiQkhwkOSlIclKA5KQgSUkBkoNBkpODJAcDJHVb17VtUlKQ\nFG/7pGCAYDBAMODdRt/vdkuP6wIBV4BCAHfj3XoxnoyysjJWrFgBMFNV95zocSxH0Rgz4gUCAdLT\nkklPS2ZiXkaP27S1ewVTY6srnJpaqWtso8G739TSflxf0kCEw2Fa2zo6B04djgIBVzAFgKB3p9ut\ntzwQgBmTc7lo8ZRBqcVZwWOMGRNSkpPIz0kiP6fnS/zC4TDtHWFa2jpoaW33bjuOvz1umdu2v6a+\n4SAcDhNp5Oqg70L29V1VLJyRT2HUDLTxYgWPMcYQaSpzzWVZGSkD3r8jFKatvYOOjjDtHSHaO0Ld\n76AE7WwAABWcSURBVIfCtLX3siwUor09RHtHmI5QmHA4TCgcJhTy/sJ4t+Hut92WdW0TKWBC4TBE\nbgdowvgM8nMH5zp8K3iMMSYOkoIBklKH71dqpDAKh8OEox7HFk6R1sZx6YN3XdTwfZeMMcbETaR/\nx/XwJNZYLXiSAMrLyxMdhzHGjBhR35lJJ3OcsVrwTAK4/nqbK84YY07AJGDXie48Vguel3Hz/xzC\nXYxqjDGmf0m4Qufl/jbsy5i8gNQYY0zi2MBExhhjhpQVPMYYY4aUFTzGGGOGlBU8xhhjhpQVPMYY\nY4bUWE2nPo6IJAF3Ah/DTbP9BHCDqh5OZFx9EZEi4AfA5UAG8BLwRVV93Vt/ubdegB3ALar6eNT+\nhcDPvP1bgd8AX1XVwR0/fgBE5Fzc7LJvU9XV3rIR+7pE5JPA/9/emcfbNZ19/Bs1K0oar2rU7Ef6\nUjG8JRIlrRBTq2hasw6GiNRQJSXmoEXwoUoNb6gWjRRpzCFDRaJVhJY+H5VSM9E2piRUvH/81r53\nZ+fcIbm55+a8Xd/P53zOOWuvvfZ69l57PWs9a3h+CKwNPA2cGBEPpmMNKZeklYDzgX2AFYGpuBw+\nnY43lFySrgSWjojvlsI6LIOk47CvsB7YQ/LgiHi28yVqun4tuYYAQ3B5fAEYGRHXlI53ily5x9PM\nGcAhwMHADkBPYExXZqg1JC0F3AZsDHwVO9GbBTwgqbukXsBYYDTQG7gDuF3S50vJjAHWxK7IDwUO\nA86slwxtkSq0X1BaJd3Ickk6BHvVPR/YDJgEjJW0biPLBVwKfAXYD7uhnwPcI2n5RpJLUjdJZwFH\nVMI7LIOk76T/JwBfBGbje7RcZ8lTunZLch2Fy+I5wObASOAKSQeVonWKXHkdD5Bcbs8EhkbEqBS2\nLvA3YPuIeLjrclcbSb2Bx4BeEfFMClsO+AdwFLA9oIjYsXTOBODZiDhc0nbAw8D6EfG3dPwQ7M21\nR0TMrac8tZB0FVasOwI7RcTEFNZwcknqhsvTDRFxWgpbCj/Dn+AXu+HkSvmYCZwZEZel/72APwNb\n4cpuiZdL0vrAtcB/A+8D9xc9g8VR5iQFcFNEnJGOfxIvYD8iIn7VRXJNB+6JiJNK8a/FTt76d6Zc\nucdjtsDmtYlFQPKu9zze4WBJ5O/AHkCUwgqHIKvhfE+snDORZnn6AS8UBap0fGV8P7oUSbsBuwND\nK4caVS4B6wC3FAERMS8itkgvaKPKBfAmMEjSGqkR9x3gn8AMGkeuPsCLuCf6t8qxDsmQzFUbM3/9\n8i7wKJ1fv7Qm11DgykrYPFx/QCfKlcd4TOH/+uVK+CvY9rnEERFvAXdWgofisZ77gLNpXZ6eLRwn\nxXlksWV2IZH0adxKOwxXYGVayveSLtfG6ftTkh7ELdC/ACenHnWjygVwOHAj8Dregup9YEBE/EtS\nQ8gVETdiGZBUPdxRGT5Mv+tev7QmV0RMKv+X9DngW7hHA50oV+7xmBWBeRHxYSV8LtA5npAWM5L2\nAs7Dg4PPYJnmVKKV5VngeJL/Y7pe5quAsRFxT41jjSrXKun7euAaYFfgT8CDkjalceUC2BB4DfdQ\ntwfuBW5NSqeR5SroqAyFC8/W0uhSJPXADdnX8LgPdKJcucdjZgNLSVq6MpNmOeC9LspTu5F0KHA1\ncDOeMQWWqTrAV5ZngeOSlsHOOrpM5mRD7o0HO2vRkHLR3DocUdi+JR2NTRJH0aBySVoPl72+ETEt\nhe0PPAMcR4PKVaGjMswundNSGl1GGge6GyuSL0XErHSo0+TKPR7zYvr+TCV8LRbsRi5RSDoFT3G8\nEjg4IopxnhdpXZ6WjkPXynwo7uK/Juldmsew7k7TQRtVruLaTxUBEfExrqDXo3Hl2hrPOny0CEit\n4sdxT6hR5SrTURmW2PpF0pZ4+vs8oE9EzCgd7jS5suIx04F38MwioGlW27rA5K7JUttI+iGeCnla\nRByTKrKChyjJk9iJZnkeAtaXtHbl+DvAE52U5fZwINALDyxvAeySwr8LnEbjyvUYbgVuUwSkmW69\nsF+TRpXrpfTd1EMtyfUsjStXmQ7JEBFv4HtRrl8+iZV2l9UvkjYB7seTqPpGxIuVKJ0mVza1AWla\n4BXAhWlq6BvAFcCkwnywpCFpc+Bc4Drgaklrlg6/gwcI/yjpTOAmYH88z/6oFGcqMA24JS0iKxaj\njoyID+ojxYJExHwtJUmF/fjliHhDUqPK9b6ki4ERkl7HPZ/BwAZ44eWyNKBcwO9TvkZJGoyXJRwL\nfA6XwVVoTLnKLI4yNxLXL3/FY3vn4mnHv6mbFAtyAx6fOQhYplSH/DsiZtKJcuUeTzOnAr/EM0Am\n4FW8+3Zpjlrnm9jE8W38oMuf4yLiKWBvLMMTwF7AnsWan9Q72hvPRPodNtddA5xVXzEWjgaX6zTg\nAuASrHi2w7O/olHlioiPgD3x7LObcUW1IdAvIl5oVLnKLA4ZIuJKYASuqKfhhsauXaVcJW2Me99r\nYXN2uf6YlvLcaXLlBaSZTCaTqSu5x5PJZDKZupIVTyaTyWTqSlY8mUwmk6krWfFkMplMpq5kxZPJ\nZDKZupIVTyaTyWTqSl5AuohIGoVX+27YwvHngfFlb3+dnJ+6Xq+9SNoRr4vqFxEPtRLvY2B4RJxT\nr7w1Mm2Vv/80JJ0BnBoRS6f/E/FCyK/UMQ8/B16MiLPT/on/C6wdES/ViHsN9qq7bins08ApeJ1Q\nT7zTxePA5RFxWylekXaZuXibmnHA2WkBaBH/NGDNiBi8GMRcLGTFk1lS2I7mvZ8ybXM29ouSqc1g\nvItyXZBdY++C/S4tyvkr4i1qwKv/nwM+BQwCfiPp2Ii4tHLaXtgXUjdgJWBL4GRgN0l9IuLNFO8C\nICSNiYgHFiV/i5useDJLBEvq1kRLKhHxXFfnYUkmIp6u17XS3nQj8VYyVRcB7WVfrLSavH0mbpe0\nAnCWpMvTThEFj1d6U+Ml3Yd3EDgfO+QjIman7ZpGAl9YxPwtVrLiqROSVsJbpnwd72M1F++FdGJE\nPJnijML+zUfjlsvn8O7FJ0XEvaW0Ngcuwr2Et4AfteP6F+MNONcoNhOVdAvwDdwNfz2FnQMcFBHr\nSPoEdrNwAN5TbB7u+p8aERNT/BVSXvYCemAvh9dExIWVLPSSdDrQF5iF95gbXrxIZVNbyTzXH5se\n+gBvA6OAU0rnrApcnK69DPbuORPYv2zCqHEvPgP8GBiIt3D/A34Oj6XjPfC2ILvhnXffTfk5PiJe\nSHEmAk/jff2OBD6JzRzfA44Gjklh44HDk+O+Qs4hwA7Yg+ws7PTujJJc7S0rTaa25PnzPLyP2CrY\nt8pUXBl2K+U58HZQR6Xn9Ufg+xHRtLt0jfu1Fd6ja2s8LvwILgOFG4RR2DT0G/y8VsGbRA4tK0hJ\nm6X73g+XpXvTPX0pHd+R9j335XGvYP90j3+dnkM5zxMpmdrSfT8S77G2N6777gaGpM0uCwVycoq3\nBt4m5kbsQ2m95JW4FrsDm1LyLrsI/Ff6rjXuPgL3hpbDTvZaJCKekHQrcKCkYyKiiH8z3lNt94io\nOpCsO3lyQQeRtHStT42ovwAOwS/MAOB47I72V6nAF2wLnAAMB74G/BsYkypZJH0Wv9SrYoUwHL/M\nn20jq3cCnya1eNI1d0rHdijFG0izZ9MLcAXwM+y47HspjdHJNADed2xgyvMuwB3ABcmvTplLsYvc\n3bFiHZbSa42bSuf8CjgJu00oGIuVzsk072p9fGsJpt1zpySZTwD2w+/BeEk90325G1d+J+FndQaw\nc7oPZQ7ElePBWFEMwkpsAN5Nexjw1XR+mRHYUda+2OndMHyvC9pbVspcjZXJBSnd5bAiqjIIK7wh\n2NvkmthpW826QNIqwD1Yoe+D9whcCbgnHSvYGpeVk3BLe1NgQlKixd5gU4DV8aaUhyeZJhdlu0Rb\nz/1GXHbOxc9vddp47okfY7PUN3CDak/caCo4A5swr8fv3ovAz9uR7gHAlIh4rR1xW+I+7L11kqTh\nkr6YfN8QEX+IiAtLSqQtxuM905p2Qo+IV4GHsbLucnKPp2NsQLODrxZJLbQVcevq1hQ8Kb24F+HK\nvLDHrgr0Lrrbkt4DJgE74kr9WLw56MBSKzpIG/u1wmTccv8y3uhws3TdJ/C25qNlH+q9sTIDbyA4\nLCJ+WpJlDjAG+DyuZL8E3B8RRWtvYvKj0zS4mbgoIkakNCbgCrk/C/p8L3NVabLBBElfw5XmtZL6\nk3oNRQtOdild9Stf5VDs7mLziPhTOm8adluwPa4c38Gt9YdLMm1IMl2U6AbsExHvAPdJOgxYB/hi\n4UxL0kDcMy3zMrB38p10t6SVgaGSzsK7Bbe3rJCusQGuzI8pnpWke4En8XMq8wlgl5Rn0rWvx+Vh\neo371Std89Lifkj6C1YcK+MeCbjc7hIRj6Q4z6T0DgV+CpyOy99XIuLdFGcSMAMrwRGla7b23D+P\nFeCREXFVSdanaHt8ZXpEHJZ+3y9pG9z7KXqZJwIXR8RpKc69qXc8sI10++PGwiITEdMlfRO4HPe2\nzwLelzQZuC4iRi9Ecq+n7zUr4Y/ihkeXkxVPx3iJVHBrMLb4key+u0JTj2Xj9NkjRVm2dN6rFRtv\nYcNdKX33w62rt0rpPyLp78X/ZCIrt4w/jogPJI3Hiuci/LI8CdyFew2kPM4GHkzpfjOl1wO/1Bvh\nVmI5zxOAI2U3x3cBd0bE2TXux+9K+f04zcL7VI14ZaZU/r9E833ojyvpu0rpvifpTpp7crXoCzxb\nKJ103izciCjYSVI32SfTRsAmWCmVnxPA00UFnngdmBPNHhzBptBNK+fdHM0O+8CK/ARg27C77/aW\nlab84uc9piTTPEmjWVDxPFXJc7V8VfkTVnTjJP0am8fui4iTKvFmFEonXf8pSc/i8vpTXO7GA3NK\nFoGZ2Gy3M/Mrntaee7/0fUdF1ltxj6s1Wkt3O2AFSvcwcQutKJ6ksNZgwQZPeyY2zBcnIm6VdAcu\n2zvjxuYAYNdkFv9WzO9za2F5HviMpGW7alfsgqx4Osbclmzjkj6o/N8Fm6U2wS3q6bgFCPMriWp3\nuqigClPI6tj5UpVXS78fYH7HVUWP6U7gktSF74/NGZOBYZK64wrvgWKAVNLW2C/RNilffwYKBVfk\n+Vj8Ah+I/ZZcJmkqcFRElFvQVVe482jb1FvrXhTn9ABm1ngR2zJ3dKcyHlBF0gHYTLU28A88rvU+\n8z8n8HOs0h5Xxq9U/hf5WS1dv71lpaBH+n6zEl7rXrRVvuYjIt6V1A+7DRkEHAHMlnQDHhua24JM\nYLlWS7+7Y5PUATXiVctza8999fRdlfVV2qat8lQr3bbKU2EmrD734n/VLXTBsjXOKby33ps+SFoL\nv1eD8FjXPW3kB5rN7lUvoMX1VmVBOetKHuOpA8kUcjs252wArBoR/YDfLkJyM2keiCzTvfT7CKws\nis8RKfwu3MLrg1uOE/Gg5b9pbl2NS3kubPtv41bzyhHxP3hSQBMRMTciRkTEptjMNARYH9vhO5OX\ngR41xjzWaOO8WTRXMk1I6idpI0l9sYOs0UDPiOieBqinLo5MJ7pX/hfP841FLCtFBVOVva170S7C\nHIRNbn1wBXgEftYFVZnAchVKdRYuE9vU+OyzENkpTLjVd6DW9ReGRb2HheWh2nsvFNZa1KZnKQ6S\npkqqrs0hIl6h2cTbq428FPTHSvaxSvhqWNn+o53pdBpZ8dSHrfBg8rkRMaPUSi+68AvzHB4A+qrk\ncVRSL1zZA00VxaOlT6TwV/CYzrG41TM5It7Dtt/j8ctbTCzYJP2/OCKeLpmGmvIsaXlJIemElP7f\n0xjDTbi30JlMxq3JwjU2kpYjmala4SFgI0lN4wFpwsFv8cB5H/w8To/kDTWZLndm8b0ve1T+74sr\nimksWlmZggemv1oJr/5faCTtLelNSWtGxEcRMTW8EPFfzP+MN5a0Uem8L2CHcA+moEm44nysKJe4\nJzmMtsdQyhTp7VcJ37MacSF5Ajeyqvfsa62dlHp8r2FFUuZR3MNYYEwlvbt9sJm64HlgP0nrV+PT\nPHb1VGt5SWlvhhX59TUmI/QEXon5p2R3CdnUVh8ew72Kn8jTmpcHDsOzdqBl+3otLsEtoPvk1drL\nYPt4e222d2Jb+PSIKFo+E/CU7Mej2fV04BdxeJqK+hGuIL9d5Dki5kj6PXB6Mi0+iV+SQ4FiYLxT\niIiJaZLC9ZJ+hF/+7+MB1RdaOfU6YCgeszgdt/5OxONF19D8kl8u6Xps2hmCZwN2k7RCRMzuYPb7\nSroOT3HdPuXn9DRGtdBlJSKeS6avC9NElmfwM+hNxxdRTsHK7nZJ5+MyMQhPmS67N14KGCvpVFwm\nz8PTzX+Zjp+FFetYeYX/h3jKea3Zgi0SEX9N55+fGhrT8azCzRdZQqf7tqSLcHmfjWeA7UWzIprX\n4smekda3kt4ceceAi9IzGYNl3gT4ATZPX1Y65RQ8Vvd7SZfiHvZHuEf4A2BcRNxfuW7vNLYKnla+\nNR4rfI7a413bk0x4XU3u8dSBiPgrnrq6Dm5ZX5UO7Ygrhn61z6yZ1lu4kD+PZyNdggdva81IqkXR\no5lYCitaXuNK15mFX7pPYCVyA27h7oDHHYo8H4nXofwAv4DDcQVeNsN0Fvula47EFdyzuDJ8t6UT\nIuJtLMMf8X27GSudnSLi1fD6pKOxfHentF/Aa2pgIZ5VK4zEPc478NjYccWMvw6UlaPxNiqn4Hvw\nMZ4x2OK9aA/hNS4DcA/nWlx+tsSz+SaXos7A44FXpOtOwff0g5TO9JT3pfGzugXPitstIsYvZLYG\n43VFQ4Hb8KSAEa2e0T7OSekcju/9BnjKNrR+H28FtkqzQpuIiJFYSW+EZR4HHIdNqdumsljEnYEb\nCr/E42B34Ht9AJb16yzIWKygpqa0D8bT6reLiH+WI6Ze1hYsOHmiS8iurzMNiaR18Jqn20sD3KQe\n2EsRUetF7XLUCXvSSVodmxjvioh/lcJ/DWwYEVsurmu1cP1RNPi+cWnCzbfwfoevlMJ/AnwnIloc\nQ0rjjE8CN0bEjzs9s4uApFOwxWLLDs6MWyxkU1umkbkBuCWZmYqFgVvjBaX/SczG6z+mSboM9+AG\nYFt/de1RpgYR8WEy2Q6WdB7u4W2LzYGtKpO0PGAY8DNJl9UYW+lS0pTvwViBdrnSgWxqyzQo4a1r\n9gDWw+aD2/B6mYER8WBr5/5/I405DcDv843YRDMAODgiRnVh1hqNPfDYy9V4LOQQvGvCmW2dGBHj\nsNn3xM7M4CJyIh4jas9U7LqQTW2ZTCaTqSu5x5PJZDKZupIVTyaTyWTqSlY8mUwmk6krWfFkMplM\npq5kxZPJZDKZuvJ/nn31/8jM9GoAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(infected_sweep)\n", + "\n", + "decorate(xlabel='Hand-washing campaign spending (USD)',\n", + " ylabel='Total fraction infected',\n", + " title='Effect of hand washing on total infections',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig05.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's put it all together to make some public health spending decisions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Optimization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose we have \\$1200 to spend on any combination of vaccines and a hand-washing campaign." + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "24" + ] + }, + "execution_count": 146, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "num_students = 90\n", + "budget = 1200\n", + "price_per_dose = 50\n", + "max_doses = int(budget / price_per_dose)\n", + "dose_array = linrange(max_doses)\n", + "max_doses" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can sweep through a range of doses from, 0 to `max_doses`, model the effects of immunization and the hand-washing campaign, and run simulations.\n", + "\n", + "For each scenario, we compute the fraction of students who get sick." + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.988888888889 0.266727403413 0.187595503995\n", + "1.0 0.977777777778 0.266766745484 0.174324794892\n", + "2.0 0.966666666667 0.26683150821 0.16186489064\n", + "3.0 0.955555555556 0.266938009181 0.150272695439\n", + "4.0 0.944444444444 0.267112856728 0.13961230444\n", + "5.0 0.933333333333 0.267399129509 0.129963581944\n", + "6.0 0.922222222222 0.267865747331 0.121434809166\n", + "7.0 0.911111111111 0.268620815383 0.114180370856\n", + "8.0 0.9 0.269828391545 0.108423787107\n", + "9.0 0.888888888889 0.271723878668 0.104483374203\n", + "10.0 0.877777777778 0.274613528135 0.102788098227\n", + "11.0 0.866666666667 0.278828368254 0.103846179534\n", + "12.0 0.855555555556 0.284596094758 0.108083570148\n", + "13.0 0.844444444444 0.291836044587 0.115450119409\n", + "14.0 0.833333333333 0.3 0.124877480279\n", + "15.0 0.822222222222 0.308163955413 0.134149883099\n", + "16.0 0.811111111111 0.315403905242 0.140764543663\n", + "17.0 0.8 0.321171631746 0.143202490748\n", + "18.0 0.788888888889 0.325386471865 0.141392287173\n", + "19.0 0.777777777778 0.328276121332 0.136229534349\n", + "20.0 0.766666666667 0.330171608455 0.128888830991\n", + "21.0 0.755555555556 0.331379184617 0.120402986465\n", + "22.0 0.744444444444 0.332134252669 0.111526601711\n", + "23.0 0.733333333333 0.332600870491 0.102750907495\n", + "24.0 0.722222222222 0.332887143272 0.0943669224857\n" + ] + } + ], + "source": [ + "for doses in dose_array:\n", + " fraction = doses / num_students\n", + " spending = budget - doses * price_per_dose\n", + " \n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " add_hand_washing(system, spending)\n", + " \n", + " run_simulation(system, update1)\n", + " print(doses, system.init.S, system.beta, calc_total_infected(system))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function wraps that loop and stores the results in a `Sweep` object." + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_doses(dose_array):\n", + " \"\"\"Runs simulations with different doses and campaign spending.\n", + " \n", + " dose_array: range of values for number of vaccinations\n", + " \n", + " return: Sweep object with total number of infections \n", + " \"\"\"\n", + " sweep = SweepSeries()\n", + " for doses in dose_array:\n", + " fraction = doses / num_students\n", + " spending = budget - doses * price_per_dose\n", + " \n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " add_hand_washing(system, spending)\n", + " \n", + " run_simulation(system, update1)\n", + " sweep[doses] = calc_total_infected(system)\n", + "\n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can compute the number of infected students for each possible allocation of the budget." + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "infected_sweep = sweep_doses(dose_array)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap05-fig06.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(infected_sweep)\n", + "\n", + "decorate(xlabel='Doses of vaccine',\n", + " ylabel='Total fraction infected',\n", + " title='Total infections vs. doses',\n", + " legend=False)\n", + "\n", + "savefig('chap05-fig06.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose the price of the vaccine drops to $50 per dose. How does that affect the optimal allocation of the spending?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose we have the option to quarantine infected students. For example, a student who feels ill might be moved to an infirmary, or a private dorm room, until they are no longer infectious.\n", + "\n", + "How might you incorporate the effect of quarantine in the SIR model?" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "Add a 1/4 variable to SIR that is quarantined, some of those studnets will get infected and then get moved to the recovered category, some will never actually have the plauge and will be in the susceptible category." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/chap06mine.ipynb b/code/chap06mine.ipynb new file mode 100644 index 00000000..8bb48a8c --- /dev/null +++ b/code/chap06mine.ipynb @@ -0,0 +1,1244 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 6: Analysis\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# To switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Code from the previous chapter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`make_system`, `plot_results`, and `calc_total_infected` are unchanged." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(beta, gamma):\n", + " \"\"\"Make a system object for the SIR model.\n", + " \n", + " beta: contact rate in days\n", + " gamma: recovery rate in days\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " init = State(S=89, I=1, R=0)\n", + " init /= np.sum(init)\n", + "\n", + " t0 = 0\n", + " t_end = 7 * 14\n", + "\n", + " return System(init=init, t0=t0, t_end=t_end,\n", + " beta=beta, gamma=gamma)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(S, I, R):\n", + " \"\"\"Plot the results of a SIR model.\n", + " \n", + " S: TimeSeries\n", + " I: TimeSeries\n", + " R: TimeSeries\n", + " \"\"\"\n", + " plot(S, '--', color='blue', label='Susceptible')\n", + " plot(I, '-', color='red', label='Infected')\n", + " plot(R, ':', color='green', label='Resistant')\n", + " decorate(xlabel='Time (days)',\n", + " ylabel='Fraction of population')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def calc_total_infected(system):\n", + " \"\"\"Fraction of population infected during the simulation.\n", + " \n", + " system: System object with results.\n", + " \n", + " returns: fraction of population\n", + " \"\"\"\n", + " frame = system.results\n", + " return frame.S[system.t0] - frame.S[system.t_end]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an updated version of `run_simulation` that uses `unpack`." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " Add a TimeFrame to the System: results\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " frame = TimeFrame(columns=init.index)\n", + " frame.loc[t0] = init\n", + " \n", + " for i in linrange(t0, t_end):\n", + " frame.loc[i+1] = update_func(frame.loc[i], system)\n", + " \n", + " system.results = frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write a version of `update1` that uses `unpack`." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Original\n", + "\n", + "def update1(state, system):\n", + " \"\"\"Update the SIR model.\n", + " \n", + " state: State (s, i, r)\n", + " system: System object\n", + " \n", + " returns: State (sir)\n", + " \"\"\"\n", + " unpack(system)\n", + " s, i, r = state\n", + "\n", + " infected =beta * i * s \n", + " recovered =gamma * i\n", + " \n", + " s -= infected\n", + " i += infected - recovered\n", + " r += recovered\n", + " \n", + " return State(S=s, I=i, R=r)" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test the updated code with this example." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
SIR
00.9888890.0111110.000000
10.9852300.0119920.002778
20.9812960.0129290.005776
30.9770710.0139210.009008
40.9725410.0149700.012488
\n", + "
" + ], + "text/plain": [ + " S I R\n", + "0 0.988889 0.011111 0.000000\n", + "1 0.985230 0.011992 0.002778\n", + "2 0.981296 0.012929 0.005776\n", + "3 0.977071 0.013921 0.009008\n", + "4 0.972541 0.014970 0.012488" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = make_system(0.333, 0.25)\n", + "run_simulation(system, update1)\n", + "system.results.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nSiUIgiCoG/8BBBozF/ND35wAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "frame = system.results\n", + "plot_results(frame.S, frame.I, frame.R)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sweeping beta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Make a range of values for `beta`, with constant `gamma`." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "beta_array = linspace(0.1, 0.9, 11)\n", + "gamma = 0.25" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the simulation once for each value of `beta` and print total infections." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.1 0.00723090166498\n", + "0.18 0.0262722567457\n", + "0.26 0.160575485321\n", + "0.34 0.490862856866\n", + "0.42 0.689867847411\n", + "0.5 0.804506112463\n", + "0.58 0.873610307851\n", + "0.66 0.916554007142\n", + "0.74 0.943729262152\n", + "0.82 0.961060480958\n", + "0.9 0.972099315633\n" + ] + } + ], + "source": [ + "for beta in beta_array:\n", + " system = make_system(beta, gamma)\n", + " run_simulation(system, update1)\n", + " print(system.beta, calc_total_infected(system))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wrap that loop in a function and return a `SweepSeries` object." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_beta(beta_array, gamma):\n", + " \"\"\"SweepSeriess a range of values for beta.\n", + " \n", + " beta_array: array of beta values\n", + " gamma: recovery rate\n", + " \n", + " returns: SweepSeries that maps from beta to total infected\n", + " \"\"\"\n", + " sweep = SweepSeries()\n", + " for beta in beta_array:\n", + " system = make_system(beta, gamma)\n", + " run_simulation(system, update1)\n", + " sweep[system.beta] = calc_total_infected(system)\n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "SweepSeries `beta` and plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "infected_sweep = sweep_beta(beta_array, gamma)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap06-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "label = 'gamma = ' + str(gamma)\n", + "plot(infected_sweep, label=label)\n", + "decorate(xlabel='Contacts per day (beta)',\n", + " ylabel='Fraction infected')\n", + "\n", + "savefig('chap06-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sweeping gamma" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the same array of values for `beta`" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.1 , 0.18, 0.26, 0.34, 0.42, 0.5 , 0.58, 0.66, 0.74,\n", + " 0.82, 0.9 ])" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "beta_array = linspace(0.1, 0.9, 11)\n", + "beta_array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And now an array of values for `gamma`" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.1, 0.3, 0.5, 0.7])" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gamma_array = linspace(0.1, 0.7, 4)\n", + "gamma_array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For each value of `gamma`, SweepSeries `beta` and plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap06-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for gamma in gamma_array:\n", + " infected_sweep = sweep_beta(beta_array, gamma)\n", + " label = 'gamma = ' + str(gamma)\n", + " plot(infected_sweep, label=label)\n", + " \n", + "decorate(xlabel='Contacts per day (beta)',\n", + " ylabel='Fraction infected',\n", + " loc='upper left')\n", + "\n", + "savefig('chap06-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now wrap that loop in a function and store the results in a `SweepSeriesFrame`" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sweep_parameters(beta_array, gamma_array):\n", + " \"\"\"SweepSeriess a range of values for beta and gamma.\n", + " \n", + " beta_array: array of infection rates\n", + " gamma_array: array of recovery rates\n", + " \n", + " returns: SweepSeriesFrame with one row for each beta\n", + " and one column for each gamma\n", + " \"\"\"\n", + " frame = SweepFrame(columns=gamma_array)\n", + " for gamma in gamma_array:\n", + " frame[gamma] = sweep_beta(beta_array, gamma)\n", + " return frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the results look like." + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0.10.30.50.7
0.100.0846930.0054440.0027360.001827
0.180.7086230.0159140.0061180.003783
0.260.9007800.0553800.0116390.006427
0.340.9568880.2678640.0221150.010191
0.420.9770450.5245630.0478160.015946
\n", + "
" + ], + "text/plain": [ + " 0.1 0.3 0.5 0.7\n", + "0.10 0.084693 0.005444 0.002736 0.001827\n", + "0.18 0.708623 0.015914 0.006118 0.003783\n", + "0.26 0.900780 0.055380 0.011639 0.006427\n", + "0.34 0.956888 0.267864 0.022115 0.010191\n", + "0.42 0.977045 0.524563 0.047816 0.015946" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frame = sweep_parameters(beta_array, gamma_array)\n", + "frame.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's how we can plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for gamma in gamma_array:\n", + " label = 'gamma = ' + str(gamma)\n", + " plot(frame[gamma], label=label)\n", + " \n", + "decorate(xlabel='Contacts per day (beta)',\n", + " ylabel='Fraction infected',\n", + " loc='upper left')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It's often useful to separate the code that generates results from the code that plots the results, so we can run the simulations once, save the results, and then use them for different analysis, visualization, etc." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Contact number" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After running the SweepSeriess, we have a `SweepSeriesFrame` with one row for each value of `beta` and one column for each value of `gamma`." + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(11, 4)" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frame.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following loop shows how we can loop through the columns and rows of the `SweepSeriesFrame`. With 11 rows and 4 columns, there are 44 elements.\n", + "\n", + "One implementation note: when we select a column from a `SweepSeriesFrame` we get a `Series` object, rather than a `SweepSeries` object, but they are almost the same." + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.1 0.1 0.0846929424381\n", + "0.18 0.1 0.70862278537\n", + "0.26 0.1 0.900780251778\n", + "0.34 0.1 0.956887899544\n", + "0.42 0.1 0.977045257074\n", + "0.5 0.1 0.984595862826\n", + "0.58 0.1 0.987400345318\n", + "0.66 0.1 0.988404249064\n", + "0.74 0.1 0.988743421406\n", + "0.82 0.1 0.988849515052\n", + "0.9 0.1 0.988879570517\n", + "0.1 0.3 0.00544355912239\n", + "0.18 0.3 0.0159140691448\n", + "0.26 0.3 0.0553797621068\n", + "0.34 0.3 0.267864167733\n", + "0.42 0.3 0.524562935844\n", + "0.5 0.3 0.686050483916\n", + "0.58 0.3 0.788378556339\n", + "0.66 0.3 0.85506574641\n", + "0.74 0.3 0.89947913569\n", + "0.82 0.3 0.929469302619\n", + "0.9 0.3 0.949853310327\n", + "0.1 0.5 0.00273576554115\n", + "0.18 0.5 0.00611834135832\n", + "0.26 0.5 0.0116394693217\n", + "0.34 0.5 0.0221147665242\n", + "0.42 0.5 0.0478162266689\n", + "0.5 0.5 0.132438038458\n", + "0.58 0.5 0.303264192648\n", + "0.66 0.5 0.464110227319\n", + "0.74 0.5 0.588476972528\n", + "0.82 0.5 0.682749610978\n", + "0.9 0.5 0.754595298329\n", + "0.1 0.7 0.001826769347\n", + "0.18 0.7 0.00378256160842\n", + "0.26 0.7 0.00642667221076\n", + "0.34 0.7 0.0101905519335\n", + "0.42 0.7 0.0159458265615\n", + "0.5 0.7 0.0257079250464\n", + "0.58 0.7 0.0450077531168\n", + "0.66 0.7 0.0906940688294\n", + "0.74 0.7 0.189795211656\n", + "0.82 0.7 0.318343186735\n", + "0.9 0.7 0.436999374456\n" + ] + } + ], + "source": [ + "for gamma in frame.columns:\n", + " series = frame[gamma]\n", + " for beta in series.index:\n", + " frac_infected = series[beta]\n", + " print(beta, gamma, frac_infected)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can wrap that loop in a function and plot the results. For each element of the `SweepSeriesFrame`, we have `beta`, `gamma`, and `frac_infected`, and we plot `beta/gamma` on the x-axis and `frac_infected` on the y-axis." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_sweep_frame(frame):\n", + " \"\"\"Plots the values from a parameter SweepSeries.\n", + " \n", + " For each (beta, gamma), computes the contact number,\n", + " beta/gamma\n", + " \n", + " frame: SweepFrame with one row per beta, one column per gamma\n", + " \"\"\"\n", + " for gamma in frame.columns:\n", + " series = frame[gamma]\n", + " for beta in series.index:\n", + " frac_infected = series[beta]\n", + " plot(beta/gamma, frac_infected, 'ro',\n", + " label='Simulation')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like:" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap06-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_sweep_frame(frame)\n", + "\n", + "decorate(xlabel='Contact number (beta/gamma)',\n", + " ylabel='Fraction infected',\n", + " legend=False)\n", + "\n", + "savefig('chap06-fig03.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It turns out that the ratio `beta/gamma`, called the \"contact number\" is sufficient to predict the total number of infections; we don't have to know `beta` and `gamma` separately.\n", + "\n", + "We can see that in the previous plot: when we plot the fraction infected versus the contact number, the results fall close to a curve.\n", + "\n", + "But if we didn't know about the contact number, we might have explored other possibilities, like the difference between `beta` and `gamma`, rather than their ratio." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write a version of `plot_sweep_frame`, called `plot_sweep_frame_difference`, that plots the fraction infected versus the difference `beta-gamma`.\n", + "\n", + "What do the results look like, and what does that imply? " + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_sweep_frame_diffrence(frame):\n", + " for gamma in frame.columns:\n", + " series = frame[gamma]\n", + " for beta in series.index:\n", + " frac_infected = series[beta]\n", + " plot(beta-gamma, frac_infected,'ro',\n", + " label='Simulation')" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap06-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_sweep_frame_diffrence(frame)\n", + "\n", + "decorate(xlabel='beta-gamma',\n", + " ylabel='Fraction infected',\n", + " legend=False)\n", + "\n", + "savefig('chap06-fig03.pdf')# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Analysis" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the book we figured out the relationship between $c$ and $s_{\\infty}$ analytically. Now we can compute it for a range of values:" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "s_inf_array = linspace(0.0001, 0.9999, 101)\n", + "#s_inf_array" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "c_array = log(s_inf_array) / (s_inf_array - 1)\n", + "#c_array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`total_infected` is the change in $s$ from the beginning to the end." + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "frac_infected = 1 - s_inf_array\n", + "frac_infected_series = Series(frac_infected, index=c_array)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can plot the analytic results and compare them to the simulations." + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap06-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nRK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_sweep_frame(frame)\n", + "plot(frac_infected_series, label='Analysis')\n", + "\n", + "decorate(xlabel='Contact number (c)',\n", + " ylabel='Fraction infected')\n", + "\n", + "savefig('chap06-fig04.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "The agreement is generally good, except for values of `c` less than 1." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose you run a survey at the end of the semester and find that 26% of students had the Freshman Plague at some point. What is your best estimate of `c`?\n", + "\n", + "Hint: if you print `frac_infected_series`, you can read off the answer. " + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9.211261 0.999900\n", + "4.642296 0.989902\n", + "3.987365 0.979904\n", + "3.612133 0.969906\n", + "3.350924 0.959908\n", + "3.151808 0.949910\n", + "2.991711 0.939912\n", + "2.858363 0.929914\n", + "2.744467 0.919916\n", + "2.645332 0.909918\n", + "2.557767 0.899920\n", + "2.479505 0.889922\n", + "2.408879 0.879924\n", + "2.344627 0.869926\n", + "2.285771 0.859928\n", + "2.231541 0.849930\n", + "2.181315 0.839932\n", + "2.134590 0.829934\n", + "2.090947 0.819936\n", + "2.050040 0.809938\n", + "2.011573 0.799940\n", + "1.975299 0.789942\n", + "1.941002 0.779944\n", + "1.908499 0.769946\n", + "1.877628 0.759948\n", + "1.848249 0.749950\n", + "1.820238 0.739952\n", + "1.793487 0.729954\n", + "1.767898 0.719956\n", + "1.743384 0.709958\n", + " ... \n", + "1.181034 0.290042\n", + "1.173263 0.280044\n", + "1.165630 0.270046\n", + "1.158132 0.260048\n", + "1.150765 0.250050\n", + "1.143524 0.240052\n", + "1.136407 0.230054\n", + "1.129409 0.220056\n", + "1.122527 0.210058\n", + "1.115758 0.200060\n", + "1.109099 0.190062\n", + "1.102547 0.180064\n", + "1.096099 0.170066\n", + "1.089751 0.160068\n", + "1.083503 0.150070\n", + "1.077350 0.140072\n", + "1.071291 0.130074\n", + "1.065323 0.120076\n", + "1.059444 0.110078\n", + "1.053651 0.100080\n", + "1.047943 0.090082\n", + "1.042317 0.080084\n", + "1.036772 0.070086\n", + "1.031305 0.060088\n", + "1.025914 0.050090\n", + "1.020598 0.040092\n", + "1.015356 0.030094\n", + "1.010185 0.020096\n", + "1.005083 0.010098\n", + "1.000050 0.000100\n", + "Length: 101, dtype: float64\n" + ] + } + ], + "source": [ + "print (frac_infected_series)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.158096819542062" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Alternative solution\n", + "\n", + "\"\"\"We can use `np.interp` to look up `s_inf` and\n", + "estimate the corresponding value of `c`, but it only\n", + "works if the index of the series is sorted in ascending\n", + "order. So we have to use `sort_index` first.\n", + "\"\"\"\n", + "\n", + "frac_infected_series.sort_index(inplace=True)\n", + "np.interp(0.26, frac_infected_series, frac_infected_series.index)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/chap07mine.ipynb b/code/chap07mine.ipynb new file mode 100644 index 00000000..620985f5 --- /dev/null +++ b/code/chap07mine.ipynb @@ -0,0 +1,2048 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 7: Thermal systems\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# tempo switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The coffee cooling problem.\n", + "\n", + "I'll use a `State` object to store the initial temperature.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
temp90
\n", + "
" + ], + "text/plain": [ + "temp 90\n", + "dtype: int64" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(temp=90)\n", + "init" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And a `System` object to contain the system parameters." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
inittemp 90\n", + "dtype: int64
volume300
r0.01
T_env22
t00
t_end30
dt1
\n", + "
" + ], + "text/plain": [ + "init temp 90\n", + "dtype: int64\n", + "volume 300\n", + "r 0.01\n", + "T_env 22\n", + "t0 0\n", + "t_end 30\n", + "dt 1\n", + "dtype: object" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee = System(init=init,\n", + " volume=300,\n", + " r=0.01,\n", + " T_env=22,\n", + " t0=0, \n", + " t_end=30,\n", + " dt=1)\n", + "coffee" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `update` function implements Newton's law of cooling." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update(state, system):\n", + " \"\"\"Update the thermal transfer model.\n", + " \n", + " state: State (temp)\n", + " system: System object\n", + " \n", + " returns: State (temp)\n", + " \"\"\"\n", + " unpack(system)\n", + " T = state.temp\n", + " T += -r * (T - T_env) * dt\n", + "\n", + " return State(temp=T)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how it works." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
temp89.32
\n", + "
" + ], + "text/plain": [ + "temp 89.32\n", + "dtype: float64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "update(init, coffee)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run simulations using the same function from the previous chapter." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " Add a TimeFrame to the System: results\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " frame = TimeFrame(columns=init.index)\n", + " frame.loc[t0] = init\n", + " ts = linrange(t0, t_end-dt, dt)\n", + " \n", + " for t in ts:\n", + " frame.loc[t+dt] = update_func(frame.loc[t], system)\n", + " \n", + " system.results = frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's how it works." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
temp
090.000000
189.320000
288.646800
387.980332
487.320529
586.667323
686.020650
785.380444
884.746639
984.119173
1083.497981
1182.883001
1282.274171
1381.671430
1481.074715
1580.483968
1679.899128
1779.320137
1878.746936
1978.179466
2077.617672
2177.061495
2276.510880
2375.965771
2475.426114
2574.891852
2674.362934
2773.839305
2873.320912
2972.807702
3072.299625
\n", + "
" + ], + "text/plain": [ + " temp\n", + "0 90.000000\n", + "1 89.320000\n", + "2 88.646800\n", + "3 87.980332\n", + "4 87.320529\n", + "5 86.667323\n", + "6 86.020650\n", + "7 85.380444\n", + "8 84.746639\n", + "9 84.119173\n", + "10 83.497981\n", + "11 82.883001\n", + "12 82.274171\n", + "13 81.671430\n", + "14 81.074715\n", + "15 80.483968\n", + "16 79.899128\n", + "17 79.320137\n", + "18 78.746936\n", + "19 78.179466\n", + "20 77.617672\n", + "21 77.061495\n", + "22 76.510880\n", + "23 75.965771\n", + "24 75.426114\n", + "25 74.891852\n", + "26 74.362934\n", + "27 73.839305\n", + "28 73.320912\n", + "29 72.807702\n", + "30 72.299625" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(coffee, update)\n", + "coffee.results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the results look like." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nMHpId4yv6WY6k3qJ9buSyL10/Q6HQoiOTZKEaHXdXSx5NMaPHq5X96ooKa9h8/4Ufj2Tg1J2wBOi\n05AkIdqEiZE+Iwd1IyrEAwP9xm4mlUpFXEIBG/Ykc6lEdsATojOQJCHajEKhoFd3Gx6N8cPNwVzd\nXnSlig17kog9ny874AnRwd12ksjPz+fMmTNUVVVRU1PTFjGJLsbcxIAHh/VgWJArerqNf+UaGlQc\njs/lm33JFJdV3+IMQght0ThJHDhwgNGjRxMREcEjjzzChQsXmDt3Lv/85z9lvwdxSwqFgkBvex75\n3Q54TWU9TqcUSlkPITogjZLEgQMHmD59Oh4eHrzxxhvqpDBgwAA2b97Mp59+2qZBiq7D2tyIh0f4\nMDDAWV09tl7ZwE8nsvnupwuUVdZqOUIhxLU0ShLLli3jwQcfZOXKlYwdO1bd/sQTTzB9+nQ2b97c\nZgGKrkdHR0FIL0cmRPlia2msbs8qKOOrnYmcSyuSpwohOgiNkkRKSgqjR4++4bEBAwaQm5vbqkGJ\ne4OdlTETonwI7umgLvdSW6dkb2wm235Oo6KqTssRCiE0ShJWVlakp6ff8Fh6ejrW1lLMTdwZXV0d\nBvVxYWxE8321L+aWsm5nAkkZxfJUIYQWaZQkRo0axbJly9i3bx9KpRJoHIhMSUlh5cqVxMTEtGmQ\noutztjPlkWg/+nrbq9tqapXsPJLOj4fTqayWpwohtEGj2k2zZs0iMTGR6dOno6/fuFfAn//8Z65c\nuULfvn2ZNWtWmwYp7g36ejoMDXKlu6sFe2Mz1cUCU7NKyCksJ6K/G15uVlqOUoh7i0ZJwsjIiC++\n+IIDBw5w+PBhSkpKMDc3JzQ0lMjISHR0ZE2eaD1uDuZMjPbj59M5nL1QBEBVTT0//HoRPw9rhvZz\nlRLkQrQTjf6lzZgxgyeeeILhw4czfPjwto5JCAz0dRkR7E4PV0v2xWZS/tsgdmJGMVkF5USGuOPp\nLCXIhWhrGj0CHDx4UD0WIUR78nSyYGKMHz09r06OqKiuY+uhC+yNzaCmTv5eCtGWNEoSgwcP5ocf\nfpBEIbTCyECP+0I9rytBfi7tMl/tSCAjr1SL0QnRtWnU3WRlZcU333zDjz/+iLe3NyYmJs2OKxQK\nVq1a1SYBCtGku4slj91vyk8nskjOLAEaNzb6/uAF/HvYMiTQRV1xVgjROjRKEhcvXiQwMBBoLPdc\n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\nD/dBZUkAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(coffee.results.temp, label='coffee')\n", + "decorate(xlabel='Time (minutes)',\n", + " ylabel='Temperature (C)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After running the simulation, we can extract the final temperature from the results." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def final_temp(system):\n", + " \"\"\"Final temperature.\n", + " \n", + " If system has no results, return initial temp.\n", + " \n", + " system: System object.\n", + " \n", + " returns: temperature (degC)\n", + " \"\"\" \n", + " if hasattr(system, 'results'):\n", + " return system.results.temp[system.t_end]\n", + " else:\n", + " return system.init.temp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It will be convenient to wrap these steps in a function. `kwargs` is a collection of whatever keyword arguments are provided; they are passed along as arguments to `System`." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(T_init=90, r=0.01, volume=300, t_end=30):\n", + " \"\"\"Runs a simulation with the given parameters.\n", + "\n", + " T_init: initial temperature in degC\n", + " r: heat transfer rate, in 1/min\n", + " volume: volume of liquid in mL\n", + " t_end: end time of simulation\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " init = State(temp=T_init)\n", + " \n", + " system = System(init=init,\n", + " volume=volume,\n", + " r=r,\n", + " T_env=22, \n", + " t0=0,\n", + " t_end=t_end,\n", + " dt=1)\n", + " return system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we use it:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "72.299625390403094" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee = make_system()\n", + "run_simulation(coffee, update)\n", + "final_temp(coffee)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Simulate the temperature of 50 mL of milk with a starting temperature of 5 degC, in a vessel with the same insulation, for 15 minutes, and plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "init temp 5\n", + "dtype: int64\n", + "volumer 50\n", + "r 0.01\n", + "temp_final 30\n", + "temp_env 22\n", + "dt 1\n", + "t0 0\n", + "t_end 15\n", + "dtype: object\n" + ] + } + ], + "source": [ + "init = State(temp=5)\n", + "milk = System(init=init,\n", + " volumer=50,\n", + " r=.01,\n", + " temp_final=30,\n", + " temp_env=22,\n", + " dt=1,\n", + " t0=0,\n", + " t_end=15)\n", + "print (milk)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
temp5.17
\n", + "
" + ], + "text/plain": [ + "temp 5.17\n", + "dtype: float64" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "update(init,milk)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
temp
05.000000
15.170000
25.338300
35.504917
45.669868
55.833169
65.994837
76.154889
86.313340
96.470207
106.625505
116.779250
126.931457
137.082143
147.231321
157.379008
\n", + "
" + ], + "text/plain": [ + " temp\n", + "0 5.000000\n", + "1 5.170000\n", + "2 5.338300\n", + "3 5.504917\n", + "4 5.669868\n", + "5 5.833169\n", + "6 5.994837\n", + "7 6.154889\n", + "8 6.313340\n", + "9 6.470207\n", + "10 6.625505\n", + "11 6.779250\n", + "12 6.931457\n", + "13 7.082143\n", + "14 7.231321\n", + "15 7.379008" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(milk, update)\n", + "milk.results" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(milk.results.temp, label='milk')\n", + "decorate(xlabel='Time (minutes)',\n", + " ylabel='Temperature (C)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using `fsolve`\n", + "\n", + "As a simple example, let's find the roots of this function; that is, the values of `x` that make the result 0." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def func(x):\n", + " return (x-1) * (x-2) * (x-3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`modsim.py` provides `fsolve`, which does some error-checking and then runs `scipy.optimize.fsolve`. The first argument is the function whose roots we want. The second argument is an initial guess." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1.])" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fsolve(func, x0=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Usually the root we get is the one that's closest to the initial guess." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 2.])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fsolve(func, 1.9)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 3.])" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fsolve(func, 2.9)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But not always." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 3.])" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fsolve(func, 1.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We want to find the value of `r` that makes the final temperature 70, so we define an \"error function\" that takes `r` as a parameter and returns the difference between the final temperature and the goal." + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def error_func1(r):\n", + " \"\"\"Runs a simulation and returns the `error`.\n", + " \n", + " r: heat transfer rate, in 1/min\n", + " \n", + " returns: difference between final temp and 70 C\n", + " \"\"\"\n", + " system = make_system(r=r)\n", + " run_simulation(system, update)\n", + " final = final_temp(system) - 70\n", + " return final\n", + " print(final)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With `r=0.01`, we end up a little too warm." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.2996253904030937" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "error_func1(r=0.01)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The return value from `fsolve` is an array with a single element, the estimated value of `r`." + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.011543084583978345" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "solution = fsolve(error_func1, 0.01, xtol=1e-8)\n", + "r_coffee = solution[0]\n", + "r_coffee" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we run the simulation with the estimated value of `r`, the final temperature is 70 C, as expected." + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "70.0" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee = make_system(r=r_coffee)\n", + "run_simulation(coffee, update)\n", + "final_temp(coffee)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** When you call `fsolve`, it calls `error_func1` several times. To see how this works, add a print statement to `error_func1` and run `fsolve` again." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Repeat this process to estimate `r_milk`, given that it starts at 5 C and reaches 20 C after 15 minutes. \n", + "\n", + "Before you use `fsolve`, you might want to try a few values for `r_milk` and see how close you can get by trial and error. Here's an initial guess to get you started:" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "20.000664595068606" + ] + }, + "execution_count": 104, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r_milk = 0.13298\n", + "milk = make_system(T_init=5, t_end=15, r=r_milk)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "metadata": {}, + "outputs": [], + "source": [ + "def error_func2(r):\n", + " system = make_system(r=r, T_init=5, t_end=15)\n", + " run_simulation(system, update)\n", + " return final_temp(system) - 20" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.8825987627147036" + ] + }, + "execution_count": 144, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "error_function2(r=0.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.13296078935466457" + ] + }, + "execution_count": 172, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "solution = fsolve(error_func2,0.1, xtol=1e-8)\n", + "r_milk = solution[0]\n", + "r_milk" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "20.0" + ] + }, + "execution_count": 170, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "milk = make_system(r=r_milk, T_init=5, t_end=15)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Mixing liquids" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function takes `System` objects that represent two liquids, computes the temperature of the mixture, and returns a new `System` object that represents the mixture." + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def mix(s1, s2):\n", + " \"\"\"Simulates the mixture of two liquids.\n", + " \n", + " s1: System representing coffee\n", + " s2: System representing milk\n", + " \n", + " returns: System representing the mixture\n", + " \"\"\"\n", + " assert s1.t_end == s2.t_end\n", + " \n", + " volume = s1.volume + s2.volume\n", + " \n", + " temp = (s1.volume * final_temp(s1) + \n", + " s2.volume * final_temp(s2)) / volume\n", + " \n", + " mixture = make_system(T_init=temp,\n", + " volume=volume,\n", + " r=s1.r)\n", + " \n", + " return mixture" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First we'll see what happens if we add the milk at the end. We'll simulate the coffee and the milk separately." + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "70.0" + ] + }, + "execution_count": 148, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee = make_system(T_init=90, t_end=30, r=r_coffee, volume=300)\n", + "run_simulation(coffee, update)\n", + "final_temp(coffee)" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "21.764705882352942" + ] + }, + "execution_count": 149, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "milk = make_system(T_init=5, t_end=30, r=r_milk, volume=50)\n", + "run_simulation(milk, update)\n", + "final_temp(milk)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the results look like." + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap07-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nBCGEEIf+H0W9gvkl+IxjAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(coffee.results.temp, label='coffee')\n", + "plot(milk.results.temp, '--', label='milk')\n", + "decorate(xlabel='Time (minutes)',\n", + " ylabel='Temperature (C)',\n", + " loc='center left')\n", + "\n", + "savefig('chap07-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what happens when we mix them." + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "63.109243697478988" + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mix_last = mix(coffee, milk)\n", + "final_temp(mix_last)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's what we get if we add the milk immediately." + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "coffee = make_system(T_init=90, r=r_coffee, volume=300)\n", + "milk = make_system(T_init=5, r=r_milk, volume=50)" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "61.428571428571438" + ] + }, + "execution_count": 153, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mix_first = mix(coffee, milk)\n", + "mix_first.t_end = 30\n", + "run_simulation(mix_first, update)\n", + "final_temp(mix_first)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function takes `t_add`, which is the time when the milk is added, and returns the final temperature." + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_and_mix(t_add, t_total=30):\n", + " \"\"\"Simulates two liquids and them mixes them at t_add.\n", + " \n", + " t_add: time in minutes\n", + " t_total: total time to simulate, min\n", + " \n", + " returns: final temperature\n", + " \"\"\"\n", + " coffee = make_system(T_init=90, t_end=t_add, \n", + " r=r_coffee, volume=300)\n", + " run_simulation(coffee, update)\n", + "\n", + " milk = make_system(T_init=5, t_end=t_add, \n", + " r=r_milk, volume=50)\n", + " run_simulation(milk, update)\n", + " \n", + " mixture = mix(coffee, milk)\n", + " mixture.t_end = t_total - t_add\n", + " run_simulation(mixture, update)\n", + "\n", + " return final_temp(mixture)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can try it out with a few values." + ] + }, + { + "cell_type": "code", + "execution_count": 155, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "61.428571428571438" + ] + }, + "execution_count": 155, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_and_mix(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "62.90280912845234" + ] + }, + "execution_count": 156, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_and_mix(15)" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "63.109243697478988" + ] + }, + "execution_count": 157, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_and_mix(30)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then sweep a range of values for `t_add`" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "sweep = SweepSeries()\n", + "for t_add in linrange(0, 30, 2):\n", + " temp = run_and_mix(t_add)\n", + " sweep[t_add] = temp" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the result looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 159, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap07-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nMdGkZRzHsYSEBP5zX18f4ziOvf7663yZwWBgEomE5efnM8YYq66uZiKRiF2+fJmvMzo6yjZt2sSS\nkpKmjKumpoa9+eabzGAwGK0XHBzMcnNzGWP3H7LIcRxramri6wwNDbG1a9ey9evXM8YYGxgYYP7+\n/qy4uNho+9u3b2ccx7Fbt24xxhh79dVX2caNG9no6Chf55dffmEikYjV1tYyxhjLz89na9asYX19\nfXydixcvMo7jJjxYdbxjx44xkUjEtFqtUfls+vPHH39kHMcxtVrNGGOstLSUcRzHLly4wK/T0dHB\nOI5jn332mVF7v/76K+M4jp07d27KWMnCR0c85D8nMDCQf+/q6gqBQGBUZmNjA2dnZ/4U1YULF7Bs\n2TI8++yz0Ov10Ov1MBgMiIyMhFqthk6nm7SdTZs24eDBg9DpdNBoNKivr0dpaSlGR0f5mRt//vln\n2NnZ4YUXXuDXc3R0RHh4OP/54sWLGBkZ4adDGPPyyy/z7//++29cunQJERER/Ey5er0efn5+8PDw\nwA8//AAAaGlpgUQigaurK79uUFAQPDw8pu2zmzdvwsXFhb9pYy79ORWJRMK/f+qpp/j9Gm/58uUA\ngI6Ojmm3RRY2urmA/OcIhcIJZdPNPdTf34+urq4pL2jfuXNn0lkX//nnH3z00Ueora2FXq+Hp6cn\nxGIxbG1t+esdAwMDRklgzNKlS/n3Y9dyHpzjZHydu3fvwmAwoKKiAhUVFRO2NzZT5MDAAHx8fKZt\nbzKDg4NT9tHD9udkBALBhJlwAUy41jU2rfJCnbWTmIYSDyEzePzxx/HMM8+goKBg0uWTJQ4AyMvL\n4yf8kkql/JexVCo1Wrevrw+MMaPbvvv7+ydsv6enx+huvvF1hEIhbGxsIJfLjY6Exi8f21Zvb++E\n5eO3NdU+LoTf0IzFMFWfE+tAp9oImUFISAg6Ozvh5uaG1atX86+GhgYcPXrU6C6v8VpaWiCVShEV\nFcUnnba2NvT19fH/yUulUuh0OjQ0NPDr6XQ6nD9/nv8sFothb2/P35Aw5syZM/x7JycnrFq1Cu3t\n7UYxrlixAkqlEpcuXQIAhIWFoaWlBX/99Re/7rVr13Dz5s1p+8DDwwNarRaDg4OmdNm/ZuzHsjOd\nGiQLGx3xEDKDzZs344svvoBMJsOOHTuwbNkyNDY24vDhw3jnnXem/IFqYGAg6urqUF1djRUrVkCj\n0aC8vBw2Njb8tQupVIrnn38eu3btQk9PD9zd3XHkyBH09fXBzc0NwP2jlZSUFCiVStjb2yM0NBSN\njY1GiQcA0tLS8NZbbyEjIwNxcXHQ6XQ4dOgQfv/9dygUCgBAYmIijh8/DrlcjtTUVOj1euzdu3fK\n5Dlm3bp1AIDW1la8+OKLc+rPuWhtbYWjo6PR9SBifSjxEDIDoVCIY8eOoaSkBPn5+RgaGoKXlxey\ns7ORkJAw5XoZGRkYGRnBxx9/DJ1OB09PT7z99tu4du0azp49C4PBgEWLFkGlUqG4uBhKpRL37t1D\nXFwc4uPj0djYyG9rx44dcHR0xOeff47Dhw9DLBZDoVAgNzeXrxMeHo7KykqoVCqkpqbCzs4Oq1ev\nxpEjR8BxHID7p6i++uor5OXlQaFQQCgUIjk5ecLt2w/y8vKCv78/mpqaLJp4mpqaEB4eDjs7O4vF\nQOaOpr4mhJjk9OnTyMnJwblz5yzyxd/Z2Yn169fj+PHjWLVqldnbJ/OHrvEQQkwSGxsLb29vVFdX\nW6T9qqoqxMbGUtJ5BNARDyHEZNevX4dMJsPJkyfn9KDQh9Xe3g65XI6amhq4uLiYrV3y76DEQwgh\nxKzoVBshhBCzosRDCCHErCjxEEIIMStKPIQQQsyKEg8hhBCz+h8L96aNgHvdaQAAAABJRU5ErkJg\ngg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(sweep, color='purple')\n", + "decorate(xlabel='Time added (min)',\n", + " ylabel='Final temperature (C)',\n", + " legend=False)\n", + "\n", + "savefig('chap07-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Suppose the coffee shop won't let me take milk in a separate container, but I keep a bottle of milk in the refrigerator at my office. In that case is it better to add the milk at the coffee shop, or wait until I get to the office?\n", + "\n", + "Hint: Think about the simplest way to represent the behavior of a refrigerator in this model. The change you make to test this variation of the problem should be very small!" + ] + }, + { + "cell_type": "code", + "execution_count": 187, + "metadata": {}, + "outputs": [], + "source": [ + "def run_and_mix2(v, t_total=30):\n", + " \"\"\"Simulates two liquids and them mixes them at t_add.\n", + " \n", + " t_add: time in minutes\n", + " t_total: total time to simulate, min\n", + " \n", + " returns: final temperature\n", + " \"\"\"\n", + " coffee_office = make_system(T_init=70, t_end=t_add, \n", + " r=r_coffee, volume=300)\n", + " run_simulation(coffee, update)\n", + "\n", + " milk_office = make_system(T_init=5, t_end=t_add, \n", + " r=r_milk, volume=50)\n", + " run_simulation(milk, update)\n", + " \n", + " mixture = mix(coffee_office, milk_office)\n", + " mixture.t_end = t_total - t_add\n", + " run_simulation(mixture, update)\n", + "\n", + " return final_temp(mixture)" + ] + }, + { + "cell_type": "code", + "execution_count": 188, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "60.714285714285715" + ] + }, + "execution_count": 188, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_and_mix2(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Analysis" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can use the analytic result to compute temperature as a function of time. The following function is similar to `run_simulation`." + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_analysis(system):\n", + " \"\"\"Computes temperature using the analytic solution.\n", + " \n", + " Adds TimeFrame to `system` as `results`\n", + " \n", + " system: System object\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " T_init = init.temp \n", + " ts = linrange(t0, t_end, dt)\n", + " \n", + " temp_array = T_env + (T_init - T_env) * exp(-r * ts)\n", + " temp_series = TimeSeries(temp_array, index=ts)\n", + " \n", + " system.results = TimeFrame(temp_series, columns=['temp'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it. From the analysis, we have the computed value of `r_coffee2`" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "r_coffee2 = 0.011610223142273859" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "70.0" + ] + }, + "execution_count": 162, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(temp=90)\n", + "coffee2 = System(init=init, T_env=22, r=r_coffee2, \n", + " t0=0, t_end=30)\n", + "run_analysis(coffee2)\n", + "final_temp(coffee2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can compare to the results from simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 163, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "70.0" + ] + }, + "execution_count": 163, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(temp=90)\n", + "coffee = System(init=init, T_env=22, r=r_coffee, \n", + " t0=0, t_end=30, dt=1)\n", + "run_simulation(coffee, update)\n", + "final_temp(coffee)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "They are identical except for small roundoff errors." + ] + }, + { + "cell_type": "code", + "execution_count": 164, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
temp
00.000000e+00
10.000000e+00
20.000000e+00
30.000000e+00
40.000000e+00
50.000000e+00
60.000000e+00
70.000000e+00
80.000000e+00
90.000000e+00
100.000000e+00
110.000000e+00
120.000000e+00
13-1.421085e-14
14-1.421085e-14
150.000000e+00
16-1.421085e-14
17-1.421085e-14
18-1.421085e-14
190.000000e+00
20-1.421085e-14
210.000000e+00
220.000000e+00
230.000000e+00
240.000000e+00
250.000000e+00
26-1.421085e-14
270.000000e+00
28-1.421085e-14
290.000000e+00
300.000000e+00
\n", + "
" + ], + "text/plain": [ + " temp\n", + "0 0.000000e+00\n", + "1 0.000000e+00\n", + "2 0.000000e+00\n", + "3 0.000000e+00\n", + "4 0.000000e+00\n", + "5 0.000000e+00\n", + "6 0.000000e+00\n", + "7 0.000000e+00\n", + "8 0.000000e+00\n", + "9 0.000000e+00\n", + "10 0.000000e+00\n", + "11 0.000000e+00\n", + "12 0.000000e+00\n", + "13 -1.421085e-14\n", + "14 -1.421085e-14\n", + "15 0.000000e+00\n", + "16 -1.421085e-14\n", + "17 -1.421085e-14\n", + "18 -1.421085e-14\n", + "19 0.000000e+00\n", + "20 -1.421085e-14\n", + "21 0.000000e+00\n", + "22 0.000000e+00\n", + "23 0.000000e+00\n", + "24 0.000000e+00\n", + "25 0.000000e+00\n", + "26 -1.421085e-14\n", + "27 0.000000e+00\n", + "28 -1.421085e-14\n", + "29 0.000000e+00\n", + "30 0.000000e+00" + ] + }, + "execution_count": 164, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coffee.results - coffee2.results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/chap08mine.ipynb b/code/chap08mine.ipynb new file mode 100644 index 00000000..59d9190e --- /dev/null +++ b/code/chap08mine.ipynb @@ -0,0 +1,2954 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 8: Pharmacokinetics\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 436, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# tempo switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Data\n", + "\n", + "We have data from Pacini and Bergman (1986), \"MINMOD: a computer program to calculate insulin sensitivity and pancreatic responsivity from the frequently sampled intravenous glucose tolerance test\", *Computer Methods and Programs in Biomedicine*, 23: 113-122.." + ] + }, + { + "cell_type": "code", + "execution_count": 437, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
glucoseinsulin
time
09211
235026
4287130
625185
824051
1021649
1221145
1420541
1619635
1919230
2217230
2716327
3214230
4212422
5210515
629215
728411
827710
92828
1028111
122827
142828
162858
182907
\n", + "
" + ], + "text/plain": [ + " glucose insulin\n", + "time \n", + "0 92 11\n", + "2 350 26\n", + "4 287 130\n", + "6 251 85\n", + "8 240 51\n", + "10 216 49\n", + "12 211 45\n", + "14 205 41\n", + "16 196 35\n", + "19 192 30\n", + "22 172 30\n", + "27 163 27\n", + "32 142 30\n", + "42 124 22\n", + "52 105 15\n", + "62 92 15\n", + "72 84 11\n", + "82 77 10\n", + "92 82 8\n", + "102 81 11\n", + "122 82 7\n", + "142 82 8\n", + "162 85 8\n", + "182 90 7" + ] + }, + "execution_count": 437, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = pd.read_csv('glucose_insulin.csv', index_col='time')\n", + "data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the glucose time series looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 438, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(data.glucose, 'bo', label='glucose')\n", + "decorate(xlabel='Time (min)',\n", + " ylabel='Concentration (mg/dL)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the insulin time series." + ] + }, + { + "cell_type": "code", + "execution_count": 439, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAAEPCAYAAABhkeIdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucVWX59/EPImDIeMjjDIMJkVeheSqe8gCK9UPGQ/54\n0tdTWmpCHvBUmeKxn6BokpmFHSxMLU3Ln6UkgZaGSopOkuYBLyWVw3AwTJ0RBRTm+eNeA5s1e8/s\nWbP2afb3/XrNazP3vfbel2vGfc197tXa2oqIiEhatih1ACIi0rMosYiISKqUWEREJFVKLCIikqot\nSx1AKZlZP2A4sBxYX+JwREQqRW+gFmh097XxyqpOLISk8mipgxARqVAjgLnxwmpPLMsBbr/9dnbd\ndddSxyIiUhFWrFjBCSecANFnaFy1J5b1ALvuuiv19fV5PaGxqZFZC2exvGU5tTW1NAxtYPjA4QUN\nUkSkTGUdQqj2xNIljU2NTJ8/feP3Tc1NG79XchERCTQrrAtmLZyVtXz2wtlFjkREpHwpsXTB8pas\n3Yksa1lW5EhERMqXEksX1NbUZi2vq6krciQiIuVLiaULGoY2ZC0fM3RMkSMRESlfGrzvgrYB+tkL\nZ7OsZRl1NXWMGTpGA/ciIhmUWLpo+MDhSiQiIh1QV5iIiKRKiUVERFKlxCIiIqlSYhERkVQpsYiI\nSKqUWERECsTMuPfee4vyXr///e8ZNmxYSd47TtONRUQKZO7cuWyzzTZV995lmVjM7GfAlu4+PqPs\nLOAsYBCwCLjO3adn1O8M3ACMBtYBNwOXuPsHxYxdRMpPqY672GmnnQr+HuX43mWVWMysFzAJOA24\nKaP8DOC7wOnA48Ao4Cdmttbdfx1ddjfQChwCDARuAT4ALilW/CJSfkp53IWZMXXqVI455hguvPBC\ntthiC/r3788f//hH1q1bx2GHHcakSZMYMGAA69ev59prr+W+++7jzTffZPDgwUyYMIGGhrCV1Fe/\n+lV22203pkyZsvH1s5Ulee+0lc0Yi5kNAR4CzgAWx6pPB37s7re5+7+ilsqvga9Fzz0AOBg4yd2f\ncfc/AecDZ0fn2otIlSqn4y5mzJjB+vXrufPOO7n++ut56KGH+NWvfgXAb37zG/785z8zbdo0Zs+e\nzZgxYzjvvPNYsmRJwd87beXUYjkQWAJ8GbgzVncO7ZPNBmD76N8jgEXu/mpG/RygBtgXeCLtYEWk\nMpTTcRfbbbcdl156Kb1792bw4MEceOCBPP300wAsWrSID33oQwwcOJCddtqJCRMmsPfee7PddtsV\n/L3TVjYtlqg1cqK7r8hS93Bm0jCz3QgJqO1PjnqgKfa0tt+aQYWIV0QqQzkdd7HbbrvRu3fvjd/X\n1NTw/vvvA3D88cfT3NzMyJEjOe6445g2bRr19fXU1NQU/L3TVjaJJV9mthMwE1hBGHcB6A+sybzO\n3d8njLlsVdQARaSslNNxF3379m1X1traCsCQIUP4y1/+wo033sj+++/PzJkzOeqoo3j88cdzvt4H\nH+Q/N6mj905bRSWWaBxmLrAdMNrd346q3gP6xa7tA/QCVhc1SBEpK8MHDmf8/uOp36aeLXptQf02\n9Yzff3zZ7VJ+++2388ADDzBy5EguuugiZs2axeDBg7n//vsB6NOnD++8887G6zds2JDa+EvaymmM\npUNmtj8wC/gPcKC7Z97RJcARsae0tXPjXWQiUmUq4biLN998k2nTptG/f3/22GMPXnjhBZYuXcq4\nceMA2Hfffbnlllt49NFHGTRoEDfffDPNzc0ljjq7ikgsZvZx4M/AQuAId38jdslc4BozG5SRcEYB\nLUBhRqdERFJ0+umns2bNGiZNmsSqVauora3l7LPPZuzYsQCccsopLF68mHPOOYe+ffty7LHHcuSR\nR5Y46ux6FaqPrTvMbA6wsG2BpJk9SVibMgrITNEfuPuqaP3LY4QxlbOAXYBbgZ+4++UdvM/uwKsP\nPvgg9fX1BfgvERHpeZYuXcrnPvc5gMHu/lq8vuzHWMxsD2A4oWvLgeUZX/MA3L0VGAusBB4lrLqf\nDkwuQcgiIlWty11hZrYD8N+E1sPuwLbAKsI6k9nAnzIG1RNx90Mz/v0SYRC+s+esICQXEREpobwT\ni5ntCFwKjIuetwB4DXiVsFBxH+AEYG2019c17v562gGLiEh5yyuxmNlxwDRC19M44D53fzfLddsA\nhwNfB543szPd/XcpxisiImUu3xbLacB/ufuzHV3k7s3AXcBd0fTg7wNKLCIiVSSvxOLun+/qC7v7\nfMI4jIiIVJFUZ4WZ2Ugzuy7N1xQRkcqS9nTj/YBzU35NERGpIGW/jkVERCqLEouIiKRKiUVERFKl\nxCIiIqnKd4HkA3m+3m7diEVERHqAfBdI9iXsHNyZts0hRUSkSuW7QPLQAschIiI9hMZYREQkVUm2\nze8LnAkcQDh7Pq7V3Q/vbmAiIlKZkhxN/GPCDsfPAfEjgkVEpMolSSxjge+4+5VpByMiIpUvyRhL\nK9GRwCIiInFJEsstwDgz08C/iIi0k6Qr7DvAfOAlM3sKWB2rb3X3cd2OTEREKlKSxHINYMDbwP5Z\n6vNZSCkiIj1UksRyIiG5XOzuSiIiIrKZJIllPfBAIZOKmf0M2NLdx2eUjQamElpLLwMT3X1WRv3O\nwA3AaGAdcDNwibt/UKg4RUSkvSQD8LcT1rGkzsx6mdlk4LRY+TBgBnAX4ZTKe4F7zGzPjMvuBnYF\nDgFOBr4GTCpEnCIikluSFstK4CQzWwg0Ai2x+lZ3P6390zpmZkOAm4C9gMWx6nOBee4+Jfr+MjM7\nOCo/1cwOAA4Ghrj7q8AzZnY+MM3MJrv72q7GIyIiySRJLOOB/wC9gc9mqU/aRXYgsAT4MnBnrG4E\n8LtY2RzgSxn1i6KkkllfA+wLPJEwJhER6aJ8z2M5G/iTu//L3QcXIhB3vw24LXq/eHU90BQrWwYM\n6qSe6BolFhGRIsm3xXIEcI2ZLQNmAX8C5rj7ewWLbHP9gTWxsrXAVrnq3f19M2vNuEZERIogr8F7\nd28APgycTejq+hHwhpndb2bfMLOPFzBGgPeAfrGyfmxanNmu3sz6AL1ov4BTREQKKO8xFndfQ2it\nzAIws48BY4AG4CozWxnVzXb3GSnHuQSojZXVsan7awmhVRWvh/ZdZCIiUkCJ9/ty95fdfZq7H0Fo\nzZwBvA98L63gMswlTCPONAp4JKN+iJkNitW3AE8XIB4REckhyaywdqLWzOzoqxCmAU+Z2STgDuB4\n4DOEZAbwOGHH5d+a2VnALoTFlNe5+7oCxSQiIlnkOyvsOzmqWgljGCuAR9x9aVqBZXL3Z81sLCFZ\nTAReBI529wVRfWtU/1PgUUJLZTowuRDxiIhIbvm2WC7roK539LjezK5194u6GRPufmiWspnAzA6e\ns4JwCJmIiJRQXonF3fvkqovOZRkIfJEwJXmBu/8qpfhERKTCdHuMxd03EGZlXW9mgwnjHkosIiJV\nKu1TIB8i7D4sIiJVKu3E8hbQN+XXFBGRCpJ2YtmX0C0mIiJVKrXEYmb7AxcBf0jrNUVEpPLku47l\ngQ6q+xG2TxkC/AO4MoW4RESkQuXbYukL9MnytSXQTDj75ETgs+7+bvphiohIpch3HcuhBY5DRER6\niLQH70VEpMp1aYGkmd0F/BN4Fvinu78Sq/8k8K67/yu9EEVEpJJ0deX9UOAowoB9q5m9CzxPSDbP\nEc6tHw58NM0gRUSkcnQpsbj7fmbWm7C6/pPA3sA+wJeAraPLtI5FRKSKdXmvMHdfD7wQff0WwMz6\nErazPxc4Ms0ARUSksqQyeO/u69z9CsJeYVel8ZoiIlKZUjlBMsNcqiixNDY1MmvhLJa3LKe2ppaG\noQ0MHzi81GGJiJRUV2eF/Rx4hk2zwt6KXTIUWJlSbGWtsamR6fOnb/y+qblp4/dKLiJSzbraYhkD\njI/+3WpmTYRE48DOwNHACemFV75mLZyVtXz2wtlKLCJS1bo6K2w3M9sG2Cv6+mT0eCKwY3TZH8xs\nIbAg+nrB3e9IL+TysLxledbyZS3LihyJiEh5STIrrBl4LPrayMx2YVOiaUs6hwP9gR6XWGpramlq\nbmpXXldTV4JoRETKR16zwszsF2a2Q0fXuPtKd/+Lu1/v7uOBY4C7COMuPU7D0Ias5WOGjilyJCIi\n5SXfFsurwItmdivwG3efn+tCM9sHOJWwaPI6d3+1+2GWn7ZxlNkLZ7OsZRl1NXWMGTpG4ysiUvXy\n3d34KjObAXwX+LuZLQIaCQlnNbAdUA8cBOwK/Ak4zN2fSStQM9s6ev8vErrXHgfOc/cXovrRwFTC\nrgAvAxPdPfsIe0qGDxyuRCIiEpP3GIu7PwccZWZ7EWZ+jQIOBbYFVgGLgF8Ad7v7s+mHyg8Jies4\n4D+E9TKzzWwPwiFjM4ArgLuj+O4xs/3d/fkCxCIiIjkkGbx/jnAEcbH9NzDJ3f8GYGaXEDbAHAac\nBsxz9ynRtZeZ2cGELWZOLUGsIiJVq5LOY/k38P/MbOdob7JxwJvAK8AIwimWmeZE5SIiUkSVlFhO\nBQYRVva/C3wdOCJa/V8PxOf+LouuFxGRIqqkxDIUWEHYPfkg4H7gf82snjCYvyZ2/Vpgq6JGKCIi\nqW9CWRBmNpgwMeBgd58XlR1PWNn/TeA9wuFjmfoRZqyJiEgRVUqL5dNAb+DvbQXu/j7wD0JLZglQ\nG3tOHe27x0REpMASt1jMrIZwamS75OTuaW+YtTR63BuYH71/L8KMsFmEcZdDCNON24wCHkk5DhER\n6USXE4uZfRT4JXBwB5f1ThxRdk8C84BbzGwCYd3MN4DdgGnANsBTZjaJsC/Z8cBngDNSjkNERDqR\npMVyA6GlcDmhJbEhzYCycff1ZnY0cDVwJzCA0C02wt0XAZjZWMLK+4nAi8DR7r6g0LGJiMjmkiSW\nkcD4Ym+F7+6rCFOMc9XPBGYWLyIREckmyeB9C2FLFRERkXaSJJbbgDOjwXMREZHNJOkKe5uwVcpL\nZvYEYRV8plZ3P63bkYmISEVKklhOAd6KnntQlvrWbkUkIiIVLcnuxoMLEYiIiPQM3VkgOYywKHFb\nws7Dc93d0wpMREQqU5IFklsANxK6xDIH8FvN7NfA19xd3WEiIlUqyaywC4ETo8d6oA9hBfxFhHPu\nz08tOhERqThJusLGAVPc/XsZZUuBqWa2VVQ/NY3gRESk8iRpsdQCf8tR9xih9SIiIlUqSWJ5BTgg\nR90BwPLk4YiISKVL0hU2HbjazFYTNoRcCewCfBm4GLgqvfBERKTSJEks04D9gO8D12aU9yJs9zIl\nhbhERKRCJVkguR44ycymEnY63h54E3jE3Z9POT4REakwiRdIRklEiURERDaTV2Ixs58DV7n7a9G/\nO6JNKEVEqli+LZb/An6c8e+OaNW9iEgVyyuxxDaePBmY7+4t8evMbDs6TzwiItKDJVnH8hDw8Rx1\n+wG/Sh6OiIhUunzHWG4FBkXf9gJ+ambNWS7dA1iRUmwiIlKB8m2x/A5YH32R8e/Mr3XAXOCklGMU\nEZEKku8Yy0xgJoCZ/RU4w91fLGRgIiJSmZIskBxViEDyYWbjgQsI3XIvAOe7+0NR3WjCrsoGvAxM\ndPdZpYpVRKRadecEyR2Avmw67GsLYGtghLtPTyG2+PudRJjyfAbwCDABmGFmewH9gRnAFcDdwAnA\nPWa2v3YDEBEpriQnSH4SuB3YM8clrYSNKlNjZr2AScA17v7LqOzbwGHAgYQjkue5e9s+ZZeZ2cHA\nucCpacYiIiIdS9Ji+R6wA/Bt4ChgLfBH4AigATg0reAyGPAR4LdtBe6+AdgXwMwuJUwwyDSHcKKl\niIgUUZJ1LAcAl7n7Dwgf9Fu7+0/d/WjgHuCcNAOM7BE9bmdmD5nZ62b2iJkdGJXXA02x5yxj0xRp\nEREpkiSJpR9hcBzgJWCfjLqbyX0IWHdsEz3eSuhmGwM8BzxkZp8gjLGsiT1nLbBVAWIREZEOJEks\ni4G2LV5eArYxs49E368BPpxGYDHvR49T3P037j4fOJOQ4M4A3iMkvEz9gNUFiEVERDqQJLH8Afiu\nmY1192XAi8AVUcvhm8C/0gww0tbN9Wxbgbu3AgsISW4JUBt7Th3tu8dERKTAkiSWScA84OvR998E\njiV0TY0GLk8lss3NJ7Q+hrcVRDPFhhES2VzCzLBMowjTkkVEpIiSzAq7hnCu/bMA7n5/tJbkU4Rd\nj1Nvsbj7u2b2A2CKma2M3nsC8FHgi4T1NE+Z2STgDuB44DOEbjIRESmiJIllHDDD3de2Fbj7K8Ar\nqUWV3XeAd4HrgZ2Bp4HR7u4AZjaWsPJ+IqF77mh3X1DgmEREJCZJYplHOOv+zynH0qFoTOXq6Ctb\n/cb9zEREpHSSJJb5wAVm9kVCq+GdWL2OJhYRqWJJEssXCYsPP0T2NSs6mlhEpIol2d14cOdXiYhI\nterydGMzG2lmA3LUbWdmx3U/LBERqVRJ1rH8FfhEjjqdeS8iUuV05n2KGpsambVwFstbllNbU0vD\n0AaGDxze+RNFRHoQnXmfksamRqbPn05TcxMbWjfQ1NzE9PnTaWxqLHVoIiJFlfTM+wlafLi5WQuz\nn4I8e+FstVpEpKokPvPezGoIRxG3a/VEm1NWleUtyzf7/vXVr7OkeQlzF8+llVZ1i4lI1UhyNPEQ\nwrkrB3dwWe/EEVWo2ppamprDZsqvr36dF994EYABfQZs7BYDlFxEpMdLskDyx4RdhS8HlgIb0gyo\nUjUMbdiYPJY0L9lYPmjbTYdYqltMRKpBksQyEhjv7nekHUwla0sYsxfOZu7iuQzoM4BB2w5ip/47\nbbxmWUvV9RCKSBVKklhagP+kHUhPMHzgcIYPHE4rrRu7xTLV1dSVICoRkeJKskDyNuDM6KAtyaJh\naEPW8jFDxxQ5EhGR4kvSYnkbGAG8ZGZPEM5IyVT1uxtndosta1lGXU0dY4aO0fiKiFSFJInlFOCt\n6LkHZanX7sZs6hZr09jUyOSHJ2tVvoj0eNrduAjaVuW30fRjEenJkrRYADCzeuAwoBa4NXp83t3X\npRRbj6FV+SJSTZIM3mNm3yOccX8LcBVQB3wXmG9mO6cWXQ8RX5XfRtOPRaQnSnIey0TgHODbwFDC\nbscQFkxuD0xJK7ieoramNmu5ph+LSE+UpMVyGnC5u/8IWNRW6O6PA5cC2efaVjFNPxaRapJkjKUO\nyLUX/GvADomj6aE0/VhEqkmSxPIv4HDgL1nqRhDGXgrKzD5LOPvl8+4+JyobDUwFDHgZmOju2UfN\nS0DTj0WkWiTpCrse+JaZXQ8cSli3MsTMzgEuAH6SXnjtmdnWwK/J2EHZzIYBM4C7CMcj3wvcY2Z7\nFjKWpHQomIj0ZF1OLO7+C8JYyteBBwiD978jtBZ+6O4/TjXC9q4j7Kqc6VxgnrtPcfcX3f0y4LGo\nvOx0NP1YRKTSJZpu7O5XE9atHAF8BTgGqHP3S1KMrR0zOwI4kjArLdMIYE6sbE5UXnY0/VhEerKk\n61hOB2509/vd/TeE/cOeMLMTU41u8/fcEbgJGA+8GauuB+LbCS8DBlGGNP1YRHqyJOtYziIc9tWc\nUbwEeAS4ycy+klJscTcCM9w9W39Rf2BNrGwtsFWBYukWTT8WkZ4syaywswnrWK5oK3D3V4FxZraY\nMIB/W0rxAWBmJxEG5ffOccl7QL9YWT9gdZpxpEXTj0WkJ0uSWAYBf8tR9ygwMXk4OZ1M6O5aYWaw\nabX/LDO7ldBiivcv1dG+e6xsxKcfi4j0FEnGWBYBo3LUjaAwH+ZfAYYB+0Zfh0fl44HvENa0HBJ7\nzihC95yIiBRRkhbLz4GpZtYH+APwOrATcDRwPnBZeuEF7r5ZsjKztvGUJnd/3cymAU+Z2STgDuB4\n4DPAGWnHIiIiHUtyHssPzKwO+BYhkbT5AJjm7t9LK7guxPSsmY0lrKWZCLwIHO3uC4odSxKNTY3M\nWjhLq/BFpEdIdB6Lu59vZlcCnyXsDfY28IS7r0ozuA7efymbxlnaymYCM4vx/mnSIWAi0tMkWscS\n2QA8Q1iI+A+gr5nVRa0ZyZNW4YtIT9PlFouZfRT4JXBwB5f17qBOMmgVvoj0NEm6wm4gzNC6nLBn\n14Y0A6o2tTW1NDW3n0inVfgiUqmSJJaRwHh3vyPtYKpRw9CGzcZY2mgVvohUqiSJpQX4T9qBVCut\nwheRniZJYrkNONPMHnD31rQDqkZahS8iPUmSxPI2YYX9S2b2BPBurL7V3U/rdmQiIlKRkiSWU4C3\noucelKVerZgU5Fo0mcZiSi3IFJFCSrLyfnAhApFNci2afOHfL/DYksfalUP+iym1IFNECq07CySl\nQHItmrz1mVuzlndlMaUWZIpIoSXa0gXAzIYRdhTeFlgFzHX3F9MKrJrlWjS58p2VfOzDH2tX3pXF\nlFqQKSKFlmTl/RaE0xxPYfP9ulrN7NfA1zRbrHtyLZrcZcAuWa/vymJKLcgUkUJL0hV2IXBi9FgP\n9AF2Ay4CvsTmOx5LArmOLj5pn5OylscXUzY2NTL54cmccd8ZTH54Mo1NjZ2+thZkikhaknSFjQOm\nxLbHX0o4o2WrqH5qGsGVg1LMoOpo0eSwnYZ1uJiys8F5LcgUkUJLklhqyX008WOElkuPUMoZVLkW\nTXa2mLKjwfm252lBpogUUpKusFeAA3LUHQBkHx2uQJU4g0qD8yJSaklaLNOBq81sNXAnsBLYBfgy\ncDFwVXrhlVYlfkhrcF5ESi1Ji2Ua8Dvg+4Sxlfejx2uBu4ApqUVXYrU1tVnLy/lDWoPzIlJqSVos\nre5+kpldQ9hC/8NAM/BXd38+1ehKrBK3tNfgvIiUWt6JJTo58qfAg8A17v4C8IKZ1RC20X/czL7i\n7osLE2rxVeqHtAbnRaSU8kos0Tn2jxDWrPwqyyVXAGcSksv+7r4yvRBLSx/SuWkzSxHJJt8xlouA\ntcC+7n5bZoW7t7j7ZGA4YSX+hemGKOWobSp2U3MTG1o3bJyKnbkYU0SqU75dYWMI3V85p0O5+2Iz\nuxY4FfhmGsFlMrNdCAsvRwMfAp4AznP356L60VG9AS8DE909+3xh6bZ81suISHXKt8UyEFiQx3X/\nAAYlDye7aH+yPwB7AMcABxIOHHvQzHaINsScQZiVth9wL3CPme2ZdiwSVOJUbBEpjnxbLKsIK+47\nswPwZvJwctqHsPhymLsvADCzrxImDRxJOHBsnru3TXW+zMwOBs4ltKAkZVovIyK55NtieZSw8WRn\nTgT+mTycnBYDRwGeUbYhetyecFTynNhz5kTlUgBaLyMiueTbYvkRMDdau3KZu6/LrDSzvsBkQuvh\nC+mGCO7+BjAzVnwOYazlAcKstPifz8soQLecBJU6FVtECi+vxOLuT5jZtwmr7U8ysweBRUBv4CPA\nKGBHYLK7xxNA6szsC8DVwHXuvsDM+gNrYpetBbYqdCzVTFOxRSSbvBdIuvsPzezvhPNWxrLpQ7sF\nuJ/wIT8v/RA3Z2YnA78g7FN2QVT8HtAvdmk/YHWh4xERkc11aUsXd/8b0Zb5ZrYj8IG7v1WIwLIx\ns0uAK4EbgHMyTqpcQvvJBXW07x4TEZECS3zmvbuvSjOQzpjZBYSk8h13vyJWPRc4hDDW0mYUYbcA\nEREposSJpZjMbG/Cdvy/BH5hZrtmVLcQdlx+yswmAXcAxwOfAc4odqwiItWuIhIL8CXCRIFToq9M\nl7n7lWY2lrDyfiLwInB025oXKW9p7DmmfctEykdFJBZ3v5hwiFhH18yk/ZRkKXNpHP9cyiOkRaS9\nJAd9iaQmjeOfK/EIaZGeTIlFSiqNPce0b5lIeVFikZJK4/jnSjxCWqQnU2KRkkpjzzHtWyZSXipi\n8F56rjT2HNO+ZSLlRYklC01dLa409hxLa9+ynviz74n/TVLelFhiNHW1evXEn31P/G+S8qfEEqMj\nd6tXmj/7cmkl6PdZSkGJJUZTV6tXWj/7cmol6PdZSkGzwmI0dbV6pfWzL6cFm/p9llJQiyWmYWjD\nZn9tttHU1Z4vrZ99mi2f7nan6fe5Y+XSZVlusXSXEkuMpq5Wr7R+9rU1tTQ1tz8KqCuthLS60/T7\nnFs5dVmWUyxpUGLJQkfuVq80fvZptBLSHHQvt9/ncvnLvJwmNpRTLG2683NSYhFJWRqthJ466F5O\nf5mX0z0up1ig+z8nJRaRAuhuKyGN7rRyVE5/mZfTPS6nWKD7PyfNChMpQz11/7Ny+su8nO5xOcUC\n3f85qcUiUoZ66qB7Of1lXk73uJxige7/nJRYRMpUuQ26p6Hcpj+X0z0up1i6+3Oq9sTSG2DFihWl\njkOkKtRSyzF1x/Dwaw+zcvVKdtl6Fw7Z/RBqW2tZunRpqcOTSGc/p4zPzN7Znt+rtbW1eNGWGTM7\nGHi01HGIiFSoEe4+N15Y7S2WRmAEsBxYX+JYREQqRW+glvAZ2k5Vt1hERCR9mm4sIiKpUmIREZFU\nKbGIiEiqlFhERCRVSiwiIpKqap9u3I6Z9QauBE4GaoDZwJnuvrKUcVUqMxsGPJ+laoS7zzWz0cBU\nwICXgYnunn0HPGnHzH4GbOnu4zPKOrynZrYzcAMwGlgH3Axc4u4fFDP2SpDj/j4JxJfI39R2je6v\nWizZXA6cBJwIjATqgbtLGVCF+ySwijDnPfPriSjpzADuAvYD7gXuMbM9SxRrxTCzXmY2GTgtVp7P\nPb0b2BU4hPAH1NeASUUIu2J0cH97AXsCJ7D57/O3Mi6r+vurdSwZzKwv4UPwHHe/JSrbHXgVOMjd\nHytddJXJzK4ARrr7IVnqbgTM3Q/NKPsr8LK7n1q8KCuLmQ0BbgL2At4F/pzx13KH99TMDgAeA4a4\n+6tR/UnANGAnd19b1P+YMtTJ/f0osJCM+xd7ru4varHE7Uvo/prTVuDurwGvEVboS9ftBSzIUTeC\njHsdmYPudWcOBJYQWoPxD7fO7ukIYFHsQ3EO4fd+35TjrFQd3d+9gPeARTmeq/uLxlji6qPH+H7R\ny4BBRY4YAAk4AAAF2klEQVSlp9gL2MrM5gG7A88BF7v7k4T7rXvdRe5+G3AbgJnFqzu7p7nqia55\nIrVAK1Qn93cv4C3gdjM7BHiDMIZyvbtvQPcXUIslrj+wwd3fj5WvBbYqQTwVzcw+BAwBtgXOB75A\n+J/sYTP7BOF+r4k9Tfe6ezq7p+3qo9/3VnTf87EnMAC4Hzgc+DFh/OR/onrdX9RiiXsP2MLMtozN\n4OgHrC5RTBXL3d8zs+2BtW19y2Z2MvApYALhfveLPU33uns6u6ft6s2sD9AL3fd8nAgMcPe3ou+f\nNbNtgUvM7HJ0fwG1WOKWRI+1sfI62jdvJQ/u3pw5YBl1FzxP6BZYgu512jq7p7nqQfe9U+7+QUZS\nafMsYQxlW3R/ASWWuGeAFsI0QWDjrLDdgUdKE1LlMrNPmVmzmX0qo6w3YRDzeWAuGfc6Mgrd6+7o\n7J7OBYaY2aBYfQvwdOHDq2xmNs/Mfhgr/jSwLEo4ur+oK2wz7r7WzH4CXGtmq4DXgZ8AD7v7vNJG\nV5GeIcyou9HMzgTeASYCOwI/BHYBnjKzScAdwPHAZ4AzShJtzzCNju/p48A84LdmdhbhZzAVuM7d\n15Ug3krze2CymT0F/A04lPA7fW5Ur/uLWizZXArcTpgV8lfCtMJjSxpRhYrGqRoAB/4IPElYODbS\n3V9392eBsYT7+zRhcP9od881PVk60dk9dffWqH4l4fTUm4HpwOSSBFx5vgdcTPiceJ6QVL7p7tNB\n97eNFkiKiEiq1GIREZFUKbGIiEiqlFhERCRVSiwiIpIqJRYREUmVEouIiKRKCySlqpnZLYSD3Try\nsLsfamZzgA/c/fMFDywHM/swMB/4vLsvTPgauxO2g/9qtJNvPs/ZHvgHMCrbOSQimZRYpNpdAfws\n4/ufAB8A52SUNUePEwi71JbSNOB3SZNKZDlwAOHAqry4+5tmdi1ws5mNihYCimSlBZIiGcqhVZKL\nmQ0nbCNS5+6rSvD+fYGlwOnu/vtiv79UDrVYRPIUTzpm1ko4E30kcAzhHI5pwPXR1xcJ26jfClzY\n9le+me0AfDd6Tg3wFDDR3f/WSQgTCcfkbkwqZvYaYcuQXQjnsPcGfg1cQDgn5GuELdv/AJzl7mvi\nXWHRUQY/Aw4DfgDsQ9iS5Efu/v2293L3dWZ2N3ARYc8skaw0eC/SPdcCqwhJ4j7Ch/mThLPS/y/h\nA/iC6N+Y2VbAg8CRhA/oY4E3gQejFklWZjaAsO/X3VmqLwB2AI4jJIgzCeMwuxE2ofwhMC4qz6UP\ncCdhn7wGwi6915rZ52LX/S/waTP7WAevJVVOiUWke+a7+zfc/SHg21HZ6+5+lrs/SPgwbyaMaQB8\nFdgb+IK73+TuMwlJ6Tngqg7eZwThw//JLHWrgK9E73cR8DbQFzjB3R9w98nR6x+Q5blttgD+x91/\n5O5/BU4htMCOil339+hxVAevJVVOiUWkezaeYe7ubwDrY2WthBbJdlHR5wgHPj1tZlua2ZaE/w/v\nA0ZG4xjZDIkes83IaowOUGs7SG0V8FTsFNQ3MmLIZWNXXHQ427+BrTMvcPe3CWe+797Ja0kV0xiL\nSPe0ZCnr6AjaHYB64P0c9TsCy7KUbxs9vptCDLnEX3sD2f/4XJ0Rj0g7SiwixfU2sIBwdno2uWZ7\ntZVvS2gxlNL25I5TRIlFpMgeJgyOL3P3jS0TM7sC+Ai5F2suih7rKWFiiRZK9gcWlyoGKX9KLCLF\ndTNwNvAXM7uKMN5yFPAtYFIHCw8fJUxdPpgwEF8qB0WPD5QwBilzGrwXKSJ3f4cww+sJ4DrgT8AY\n4Gx3v7yD570LzCK0dkqpAXjS3ZeUOA4pY1p5L1IhzOz/EGZu7e7uTSV4//6EiQUnu/s9xX5/qRxq\nsYhUCHd/ErgHOK9EIZwGvADcW6L3lwqhxCJSWSYAx5rZ0GK+abSr8jeBE7UBpXRGXWEiIpIqtVhE\nRCRVSiwiIpIqJRYREUmVEouIiKRKiUVERFL1/wHqLypNbNMNjgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(data.insulin, 'go', label='insulin')\n", + "decorate(xlabel='Time (min)',\n", + " ylabel='Concentration ($\\mu$U/mL)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the book, I put them in a single figure, using `subplot`" + ] + }, + { + "cell_type": "code", + "execution_count": 440, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap08-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgQAAAHqCAYAAAB7pFb5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XuUXXV98P93CDcjESiXMCEBCcjHQkBE82h4gECtkBGB\n4qNrIRREzQOCXGpdEB8CmkRQARfiL2jTGi5tpWpbFLCYgIIgEQJTlDt+CgokmUlAQCRcQ5L5/bHP\nhMPJzCSTOdeZ92utWTPn+917n8+efWbO53xve0R3dzeSJGl426TRAUiSpMYzIZAkSSYEkiTJhECS\nJGFCIEmSMCGQJEnApo0OACAixgHfAj5EkaQsAP4+M7tK9fcAkyp2uyIzp5XqdwQuBw4DVgJXATMy\nc1U/z7lF6ZjLgNVVPSFJkprTSKAN6MjM18srGp4QRMQI4Ebgj8ChpeL/D/gp8L5S/d7A8cCtZbu+\nUvbztUA3MAXYGbgaWAXM6OepJwF3DP4MJElqOQcBC8sLGp4QAGOAR4EvZeaTABFxKXBdRGwL/AUw\nCrgrM5dX7hwRk4EDgQmZ+QRwf0ScDcyJiNmVGVCZZQDXXHMNO+200wYF+sADcNtt8MwzsOOOcMgh\nsO++AzhTSZIaaPny5Rx//PFQeg8s1/CEoPQmf2zP41L3wSkUzRl/ioiDgVeBp/o4xEHAU6VkoMdt\nwGhgP+DuPvZbDbDTTjsxbty49cbZ0QHXX1/8vMUW8Oc/F4932AEmVXZmSJLU3NbpKm+qQYURcR2w\nBPgg8H9LxROBF4BrIqIrIh6MiL+PiJ7YxwGdFYfqKn0fX63Y5s/vvXzBgmo9gyRJjdNUCQFwPvAB\nin6Nn0fEzhTjB7YCbgIOB74DzAK+UtpnFPBa+UEy8w2KMQVbViuwZes0rhS6unovlySplTS8y6Bc\nZj4IEBHHUrQUfAo4EdgqM18obfZgRGwNzIiImRTdCVuUHyciNgNGAC9XK7a2NuisbIcAxo6t1jNI\nktQ4DW8hiIgxpQRgrcx8Bfg9sHNmripLBno8SDFGYGuKxKGtor7nbbqXt/CN097ee/nUqdV6BkmS\nGqfhCQGwK/CDiHh/T0GpBSCARyJiUUR8u2Kf9wNdpURhITAhIsrHCxwKrADuq1aQkybBtGkwbhxs\nsknxfdo0BxRKkoaGZugy+G+K9QDmRcTJwBvANyjWJfhn4O3A7Ii4F/g1cAgwHTirtP9dwCLgRxFx\nOsU0xouBSzNzZTUDnTTJBECSNDQ1vIUgM9cAH6P4NP9fwO3Ai8CUzHwJuAQ4FzgPeJgiGfhCZs4r\n7d8NHAM8TZFYXAXMA2bX90wkSWpdzdBCQGY+C5zUR103cGnpq6/9l1MkBZIkaSM0vIVAkiQ1ngmB\nJEkyIZAkSSYEkiSt9aUvfYmTTjqp0WE0hAmBJElqjlkGkqThpaOjuGncsmXF0vDt7a7z0mi2EEiS\n6qqjA+bNK+4Ps2ZN8X3evKK8Hp599lnOOOMM9t9/fw488EDmzZvHhz/8YX784x+/Zbu7776biGD5\n8uV9lr3xxht861vfYsqUKey3334ce+yx3Hffm4vk/vd//zd/+7d/y3vf+14OOOAALrjgAl599dW1\n9f/0T//Ehz70ISZOnMjhhx/ONddc85YY/v3f/53DDz+cfffdlyOPPJKf/OQntfiVALYQSJLqrL/b\nyde6lWDNmjWccsopjBw5kn/+539m1apVzJw5kyVLlmzU8S644AJuueUWZs6cybve9S6uvvpqpk2b\nxs0338ySJUs46aSTOOGEE5g1axZLly5l5syZLF26lLlz53LrrbdyxRVXcNlll7HLLrtw5513cv75\n57PnnnsyadIk/u3f/o05c+bwla98hb322ovf/va3fPWrXwXgmGOqv/SOCYEkqa4aeTv5e+65h4ce\neohf/OIXjB9f3ALnkksu4cgjjxzwsV566SWuvfZaZs+ezV//9V8DMGPGDLbcckteeOEFrrzySiZO\nnMj06dMB2H333Zk5cyYnn3wyjz32GIsXL2azzTZj7Nix7LzzznziE59g3LhxTJgwAYC5c+dy+umn\nM7V0F71ddtmFrq4u5s6da0IgSWp9jbyd/COPPMJ22223NhkA2HPPPRk9evSAj/XEE0/wxhtvsO++\n+64t23TTTdcmAI899hhTpkx5yz7vf//719YdddRR/Od//ieHHXYYe+65JwceeCAf/ehH2W677Xj+\n+ed5+umnueiii/jmN7+5dv9Vq1axevVqVq5cyeabbz7gmPtjQiBJqqv29mLMQKV63E5+5MiRrFmz\nZqP3X7169dqfN9tss3633XLLLdcp6+7uBorE4S/+4i+44YYbuPfee1m4cCG33347V155JV//+tf5\n8Ic/DMD555/P//pf/2ud42y6afXfvh1UKEmqq0beTj4i+NOf/sTixYvXlv3hD39gxYoV62zb84b/\n0ksvrS178skn1/68yy67sOmmm/LQQw+tLVuzZg2HH344N954I7vvvju//e1v33LMe++9Fyi6D372\ns5/xgx/8gEmTJvGFL3yB6667joMPPpj58+czevRoxowZw9KlS9l1113Xft15551cccUVbLJJ9d++\nbSGQJNVdo24n/8EPfpCJEydyzjnncN5557FmzRpmzy5ujjtixIi3bLvnnnsyatQo5s6dy5lnnsmT\nTz7JVVddtbZ+1KhRHHfccXzrW99i2223Zdddd+Xqq6/mz3/+Mx/4wAd417vexTHHHMNFF13EJz7x\nCTo7O5k1axZTpkxh991358EHH+Siiy5i9OjRvO9972Px4sU88sgjfPKTnwTg1FNP5Rvf+AZjx45l\n8uTJ3H///XzjG99g2rRpNfndmBBIkoaVyy+/nFmzZnH88cczevRoTj75ZB566KF1ugC22morLrnk\nEr75zW/ykY98hHe/+91Mnz6dz3/+82u3Ofvssxk5ciTnnnsuL7/8Mvvssw9XXHEF22+/Pdtvvz1z\n587lsssu41//9V/ZZpttOOKII/i7v/s7AP7mb/6G5557jjlz5rBs2TK22247Pvaxj/G5z30OgE9+\n8pOsXLmSK664gq9+9auMGTOG0047jZNPPrkmv5cRPf0Zw01EvBN44pZbbmHcuHGNDkeSVAfPP/88\nDzzwAAcddBAjR44E4I9//CMHHngg11xzzdpBf0PV0qVL+dCHPgSwW2Y+WV5nC4EkadgYOXIkZ511\nFieddBIf//jHefnll/n2t7/Nrrvuynve855Gh9dQDiqUJA0bW2+9NXPnzmXRokUceeSRnHDCCWy6\n6aZceeWV6501MNTZQiBJGlYmT57M5MmTGx1G07GFQJIkmRBIkiQTAkmShAmBJEnChECSJNEkswwi\nYhzwLeBDFEnKAuDvM7OrVH8YcDEQwGPA9MycX7b/jsDlwGHASuAqYEZmrqrneUiS1Koa3kIQESOA\nG4FtgUOBKUAb8NNS/V7ADcB/AO8Frgeui4i9yw5zLbBTad+TgE8Ds+pzBpIktb6GJwTAGOBRYFpm\n3p+Z9wOXAvtHxLbAWcCizLwwM3+XmecDd5bKiYjJwIHAp0r7/ww4GzgjIrZoxAlJktRqGt5lkJnL\ngWN7Hpe6D04BOjLzTxFxEPDvFbvdVrbPQcBTmflERf1oYD/g7tpELknS0NEMLQRrRcR1wBLgg8D/\n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\nM5dU1J8ZEV0RsVlZ2a7ADsDD9YxVktT6IoLrr7++Ls/14x//mL322qshz12pFboM/gV4DTgB2Cwi\neu5VvKrUMnAjcCFwRUR8DdgO+DawMDN/3oiAJUmD19HZwfzH57NsxTLaRrfRvkd7XdZ+WbhwIe94\nxztq/jzN9txN3UIQEXsCk4CxQFLcv7nnaxFAZv4e+DBF98A9FAsUPQAc1YCQJUlV0NHZwbzfzKPz\nxU7WdK+h88VO5v1mHh2dHTV/7h122IEtttii5s/TbM/ddC0EmXlI2c//A4zYgH0WUaxgKEkaAvq7\nxXytWwkigosvvpijjz6aL33pS2yyySaMGjWKn/70p6xcuZK/+qu/YtasWWy11VasXr2ab37zm/zX\nf/0Xf/rTn9htt9047bTTaG8v7ndzwgknsMsuu3DhhReuPX5vZRvz3NXW1C0EkqThqZluMX/DDTew\nevVqfvjDH3LZZZdx66238i//8i8A/Nu//Rs///nPmTNnDgsWLGDq1Kl88YtfZMmSJes56uCfu9qa\nroVAkqS20W10vti5TnkjbjG/zTbbcN555zFy5Eh22203DjjgAO677z4AnnrqKd72trex8847s8MO\nO3Daaaex7777ss0229T8uavNFgJJUtNpplvM77LLLowcOXLt49GjR/PGG28AcNxxx/Hiiy9y8MEH\n84lPfII5c+Ywbtw4Ro8eXfPnrjYTAklS05m08ySm7T+Nce8YxyYjNmHcO8Yxbf9pDbnD7Oabb75O\nWXd3cUPdCRMm8Itf/IJ//Md/ZP/99+fGG2/kox/9KHfddVefx1u1alVVnrva7DKQJDWlVrjF/DXX\nXMM222zDEUccwcEHH8z06dM56qijuOmmm5g8eTKbbbYZL7300trt16xZw5IlS5gwYUIDo+6dCYEk\nSRvpT3/6E3PmzGHUqFHsueeePPLIIyxdupTPfvazAOy3335cffXV3HHHHYwfP56rrrqKF198scFR\n986EQJKkjfS5z32O1157jVmzZvHss8/S1tbGGWecwTHHHAPAZz7zGRYvXsyZZ57J5ptvzsc//nGO\nOOKIBkfduxG16otodhHxTuCJW265hXHjxjU6HEmSam7p0qV86EMfAtgtM58sr3NQoSRJMiGQJEkm\nBJIkCRMCSZKECYEkScKEQJIkYUIgSZIwIZAkSZgQSJIkTAgkSRImBJIkCRMCSZKECYEkScKEQJIk\n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\nAoGIiIgA/wU+EOZT3xJ+EQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "subplot(2, 1, 1)\n", + "plot(data.glucose, 'bo', label='glucose')\n", + "decorate(ylabel='mg/dL')\n", + "\n", + "subplot(2, 1, 2)\n", + "plot(data.insulin, 'go', label='insulin')\n", + "decorate(xlabel='Time (min)',\n", + " ylabel='$\\mu$U/mL')\n", + "\n", + "savefig('chap08-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Interpolation\n", + "\n", + "We have measurements of insulin concentration at discrete points in time, but we need to estimate it at intervening points. We'll use `interpolate`, which is a wrapper for `scipy.interpolate.interp1d`" + ] + }, + { + "cell_type": "code", + "execution_count": 441, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%psource interpolate" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The return value from `interpolate` is a function." + ] + }, + { + "cell_type": "code", + "execution_count": 442, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "I = interpolate(data.insulin,kind='quadratic')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use the result, `I`, to estimate the insulin level at any point in time." + ] + }, + { + "cell_type": "code", + "execution_count": 443, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array(62.804114412529)" + ] + }, + "execution_count": 443, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "I(7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`I` can also take an array of time and return an array of estimates, which we can plot." + ] + }, + { + "cell_type": "code", + "execution_count": 444, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap08-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZYAAAEPCAYAAABhkeIdAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4VOXZ+PHvZF8JIQQIhD3yVFZBEUEQd4mCFlvfFi1q\nFXGpay1iFXwFF0St2qJFf2LRVsXldaPVRClWhQoYQZH1YYdshCUr2Sczvz/OzDAzmSSTyQmZJPfn\nunIlOc+Zc56cwNy5n9Vit9sRQgghzBLS1hUQQgjRsUhgEUIIYSoJLEIIIUwlgUUIIYSpwtq6Am1J\nKRUJjAXygbo2ro4QQrQXoUAKkKW1rvYu7NSBBSOorGnrSgghRDs1CVjrfbCzB5Z8gLfeeotevXq1\ndV2EEKJdOHz4MNdddx043kO9dfbAUgfQq1cvUlNT/XpBVm4WGXsyyC/LJyU+hfS0dMb2GduqlRRC\niCDlswuhsweWZsnKzeKF9S+w6/guosKiqLPVsWzTMgAJLkII4SCjwpohY08GeWV5nKg9wbHKYxRV\nFQGQuSezjWsmhBDBQwJLM+SX5WO1WV3f19TVAJBXltdWVRJCiKAjgaUZUuJTsNltru/r7EbzYu/4\n3m1VJSGECDoSWJohPS0dOycX7ayzGYFlStqUtqqSEEIEHQkszTC2z1jO7nM2ceFxWLCQGJXIrDGz\npONeCCHcyKiwZuod35sxKWMAuHDghRJUhBDCi2QszeRs/gKorqu3koEQQnR6EliaydlhD1BtlcAi\nhBDeJLA0k3vGUmWtasOaCCFEcJLA0kweGYs0hQkhRD0SWJrJo49FmsKEEKIeCSzNJBmLEMFLKcUn\nn3xySu714YcfMnTo0Fa79/fff49SipycHL/Ot1qtvP7666bdvyVkuHEzScYiRPBau3YtXbp06XT3\nBvjss89YtGgRN954Y5vVwSkoA4tS6mUgTGs9y+3YncCdQF/gIPCc1nqZW3kP4EXgUqAGWA48rLW2\nYiLJWIRoWlttL5GcnNzq9wjGewPY7famTzpFgqopTCllUUotBG71On478BTwODASeA74q1Jqpttp\nHwC9gMnAjcBvgQVm19E7YwmmX6YQwSArN4tlm5aRW5qLzW4jtzSXZZuWkZWb1er3dm+OevDBB3no\noYd4/PHHGTduHKNHj+b+++/nxIkTANTV1bF48WImTZrE8OHDmTZtGhkZGa5rzZw5k4cfftjj+r6O\nBXJvX3bu3MlvfvMbRo0axdSpU9m2bZtHeXFxMX/84x+ZOHEiw4YNY+LEiSxevBibzcaGDRt44IEH\nXPX48MMPAVixYgVTp05lxIgRjB49mptuuomDBw8255EGJGgCi1JqEPAlcDtwyKv4NuAlrfWbWuu9\njkzlHxjBA6XUeGAicIPWerPW+jNgDnCXY19707hnLDa7zWO1YyGEsb2EL22xvcTKlSupq6vjnXfe\n4YUXXuDLL7/k73//OwBvv/02q1atYsmSJWRmZjJlyhTuv/9+srOzW/3e3kpKSrjxxhvp3r07H3zw\nAffeey8vv/yyxzlz585l7969LF26lMzMTG6//XaWL1/Ol19+yejRo3nkkUcAo0nu8ssvJzMzk0WL\nFnHHHXeQmZnJK6+8Qm5uLosXLzbl52tMMDWFTQCygRnAO15ld1M/2NiARMfXk4CDWuv9buVfAfHA\nGcAGsyrpnrGA0RwWHhpu1uWFaPfyy3zuVtsm20t07dqVefPmERoaysCBA5kwYQI//vgjAAcPHiQ6\nOpo+ffqQnJzMHXfcwciRI+natWur39vbp59+Sm1tLU888QSxsbGkpaVRUFDAwoULXedMmjSJcePG\ncdpppwFw3XXXsWzZMrTWXHzxxcTFxQEnm+S6devGk08+yeWXXw5Anz59uOKKK1i5cqUpP19jgiaw\naK3fBN4EI5XzKvva/XulVD+MALTEcSgVyPW6pPNfcV9MCix2u91j2XwwmsPiIuLMuLwQHUJKfAq5\npd7/Hdtme4l+/foRGhrq+j4+Pp6CggIArr32WlatWsV5553H8OHDmTRpEtOmTSM+Pr7V7+1t9+7d\nDBw4kNjYWNexM844w+OcGTNmsHr1at5//30OHDiA1prDhw9js9m8LwfA2Wefza5du3jxxRfZt28f\n+/fvZ9euXfTs2dOEn65xQdMU5i+lVDLwKXAYo98FIAbwmAavta4F7ECUWfd2bwZzkg58ITylp6X7\nPN4W20tERETUO+bsFx00aBD//ve/eeWVVxgzZgyffvopU6dOZd26dQ1ez2r1v+m7sXt7s1gs9crC\nw0+2hNhsNmbPns1TTz1FdHQ0V111FW+++SZ9+vRp8P4ff/wxV199NXl5eZx11lnMnz+fW265xe/6\nt0TQZCz+cPTDZGAEksla6xJHUSUQ6XVuOGABys26v3czGMiyLkJ4c47+ytyTSV5ZHr3jezMlbUrQ\nrQT+1ltv0bVrV6644grOO+885s6dy5VXXsnnn3/O+PHjCQ8P9+hst9lsZGdnM2jQINPrcvrpp/PR\nRx9RUlJCQkICAFu3bnWVb9++nbVr1/Lhhx8ybNgwAE6cOMHRo0ddAclisXhc87XXXuPXv/418+bN\ncx178803T8mAo3YTWJRSYzCCSiEwQWvt3sOWDVzu9RJn3l0/Jw+Qr4zFuT2xEOKksX3GBl0g8VZU\nVMSSJUuIiYlhyJAhbN++nZycHG6++WbAaIp6/fXXWbNmDX379mX58uWUlpa2Sl3S09N56aWXeOCB\nB7j//vspKCjgL3/5i6s8OTmZsLAwMjIySEhI4OjRozz//PPU1NRQU2O8Bzmb0bZs2cKgQYPo1asX\nGzduZOfOnURFRfGvf/2Lzz77jKSkpFb5Gdy1i6YwpdTPgFXAAWCiV1ABWAsMUkr1dTt2AVAG+O4t\nC4CvjEUmSQrRPt1222388pe/ZMGCBVx22WU8/fTT3HXXXUyfPh2Am266iQsvvJC7776bX/3qV8TF\nxXHFFVe0Sl3i4uJ44403sFqtXHPNNSxcuNCj2apnz548+eSTZGZmkp6ezpw5cxg1ahRXXnklW7Zs\nAWDcuHGcffbZzJgxg/fee4/58+cTHx/Pr3/9a2bMmMGWLVtYuHAhx48fJy+vdQdSWIJxHoZS6itg\nj3OCpFLqO6APRrBw/5PBqrU+ppSyAN9i9KncCfQE3gD+qrV+tJH7DAD2r169mtTU1CbrVVxVzNxV\ncz2O3TT6JsaljvP7ZxNCiPYuJyeHiy66CGCg1vqAd3nQZyxKqSHAWIymLQ3ku32sB9Ba24HpQAGw\nBmPW/TJgoY9LBsxnxiKd90II4aHZfSxKqSTg5xjZwwAgATiGMc8kE/jMrVM9IFrr892+3oXRCd/U\naw5jBJdW43NUmDSFCSGEB78Di1KqOzAPuNnxuh0YfR77MSYqjgKuA6oda30t1lofMbvCbUkyFiGE\naJpfgUUpdQ3GZMT1GIHlX1rrCh/ndQEuA24Btimlfqe1fs/E+rYpyViEEKJp/mYstwKXaK23NHaS\n1roUeB943zE8+E9AhwksvtYFk3ksQgjhya/AorW+uLkX1lpvwuiH6TB8NYXJPBYhhPBk6qgwpdR5\nSqnnzLxmMJElXYQQomlmDzceDdxj8jWDhizpIoQQTQv6eSzBRDrvhRCiaRJYmkGGGwsR3Nx3cfTH\nV199xZ49e1qxRk3LyclBKcX333/v1/lWq5XXX3+9Rfc8fPgwSik2bDBtqyoPEliaQTIWIYLb2rVr\nmTLFv+X5CwoKuPXWWzl+/Hgr18pcn332GYsWLWrrajSq3axuHAwkYxEiuDl3T/RHMK6T6I/2UG9/\nJ0h+4ef1+rWgLkHPV8YinfdCBA+lFE8//TRXXXUVDz74ICEhIcTExPDPf/6TmpoaLrzwQhYsWEBc\nXByTJ08G4Prrr2f69Ok89dRT5Ofns2jRItauXUtUVBTjxo3jwQcfdO26OHPmTAYOHMjWrVvJzs5m\n8eLFLF++nBEjRpCdnc3XX39N9+7dueWWW5gxY4arXt9//z0vvPAC27ZtIzo6mssvv5z777+f6Ojo\nej9DcXExixcvZs2aNRQVFZGYmMi0adOYM2cOWVlZPPDAA66fddGiRVx99dV8//33PPvss2zfvp3k\n5GQuv/xy7rzzTiIjjW2qcnNzWbBgAVlZWSQmJnL77be36u/B34wlAmPl4KY4F4fskHxlLLV1tdjs\nNkIs0qooOp5Ve1fxz13/bJMm38iwSKYNmcYlgy8J+BorV67kmmuu4Z133uHQoUPce++9DB48mDvu\nuIOPPvqI6dOns2TJEsaPH09FRQUzZ85k9OjRvPPOO9TV1fHSSy9xww03sHLlSteOkO+//z7PP/88\nAwYMIDU1leXLl/P3v/+dGTNm8NFHH7F+/Xoee+wx4uPjmTp1Kps3b+bGG29k5syZLFiwgJycHB59\n9FFycnJ4+eWX69V57ty5FBUVsXTpUrp27co333zDY489xplnnsl5553HI488wsKFC1m7di3x8fHs\n2LGDm2++mbvvvpvFixeTl5fHE088wbFjx1i0aBG1tbXMmjWL7t27s2LFCoqLi5k/f37Az9Qf/k6Q\nPL9Va9FO+MpYwJgkGRVm2g7IQgSNVftWtVk/YrW1mlX7VrUosHTt2pV58+YRGhrKwIEDmTBhAj/+\naGzR1K1bNwASEhKIj4/n/fffp7Kykqeeesq1V/1zzz3HuHHj+OKLL5g6dSoAI0eOrNePM2TIEB5+\n+GEABg8ezObNm/nHP/7B1KlT+dvf/sbw4cOZO3euq/zRRx9l9uzZ7N69u17WMmnSJMaNG8dpp50G\nwHXXXceyZcvQWnPxxRcTFxcHnGz2e+2115g8ebJrg7L+/fuzYMECrr32Wu677z527NjB/v37ee21\n1+jd29j/cN68ecyePTvg59oU6WNpBl8ZCxj/ASSwiI7okkGXtGnGcsmgwIMKQL9+/VxBAiA+Pp6C\nggKf527fvp3CwkLOOussj+OVlZXs3bvX9b2vvZvGjvXcLXPUqFGsWrUKgN27d7ua3Zyc99i9ezcj\nR470KJsxYwarV6/m/fff58CBA2itOXz4MDabzWe9d+zYwcGDBxk9erTrmLMfZu/evezevZvExERX\nUHHWrzUFsmx+BPA7YDzQ1ccpdq31ZS2tWDBqKGORDnzRUV0y+JIWZQxtzdl85a6hzu/w8HDS0tJ4\n8cUX65XFx8e7vo6Kqv9HZFiY51upzWZz7UHv63xnHXy9bvbs2ezfv59p06Zx1VVXMXLkSG644Qaf\ndXbW++c//7nHjpNOycnJbN++vd7PHB4e3uD1zBBIx8BLGItL/gwI9/FR/zfZQTSWsQgh2hfnG7/T\naaedRk5ODl27dqV///7079+fpKQkFi1axK5duxq91tatWz2+//HHHxk6dChgNH398MMPHuUbN250\nlbnbvn07a9euZcmSJdx3331cccUVJCYmcvToUVdw8K53Wloae/fuddW5f//+FBYWsnjxYsrLyzn9\n9NMpKiriwIEDDdbXbIE0hU0HHtFaP252ZYJdQxmLjAwTov2JjY0FQGvNkCFDmDZtGkuXLuXee+/l\n97//PZGRkfzpT3/ip59+cvV3NGT9+vW8/PLLXHbZZaxZs4aMjAxX5nPLLbcwffp0Fi9ezDXXXOMa\noTV58mQGDx5MTk6O6zrJycmEhYWRkZFBQkICR48e5fnnn6empoaamhqPem/ZsoVBgwZxyy23cPXV\nV7No0SL+53/+h+PHjzNv3jx69uxJcnIy3bp1Y9iwYcyZM4dHHnmE2tpaHn+8dd++A8lY7Di2BO5s\nfC2bD9IUJkR7FBcXx8yZM3n22WeZN28eUVFRLF++nKioKG644QZmzJiB1WrljTfeICkpqdFrXXrp\npfz0009cddVVrFixgmeeeYYLL7wQMDr2X375Zb777juuvPJK/vjHP3LJJZfw5z//ud51evbsyZNP\nPklmZibp6enMmTOHUaNGceWVV7Jli7Frybhx4zj77LOZMWMG7733HkopXnnlFTZt2sTPf/5z7r33\nXsaOHesKbKGhobz66qukpKRw/fXXc88993DjjTea+zC9WJo72UYp9QyQClyntfbdm9ROKKUGAPtX\n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\nSUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ts = linrange(0, 182, 2)\n", + "\n", + "plot(data.insulin, 'go', label='insulin data')\n", + "plot(ts, I(ts), color='green', label='interpolated')\n", + "\n", + "decorate(xlabel='Time (min)',\n", + " ylabel='Concentration ($\\mu$U/mL)')\n", + "\n", + "savefig('chap08-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** [Read the documentation](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp1d.html) of `scipy.interpolate.interp1d`. Pass a keyword argument to `interpolate` to specify one of the other kinds of interpolation, and run the code again to see what it looks like. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The glucose minimal model\n", + "\n", + "I'll cheat by starting with parameters that fit the data roughly; then we'll see how to improve them." + ] + }, + { + "cell_type": "code", + "execution_count": 445, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "k1 = 0.03\n", + "k2 = 0.02\n", + "k3 = 1e-05\n", + "G0 = 290" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To estimate basal levels, we'll use the concentrations at `t=0`." + ] + }, + { + "cell_type": "code", + "execution_count": 446, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "Gb = data.glucose[0]\n", + "Ib = data.insulin[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the initial conditions, `X(0)=0` and `G(0)=G0`, where `G0` is one of the parameters we'll choose." + ] + }, + { + "cell_type": "code", + "execution_count": 447, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "init = State(G=G0, X=0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the system object with all parameters and the interpolation object `I`." + ] + }, + { + "cell_type": "code", + "execution_count": 448, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system = System(init=init, \n", + " k1=k1, k2=k2, k3=k3,\n", + " I=I, Gb=Gb, Ib=Ib,\n", + " t0=0, t_end=182, dt=.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's the update function. Using `unpack` to make the system variables accessible without using dot notation, which makes the translation of the differential equations more readable and checkable." + ] + }, + { + "cell_type": "code", + "execution_count": 449, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func(state, t, system):\n", + " \"\"\"Updates the glucose minimal model.\n", + " \n", + " state: State object\n", + " t: time in min\n", + " system: System object\n", + " \n", + " returns: State object\n", + " \"\"\"\n", + " G, X = state\n", + " unpack(system)\n", + " \n", + " dGdt = -k1 * (G - Gb) - X*G\n", + " dXdt = k3 * (I(t) - Ib) - k2 * X\n", + " \n", + " G += dGdt * dt\n", + " X += dXdt * dt\n", + "\n", + " return State(G=G, X=X)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before running the simulation, it is always a good idea to test the update function using the initial conditions. In this case we can veryify that the results are at least qualitatively correct." + ] + }, + { + "cell_type": "code", + "execution_count": 450, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
G287.03
X0.00
\n", + "
" + ], + "text/plain": [ + "G 287.03\n", + "X 0.00\n", + "dtype: float64" + ] + }, + "execution_count": 450, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "update_func(init, 0, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now run simulation is pretty much the same as it always is." + ] + }, + { + "cell_type": "code", + "execution_count": 451, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Runs a simulation of the system.\n", + " \n", + " Adds a TimeFrame to `system` as `results`\n", + " \n", + " system: System object\n", + " update_func: function that updates state\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " frame = TimeFrame(columns=init.index)\n", + " frame.loc[t0] = init\n", + " ts = linrange(t0, t_end-dt, dt)\n", + " \n", + " for t in ts:\n", + " frame.loc[t+dt] = update_func(frame.loc[t], t, system)\n", + " \n", + " system.results = frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's how we run it. `%time` is a Jupyter magic command that runs the function and reports its run time." + ] + }, + { + "cell_type": "code", + "execution_count": 452, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Wall time: 700 ms\n" + ] + } + ], + "source": [ + "%time run_simulation(system, update_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The results are in a `TimeFrame object` with one column per state variable." + ] + }, + { + "cell_type": "code", + "execution_count": 453, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GX
0.0290.0000000.000000
0.5287.0300000.000000
1.0284.104550-0.000044
1.5281.229268-0.000090
2.0278.403529-0.000096
2.5275.620863-0.000020
3.0272.8693340.000179
3.5270.1319060.000541
4.0267.3867920.001052
4.5264.6154000.001636
5.0261.8097050.002223
5.5258.9716010.002740
6.0256.1122550.003160
6.5253.2459320.003498
7.0250.3842830.003770
7.5247.5364830.003992
8.0244.7093780.004176
8.5241.9078200.004334
9.0239.1349950.004478
9.5236.3925280.004620
10.0233.6805920.004763
10.5230.9988390.004906
11.0228.3472550.005044
11.5225.7261420.005176
12.0223.1360860.005300
12.5220.5777490.005417
13.0218.0516630.005528
13.5215.5582390.005633
14.0213.0977730.005732
14.5210.6705500.005825
.........
167.590.548441-0.000454
168.090.590749-0.000465
168.590.632952-0.000477
169.090.675052-0.000488
169.590.717051-0.000499
170.090.758950-0.000511
170.590.800752-0.000522
171.090.842458-0.000534
171.590.884070-0.000545
172.090.925591-0.000557
172.590.967023-0.000568
173.091.008367-0.000580
173.591.049626-0.000591
174.091.090802-0.000603
174.591.131899-0.000614
175.091.172917-0.000626
175.591.213861-0.000638
176.091.254731-0.000649
176.591.295531-0.000661
177.091.336264-0.000673
177.591.376932-0.000684
178.091.417539-0.000696
178.591.458085-0.000708
179.091.498576-0.000719
179.591.539013-0.000731
180.091.579400-0.000743
180.591.619739-0.000755
181.091.660033-0.000767
181.591.700286-0.000779
182.091.740501-0.000791
\n", + "

365 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " G X\n", + "0.0 290.000000 0.000000\n", + "0.5 287.030000 0.000000\n", + "1.0 284.104550 -0.000044\n", + "1.5 281.229268 -0.000090\n", + "2.0 278.403529 -0.000096\n", + "2.5 275.620863 -0.000020\n", + "3.0 272.869334 0.000179\n", + "3.5 270.131906 0.000541\n", + "4.0 267.386792 0.001052\n", + "4.5 264.615400 0.001636\n", + "5.0 261.809705 0.002223\n", + "5.5 258.971601 0.002740\n", + "6.0 256.112255 0.003160\n", + "6.5 253.245932 0.003498\n", + "7.0 250.384283 0.003770\n", + "7.5 247.536483 0.003992\n", + "8.0 244.709378 0.004176\n", + "8.5 241.907820 0.004334\n", + "9.0 239.134995 0.004478\n", + "9.5 236.392528 0.004620\n", + "10.0 233.680592 0.004763\n", + "10.5 230.998839 0.004906\n", + "11.0 228.347255 0.005044\n", + "11.5 225.726142 0.005176\n", + "12.0 223.136086 0.005300\n", + "12.5 220.577749 0.005417\n", + "13.0 218.051663 0.005528\n", + "13.5 215.558239 0.005633\n", + "14.0 213.097773 0.005732\n", + "14.5 210.670550 0.005825\n", + "... ... ...\n", + "167.5 90.548441 -0.000454\n", + "168.0 90.590749 -0.000465\n", + "168.5 90.632952 -0.000477\n", + "169.0 90.675052 -0.000488\n", + "169.5 90.717051 -0.000499\n", + "170.0 90.758950 -0.000511\n", + "170.5 90.800752 -0.000522\n", + "171.0 90.842458 -0.000534\n", + "171.5 90.884070 -0.000545\n", + "172.0 90.925591 -0.000557\n", + "172.5 90.967023 -0.000568\n", + "173.0 91.008367 -0.000580\n", + "173.5 91.049626 -0.000591\n", + "174.0 91.090802 -0.000603\n", + "174.5 91.131899 -0.000614\n", + "175.0 91.172917 -0.000626\n", + "175.5 91.213861 -0.000638\n", + "176.0 91.254731 -0.000649\n", + "176.5 91.295531 -0.000661\n", + "177.0 91.336264 -0.000673\n", + "177.5 91.376932 -0.000684\n", + "178.0 91.417539 -0.000696\n", + "178.5 91.458085 -0.000708\n", + "179.0 91.498576 -0.000719\n", + "179.5 91.539013 -0.000731\n", + "180.0 91.579400 -0.000743\n", + "180.5 91.619739 -0.000755\n", + "181.0 91.660033 -0.000767\n", + "181.5 91.700286 -0.000779\n", + "182.0 91.740501 -0.000791\n", + "\n", + "[365 rows x 2 columns]" + ] + }, + "execution_count": 453, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following plot shows the results of the simulation along with the actual glucose data." + ] + }, + { + "cell_type": "code", + "execution_count": 454, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap08-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "subplot(2, 1, 1)\n", + "\n", + "plot(system.results.G, 'b-', label='simulation')\n", + "plot(data.glucose, style='bo', label='glucose data')\n", + "decorate(ylabel='mg/dL')\n", + "\n", + "subplot(2, 1, 2)\n", + "\n", + "plot(system.results.X, style='g-', label='remote insulin')\n", + "\n", + "decorate(xlabel='Time (min)', \n", + " ylabel='Arbitrary units')\n", + "\n", + "savefig('chap08-fig03.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Numerical solution\n", + "\n", + "We can do the same thing using `odeint`. Instead of an update function, we provide a slope function that just evaluates the right-hand side of the differential equations. We don't have to do the update part; `odeint` does it for us." + ] + }, + { + "cell_type": "code", + "execution_count": 455, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " \"\"\"Computes derivatives of the glucose minimal model.\n", + " \n", + " state: State object\n", + " t: time in min\n", + " system: System object\n", + " \n", + " returns: derivatives of G and X\n", + " \"\"\"\n", + " G, X = state\n", + " unpack(system)\n", + " \n", + " dGdt = -k1 * (G - Gb) - X*G\n", + " dXdt = k3 * (I(t) - Ib) - k2 * X\n", + " \n", + " return dGdt, dXdt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can test the slope function with the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 456, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(-5.9399999999999995, 0.0)" + ] + }, + "execution_count": 456, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slope_func(init, 0, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `System` object we use with `run_odeint` is almost the same as the one we used with `run_simulation`, but instead of providing `t0`, `t_end`, and `dt`, we provide an array of times where we want to evaluate the solution. In this case, we use `data.index`, so the results are evaluated at the same times as the measurements." + ] + }, + { + "cell_type": "code", + "execution_count": 457, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system2 = System(init=init, \n", + " k1=k1, k2=k2, k3=k3,\n", + " I=I, Gb=Gb, Ib=Ib,\n", + " ts=data.index)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`run_odeint` is a wrapper for `scipy.integrate.odeint`" + ] + }, + { + "cell_type": "code", + "execution_count": 458, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%psource run_odeint" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 459, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Wall time: 107 ms\n" + ] + } + ], + "source": [ + "%time run_odeint(system2, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here are the results." + ] + }, + { + "cell_type": "code", + "execution_count": 460, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GX
time
0290.0000000.000000
2278.503218-0.000072
4267.4070440.001329
6255.9625660.003315
8244.5524870.004232
10233.5701250.004808
12223.0754690.005331
14213.0942040.005750
16203.6512010.006054
19190.5408140.006312
22178.6714830.006494
27161.3891800.006705
32146.8790180.006894
42124.4404730.007088
52109.2309320.006417
6299.4055100.005610
7293.1789060.004775
8289.5013280.003855
9287.5623950.002954
10286.7862890.002279
12286.8323210.001258
14288.3394440.000219
16290.119786-0.000323
18291.759885-0.000789
\n", + "
" + ], + "text/plain": [ + " G X\n", + "time \n", + "0 290.000000 0.000000\n", + "2 278.503218 -0.000072\n", + "4 267.407044 0.001329\n", + "6 255.962566 0.003315\n", + "8 244.552487 0.004232\n", + "10 233.570125 0.004808\n", + "12 223.075469 0.005331\n", + "14 213.094204 0.005750\n", + "16 203.651201 0.006054\n", + "19 190.540814 0.006312\n", + "22 178.671483 0.006494\n", + "27 161.389180 0.006705\n", + "32 146.879018 0.006894\n", + "42 124.440473 0.007088\n", + "52 109.230932 0.006417\n", + "62 99.405510 0.005610\n", + "72 93.178906 0.004775\n", + "82 89.501328 0.003855\n", + "92 87.562395 0.002954\n", + "102 86.786289 0.002279\n", + "122 86.832321 0.001258\n", + "142 88.339444 0.000219\n", + "162 90.119786 -0.000323\n", + "182 91.759885 -0.000789" + ] + }, + "execution_count": 460, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system2.results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting the results from `run_simulation` and `run_odeint`, we can see that they are not very different." + ] + }, + { + "cell_type": "code", + "execution_count": 461, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nSV9EJIv8f1QmnzxpFVqkAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(system.results.G, 'r-')\n", + "plot(system2.results.G, 'b-')\n", + "plot(data.glucose, 'bo')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The differences are usually less than 1% and always less than 2%." + ] + }, + { + "cell_type": "code", + "execution_count": 462, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
GX
2.0-0.03579434.378714
4.0-0.007574-20.903093
6.00.058481-4.666342
8.00.064154-1.328219
10.00.047295-0.934767
12.00.027173-0.582564
14.00.001675-0.312059
16.0-0.028931-0.016229
19.0-0.0827090.204179
22.0-0.1363340.202042
27.0-0.2186930.299434
32.0-0.2867570.172747
42.0-0.3848220.409781
52.0-0.4555010.567695
62.0-0.4678950.466529
72.0-0.4406460.559205
82.0-0.3943900.516638
92.0-0.3390470.565098
102.0-0.2753950.164876
122.0-0.1705250.545027
142.0-0.102344-0.885106
162.0-0.0488471.056507
182.0-0.0211240.266167
\n", + "
" + ], + "text/plain": [ + " G X\n", + "2.0 -0.035794 34.378714\n", + "4.0 -0.007574 -20.903093\n", + "6.0 0.058481 -4.666342\n", + "8.0 0.064154 -1.328219\n", + "10.0 0.047295 -0.934767\n", + "12.0 0.027173 -0.582564\n", + "14.0 0.001675 -0.312059\n", + "16.0 -0.028931 -0.016229\n", + "19.0 -0.082709 0.204179\n", + "22.0 -0.136334 0.202042\n", + "27.0 -0.218693 0.299434\n", + "32.0 -0.286757 0.172747\n", + "42.0 -0.384822 0.409781\n", + "52.0 -0.455501 0.567695\n", + "62.0 -0.467895 0.466529\n", + "72.0 -0.440646 0.559205\n", + "82.0 -0.394390 0.516638\n", + "92.0 -0.339047 0.565098\n", + "102.0 -0.275395 0.164876\n", + "122.0 -0.170525 0.545027\n", + "142.0 -0.102344 -0.885106\n", + "162.0 -0.048847 1.056507\n", + "182.0 -0.021124 0.266167" + ] + }, + "execution_count": 462, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "diff = system.results - system2.results\n", + "percent_diff = diff / system2.results * 100\n", + "percent_diff.dropna()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** What happens to these errors if you run the simulation with a smaller value of `dt`?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Optimization" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's find the parameters that yield the best fit for the data." + ] + }, + { + "cell_type": "code", + "execution_count": 463, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "k1 = 0.03\n", + "k2 = 0.02\n", + "k3 = 1e-05\n", + "G0 = 290" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Again, we'll get basal levels from the initial values." + ] + }, + { + "cell_type": "code", + "execution_count": 464, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "Gb = data.glucose[0]\n", + "Ib = data.insulin[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the slope function is the same." + ] + }, + { + "cell_type": "code", + "execution_count": 503, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " \"\"\"Computes derivatives of the glucose minimal model.\n", + " \n", + " state: State object\n", + " t: time in min\n", + " system: System object\n", + " \n", + " returns: derivatives of G and X\n", + " \"\"\"\n", + " G, X = state\n", + " unpack(system)\n", + " \n", + " dGdt = -k1 * (G - Gb) - X*G\n", + " dXdt = k3 * (I(t) - Ib) - k2 * X\n", + " \n", + " return dGdt, dXdt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`make_system` takes the parameters and `DataFrame` and returns a `System` object." + ] + }, + { + "cell_type": "code", + "execution_count": 504, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(G0, k1, k2, k3, data):\n", + " \"\"\"Makes a System object with the given parameters.\n", + " \n", + " G0: initial blood glucose\n", + " k1: rate parameter\n", + " k2: rate parameter\n", + " k3: rate parameter\n", + " data: DataFrame\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " init = State(G=G0, X=0)\n", + " system = System(init=init, \n", + " k1=k1, k2=k2, k3=k3,\n", + " Gb=Gb, Ib=Ib, \n", + " I=interpolate(data.insulin),\n", + " ts=data.index)\n", + " return system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`error_func` takes the parameters and actual data, makes a `System` object and runs it, then compares the results of the simulation to the data. It returns an array of errors." + ] + }, + { + "cell_type": "code", + "execution_count": 505, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def error_func(params, data):\n", + " \"\"\"Computes an array of errors to be minimized.\n", + " \n", + " params: sequence of parameters\n", + " data: DataFrame of values to be matched\n", + " \n", + " returns: array of errors\n", + " \"\"\"\n", + " print(params)\n", + " \n", + " # make a System with the given parameters\n", + " system = make_system(*params, data)\n", + " \n", + " # solve the ODE\n", + " run_odeint(system, slope_func)\n", + " \n", + " # compute the difference between the model\n", + " # results and actual data\n", + " error = system.results.G - data.glucose\n", + " return error.loc[20:]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When we call `error_func`, we provide a sequence of parameters as a single object." + ] + }, + { + "cell_type": "code", + "execution_count": 506, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(290, 0.027514300313941736, 0.014709983691870935, 1.2486091477939395e-05)" + ] + }, + "execution_count": 506, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "params = G0, k1, k2, k3\n", + "params" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how that works:" + ] + }, + { + "cell_type": "code", + "execution_count": 507, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(290, 0.027514300313941736, 0.014709983691870935, 1.2486091477939395e-05)\n" + ] + }, + { + "data": { + "text/plain": [ + "time\n", + "22 6.893990\n", + "27 -2.379341\n", + "32 3.126484\n", + "42 -3.041022\n", + "52 -0.590735\n", + "62 1.634997\n", + "72 2.808072\n", + "82 5.794733\n", + "92 -1.273543\n", + "102 -1.022659\n", + "122 -1.493460\n", + "142 0.796391\n", + "162 0.590536\n", + "182 -1.615481\n", + "dtype: float64" + ] + }, + "execution_count": 507, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "error_func(params, data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`fit_leastsq` is a wrapper for `scipy.optimize.leastsq`" + ] + }, + { + "cell_type": "code", + "execution_count": 508, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%psource fit_leastsq" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we call it." + ] + }, + { + "cell_type": "code", + "execution_count": 509, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 2.90000000e+02 2.75143003e-02 1.47099837e-02 1.24860915e-05]\n", + "[ 2.90000000e+02 2.75143003e-02 1.47099837e-02 1.24860915e-05]\n", + "[ 2.90000000e+02 2.75143003e-02 1.47099837e-02 1.24860915e-05]\n", + "[ 2.90000004e+02 2.75143003e-02 1.47099837e-02 1.24860915e-05]\n", + "[ 2.90000000e+02 2.75143007e-02 1.47099837e-02 1.24860915e-05]\n", + "[ 2.90000000e+02 2.75143003e-02 1.47099839e-02 1.24860915e-05]\n", + "[ 2.90000000e+02 2.75143003e-02 1.47099837e-02 1.24860917e-05]\n", + "[ 2.89971197e+02 2.75197172e-02 1.47272414e-02 1.24866367e-05]\n", + "[ 2.89971201e+02 2.75197172e-02 1.47272414e-02 1.24866367e-05]\n", + "[ 2.89971197e+02 2.75197176e-02 1.47272414e-02 1.24866367e-05]\n", + "[ 2.89971197e+02 2.75197172e-02 1.47272416e-02 1.24866367e-05]\n", + "[ 2.89971197e+02 2.75197172e-02 1.47272414e-02 1.24866369e-05]\n", + "[ 2.89935997e+02 2.75207748e-02 1.47203978e-02 1.24871508e-05]\n", + "[ 2.89936001e+02 2.75207748e-02 1.47203978e-02 1.24871508e-05]\n", + "[ 2.89935997e+02 2.75207752e-02 1.47203978e-02 1.24871508e-05]\n", + "[ 2.89935997e+02 2.75207748e-02 1.47203981e-02 1.24871508e-05]\n", + "[ 2.89935997e+02 2.75207748e-02 1.47203978e-02 1.24871510e-05]\n", + "[ 2.89931213e+02 2.75153012e-02 1.47022586e-02 1.24883151e-05]\n", + "[ 2.89931217e+02 2.75153012e-02 1.47022586e-02 1.24883151e-05]\n", + "[ 2.89931213e+02 2.75153016e-02 1.47022586e-02 1.24883151e-05]\n", + "[ 2.89931213e+02 2.75153012e-02 1.47022588e-02 1.24883151e-05]\n", + "[ 2.89931213e+02 2.75153012e-02 1.47022586e-02 1.24883153e-05]\n", + "[ 2.89890576e+02 2.75142723e-02 1.47002334e-02 1.24875136e-05]\n", + "[ 2.89890581e+02 2.75142723e-02 1.47002334e-02 1.24875136e-05]\n", + "[ 2.89890576e+02 2.75142727e-02 1.47002334e-02 1.24875136e-05]\n", + "[ 2.89890576e+02 2.75142723e-02 1.47002337e-02 1.24875136e-05]\n", + "[ 2.89890576e+02 2.75142723e-02 1.47002334e-02 1.24875137e-05]\n", + "[ 2.89895707e+02 2.75134863e-02 1.47021764e-02 1.24873299e-05]\n", + "[ 2.89893213e+02 2.75139401e-02 1.47009835e-02 1.24874124e-05]\n", + "[ 2.89891911e+02 2.75141193e-02 1.47005720e-02 1.24874639e-05]\n", + "[ 2.89891298e+02 2.75141938e-02 1.47004070e-02 1.24874876e-05]\n", + "[ 2.89890914e+02 2.75142370e-02 1.47003116e-02 1.24875018e-05]\n", + "[ 2.89890749e+02 2.75142547e-02 1.47002727e-02 1.24875076e-05]\n", + "[ 2.89890753e+02 2.75142547e-02 1.47002727e-02 1.24875076e-05]\n", + "[ 2.89890749e+02 2.75142551e-02 1.47002727e-02 1.24875076e-05]\n", + "[ 2.89890749e+02 2.75142547e-02 1.47002729e-02 1.24875076e-05]\n", + "[ 2.89890749e+02 2.75142547e-02 1.47002727e-02 1.24875078e-05]\n", + "[ 2.89890811e+02 2.75142424e-02 1.47002736e-02 1.24875127e-05]\n", + "[ 2.89890815e+02 2.75142424e-02 1.47002736e-02 1.24875127e-05]\n", + "[ 2.89890811e+02 2.75142428e-02 1.47002736e-02 1.24875127e-05]\n", + "[ 2.89890811e+02 2.75142424e-02 1.47002739e-02 1.24875127e-05]\n", + "[ 2.89890811e+02 2.75142424e-02 1.47002736e-02 1.24875129e-05]\n", + "[ 2.89890807e+02 2.75142349e-02 1.47002742e-02 1.24875092e-05]\n", + "[ 2.89890811e+02 2.75142349e-02 1.47002742e-02 1.24875092e-05]\n", + "[ 2.89890807e+02 2.75142353e-02 1.47002742e-02 1.24875092e-05]\n", + "[ 2.89890807e+02 2.75142349e-02 1.47002744e-02 1.24875092e-05]\n", + "[ 2.89890807e+02 2.75142349e-02 1.47002742e-02 1.24875094e-05]\n", + "[ 2.89890797e+02 2.75142307e-02 1.47002743e-02 1.24875090e-05]\n", + "[ 2.89890803e+02 2.75142332e-02 1.47002742e-02 1.24875091e-05]\n", + "modsim.py: scipy.optimize.leastsq ran successfully\n", + " and returned the following message:\n", + "The relative error between two consecutive iterates is at most 0.000000\n" + ] + } + ], + "source": [ + "best_params = fit_leastsq(error_func, params, data)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have `best_params`, we can use it to make a `System` object and run it.\n", + "\n", + "We have to use the scatter operator, `*`, to make `best_params` behave like four separate parameters, rather than a single object." + ] + }, + { + "cell_type": "code", + "execution_count": 510, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system = make_system(*best_params, data)\n", + "run_odeint(system, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are the results, along with the data. The first few points of the model don't fit the data, but we don't expect them to." + ] + }, + { + "cell_type": "code", + "execution_count": 511, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap08-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAERCAYAAABVU/GxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4lNXZ+PHvzGSykZUEQkLYl6Psi2FpQWqtStyorf7E\nopXXUlur1de2iopYxBVr1RZ95a0g2LrUDZdXgWqxLigiImAQOSBbCEkgZE9IyExmfn+cmclkSMIk\nJJks9+e6cmXmOc/zzD1B556zW9xuN0IIIURzWUMdgBBCiM5JEogQQogWkQQihBCiRSSBCCGEaBFJ\nIEIIIVpEEogQQogWCWvvF1RKpQOPA+diEtg64Hda61xP+RdARsBlK7TW8zzlvYEngfOBGmAlsEBr\n7WziNSM898wDalv1DQkhRNdlA1KBzVrrE4GF7ZpAlFIW4F2gADjHc/ivwP8BEz3lI4E5wAd+lx73\ne/w64AZmAH2BVYATWNDES2cAn5z+OxBCiG5pOrAh8GB710BSgG+BO7TWBwCUUo8BbyqlEoGeQDSw\nUWudH3ixUmoqMA0YrLXeD2xXSt0GLFVKLW4oQ3rkAbzwwgv06dOntd+TEEJ0Sfn5+cyZMwc8n6GB\n2jWBeJLCbO9zT3PWrzDVo2Kl1NlAFXCwkVtMBw56kofXh0AsMA7Y1Mh1tQB9+vQhPT29wRM2b4a1\nayEvD1JTITMTMgIb0oQQontqsOm/3ftAvJRSbwKzgGLqmrNGASXAC0qpGUAhpo/jCa21C0gHDgfc\nKtfzux+NJ5Ambd4My5fXPT98uO65JBEhhGhYKEdhLQQmY9rV3ldK9cX0f8QA/wIuAJ4C7gX+6Lkm\nGqj2v4nW2oHpE4lsaSBr1zZ8fN26lt5RCCG6vpDVQLTWWQBKqdnAIeBa4OdAjNa6xHNallIqHlig\nlFqEad6K8L+PUsoOWIDKlsaS12DrHuTmNnxcCCFEO9dAlFIpnoTho7U+DuwF+mqtnX7JwysL08cR\nj0k0qQHlaZ7fgU1bQUsNvKP3xmkNHxdCCNH+TVgDgJeUUmd5D3hqGArYqZT6XCn1l4BrzgJyPYll\nAzBYKdXPr/wcoBzY1tKgMjMbPj5zZkvvKIQQXV97N2F9iZmPsVwpdT3gAB7GzAt5DugBLFZKbQE+\nBX4AzAdu8Vy/EfgceFkpdRNmWPAjwGNa65qWBuXtKF+3zjRbpaWZ5CEd6EII0bj2HsbrUkr9BHgU\neAfT8f0vYIbWukIp9SfMpMC7gf5ANnCr1nq553q3Uuoy4GlMIioHlgOLTze2jAxJGEII0Rzt3omu\ntT4GzG2kzA085vlp7Pp84LI2CU4IIUTQZDFFIYQQLSIJRAghRItIAhFCCNEikkCEEJ3O0qVLOe+8\n89rs/jk5OSil+PLLL4M63+l0smrVKt/z1atXM2LEiDaKruOQBCKE6HSuu+46Xn755VCH4bNmzRoe\neugh3/MLL7yQjz/+OIQRtY+QLWUihBAt1aNHD3r06BHqMHzcbne955GRkURGtnh5vk5DaiBCiA5r\n9erVZGZmMmrUKM455xz++te/4nK56jVheZub1qxZw6WXXsro0aO5/PLL2b9/P0uXLmXKlClMmjSJ\n+++/33ffhprAmmoWKykp4c4772TatGmMHDmSadOmsWTJElwuF5s2beL2228HQCnF6tWrT2rCKi4u\n5p577mH69OmMHTuWa6+9lp07d/rKr7nmGv785z9z2223MWHCBCZNmsTixYtxOhvdaLVDkAQihOiQ\ndu3axT333MOtt97Ke++9x1133cWKFSt4++23Gzz/iSee4O677+bVV1+lpKSEK6+8kpycHF588UVu\nvfVW/vGPf/DRRx+1KJb58+ezd+9enn76adatW8cNN9zAypUr+eCDDxg/fjz33HMPABs2bODCCy+s\nd21tbS3XXXcdWVlZPPHEE7zyyiskJiZy9dVXk5OT4ztv5cqVDBo0iDfffJO77rqLl156iXfffbdF\n8bYXacISohvZqo/yxc58HE5Xu7+2PczKpBF9GK96B3X+oUOHsFgspKWl+X5WrlxJnz59OHTo0Enn\nz5s3j0mTJgFw3nnn8fzzz7N48WIiIiIYPHgwS5cuZc+ePcyYMaPZsU+fPp3JkyczbNgwAObMmcPy\n5cvRWvOjH/2ImJgYAHr16nXStRs2bGDnzp2sW7eOQYMGAfDII49w/vnn88ILLzB//nwAzjzzTH7z\nm98A0L9/f1atWsW2bduYNWtWs+NtL5JAhOhGtu0uCEnyAHA4XWzbXRB0AvE29/z0pz9lwIABTJs2\njZkzZ5LWyDLZ/fv39z2Ojo6md+/eRETU7f4QGRlJTU3Llsy76qqrWL9+Pa+++ioHDhxAa01+fj4u\n16n/lrt37yYhIcGXPADCw8MZM2YMe/bs8R0bOHBgvetiY2NxOBwtire9SBOWEN3IuOG9sIeF5n97\n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\nSUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(system.results.G, label='simulation')\n", + "plot(data.glucose, style='bo', label='glucose data')\n", + "\n", + "decorate(xlabel='Time (min)',\n", + " ylabel='Concentration (mg/dL)')\n", + "\n", + "savefig('chap08-fig04.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Since we don't expect the first few points to agree, it's probably better not to make them part of the optimization process. We can ignore them by leaving them out of the `Series` returned by `error_func`. Modify the last line of `error_func` to return `errors.loc[8:]`, which includes only the elements of the `Series` from `t=8` and up.\n", + "\n", + "Does that improve the quality of the fit? Does it change the best parameters by much?\n", + "\n", + "Note: You can read more about this use of `loc` [in the Pandas documentation](https://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-integer)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** How sensitive are the results to the starting guess for the parameters. If you try different values for the starting guess, do we get the same values for the best parameters?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Interpreting parameters\n", + "\n", + "Based on the parameters of the model, we can estimate glucose effectiveness and insulin sensitivity." + ] + }, + { + "cell_type": "code", + "execution_count": 512, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def indices(G0, k1, k2, k3):\n", + " \"\"\"Compute glucose effectiveness and insulin sensitivity.\n", + " \n", + " G0: initial blood glucose\n", + " k1: rate parameter\n", + " k2: rate parameter\n", + " k3: rate parameter\n", + " data: DataFrame\n", + " \n", + " returns: State object containing S_G and S_I\n", + " \"\"\"\n", + " return State(S_G=k1, S_I=k3/k2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are the results." + ] + }, + { + "cell_type": "code", + "execution_count": 513, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
S_G0.027514
S_I0.000849
\n", + "
" + ], + "text/plain": [ + "S_G 0.027514\n", + "S_I 0.000849\n", + "dtype: float64" + ] + }, + "execution_count": 513, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "indices(*best_params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The insulin minimal model\n", + "\n", + "In addition to the glucose minimal mode, Pacini and Bergman present an insulin minimal model, in which the concentration of insulin, $I$, is governed by this differential equation:\n", + "\n", + "$ \\frac{dI}{dt} = -k I(t) + \\gamma (G(t) - G_T) t $" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write a version of `make_system` that takes the parameters of this model, `I0`, `k`, `gamma`, and `G_T` as parameters, along with a `DataFrame` containing the measurements, and returns a `System` object suitable for use with `run_simulation` or `run_odeint`.\n", + "\n", + "Use it to make a `System` object with the following parameters:" + ] + }, + { + "cell_type": "code", + "execution_count": 571, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "I0 = 360\n", + "k = 0.25\n", + "gamma = 0.004\n", + "G_T = 80" + ] + }, + { + "cell_type": "code", + "execution_count": 572, + "metadata": {}, + "outputs": [], + "source": [ + "def make_system(I0,k,gamma,G_T,data):\n", + " init = State(I=I0)\n", + " system = System(init=init, I0=10, \n", + " gamma=gamma,k=k,G_T=G_T, G=interpolate(data.glucose), ts=data.index)\n", + " \n", + " return system" + ] + }, + { + "cell_type": "code", + "execution_count": 573, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
initI 360\n", + "dtype: int64
I010
gamma0.004
k0.25
G_T80
G<scipy.interpolate.interpolate.interp1d object...
tsInt64Index([ 0, 2, 4, 6, 8, 10, 12,...
\n", + "
" + ], + "text/plain": [ + "init I 360\n", + "dtype: int64\n", + "I0 10\n", + "gamma 0.004\n", + "k 0.25\n", + "G_T 80\n", + "G \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
I
time
0360.000000
2219.652719
4137.739127
689.505898
861.636133
1045.765330
1237.053121
1432.989732
1631.406589
1931.811071
2232.581632
2734.014287
3233.758216
4230.932902
5224.554216
6215.767804
727.782053
82-0.382598
920.598298
1021.943431
1223.415756
1424.413573
16211.170251
18225.702699
\n", + "" + ], + "text/plain": [ + " I\n", + "time \n", + "0 360.000000\n", + "2 219.652719\n", + "4 137.739127\n", + "6 89.505898\n", + "8 61.636133\n", + "10 45.765330\n", + "12 37.053121\n", + "14 32.989732\n", + "16 31.406589\n", + "19 31.811071\n", + "22 32.581632\n", + "27 34.014287\n", + "32 33.758216\n", + "42 30.932902\n", + "52 24.554216\n", + "62 15.767804\n", + "72 7.782053\n", + "82 -0.382598\n", + "92 0.598298\n", + "102 1.943431\n", + "122 3.415756\n", + "142 4.413573\n", + "162 11.170251\n", + "182 25.702699" + ] + }, + "execution_count": 576, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_odeint(min_model1,slope_function)\n", + "min_model1.results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 577, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\ProgramData\\Miniconda3\\lib\\site-packages\\matplotlib\\axes\\_axes.py:545: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.\n", + " warnings.warn(\"No labelled objects found. \"\n" + ] + }, + { + "data": { + "image/png": "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\n0+eczulzTmd+9XzVZkRCisfjHGk+kqyN7Dyxk+Mtx4e97vzF5w9YQHc4SixDyOdf97lKXXcsm+O9\nsol5uHv7w/mGAAAQL0lEQVRkI9dmwpJICfOr5zO/ej7nLToPgM7uzuSQ61frXuWVY6/Q3NGcvKYn\n3sOO4zvYcXwHP9j2A2qm1CSTzKrZq7Tls8gQeuI97GvYx84TQSLZdWJXxibqVCWREhZPX8zKWStZ\nMXMFK2auyKmm0kuJZQj5+ut+LI1VzPloJoxFYyytWcrSmqVcvPRieuI97Knfw5ajW9hydAt76/f2\nO7+utY5n9j7DM3ufIVoSZeXMlclEc+rUU1WbkUmts7uT3fW72Xl8JztP7OS1utcyNj+nikVjLK9Z\nzoqZK1g5ayVLZyylvLR8xLEosQwjH3/dj7WxiDmfzYSZ+mqusqtobG9k69GtbDm6ha3HttLa2Zq8\nprunOznq7N9f+Xfau9s52XGSkkgJq2av4so3XDnu/t1EctHS2ZKsiew8vpO9DXuHnSJQVVaVrIms\nnLmSRdMXUVqS/zSgxCKh5KuZcLi+mnMXncu5i86lJ97Da3WvseXoFl4+8jL7G/cnr0mf9Lnl6BZ+\n+upP+dM1f8qVdiVLa5aOyv88ImOpvq2+X//IwaaDxOPxIa+pmVLDypkrk01b86bOG5Oavf5vyyDf\nkyInonw1uWXbV9Pbkb9i5gres+o91LfVJ5vMHnjxgX7XxonT2N7Iw1sexo87ZdEyVs5ayarZq1g9\ne/WQQ5on4r/9RPxvmuji8ThHm48mR2vtOrEruYHgUE6deiorZ61k5cwgkcyqnDUG0Q6kxJJmtCZF\nTkT5aHIL21czo2IG5y8+n/MXn8/vD/+e+tZ66trqONF6gubOYABA72tHdwdbj25l69Fg+4Kqsips\nlrH6lNWsmr2KUypPIRKJ5PXfvlg+zPX7XLzi8TitXa3UtdZR11aXfD3YdDCnjvbe/pHlNcupLq8e\no+iHpsSSZiwmRUqffPTVLKheAPEg2SydsZTOnk7q2+qJEGF25ewBf+k1dzSz6dAmNh3aBASrTa+a\nvYrf7PsNnd2dAyah5vpvn68P83wkp2L8fS6WpDuasfQmjROtJ6hvq6euta7vfVvf+9TO9eEWh41F\nYyyrWZasjSyrWZaXjvbBjOTZKLGkKdSkyMkqH3016feIlcQ4pfIUbnzzjaxdsJbaltpkR//22u0D\n/hI80XqC9fvWJzdaq4xVUlNRw4yKGcyomJHzv30+PszzlZyK7fe5mGpQYWPpXe4otZaR6bWju2PQ\ne6TLtDjsrrpdrJy5kncufycrZq5g8fTFY9ZXONJ/JyWWNIWaFDlZ5aOvZrh7zK6cnWw2i8fjHGw6\nmEwyO47voK2rDYDKWCXNnc20dLbQ0tnCgaYDRIiwcNpCfrzjx6yevZolM5YQLYkOGU8+PszzVdMo\ntt/nYqpBZYolTpzH/DHmVc/LW9IYSlm0jJopNext2MvcqrmUR8upKK2guryaylgl1eXVXLr80rz8\nrFyM9N9pQiUWM4sCdwDXA9XAk8BN7n5kqOtSFXJS5GSVj76abO8RiURYMG0BC6Yt4JJll9Dd083e\nhr1sr91ORWkFv3jtF/TQtxpAnDhVsSp+5D/iR/4jKkoreMOsN7DmlDWsmr0q4/yZfHyY56umUSy/\nz/F4nDhx9jfup7unmzhxeuI9yeO76nZxsOkg3T3d9MR76I4Hrz3xHrp7upPfp5dn8336vXrLf7n7\nl0EMxOns6aS9q5327vZkx/lI9SaNmooaZk6ZyYyKGcycMpOaKTXJ91NKpxCJRPjIjz8yYBUKKFzN\ncqS/fxMqsQBfBK4DrgWOA/8APAKcn+0NxuOkSAkvWhJlWc0yltUs44qVV7B+33oe3vIwO47voKun\ni2ll0/q1c7d1tfHSkZd46chLQNCvs/qU1ayevZrVp6xmWvm0vHyYjyQ5xeNxunq66OjuYPnM5bxn\n1Xv4+Ws/5/DJw8yunM15i84jFo3xu4O/o6uni+6ebrp6upJf3fG+7wcr6+4JtlzoLU+9ZrDr4vE4\nmw5tSg6qSDU1NpVbn7416+eTD00dTYPGMpzy0nJqKmqSiSPTa2/SyEax1SxHGk9kuHHQ44WZlQG1\nwMfc/YHEsSXAbuDt7j5g9cbe8qeeeoqFCxeOXbAybjS1N+HHnVeOvcK2Y9v6bSWdyYJpC1g9ezXd\n8W62HdvG0eajyT9O3jr/rXT1dNHZ00lnd+eQr5sPb+bR7Y/2/aWd+Kt73eJ1LJy2kPbudjq6O2jr\naqOjuyP513Z7V3A801+/xSC9L6HXqlmrct4JdbRiedOcN7Fq9qqMyaK35pFL0shGep9Gr95+wrE2\nXDz79+/nkksuAVjq7nvSz5tINZazCJq/nu494O57zGwPsA4YuCywyDCqy6t56/y38tb5byUejwcb\nsx3bxrbabWyv3d5vNQAIOjl7/9KLlkSZWjaV463HeeDFBzL+jzqUkkgJB5sO0tzZTFWsioXTFrK/\ncX+/yaHjSW8zZHlpOfsa9tHc2Ux1eTUralawaPoiSiLB/kMlkRKiJdGsv+99n17e+36o873W2XBg\nA3WtdSyesZir3nAV5y8+f8yXByq2lpKRxjOREktvlSO9/nYQWDTGscgEFIlEmFM1hzlVc7hwyYX0\nxHvYW7+XbbXb2HZsG6/WvdpvSY3unm4a2xtD/7zenxVGtCRKebScsmgZ5aXllEfLkxvGRUuilJaU\nJr+ikbTvE+W9m8z1lmd73WBlJZGS0M9itJy36Dw+ePYHCx0GUHzLR40knomUWCqBHnfvTDveDmgZ\nXMm7kkhJchHNK1ZeQXtXOztP7EzWaDK1Ufd+uJeWlBKLBttLl5aUEiuJJcsyvaYnifLSxPeJ96nl\nvfcUKZSJ9NvXCpSYWam7d6UcLwcG9tCJ5Fl5aXlytWUIFgns6ulKJo7SklKtwCyTwkRKLPsSr/NS\n3gPMZ2DzmMioq4xVFjoEkYKYSIllM9AEXAg8CMlRX0uAXw9yTRTg8OHDox+diMgEkfKZmXG28IQZ\nbgxgZl8mmBx5PXCUYB5Lm7tfNMj55wPPjFF4IiITzTp3fzb94ESqsQB8HogR1FhiJGbeD3H+RoKh\nyIeAoXfIERGRXlGCboeNmQonVI1FREQKr/gGlouIyLimxCIiInmlxCIiInmlxCIiInmlxCIiInk1\n0YYbj1g+NguTPma2BtiaoWiduz9rZpcCdwEG7ARucffM29fJAGb2baDU3W9MOTbkMzWzOcC9wKVA\nB3A/8Lm0pZCEQZ/v80D66oz/0nuOnq9qLJl8kb7Nwi4gWDX5kUIGNM6dQbBPzry0rw2JpPMY8H3g\nbOA/gEfN7I0FinXcMLOImd0GfDjteDbP9BHgVIJVKq4HPgiM7S5bRW6I5xsB3gi8n/6/z3+dctqk\nf76ax5IizGZhMjQzux24wN0vzFD2T4ClroxgZr8Edrr7X4xdlOOLmS0D/gU4HWgBfp7y1/KQz9TM\nziXYm2iZu+9OlF8H3AOc4u7tY/ofU4SGeb7LgV2kPL+0a/V8UY0lXcbNwoA9BDP0JXenA9sGKVtH\nyrNOeBo96+GcR7DQ6hkEf/SkGu6ZrgP2pn0oPk3we39WnuMcr4Z6vqcTrKS+d5Br9XxRH0s6bRaW\nf6cDFWb2HMGCoFuAz7r78wTPW886R+7+IH0LraYXD/dMBysncc6GvAU6Tg3zfE8H6oGHzOxC4DhB\nH8o33L0HPV9ANZZ02iwsj8xsCrAMmA58EriK4H+yX5nZaoLn3ZZ2mZ71yAz3TAeUJ37f4+i5Z+ON\nwFTgp8C7gG8R9J/8r0S5ni+qsaTTZmF55O6tZlYDtPe2LZvZ9cBbgL8keN7laZfpWY/McM90QLmZ\nxYAIeu7ZuBaY6u71ie9fNrPpwOfM7Ivo+QKqsaRL3SwslTYLC8ndG1M7LBPNBVsJmgX2oWedb8M9\n08HKQc99WO7elZJUer1M0IcyHT1fQIklXepmYUBWm4XJIMzsLWbWaGZvSTkWJejE3Ao8S8qzTrgY\nPeuRGO6ZPgssM7NFaeVNwIujH974ZmbPmdnfpx1+K3AwkXD0fFFTWD/u3m5m/wDcbWa19G0W9it3\nf66w0Y1LmwlG1P2Tmd0EnARuAWYDfw/MBV4ws1uBh4E/A/4A+EhBop0Y7mHoZ/pb4Dngu2b2UYJ/\ng7uAr7t7RwHiHW9+ANxmZi8AvwEuIvid/qtEuZ4vqrFk8nngIYJRIb8kGFZ4TUEjGqcS/VSXAw78\nCHieYOLYBe5+1N1fBq4meL4vEnTuX+nugw1PlmEM90zdPZ4oP0Kwe+r9wH3AbQUJePz5KvBZgs+J\nrQRJ5ePufh/o+fbSBEkREckr1VhERCSvlFhERCSvlFhERCSvlFhERCSvlFhERCSvlFhERCSvNEFS\nJjUze4BgY7eh/MrdLzKzp4Eud3/nqAc2CDObCWwC3unuu0LeYwnBcvB/nljJN5traoDfAxdn2odE\nJJUSi0x2twPfTvn+H4Au4GMpxxoTr39JsEptId0DfC9sUkk4BJxLsGFVVty9zszuBu43s4sTEwFF\nMtIESZEUxVArGYyZrSVYRmS+u9cW4OeXAfuB/+7uPxjrny/jh2osIllKTzpmFifYE/0C4I8J9uG4\nB/hG4uu9BMuo/yvw6d6/8s1sFvDlxDXVwAvALe7+m2FCuIVgm9xkUjGzPQRLhswl2Ic9Cvxf4FME\n+4R8kGDJ9h8CH3X3tvSmsMRWBt8G3gH8HXAmwZIk33T3r/X+LHfvMLNHgM8QrJklkpE670VG5m6g\nliBJ/Jjgw/x5gr3S/wvBB/CnEu8xswrgKeCPCD6grwHqgKcSNZKMzGwqwbpfj2Qo/hQwC/gTggRx\nE0E/zGKCRSj/HrghcXwwMeDfCNbJu5xgld67zeyStPP+HXirma0c4l4yySmxiIzMJnf/H+7+n8An\nEseOuvtH3f0pgg/zRoI+DYA/B94EXOXu/+LuPyFISluAO4f4OesIPvyfz1BWC3wg8fM+AzQAZcD7\n3f1n7n5b4v7nZri2Vwnwv9z9m+7+S+BDBDWwd6ed97vE68VD3EsmOSUWkZFJ7mHu7seB7rRjcYIa\nyYzEoUsINnx60cxKzayU4P/DHwMXJPoxMlmWeM00ImtjYgO13o3UaoEX0nZBPZ4Sw2CSTXGJzdmO\nAVWpJ7h7A8Ge70uGuZdMYupjERmZpgzHhtqCdhawEOgcpHw2cDDD8emJ15Y8xDCY9Hv3kPmPz+aU\neEQGUGIRGVsNwDaCvdMzGWy0V+/x6QQ1hkKqYfA4RZRYRMbYrwg6xw+6e7JmYma3A6cx+GTNvYnX\nhRQwsSQmSlYCrxcqBil+SiwiY+t+4GbgF2Z2J0F/y7uBvwZuHWLi4TMEQ5fPJ+iIL5S3J15/VsAY\npMip815kDLn7SYIRXhuArwOPA5cBN7v7F4e4rgV4gqC2U0iXA8+7+74CxyFFTDPvRcYJM3sbwcit\nJe5+oAA/v5JgYMH17v7oWP98GT9UYxEZJ9z9eeBR4H8WKIQPA68A/1Ggny/jhBKLyPjyl8A1ZrZi\nLH9oYlXljwPXagFKGY6awkREJK9UYxERkbxSYhERkbxSYhERkbxSYhERkbxSYhERkbz6//TUsUTE\nis3XAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Solution\n", + "plot(min_model1.results,'g-')\n", + "plot(data.insulin,'go')\n", + "\n", + "decorate(xlabel='Time (min)',\n", + " ylabel='Concentration ($\\mu$U/mL)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write an error function that takes a sequence of parameters as an argument, along with the `DataFrame` containing the measurements. It should make a `System` object with the given parameters, run it, and compute the difference between the results of the simulation and the measured values. Test your error function by calling it with the parameters from the previous exercise.\n", + "\n", + "Hint: As we did in a previous exercise, you might want to drop the errors for times prior to `t=8`." + ] + }, + { + "cell_type": "code", + "execution_count": 599, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def error_func(params, data):\n", + " system = make_system(*params,data)\n", + " \n", + " run_odeint(min_model1,slope_function)\n", + " \n", + " error = min_model1.results.I - data.insulin\n", + " \n", + " return error" + ] + }, + { + "cell_type": "code", + "execution_count": 600, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[10, 0.25, 0.004, 80]" + ] + }, + "execution_count": 600, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "params = [I0, k, gamma, G_T]\n", + "params" + ] + }, + { + "cell_type": "code", + "execution_count": 601, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "time\n", + "0 349.000000\n", + "2 193.652719\n", + "4 7.739127\n", + "6 4.505898\n", + "8 10.636133\n", + "10 -3.234670\n", + "12 -7.946879\n", + "14 -8.010268\n", + "16 -3.593411\n", + "19 1.811071\n", + "22 2.581632\n", + "27 7.014287\n", + "32 3.758216\n", + "42 8.932902\n", + "52 9.554216\n", + "62 0.767804\n", + "72 -3.217947\n", + "82 -10.382598\n", + "92 -7.401702\n", + "102 -9.056569\n", + "122 -3.584244\n", + "142 -3.586427\n", + "162 3.170251\n", + "182 18.702699\n", + "dtype: float64" + ] + }, + "execution_count": 601, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "error_func(params, data)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Use `fit_leastsq` to find the parameters that best fit the data. Make a `System` object with those parameters, run it, and plot the results along with the measurements." + ] + }, + { + "cell_type": "code", + "execution_count": 603, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "modsim.py: scipy.optimize.leastsq ran successfully\n", + " and returned the following message:\n", + "The cosine of the angle between func(x) and any column of the\n", + " Jacobian is at most 0.000000 in absolute value\n" + ] + } + ], + "source": [ + "best_params = fit_leastsq(error_func,params,data)" + ] + }, + { + "cell_type": "code", + "execution_count": 604, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system = make_system(*best_params, data)" + ] + }, + { + "cell_type": "code", + "execution_count": 606, + "metadata": {}, + "outputs": [], + "source": [ + "run_odeint(min_model1, slope_function)" + ] + }, + { + "cell_type": "code", + "execution_count": 607, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\ProgramData\\Miniconda3\\lib\\site-packages\\matplotlib\\axes\\_axes.py:545: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.\n", + " warnings.warn(\"No labelled objects found. \"\n" + ] + }, + { + "data": { + "image/png": "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\n0+eczulzTmd+9XzVZkRCisfjHGk+kqyN7Dyxk+Mtx4e97vzF5w9YQHc4SixDyOdf97lKXXcsm+O9\nsol5uHv7w/mGAAAQL0lEQVRkI9dmwpJICfOr5zO/ej7nLToPgM7uzuSQ61frXuWVY6/Q3NGcvKYn\n3sOO4zvYcXwHP9j2A2qm1CSTzKrZq7Tls8gQeuI97GvYx84TQSLZdWJXxibqVCWREhZPX8zKWStZ\nMXMFK2auyKmm0kuJZQj5+ut+LI1VzPloJoxFYyytWcrSmqVcvPRieuI97Knfw5ajW9hydAt76/f2\nO7+utY5n9j7DM3ufIVoSZeXMlclEc+rUU1WbkUmts7uT3fW72Xl8JztP7OS1utcyNj+nikVjLK9Z\nzoqZK1g5ayVLZyylvLR8xLEosQwjH3/dj7WxiDmfzYSZ+mqusqtobG9k69GtbDm6ha3HttLa2Zq8\nprunOznq7N9f+Xfau9s52XGSkkgJq2av4so3XDnu/t1EctHS2ZKsiew8vpO9DXuHnSJQVVaVrIms\nnLmSRdMXUVqS/zSgxCKh5KuZcLi+mnMXncu5i86lJ97Da3WvseXoFl4+8jL7G/cnr0mf9Lnl6BZ+\n+upP+dM1f8qVdiVLa5aOyv88ImOpvq2+X//IwaaDxOPxIa+pmVLDypkrk01b86bOG5Oavf5vyyDf\nkyInonw1uWXbV9Pbkb9i5gres+o91LfVJ5vMHnjxgX7XxonT2N7Iw1sexo87ZdEyVs5ayarZq1g9\ne/WQQ5on4r/9RPxvmuji8ThHm48mR2vtOrEruYHgUE6deiorZ61k5cwgkcyqnDUG0Q6kxJJmtCZF\nTkT5aHIL21czo2IG5y8+n/MXn8/vD/+e+tZ66trqONF6gubOYABA72tHdwdbj25l69Fg+4Kqsips\nlrH6lNWsmr2KUypPIRKJ5PXfvlg+zPX7XLzi8TitXa3UtdZR11aXfD3YdDCnjvbe/pHlNcupLq8e\no+iHpsSSZiwmRUqffPTVLKheAPEg2SydsZTOnk7q2+qJEGF25ewBf+k1dzSz6dAmNh3aBASrTa+a\nvYrf7PsNnd2dAyah5vpvn68P83wkp2L8fS6WpDuasfQmjROtJ6hvq6euta7vfVvf+9TO9eEWh41F\nYyyrWZasjSyrWZaXjvbBjOTZKLGkKdSkyMkqH3016feIlcQ4pfIUbnzzjaxdsJbaltpkR//22u0D\n/hI80XqC9fvWJzdaq4xVUlNRw4yKGcyomJHzv30+PszzlZyK7fe5mGpQYWPpXe4otZaR6bWju2PQ\ne6TLtDjsrrpdrJy5kncufycrZq5g8fTFY9ZXONJ/JyWWNIWaFDlZ5aOvZrh7zK6cnWw2i8fjHGw6\nmEwyO47voK2rDYDKWCXNnc20dLbQ0tnCgaYDRIiwcNpCfrzjx6yevZolM5YQLYkOGU8+PszzVdMo\ntt/nYqpBZYolTpzH/DHmVc/LW9IYSlm0jJopNext2MvcqrmUR8upKK2guryaylgl1eXVXLr80rz8\nrFyM9N9pQiUWM4sCdwDXA9XAk8BN7n5kqOtSFXJS5GSVj76abO8RiURYMG0BC6Yt4JJll9Dd083e\nhr1sr91ORWkFv3jtF/TQtxpAnDhVsSp+5D/iR/4jKkoreMOsN7DmlDWsmr0q4/yZfHyY56umUSy/\nz/F4nDhx9jfup7unmzhxeuI9yeO76nZxsOkg3T3d9MR76I4Hrz3xHrp7upPfp5dn8336vXrLf7n7\nl0EMxOns6aS9q5327vZkx/lI9SaNmooaZk6ZyYyKGcycMpOaKTXJ91NKpxCJRPjIjz8yYBUKKFzN\ncqS/fxMqsQBfBK4DrgWOA/8APAKcn+0NxuOkSAkvWhJlWc0yltUs44qVV7B+33oe3vIwO47voKun\ni2ll0/q1c7d1tfHSkZd46chLQNCvs/qU1ayevZrVp6xmWvm0vHyYjyQ5xeNxunq66OjuYPnM5bxn\n1Xv4+Ws/5/DJw8yunM15i84jFo3xu4O/o6uni+6ebrp6upJf3fG+7wcr6+4JtlzoLU+9ZrDr4vE4\nmw5tSg6qSDU1NpVbn7416+eTD00dTYPGMpzy0nJqKmqSiSPTa2/SyEax1SxHGk9kuHHQ44WZlQG1\nwMfc/YHEsSXAbuDt7j5g9cbe8qeeeoqFCxeOXbAybjS1N+HHnVeOvcK2Y9v6bSWdyYJpC1g9ezXd\n8W62HdvG0eajyT9O3jr/rXT1dNHZ00lnd+eQr5sPb+bR7Y/2/aWd+Kt73eJ1LJy2kPbudjq6O2jr\naqOjuyP513Z7V3A801+/xSC9L6HXqlmrct4JdbRiedOcN7Fq9qqMyaK35pFL0shGep9Gr95+wrE2\nXDz79+/nkksuAVjq7nvSz5tINZazCJq/nu494O57zGwPsA4YuCywyDCqy6t56/y38tb5byUejwcb\n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\nis3XAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(min_model1.results,'g-')\n", + "plot(data.insulin,'go')\n", + "\n", + "decorate(xlabel='Time (min)',\n", + " ylabel='Concentration ($\\mu$U/mL)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Using the best parameters, estimate the sensitivity to glucose of the first and second phase pancreatic responsivity:\n", + "\n", + "$ \\phi_1 = \\frac{I_{max} - I_b}{k (G_0 - G_b)} $\n", + "\n", + "$ \\phi_2 = \\gamma \\times 10^4 $" + ] + }, + { + "cell_type": "code", + "execution_count": 634, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(130, 11)" + ] + }, + "execution_count": 634, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "I_max=data.insulin.max()\n", + "I = data.insulin[0]\n", + "I_max,I" + ] + }, + { + "cell_type": "code", + "execution_count": 635, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(350, 92)" + ] + }, + "execution_count": 635, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "G_max = data.glucose.max()\n", + "G = data.glucose[0]\n", + "G_max, G" + ] + }, + { + "cell_type": "code", + "execution_count": 636, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "92\n", + "290\n", + "130\n", + "11\n" + ] + } + ], + "source": [ + "print (G)\n", + "print (G0)\n", + "print (I_max)\n", + "print (I)" + ] + }, + { + "cell_type": "code", + "execution_count": 637, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.404040404040404" + ] + }, + "execution_count": 637, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phase1 = (I_max - I) / k / (G0 - G)\n", + "phase1" + ] + }, + { + "cell_type": "code", + "execution_count": 638, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "40.0" + ] + }, + "execution_count": 638, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "phase2 = gamma * 1e4\n", + "phase2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/chap09mine.ipynb b/code/chap09mine.ipynb new file mode 100644 index 00000000..6d40bcf3 --- /dev/null +++ b/code/chap09mine.ipynb @@ -0,0 +1,1844 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 9: Projectiles\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# tempo switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "### Dropping pennies\n", + "\n", + "I'll start by getting the units we'll need from Pint." + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "m = UNITS.meter\n", + "s = UNITS.second\n", + "kg = UNITS.kilogram" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "And defining the initial state." + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
y381 meter
v0.0 meter / second
\n", + "
" + ], + "text/plain": [ + "y 381 meter\n", + "v 0.0 meter / second\n", + "dtype: object" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(y=381 * m, \n", + " v=0 * m/s)\n", + "init" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Acceleration due to gravity is about 9.8 m / s$^2$." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "g = 9.8 * m/s**2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "When we call `odeint`, we need an array of timestamps where we want to compute the solution.\n", + "\n", + "I'll start with a duration of 10 seconds." + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "[ 0. 0.71428571 1.42857143 2.14285714 2.85714286 3.57142857 4.28571429 5. 5.71428571 6.42857143 7.14285714 7.85714286 8.57142857 9.28571429 10. ] second" + ], + "text/latex": [ + "$[ 0. 0.71428571 1.42857143 2.14285714 2.85714286 3.57142857 4.28571429 5. 5.71428571 6.42857143 7.14285714 7.85714286 8.57142857 9.28571429 10. ] second$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "duration = 10 * s\n", + "ts = linspace(0, duration, 15)\n", + "ts" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Now we make a `System` object." + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system = System(init=init, g=g, ts=ts)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "And define the slope function." + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": {}, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " \"\"\"Compute derivatives of the state.\n", + " \n", + " state: position, velocity\n", + " t: time\n", + " system: System object containing `g`\n", + " \n", + " returns: derivatives of y and v\n", + " \"\"\"\n", + " y, v = state\n", + " unpack(system) \n", + " \n", + " \n", + "\n", + " dydt = v\n", + " dvdt = -g\n", + " \n", + " return dydt, dvdt" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "It's always a good idea to test the slope function with the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 meter / second\n", + "-9.8 meter / second ** 2\n" + ] + } + ], + "source": [ + "dydt, dvdt = slope_func(init, 0, system)\n", + "print(dydt)\n", + "print(dvdt)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Now we're ready to run `odeint`" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": {}, + "outputs": [], + "source": [ + "run_odeint(system, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Here's what the results look like." + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
yv
0.000381.0000000.0000
0.191380.821243-1.8718
0.382380.284972-3.7436
0.573379.391188-5.6154
0.764378.139890-7.4872
\n", + "
" + ], + "text/plain": [ + " y v\n", + "0.000 381.000000 0.0000\n", + "0.191 380.821243 -1.8718\n", + "0.382 380.284972 -3.7436\n", + "0.573 379.391188 -5.6154\n", + "0.764 378.139890 -7.4872" + ] + }, + "execution_count": 129, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 130, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
yv
18.336-1266.423590-179.6928
18.527-1300.923672-181.5646
18.718-1335.781268-183.4364
18.909-1370.996377-185.3082
19.100-1406.569000-187.1800
\n", + "
" + ], + "text/plain": [ + " y v\n", + "18.336 -1266.423590 -179.6928\n", + "18.527 -1300.923672 -181.5646\n", + "18.718 -1335.781268 -183.4364\n", + "18.909 -1370.996377 -185.3082\n", + "19.100 -1406.569000 -187.1800" + ] + }, + "execution_count": 130, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "The following function plots the results." + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_position(results):\n", + " \"\"\"Plot the results.\n", + " \n", + " results: DataFrame with position, `y`\n", + " \"\"\"\n", + " newfig()\n", + " plot(results.y, label='y')\n", + " \n", + " decorate(xlabel='Time (s)',\n", + " ylabel='Position (m)')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Here's what it looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap09-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nve99j9dee419+/axefNmsrKyxvx9lIQkIng8bubMSGPOjDTaO7o5d7mB9y/VUVXf2rtPY0snx969\nyvHTFczOS2Xp3Cxm5aRoMYPIKGRlZbF582b27dvH/v37+frXvz4u76MkJBHHGx/DsnnTWDZvGjUN\nbbxfXMeZ0jo6Op3mfv5AgOLyaxSXXyM1KY6lc6axuCgTb7w+7iIjsWvXLr785S/j9XrZunXruLyH\n/ldKRJuWnsCmlTNYd0seF8uucfpiLWXVzb3bG1s6OfJOOcffq2D+zHSWzZvG9IzEMEYsEjm2bt2K\n1+vl/vvvJy5ufOo+KgnJlBDjcbNgVgYLZmVQ39TO6Yu1vH+pb3bU7fPz/qU63r9UR15WEssXZDMn\nPw23LoQVGVRzczMtLS3s2rVr3N5DSUimnIwULxuXz2Dt0jzOlTbw9oXq69qYX61t4erRFlIS41g2\nbxpL5mQRH+sZ4hVFokt9fT3Hjx/nqaeeYunSpSxZsmTc3ktJSKasGI+bRUWZLCzMoLKulbfP13D+\nckNvle+m1k6OvF3OifcrWVyUyS3zsklNUqsJke7ubv7u7/6O6dOn8+ijj47reykJyZTncrl6W5yv\nvyWfdy/UcPpiLW0dTu26zi4fb52t5u1zNcyfmc5KM51p6QlhjlokfLKzszlx4sSEvJeSkESV5IRY\n1i7NY9WiHGxJPafOVVPX2A44q+psaT22tJ5ZOSnctiiH/GmqVycynpSEJCrFeNwsmZPF4qJMSiua\nOHm2iitVfavqSiubKK1sIjcridsWTqcwL1XJSGQcKAlJVHO5XMzOS2V2XipVda2cPFvF+SvXeksA\nVdS2sPtwMdPSE1i1KIe5M9KUjETGkJKQSND0zETuXlvI7U0dnDxbxZlLdb1N+Goa2thz9BKZqV5W\nLcphXkG6lneLjAEVMBXpJz0lnm23zeST9y52Ck+GdHmta2xn32sl/PoFy9nS+t4adiIyOkpCIoNI\nTohl4/IZfPLeRdy2MIe4kGuJQpPR+SsNquAtMko6HCdyA4neWNYty2PlgmzeOlfN2+dr6OxyKjHU\nNbaz5+glstMTWLMkVwsYREZISUhkmLzxMaxdmseK+R9MRtUNbew+XExeVhJrl+UxIzs5zNGKRAYd\njhMZoZ5k9Kl7FnGrmX7dOaOrtS08+cp5nn71wnVtJkRkYJoJiYySNz6G9bfks2JBNm+8X8W7F2t6\n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\nrw4A7dtq5AAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_position(system.results)\n", + "savefig('chap09-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "**Exercise:** Add a print statement to `slope_func` to print the value of `t` each time it's called. What can we infer about how `odeint` works, based on the results?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "**Exercise:** Change the value of `dt` and run the solver again. What effect does it have on the results?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Onto the sidewalk\n", + "\n", + "Here's the code again to set up the `System` object." + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(duration, v_init=8):\n", + " \"\"\"Make a system object.\n", + " \n", + " duration: time of simulation in seconds\n", + " v_init: initial velocity, dimensionless\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " init = State(y=381 * m, v=v_init * m / s)\n", + "\n", + " g = 9.8 * m/s**2\n", + " ts = linspace(0, duration, 11)\n", + " return System(init=init, g=g, ts=ts)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And run the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 134, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
yv
0.0381.08.0
1.0384.1-1.8
2.0377.4-11.6
3.0360.9-21.4
4.0334.6-31.2
5.0298.5-41.0
6.0252.6-50.8
7.0196.9-60.6
8.0131.4-70.4
9.056.1-80.2
10.0-29.0-90.0
\n", + "
" + ], + "text/plain": [ + " y v\n", + "0.0 381.0 8.0\n", + "1.0 384.1 -1.8\n", + "2.0 377.4 -11.6\n", + "3.0 360.9 -21.4\n", + "4.0 334.6 -31.2\n", + "5.0 298.5 -41.0\n", + "6.0 252.6 -50.8\n", + "7.0 196.9 -60.6\n", + "8.0 131.4 -70.4\n", + "9.0 56.1 -80.2\n", + "10.0 -29.0 -90.0" + ] + }, + "execution_count": 134, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = make_system(10)\n", + "run_odeint(system, slope_func)\n", + "system.results" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "To figure out when the penny hit the sidewalk, we use `interp_inverse`, which return a function that maps from height to time." + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "y = system.results.y\n", + "T = interp_inverse(y, kind='cubic')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "`T(0)` interpolates the time when the height was 0." + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(9.663930979401997)" + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "T_sidewalk = T(0)\n", + "T_sidewalk" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "We can compare that to the exact result. Without air resistance, we have\n", + "\n", + "$v = -g t$\n", + "\n", + "and\n", + "\n", + "$y = 381 - g t^2 / 2$\n", + "\n", + "Setting $y=0$ and solving for $t$ yields\n", + "\n", + "$t = \\sqrt{\\frac{2 y_{init}}{g}}$" + ] + }, + { + "cell_type": "code", + "execution_count": 137, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "8.817885349720552 second" + ], + "text/latex": [ + "$8.817885349720552 second$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 137, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sqrt(2 * init.y / g)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "The estimate is accurate to 4 decimal places." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "We can double-check by running the simulation for the estimated flight time." + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [], + "source": [ + "system = make_system(duration=T_sidewalk)\n", + "run_odeint(system, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "And checking the final state." + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def final_state(results):\n", + " \"\"\"Returns the final position and velocity, with units.\n", + " \n", + " results: TimeFrame with y and v.\n", + " \n", + " returns: y, v at t_end\n", + " \"\"\"\n", + " t_end = results.index[-1]\n", + " y, v = results.loc[t_end]\n", + " return y*m, v*m/s" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "As expected, the final height is close to 0." + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "0.6927940947343387 meter" + ], + "text/latex": [ + "$0.6927940947343387 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 140, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_final, v_final = final_state(system.results)\n", + "y_final" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "And we can check the final velocity." + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "-86.70652359813957 meter/second" + ], + "text/latex": [ + "$-86.70652359813957 \\frac{meter}{second}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 141, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "v_final" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "And convert to km/h" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "-312.14348495330245 kilometer/hour" + ], + "text/latex": [ + "$-312.14348495330245 \\frac{kilometer}{hour}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 142, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "km = UNITS.kilometer\n", + "h = UNITS.hour\n", + "v_final.to(km / h)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "If there were no air resistance, the penny would hit the sidewalk (or someone's head) at more than 300 km/h.\n", + "\n", + "So it's a good thing there is air resistance." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Try changing the initial velocity and see what effect it has on the time to hot the sidewalk. Sweep a range of values for the initial velocity, from 0 to 25 m/s, and plot `T_sidewalk` as a function of initial velocity. You might find the following function useful.\n", + "\n", + "Things might go horribly wrong for the larger initial velocities. What's going on?" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def flight_time(system):\n", + " \"\"\"Simulates the system and computes flight time.\n", + " \n", + " Uses cubic interpolation.\n", + " \n", + " system: System object\n", + " \n", + " returns: flight time in seconds\n", + " \"\"\"\n", + " run_odeint(system, slope_func)\n", + " y = system.results.y\n", + " inverse = Series(y.index, index=y.values)\n", + " T = interpolate(inverse, kind='cubic')\n", + " T_sidewalk = T(0)\n", + " return T_sidewalk * s" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nDQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "v_range=linrange(0,25,1)\n", + "duration = 10\n", + "\n", + "\n", + "for v_init in v_range:\n", + " system = make_system(duration, v_init)\n", + " run_odeint(system, slope_func)\n", + " postion=system.results.y\n", + " inverse = Series(postion.index, index=postion.values)\n", + " T = interpolate(inverse, kind='cubic')\n", + " T_sidewalk = T(0)\n", + " plot(v_init,T_sidewalk,'b-')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### With air resistance" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next we'll add air resistance using the [drag equation](https://en.wikipedia.org/wiki/Drag_equation)\n", + "\n", + "First I'll create a `Condition` object to contain the quantities we'll need." + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "condition = Condition(height = 381 * m,\n", + " v_init = 0 * m / s,\n", + " g = 9.8 * m/s**2,\n", + " mass = 2.5e-3 * kg,\n", + " diameter = 19e-3 * m,\n", + " rho = 1.2 * kg/m**3,\n", + " v_term = 18 * m / s,\n", + " duration = 30 * s)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Now here's a version of `make_system` that takes a `Condition` object as a parameter.\n", + "\n", + "`make_system` uses the given value of `v_term` to compute the drag coefficient `C_d`." + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(condition):\n", + " \"\"\"Makes a System object for the given conditions.\n", + " \n", + " condition: Condition with height, g, mass, diameter, \n", + " rho, v_term, and duration\n", + " \n", + " returns: System with init, g, mass, rho, C_d, area, and ts\n", + " \"\"\"\n", + " unpack(condition)\n", + " \n", + " init = State(y=height, v=v_init)\n", + " area = np.pi * (diameter/2)**2\n", + " C_d = 2 * mass * g / (rho * area * v_term**2)\n", + " ts = linspace(0, duration, 101)\n", + " \n", + " return System(init=init, g=g, mass=mass, rho=rho,\n", + " C_d=C_d, area=area, ts=ts)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Let's make a `System`" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
inity 381 meter\n", + "v 0.0 meter / secon...
g9.8 meter / second ** 2
mass0.0025 kilogram
rho1.2 kilogram / meter ** 3
C_d0.4445009981135434 dimensionless
area0.0002835287369864788 meter ** 2
ts[0.0 second, 0.3 second, 0.6 second, 0.8999999...
\n", + "
" + ], + "text/plain": [ + "init y 381 meter\n", + "v 0.0 meter / secon...\n", + "g 9.8 meter / second ** 2\n", + "mass 0.0025 kilogram\n", + "rho 1.2 kilogram / meter ** 3\n", + "C_d 0.4445009981135434 dimensionless\n", + "area 0.0002835287369864788 meter ** 2\n", + "ts [0.0 second, 0.3 second, 0.6 second, 0.8999999...\n", + "dtype: object" + ] + }, + "execution_count": 104, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = make_system(condition)\n", + "system" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Here's the slope function, including acceleration due to gravity and drag." + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " \"\"\"Compute derivatives of the state.\n", + " \n", + " state: position, velocity\n", + " t: time\n", + " system: System object containing g, rho,\n", + " C_d, area, and mass\n", + " \n", + " returns: derivatives of y and v\n", + " \"\"\"\n", + " y, v = state\n", + " unpack(system)\n", + " \n", + " f_drag = rho * v**2 * C_d * area / 2\n", + " a_drag = f_drag / mass\n", + " \n", + " dydt = v\n", + " dvdt = -g + a_drag\n", + " \n", + " return dydt, dvdt" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "As always, let's test the slope function with the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(, )" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slope_func(system.init, 0, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "And then run the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "run_odeint(system, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "First check that the simulation ran long enough for the penny to land." + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " )" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_state(system.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Then compute the flight time." + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(22.439794207078908)" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = system.results.y\n", + "inverse = Series(y.index, index=y.values)\n", + "T = interpolate(inverse, kind='cubic')\n", + "T_sidewalk = T(0)\n", + "T_sidewalk" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Setting the duration to the computed flight time, we can check the final conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "condition.set(duration=T_sidewalk)\n", + "system = make_system(condition)\n", + "run_odeint(system, slope_func)\n", + "y_final, v_final = final_state(system.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "The final height is close to 0, as expected. And the final velocity is close to the given terminal velocity." + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " )" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y_final, v_final" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "Here's the plot of position as a function of time." + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap09-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nA2vOLkZhKu7CAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_position(system.results)\n", + "savefig('chap09-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And velocity as a function of time:" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_velocity(results):\n", + " \"\"\"Plot the results.\n", + " \n", + " results: DataFrame with velocity, v\n", + " \"\"\"\n", + " newfig()\n", + " plot(results.v, label='v')\n", + " \n", + " decorate(xlabel='Time (s)',\n", + " ylabel='Velocity (m/2)')" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_velocity(system.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "collapsed": true + }, + "source": [ + "From an initial velocity of 0, the penny accelerates downward until it reaches terminal velocity; after that, velocity is constant." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Run the simulation with an initial velocity, downward, that exceeds the penny's terminal velocity. Hint: use `condition.set`.\n", + "\n", + "What do you expect to happen? Plot velocity and position as a function of time, and see if they are consistent with your prediction." + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "condition.set(v_init=-45 * m/s)\n", + "system = make_system(condition)\n", + "run_odeint(system, slope_func)\n", + "plot_position(system.results)" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_velocity(system.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dropping quarters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Suppose we drop a quarter from the Empire State Building and find that its flight time is 19.1 seconds. We can use this measurement to estimate the coefficient of drag.\n", + "\n", + "Here's a `Condition` object with the relevant parameters from\n", + "https://en.wikipedia.org/wiki/Quarter_(United_States_coin)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "condition = Condition(height = 381 * m,\n", + " v_init = 0 * m / s,\n", + " g = 9.8 * m/s**2,\n", + " mass = 5.67e-3 * kg,\n", + " diameter = 24.26e-3 * m,\n", + " rho = 1.2 * kg/m**3,\n", + " duration = 19.1 * s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's a modified version of `make_system`" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(condition):\n", + " \"\"\"Makes a System object for the given conditions.\n", + " \n", + " condition: Condition with height, v_init, g, mass, diameter, \n", + " rho, C_d, and duration\n", + " \n", + " returns: System with init, g, mass, rho, C_d, area, and ts\n", + " \"\"\"\n", + " unpack(condition)\n", + " \n", + " init = State(y=height, v=v_init)\n", + " area = np.pi * (diameter/2)**2\n", + " ts = linspace(0, duration, 101)\n", + " \n", + " return System(init=init, g=g, mass=mass, rho=rho,\n", + " C_d=C_d, area=area, ts=ts)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can run the simulation with an initial guess of `C_d=0.4`." + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "condition.set(C_d=0.4)\n", + "system = make_system(condition)\n", + "run_odeint(system, slope_func)\n", + "plot_position(system.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The final height is -11 meters, which means our guess was too low (we need more drag to slow the quarter down)." + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " )" + ] + }, + "execution_count": 121, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "final_state(system.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`height_func` takes a hypothetical value of `C_d` and returns the height after 19.1 seconds." + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def height_func(C_d, condition):\n", + " \"\"\"Final height as a function of C_d.\n", + " \n", + " C_d: drag coefficient\n", + " condition: Condition object\n", + " \n", + " returns: height in m\n", + " \"\"\"\n", + " condition.set(C_d=C_d)\n", + " system = make_system(condition)\n", + " run_odeint(system, slope_func)\n", + " y, v = final_state(system.results)\n", + " return y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we run it with `C_d=0.4`, we get -11 meters again." + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "-11.034779626277231 meter" + ], + "text/latex": [ + "$-11.034779626277231 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 123, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "height_func(0.4, condition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can use `fsolve` to find the value of `C_d` that makes the final height 0." + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.42587017])" + ] + }, + "execution_count": 124, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "solution = fsolve(height_func, 0.4, condition)\n", + "solution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plugging in the estimated value, we can run the simulation again to get terminal velocity." + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " )" + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "condition.set(C_d=solution)\n", + "system = make_system(condition)\n", + "run_odeint(system, slope_func)\n", + "final_state(system.results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, the terminal velocity of the quarter is higher than that of the penny, but we should not take this result seriously because the measurements we used are not real; I made them up." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/chap10mine.ipynb b/code/chap10mine.ipynb new file mode 100644 index 00000000..87568076 --- /dev/null +++ b/code/chap10mine.ipynb @@ -0,0 +1,6908 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 10: Vectors\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# tempo switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib notebook\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Vectors" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A `Vector` object is like a combination of a NumPy array and a Pint Quantity.\n", + "\n", + "I'll start by grabbing the units we'll need." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "m = UNITS.meter\n", + "s = UNITS.second\n", + "kg = UNITS.kilogram" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a two dimensional `Vector` in meters." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "A = Vector(3, 4) * m" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can access the elements by name." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "3.0 meter" + ], + "text/latex": [ + "$3.0 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A.x" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "4.0 meter" + ], + "text/latex": [ + "$4.0 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A.y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The magnitude is the length of the vector." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "5.0 meter" + ], + "text/latex": [ + "$5.0 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A.mag" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The angle is the number of radians between the vector and the positive x axis." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "0.9272952180016122 radian" + ], + "text/latex": [ + "$0.9272952180016122 radian$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A.angle" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we make another `Vector` with the same units," + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "B = Vector(1, 2) * m" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can add `Vector` objects like this" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "[ 4. 6.] meter" + ], + "text/latex": [ + "$[ 4. 6.] meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A + B" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And substract like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "[ 2. 2.] meter" + ], + "text/latex": [ + "$[ 2. 2.] meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A - B" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can compute the Euclidean distance between two Vectors." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "2.8284271247461903 meter" + ], + "text/latex": [ + "$2.8284271247461903 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A.dist(B)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the difference in angle" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "-0.17985349979247822 radian" + ], + "text/latex": [ + "$-0.17985349979247822 radian$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "A.diff_angle(B)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we are given the magnitude and angle of a vector, what we have is the representation of the vector in polar coordinates." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "mag = A.mag\n", + "angle = A.angle" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use `pol2cart` to convert from polar to Cartesian coordinates, and then use the Cartesian coordinates to make a `Vector` object.\n", + "\n", + "In this example, the `Vector` we get should have the same components as `A`." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "[ 3. 4.] meter" + ], + "text/latex": [ + "$[ 3. 4.] meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x, y = pol2cart(angle, mag)\n", + "Vector(x, y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Create a `Vector` named `a_grav` that represents acceleration due to gravity, with x component 0 and y component $-9.8$ meters / second$^2$." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "[ 0. -9.8] meter/second2" + ], + "text/latex": [ + "$[ 0. -9.8] \\frac{meter}{second^{2}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a_grav=Vector(0,-9.8*m/(s*s))\n", + "a_grav" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Degrees and radians\n", + "\n", + "Pint provides units to represent degree and radians." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "degree = UNITS.degree\n", + "radian = UNITS.radian" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you have an angle in degrees," + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "45 degree" + ], + "text/latex": [ + "$45 degree$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "angle = 45 * degree\n", + "angle" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can convert to radians." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "0.7853981633974483 radian" + ], + "text/latex": [ + "$0.7853981633974483 radian$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "angle_rad = angle.to(radian)\n", + "angle_rad" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If it's already in radians, `to` does the right thing." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "0.7853981633974483 radian" + ], + "text/latex": [ + "$0.7853981633974483 radian$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "angle_rad.to(radian)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also convert from radians to degrees." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "45.0 degree" + ], + "text/latex": [ + "$45.0 degree$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "angle_rad.to(degree)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As an alterative, you can use `np.deg2rad`, which works with Pint quantities, but it also works with simple numbers and NumPy arrays:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "0.7853981633974483 radian" + ], + "text/latex": [ + "$0.7853981633974483 radian$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.deg2rad(angle)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Create a `Vector` named `a_force` that represents acceleration due to a force of 0.5 Newton applied to an object with mass 0.3 kilograms, in a direction 45 degrees up from the positive x-axis.\n", + "\n", + "Add `a_force` to `a_drag` from the previous exercise. If that addition succeeds, that means that the units are compatible. Confirm that the total acceleration seems to make sense." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "[ 1.1785113 1.1785113] newton/kilogram" + ], + "text/latex": [ + "$[ 1.1785113 1.1785113] \\frac{newton}{kilogram}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "n = UNITS.newtons\n", + "mag = .5 * n\n", + "angle = 45 * degree\n", + "angle_theta=angle = angle.to(radian)\n", + "x, y = pol2cart(angle, mag)\n", + "force = Vector(x,y)\n", + "obj_mass=.3 * kg\n", + "a_force=force/obj_mass\n", + "a_force" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "[ 1.1785113 -8.6214887] meter/second2" + ], + "text/latex": [ + "$[ 1.1785113 -8.6214887] \\frac{meter}{second^{2}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a_grav + a_force" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Baseball" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a `Condition` object that contains the parameters for the Manny Ramirez problem." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "condition = Condition(x = 0 * m, \n", + " y = 1 * m,\n", + " g = 9.8 * m/s**2,\n", + " mass = 145e-3 * kg,\n", + " diameter = 73e-3 * m,\n", + " rho = 1.2 * kg/m**3,\n", + " C_d = 0.3,\n", + " angle = 75 * degree,\n", + " velocity = 40 * m / s,\n", + " duration = 5.1 * s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's the function that uses the `Condition` object to make a `System` object." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(condition):\n", + " \"\"\"Make a system object.\n", + " \n", + " condition: Condition object with angle, velocity, x, y,\n", + " diameter, duration, g, mass, rho, and C_d\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " unpack(condition)\n", + " \n", + " # convert angle to degrees\n", + " theta = np.deg2rad(angle)\n", + " \n", + " # compute x and y components of velocity\n", + " vx, vy = pol2cart(theta, velocity)\n", + " \n", + " # make the initial state\n", + " init = State(x=x, y=y, vx=vx, vy=vy)\n", + " \n", + " # compute area from diameter\n", + " area = np.pi * (diameter/2)**2\n", + " \n", + " # compute timestamps\n", + " ts = linspace(0, duration, 101)\n", + " \n", + " return System(init=init, g=g, mass=mass, \n", + " area=area, rho=rho, C_d=C_d, ts=ts)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we use it:" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
initx 0 meter\n", + "y ...
g9.8 meter / second ** 2
mass0.145 kilogram
area0.004185386812745002 meter ** 2
rho1.2 kilogram / meter ** 3
C_d0.3
ts[0.0 second, 0.051 second, 0.102 second, 0.153...
\n", + "
" + ], + "text/plain": [ + "init x 0 meter\n", + "y ...\n", + "g 9.8 meter / second ** 2\n", + "mass 0.145 kilogram\n", + "area 0.004185386812745002 meter ** 2\n", + "rho 1.2 kilogram / meter ** 3\n", + "C_d 0.3\n", + "ts [0.0 second, 0.051 second, 0.102 second, 0.153...\n", + "dtype: object" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = make_system(condition)\n", + "system" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the slope function that computes acceleration due to gravity and drag." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " \"\"\"Computes derivatives of the state variables.\n", + " \n", + " state: State (x, y, x velocity, y velocity)\n", + " t: time\n", + " system: System object with g, rho, C_d, area, mass\n", + " \n", + " returns: sequence (vx, vy, ax, ay)\n", + " \"\"\"\n", + " x, y, vx, vy = state\n", + " unpack(system)\n", + " \n", + " a_grav = Vector(0, -g)\n", + "\n", + " v = Vector(vx, vy)\n", + " \n", + " f_drag = -rho * v.mag * v * C_d * area / 2\n", + " a_drag = f_drag / mass\n", + " \n", + " a = a_grav + a_drag\n", + " \n", + " return vx, vy, a.x, a.y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Always test the slope function with the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " ,\n", + " ,\n", + " )" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slope_func(system.init, 0, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run `odeint`" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "run_odeint(system, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are the first few time steps." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
xyvxvy
0.0000.0000001.00000010.35276238.637033
0.0510.5252232.94746010.24483337.737037
0.1021.0450334.84948610.14041436.855149
0.1531.5596036.70698010.03937135.990594
0.2042.0691048.5208089.94157735.142638
\n", + "
" + ], + "text/plain": [ + " x y vx vy\n", + "0.000 0.000000 1.000000 10.352762 38.637033\n", + "0.051 0.525223 2.947460 10.244833 37.737037\n", + "0.102 1.045033 4.849486 10.140414 36.855149\n", + "0.153 1.559603 6.706980 10.039371 35.990594\n", + "0.204 2.069104 8.520808 9.941577 35.142638" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the last few. The last value of `y` is negative, indicating that the ball hit the ground before the end of the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
xyvxvy
4.89639.03384842.3252216.726804-15.869290
4.94739.37612741.5050216.695814-16.294823
4.99839.71681240.6632116.664295-16.716737
5.04940.05587639.7999766.632259-17.134973
5.10040.39329438.9155076.599718-17.549471
\n", + "
" + ], + "text/plain": [ + " x y vx vy\n", + "4.896 39.033848 42.325221 6.726804 -15.869290\n", + "4.947 39.376127 41.505021 6.695814 -16.294823\n", + "4.998 39.716812 40.663211 6.664295 -16.716737\n", + "5.049 40.055876 39.799976 6.632259 -17.134973\n", + "5.100 40.393294 38.915507 6.599718 -17.549471" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Visualizing the results\n", + "\n", + "We can extract the x and y components as `Series` objects." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "xs = system.results.x\n", + "ys = system.results.y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The simplest way to visualize the results is to plot x and y as functions of time." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "plot(vxs, label='vx')\n", + "plot(vys, label='vy')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Velocity (m/s)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another way to visualize the results is to plot y versus x. The result is the trajectory of the ball through its plane of motion." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "newfig()\n", + "decorate(xlabel='x position (m)',\n", + " ylabel='y position (m)',\n", + " xlim=[0, 105],\n", + " ylim=[-5, 35],\n", + " legend=False)\n", + "\n", + "for x, y in zip(xs, ys):\n", + " plot(x, y, 'bo', update=True)\n", + " sleep(0.01)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a function that encapsulates that code and runs the animation in (approximately) real time." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def animate2d(xs, ys, speedup=1):\n", + " \"\"\"Animate the results of a projectile simulation.\n", + " \n", + " xs: x position as a function of time\n", + " ys: y position as a function of time\n", + " \n", + " speedup: how much to divide `dt` by\n", + " \"\"\"\n", + " # get the time intervals between elements\n", + " ts = xs.index\n", + " dts = np.diff(ts)\n", + " dts = np.append(dts, 0)\n", + "\n", + " # decorate the plot\n", + " newfig()\n", + " decorate(xlabel='x position (m)',\n", + " ylabel='y position (m)',\n", + " xlim=[xs.min(), xs.max()],\n", + " ylim=[ys.min(), ys.max()],\n", + " legend=False)\n", + "\n", + " # loop through the values\n", + " for x, y, dt in zip(xs, ys, dts):\n", + " plot(x, y, 'bo', update=True)\n", + " sleep(dt / speedup)" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support.' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " this.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
')\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " // select the cell after this one\n", + " var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n", + " IPython.notebook.select(index + 1);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap10-fig03.pdf\n" + ] + } + ], + "source": [ + "newfig()\n", + "plot(sweep)\n", + "decorate(xlabel='Launch angle (degree)',\n", + " ylabel='Range (m)',\n", + " legend=False)\n", + "\n", + "savefig('chap10-fig03.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use `max_bounded` to search for the peak efficiently." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "45.0\n", + "34.3769410125\n", + "55.6230589875\n", + "21.246117975\n", + "41.8191039876\n", + "41.6971472537\n", + "41.6051027031\n", + "41.6031028639\n", + "41.6034368143\n", + "41.6027689135\n", + "Wall time: 2.8 s\n" + ] + } + ], + "source": [ + "%time res = max_bounded(range_func, [0, 90], condition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is an `OptimizeResult` object." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "scipy.optimize.optimize.OptimizeResult" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(res)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the following variables." + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " fun: 109.69517452156008\n", + " message: 'Solution found.'\n", + " nfev: 9\n", + " status: 0\n", + " success: True\n", + " x: 41.603102863878036" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "res" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So the optimal angle is about 41 degrees, and the resulting range is 103 meters." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Add a print statement to `range_func` that prints `angle`. Then run `max_bounded` again so you can see how many times it calls `range_func` and what the arguments are." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Turning off units\n", + "\n", + "Each time `range_func` runs, it calls `odeint`, which runs `slope_func` many times. And each time `slop_func` runs, it checks the units for all computations, which takes some time. We can speed up the whole process by removing the units from the computation (now that we are satisfied that they are correct).\n", + "\n", + "Because of the way we organized the code, all units are in the `Condition` object, so we can \"turn off units\" by defining a new `Condition` object with no units:" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "condition = Condition(g = 9.8,\n", + " mass = 145e-3,\n", + " diameter = 73e-3,\n", + " rho = 1.2,\n", + " C_d = 0.3,\n", + " angle = 45,\n", + " velocity = 40,\n", + " duration = 7)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now `range_func` and `max_bounded` are substantially faster." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "45\n", + "Wall time: 67.2 ms\n" + ] + }, + { + "data": { + "text/plain": [ + "array(102.72237841710975)" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%time range_func(45, condition)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "45.0\n", + "34.3769410125\n", + "55.6230589875\n", + "21.246117975\n", + "41.4051852323\n", + "41.2368620421\n", + "41.1390964616\n", + "41.1364127407\n", + "41.1367466842\n", + "41.1360787972\n", + "Wall time: 457 ms\n" + ] + } + ], + "source": [ + "%time res = max_bounded(range_func, [0, 90], condition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The Manny Ramirez problem\n", + "\n", + "Finally, let's solve the Manny Ramirez problem:\n", + "\n", + "*What is the minimum effort required to hit a home run in Fenway Park?*\n", + "\n", + "Fenway Park is a baseball stadium in Boston, Massachusetts. One of its most famous features is the \"Green Monster\", which is a wall in left field that is unusually close to home plate, only 310 feet along the left field line. To compensate for the short distance, the wall is unusually high, at 37 feet.\n", + "\n", + "Although the problem asks for a minimum, it is not an optimization problem. Rather, we want to solve for the initial velocity that just barely gets the ball to the top of the wall, given that it launches at the optimal angle.\n", + "\n", + "And we have to be careful about what we mean by \"optimal\". For this problem, we don't want the longest range, we want the maximum height at the point where it reaches the wall.\n", + "\n", + "If you are ready to solve the problem on your own, go ahead. Otherwise I will walk you through the process with an outline and some starter code.\n", + "\n", + "As a first step, write a function called `height_func` that takes a launch angle and a condition as parameters, simulates the flights of a baseball, and returns the height of the baseball when it reaches a point 94.5 meters (310 feet) from home plate." + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def height_func(launch_angle,condition):\n", + " \n", + " condition.set(angle=launch_angle)\n", + " system = make_system(condition)\n", + " run_odeint(system, slope_func)\n", + " \n", + " T = interp_inverse(system.results.x)\n", + " t_wall = T(94.5)\n", + " \n", + " \n", + " Y = interpolate(system.results.y)\n", + " return Y(t_wall)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test your function with a launch angle of 45 degrees:" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(11.025366370142653)" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "height_func(45, condition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now use `max_bounded` to find the optimal angle. Is it higher or lower than the angle that maximizes range?" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "res = max_bounded(height_func, [0, 90], condition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following lines compute the height of the ball at the wall, given that it's launched at the optimal angle." + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(11.045254540088495)" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "angle = res.x\n", + "height = height_func(angle, condition)\n", + "height" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to find the height of the ball at the wall, for a given velocity, given that it's launched at the optimal angle.\n", + "\n", + "Write a function called `best_height` that takes velocity and a `Condition` object as parameters. It should use `max_bounded` to find the optimal launch angle, then compute and the highest possible height of the ball at the wall, for the given velocity." + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def best_height(velocity,condition):\n", + " condition.set(velocity=velocity)\n", + " sad = max_bounded(height_func, [0, 90], condition)\n", + " \n", + " angle=sad.x\n", + " height=height_func(angle,condition)\n", + " return height" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use this code to test `best_height`" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(11.045254540088495)" + ] + }, + "execution_count": 122, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "best_height(40, condition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally, we want to use `fsolve` to find the initial velocity that makes the height of the ball exactly 11 meters when it reaches the wall.\n", + "\n", + "To use `fsolve`, we need an error function that returns 0 when we have the right velocity. Write a function called `error_func` that takes a velocity and a `Condition` object, uses `best_height` to find the height of the ball at the wall, and returns the difference between the result and the target value (11 meters)." + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def error_func(velocity, condition):\n", + " best_height(velocity, condition)\n", + " diffrence = height - 11\n", + " return diffrence" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test your error function like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.045254540088494721" + ] + }, + "execution_count": 124, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "error_func(40, condition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then use `fsolve` to find the answer to the problem, the minimum velocity that gets the ball out of the park." + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\ProgramData\\Miniconda3\\lib\\site-packages\\scipy\\optimize\\minpack.py:161: RuntimeWarning: The iteration is not making good progress, as measured by the \n", + " improvement from the last ten iterations.\n", + " warnings.warn(msg, RuntimeWarning)\n" + ] + } + ], + "source": [ + "velocity = fsolve(error_func, 40, condition)" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 40.])" + ] + }, + "execution_count": 126, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "velocity" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And just to check, run `best_height` with the value you found. The result should be 11 meters." + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(11.045254540088495)" + ] + }, + "execution_count": 127, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "best_height(velocity, condition)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/chap11mine.ipynb b/code/chap11mine.ipynb new file mode 100644 index 00000000..78534710 --- /dev/null +++ b/code/chap11mine.ipynb @@ -0,0 +1,1989 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 11: Rotation\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# If you want the figures to appear in the notebook, \n", + "# and you want to interact with them, use\n", + "# %matplotlib notebook\n", + "\n", + "# If you want the figures to appear in the notebook, \n", + "# and you don't want to interact with them, use\n", + "# %matplotlib inline\n", + "\n", + "# If you want the figures to appear in separate windows, use\n", + "# %matplotlib qt5\n", + "\n", + "# tempo switch from one to another, you have to select Kernel->Restart\n", + "\n", + "%matplotlib inline\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Rolling paper\n", + "\n", + "We'll start by loading the units we need." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "radian = UNITS.radian\n", + "m = UNITS.meter\n", + "s = UNITS.second" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And creating a `Condition` object with the system parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "condition = Condition(Rmin = 0.02 * m,\n", + " Rmax = 0.055 * m,\n", + " L = 47 * m,\n", + " duration = 130 * s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function estimates the parameter `k`, which is the increase in the radius of the roll for each radian of rotation. " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def estimate_k(condition):\n", + " \"\"\"Estimates the parameter `k`.\n", + " \n", + " condition: Condition with Rmin, Rmax, and L\n", + " \n", + " returns: k in meters per radian\n", + " \"\"\"\n", + " unpack(condition)\n", + " \n", + " Ravg = (Rmax + Rmin) / 2\n", + " Cavg = 2 * pi * Ravg\n", + " revs = L / Cavg\n", + " rads = 2 * pi * revs\n", + " k = (Rmax - Rmin) / rads\n", + " return k" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "2.7925531914893616e-05 meter" + ], + "text/latex": [ + "$2.7925531914893616e-05 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "estimate_k(condition)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As usual, `make_system` takes a `Condition` object and returns a `System` object." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(condition):\n", + " \"\"\"Make a system object.\n", + " \n", + " condition: Condition with Rmin, Rmax, and L\n", + " \n", + " returns: System with init, k, and ts\n", + " \"\"\"\n", + " unpack(condition)\n", + " \n", + " init = State(theta = 0 * radian,\n", + " y = 0 * m,\n", + " r = Rmin)\n", + " \n", + " k = estimate_k(condition)\n", + " ts = linspace(0, duration, 101)\n", + " \n", + " return System(init=init, k=k, ts=ts)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Testing `make_system`" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
inittheta 0 radian\n", + "y 0 meter\n", + "r ...
k2.7925531914893616e-05 meter
ts[0.0 second, 1.3 second, 2.6 second, 3.9000000...
\n", + "
" + ], + "text/plain": [ + "init theta 0 radian\n", + "y 0 meter\n", + "r ...\n", + "k 2.7925531914893616e-05 meter\n", + "ts [0.0 second, 1.3 second, 2.6 second, 3.9000000...\n", + "dtype: object" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = make_system(condition)\n", + "system" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
theta0 radian
y0 meter
r0.02 meter
\n", + "
" + ], + "text/plain": [ + "theta 0 radian\n", + "y 0 meter\n", + "r 0.02 meter\n", + "dtype: object" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.init" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can write a slope function based on the differential equations\n", + "\n", + "$\\omega = \\frac{d\\theta}{dt} = 10$\n", + "\n", + "$\\frac{dy}{dt} = r \\frac{d\\theta}{dt}$\n", + "\n", + "$\\frac{dr}{dt} = k \\frac{d\\theta}{dt}$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " \"\"\"Computes the derivatives of the state variables.\n", + " \n", + " state: State object with theta, y, r\n", + " t: time\n", + " system: System object with r, k\n", + " \n", + " returns: sequence of derivatives\n", + " \"\"\"\n", + " theta, y, r = state\n", + " unpack(system)\n", + " \n", + " omega = 10 * radian / s\n", + " dydt = r * omega\n", + " drdt = k * omega\n", + " \n", + " return omega, dydt, drdt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Testing `slope_func`" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " ,\n", + " )" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slope_func(system.init, 0*s, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "run_odeint(system, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And look at the results." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
thetayr
124.81248.046.7070640.054851
126.11261.047.4224870.055214
127.41274.048.1426300.055577
128.71287.048.8674930.055940
130.01300.049.5970740.056303
\n", + "
" + ], + "text/plain": [ + " theta y r\n", + "124.8 1248.0 46.707064 0.054851\n", + "126.1 1261.0 47.422487 0.055214\n", + "127.4 1274.0 48.142630 0.055577\n", + "128.7 1287.0 48.867493 0.055940\n", + "130.0 1300.0 49.597074 0.056303" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Extracting one time series per variable (and converting `r` to radians):" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "thetas = system.results.theta\n", + "ys = system.results.y\n", + "rs = system.results.r * 1000" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting `theta`" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(thetas, label='theta')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Angle (rad)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting `y`" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nA6ef1MpfzGxDAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(ys, color='green', label='y')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Length (m)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting `r`" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(rs, color='red', label='r')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Radius (mm)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also see the relationship between `y` and `r`, which I derive analytically in the book." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(rs, ys, color='purple')\n", + "\n", + "decorate(xlabel='Radius (mm)',\n", + " ylabel='Length (m)',\n", + " legend=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's the figure from the book." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap11-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\nBSA3N5e5c+dSVlbGQw89RHZ2Nk6n06eyqKurY8SIEWzZsoXdu3eTmprK8uXLcblcPpXDrXpbd2tr\nKwEBAbp+s9mMyWTy2mwuXbrE0qVLGTFiBEuWLAE8LwePeljTYBgyZAjd3d10dXVx773/xNXR0UFg\nYOAgzmxgVFRU4HA4yMjIYNWqVQAEBATQ2dmpG+eNeVRWVnL69GkOHjx4235fyQHQCuQXXniBmTNn\nAjBx4kROnjzJ7t27fSaL+vp6HA4Hu3btIi4uDoDi4mIyMjLYvn27z+TQU2/rHjJkCB0dHbr+zs5O\nlFJYLJYBm+dAqa+vZ9GiRbS1tbFjxw6GDRsGeF4OUiD0YvTo0cCNp13dfA/Q0tJi2KXmbT766CNK\nSkrIysoiPz9fOw9h9OjRtLS06MZ6Yx4VFRU0NzeTmpoKgPr7sSWLFy/mqaee8pkc4J/doOPHj9fa\nTCYTDz74IA0NDT6TxalTp7h+/ToxMTFam9lsJioqirq6Op/Joafe1h0eHm647PHmeG/L5ueff2bx\n4sUEBwezZ88e3e+Gp+Ughxh6ERkZSVBQECdOnNDaGhoauHjxIomJiYM4s/71ySefUFJSwvLly3E4\nHFpxAJCQkEBNTY1u/PHjx3nkkUcGepr96r333uPQoUPs37+f/fv3U1ZWBsBbb73FihUrfCYHgOjo\naCwWCz/99JPWppTC6XQyduxYn8kiPDwcgDNnzmhtN3N44IEHfCaHnnpbd0JCAvX19brj7MePHyco\nKIjIyMgBnWt/cjqdLFy4kDFjxrBr1y5dcQAemMOgXkPhIdatW6eSk5PV119/rd0HoeclPd7kl19+\nUVFRUWr16tWqpaVF97p27Zr69ddfVXR0tNqwYYM6e/asKikpUVarVXdZpDdqamrSXeboazmsX79e\nJSYmqi+//FKdP39evf3228pqtSqn0+kzWXR1dal58+apJ598UtXU1KizZ88qh8Oh4uLiVENDg8/k\nkJWVpbu8r7d1d3d3q3nz5qlnnnlGnTp1Srv+f+PGjYO1hD7RM4c5c+ao1NRUde7cOd3fTbfbrZTy\nvBykQLgLnZ2d6t1331WTJ09W8fHxasWKFdp/uDcqLi5W48ePv+3rww8/VEopdfToUZWRkaFiYmLU\nrFmz1LfffjvIs+5/PQsEpXwrh+7ubvXxxx8rm82mYmJi1Ny5c1VNTY3W7ytZuN1ulZeXp6ZNm6YS\nEhJUdna2On36tNbvCzn0/GFUqvd1t7S0qBdffFE9/PDDKjk5WRUXF6vr168P5LT73K05nDt37o5/\nN6dPn65t40k5mJT6+8CqEEIIIcTf5BwEIYQQQhhIgSCEEEIIAykQhBBCCGEgBYIQQgghDKRAEEII\nIYSBFAhCCCGEMJBbLQshDHJzc6msrPzXMTcf7+vn58f27dsHYFY3OBwOwsPDeemll3odW1dXx8KF\nC6msrGT48OEDMDshvIfcB0EIYfDbb79x6dIl7fObb76Jn58f+fn5WtvQoUOBG89kiIiIGJB5ffPN\nNzgcDr744gvDU/HupLCwELfbTVFRUT/PTgjvInsQhBAG48aNY9y4cdrnoUOH4ufnpz3BcDAopVi7\ndi05OTl3XRwALFq0CJvNRnZ2NtHR0f04QyG8i5yDIIT4vz333HPk5ORonydMmMBnn33Ga6+9xqRJ\nk0hKSqK0tJSrV6+yevVqEhISSElJYd26ddy68/Ly5cvk5+czdepUYmNjefbZZzl58qTuu6qrq3E6\nnWRkZGhtbW1trFmzhrS0NGJiYpgxYwZbt27VbRcaGkpSUhKbN2/unxCE8FJSIAgh+lRhYSEhISFs\n2rSJ9PR0PvjgAzIzMwkMDKS0tJTHH3+csrIyvvrqKwDa29vJycmhurqalStXsnHjRoKDg8nJyeHH\nH3/U/t2qqiri4+MJCwvT2t555x2OHTtGbm4uW7du5bHHHqOoqMhw/oTdbufIkSP89ddfAxOCEF5A\nDjEIIfpUdHQ0eXl5wI3HpVdUVBAaGsrrr78OQFJSElVVVfzwww/Y7XYOHDjAmTNn2Lt3L1arFYC0\ntDQyMzNZv34927ZtA+D7779n9uzZuu86ceIEKSkp2l6FKVOmYLFYCAkJ0Y2zWq10dnZSW1tLampq\nv65fCG8hBYIQok/FxsZq70NCQvDz89O1mUwmgoODuXLlCgDfffcdo0aNIioqiq6uLm1ceno6mzdv\npqOjg66uLtxuN/fff7/uu6ZMmcKePXtwuVzYbDZsNtttr24YM2YMABcvXuzTtQrhzaRAEEL0qaCg\nIEObxWK54/g//vgDl8t1xxMIL1++rL0PDAzU9eXl5REeHs7BgwcpKCigoKCASZMmsWbNGiIjIw3b\n/fnnn/9pLUL4MikQhBCDatiwYURERFBYWHjb/lsPF9zc63CTv78/y5YtY9myZTQ2NnL06FE2bdrE\nqlWrqKqqMmzX89CDEOLO5CRFIcSgSkxMpLGxkZEjR2K1WrXX4cOH+fTTTzGbzfj7+xMWFkZzc7O2\nXXt7O3a7nfLycgDuu+8+5s+fzxNPPEFTU5PuO1wulzZGCHF3ZA+CEGJQPf300+zYsYMFCxawdOlS\nRo0aRXV1Ndu2bePll1/GZDIBkJKSorv0MSAggNjYWEpLSzGbzUyYMIHz589TWVmJ3W7XfUdtbS0W\ni4X4+PgBXZsQnkwKBCHEoAoKCmLnzp0UFxezdu1arl27xtixY3E4HGRlZWnj7HY7r7zyCm63m9DQ\nUODGHR5DQkIoLy/n999/JzQ0lMzMTF599VXddxw7dgybzfafbrAkhK+TWy0LITyCUopZs2Yxc+ZM\nlixZctfbNTY2Mn36dPbt28fEiRP7cYZCeBc5B0EI4RFMJhMrV65k586dtLa23vV25eXlzJgxQ4oD\nIf4jKRCEEB4jPT2dlJQUw+2U7+TChQscOXJEu0mTEOLuySEGIYQQQhjIHgQhhBBCGEiBIIQQQggD\nKRCEEEIIYSAFghBCCCEMpEAQQgghhIEUCEIIIYQw+B/PcvlKSWMYEgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "subplot(3, 1, 1)\n", + "plot(thetas, label='theta')\n", + "decorate(ylabel='Angle (rad)')\n", + "\n", + "subplot(3, 1, 2)\n", + "plot(ys, color='green', label='y')\n", + "decorate(ylabel='Length (m)')\n", + "\n", + "subplot(3, 1, 3)\n", + "plot(rs, color='red', label='r')\n", + "\n", + "decorate(xlabel='Time(s)',\n", + " ylabel='Radius (mm)')\n", + "\n", + "savefig('chap11-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use interpolation to find the time when `y` is 47 meters." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(125.33333334940457)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "T = interp_inverse(ys, kind='cubic')\n", + "t_end = T(47)\n", + "t_end" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At that point `r` is 55 mm, which is `Rmax`, as expected." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(55.00000000448797)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "R = interpolate(rs, kind='cubic')\n", + "R(t_end)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The total amount of rotation is 1253 rad." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(1253.3333334940455)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "THETA = interpolate(thetas, kind='cubic')\n", + "THETA(t_end)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Unrolling" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For unrolling the paper, we need more units:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "kg = UNITS.kilogram\n", + "N = UNITS.newton" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And a few more parameters in the `Condition` object." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "condition = Condition(Rmin = 0.02 * m,\n", + " Rmax = 0.055 * m,\n", + " Mcore = 15e-3 * kg,\n", + " Mroll = 215e-3 * kg,\n", + " L = 47 * m,\n", + " tension = 2e-4 * N,\n", + " duration = 180 * s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`make_system` computes `rho_h`, which we'll need to compute moment of inertia, and `k`, which we'll use to compute `r`." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(condition):\n", + " \"\"\"Make a system object.\n", + " \n", + " condition: Condition with Rmin, Rmax, Mcore, Mroll,\n", + " L, tension, and duration\n", + " \n", + " returns: System with init, k, rho_h, Rmin, Rmax,\n", + " Mcore, Mroll, ts\n", + " \"\"\"\n", + " unpack(condition)\n", + " \n", + " init = State(theta = 0 * radian,\n", + " omega = 0 * radian/s,\n", + " y = L)\n", + " \n", + " area = pi * (Rmax**2 - Rmin**2)\n", + " rho_h = Mroll / area\n", + " k = (Rmax**2 - Rmin**2) / 2 / L / radian \n", + " ts = linspace(0, duration, 101)\n", + " \n", + " return System(init=init, k=k, rho_h=rho_h,\n", + " Rmin=Rmin, Rmax=Rmax,\n", + " Mcore=Mcore, Mroll=Mroll, \n", + " ts=ts)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Testing `make_system`" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
inittheta 0 radian\n", + "omega 0.0 radi...
k2.7925531914893616e-05 meter / radian
rho_h26.07109543981524 kilogram / meter ** 2
Rmin0.02 meter
Rmax0.055 meter
Mcore0.015 kilogram
Mroll0.215 kilogram
ts[0.0 second, 1.8 second, 3.6 second, 5.4 secon...
\n", + "
" + ], + "text/plain": [ + "init theta 0 radian\n", + "omega 0.0 radi...\n", + "k 2.7925531914893616e-05 meter / radian\n", + "rho_h 26.07109543981524 kilogram / meter ** 2\n", + "Rmin 0.02 meter\n", + "Rmax 0.055 meter\n", + "Mcore 0.015 kilogram\n", + "Mroll 0.215 kilogram\n", + "ts [0.0 second, 1.8 second, 3.6 second, 5.4 secon...\n", + "dtype: object" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = make_system(condition)\n", + "system" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
theta0 radian
omega0.0 radian / second
y47 meter
\n", + "
" + ], + "text/plain": [ + "theta 0 radian\n", + "omega 0.0 radian / second\n", + "y 47 meter\n", + "dtype: object" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.init" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we compute `I` as a function of `r`:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def moment_of_inertia(r, system):\n", + " \"\"\"Moment of inertia for a roll of toilet paper.\n", + " \n", + " r: current radius of roll in meters\n", + " system: System object with Mcore, rho, Rmin, Rmax\n", + " \n", + " returns: moment of inertia in kg m**2\n", + " \"\"\"\n", + " unpack(system)\n", + " Icore = Mcore * Rmin**2 \n", + " Iroll = pi * rho_h / 2 * (r**4 - Rmin**4)\n", + " return Icore + Iroll" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When `r` is `Rmin`, `I` is small." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "6e-06 kilogram meter2" + ], + "text/latex": [ + "$6e-06 kilogram \\cdot meter^{2}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "moment_of_inertia(system.Rmin, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As `r` increases, so does `I`." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "0.00037418750000000006 kilogram meter2" + ], + "text/latex": [ + "$0.00037418750000000006 kilogram \\cdot meter^{2}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "moment_of_inertia(system.Rmax, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the slope function." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " \"\"\"Computes the derivatives of the state variables.\n", + " \n", + " state: State object with theta, omega, y\n", + " t: time\n", + " system: System object with Rmin, k, Mcore, rho_h, tension\n", + " \n", + " returns: sequence of derivatives\n", + " \"\"\"\n", + " theta, omega, y = state\n", + " unpack(system)\n", + " \n", + " r = sqrt(2*k*y + Rmin**2)\n", + " I = moment_of_inertia(r, system)\n", + " tau = r * tension\n", + " alpha = tau / I\n", + " dydt = -r * omega\n", + " \n", + " return omega, alpha, dydt " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Testing `slope_func`" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " ,\n", + " )" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slope_func(system.init, 0*s, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "run_odeint(system, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And look at the results." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
thetaomegay
172.8503.3769986.83022222.852269
174.6515.7882196.96058022.346268
176.4528.4371507.09437621.835001
178.2541.3301517.23180221.318468
180.0554.4739407.37306620.796665
\n", + "
" + ], + "text/plain": [ + " theta omega y\n", + "172.8 503.376998 6.830222 22.852269\n", + "174.6 515.788219 6.960580 22.346268\n", + "176.4 528.437150 7.094376 21.835001\n", + "178.2 541.330151 7.231802 21.318468\n", + "180.0 554.473940 7.373066 20.796665" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Extrating the time series" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "thetas = system.results.theta\n", + "omegas = system.results.omega\n", + "ys = system.results.y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting `theta`" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nUF2tUFWtoKuqRqur1v+p1VVTqa2iUlvzZ4WuioqKKjSVOjSVNX+WV+go1+jq3Iq1scxNTXC0t8TR\n3hIneyucHGqSRhc7S8xkuXMhRCtrdwnkzJkzlJaWEhkZqS/z9vbGy8uLpKSkRiWQnIIyfjp6leKy\nmj4ERYFqRdH/eTNxKE14Kmgqa0szHGwt9D9d7CxrfmwtsJUnCiFEG9LuEkhWVhYA7u7uBuVqtVpf\n11DHU3PJzC9tttjuxNREhY2VOTZWZthYmmFrbY6djQW2VubY2dT82NtYyJOEEKLdaHcJpLy8HBMT\nE8zNDUcOWVhYUFFR0ajX6tG1C+evFqHV3bl5yUSlwtREhZmZCeZmJpiZ1vxpbmaKuZkJluYmWJib\nYmluiqWFKVYWZvo/rS3NsLYyw8LMRJ4ehBAdSrtLIFZWVlRXV6PT6TAzuxV+ZWUl1tbWjXotf29H\nfD3sb82XUKkwUdUkDJWJSp84ZG0nIYSord0lEE9PTwByc3P1/w2Qk5NTq1mrIWqeImTFWCGEaKx2\nl0CCgoKwtbXl0KFDREdHA3DlyhWuXr3KwIED67ymqqrmCaOxfSRCCNGZ3fzMvPkZ+nvtLoFYWFjw\n5JNP8te//hUnJydcXFz4y1/+QmRkJKGhoXVek5ubC8DUqVNbM1QhhOgQcnNz6datW61yldKaY1Sb\niU6n45133iEhIQGdTqefie7s7Fzn+RqNhpSUFNzc3DA1leYqIYRoiKqqKnJzc+nXrx9WVla16ttl\nAhFCCGF8MulACCFEk0gCEUII0SSSQIQQQjSJJBAhhBBNIglECCFEk3TaBFJVVcW7775LVFQUYWFh\nvPDCC+Tl5Rk7rHYtLS2NwMDAWj9JSUkA7N+/n+joaIKDg5k4cSKJiYlGjrj9WbJkCQsXLjQou9t9\nzc/PZ86cOURERDBkyBDi4uLQ6Rq3OVlnUtc9fuyxx2r9vb79nE57j5VOauXKlcrQoUOV/fv3Kykp\nKcqUKVOU//7v/zZ2WO3a9u3blUGDBik5OTkGP5WVlUpqaqrSr18/5YMPPlDS0tKUlStXKn379lXO\nnTtn7LDbherqauX9999XevXqpbz++uv68obc1yeeeEJ58sknldOnTyt79+5VBg8erLz33nvGeBtt\nWn33uLq6WgkJCVG+/fZbg7/XxcXF+nM66z3ulAmkoqJCCQsLU7766it9WUZGhtKrVy8lOTnZiJG1\nbytXrlSmTp1aZ93ixYuVmJgYg7KYmBhl0aJFrRFau5aenq7ExMQogwYNUkaMGGHw4Xa3+3rkyBGl\nV69eSnp6ur7+66+/VsLCwpSKiorWeQPtwJ3u8eXLl2vdw9t15nvcKZuw7rYplWia1NRU/Pz86qxL\nSkoyuN8AgwYNkvvdAEeOHMHT05OtW7fi7e1tUHe3+5qUlISXlxc+Pj76+sjISEpLSzl9+nTLB99O\n3Okenzt3DisrK7y8vOq8tjPf43a3FlZzaM5NqcQtqampVFRU8Pjjj3P16lV69uzJ/PnzCQ4OJisr\nS+53E0VHR+sXDv29u93X7Oxs1Gp1rXqAzMxMQkJCWiDi9udO9zg1NRV7e3teeuklDh06hJOTE5Mn\nT+aZZ57BxMSkU9/jTvkE0pybUokaGo2GjIwMSkpKWLBgAevWrUOtVhMTE8P58+fRaDRYWFgYXCP3\n+97d7b6Wl5djaWlpUG9uXrM1stz7hklLS6OsrIyoqCg++eQTnnzySVavXk18fDzQue9xp3wCac5N\nqUQNKysrDh8+jIWFhf4DbcWKFZw8eZJ//OMfWFpaotVqDa6R+33v7nZfraysqKysNKjXarUoioKN\njU2rxdmevf3225SVleHg4ABAYGAgxcXFrF+/ntmzZ3fqe9wpn0Bu35Tqdk3dlErUsLOzM/g2bGJi\nQkBAAJmZmXh6epKTk2Nwvtzve3e3++rh4VHn33Oo3YQr6mZmZqZPHjcFBgZSWlpKcXFxp77HnTKB\n3L4p1U1325RK3FlKSgoDBgwgJSVFX1ZVVcWZM2fo2bMn4eHhHD582OCagwcPEhER0dqhdih3u6/h\n4eFkZGSQmZlpUG9ra0tQUFCrxtpePf744yxfvtyg7MSJE6jVahwcHDr1Pe6UCeT2Tan27dvHyZMn\nmT9//h03pRJ3FhQUhJeXF0uWLOHYsWOkpqby2muvUVBQwNNPP01MTAxJSUmsXr2a8+fPs2rVKo4d\nO8Yzzzxj7NDbtbvd17CwMEJDQ5k3bx4nT54kMTGRuLg4pk+fXqvvRNTtwQcfZPPmzXzzzTekp6fz\n5Zdf8vHHH/PCCy8AnfweG3scsbFotVrlrbfeUiIjI5UBAwYoc+bMUfLz840dVruWlZWlzJ8/Xxk8\neLASEhKiTJ8+XTl79qy+fs+ePcr48eOVfv36KX/4wx+UAwcOGDHa9ikmJsZgjoKi3P2+5uTkKLNm\nzVJCQkKU++67T3n33XeVqqqq1gy7Xfn9Pa6urlb+/ve/K2PGjFH69eunjBkzRvniiy8Mrums91g2\nlBJCCNEknbIJSwghxL2TBCKEEKJJJIEIIYRoEkkgQgghmkQSiBBCiCaRBCKEEKJJOuVaWELU5dVX\nXyUhIeGO50RGRrJx40aeeuopTE1N+eyzz1onuDoUFhYyefJkPv30U7p163bX8+Pj48nLy2Pp0qUt\nH5zoFGQeiBD/kZ6ezvXr1/XHf/nLXzA1NWXRokX6Mjs7OwICAkhLS0OlUuHv72+MUAF48cUXcXd3\nZ8GCBQ06X6PRMG7cON566y2GDBnSwtGJzkCeQIT4D19fX3x9ffXHdnZ2mJqa1rm8TUBAQGuGVsvx\n48fZsWMH+/bta/A1VlZWTJs2jbfeeotvv/22BaMTnYX0gQjRBE899RTTpk3THwcGBrJ582Zeeukl\nwsLCGDx4MPHx8ZSUlPDaa68RHh7O0KFDiYuL4/aH/oKCAhYtWsSQIUMIDg7miSeeIDk5+a6//+OP\nP+a+++7D2dlZX5aSksIzzzxDeHg4YWFhTJs2jd9++83guvHjx5OamsrevXvv+R4IIQlEiGby9ttv\n4+TkxAcffMDIkSNZs2YNjz32GNbW1sTHx/Pggw/y8ccf88MPPwBQUVHBtGnT2Lt3L/Pnz2f16tV0\n6dKFadOmcfz48Xp/T2lpKbt372bMmDH6spKSEv70pz/h5OTEmjVrWLlyJeXl5fzpT3+ipKREf55a\nrSYsLIytW7e23I0QnYY0YQnRTPr27cvChQuBmtWJv/76a1xcXFiyZAkAgwcPZuvWrfz222+MHTuW\nLVu2cPbsWb788kv69+8PwLBhw3jsscdYuXIln376aZ2/JykpCa1WS3BwsL4sLS1Nv/LxgAEDAPDz\n82Pz5s2UlpZiZ2enP7dfv3589913LXIPROciTyBCNJPbP9CdnJwwNTU1KFOpVHTp0oUbN24A8Msv\nv+Du7k7v3r3R6XTodDqqq6sZOXIkhw8frrXL3U1XrlwBwNvbW1/Ws2dPnJ2dee6551iyZAk//vgj\nrq6uvPzyy7U2NfLy8iI3N7fe1xeioeQJRIhmYmtrW6vsTluaFhYWkpWVRd++feusLygoqHNHu+Li\nYgCD7YBtbW35/PPPWbduHd9//z2bN2/GysqK6OhoFi1aZLAvxc2YSkpKDPpQhGgsSSBCGIm9vT3+\n/v68/fbbddY7OTndsby4uNhgq1U/Pz/i4uKoqqri+PHjbNmyhX/+8590796dP/7xj/rzioqKMDEx\noUuXLs34bkRnJE1YQhjJwIEDuXbtGmq1mv79++t/du3axcaNGzE3N6/zuq5duwKQlZWlL/vxxx8Z\nPHgwubm5mJqaEhYWxtKlS3FwcDDYavXmdWq1GlNT05Z7c6JTkAQihJFMnjwZd3d3pk+fzpYtW/j1\n119ZsWIF69atw8fHB5VKVed1ERERWFlZGQz3HTBgAIqiEBsby86dO/nll19YsmQJJSUlBqO1AI4c\nOUJUVFSLvjfROUgCEcJIbvZbhISEsGLFCv785z/z008/sXjxYmbPnl3vddbW1gwbNsxgEqGLiwuf\nfPIJ9vb2LFy4kGeffZaTJ0+yZs0aBg4cqD8vNzeXM2fO1EoqQjSFLGUiRDt0/PhxnnjiCXbv3l1n\nR3t91q1bx44dO0hISKj3CUeIhpInECHaoeDgYEaPHs3f//73Bl9TVlbGP/7xD+bPny/JQzQLSSBC\ntFNLly5lx44dXL58uUHnf/LJJ4wcOZJhw4a1cGSis5AmLCGEEE0iTyBCCCGaRBKIEEKIJpEEIoQQ\nokkkgQghhGgSSSBCCCGa5P8DlKJgzxDOsIIAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(thetas, label='theta')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Angle (rad)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting `omega`" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nGHt7e5KTk/Hw8CAwMLBIH/b555+TkZF3g0hCQgKDBg3i448/pmXLlkV6LyHEQ8pKgr9XQdJR03Gv\nluqdunK1bxM0h//mzZuZNWsW169fN455eXnx1ltvGbt/Psi9SzvLlStnHPf0lL08hTCrOxutXFwH\nuel5404e8NgQqFjfcrWJEqcp/Hft2sWECRNo06YNYWFheHl5ER8fz7Zt23j//fepUKGCbOEoRGmW\ncVXdaCX5jOm4d1uo2kdW8tggTeEfHh5Oz549+eyzz0zGe/fuzfjx4/n6668fKvx9fX05c+bMg58o\nhHg4igHifoTYLaDc1aCxXGW19XKFWparTViUppu8zp49S1hYWIHHwsLCiIqKKvCYEMKCUmPgxKdw\ncf1dwa8D307qfroS/DZN05V/5cqVuXr1aoHH4uLicHZ2LtaihBCPIDcTLm1Vr/hR8sadA6D6ULUT\np7B5msK/Xbt2zJ07lzp16lC/ft6XQsePH2fevHm0b9/ebAUKIYog6QT8vRKy8hZmoHME/zDwfUYa\nsQkjTeE/evRofvvtN/r160e1atWoXLkyCQkJxMTE8NhjjzFu3Dhz1ymEuJ/sW2qv/XtbM7jVhqDB\noPe2TF2i1NIU/u7u7mzYsIH169dz6NAhbt68Sd26dRk6dCh9+vSRaR8hLEVRIOEXuLgBctPyxu1d\n1DX7Xi1kdy1RIM3r/PV6PYMGDWLQoEHmrEcIoVXaJXWKJ+WerrqeT6qtGRzdLFOXsAqFhv/kyZM1\nv4lOp5PWDEKUlNxMuPR/t7/QNeSNl6ustmZwr2ux0oT1KDT89+/fr/lNdPJnpRAl48ZRtR9PVmLe\nmM4e/DpDlW5g52i52oRVKTT89+zZU5J1CCHuJ/O6Gvp3b6cI4BasXu07+1mmLmG1itTYLTMzk8jI\nSK5evUqrVq1IT0/H11c2bxbCbAw5ELcLLm0zvUPXwRWq9gOv5vKFrngomsN/5cqVfPnll9y6dQud\nTse6dev48ssvycrKYtGiRZQvL50AhShWN0/BhdWQEW86Xrk1VH0WHFwsU5coEzS1d1i3bh0ff/wx\nzz77LMuXLzf24e/Xrx/Hjh1j/vz5Zi1SCJuSdQPOLoYzc02D3zkA6k1Q1+1L8ItHpOnKf+nSpYwY\nMYLx48eTm5trHO/UqRPx8fEsW7aMCRMmmK1IIWyCIQfidsPlbWDIzBu300NAL/BpBzpN12tCPJCm\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(omegas, color='orange', label='omega')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Angular velocity (rad/s)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting `y`" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(ys, color='green', label='y')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Length (m)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the figure from the book." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file chap11-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "subplot(3, 1, 1)\n", + "plot(thetas, label='theta')\n", + "decorate(ylabel='Angle (rad)')\n", + "\n", + "subplot(3, 1, 2)\n", + "plot(omegas, color='orange', label='omega')\n", + "decorate(ylabel='Angular velocity (rad/s)')\n", + "\n", + "subplot(3, 1, 3)\n", + "plot(ys, color='green', label='y')\n", + "\n", + "decorate(xlabel='Time(s)',\n", + " ylabel='Length (m)')\n", + "\n", + "savefig('chap11-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Yo-yo" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Simulate the descent of a yo-yo. How long does it take to reach the end of the string.\n", + "\n", + "I provide a `Condition` object with the system parameters:\n", + "\n", + "* `Rmin` is the radius of the axle. `Rmax` is the radius of the axle plus rolled string.\n", + "\n", + "* `Rout` is the radius of the yo-yo body. `mass` is the total mass of the yo-yo, ignoring the string. \n", + "\n", + "* `L` is the length of the string.\n", + "\n", + "* `g` is the acceleration of gravity." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "condition = Condition(Rmin = 8e-3 * m,\n", + " Rmax = 16e-3 * m,\n", + " Rout = 35e-3 * m,\n", + " mass = 50e-3 * kg,\n", + " L = 1 * m,\n", + " g = 9.8 * m / s**2,\n", + " duration = 1 * s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a `make_system` function that computes `I` and `k` based on the system parameters.\n", + "\n", + "I estimated `I` by modeling the yo-yo as a solid cylinder with uniform density ([see here](https://en.wikipedia.org/wiki/List_of_moments_of_inertia)). In reality, the distribution of weight in a yo-yo is often designed to achieve desired effects. But we'll keep it simple." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(condition):\n", + " \"\"\"Make a system object.\n", + " \n", + " condition: Condition with Rmin, Rmax, Rout, \n", + " mass, L, g, duration\n", + " \n", + " returns: System with init, k, Rmin, Rmax, mass,\n", + " I, g, ts\n", + " \"\"\"\n", + " unpack(condition)\n", + " \n", + " init = State(theta = 0 * radian,\n", + " omega = 0 * radian/s,\n", + " y = L,\n", + " v = 0 * m / s)\n", + " \n", + " I = mass * Rout**2 / 2\n", + " k = (Rmax**2 - Rmin**2) / 2 / L / radian \n", + " ts = linspace(0, duration, 101)\n", + " \n", + " return System(init=init, k=k,\n", + " Rmin=Rmin, Rmax=Rmax,\n", + " mass=mass, I=I, g=g,\n", + " ts=ts)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Testing `make_system`" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
inittheta 0 radian\n", + "omega 0.0 radi...
k9.6e-05 meter / radian
Rmin0.008 meter
Rmax0.016 meter
mass0.05 kilogram
I3.0625000000000006e-05 kilogram * meter ** 2
g9.8 meter / second ** 2
ts[0.0 second, 0.01 second, 0.02 second, 0.03 se...
\n", + "
" + ], + "text/plain": [ + "init theta 0 radian\n", + "omega 0.0 radi...\n", + "k 9.6e-05 meter / radian\n", + "Rmin 0.008 meter\n", + "Rmax 0.016 meter\n", + "mass 0.05 kilogram\n", + "I 3.0625000000000006e-05 kilogram * meter ** 2\n", + "g 9.8 meter / second ** 2\n", + "ts [0.0 second, 0.01 second, 0.02 second, 0.03 se...\n", + "dtype: object" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = make_system(condition)\n", + "system" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
theta0 radian
omega0.0 radian / second
y1 meter
v0.0 meter / second
\n", + "
" + ], + "text/plain": [ + "theta 0 radian\n", + "omega 0.0 radian / second\n", + "y 1 meter\n", + "v 0.0 meter / second\n", + "dtype: object" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.init" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Write a slope function for this system, using these results from the book:\n", + "\n", + "$ r = \\sqrt{2 k y + R_{min}^2} $ \n", + "\n", + "$ T = m g I / I^* $\n", + "\n", + "$ a = -m g r^2 / I^* $\n", + "\n", + "$ \\alpha = m g r / I^* $\n", + "\n", + "where $I^*$ is the augmented moment of inertia, $I + m r^2$.\n", + "\n", + "Hint: If `y` is less than 0, it means you have reached the end of the string, so the equation for `r` is no longer valid. In this case, the simplest thing to do it return the sequence of derivatives `0, 0, 0, 0`" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "def slope_func(state,t,system):\n", + " theta, omega, y, v = state\n", + " unpack(system)\n", + " \n", + " if y < 0*m:\n", + " return 0,0,0,0\n", + "\n", + " \n", + " r=sqrt(2*k*y + Rmin**2)\n", + " alpha=mass*g*r/I*m*r**2\n", + " dydt= -r *omega\n", + " \n", + " \n", + " return omega, alpha, v, dydt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test your slope function with the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(,\n", + " ,\n", + " ,\n", + " )" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slope_func(system.init, 0*s, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then run the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": { + "collapsed": true, + "scrolled": false + }, + "outputs": [], + "source": [ + "run_odeint(system, slope_func)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Check the final conditions. If things have gone according to plan, the final value of `y` should be close to 0." + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
thetaomegayv
0.960.0301980.0629120.999845-0.000483
0.970.0308310.0635670.999841-0.000493
0.980.0314700.0642220.999836-0.000504
0.990.0321150.0648780.999830-0.000514
1.000.0327670.0655330.999825-0.000524
\n", + "
" + ], + "text/plain": [ + " theta omega y v\n", + "0.96 0.030198 0.062912 0.999845 -0.000483\n", + "0.97 0.030831 0.063567 0.999841 -0.000493\n", + "0.98 0.031470 0.064222 0.999836 -0.000504\n", + "0.99 0.032115 0.064878 0.999830 -0.000514\n", + "1.00 0.032767 0.065533 0.999825 -0.000524" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system.results.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "thetas = system.results.theta\n", + "ys = system.results.y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`theta` should increase and accelerate." + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nWT2dTkdiYiL79++3eI+UlBTmzZvH7373O5KTk4mIiGDGjBkUFxff9bkI0dqVV+pI3ptNWta15z3O\njvY8MrgL/XsGyPMe0aRueh/tr3/9K6WlpWzbto3k5GSee+45fHx8ePDBB1GpVHd0JaTT6UhKSmL+\n/PkMGjQIgLfeeovhw4eTnp5OdHS0Wf3PPvsMNzc3EhMTUavVhIWFcfz4cTZs2GBaefXYsWMkJiZS\nUVFBu3btLI65fv16xo4dy5NPPgnUTaz6448/8umnn/Lcc881+ByEaCtOXihhb1oONbXXBpYG+7rz\nYHwornLVI2zglsOXPT09mTZtGsnJySQnJzN69Gh27tyJoijMnz+f1atXc+bMGasPlpWVRWVlJfHx\n8aay4OBggoKCSE1NtaifmppKXFyc2ezb8fHxpKenm/5a+/7774mNjWXr1q24u5s/JDUajaSnp5sd\nT61WExcXV+/xhLgX1OoNfJt6nq9/PGcKH7VKRf+eAYwf0kXCR9iM1T0JunXrxvz583n99df59ttv\nSU5O5r333uOdd96hW7dufPnll7d9j7y8PMBy8TpfX1/TvhvrX+11d31drVZLSUkJ3t7ePPvsszc9\nXnl5OVVVVfUeLyMj47btFaKtKSiu4ptD5yitqDGVtXPV8GB8RwJ8XJuxZeJe1OCubA4ODowaNYpR\no0ZRWFjIli1bSE5Otuq1Wq0WtVqNg4P5X1gajYaamhqL+tXV1Wg0Gou6UHc773aqq6sBcHR0tDiH\n+o4nRFtlNCqk/1zAoWN5GK+bVPi+EC8eiAnG0cGuGVsn7lV31Ze6Q4cOzJo1i1mzZllV38nJCaPR\niF6vN+vGrdPp6p3g1MnJySJorm7XV/9GV4Pnxveora216vVCtAXllTp2HTrPxaJr0+k42Ku5PyqY\nrh29ZC430WxsOpgnICAAgMLCQtP3AAUFBRa3yQD8/f0pLCw0KysoKMDFxcXieU99PD09cXFxoaCg\nwOI96jueEG2Joij8fK6EfT/loruuo4F/e1cejA/Fw83xFq8WounZdA71yMhIXF1dOXTokKksJyeH\n3Nxc4uLiLOrHxMSQmppqtg7RwYMHiY6OtmpZcJVKRVRUFIcPHzaVGY1GDh8+XO/xhGgrqqpr+ecP\nZ9l1+LwpfFQqFfE9/HnsgXAJH9Ei2PQKSKPRMGXKFJYvX46Xlxft27dn8eLFxMfH07dvX3Q6HWVl\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(thetas, label='theta')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Angle (rad)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`y` should decrease and accelerate down." + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\nAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(ys, color='green', label='y')\n", + "\n", + "decorate(xlabel='Time (s)',\n", + " ylabel='Length (m)')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/code/rabbits2.ipynb b/code/rabbits2.ipynb index f77cb8cf..5071156b 100644 --- a/code/rabbits2.ipynb +++ b/code/rabbits2.ipynb @@ -79,34 +79,44 @@ " \n", " \n", " t0\n", - " 0.0\n", + " 0.00\n", " \n", " \n", " t_end\n", - " 10.0\n", + " 10.00\n", " \n", " \n", " adult_pop0\n", - " 10.0\n", + " 10.00\n", + " \n", + " \n", + " juvenile_p0\n", + " 0.00\n", + " \n", + " \n", + " mature_rate\n", + " 0.33\n", " \n", " \n", " birth_rate\n", - " 0.9\n", + " 0.90\n", " \n", " \n", " death_rate\n", - " 0.5\n", + " 0.50\n", " \n", " \n", "\n", "
" ], "text/plain": [ - "t0 0.0\n", - "t_end 10.0\n", - "adult_pop0 10.0\n", - "birth_rate 0.9\n", - "death_rate 0.5\n", + "t0 0.00\n", + "t_end 10.00\n", + "adult_pop0 10.00\n", + "juvenile_p0 0.00\n", + "mature_rate 0.33\n", + "birth_rate 0.90\n", + "death_rate 0.50\n", "dtype: float64" ] }, @@ -119,6 +129,8 @@ "system = System(t0 = 0, \n", " t_end = 10,\n", " adult_pop0 = 10,\n", + " juvenile_p0=0,\n", + " mature_rate=.33,\n", " birth_rate = 0.9,\n", " death_rate = 0.5)\n", "\n", @@ -144,7 +156,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 13, "metadata": { "collapsed": true }, @@ -161,13 +173,20 @@ " adults = TimeSeries()\n", " adults[system.t0] = system.adult_pop0\n", " \n", + " juveniles= TimeSeries()\n", + " juveniles[system.juvenile_p0] = system.juvenile_p0\n", + " \n", + " \n", " for t in linrange(system.t0, system.t_end):\n", " births = system.birth_rate * adults[t]\n", " deaths = system.death_rate * adults[t]\n", + " matured = system.mature_rate * juveniles[t]\n", + " \n", + " juveniles[t+1]=juveniles[t]+births-matured\n", + " adults[t+1] = adults[t] + matured - deaths\n", " \n", - " adults[t+1] = adults[t] + births - deaths\n", - " \n", - " system.adults = adults" + " system.adults = adults\n", + " system.juveniles = juveniles" ] }, { @@ -179,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -213,69 +232,69 @@ " \n", " \n", " 1\n", - " 14.000000\n", + " 5.000000\n", " \n", " \n", " 2\n", - " 19.600000\n", + " 5.470000\n", " \n", " \n", " 3\n", - " 27.440000\n", + " 6.209900\n", " \n", " \n", " 4\n", - " 38.416000\n", + " 7.057723\n", " \n", " \n", " 5\n", - " 53.782400\n", + " 8.021560\n", " \n", " \n", " 6\n", - " 75.295360\n", + " 9.117031\n", " \n", " \n", " 7\n", - " 105.413504\n", + " 10.362107\n", " \n", " \n", " 8\n", - " 147.578906\n", + " 11.777219\n", " \n", " \n", " 9\n", - " 206.610468\n", + " 13.385586\n", " \n", " \n", " 10\n", - " 289.254655\n", + " 15.213601\n", " \n", " \n", " 11\n", - " 404.956517\n", + " 17.291261\n", " \n", " \n", "\n", "
" ], "text/plain": [ - "0 10.000000\n", - "1 14.000000\n", - "2 19.600000\n", - "3 27.440000\n", - "4 38.416000\n", - "5 53.782400\n", - "6 75.295360\n", - "7 105.413504\n", - "8 147.578906\n", - "9 206.610468\n", - "10 289.254655\n", - "11 404.956517\n", + "0 10.000000\n", + "1 5.000000\n", + "2 5.470000\n", + "3 6.209900\n", + "4 7.057723\n", + "5 8.021560\n", + "6 9.117031\n", + "7 10.362107\n", + "8 11.777219\n", + "9 13.385586\n", + "10 15.213601\n", + "11 17.291261\n", "dtype: float64" ] }, - "execution_count": 4, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -294,7 +313,115 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
value
00.000000
19.000000
210.530000
311.978100
413.614237
515.473489
617.586642
719.988378
822.718110
925.820630
1029.346849
1133.354630
\n", + "
" + ], + "text/plain": [ + "0 0.000000\n", + "1 9.000000\n", + "2 10.530000\n", + "3 11.978100\n", + "4 13.614237\n", + "5 15.473489\n", + "6 17.586642\n", + "7 19.988378\n", + "8 22.718110\n", + "9 25.820630\n", + "10 29.346849\n", + "11 33.354630\n", + "dtype: float64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "run_simulation(system)\n", + "system.juveniles" + ] + }, + { + "cell_type": "code", + "execution_count": 16, "metadata": { "collapsed": true }, @@ -307,11 +434,21 @@ " \"\"\"\n", " newfig()\n", " plot(system.adults, 'bo-', label='adults')\n", + " plot(system.juveniles, 'rs-', label='juveniles')\n", " decorate(xlabel='Season', \n", " ylabel='Rabbit population',\n", " title=title)" ] }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -321,14 +458,14 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 17, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": {},