diff --git a/rabbits-and-foxes-kmc-question.ipynb b/rabbits-and-foxes-kmc-question.ipynb index 657efb4..b89bd61 100644 --- a/rabbits-and-foxes-kmc-question.ipynb +++ b/rabbits-and-foxes-kmc-question.ipynb @@ -23,7 +23,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 65, "metadata": {}, "outputs": [], "source": [ @@ -71,14 +71,103 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 55, "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "All foxes have died out.\n" + ] + }, + { + "data": { + "image/png": "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165dePDBB+Hl5WXZ7uLigtjYWKSkpFRpobjyuoQQVtdiMBjqvb4Ac6tNQkIC/v33XwBAXl4evvnmG4wdO9bqumpDCFFlW03ON2DAAKjVasv74OBgBAUFWW4ZAoDBYMD8+fPRunVrqFQqKBQKqFQqnDx58po/x5iYGKv30dHRAIB77723yvbLly9XuW12pfXr16Nly5YYNGjQdct0794dubm5GDlyJH755RdkZ2dftyxRfWCnaiI78PXXXyM6OhoKhQLBwcEICQmpUsbDw6PKkzwZGRnIzc2FSqW65nErvmQuXboEANBqtVb7FQoF/P39rbYtXLgQzzzzDKZMmYI33ngDAQEBcHFxwWuvvVathCgnJwdCiGteQ2hoqFU8Fa4su2XLFgwYMMBq/9mzZ9G0aVPL+7quLwC477770LRpU3zyySfo06cPVqxYgcLCwlu+XQZU9nWqqI+anu/qnxkAuLq6Wt0inTVrFj755BO88MIL6NevH3x9fSGXy/HYY49Zlavg5+dn9b6ijq63vaSk5LqJYVZWFpo0aXLNfRViY2NhMBiwdOlSPPDAAzCZTOjWrRvefPNN3HnnnTf8LFFdYEJEZAeio6MtT01dz7WeugoICIC/v7+lP8/VKloRKr5A09PT0ahRI8t+g8FQJTn59ttv0b9/fyxZssRqe35+/s0vBLB88Vb0FblSamqqJe4rXXltXbp0wZ49e6z2X5k4AHVfX4D5KbGnnnoKL7/8Mt577z0sXrwYAwcORKtWrW543ur49ddfAVgPV2Dr83377bcYM2YM5s+fb7U9OzsbPj4+tQ29WgIDA5GSknLTcuPHj8f48eNRWFiIrVu3Yvbs2YiJicGJEycQHh5epzESXY23zIgcWExMDC5dugSj0YiuXbtWeVV8mVZ88a5cudLq8z/88EOVW1IymQyurq5W2w4dOoQdO3ZYbasoc3Vrg6enJ3r06IE1a9ZY7TOZTPj2228RFhaGli1bXvea1Gp1leu4XotOTVW3vio89thjUKlUGD16NI4fP46pU6fecgwbN27EF198gd69e6Nv3751dr5r/Rx///33ehnAcsiQIThx4oRlHKab8fT0xJAhQ/DKK69Ar9fjyJEjdRwhUVVsISJyYI888ghWrlyJe+65BzNmzED37t2hVCqRkpKCTZs24b777sP999+P6OhoPProo/jggw+gVCoxaNAgHD58GO+++26V20oxMTF44403MHv2bPTr1w/Hjx/HvHnzEBERYZU8qdVqhIeH45dffsHAgQPh5+eHgIAANG3aFHFxcbjzzjsxYMAAPPvss1CpVFi8eDEOHz6M77///oZjDNWl6tZXBR8fH4wZMwZLlixBeHg4hg4dWu1zmUwmyzhDpaWluHDhAtavX48ffvgB0dHR+OGHH6p85lbOd7WYmBisWLECUVFRaN++Pfbt24d33nmnXgaDnDlzJlavXo377rsPL774Irp3747i4mJs2bIFMTExGDBgACZNmgR3d3f06dMHISEhSE9PR1xcHDQaDbp161bnMRJdjQkRkQNzcXHBr7/+ig8//BDffPMN4uLiLNNZ9OvXD+3atbOUXbZsGYKDg7FixQp89NFH6NixI3766Sc88sgjVsd85ZVXUFRUhGXLluHtt99G69at8emnn2Lt2rVVpulYtmwZnnvuOQwbNgylpaUYO3YsVqxYgX79+uHvv//G7NmzMW7cOJhMJnTo0AG//vprlc679akm9VXh4YcfxpIlS/DEE09ALq9+o3pxcTF69eoFwDxqdWBgIDp06IClS5di9OjR1231qu35rvbhhx9CqVQiLi4OBQUF6Ny5M9asWYNXX3211sesLrVajW3btmHOnDn4/PPPMXfuXPj6+qJbt26YPHkyAOC2227DihUr8MMPPyAnJwcBAQHo27cvvv76a6vhE4jqi0xc63EHIiICADzzzDNYsmQJkpOTr9mZ2dHPR0RmbCEiIrqGnTt34sSJE1i8eDEef/zxOk9O6vt8RGSNLURERNcgk8ng4eGBe+65B8uXL7/lsYfs7XxEZI0JERERETk9PnZPRERETo8JERERETk9JkRERETk9PiUWTWZTCakpqZCrVZLNqgcERER1YwQAvn5+QgNDb3h2F5MiKopNTUVjRs3ljoMIiIiqoXk5OQbjtTOhKiaKiZ9TE5OrjLVAREREdmnvLw8NG7c2Gry5mthQlRNFbfJvL29mRARERE5mJt1d2GnaiIiInJ6TIiIiIjI6TEhIiIiIqfHPkQ2ZjQaUVZWJnUYTk+pVMLFxUXqMIiIyEEwIbIRIQTS09ORm5srdShUzsfHB1qtluNGERHRTTEhspGKZCgoKAgeHh78EpaQEAJFRUXIzMwEAISEhEgcERER2TsmRDZgNBotyZC/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XVV66aWXxNatW8XZs2fFoUOHxMsvvyzkcrnYsGGDEIJ1dSNXPmUmBOvqSs8884zYvHmzOHPmjNi5c6eIiYkRarXa8v8266rS7t27hUKhEG+99ZY4efKkWLlypfDw8BDffvutpYw91RcTIol98sknIjw8XKhUKtG5c2fLI9TOZNOmTQJAldfYsWOFEOZHM2fPni20Wq1wdXUVt99+u0hMTLQ6RnFxsZg6darw8/MT7u7uIiYmRly4cEGCq6k716ojAGL58uWWMqyrShMmTLD82woMDBQDBw60JENCsK5u5OqEiHVVqWKcHKVSKUJDQ8WIESPEkSNHLPtZV9Z+++030bZtW+Hq6iqioqLE559/brXfnupLJoQQtm1zIiIiInIs7ENERERETo8JERERETk9JkRERETk9JgQERERkdNjQkREREROjwkREREROT0mREREROT0mBARkVOYM2cOOnbsKHUYRGSnODAjETm8m816PXbsWCxatAilpaXw9/evp6iIyJEwISIih3flbNmrV6/G66+/bjWppLu7OzQajRShEZGD4C0zInJ4Wq3W8tJoNJDJZFW2XX3LbNy4cRg+fDjmz5+P4OBg+Pj4YO7cuTAYDHjuuefg5+eHsLAwfPnll1bnunjxIh5++GH4+vrC398f9913H86dO1e/F0xENseEiIic1t9//43U1FRs3boVCxcuxJw5cxATEwNfX1/s2rULU6ZMwZQpU5CcnAwAKCoqwoABA+Dl5YWtW7di27Zt8PLywt133w29Xi/x1RDRrWBCREROy8/PDx999BFatWqFCRMmoFWrVigqKsLLL7+MyMhIvPTSS1CpVPj3338BAKtWrYJcLscXX3yBdu3aITo6GsuXL8eFCxewefNmaS+GiG6JQuoAiIik0qZNG8jllX8XBgcHo23btpb3Li4u8Pf3R2ZmJgBg3759OHXqFNRqtdVxSkpKcPr06foJmojqBBMiInJaSqXS6r1MJrvmNpPJBAAwmUzo0qULVq5cWeVYgYGBdRcoEdU5JkRERNXUuXNnrF69GkFBQfD29pY6HCKyIfYhIiKqptGjRyMgIAD33Xcf/vnnH5w9exZbtmzBjBkzkJKSInV4RHQLmBAREVWTh4cHtm7diiZNmmDEiBGIjo7GhAkTUFxczBYjIgfHgRmJiIjI6bGFiIiIiJweEyIiIiJyekyIiIiIyOkxISIiIiKnx4SIiIiInB4TIiIiInJ6TIiIiIjI6TEhIiIiIqfHhIiIiIicHhMiIiIicnpMiIiIiMjpMSEiIiIip/f/MjWyCYVKYSMAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "time = 0\n", + "\n", + "rabbit = 400\n", + "fox = 200\n", + "end_time = 600\n", + "nofox = 0 #counter for number of times foxes die out\n", + "\n", + "k1 = 0.015 \n", + "k2 = 0.00004 \n", + "k3 = 0.0004\n", + "k4 = 0.04 \n", + "\n", + "times = [time]\n", + "rabbits = [rabbit]\n", + "foxes = [fox]\n", + "\n", + "while time < end_time:\n", + " rate_rb = k1 * rabbit\n", + " rate_rd = k2 * rabbit * fox\n", + " rate_fb = k3 * rabbit * fox\n", + " rate_fd = k4 * fox\n", + "\n", + " rates = np.array([rate_rb, rate_rd, rate_fb, rate_fd]) \n", + " cumulative_rates=rates.cumsum() \n", + " total_rate=cumulative_rates[-1] \n", + " \n", + " dt = -np.log(np.random.uniform()) / total_rate\n", + " time += dt\n", + " \n", + " u = np.random.uniform(0,1) \n", + " for i, cum_rates in enumerate(cumulative_rates): \n", + " if cum_rates / total_rate > u:\n", + " event = i \n", + " break\n", + "\n", + " if event == 0: \n", + " rabbit += 1\n", + " elif event == 1: \n", + " rabbit -= 1\n", + " elif event == 2: \n", + " fox += 1\n", + " elif event == 3: \n", + " fox -= 1\n", + " else:\n", + " raise ValueError(\"event not in 0,1,2,3\") \n", + " \n", + " times.append(time)\n", + " rabbits.append(rabbit)\n", + " foxes.append(fox)\n", + "\n", + "\n", + "if fox == 0:\n", + " nofox = nofox + 1\n", + " print(\"All foxes have died out.\") \n", + "\n", + "#after a loop is made for the KMC, add a function for probability of foxes dying out\n", + "# i.e., nofox / number of simulations\n", + "\n", + "plt.plot(times, rabbits, label = \"Rabbits\")\n", + "plt.plot(times, foxes, label = \"Foxes\")\n", + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Population\")\n", + "plt.title(\"Predator-Prey Dynamics\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, "source": [] } ],