diff --git a/rabbits-and-foxes.ipynb b/rabbits-and-foxes.ipynb index ccec156..84be075 100644 --- a/rabbits-and-foxes.ipynb +++ b/rabbits-and-foxes.ipynb @@ -90,6 +90,276 @@ "from matplotlib import pyplot as plt" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is one way to do it. Not necessarily the best, but it'll work:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "k1 = 0.015\n", + "k2 = 0.00004\n", + "k3 = 0.0004\n", + "k4 = 0.04\n", + "end_time = 600.\n", + "step_size = 1.\n", + "times = np.arange(0, end_time, step_size)\n", + "rabbits = np.zeros_like(times)\n", + "foxes = np.zeros_like(times)\n", + "rabbits[0] = 400.\n", + "foxes[0] = 200.\n", + "for n in range(len(times)-1):\n", + " delta_t = times[n+1] - times[n]\n", + " rabbits[n+1] = rabbits[n] + delta_t * (k1 * rabbits[n] - k2 * rabbits[n] * foxes[n])\n", + " foxes[n+1] = foxes[n] + delta_t * (k3 * rabbits[n] * foxes[n] - k4 * foxes[n])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhsAAAFkCAYAAACJu/k0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xl8lfWd9//XJytZyA5hM+wBBBWJ4EJBlDporaO9tR1p\nrVundtM6dLw79dZR1MfdOnZGnLZa/Vm1tlXudrAdW7Xu1XHBDVARAUXZIYGErGQjyff3xzknnhxC\nyEnOyXWW9/PxyANzXd9zrk8iyzvf1ZxziIiIiERLitcFiIiISGJT2BAREZGoUtgQERGRqFLYEBER\nkahS2BAREZGoUtgQERGRqFLYEBERkahS2BAREZGoUtgQERGRqFLYEBERkagKK2yY2bfN7D0zq/d/\nvG5mZwfdf8jMukI+ngp5j0wzu9vMqs2s0cxWmdnIkDaFZvaI/xm1ZvYrM8sZ3JcqIiIiXgi3Z2Mn\n8C/AHKACeBF43MxmBLX5K1AKjPJ/LA15j7uAc4ELgYXAGOCxkDaPAjOAxf62C4H7wqxVREREYoAN\n9iA2M6sBrnPOPWRmDwH5zrn/dYS2ecB+4GLn3J/816YBG4FTnHNv+YPLBqDCObfO32YJ8CQwzjlX\nOaiCRUREZEgNeM6GmaWY2cVANvB60K1FZlZlZpvM7B4zKwq6VwGkAS8ELjjnNgM7gFP9l04BagNB\nw+95wAEnD7ReERER8UZauC8ws1nAamAY0Ah8yR8YwDeE8hiwFZgM/AR4ysxOdb4ulFFAu3OuIeRt\nq/z38P+6L/imc67TzA4EtemtrmJgCbANaA336xIREUliw4AJwDPOuZpIv3nYYQPYBJwA5AMXAb8x\ns4XOuU3OuT8EtdtgZuuBT4BFwN8GW+xRLAEeifIzREREEtnX8M2bjKiww4ZzrgP41P/pOjObB1wL\nfKeXtlvNrBqYgi9sVAIZZpYX0rtR6r+H/9fQ1SmpQFFQm95sA/jd737HjBkz+mgmoZYtW8aKFSu8\nLiOu6Hs2MPq+hU/fs4HR9y08Gzdu5JJLLgH/v6WRNpCejVApQGZvN8xsHFAM7PVfWgN04FtlEjxB\ntAzf0Az+XwvM7MSgeRuLAQPe7KOOVoAZM2YwZ86cAX8xySg/P1/fszDpezYw+r6FT9+zgdH3bcCi\nMg0hrLBhZj/GNy9jBzAcX3fL6cDf+ffBuBnfnI1KfL0Z/wZ8BDwD4JxrMLMHgDvNrBbfnI+fAa85\n597yt9lkZs8A95vZd4AM4OfASq1EERERiT/h9myMBB4GRgP1wPvA3znnXjSzYcDxwKVAAbAHX8i4\nyTl3KOg9lgGdwCp8PSJPA98Lec5XgV/gW4XS5W97bZi1ioiISAwIK2w45/6xj3utwNlHuh/Urg24\nxv9xpDZ1wCXh1CYiIiKxSWejCEuXhm7yKkej79nA6PsWPn3PBkbft9gy6B1EY4WZzQHWrFmzRpOC\nREREwrB27VoqKirAt3v32ki/fyRWo4jIIOzYsYPq6mqvy5AIKikpoayszOsyRGKGwoaIh3bs2MGM\nGTNobm72uhSJoOzsbDZu3KjAIeKnsCHioerqapqbm7UZXQIJbI5UXV2dsGHj+U+fp7GtkS/N+JLX\npUicUNgQiQHajE7ixVu73+LcR8+lvbOdX5//ay6bfZnXJUkc0GoUERHpt3vfuZey/DLOKz+P/1j9\nHyTKIgOJLoUNERHply7XxZMfP8n/mv6/+M5J32H9vvWsq1x39BdK0lPYEBGRflm3dx37Du7ji+Vf\n5KzJZ5GTnsPznz7vdVkSBxQ2RESkX96tfBfDqBhTQVpKGvPL5vPy9pe9LkvigMKGiMSk5cuXk5KS\nwoEDB47aNiUlhe9///tHbffrX/+alJQUduzYEYkSk876feuZUjSF7PRsABaWLeTVHa/S2dXpcWUS\n6xQ2RCQmmRlmFvX3/OUvf8nDDz8c0eckqvX71nNc6XHdn596zKk0tDXw8YGPPaxK4oHChogkjUsv\nvZSWlpYe+1/cc889Chv99MG+Dzhu5Gdh44TSEwDf8IpIXxQ2RGTIeL1TqpmRkZHhaQ3xqr61nn0H\n9zGteFr3teLsYsbljeO9yvc8rEzigcKGiERFYM7Fxo0b+epXv0pRURELFixg/fr1XH755UyePJms\nrCxGjx7NN77xjSPOzdi/fz9f+cpXyM/Pp6SkhH/6p3+ira2t17aPPvoo06dPJysri5NOOolXXnml\nx/3QORsTJ05kw4YNvPTSS6SkpJCSksKZZ54JQEdHB7fccgvl5eVkZWVRUlLCggULeOGFFyL4XYof\n2+u3AzChYEKP6yeUnsC7VerZkL5pB1ERiYrA3Igvf/nLlJeX85Of/ATnHM899xzbtm3jyiuvZNSo\nUWzYsIH77ruPDz/8kNWrV/d4D+ccX/nKV5g4cSK33347b7zxBj/72c+oq6vj17/+dY+2L730Er//\n/e/5/ve/T2ZmJvfccw/nnHMOb731Fscee2x3TcFzNv7zP/+Tq6++muHDh3PjjTfinKO0tBSAm2++\nmdtvv52rrrqKuXPn0tDQwDvvvMPatWtZvHhxFL9zsWl7nS9sjC8Y3+P6cSOP45H1j3hRksQRhQ0R\niaoTTzyR3/72t92ft7W18YMf/KBHm5NPPpmvfvWrvPbaa8yfP7/HvcmTJ/PHP/4RgO985zsMHz6c\nX/7yl1x33XXMmjWru92GDRtYs2YNs2fPBuAf/uEfmDZtGjfddBOrVq3qtba///u/54YbbmDEiBEs\nXbq0x72nnnqKc889l1/+8pcD/+ITyPb67WSkZjAqd1SP6+XF5exs2EnLoRay0rM8qk5incKGSJxo\nboZNm6L/nOnTITs7Mu9lZnzrW9/qcS0zM7P7v9va2mhqauLkk0/GOcfatWt7hA0z43vf+16P119z\nzTXcc889PPXUUz3CxmmnndYdNACOOeYYzj//fJ544gmcc2GvbCkoKGDDhg1s2bKFKVOmhPXaRLSt\nbhtl+WWkWM/R96nFUwH4pPYTZo2c1dtLRRQ2ROLFpk1QURH956xZA5E8E27ixIk9Pq+trWX58uX8\n/ve/Z9++fd3XzYz6+vrDXh/6D/3kyZNJSUlh27ZtfbYDKC8vp7m5mf379zNy5Miw6r711lu54IIL\nKC8vZ9asWZx99tl8/etf57jjjjv6ixPQ9vrtjM8ff9j18uJyAD6q+UhhQ45IYUMkTkyf7gsCQ/Gc\nSMrK6tm1/uUvf5k33niDH/7wh5xwwgnk5ubS1dXFkiVL6OrqOur7RXrvjSNZsGABn3zyCY8//jjP\nPvssDzzwACtWrOC+++7jyiuvHJIaYsmO+h3MHDHzsOsjskeQl5nHxzXaa0OOTGFDJE5kZ0e2x8EL\ndXV1vPjii9x2223ccMMN3de3bNlyxNd8/PHHjB8/vkfbrq4uJkyYcFi7UJs3byY7O5sRI0Yc8f37\nCi8FBQVcdtllXHbZZTQ3N7NgwQKWL1+elGGjsqmSz0/8/GHXzYypRVO1sZf0SUtfRWTIpKamAhzW\ng7FixYpe/9F3znH33Xf3uPazn/0MM+Occ87pcX316tWsW/fZCaQ7d+7kz3/+M0uWLOkzUOTk5FBX\nV3fY9dCluNnZ2UyZMuWIy24TmXOOqqaqwyaHBkwtVtiQvqlnQ0SGzPDhw1m4cCF33HEH7e3tjB07\nlmeffZZt27bhnOv1NVu3buX888/n7LPP5vXXX+eRRx7hkksuOWzuRGBexTXXXENGRga//OUvMTOW\nL1/eZ00VFRXce++9/N//+3+ZMmUKI0eO5IwzzuDYY49l0aJFVFRUUFRUxNtvv82qVav6dQZLoqlv\nq6ets+2IYaO8qJyXtr00tEVJXFHYEJEhtXLlyu4VJc45lixZwl//+lfGjBlzWA9ESkoKv//97/nX\nf/1Xrr/+etLS0vj+97/PHXfc0aOdmbFo0SJOOeUUli9fzs6dO5k5cya/+c1veqxY6c1NN93Ejh07\n+OlPf0pjYyOnn346Z5xxBtdeey1//vOfee6552hra2P8+PH8+Mc/5rrrrov49yTWVTZVAvTZs1HZ\nVEljWyPDM4cPZWkSJ+xIP03EGzObA6xZs2YNc+J9YFuSxtq1a6moqEC/bxNHIv4/fWnbS5zx8Bl8\ndPVH3Utdg725601OeeAU1l61lhNHn+hBhTJYgd+3QIVzbm2k319zNkREpE9H69kILH/VvA05EoUN\nERHpU2VTJdnp2eRm5PZ6vzCrkPzMfLbWbh3iyiReKGyIiEifKpsqKc0p7XNVz/iC8d2HtYmEUtgQ\nEZE+VTdXMyLnyHuVAIzPV9iQI1PYEBGRPtW01FCcVdxnm/H547tPhhUJpbAhIiJ9qm6upiS7pM82\n4wvGs63uyPulSHJT2BARkT7VNB+9Z2NCwQQOHjrIgZYDfbaT5KSwISIifepXz4b/RFjN25DehBU2\nzOzbZvaemdX7P143s7ND2txqZnvMrNnMnjOzKSH3M83sbjOrNrNGM1tlZiND2hSa2SP+Z9Sa2a/M\nLGfgX6aIiAxEl+viQMsBirOPMmejwB82NG9DehFuz8ZO4F+AOUAF8CLwuJnNADCzfwGuBq4C5gEH\ngWfMLCPoPe4CzgUuBBYCY4DHQp7zKDADWOxvuxC4L8xaRURkkOpb6+l0nUft2RiRPYKstCz1bEiv\nwjobxTn3ZMilG83sO8ApwEbgWuA259wTAGZ2KVAFXAD8wczygCuBi51zL/vbXAFsNLN5zrm3/MFl\nCb4tU9f521wDPGlm1znnKgf6xYqISHhqWmoAjjpnw8woyy9Tz4b0asBzNswsxcwuBrKB181sIjAK\neCHQxjnXALwJnOq/dBK+gBPcZjOwI6jNKUBtIGj4PQ844OSB1isiQ++dd95h/vz55Obmkpqayvvv\nv+91SRKm6uZqgKP2bIB/RUr9tihXJPEo7FNfzWwWsBoYBjQCX3LObTazU/EFgqqQl1ThCyEApUC7\nP4Qcqc0oYF/wTedcp5kdCGojIjGuo6ODiy66iOzsbO666y6ys7MZP36812VJmGqa/T0bR5mzAb5J\nou/seSfaJUkcGsgR85uAE4B84CLgN2a2MKJViUjc++STT9ixYwcPPPAAV1xxhdflyAAFlrIWZRUd\nte34/PE8tjF0Cp7IAMKGc64D+NT/6Tozm4dvrsYdgOHrvQju3SgFAkMilUCGmeWF9G6U+u8F2oSu\nTkkFioLaHNGyZcvIz8/vcW3p0qUsXbr06F+ciERMVZXvr4HQP48SX+pa68hMzWRY2rCjtj0m/xgO\ntByg5VALWelZQ1CdDMTKlStZuXJlj2v19fVRfWYk9tlIATKdc1vxhYHFgRv+CaEnA6/7L60BOkLa\nTAPK8A3N4P+1wMxODHrGYnxB5s2jFbNixQr+/Oc/9/hQ0BAZWldccQWLFi3CzLjoootISUnhzDPP\nBODFF19kwYIF5ObmUlhYyAUXXMCmTZu6X9va2sqMGTOYMWMGbW1t3ddra2sZPXo0n/vc53rsUrl5\n82YuuugiiouLycrKYu7cufzlL3/pUU9HRwe33HIL5eXlZGVlUVJSwoIFC3jhhReQvtW21lKYVdiv\ntuPyxgGwu3F3NEuSQVq6dOlh/06uWLEiqs8Md5+NH5vZAjMbb2azzOwnwOnA7/xN7sK3QuU8MzsO\n+A2wC3gcuieMPgDcaWaLzKwCeBB4zTn3lr/NJuAZ4H4zm2tm84GfAyu1EkUkPnz729/mhhtuwDnH\ntddey+9+9ztuuOEGXnjhBc4++2yqq6u55ZZb+Od//mdef/11Pve5z7Fjxw4Ahg0bxsMPP8yWLVu4\n4YYbut/zu9/9Lo2NjTz88MPdp49u2LCBU045hc2bN3P99ddz5513kpubywUXXMDjjz/e/dqbb76Z\nW2+9lcWLF3P33Xdz4403Mn78eNauXTu035g4VNtSS+Gw8MLGroZd0SxJ4pFzrt8fwK/wDaG04OvF\neBY4M6TNcmAP0IwvNEwJuZ+JLzxU45tg+l/AyJA2BfgCTD1QC9wPZB+ltjmAW7NmjROJF2vWrHGJ\n+vv2pZdecmbmHnvsse5rs2fPdqNGjXJ1dXXd195//32XmprqLr/88h6v/z//5/+4tLQ09+qrr7r/\n+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\nhSZe+elXAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(times, rabbits, label='rabbits')\n", + "plt.plot(times, foxes, label='foxes')\n", + "plt.legend(loc=\"best\") # put the legend at the best location to avoid overlapping things\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's copy and paste the code above, and turn it into a function so we can evaluate it with many different step sizes. In order to compare the different results we need to pick some quantity of interest. We'll choose the maximum number of foxes, because it's simple to find and presumably interesting, although if you care more about the time at which the maximum occurs, or the number of rabbits, or something else, then use that instead." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "step size 10.0\n", + "max foxes 9998.78475782\n", + "1\n", + "step size 6.309573444801933\n", + "max foxes 3757.41265232\n", + "2\n", + "step size 3.9810717055349722\n", + "max foxes 6831.75851318\n", + "3\n", + "step size 2.51188643150958\n", + "max foxes 4686.90809525\n", + "4\n", + "step size 1.5848931924611134\n", + "max foxes 3801.65788402\n", + "5\n", + "step size 1.0\n", + "max foxes 3379.27631701\n", + "6\n", + "step size 0.6309573444801934\n", + "max foxes 3146.04098438\n", + "7\n", + "step size 0.3981071705534973\n", + "max foxes 3012.6379837\n", + "8\n", + "step size 0.25118864315095796\n", + "max foxes 2932.87919521\n", + "9\n", + "step size 0.15848931924611134\n", + "max foxes 2884.18652591\n", + "10\n", + "step size 0.1\n", + "max foxes 2854.12476091\n", + "11\n", + "step size 0.0630957344480193\n", + "max foxes 2835.41436334\n", + "12\n", + "step size 0.039810717055349734\n", + "max foxes 2823.7085615\n", + "13\n", + "step size 0.025118864315095794\n", + "max foxes 2816.36116277\n", + "14\n", + "step size 0.01584893192461114\n", + "max foxes 2811.74114081\n", + "15\n", + "step size 0.01\n", + "max foxes 2808.83241288\n", + "16\n", + "step size 0.00630957344480193\n", + "max foxes 2806.99952212\n", + "17\n", + "step size 0.003981071705534973\n", + "max foxes 2805.84398119\n", + "18\n", + "step size 0.0025118864315095794\n", + "max foxes 2805.11527259\n", + "19\n", + "step size 0.001584893192461114\n", + "max foxes 2804.65564875\n" + ] + } + ], + "source": [ + "k1 = 0.015\n", + "k2 = 0.00004\n", + "k3 = 0.0004\n", + "k4 = 0.04\n", + "def solve_by_euler(step_size = 1.):\n", + " \"\"\"\n", + " Evaluate by simple Euler, with the given step size.\n", + " \n", + " Returns the peak number of foxes.\n", + " \"\"\"\n", + " end_time = 600.\n", + " times = np.arange(0, end_time, step_size)\n", + " rabbits = np.zeros_like(times)\n", + " foxes = np.zeros_like(times)\n", + " rabbits[0] = 400\n", + " foxes[0] = 200\n", + " for n in range(len(times)-1):\n", + " delta_t = times[n+1] - times[n]\n", + " rabbits[n+1] = rabbits[n] + delta_t * (k1 * rabbits[n] - k2 * rabbits[n] * foxes[n])\n", + " foxes[n+1] = foxes[n] + delta_t * (k3 * rabbits[n] * foxes[n] - k4 * foxes[n])\n", + " return foxes.max()\n", + "\n", + "step_sizes = []\n", + "maximums = []\n", + "for i in range(20):\n", + " print(i)\n", + " step_size = 10**(1-i/5)\n", + " print(\"step size\",step_size)\n", + " maximum = solve_by_euler(step_size)\n", + " print(\"max foxes\",maximum)\n", + " step_sizes.append(step_size)\n", + " maximums.append(maximum)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's plot on a semi-logarithmic plot (log scale on the x axis) and see what it looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nDBw4cN/rbO/79++/7wm/8b/BpIEDBzJr1qxOX9cSX0e5YjpXqhUrVjB69GgIz6BbUc7YpSQ4WwmZ\n1npJfwQ+ZWaLo+fj/M7MDixnA6tdGglOrR5U0o5fq7FzHWzPOeecslyYmmb8csY2M/bs2bOvTJ06\nlYceeqhN7IaGBsaNG8eXvvQldu7cWVJ58cUXefLJJ/ddYNsRjY2N9OnTh969e9OnT592pXfv3tx9\n991s3rw5Z4yRI0eyatWqDq87I+2/l8w65syZw8SJE8sW07lSpJnglHKb+BOE27XXE05LXS5pN+Fn\nEtblW9AVJ9uzKjZu3FiWOzXSjN3R+Jnkuth/p0+fnjX2tGnTuPPOO7OdPsz7Pj7tggsuyBp7ypQp\n3HjjjbS2trZZrtj3jz/+OPPnz293a25LSwvz5s3j2muvZfTo0bS2tuYsmXjZyurVq5k7d27W+A88\n8AAXXHABRx55JHv37qWlpSVryTVv48aNPPbYY1lj33PPPRx99NH07t27TdKSr2T7naKk1tZWFi1a\nxKJFi9rNO+CAAwqWnj17trl7KJshQ4Zw8803Z01iirk9esKECXlHWTr71N6ueJ7M7bffzq5du/wZ\nNa6ulTKCcwbQy8zmRD9o+SDwbsJFvpPNrP03Ux0r9whOviFqCF/yjY2NbaYl+zBbn5oZe/fuZffu\n3TnX3djYuG+oPB6jmNcQDnwd/Xty6WpoaKBv375069aNbt260b17932vC5XVq1fzxhtv5Izdr18/\nJk6cSGNjY97So0ePdtO+/OUvs2HDhpyxhw8fzuLFi/clLj169EBSUdvcFad50h5l8dNIbn9RVSM4\nZjY/9vpZYJik/oSfOfCjWyddfvnlOZMbgP79+3PZZZe1m5788s92MLjmmmt46aWXcsZuamriiiuu\nyBqjmNczZ87khRdeyBn/sMMOY8aMGfuW6ci/V1111b7HxmczZMgQvvnNbyKpTcksn+u9JC655BLW\nr1+fM/YRRxzBLbfcsq9+Q0NDm+XzvV+6dClXXnll1mc99OvXj+uuu46TTz6ZhoaGdiUTK19ZuHAh\n5513XioH8zQThQEDBuSNff311zNo0KCSYmeexZLmzwakPcriz5NxrgzKfdXy/lYo811UaT6rIu3n\nYNRq29PeL2nfmptm/FqN3RV3C8X/bsr5HJkMf56M2x9UxW3iwB3FlHI3sNpLuRMcs9o9qKQdv1Zj\np32wTTN+rcY2Sz8BMUv/cQvO1btqSXBaCRcWzwHuzVXK3cBqL2kkOLV8UKnVttf6wTbN+LUa2yz9\nBMRHWZzrnGpJcL4LvEr4faeLgf7lbkwtljQSHLPaPqjUattr/WBbiw9ATDu2JyDOVbeqSHAsHMx7\nAlOAh4E3gJ8AZxDdjbU/lrQSHLPaPaikHb9WY/vPY3R9bOdcdauqJxlnSBoCTAPOI9yNNcLMtpcU\nrIal9SRjSPeXkNP+leVabXva+8U559xfVNWTjPctKL0dmE5IcnoAwzzBKW+C45xzztWzNBOcho5U\nltRT0hRJDwPPEH65+3PA4ftjcuOcc8656lT0g/4k3QT8A7CRcEv4FDPbklbDnHPOOedK1ZEnGX8W\neJ7we1OnAKdke1qumZ1dnqY555xzzpWmIwnOXYQrnZ1zzjnnqlrRCY6ZTUuxHc4555xzZdOhi4yd\nc84552qBJzjOOeecqzue4DjnnHOu7niC45xzzrm64wmOc8455+qOJzjOOeecqzue4DjnnHOu7niC\n45xzzrm64wmOc8455+qOJzjOOeecqzue4DjnnHOu7niC45xzzrm6UxMJjqQvS1om6XVJmyTdK+nd\nWep9TdJLkt6U9LCkIxPze0r6rqQtkpol/VRSU6JOP0n/K2mbpK2SbpPUK+1tdNVj9uzZlW6CKyPv\nz/rjfeqKURMJDjAWuAE4EfgboBFYIOktmQqSrgA+B3waOAF4A5gvqUcszn8BfwdMBE4GDgXuSaxr\nFjAcGB/VPRm4ufyb5KqVf3nWF+/P+uN96orRvdINKIaZ/W38vaRpwGZgNPBYNPkS4Otm9mBU5zxg\nE/Bh4CeSDgI+CfyDmf0iqjMdWCvpBDNbJmk4cAYw2sxWRnU+Dzwk6Ytm9nLKm+qcc865MqiVEZyk\nvoABrwJIegcwGFiYqWBmrwO/BsZEk44nJHTxOk8Dz8fqvA/YmkluIo9E6zoxjQ0pt3L/z6Yz8Tqy\nbDF1C9XJNz/XvGr/n2Aa7Ss1Zrn7s1A97890Y3Z0uTQ/o7Xan+DfuR2d15V9WnMJjiQRTjU9Zma/\njyYPJiQhmxLVN0XzAAYBu6PEJ1edwYSRoX3MrIWQSA2mBviHrWPzqv0LtFYPiJ7gZFer/VlsfU9w\nKhvPv3PbqolTVAk3AUcDJ1W6IZEDANauXVvpdgCwbds2VqxYURXxOrJsMXUL1ck3P9e8bNPLvQ87\n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\nfwfZAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.semilogx(step_sizes, maximums, 'kd-')\n", + "plt.ylabel(\"Maximum number of foxes in 600 days\")\n", + "plt.xlabel(\"Step size for Euler method (days)\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Smaller step sizes give more accurate results, and we see it converges towards the \"true\" solution as we go left on the graph. Let's assume the smallest we tried is in fact \"true\", and calculate the errors relative to this. Then plot those against step size on a log-log plot. The slope should give us the order of convergence of the method." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "maximums = np.array(maximums)\n", + "errors = maximums - maximums[-1] # calculate error relative to the last value" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false, + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\nHtbcw1HuaFHucNIdkRQ0fVfywZtvvsmsWbOYNGkSTU1Nof+fkogEm6bvZlGQH81IOOzcuZO5c+fy\nzDPP0NzcTFFRke+SRETSokczEbd06VLfJXgRlty9/0Coqqpi7dq13HrrrSmbkLDkHinljhblDiet\nIxJS06dP912CF0HOHY/HqayspLGxkUQiwY4dO3j99df5yU9+wmmnnZbyZ4OcOxPKHS3KHU56NJOC\nHs1IrsTjcUpKSmhtbR20bPvhhx+ulVJFJHD0aEYkQCorK5M2IQCtra1UVVV5qEpEZOypERHJA42N\njUmbEICuri4aGhpyXJGISG6oEQmpzZs3+y7BiyDmds6RSCRSnpNIJAZtcNdXEHNng3JHi3KHkxqR\nkFq2bJnvErwIYm4zo7CwMOU5hYWFmNmQrwcxdzYod7QodzipEQmp6667zncJXgQ19+c///khXyso\nKCAWi6X8+aDmzpRyR4tyh5MakZAK+3SvoQQ199SpU4HupqOvgoICZsyYQXV1dcqfD2ruTCl3tCh3\nOGn6bgpa4l1y4YUXXuDoo4/mvPPO4wMf+AANDQ0kEgkKCwuJxWJUV1dr6q6IBIaWeM8irSMiY+39\n99/n05/+NG+++SabNm3atY+Mcy7lmBARkXyndUQibsWKFb5L8CJoua+44gqefvppVq9e3W8zu5E2\nIUHLnS3KHS3KHU5qREKqs7PTdwleBCn3888/z/Lly1m6dCklJSUZvVeQcmeTckeLcoeTHs2koEcz\nMlZ27NjB8ccfTyKRoLm5md133913SSIiWZXuoxlteifiQXV1Nb///e954okn1ISISKTp0YxIjj3z\nzDNcdtllVFVV9f5rQUQkstSIhNS2bdt8l+BFvud+7733OPfccznqqKP44Q9/mLX3zffcY0W5o0W5\nw0mNSEgtXrzYdwle5Hvuiy++mJdffpnVq1cPu6z7SOR77rGi3NGi3OGkMSIhdckll/guwYt8zN27\nJkhTUxNXXnkll19+OUcccURWPyMfc+eCckeLcoeTZs2koFkzMlrxeJzKykoaGxtJJBKMGzeO7du3\n87GPfYyNGzcybtw43yWKiIwpzZoR8SQej1NSUkJraytdXV39Xnvrrbfo7OzUku0iIj0iN0bEzD5v\nZpvN7AUzO993PRI+lZWVSZsQgJdffpmqqioPVYmI5KdINSJmNg64CvgMcCzwfTPb22tRY2TVqlW+\n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\nD+VN9MjQUaYoAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot all but the last point, because log(0.0) will cause problems scaling the axes\n", + "plt.loglog(step_sizes[:-1], errors[:-1], 'ko-')\n", + "\n", + "plt.axis('equal') # scale the axes to make a square a square\n", + "plt.grid(True) # turn on the grid lines\n", + "plt.xlabel(\"$\\Delta t$\", fontsize=16)\n", + "plt.ylabel(\"Error\", fontsize=16)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The straight line slope of 1 shows that Simple Euler is a first order algorithm. \n", + "We only get below an error of $10^0$ (1.0) in this quantity of interest with the second smallest step size, $\\sim$0.002.\n", + "The Euler method is not very good - it requires tiny steps and converges slowly. You might have heard of (and might like to try) some [Ruge-Kutta](https://en.wikipedia.org/wiki/Runge–Kutta_methods) methods. If you do, first set up the right hand side of the ODE as a function, because you'll need to call it repeatedly within a single iteration." + ] + }, { "cell_type": "code", "execution_count": 8,