{ "cells": [ { "cell_type": "markdown", "metadata": { "cell_style": "center", "slideshow": { "slide_type": "slide" } }, "source": [ "\n", "\n", "# Class 8: System dynamics models: Growth and decay II\n", "\n", "---\n", "\n", "\n", "\n", "This notebook is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/)." ] }, { "cell_type": "markdown", "metadata": { "cell_style": "center", "slideshow": { "slide_type": "slide" } }, "source": [ "## Load packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "cell_style": "center", "slideshow": { "cell_style": "split", "slide_type": "-" } }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Growth model for bacterial colony\n", "\n", "Iteratively solve the difference equation using numerical methods\n", "\n", "\\begin{equation}\n", "P(t)=P(t-\\Delta{}t)+rP(t-\\Delta{}t)\\Delta{}t\n", "\\end{equation}\n", "\n", "Assume the following constants:\n", "\n", "```python\n", "population = 100\n", "r = 0.1\n", "delta_t = 0.001\n", "time_of_simulation = 50.5\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Class-led solution" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Algorithm" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "population = 100\n", "r = 0.1\n", "delta_t = 0.001\n", "time_of_simulation = 50.5\n", "trace = [[0, population]]\n", "\n", "for time_step in range(1, int(time_of_simulation / delta_t) + 1):\n", " population = population + r * population * delta_t\n", " trace.append([time_step, population])" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Store results in DataFrame" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "bacteria_df = pd.DataFrame({\n", " \"time_step\": [time_step[0] for time_step in trace],\n", " \"population\": [time_step[1] for time_step in trace]\n", "})\n", "bacteria_df[\"time\"] = bacteria_df[\"time_step\"] * delta_t" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Plot results using matplotlib" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots() # Define an \"axis\" object for more control over plot\n", "ax.plot(bacteria_df[\"time_step\"], bacteria_df[\"population\"]);\n", "ax.set_xlabel(\"time\")\n", "ax.set_ylabel(\"population\");" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Cleaning up our code" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Create a documented function\n", "\n", "```python\n", "def simulation(p0: float, growth_rate: float,\n", " time: float, delta_t: float) -> pd.DataFrame:\n", " \"\"\"Simulate the population of a bacterial colony\n", " over time.\n", " \n", " :param p0: The initial population of the bacterial\n", " colony.\n", " :param growth_rate: The reproduction rate for the\n", " bacteria population.\n", " :param delta_t: The size of the time step interval.\n", " \"\"\"\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "```python\n", " total_sim_steps = int(time / delta_t)\n", " population = p0\n", " trace = [[0, population]]\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "```python \n", " for step_index in range(1, total_sim_steps + 1):\n", " population_change = growth_rate * population\n", " population += population_change * delta_t\n", " trace.append([step_index, population])\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "```python\n", " population_df = pd.DataFrame({\n", " \"step_index\": [x[0] for x in trace],\n", " \"population\": [x[1] for x in trace],\n", " })\n", " population_df[\"time\"] = (\n", " population_df[\"step_index\"] * delta_t)\n", " \n", " return population_df\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Functions for plotting\n", "\n", "```python\n", "def create_plot(x, y, label, style, xlabel=\"time\",\n", " ylabel=\"population\"):\n", " fig, ax = plt.subplots()\n", " ax.plot(x, y, style, label=label)\n", " ax.set_xlabel(xlabel)\n", " ax.set_ylabel(ylabel)\n", " \n", " return fig, ax\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "```python\n", "def add_to_plot(ax, x, y, label, style):\n", " ax.plot(x, y, style, label=label)\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Save and import from external file\n", "\n", "Saved these functions into `bacteria.py`. Import them for later use." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "import bacteria" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/plain": [ "\u001b[0;31mSignature:\u001b[0m \u001b[0mbacteria\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msimulation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgrowth_rate\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdelta_t\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mpandas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcore\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mframe\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mDocstring:\u001b[0m\n", "Simulate the population of a bacterial colony over time.\n", "\n", ":param p0: The initial population of the bacterial colony.\n", ":param growth_rate: The reproduction rate for the bacteria population.\n", ":param delta_t: The size of the time step interval.\n", "\u001b[0;31mFile:\u001b[0m ~/Teaching/CDS-411/semesters/2018_fall/repos/course-materials/class_notes/class09/bacteria.py\n", "\u001b[0;31mType:\u001b[0m function\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bacteria.simulation?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Numerical error" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Exact solution versus numerical approximation\n", "\n", "The differential equation,\n", "\n", "\\begin{equation}\n", "\\dfrac{dP}{dt} = rP\n", "\\end{equation}\n", "\n", "can be solved exactly. The exact solution is $P(t)=P_{0}e^{rt}$, so in code we would have the following:\n", "\n", "```python\n", "def exact(p0, growth_rate, time, delta_t):\n", " time_array = np.arange(0, time, delta_t)\n", " population = p0 * np.exp(growth_rate * time_array)\n", " population_df = pd.DataFrame({\n", " \"time\": time_array,\n", " \"population\": population,\n", " })\n", " \n", " return population_df\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "How does the step size affect the computed population for the bacterial colony?" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "bacteria_sim = bacteria.simulation(p0=100, growth_rate=0.1, time=50, delta_t=1)\n", "bacteria_exact = bacteria.exact(p0=100, growth_rate=0.1, time=50, delta_t=1)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = bacteria.create_plot(x=bacteria_sim[\"time\"], y=bacteria_sim[\"population\"],\n", " label=\"simulation\", style=\"--\")\n", "bacteria.add_to_plot(ax=ax, x=bacteria_exact[\"time\"], y=bacteria_exact[\"population\"],\n", " label=\"exact\", style=\"-\")\n", "ax.legend(loc=\"lower right\");\n", "ax.text(0.05, 0.8, \"$\\Delta{}t=1$\\ngrowth rate = 0.1\", fontsize=14,\n", " transform=ax.transAxes);" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "bacteria_sim = bacteria.simulation(p0=100, growth_rate=0.1, time=50, delta_t=0.5)\n", "bacteria_exact = bacteria.exact(p0=100, growth_rate=0.1, time=50, delta_t=0.5)\n", "fig, ax = bacteria.create_plot(x=bacteria_sim[\"time\"], y=bacteria_sim[\"population\"],\n", " label=\"simulation\", style=\"--\")\n", "bacteria.add_to_plot(ax=ax, x=bacteria_exact[\"time\"], y=bacteria_exact[\"population\"],\n", " label=\"exact\", style=\"-\")\n", "ax.legend(loc=\"lower right\");\n", "ax.text(0.05, 0.8, \"$\\Delta{}t=0.5$\\ngrowth rate = 0.1\", fontsize=14,\n", " transform=ax.transAxes);" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "bacteria_sim = bacteria.simulation(p0=100, growth_rate=0.1, time=50, delta_t=0.1)\n", "bacteria_exact = bacteria.exact(p0=100, growth_rate=0.1, time=50, delta_t=0.1)\n", "fig, ax = bacteria.create_plot(x=bacteria_sim[\"time\"], y=bacteria_sim[\"population\"],\n", " label=\"simulation\", style=\"--\")\n", "bacteria.add_to_plot(ax=ax, x=bacteria_exact[\"time\"], y=bacteria_exact[\"population\"],\n", " label=\"exact\", style=\"-\")\n", "ax.legend(loc=\"lower right\");\n", "ax.text(0.05, 0.8, \"$\\Delta{}t=0.1$\\ngrowth rate = 0.1\", fontsize=14,\n", " transform=ax.transAxes);" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "bacteria_sim = bacteria.simulation(p0=100, growth_rate=0.1, time=50, delta_t=0.01)\n", "bacteria_exact = bacteria.exact(p0=100, growth_rate=0.1, time=50, delta_t=0.01)\n", "fig, ax = bacteria.create_plot(x=bacteria_sim[\"time\"], y=bacteria_sim[\"population\"],\n", " label=\"simulation\", style=\"--\")\n", "bacteria.add_to_plot(ax=ax, x=bacteria_exact[\"time\"], y=bacteria_exact[\"population\"],\n", " label=\"exact\", style=\"-\")\n", "ax.legend(loc=\"lower right\");\n", "ax.text(0.05, 0.8, \"$\\Delta{}t=0.01$\\ngrowth rate = 0.1\", fontsize=14,\n", " transform=ax.transAxes);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Quantifying error" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Global truncation error\n", "\n", "\\begin{equation}\n", "E_{n}=P_{\\text{exact}}\\left(t_{n}\\right)-P_{\\text{approx}}\\left(t_{n}\\right)\n", "\\end{equation}\n", "\n", "### Local truncation error\n", "\n", "\\begin{equation}\n", "e_{n+1}=P_{\\text{exact}}\\left(t_{n+1}\\right)-P_{\\text{approx}}\\left(t_{n+1}\\right)=\\dfrac{1}{2}\\left.\\dfrac{d^{2}P(t)}{dt^{2}}\\right\\rvert_{t=\\bar{t}_{n}}\\Delta{}t^{2}\n", "\\end{equation}\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Relative percent error" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "relative_time_step_errors = []\n", "for time_step in [1, 0.5, 0.1, 0.01]:\n", " bacteria_sim = bacteria.simulation(p0=100, growth_rate=0.1, time=50, delta_t=time_step)\n", " bacteria_exact = bacteria.exact(p0=100, growth_rate=0.1, time=50, delta_t=time_step)\n", " relative_percent_error = np.abs(bacteria_sim[\"population\"] - bacteria_exact[\"population\"]) * 100 / bacteria_sim[\"population\"]\n", " relative_time_step_errors.append([50, time_step, relative_percent_error.tail(1).values[0]])\n", " " ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [], "source": [ "errors_df = pd.DataFrame({\"time step size\": [value[1] for value in relative_time_step_errors],\n", " \"relative error\": [value[2] for value in relative_time_step_errors]})" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXMAAAEUCAYAAADZS9ZwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3X90XGd5J/DvMx5LI2k8libjkSLJkptjijd24mAblToUEpZskqYQk6RL4DRtFliXLNvtlhaOW1igCW1DqUNZSgtxG0x2tyctNJRmQ8IJv5IQB4xt7CR2B1ZJLVmSJXkyGo1H8mg0mnf/0Fi2b/xDlh/plR59P+f4WJo7c+e539E8urr3nfuKcw5ERLSwhXwXQEREl47NnIjIADZzIiID2MyJiAxgMyciMoDNnIjIADZzIiID2MyJiAxgMyciMoDNnIjIgPBcPVEikXCrVq2aq6cjIjJh7969aefcigvdb86a+apVq7Bnz565eroZS6VSWLNmje8yTGCWupinroWSp4h0Ted+PMwSUFVV5bsEM5ilLuapy1qebOYBiUTCdwlmMEtdzFOXtTzZzAP6+vp8l2AGs9TFPHVZy3POjpkvFNZ+W/vELHXNdZ7j4+M4cuQIxsbGYHHeg3K5jEOHDvkuAwAgIqiursbKlSuxdOnSGa2DzTygUCj4LsEMZqlrrvM8cuQIamtr0dLSAhGZ0+eeC8Vicd4cN3fOYWhoCEeOHMEVV1wxo3XwMEtAPp/3XYIZzFLXXOc5NjaGhoYGk40cmNwzny9EBA0NDRgbG5vxOtjMA9rb232XYAaz1DXXeTrnzDZyYP6NZhGRSzqcxWYe0NU1rSGdNA3MUhfzfK377rsPDz744DmXP/3009i7dy8A4JFHHsFjjz02taxYLM56fXNpQR8zX7XtcfV1bk6WsWvny2rrO3z/LWrrWmgikYjvEkzxnecvfuIp1fX9/N4bpn3fmf6V8Mwzz6CxsREbN27EnXfeecYyzb86yuUyQqHQa76ezv21LOhmPhu6R+z+WTnX6uvrfZdgymLL8+GHH8aOHTuQy+XwyCOPoFgs4p577sGJEydwyy234NOf/vTUfcvlMj760Y/iqaeewpIlS/CFL3wBL7/8Mr785S9j6dKlSCaTePHFF9HY2Iif/exn6OjowB133IEnnngCjz76KHbs2IEHHngAX/3qV1FdXY0HHngAb37zm8+o5yMf+QieeuopLFu2DA8++CBqampw0003IR6P45577sHDDz+M6upq1NbW4h//8R+xfft2PPTQQ4hEIvjMZz6Dt7/97fjABz6AI0eOIJ/P47nnnlPNi808YF1DGT0jS3yXYUJ/f/+ia0CzaTHmedlll+HZZ58FAFx33XX42te+hpaWFtx2223Yv3//1P36+vpwxRVX4MCBA9i9ezfuu+8+PPbYY+jq6kJjYyO2bNmCF198EQCwZcsW7NixA7feeiuefPJJvPOd78RPf/pT7N69G/v370d/fz9uv/127Nq1a2r93/zmN+Gcw/79+7Fv3z58/OMfx/bt21EoFPDkk08iFovh4Ycfxvve9z7cdttt2LdvHx599FHs27cPx44dww033DB1uOfGG2/Ehz/8YfWs2MwDUlmeRtCSTCZ9l2DKYsxz7dq1AIBXX30V+/fvx5YtWwBMjuw5/RxCa2srRkZG0NHRgbGxMcRisXOu89prr8WHPvQhiAh++MMf4v7778eXvvQl7N69Gx0dHQCA4eHhMx7z/e9/H0888QSefvppAEBdXR0AYOXKlWc815VXXgkA+MEPfoB3vetdqK6uRmtrK6666iocPHjwjG3SxmYekKxxOJznoRYN+Xwe8XjcdxlmLOY8RQTNzc34yU9+csbtL7zwAgDgueeew3e+8x08/fTTGBgYwF133XXOdYVCIVx77bX4yle+gtWrV6OmpgYigq1bt2Lbtm3nfP5PfepTeM973jN12+HDh8/5HEuXLj3jBGu5XJ71E67cDQ2IV9v7pJsvo6OjvkswZTHnGY/HsXTpUnzve98DAOzYsQP9/f1TyzOZDBobG1FTU4Nnn312aojf0qVLceLEidesb8uWLbj33ntx6623AgA2b96MRx55BMePH0c+n8fnPve5M+5/7bXXYufOnRgfH0d/fz927Nhx3nrf8pa34Bvf+AbGxsbQ19eHAwcO4A1veMMlZXAhbOYBuwYYiRaOM9e12PPcuXMnPvaxj+H1r389nn/++TMub3DjjTdieHgYGzduxDPPPIOJiQkAwPXXX4/t27fja1/72hnretvb3oZQKISbb74ZANDR0YG77roLb3rTm/DGN74RLS0tZ9z/9ttvx9VXX41rrrkGN9xwA173utedt9b169fjjjvuQEdH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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "errors_df.plot(x=\"time step size\", kind=\"bar\");" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Unconstrained decay" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Model of Carbon-14 decay\n", "\n", "The rate of change of the mass of a radioactive substance is proportional to the mass of the substance, and the constant of proportionality is negative.\n", "\n", "Carbon-14, for example, has a constant of proportionality of $r=-0.000120968$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "What would the system dynamics diagram look like?" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "carbon_decay = bacteria.simulation(1.00, -0.000120968, 50000, 0.1)\n", "fig, ax = bacteria.create_plot(\n", " x=carbon_decay[\"time\"], y=carbon_decay[\"population\"], label=\"carbon-14\",\n", " style=\"-\", ylabel=\"Fraction of carbon-14\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Half-life\n", "\n", "The constant of proportionality is related to the concept of the half-life as follows\n", "\n", "\\begin{equation}\n", "t_{1/2}=-\\dfrac{\\ln(2)}{r}\n", "\\end{equation}" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Carbon-14 half-life = 5730 years\n" ] } ], "source": [ "print(f\"Carbon-14 half-life = {-np.log(2)/(-0.000120968):.0f} years\")" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Constrained growth" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Revise the model we have\n", "\n", "Add a carrying capacity to the model.\n", "\n", "Revise the system dynamics diagram." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Revised growth rate formula\n", "\n", "\\begin{equation}\n", "\\dfrac{dP}{dt}=r\\left(1-\\dfrac{P}{M}\\right)P\n", "\\end{equation}" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Revised code" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "def constrained_growth_model(p0, growth_rate, M, time, delta_t):\n", " total_sim_steps = int(time / delta_t)\n", " population = p0\n", " trace = [[0, population]]\n", " \n", " for step_index in range(1, total_sim_steps + 1):\n", " population_change = growth_rate * (1 - population / M) * population\n", " population += population_change * delta_t\n", " trace.append([step_index, population])\n", "\n", " population_df = pd.DataFrame({\n", " \"step_index\": [x[0] for x in trace],\n", " \"population\": [x[1] for x in trace],\n", " })\n", " population_df[\"time\"] = population_df[\"step_index\"] * delta_t\n", " \n", " return population_df" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "constrained_model = constrained_growth_model(p0=20, growth_rate=0.5, M=1000, time=20, delta_t=0.01)\n", "fig, ax = bacteria.create_plot(x=constrained_model[\"time\"], y=constrained_model[\"population\"],\n", " label=\"Constrained model\", style=\"-\")\n", "ax.legend(loc=\"best\");" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Population above the carrying capacity" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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goKglnHllVfy3nvvBb3OfXn22WdJSEjA5XLtVX7hhRdyyimnHPLyW9OEoQDrv78XvtjGaQ98QuEuDw9fNJ67zhxFrD0q0qEp1SE+//xzli1bRn5+PqtXr2bFihUsXrwYl8vFU089FdQy/H5/u+YPB5vNxquvvtr8uqamho8++ig06wrJUlWXsrO2njnP5fPb175iQk4y7103hRl657bqZnbt2kViYiJRUVFERUVxzz330LdvX04//XS++uorLr/8cvx+PzfeeCNjxoxh/PjxfPrppwAMHTqUs846i+uvv36v+Vu76667GDt2LNOnT2/+r3/JkiUceeSRjBs3jocffvh77/nLX/7CyJEjmTBhAkuWLAEgNzcXn8+Hx+MhPT0dr9dLY2Mjw4YN+977TzvtNF566aXm16+//jonn3xyh+yz1rQNowczxvDv/GJ+/9YG6hqauPW0EVx+7GHYbHqeWYXWPW9/zYbS2g5d5oh+vZk34/s/qHtMmzaNRx99lFNOOYXLL7+cc845h6FDh/Lmm28ye/ZsnnzySYqLixk0aBBr1qxh+fLl3H333SxevBiA2267jQkTJrB169bm+Vs77bTTeOGFF/jd737Hww8/zI033shtt93GBx98QHx8PMcffzznnntu8/wrV67k1VdfZeXKlezcuZNTTjmF/Px8Jk6cyOrVq6moqCA6Opply5aRmJjI0Ucf/b11Dhw4kB07dlBUVMSAAQNYuHAhP//5z/nb3/7WAXt1b5oweqhtuzz89rWv+OSbCo4cmMwfzj6CIWnOSIelVMhER0fzxhtv8OGHH/LEE08wf/785v/o98jKymL37t1MmjSJ+vp6EhISmutGjhx5wHVMmGB1eXfWWWdxzz33sHbtWjZv3szUqVMBqK6upqioqHn+jz76iB/96EfExsaSlZXF6NGjWbduHccffzyffvopxcXFzJs3j/fff5/MzEyOP/74Ntd73nnn8dJLL3HRRRfh8XgYPHhwu/dPMDRh9DDexiae+ORb/vHhJuw2G3efNYqLJmXrUYUKq/0dCYTK8uXLycjIYOrUqUydOpV58+bx+uuvN/+YA3z66acsWbKEpUuXUlZWxuzZsw9qXU1NTc1XhU2YMIF33nmnzfmio6NpaGhofu33+2loaOD4449n3rx5uFwu/vCHPzBt2jSKioq455572lzOueeey8yZ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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "constrained_model = constrained_growth_model(p0=20, growth_rate=0.5, M=1000, time=20, delta_t=0.01)\n", "constrained_model2 = constrained_growth_model(p0=1200, growth_rate=0.5, M=1000, time=20, delta_t=0.01)\n", "fig, ax = bacteria.create_plot(x=constrained_model[\"time\"], y=constrained_model[\"population\"],\n", " label=\"Start below M\", style=\"-\")\n", "bacteria.add_to_plot(ax=ax, x=constrained_model2[\"time\"], y=constrained_model2[\"population\"],\n", " label=\"Start above M\", style=\"-\")\n", "ax.legend(loc=\"lower right\");" ] } ], "metadata": { "celltoolbar": "Slideshow", "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.5" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }