{ "metadata": { "name": "", "signature": "sha256:b648fbb56068a40dedb8a725fa4865ef5f669a4ed39b839700adfc5e31e1be31" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as pt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider $y'=-100y+100t + 101$.\n", "\n", "Exact solution: $y(t)=1+t+ce^{-100t}$.\n", "\n", "Exact solution derivative: $y'(t)=1-100ce^{-100t}$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def f(t, y):\n", " return -100*y+100*t + 101" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "t_end = 0.2\n", "\n", "def plot_solution(t0, y0):\n", " c = (y0-1-t0)/np.exp(-100*t0)\n", " t_mesh = np.linspace(t0, t_end, 1000)\n", " solution = 1+t_mesh+c*np.exp(-100*t_mesh)\n", " \n", " pt.plot(t_mesh, solution, label=\"exact\")\n", " pt.plot(t0, y0, \"ko\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [ "plot_solution(t0=0, y0=1)\n", "plot_solution(t0=0, y0=1.2)\n", "plot_solution(t0=0, y0=-0.5)\n", "plot_solution(t0=0.05, y0=-0.5)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nYsWKKe+baiJpT8MwjPr6emNwcPC81hyvptKWfX19xltvvWV8+9vfPm2Rgz6bZ4qkPQ1Dn80Pm0p7\nvv7668bIyIhhGIaxffv2iPrOWR0R7N69m/nz51NfX09mZiY33HADzzzzzGnbnHpi2ooVKxgZGaGn\np2dK+6aambbnqed4GJoJBKbWlqWlpSxbtozMzMxp75tqImnPk/TZ/IuptOdll12GzWYDwr/rnZ2d\nU973w2Y1CLq6uqipqRl/Xl1dTVdX15S26e7uPue+qSaS9oS/nNy3bNkyfvazn52fouPUVNpyNvZN\nVpG2iT6bp5tue/7iF79g3bp1M9oXIjizeCrOdpLZh+kvgamJtD1fe+01Kisrp3xyXzKbaltGe99k\nFWmbTPfE02Q3nfb8wx/+wC9/+Ut27tw57X1PmtURQVVVFR0dHePPOzo6qK6unnSbzs5Oqqurp7Rv\nqplpe1aduAVoZWUlEB6iX3vttSl9EcBIPl/6bJ4p0japqKgA9Nk8aartuXfvXm666Sa2bNlCYWHh\ntPY9TfQPc/yF3+835s2bZxw5csTwer3nPLj5xhtvjB/wmMq+qSaS9nQ6nYbdbjcMwzAcDodx+eWX\nGy+88ML5/QHiyHQ+X3fcccdpBzf12TxTJO2pz+aZptKe7e3tRkNDg/HGG29Me98Pm9UgMAzD2LZt\nm7Fw4UKjoaHB+O53v2sYhmH85Cc/MX7yk5+Mb3PLLbcYDQ0NxkUXXWS8/fbbk+6b6mbanm1tbUZj\nY6PR2NhoLF26VO1pnLstjx8/blRXVxv5+flGQUGBUVNTY4yNjZ1131Q30/bUZ3Ni52rPjRs3GkVF\nRcbFF19sXHzxxcby5csn3XcyOqFMRCTF6VaVIiIpTkEgIpLiFAQiIilOQSAikuIUBCIiKU5BICKS\n4hQEIiIpTkEgIpLi/j8pUixk11Z2wQAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "def integrate_ode(step_function, t0, y0, h):\n", " times = [t0]\n", " ys = [y0]\n", "\n", " while times[-1] <= t_end + 1e-14:\n", " t = times[-1]\n", " ys.append(step_function(t, ys[-1], h))\n", " times.append(t + h)\n", "\n", " pt.plot(times, ys, label=step_function.__name__[:4])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [ "def forward_euler_step(tk, yk, h):\n", " return ...\n", "\n", "def backward_euler_step(tk, yk, h):\n", " return ...\n", "\n", "t0 = 0.05\n", "y0 = -0.5\n", "h = 0.1 # start this at 0.001, then grow\n", "\n", "plot_solution(t0=t0, y0=y0)\n", "integrate_ode(forward_euler_step, t0=t0, y0=y0, h=h)\n", "integrate_ode(backward_euler_step, t0=t0, y0=y0, h=h)\n", "pt.xlim([t0, t_end])\n", "pt.ylim([-1, 2])\n", "pt.legend()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 35, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEACAYAAAC+gnFaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVPX6B/DPyBIJyqICChgKKIjIYBo3TUGTTEtSs1zy\nYuotW9TrrbyVdRPN/eYvU6y03Mg1u9ckRW5ug5khFiNibmgCw67sCMIwnN8f30QQ0IFzDuecmef9\nes0LBs6c87DMec73PN9FxXEcB0IIIWarndQBEEIIkRYlAkIIMXOUCAghxMxRIiCEEDNHiYAQQswc\nJQJCCDFzvBKBTqfDsGHD4O/vj759+2Lt2rVNbjd37lz4+PggMDAQWq2WzyEJIYQIzJLPi62srPDp\np59CrVajvLwcjz76KMLCwuDn51e3TWxsLK5evYrU1FScPn0ar7/+OhISEngHTgghRBi8WgSurq5Q\nq9UAADs7O/j5+SE7O7vBNjExMZg2bRoAIDg4GMXFxcjLy+NzWEIIIQISrEaQlpYGrVaL4ODgBl/P\nysqCh4dH3XN3d3dkZmYKdVhCCCE8CZIIysvLMWHCBHz22Wews7Nr9P17Z7FQqVRCHJYQQogAeNUI\nAECv1+P555/H1KlTMXbs2Ebfd3Nzg06nq3uemZkJNze3Rtup1WokJyfzDYcQQsyKl5cXrl69ymsf\nvFoEHMdh5syZ6NOnD+bNm9fkNuHh4YiOjgYAJCQkwMHBAS4uLo22S05OBsdxgj8WLlzYou03/roR\nEfsiRIlFrJilfigtXopZ3Mec2Dn4LOEzxcSrxN9x/ce1a9f4nMYB8GwR/Pzzz9i+fTv69euHoKAg\nAMCyZcuQkZEBAJg1axZGjx6N2NhYeHt7w9bWFlu2bOEdtJi0uVoEuQZJHQYhimXVzgrVhmqpwyAt\nwCsRPPHEE6itrX3gdlFRUXwO06a0uVpM9J8odRiEKJa1hTX0Br3UYZAWMPmRxaGhoUZva6g1ICUv\nBWpXtXgBGaElMcuB0uIFKGYxWVmwFoFS4q1PiTELQcVxnCwWplGpVJA6lAs3LiB8VziuzuVXeCHE\nnC05sQS3a25jyfAlUodiFoQ4d/LuNWRKtDlaBHWl+gAhfFi1s0KpofSB2zk5OaGoqKgNIjINjo6O\nKCwsFGXflAjqoUIxIfwZWyMoKiqS/C6Akog5/srkawQtoc3Von/X/lKHQYii3akREOWgRPAnjuPY\nrSFqERDCi7WFNfS11GtISSgR/Cm9JB02ljZwsWs82I0QYjwaR6A8lAj+RIViQoRBLQLloUTwJ22u\nFv1dqT5ACF9UI2i5l19+Gf/6178kOz4lgj9pc6lFQIgQaGSx8lAi+FNSThIVigkRgKnUCLKzs/H8\n88/D2dkZPXv2xLp161BYWAgPDw8cOHAAAJuC39vbG9u3bwcAHDx4EEFBQbC3t0f37t2xaNGiBvs8\nefIkBg0aBEdHR3Tv3h3btm3DV199hZ07d2LVqlXo0KEDnnvuuTb/WWkcAYD8W/mo0FfA08FT6lAI\nUTxTqBHU1tZizJgxGDduHPbs2QOdTocRI0agd+/e2Lx5MyIiInDu3DksWLAA/fv3x9SpUwGwlRq3\nb98Of39/pKSkICwsDGq1Gs899xzS09MxevRofPXVV5gwYQJKSkqg0+kQGBiIU6dOwcPDA4sXL5bk\n56VEAFYoVruqacEcQgQgZI1AiLdka8asnTlzBjdv3sSHH34IAOjRowf+9re/Yffu3di8eTNeeOEF\nDB8+HMXFxTh37lzd60JCQuo+DwgIwKRJkxAfH4/nnnsOO3fuRFhYGCZOZJNaOjk5wcnJqV6c0g2u\no1tDoEIxIUISskbAcfwfrZGeno7s7Gw4OjrWPZYvX478/HwAwCuvvILff/8dL7/8MhwdHeted/r0\naQwbNgzOzs5wcHDAhg0bUFBQAADQ6XTo2bMn79+JGCgR4M/6ABWKCRGEKdQIunfvjh49eqCoqKju\nUVpaigMHDsBgMODVV19FREQE1q9f32BhmClTpmDs2LHIzMxEcXExXnvttbor/e7duze7iIzUdyMo\nEYDmGCJESKZQI3jsscfQoUMHrFq1CpWVlTAYDDh//jzOnDmDZcuWwcLCAlu2bMH8+fMRERFRty5L\neXk5HB0dYW1tjcTEROzcubNun1OmTMGRI0ewd+9e1NTUoKCgoG55XhcXF/zxxx+S/KwAJQKUVpUi\nuywbvTv3ljoUQkyCKYwjaNeuHQ4cOICzZ8+iZ8+e6NKlC1599VUcP34ca9asQXR0NFQqFd59912o\nVCqsXLkSAPD555/jo48+QseOHfHxxx/X1QMA1iKIjY3F6tWr0alTJwQFBdXVF2bOnIkLFy7A0dER\n48ePb/Of1+zXI/gp/SfMPzwfCX9LaPNjE2KKrhZexdPbn37guh5yWINESZr7fQnxezT7FgGNHyBE\nWKZQIzA3Zp8IaEQxIcIyhRqBuaFEQIViQgRlCjUCc2PWiaCqpgqpBakIcAmQOhRCTAbNNaQ8Zp0I\nzuefh7eTN2wsbaQOhRCTQTUC5THrREADyQgRHtUIlMesEwHVBwgRnkU7C3AcB0OtQepQiJEoEVAi\nIERw1CpQFrNNBIZaA1LyUqB2VUsdCiEmxxR6Dl2+fBlqtRodO3ZEVFSU1OGIymynob5ccBmudq6w\nt7GXOhRCTI4p9BxatWoVnnzySZw9e1bqUETHu0UwY8YMuLi4ICCg6S6YGo0G9vb2CAoKQlBQEJYs\nWcL3kIKgxeoJEY8p9BxKT09Hnz59Wvw6g0F5tRHeiWD69OmIi4u77zYhISHQarXQarV1Cz1IjeoD\nhIhH6TWC4cOHQ6PRYPbs2ejYsSPOnTuHiIgIODs7w9PTE0uXLq2b32fr1q0YPHgw3nrrLXTu3BmR\nkZHw9PREUlISAGDHjh1o164dLl68CADYtGkTxo0bJ9nP1hTeiWDIkCENFmZoihwnltLmatG/Ky1G\nQ4gYlF4jOHbsGIYMGYL169ejtLQUn3zyCcrKynD9+nXEx8cjOjoaW7Zsqds+MTERXl5eyM/Pxwcf\nfICQkBBoNBoAQHx8PLy8vBAfH1/3PDQ0VIKfqnmi1whUKhVOnTqFwMBAuLm54ZNPPmlVc0tIHMex\nW0PUIiBEFELVCFSL+C/Ywi3kdyFqMBiwZ88eJCcnw9bWFra2tnj77bfxzTffYMaMGQCAbt264c03\n3wQA2NjYICQkBPv378dbb72FkydP4v3338fhw4fx2muv4cSJE3jrrbd4/1xCEj0R9O/fHzqdDu3b\nt8ehQ4cwduxYXLlyRezD3ld6STpsLG3gYuciaRyEmCqhagR8T+JCuHnzJvR6PR555JG6r3Xv3h1Z\nWVl1zz08PBq8ZujQoXjnnXeQm5sLg8GAF154AZGRkUhPT0dJSQnUann1VhQ9EXTo0KHu81GjRuGN\nN95AYWFhg0Wb74iMjKz7PDQ0VLTmExWKCRGX0msE9XXu3BlWVlZIS0uDn58fACAjIwPu7u5129y7\n1KS3tzfat2+PdevWISQkBB06dICrqys2btyIIUOG8IpHo9HU3XYSiuiJIC8vD87OzlCpVEhMTATH\ncU0mAaBhIhATLVZPiLiUXiOoz8LCAi+++CI++OADREdHo6CgAJ9++inmz59/39eFhIQgKioKn3/+\nOQB2cRsVFYWPPvqIVzz3XiQvWrSI1/4AAYrFkydPxqBBg3D58mV4eHhg8+bN2LBhAzZs2AAA+O67\n7xAQEAC1Wo158+Zh9+7dvIPmi9YgIERcpjCOoL5169bB1tYWPXv2xJAhQ/DSSy9h+vTpAFhroKnF\n50NCQlBeXo6hQ4c2+VxOzHKpSrf/c8PJ6SfRw7FHmxyPEHMzInoE3h38LsK8wprdhpaqbBlaqlJA\n+bfyUaGvgKeDp9ShEGKyTKlGYA7MLhFoc7RQu6qbbMoRQoRhSjUCc2B+iYAKxYSIztRqBKbO7BIB\nLUZDiPisLaypRaAgZpcIaI4hQsRnCpPOmROzSgSlVaXILstG7869pQ6FEJNGxWJlMatEkJybjADn\nAFi2M9tlGAhpE9QiUBazSgRJOUl0W4iQNkDFYmUxq0RAI4oJaRtK7z7q6emJo0ePCrY/jUbTaGI6\nOTG/REAtAkJEp/QaQXPTRpgqs0kEVTVVSC1IRYBL00tqEkKEQzUCZTGbRHA+/zy8nbxhY2kjdSiE\nmDxTqBEkJibC398fTk5OmDFjBqqqqlBUVIRnn30Wzs7OcHJywpgxYxqsS1BYWIjp06fDzc0NTk5O\nzS5JuXbtWvj7+yM7O7utfpz7MptEQAPJCGk7Sq8RcByHnTt34scff8S1a9dw5coVLFmyBBzHYebM\nmcjIyEBGRgYefvhhzJ49u+51f/3rX3H79m1cuHAB+fn5Ta5EtnjxYkRHR+PEiRPo1q1bW/5YzTKb\nfpRUHyCk7QhWIxDiPn0rZuZUqVSYPXs23NzcAAAffPAB5syZg48//rjBVf6CBQswfPhwAEBOTg7i\n4uJQWFgIe3t7AGiwCA3HcXjrrbfw66+/4vjx4w0W7ZKaWSWCif4TpQ6DELMgWI1Awmmq6/fy6d69\nO7Kzs1FZWYl58+bhf//7H4qKigAA5eXl4DgOOp0OTk5OdUngXsXFxfj666+xe/duWSUBwExuDRlq\nDUjJS4HaVV7rhBJiqkyhRpCRkdHg827dumH16tW4cuUKEhMTUVJSgvj4eHAcB47j4OHhgcLCQpSU\nlDS5P0dHRxw4cADTp0/HqVOn2urHMIpZJILLBZfhaucKe5umMzUhRFhWFlaorlV2jWD9+vXIyspC\nYWEhli5dikmTJqGsrAwPP/ww7O3tUVhY2GCZyK5du9aty15cXAy9Xo8TJ0402O/QoUOxY8cOjB8/\nHmfOnGnrH6tZZpEIaLF6QtqW0lsEKpUKL730Ep566il4eXnBx8cHH374IebNm4fKykp07twZgwYN\nwqhRoxqMN/jmm29gZWUFX19fuLi4YO3atQ32CQAjRozA5s2bMWbMGJw9e7ZFcWk0QFwcsG8fsGsX\nsGWLID+ueSxV+c6P78DpYScsGLJAlP0TQhr6z4X/YEfKDvx34n+b3YaWqmwZlUqFoUM52NgADz+M\nuo9bt/L/PZpFsVibq8X8QfOlDoMQs6H0kcVyFR/f+Gtbt/Lfr8knAo7j2K0h6jpKCC8cB9y+zR6V\nlexx5/N7v3a6wAp/FFdjzZqmt7t9W+qfhtRn8okgvSQdNpY2cLFzkToUQgTBcUB1dfMn2AedpFv7\ntaoq4KGH7t6SqH974t6vFTtZo6iTHtdz736tU6eG223fLvVvktxh8omACsVETBwH6PV3T5YVFXc/\nv/d5/c/5npwtLe9/Ir7f1+ztAVfXlr/2oYeAdkZ2L/kp3QrvH63GZzOa3yYiQpi/AeHP9BMBLVZv\ndjiOXb3eusVOvndOwMaepFv6PZUKaN+enSzvfLzzqP/8zud3Tqy2tkDnzq07mVtYSP1bvj+qEYhk\n+3bg5k2goODuRwGYRSKYrp4udRikCRzHTqalpXcfZWXsBN6aR3n53ZN/u3bsRGtr27KTtIOD8dve\neVhZSf2blB+lzzUkW4cOsXtsnTsDffuyz/fu5b1bk08ESTlJWPv02gdvSFpMrweKithFSWHh3UdR\nUcOT+/0e1tZAx47s0aEDYGd39wRe/2FnB7i5Nf29ph50cpaWMeMIHB0dzWrOf74cHR2BHTsaf2Py\nZN77NulEkH8rHxX6Cng6eEodiiJUVQH5+UBuLpCXxz7e+Tw/v/EJv6ICcHQEnJzuPjp1YlfV9vaA\niwvg43P3RG9vf/fzOyd+OmGbJmPmGiosLGyjaO5Dr2f/zPfebmnuY0EBUFLC/pnvXJk39fHerzk5\nyfqf3aQTgTZHC7Wrmq46wHqZ6HRARgZ7pKff/Twzk53wy8uBLl1YIdHF5e5Hb29g0CD2P13/pN+x\no/HFQ2JeJKkRVFUZdzKvf1IvL797BXPvydzFBejTp/H3HB3lX6RpIdNOBGZWKNbrgevXgStXGj9u\n3AC6dQO6d2ePRx4BHnsMmDCB3XLp2pW9H+jEToTAu0ZQUdHyk/rt281fobu7A2p14+/Z29M/PQRI\nBDNmzMDBgwfh7OyMlJSUJreZO3cuDh06hPbt22Pr1q0ICmqb7pxJOUkI7x3eJsdqazduAMnJwNmz\n7GNyMjvhu7kBvXqxR0AA8Pzz7PaMh4fJXcQQGaurEXAcu+puyUn95k32uuZO6j17squYe7/XoYMw\n6xeYId5zDf3000+ws7NDREREk4kgNjYWUVFRiI2NxenTp/H3v/8dCQkJjQMRYd4Rn3U++H7i9/B3\n9hd0v22tuhrQaoFffgFOnWIfy8qAwMC7D7Ua8PdnXQsJEQXHsfvjRpzMDTfykJ9xCV2rrNigB2Pv\npd/52L49ndSNJMS5k3eLYMiQIUhLS2v2+zExMZg2bRoAIDg4GMXFxcjLy4OLi7gjfUurSpFdlo3e\nnXuLehwxGAzAr78Chw+zx2+/3b1PP2YMsGwZ4OVF7xMigKIi4OJF467UCwtZf9nmTub9+tV9rdre\nFkP3DkNq5J+vIbImeo0gKyurwUo/7u7uyMzMFD0RJOcmI8A5AJbtlFEGKSwEYmKAgweBo0fZLZ6n\nngLefx8YPJi1egkRTEEB8MknwMaN7Cqjc+eGJ/gePZo+4VtbG7V7C0M10g7VUBJQiDY5S97bbGmu\nF09kZGTd56GhoQgNDW31MZNykmQ/0Vx+PvD998B33wGnTwMjRgDh4cBnn7HCLiGCKywEVq8GvvwS\neOEFICmJ9RwQmFU7K9TU1oDjOOq1JzCNRgONRiPoPkVPBG5ubtDpdHXPMzMz6xaEvlf9RMCXNleL\nQR6DBNufUGpq2ODATZvYIhOjRgGvvsoWmrC1lTo6YrIKC4H/+z/giy9YDwKREsAdKpUKlu0soa/V\nw9rCuFYEMc69F8n1V0lrLdH7TYWHhyM6OhoAkJCQAAcHB9FvCwEsEcipRZCVBSxYwLpuLl/O7vXr\ndGyVoQkTKAkQkRQVAR99xLqR5eWx4tPGjaImgTuUvkqZOeHdIpg8eTLi4+Nx8+ZNeHh4YNGiRdDr\n2R9/1qxZGD16NGJjY+Ht7Q1bW1tsEWpttfuoqqlCakEqAlwCRD/Wg5w7x1riP/wATJ3K7v/7+Ukd\nFTF5xcXAp58C69cDzz0HJCaybpdt6M7oYlvQVY7c8U4Eu3bteuA2UVFRfA/TIufzz8PbyRs2ltL1\npTx7FvjwQ9YCnzsXWLOGDUgkRFQlJeyfbd06VnA6fZp1MZMAzUCqHCY5pC4pJ0myNQguXwYmTmT3\n/keOZCN933uPkgARWUkJsHgx6wF0/TqQkABs3ixZEgBoBlIlMclEIEV9oKwMmD8feOIJICgIuHoV\nmDOHLeZBiGhKS4ElS1gCuHqVjTjcupU9lxjVCJSDEgFPHAd8+y2bm+rGDeD8edYCoOIvEVVZGRtZ\n6O3NmqEnTwLR0Ww+EZkwZgZSIg/KGG3VAoZaA1LyUqB2VYt+rPx8YNYsdiG2cycwZIjohyTmrqwM\niIpiheCwMODECcDXV+qomkQ1AuUwuRbB5YLLcLVzhb2NvajH2b+fzfHj68t65FESIKIqLwdWrmQt\ngJQUID6eLVIi0yQAUI1ASUyuRSD2YvXV1cA77wAHDrARwYMHi3YoQtjam+vXsz7Iw4YBx4+z+5AK\nQDUC5TC9RCBifSA7m43Kd3Ji3UIdHEQ5DCEsAXzxBZsPKCQEOHaMTS+rIFQjUA6TuzWkzdWif1fh\nF6M5fRoYOBB4+ml2W4iSABFFRQW7+vfyYv90R44Ae/YoLgkAVCNQEpNqEXAcx24NCdwi+OEHYMYM\n1i17zBhBd00IU1nJJoJbtYrdb/zxRzats4JRjUA5TCoRpJekw8bSBi52ws1ltHEjsHAhmx76sccE\n2y0hTGUlsGEDSwB/+QsQF8d6IZgAqhEoh0klAqELxWvWAGvXAj/9JIvxOcSU3L7NrjJWrmRXGLGx\nbJk5E2JtYU0tAoUwrUQg4GL1n37KumtrNGzGUEIEcfs28NVXwIoVwIABrPtZG63h3daoWKwcJlUs\n1uYK0yJYu5YlgePHKQkQgVRVsW6g3t5s/dGYGNbrwESTAEDFYiUxqUQgxKpku3cD//43661HSYDw\nVlXFuoF6e7MVib7/niWBRx+VOjLRUYtAOUzm1lD+rXxU6Cvg6eDZ6n0cPcqmjD56tE3W7SCmrLqa\ndTNbtgzo2xf4z3/MrrcBFYuVw2QSgTZHC7WrutXro6akAJMnswnkAqRfz4YoVXU1m/1z6VI2Avjb\nb1lvIDNE3UeVw3QSAY9CcVERMG4cW9K13lKghBhPrwe2bWMJoFcvdo/x8celjkpSVCNQDpNJBEk5\nSQjvHd7i1xkMwEsvsYFiU6eKEBgxbXo9m/55yRI2BfSOHcCgQVJHJQtUI1AOkykWt3aOoYUL2Zie\nVatECIqYLr0e2LKFzf65axfwzTdsNDAlgTpUI1AOk2gRlFaVIrssG707927R6w4fZrdzk5IAKytx\nYiMmpqYG2L6dtQAeeYT9A9Ec5E2ysrBCpb5S6jCIEUwiESTnJiPAOQCW7Yz/cQoKgOnT2fvY2Vm8\n2IiJqKlhqw99/DHg7g5s2sRmBSXNsrawRmlVqdRhECOYRCJo6fgBjgNefRWYNAkYMULEwIjy1dSw\nWz8ffwx07cpGBVOPAqNQjUA5TCIRaHO1GORh/L3ZLVuAa9fYBR4hTTIYWM+fxYsBFxc2MVxoKNDK\n7snmiGoEymEyieDNgW8atW12NvDuu2zk8EMPiRwYUR6Dgc3/v3gx0Lkz8PnnwPDhlABagcYRKIfi\nE0FVTRVSC1IR4GLcKLC//x147TUaNEbuYTAAe/eyBODoyCabevJJSgA80DgC5VB8Ijiffx7eTt6w\nsbR54LYxMUByMuvpRwgAoLb2bgLo2JHNPR4WRglAAFQjUA7FJ4KknCSjZhwtLwdmz2Zjf2wenDOI\nqautZfP/LFoE2NmxYeVPPUUJQEDUIlAOxScCYweSrVrFuntThw8zV1sL7NvHEoCNDZtq9umnKQGI\ngGoEysF7ZHFcXBx8fX3h4+ODlStXNvq+RqOBvb09goKCEBQUhCVLlvA9ZAPGJIL0dDYV/IoVgh6a\nKEltLfDf/7L5/1esAJYvZ4vDjxpFSUAk1GtIOXi1CAwGA2bPno0jR47Azc0NAwcORHh4OPz8/Bps\nFxISgpiYGF6BNnn8WgNS8lKgdr3/En/vvgvMmQN4eAgeApE7jmMLwERGAhYWbFK4Z56hk38boBqB\ncvBKBImJifD29oanpycAYNKkSdi/f3+jRMBxHJ/DNOtywWW42rnC3sa+2W1OnQJ+/plNDU/MCMex\n3gGRkeykv3gxm1mQEkCboRqBcvC6NZSVlQWPepfZ7u7uyMrKarCNSqXCqVOnEBgYiNGjR+PChQt8\nDtnAgxar5zhgwQJ2O7h9e8EOS+SM44AffmDrAUdGssdvvwHh4ZQE2hjVCJSDV4vAmEVg+vfvD51O\nh/bt2+PQoUMYO3Ysrly50uS2kZGRdZ+HhoYi9AGV3QfVB44dYwPIIiIeGCZROo4DDh5kJ369nn18\n7jmgnclMsKs4VCMQh0ajgUajEXSfvBKBm5sbdDpd3XOdTgd3d/cG23To0KHu81GjRuGNN95AYWEh\nnJycGu2vfiIwhjZXi/mD5jf5PY4DPvyQtQYsFd83ijSL49hawJGRwO3b7OPYsZQAZIBqBOK49yJ5\n0aJFvPfJ690yYMAApKamIi0tDdXV1dizZw/CwxsuDpOXl1dXI0hMTATHcU0mgZbiOI7dGmqmRRAb\ny8YOTJzI+1BEju4kgL/8hfUG+Oc/gbNngfHjKQnIBNUIlIPXtbKlpSWioqIwcuRIGAwGzJw5E35+\nftiwYQMAYNasWfjuu+/wxRdfwNLSEu3bt8fu3bsFCTy9JB02ljZwsXNp9D2Ou3t7mM4JJobj2AIw\nCxeyTL9wIfD88/SHliGqESiHihOrS08LqVSqFvUu2ndxH77Wfo2DUw42+t6xY8CbbwK//07nB5PB\ncWwlochIoLiYJYAXXqA/sIxllGTgic1PIOMfGVKHYtJaeu5simLvnt9vsfqVK4H58+kcYRI4Djh6\nlJ34CwvvJgALC6kjIw9ANQLlUOypUpvbdNdRrZa1BF56SYKgiHDuJIChQ9kkUW++CZw/z1YToiSg\nCFQjUA7FJoLmViVbtQqYN4/WGlC048fZMpBvvMHmDP/9d2DKFEoACkM1AuVQ5K2h/Fv5qNBXwNPB\ns8HXMzJYHfHPWjVRmvh4dusnKwv46CNg8mTq+6tgNI5AORT5LtPmaKF2VTca0Pbll8Bf/8qmlScK\ncuIEKwJnZAD/+he7r0cJQPGoRqAciny3NVUovn0b+Ppr4ORJiYIiLXfyJGsBpKWxBDB1KiUAE2LR\nzgIqlQqGWgMs2tFtPTlTZI2gqcVo9u5lMwz36iVRUMR4P//MVgGLiGBX/5cuAS+/TEnABFGrQBkU\nmQiammNo/XrWsYTI2C+/sFXApk5lvX8uXwZmzACsrKSOjIiEeg4pg+ISQWlVKbLLstG7c++6r/36\nK5Cby6aZJzKUkMBWAZs8mY0BuHwZmDmTEoAZoJ5DyqC4RJCcm4wA5wBYtrt7G+Hrr4FXXqHehbKT\nmMhWAJs4kc0BdOUK+0NZW0sdGWkj1HNIGRR3U/be8QOVlcC33wLnzkkYFGnozBnWCyglhS0I8f33\nNLDDTFGNQBkU1yK4d0Txvn3AwIHAPbNfEyn8+ivw7LPs6v/ZZ4HUVDYgjJKA2aIagTIoMxHUaxFs\n2QJMny5hQOTuCmBjx7JbQVevAq+/TgmAUI1AIRSVCKpqqpBakIoAlwAAbPxRUhI7/xAJaLVsFbDw\ncNYd9OpV1nWLEgD5E9UIlEFRieB8/nl4O3nDxtIGALBtG6tD2thIHJi5SU4Gxo1jt3+efBK4dg2Y\nM4f+EKQRqhEog6ISQf2BZBwHbN9O6xG3qXPn2CIwo0axSeGuXgXmzqUEQJpFNQJlUFQiqF8fSE4G\nqquB4GByh34EAAATJklEQVSJgzIHKSnAhAnAyJHAE0+wBDBvHvDww1JHRmSOagTKoNhEsGcPuy10\nz7xzREjnzwMvvsju/z/+OLsF9I9/AO3bSx0ZUQiqESiDYhKBodaAlLwUqF3V4Dhg925amF40Fy6w\nX+6TT7K+udeuAW+/TQmAtJi1hTW1CBRAMYngcsFluNq5wt7GHmfOsNkJ1GqpozIxFy+yaSCGDQMe\nfZQlgPnzAVtbqSMjCkXFYmVQTCLQ5twdSLZnD5uzjG4LCeTSJbYCWEgIEBjIEsA//wnY2UkdGVE4\nKhYrg3ISwZ/1gdpaNqUE3RYSwOXLbCbQoUOBgACWAN57jxIAEQwVi5VBUYmgf9f+OHOGnaf8/aWO\nSMGuXGFLuT3xBODnx3oBvf8+0KGD1JERE0PFYmVQRCLgOI7dGnINQkwMG8xKWiE1FZg2DRg8GOjd\nm7UAPviA1vYkoqEagTIoIhGkl6TDxtIGLnYu2L+fEkGLXbvGVgB7/HHAy4u1AD78kBIAER3VCJRB\nEYngTqH42jXg5k0aRGa0P/5gK4AFBwM9erAE8NFHgL291JERM0EtAmVQRiL4c7H6mBhgzBignSKi\nltD162wFsMceAzw8WAJYuBBwcJA6MmJmqEagDIo4pd5ZgyAmhk10SZqRlsZWABs4EHBzYzWBRYso\nARDJUK8hZeCdCOLi4uDr6wsfHx+sXLmyyW3mzp0LHx8fBAYGQqvVtvgYSTlJ6GEThKQkYMQIvhGb\noPR0YNYsNgjMxYX1Clq8GHB0lDoyYuaoRqAMvBKBwWDA7NmzERcXhwsXLmDXrl24ePFig21iY2Nx\n9epVpKamYuPGjXj99ddbdIz8W/mo0Ffg/ElPDBtG85w1kJHBVgDr3x/o3JklgCVLACcnqSMjBADV\nCJSCVyJITEyEt7c3PD09YWVlhUmTJmH//v0NtomJicG0adMAAMHBwSguLkZeXp7Rx9DmaKF2VeN/\n/1Nh9Gg+0ZoQnQ544w0gKIhd9V++DCxdCnTqJHVkhDRANQJl4JUIsrKy4OHhUffc3d0dWVlZD9wm\nMzPT6GOwEcX9cfgwmwXZrGVmshXA1Go2+OvSJWD5ctYaIESGqEagDJZ8XqwycrIfjuOMel1kZGTd\n56GhoQgNDUVSThL6PRQOR0fgkUdaHaqyZWUBK1YAO3ey3kCXLgFdukgdFSEPRDUC4Wk0Gmg0GkH3\nySsRuLm5QafT1T3X6XRwd3e/7zaZmZlwc3Nrcn/1E8Ed2lwtupUuNM/WQHY2SwDbt7PxABcvAs7O\nUkdFiNGoRiC8OxfJdyxatIj3PnndGhowYABSU1ORlpaG6upq7NmzB+H39O8MDw9HdHQ0ACAhIQEO\nDg5wcXExav+lVaXILsuG9khv80oEOTlsBbC+fdl82xcvAp98QkmAKA61CJSBV4vA0tISUVFRGDly\nJAwGA2bOnAk/Pz9s2LABADBr1iyMHj0asbGx8Pb2hq2tLbZs2WL0/pNzk9GnUwCSfrVESAifSBUi\nNxdYuRLYto3NCXThAuDqKnVUhLQa1QiUgVciAIBRo0Zh1KhRDb42a9asBs+joqJate+knCR0rgnC\nY4+Z+NooeXnAqlXAli1ARATw++9A165SR0UIb9RrSBlkPbJYm6tF5R9BpntbKD8feOcdNhW0Xs/W\nCF6zhpIAMRlUI1AG2SeC678EISxM6kgEduMGWwHMzw+oqgJSUoC1a4Fu3aSOjBBBUY1AGWSbCKpq\nqnDlZipKUwMQGCh1NAK5eRN4913A1xe4dQtITgbWrWPzAhFigqhGoAyyTQTn88+ji4U3QgbbKH+2\n0YICtgJY795AWRlw9iywfj1wT1dbQkwN1QiUQban2KScJDxcHIR63WWVp7CQrQDWqxdQVARotcDn\nn7OpoQkxA1QjUAbZJgJtrhZFl4KU2W20sJCtAObjw24HJSUBX34JdO8udWSEtCmqESiDbBNBYoYW\nldeC0K+f1JG0QFERWwGsVy/WJfS334ANG8x4bgxi7qhGoAyyTASGWgPO30jBEB81LCykjsYIxcVs\nBTAfHzYvUGIi8NVXgKen1JERIimqESiDLBPB5YLLeEjvirChMl9bt6SErQDm7c2mhj59Gti0CejZ\nU+rICJEFqhEogywTgTZHCy5bxoXikhK2Api3N1sfOCEB2LwZ8PKSOjJCZIVqBMogy0Rw8g8t9DoZ\n1gdKS9kKYN7ewLVrwKlTwNat7DkhpBGqESiDLBPBz9e06Nupv3zqA2VlbAUwLy+2GtjPP7OJ4Xx8\npI6MEFmjGoEyyC4RcByH1DIthvsFSR0KSwDLl7MEcPEicPIk8M03rFcQIeSBqEagDLJLBOkl6ait\ntsFTg41bs0AU5eVsQRgvLzYP0IkTbHGY3r2li4kQBaIagTLILhGc0WlhyGRTT7e5W7fYdNBeXmwe\nII2GLQ/p6ytBMIQon2U7S9TU1jRarpbIi+wSQVyyFp30/dGhQxse9NYttgKYlxcbBHbsGLBrF9Cn\nTxsGQYjpUalUsGpnRa0CmZNdIkhI10Lt0kb1gYoKYPVq1usnMRE4cgTYswfw92+b4xNiBqjnkPzJ\nLhH8UZmEkf1ETgSVlcCnn7IWwC+/AD/+CHz7LVsjmBAiKOo5JH+8l6oUUv6tfFTVVmDMEE9xDlBZ\nyeb+WbUKePxxIC4OprPYASHyRD2H5E9WieDHc1pY3lDD21sl7I5v3wY2bmQLwz/2GBAbC6jVwh6D\nENIk6jkkf7JKBLFaLbpb94dKqDxw+zab/G3FCmDAAODAASBIBuMTCDEjVCOQP1klgt+yk9C/azj/\nHVVVAV9/zQaD9e8PxMQAjz7Kf7+EkBajGoH8yapYrNNrERbA44q9qgr44gvWC+jQIeD77ykJECIx\nqhHIn6xaBJVW2XhucCtG71ZXs9k/ly0DAgKA//wH0oxII4Tci2oE8ierRPBQcQCcO7cgpOpqNvvn\n0qVs8NfevUBwsGjxEUJajmoE8ierROBuYeRtIb3+bgLw9QV272bdQQkhskM1AvmTVSIIfNCIYr0e\niI5mawL4+LB5gAYNapvgCCGtYm1hTS0CmZNVInjSv5lEoNez6Z+XLGGjgbdvBwYPbtvgCCGtQsVi\n+Wt1IigsLMTEiRORnp4OT09PfPvtt3BwcGi0naenJzp27AgLCwtYWVkhMTGx2X2OHxzQ8As1Neyk\n//HHbCH4bduAIUNaGzIhRAJULJa/VncfXbFiBcLCwnDlyhU8+eSTWLFiRZPbqVQqaDQaaLXa+yYB\nAHDtbMM+qalht4D8/NjHLVuAo0cpCRCiQFQslr9WtwhiYmIQHx8PAJg2bRpCQ0ObTQbGzkU+KiwM\ny/v1g/qHH4Bu3dioYNmuYE8IMQYVi+Wv1S2CvLw8uLiwVcRcXFyQl5fX5HYqlQojRozAgAED8NVX\nX913n2uOHEH1558jYfp0tigMJQFCFI9qBPJ33xZBWFgYcnNzG3196dKlDZ6rVCqompkg6Oeff0bX\nrl1x48YNhIWFwdfXF0OaucXzOoDjt29jZHw84t5/38gfgRAiZ1QjkL/7JoLDhw83+z0XFxfk5ubC\n1dUVOTk5cHZ2bnK7rl27AgC6dOmCcePGITExsdlEcPzPj5cuXYJGo0EotQgIUTxqEQhLo9FAo9EI\nus9W3xoKDw/Htm3bAADbtm3D2LFjG21TUVGBsrIyAMCtW7fw448/IiAgoNF29/L19aUkQIiJoBqB\nsEJDQxEZGVn3EEKrE8F7772Hw4cPo1evXjh27Bjee+89AEB2djaeeeYZAEBubi6GDBkCtVqN4OBg\nPPvss3jqqafuu18vLy/MmTOntWERQmSGeg3Jn4oztkuPyFQqFUaOHIk5c+bUJRJCiPItOLoAdtZ2\nWDBkgdShmCSVSmV0z8zmyGpkcVxcnNQhEEIERjUC+ZPVegSEENNDNQL5o0RACBEV1QjkjxIBIURU\nNI5A/igREEJERTUC+aNEQAgRFdUI5I8SASFEVFYWVqiupRaBnFEiIISIiloE8keJgBAiKqoRyB8l\nAkKIqKjXkPxRIiCEiIrGEcgfJQJCiKioRiB/lAgIIaKiGoH8USIghIiKagTyR4mAECIqqhHIHyUC\nQoioqEYgf5QICCGiohqB/FEiIISIimoE8keJgBAiKqoRyB8lAkKIqKhGIH+UCAghoqIagfxRIiCE\niIpqBPJHiYAQIiqqEcgfJQJCiKis2llBb9CD4zipQyHNoERACBGVRTsLqFQqGDiD1KGQZlAiIISI\njnoOyRslAkKI6KjnkLxRIiCEiI56DslbqxPB3r174e/vDwsLCyQlJTW7XVxcHHx9feHj44OVK1e2\n9nCEEAWjnkPy1upEEBAQgH379mHo0KHNbmMwGDB79mzExcXhwoUL2LVrFy5evNjaQ7aKRqNp0+MJ\nQWkxKy1egGJuC/XjVUqNQGm/Y6G0OhH4+vqiV69e990mMTER3t7e8PT0hJWVFSZNmoT9+/e39pCt\nosQ/rNJiVlq8AMXcFurHq5QagdJ+x0IRtUaQlZUFDw+Puufu7u7IysoS85CEEBmiGoG8Wd7vm2Fh\nYcjNzW309WXLlmHMmDEP3LlKpWp9ZIQQk2FtYa2IFoHZ4ngKDQ3lfvvttya/98svv3AjR46se75s\n2TJuxYoVTW4bGBjIAaAHPehBD3q04OHl5cX3NM7dt0VgLK6ZoeMDBgxAamoq0tLS0K1bN+zZswe7\ndu1qctuzZ88KEQohhJAWanWNYN++ffDw8EBCQgKeeeYZjBo1CgCQnZ2NZ555BgBgaWmJqKgojBw5\nEn369MHEiRPh5+cnTOSEEEIEoeKau5wnhBBiFhQ7stiYgWpz586Fj48PAgMDodVq675eXFyMCRMm\nwM/PD3369EFCQoLsY16+fDn8/f0REBCAKVOmoKqqShYxX7p0CY8//jhsbGywevXqFr1WLK2NWafT\nYdiwYfD390ffvn2xdu1aWcd7h8FgQFBQkFEdOITCJ2Yp3n984pXre2/Hjh0IDAxEv379MHjwYJw7\nd87o1zbCu8oggZqaGs7Ly4u7fv06V11dzQUGBnIXLlxosM3Bgwe5UaNGcRzHcQkJCVxwcHDd9yIi\nIrhNmzZxHMdxer2eKy4ulnXM169f53r06MHdvn2b4ziOe/HFF7mtW7fKIub8/HzuzJkz3AcffMB9\n8sknLXqt3GLOycnhtFotx3EcV1ZWxvXq1Uv0mPnEe8fq1au5KVOmcGPGjBE1VqFibuv3H5945fze\nO3XqVN3v7tChQ3Xni9a89xTZIjBmoFpMTAymTZsGAAgODkZxcTHy8vJQUlKCn376CTNmzADA6hj2\n9vayjrljx46wsrJCRUUFampqUFFRATc3N1nE3KVLFwwYMABWVlYtfq3cYnZ1dYVarQYA2NnZwc/P\nD9nZ2bKNFwAyMzMRGxuLv/3tb2023z+fmKV4//GJV87vvccff7zudxccHIzMzEyjX3svRSYCYwaq\nNbVNZmYmrl+/ji5dumD69Ono378/XnnlFVRUVMg25qysLDg5OeHtt99G9+7d0a1bNzg4OGDEiBGy\niFmM1/Ih1HHT0tKg1WoRHBwsZHiN8I33H//4B/7973+jXbu2eyvziVmK9x+feJXy3tu0aRNGjx7d\nqtcCCk0Exg5Uu/cKSaVSoaamBklJSXjjjTeQlJQEW1tbrFixQowwGx3bGE1d1V27dg1r1qxBWloa\nsrOzUV5ejh07dggdYiN8BgRKNZhQiOOWl5djwoQJ+Oyzz2BnZydAVM3jE++BAwfg7OyMoKCgNl39\ni0/MUrz/+MSrhPfe8ePHsXnz5rpaQGt+XkUmAjc3N+h0urrnOp0O7u7u990mMzMTbm5ucHd3h7u7\nOwYOHAgAmDBhwn1nT5VDzL/++isGDRqETp06wdLSEuPHj8epU6dkEbMYr+WD73H1ej2ef/55TJ06\nFWPHjhUjxAb4xHvq1CnExMSgR48emDx5Mo4dO4aIiAixQq3DJ2Yp3n984pX7e+/cuXN45ZVXEBMT\nA0dHxxa9tj5FJoL6A9Wqq6uxZ88ehIeHN9gmPDwc0dHRAICEhAQ4ODjAxcUFrq6u8PDwwJUrVwAA\nR44cgb+/v6xj7t27NxISElBZWQmO43DkyBH06dNHFjHfce8VaUteK5eYOY7DzJkz0adPH8ybN0/0\nWAF+8S5btgw6nQ7Xr1/H7t27MXz48Lr/H7nGLMX7j0+8vr6+sn3vZWRkYPz48di+fTu8vb1b9NpG\nhKtzt63Y2FiuV69enJeXF7ds2TKO4zjuyy+/5L788su6bd58803Oy8uL69evX4NpMM6ePcsNGDCA\n69evHzdu3Lg26TXEN+aVK1dyffr04fr27ctFRERw1dXVsog5JyeHc3d35zp27Mg5ODhwHh4eXFlZ\nWbOvlXPMP/30E6dSqbjAwEBOrVZzarWaO3TokGzjrU+j0bRZryG+MUvx/uMTr1zfezNnzuScnJzq\n/lcHDhx439feDw0oI4QQM6fIW0OEEEKEQ4mAEELMHCUCQggxc5QICCHEzFEiIIQQM0eJgBBCzBwl\nAkIIMXOUCAghxMz9P2axhJOW4obyAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 35 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "(Edit this cell for solution.)" ] } ], "metadata": {} } ] }