From 641c502b20da0f93a3a44097abdbd5e8a8ed9f3d Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Wed, 5 Sep 2018 20:57:50 -0400 Subject: [PATCH 01/61] initial changes --- code/chap01.ipynb | 183 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 163 insertions(+), 20 deletions(-) diff --git a/code/chap01.ipynb b/code/chap01.ipynb index 5dfe5445..46186302 100644 --- a/code/chap01.ipynb +++ b/code/chap01.ipynb @@ -103,7 +103,15 @@ "cell_type": "code", "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "If this cell runs successfully, it produces no output other than this message.\n" + ] + } + ], "source": [ "# Configure Jupyter so figures appear in the notebook\n", "%matplotlib inline\n", @@ -143,7 +151,24 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "meter" + ], + "text/latex": [ + "$meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "meter = UNITS.meter" ] @@ -152,7 +177,24 @@ "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "second" + ], + "text/latex": [ + "$second$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "second = UNITS.second" ] @@ -166,10 +208,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/html": [ + "Z_0" + ], + "text/latex": [ + "$Z_0$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "UNITS.characteristic_impedance_of_vacuum" + ] }, { "cell_type": "markdown", @@ -180,9 +241,26 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "9.8 meter/second2" + ], + "text/latex": [ + "$9.8 \\frac{meter}{second^{2}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a = 9.8 * meter / second**2" ] @@ -196,9 +274,26 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "4 second" + ], + "text/latex": [ + "$4 second$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t = 4 * second" ] @@ -212,9 +307,26 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "78.4 meter" + ], + "text/latex": [ + "$78.4 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "a * t**2 / 2" ] @@ -228,11 +340,28 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 18, "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" + "outputs": [ + { + "data": { + "text/html": [ + "39.2 meter/second" + ], + "text/latex": [ + "$39.2 \\frac{meter}{second}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a * t" ] }, { @@ -244,11 +373,25 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "DimensionalityError", + "evalue": "Cannot convert from 'meter / second ** 2' ([length] / [time] ** 2) to 'second' ([time])", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mDimensionalityError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0ma\u001b[0m\u001b[1;33m+\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32mC:\\Miniconda3\\lib\\site-packages\\pint\\quantity.py\u001b[0m in \u001b[0;36m__add__\u001b[1;34m(self, other)\u001b[0m\n\u001b[0;32m 585\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 586\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__add__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mother\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 587\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_add_sub\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mother\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0moperator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madd\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 588\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 589\u001b[0m \u001b[0m__radd__\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m__add__\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mC:\\Miniconda3\\lib\\site-packages\\pint\\quantity.py\u001b[0m in \u001b[0;36m_add_sub\u001b[1;34m(self, other, op)\u001b[0m\n\u001b[0;32m 507\u001b[0m raise DimensionalityError(self._units, other._units,\n\u001b[0;32m 508\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdimensionality\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 509\u001b[1;33m other.dimensionality)\n\u001b[0m\u001b[0;32m 510\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 511\u001b[0m \u001b[1;31m# Next we define some variables to make if-clauses more readable.\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mDimensionalityError\u001b[0m: Cannot convert from 'meter / second ** 2' ([length] / [time] ** 2) to 'second' ([time])" + ] + } + ], "source": [ - "# Solution goes here" + "a+t" ] }, { @@ -478,7 +621,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.6.6" } }, "nbformat": 4, From 828ca43f18a6af3535d69d9a337fb88b1f0c9564 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 6 Sep 2018 15:39:24 -0400 Subject: [PATCH 02/61] first section of chapter 2 --- code/chap02.ipynb | 324 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 300 insertions(+), 24 deletions(-) diff --git a/code/chap02.ipynb b/code/chap02.ipynb index 9ed8b78c..1297df5e 100644 --- a/code/chap02.ipynb +++ b/code/chap02.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -52,9 +52,57 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "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", + "
values
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare = State(olin=10, wellesley=2)" ] @@ -68,20 +116,42 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.olin" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.wellesley" ] @@ -113,7 +183,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -129,9 +199,57 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "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", + "
values
olin9
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 9\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare" ] @@ -145,9 +263,57 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "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", + "
values
olin9
wellesley3
\n", + "
" + ], + "text/plain": [ + "olin 9\n", + "wellesley 3\n", + "dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.wellesley += 1\n", "bikeshare" @@ -164,7 +330,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -182,9 +348,57 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "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", + "
values
olin8
wellesley4
\n", + "
" + ], + "text/plain": [ + "olin 8\n", + "wellesley 4\n", + "dtype: int64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bike_to_wellesley()\n", "bikeshare" @@ -200,9 +414,20 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bike_to_wellesley" ] @@ -223,20 +448,71 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def bike_to_olin():\n", + " bikeshare.wellesley -= 1\n", + " bikeshare.olin += 1" ] }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 19, "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
olin9
wellesley3
\n", + "
" + ], + "text/plain": [ + "olin 9\n", + "wellesley 3\n", + "dtype: int64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bike_to_olin()\n", + "bikeshare" ] }, { @@ -916,7 +1192,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.5" } }, "nbformat": 4, From 9edcd70fae79d1440a17965352bd408ac9440d03 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 6 Sep 2018 15:56:11 -0400 Subject: [PATCH 03/61] conditionals, steps, parameters --- code/chap02.ipynb | 344 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 322 insertions(+), 22 deletions(-) diff --git a/code/chap02.ipynb b/code/chap02.ipynb index 1297df5e..765d025d 100644 --- a/code/chap02.ipynb +++ b/code/chap02.ipynb @@ -533,9 +533,25 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function flip in module modsim:\n", + "\n", + "flip(p=0.5)\n", + " Flips a coin with the given probability.\n", + " \n", + " p: float 0-1\n", + " \n", + " returns: boolean (True or False)\n", + "\n" + ] + } + ], "source": [ "help(flip)" ] @@ -549,9 +565,20 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "flip(0.7)" ] @@ -565,7 +592,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -582,9 +609,17 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 25, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tails\n" + ] + } + ], "source": [ "if flip(0.7):\n", " print('heads')\n", @@ -603,9 +638,57 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 26, "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", + "
values
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare = State(olin=10, wellesley=2)" ] @@ -619,9 +702,64 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 31, "metadata": {}, - "outputs": [], + "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", + "
values
olin7
wellesley5
\n", + "
" + ], + "text/plain": [ + "olin 7\n", + "wellesley 5\n", + "dtype: int64" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "if flip(0.5):\n", " bike_to_wellesley()\n", @@ -639,9 +777,57 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 32, "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", + "
values
olin7
wellesley5
\n", + "
" + ], + "text/plain": [ + "olin 7\n", + "wellesley 5\n", + "dtype: int64" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "if flip(0.4):\n", " bike_to_olin()\n", @@ -659,7 +845,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -682,9 +868,57 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 53, "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", + "
values
olin4
wellesley8
\n", + "
" + ], + "text/plain": [ + "olin 4\n", + "wellesley 8\n", + "dtype: int64" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "step()\n", "bikeshare" @@ -703,11 +937,12 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ "def step(p1, p2):\n", + " print('PWellesley: ', p1, 'POlin: ', p2)\n", " if flip(p1):\n", " bike_to_wellesley()\n", " print('Moving a bike to Wellesley')\n", @@ -726,9 +961,64 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 55, "metadata": {}, - "outputs": [], + "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", + "
values
olin3
wellesley9
\n", + "
" + ], + "text/plain": [ + "olin 3\n", + "wellesley 9\n", + "dtype: int64" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "step(0.5, 0.4)\n", "bikeshare" @@ -743,11 +1033,21 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 63, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PWellesley: 0.3 POlin: 0.2\n", + "Moving a bike to Wellesley\n", + "Moving a bike to Olin\n" + ] + } + ], "source": [ - "# Solution goes here" + "step(0.3, 0.2)" ] }, { From c774781236ddf9aad5a040c73c7cd552803bccb0 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 6 Sep 2018 16:53:48 -0400 Subject: [PATCH 04/61] working bike population plot --- code/chap02.ipynb | 643 +++++++++++++++++++++++++-- code/figs/chap01-fig01.pdf | Bin 0 -> 14770 bytes code/figs/simulatedOlinBikeshare.pdf | Bin 0 -> 12097 bytes code/figs/simulatedOlinBikeshare.png | Bin 0 -> 30442 bytes 4 files changed, 607 insertions(+), 36 deletions(-) create mode 100644 code/figs/chap01-fig01.pdf create mode 100644 code/figs/simulatedOlinBikeshare.pdf create mode 100644 code/figs/simulatedOlinBikeshare.png diff --git a/code/chap02.ipynb b/code/chap02.ipynb index 765d025d..b058c468 100644 --- a/code/chap02.ipynb +++ b/code/chap02.ipynb @@ -1066,7 +1066,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 64, "metadata": {}, "outputs": [], "source": [ @@ -1087,9 +1087,57 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 70, "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", + "
values
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare = State(olin=10, wellesley=2)" ] @@ -1103,9 +1151,57 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 71, "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", + "
values
olin6
wellesley6
\n", + "
" + ], + "text/plain": [ + "olin 6\n", + "wellesley 6\n", + "dtype: int64" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "for i in range(4):\n", " bike_to_wellesley()\n", @@ -1122,9 +1218,57 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 72, "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", + "
values
olin7
wellesley5
\n", + "
" + ], + "text/plain": [ + "olin 7\n", + "wellesley 5\n", + "dtype: int64" + ] + }, + "execution_count": 72, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "for i in range(4):\n", " step(0.3, 0.2)\n", @@ -1141,9 +1285,57 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 78, "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", + "
values
olin-22
wellesley34
\n", + "
" + ], + "text/plain": [ + "olin -22\n", + "wellesley 34\n", + "dtype: int64" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "for i in range(60):\n", " step(0.3, 0.2)\n", @@ -1162,10 +1354,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 80, "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function plot in module modsim:\n", + "\n", + "plot(*args, **options)\n", + " Makes line plots.\n", + " \n", + " args can be:\n", + " plot(y)\n", + " plot(y, style_string)\n", + " plot(x, y)\n", + " plot(x, y, style_string)\n", + " \n", + " options are the same as for pyplot.plot\n", + "\n" + ] + } + ], + "source": [ + "help(plot)" + ] }, { "cell_type": "markdown", @@ -1180,9 +1394,47 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 81, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
\n", + "
" + ], + "text/plain": [ + "Series([], dtype: float64)" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "results = TimeSeries()" ] @@ -1196,9 +1448,52 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 84, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
010
\n", + "
" + ], + "text/plain": [ + "0 10\n", + "dtype: int64" + ] + }, + "execution_count": 84, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "results[0] = bikeshare.olin\n", "results" @@ -1215,9 +1510,57 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 83, "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", + "
values
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare = State(olin=10, wellesley=2)" ] @@ -1231,7 +1574,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 85, "metadata": {}, "outputs": [], "source": [ @@ -1249,9 +1592,97 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 86, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
010
110
210
310
49
59
69
79
88
98
\n", + "
" + ], + "text/plain": [ + "0 10\n", + "1 10\n", + "2 10\n", + "3 10\n", + "4 9\n", + "5 9\n", + "6 9\n", + "7 9\n", + "8 8\n", + "9 8\n", + "dtype: int64" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "results" ] @@ -1265,18 +1696,48 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 87, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "9.2" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "results.mean()" ] }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 88, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "count 10.000000\n", + "mean 9.200000\n", + "std 0.788811\n", + "min 8.000000\n", + "25% 9.000000\n", + "50% 9.000000\n", + "75% 10.000000\n", + "max 10.000000\n", + "dtype: float64" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "results.describe()" ] @@ -1299,9 +1760,27 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 90, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap01-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot(results, label='Olin')\n", "\n", @@ -1321,9 +1800,36 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 91, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function decorate in module modsim:\n", + "\n", + "decorate(**options)\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", + " \n", + " https://matplotlib.org/api/axes_api.html\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)" ] @@ -1337,9 +1843,27 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 92, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function savefig in module modsim:\n", + "\n", + "savefig(filename, **options)\n", + " Save the current figure.\n", + " \n", + " Keyword arguments are passed along to plt.savefig\n", + " \n", + " https://matplotlib.org/api/_as_gen/matplotlib.pyplot.savefig.html\n", + " \n", + " filename: string\n", + "\n" + ] + } + ], "source": [ "help(savefig)" ] @@ -1378,20 +1902,67 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 99, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def run_simulation(p1, p2, num_steps):\n", + " olinResults = TimeSeries()\n", + " wellesleyResults = TimeSeries()\n", + " for i in range(num_steps):\n", + " step(p1, p2)\n", + " olinResults[i] = bikeshare.olin\n", + " wellesleyResults[i] = bikeshare.wellesley\n", + " plot(olinResults, label='Olin')\n", + " plot(wellesleyResults, label='Olin')\n", + " decorate(title='Olin-Wellesley Bike Share',\n", + " xlabel='Time',\n", + " ylabel='Bikes')\n" ] }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 109, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/simulatedOlinBikeshare.coolFileFormat\n" + ] + }, + { + "ename": "ValueError", + "evalue": "Format 'coolfileformat' is not supported (supported formats: eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff)", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mbikeshare\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mState\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0molin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwellesley\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mrun_simulation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m30\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'figs/simulatedOlinBikeshare.coolFileFormat'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m~/Documents/GitHub/ModSimPy/code/modsim.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(filename, **options)\u001b[0m\n\u001b[1;32m 743\u001b[0m \"\"\"\n\u001b[1;32m 744\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Saving figure to file'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 745\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 746\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 747\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 708\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 709\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgcf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 710\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 711\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw_idle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# need this if 'transparent=True' to reset colors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 712\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(self, fname, **kwargs)\u001b[0m\n\u001b[1;32m 2033\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_frameon\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframeon\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2034\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2035\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2036\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2037\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mframeon\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)\u001b[0m\n\u001b[1;32m 2171\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2172\u001b[0m \u001b[0;31m# get canvas object and print method for format\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2173\u001b[0;31m \u001b[0mcanvas\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_output_canvas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2174\u001b[0m \u001b[0mprint_method\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'print_%s'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mformat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2175\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36m_get_output_canvas\u001b[0;34m(self, fmt)\u001b[0m\n\u001b[1;32m 2103\u001b[0m raise ValueError(\n\u001b[1;32m 2104\u001b[0m \u001b[0;34m\"Format {!r} is not supported (supported formats: {})\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2105\u001b[0;31m .format(fmt, \", \".join(sorted(self.get_supported_filetypes()))))\n\u001b[0m\u001b[1;32m 2106\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2107\u001b[0m def print_figure(self, filename, dpi=None, facecolor=None, edgecolor=None,\n", + "\u001b[0;31mValueError\u001b[0m: Format 'coolfileformat' is not supported (supported formats: eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff)" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# Solution goes here" + "bikeshare = State(olin=10, wellesley=2)\n", + "run_simulation(0.5, 0.5, 30)\n", + "savefig('figs/simulatedOlinBikeshare.coolFileFormat')" ] }, { diff --git a/code/figs/chap01-fig01.pdf b/code/figs/chap01-fig01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..381e0594e44189b75e16ea3923d9434093e055c8 GIT binary patch literal 14770 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

7y-i)E(XLgCP^HtU0%(MUsGY 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 literal 0 HcmV?d00001 diff --git a/code/figs/simulatedOlinBikeshare.pdf b/code/figs/simulatedOlinBikeshare.pdf new file mode 100644 index 0000000000000000000000000000000000000000..32450c211e8f2958b870381dade5c577687f6da3 GIT binary patch literal 12097 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 literal 0 HcmV?d00001 diff --git a/code/figs/simulatedOlinBikeshare.png b/code/figs/simulatedOlinBikeshare.png new file mode 100644 index 0000000000000000000000000000000000000000..d336a2587c245161d712e758b50597de973f6cc8 GIT binary patch literal 30442 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 literal 0 HcmV?d00001 From d6c1a83a0271590d5ba6f05b3d429868853e7b18 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 6 Sep 2018 17:19:03 -0400 Subject: [PATCH 05/61] changes --- code/chap02.ipynb | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/code/chap02.ipynb b/code/chap02.ipynb index b058c468..040f29ca 100644 --- a/code/chap02.ipynb +++ b/code/chap02.ipynb @@ -1922,35 +1922,19 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 110, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Saving figure to file figs/simulatedOlinBikeshare.coolFileFormat\n" - ] - }, - { - "ename": "ValueError", - "evalue": "Format 'coolfileformat' is not supported (supported formats: eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff)", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mbikeshare\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mState\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0molin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwellesley\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mrun_simulation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.5\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m30\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'figs/simulatedOlinBikeshare.coolFileFormat'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/Documents/GitHub/ModSimPy/code/modsim.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(filename, **options)\u001b[0m\n\u001b[1;32m 743\u001b[0m \"\"\"\n\u001b[1;32m 744\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Saving figure to file'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 745\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 746\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 747\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 708\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 709\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgcf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 710\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 711\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw_idle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# need this if 'transparent=True' to reset colors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 712\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(self, fname, **kwargs)\u001b[0m\n\u001b[1;32m 2033\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_frameon\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframeon\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2034\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2035\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2036\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2037\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mframeon\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)\u001b[0m\n\u001b[1;32m 2171\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2172\u001b[0m \u001b[0;31m# get canvas object and print method for format\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2173\u001b[0;31m \u001b[0mcanvas\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_get_output_canvas\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2174\u001b[0m \u001b[0mprint_method\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'print_%s'\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0mformat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2175\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36m_get_output_canvas\u001b[0;34m(self, fmt)\u001b[0m\n\u001b[1;32m 2103\u001b[0m raise ValueError(\n\u001b[1;32m 2104\u001b[0m \u001b[0;34m\"Format {!r} is not supported (supported formats: {})\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2105\u001b[0;31m .format(fmt, \", \".join(sorted(self.get_supported_filetypes()))))\n\u001b[0m\u001b[1;32m 2106\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2107\u001b[0m def print_figure(self, filename, dpi=None, facecolor=None, edgecolor=None,\n", - "\u001b[0;31mValueError\u001b[0m: Format 'coolfileformat' is not supported (supported formats: eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff)" + "Saving figure to file figs/simulatedOlinBikeshare.pdf\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XmcVNWZ//FP9crS7Ds0+/KIAsriAoiiKChq1JgYZ4xJZibraExilslMtolmHYnJ5JVMxknyi5NEx7hFEBdUBBUJIiqLCg/70kCzQ9Ms3fTy++PeLoqmeoHurlvd/X2/Xrzgnjq37lNUdz11lntOrLKyEhERkXSTEXUAIiIiyShBiYhIWlKCEhGRtKQEJSIiaUkJSkRE0pISlIiIpKWsqAOQ1sHM2gFfA/4eGATsA14Cfuju6xLqbQZmufuvzOzfgevdfcJZXK8HsBu4yd1nJ5TfC3wH+Ky7/zah/B7gX4De7l7rvRfVYnwIyHP3j5xpjNWecyqwAOjg7sUNea4kz/0Q8MmEolJgHfADd380rDMI2ASMdvf3El9jI8VwOfA94EKCL8argJ+7+1+SXb8xrinNn1pQ0uTC5LQA+Bjwb4ABtwC5wFtmNrGGU2cBM87mmu6+B/gAuLjaQ9OAAuDqauWTgIV1JadmbC7QJ/wzEvg18Cczq0r+28LH1jT2hc3sAuAF4EWCBDUWeAx42Mw+1tjXk5ZDLShJhX8HugHj3L0oLNsCLDGz3xN8UI509xOJJ4UtiYa0JhYCl1QdmFkecBFwD/A9M4slJKSJwL0NuFa6K3H3woTj35jZZ4C/A5a5ezlQmPzUBrsDWOzuP0koe8DMRgNfAP7SRNeVZk4JSpqUmWUAnwG+m5CcEn2HoEUzg+BbfuK5/07YxRd2gT1BkFzuBboArwGfdvddNVz+VeATZpbh7hXA5cB24CHgAYJv8u+E3Ut9gVfC62YD9wGfAtoCS4C73d3r8XovDp97PEGr5LcEXWUVZpYF/Bz4KNAJeBu4x92XJnmeDsDPgI8AlWFsX3L3HWb2DeAuYGBVgjWzy4DngV5n0EW4N+F6g6ihi83MhgBvAE+6+11h2deALxJ88VgOfM3dl9RwnQpgpJn1d/dtCeXfIPj/TTTDzP4CDAVWAP9UFY+ZXQj8hKBVnAWsBL7s7osT4v8O8BXgTXefWdv7Ub//IomSuvikqY0AOhN8yJ/G3XcAawlaMHXpDHyeoHvwJoIPqm/XUn8hkAecFx5fBcx398PAMk52800CChLGwu4FriPokrwYcOBVM+tUW3Bm1hOYR9CdNRq4G7iT4IMYgg/0a4AbwpjWAk+YWSzJ0/0PQVfoDILEWgnMC5Pcw0A/YHJC/b8HZtcnOZlZzMyuDl/3w3XU7U0wVvhsGD9m9jngS8A/EyT554BXzGxwDU/zO6A9sMHMnjezr5nZGHff4+5bq9X9HEGranz4mn8bXjOPIAEvB84naBkfBh6sdv71BD9LX6/H+yFpTglKmlrX8O/9tdTZB3Svx3NlErQ43nb3BcCfCT7IknL33cBqTo5DTQPmh/9+JTyG4IO+qvXUluAb+Ofd/VV3X+PudwOHCLqqanMn8Ja73+fu69z9eeBfCSaHQDA55Ciw2d03ErQGP0m138OwxXIb8Pfu/lbYgrgjPP8ad99O0Dq8LayfTdDSqi3Z3GRmxWZWDJQQjAc9RdAKqUnnsN4SgkklVd2h/wZ8092fDV/nj4BF4es/TdjyHA/8LzAOuB9YYWZvmtmwatW/6e6vufv7wK8IkhFAO+A/gH9x9w3uvhz4L+Dcauf/wt3XhufX9X5ImlMXnzS1qsTUsZY6nUnobqrD2oR/FwHZAGb2PDAl4bFzw2/nrwIXm9kcYBRhIgr/vtvMMglaEv8Zlg8lmLzxopklTphoQ9Ciqc15wNQwCVTJANqaWTeCD9wbgR1mthiYAzzk7uVmpzx11YeuVytvF8YwF/gT8BMz+xJBK6uSIJnU5CXCFhDB/9lIgkko/wP8Yw3nfBvIAZ6r6hILWzIDgN+aWWLrJZcg8SXl7uuBz5jZZwlaXR8iaIXNMbPzEqpuSPj3QcIuQHffbWa/A+40s/MJWuZjOf1LduL5tb4f7r6vpnglPShBSVNbD+wBLgXerf5gOB3cqKELMInSasdV3WOf5tTxjB3h3wsJvvFfAaxOmCjwBsHP/2SC7p+qxFX1O3E1wTT1RMnG0BJlAU+SvNvxkLvvsyDjXAvMBL4KfMnMLkryPCcIPoCrzyqsSvhPEszEm0ow0eGx6pNMqjkSJokqq80sl2Am3ZdqOOc1glbPQ2b2sLuvImjFQtDyq/5+Hkv2JGZ2P/CEu78ZtsLeIRj7W0LQbTcwoXp5Dc/Rh2DMbnV4ziNAT05vNSbGUOv7kew6kl7UxSdNyt3LgP8GvmZmXZNUuRfYSjBO0JDrbHf39Ql/ysKHFhK0Fq7mZPce7n4c+BvwTwRdblVjIeuBMqBn1XMRfCv/d4IZgLVZDZyTGEd47e8CFeGsuZvc/Wl3/yxBK6AXcFmS58kG2ic8z06CrrERYfxFwDMEY3HXUsdYUg0yqv1d3Rx3f5ggeT8Yzno8RDDbr1+113kXNd8SMJ1g7LC6IoL/6wP1iPXDBF9OrnL3We7+MpAPwZhaDefU+n7U45oSMbWgJBV+SDDQ/4aZ/RvBN+FeBF1ONwLX1vHt/6y5+y4z20gwXnN7tYdfIRiTeDihfrGZ/Rfwn2ZWQnBD61cIEsH36rjcrwm6DX8Z/rs/wSD+7HAWX2fgPjPbHz7vdQQtkuUEswirYvCwS/KPZnYnQQv0hwQTAxLvU/oT8Diw090X1xFbbjjhAYJWp4Wv53l3P2RmXWo594sEN9Z+juDLxn8A3zWzncBbBBM07iJ4j5P5HvCkmR0F/h9B191o4EfAg/W4PgTjlL2A68zsPYKWY1XLKLeGc2p9P+q4nqQBtaCkybl7CUEL5iHgBwQfsk8TfIudUI8P14ZaSND992q18vkE4zqvVCv/BsGU9j8QTCIYR5BEN1ALd6+aLj+BYIr0nwju8flyWOUB4I/h8zrBB/4t7r729GfjkwQzDZ8mSAKdgKvd/WBCnRcIJl08UltcoesJWmE7Cab1P0IwZvWJuk4M45sF/DhMcv8ZHv8Hwc3QtwIfcfc3ajj/aYLZiyMIxsI+IJgu/gdO/t/U5TGCGX0PEbwnnyO4faGSGibK1OP9kDQX0466Is1T2OrYCVzg7o2+AoRI1JSgRJqZcOmomQSTIzq7+7Q6ThFpljQGJdL8lBNMD99DMF1bpEVSC0pERNJSi2xBhfd3XEjQP5/0vgoREYlUJsEK+m+FE6lO0yITFEFyej3qIEREpE5TCJbKOk1LTVA7AR5++GF69+5dV10REUmxwsJCbr/9dgg/r5NpqQmqHKB3797k5+dHHYuIiNSsxmEY3agrIiJpSQlKRETSkhKUiIikJSUoERFJS0pQIiKSlpSgRESE4qOlHC8pq7tiCrXUaeYiIlIPlZWVvPl+IW+v2U0sBlPH5XPu4G5RhwUoQYmItFrl5RXMX7aNtVuDTY0rK+GVZdsoOlLKxef1JharabPi1FCCEhFphY6XlPHc4s3s2Ft82mPLVu+i6Egp0yb0JzMzupEgjUGJiLQyh4pLeGLBulOS03lDujGwd8f48dqtB5j92sZIx6WUoEREWpHCfUd44pV1HDx8cgHxSWP6MnVcPtdNHsyoISfHn3bsLeaJBes4VJx0sfEmpwQlItJKbCg4yNOvbuBY2CrKzIhxzSWDGGc9icViZGTEuHxcPpPG9I2fc/BwCU+8so7CfUdSHq8SlIhIC1dZWcnytbt5YckWysorAGiTk8VNlw9jWP/Op9SNxWKMs55cc8kgMjOCSRLHSsp4+tUNbCg4mNK4laBERFqwiopKXl++nUUrdlC1g3rnvFw+cuVw+nRvX+N5w/p35qbLh9EmJ5hLV1ZewQtLtrB87W5StRN7ymbxmVkMeAhY5e6zwrK9QEFCtfvd/eEk5/4r8EmCeP8MfN/dtVe9iEgtTpSV8+KSLWzaWRQv69OtPTMnD6Ztbt0f/326t+cjVw5n7qKNHCwuobKykkUrdlB0pJRLz+9HRkbTTkNPSYIys5HAr4GLgVVhmQH73f2COs6dCdwKjCfYN2Qe8AHwWFPGLCLNS8mJcjbtOETpiRq3F2p11mw+wO4DR+PHw/t3ZtqFA8g6g6njnTvkcsuVw3nujU3sDMehVq7fy+EjpUy/ZCDZWZmNHneVVLWg7gR+B2xNKJsElJvZ60An4Angh+5e/afrZuARdz8CYGZ/AD6OEpSIhPYdOsYzr2+k+NiJqENJW+OsJxNH9zmrm2/b5mZx4+VDeXnpVtaH41CbdhaxbPVuJo7u09ihxqVkDMrd73L3R6oVZwEvA9cAlwEzgC8mOb0/sC3huADQNrkiAsC2XYd5csF6JacaZMRiTA1n5jVkZYiszAxmXDKQcdYzXtbUrdXIVpJw998mHpvZA8DdwC+qVc0AEsebYtSyRbCItB4fbNrHwrcLqAgH7XOyM7EBXYh4hZ60kZmZwfD8zvTs2q5Rni8WizFpTF/69+rA3oPHGDm4a6M8b00iS1Bmdgewwt1XhkUxINlXoK1A34Tjvpw6sUJEWpmqBU6Xrd4VL8trm831lw6he+e2EUbWOvTv1YH+vTo0+XWiXItvFHCLmd0C5AB3AafN4ANmA98zs/8ByoBPEcwGFJFWqPoCpwA9OrflukuHkNc2O8LIpLFFeR/U94H9BLP6VgKLCSZSYGafN7PfAbj7M8BTwFLgPeBt4I9RBCwi0TpeUsbs1zaekpwG9u7IzVOHKTm1QLFU3XCVSmY2CNg0f/588vM1n0KkJThUXMIzizaesobcqCHduGxsfpPfjyONr6CggGnTpgEMdvfNyepouw0RSXuF+47w7Bub4mvIQbDA6dgRPSLfs0iajhKUiKS1DQUHeWnp1vgacpkZMa6+aOBpa8hJy6MEJSJpqbKykpXr9rJo5ck15NrkZHHd5MG1riEnLYcSlIiknYqKShat2M7K9XvjZZ3zcrn+0iF07pAbYWSSSkpQIpJWGrrAqbQcerdFJG0cPX6CuYs2NXiBU2kZlKBEJC3sO3SMuYs2cfhoabysIQucSvOnBCUikdu26zAv/G0zJeHioxmxGJeN7ceood2jDUwipQQlIpFas3k/ryzbFl/wNTsrg2suGcTAPh0jjkyipgQlIpGorKzkrQ92sfSDwnhZXttsrps8hB5dtOCrKEGJSATKyytY8PY21mw5uaZe985tuX7yYPLa5UQYmaQTJSgRSanjpWW88LfNFOwujpcN6NWBayYOIie76bYPl+ZHCaoVKi+v4B3fzaHiEsad04uuHdtEHZK0EkVHSpm7aCP7i47Hy84d3I3Lx+WTqQVfpRolqFbmeGkZzy/ezPY9wbfXjTuKuHbioJRsPiat2679R5m7aOMpC75eMqoP48/pqWnkkpTufGtFDhWX8OQr6+PJCaD0RDnPvL6R1Zv2RxiZtHSbdhzirwvXx5NTZkaM6RcPZMLIXkpOUqOUtaDMLEawE+4qd59lZm2BXwMXEWz3/iZwp7sfS3Lu20BboOoOvofd/f6UBN5CJPv22iYni+OlZVRUVjJ/2VYOHy3lwnP1gSGNa8W6PSxacXLB19ycTK6bNJi+PfIijkzSXUoSlJmNJEhGFxPsoAvwrfD6YwgS1J+BfwW+W+3c9sBQoIe7n0hFvC1Nsu0KrrpoAH26tWfuG5vYezD4TrD0g0KKjpRwxfj+ZGpZGWmgiopK3li5gxXr9sTLOrbP4YYpQ+jSQeOeUrdUtaDuJNjOfWtC2WvAZnevADCzd4Hzkpx7EVAMvGBmPYGXgX9L1tKS061Yu6fW7Qo+PHUYLyzZzNbCwwCs2XKAw0dPcO2kQbTJ0RClnJ0TZRW8tHQLG7cfipf16tqO6yYPpl0bbc0u9ZOSr8nufpe7P1Kt7EV3XwtgZgOBLwOPJzm9A7AA+ChwITAA+HHTRtz8VVRU8vq723l9xfZ4cuqcl8tHrhx+yl46OdmZXDd5COcO7hYv276nmKcWrKfoSOlpzytSl6PHT/D0q+tPSU5D+3Xi5qnDlJzkjET+FdnMxgN/BX7l7nOrP+7uc4A5CfV/BDxFkNAkiRNl5bz45lY27Tj5AVHbdgWZGTGuGJ9Pp7wc/rZqJwD7i47z+Py1XH/pEHp1bZey2KV5O1B0nGcWbTzly83YET2ZNEYLvsqZi3SgwcxuA14CvunuP6qhzg1mdllCUQzQWFQNjh4/wV8XbjglOQ3L78yNlw+tdS+dWCzG+HN6Mf3igfH7UY6VlPHXhetPeS6RmmzfU8wTC9bFk1MsFuPysflMPr+vkpOclchaUGZ2A/BLYLq7L6ulaj7wHTO7nGAW3z3AX1IQYrOzv+g4c6t9ez3T7QpGDOhCXttsnlu8meOlZZSVV/Dc4s1cen5fzh/eo6lCl2bOt+xn/rJtVFSEC75mZjD9koEM7tsp4sikOYuyi28WQWvod2ZWVfaGu99pZp8HJrj7p4EHgSHAOwTxLgDujSDetFaw+zDPLz65XUHw7fXstivo2yOPW64cxtxFmzhUXEJlZSWvL99O0ZFSJo/pS4bu+G92du49whsrd3CouKRJnj/x9oV2bbK5fvJgeqprWBooVjWA3pKY2SBg0/z588nPz486nCa3Zku4XUFF425XcPT4CZ5bvJnCfUfiZUP6deLqiwaSnaVp6M3Fum0HeHnpVsormv53vVvHNlw/ZQgdtOCr1KGgoIBp06YBDHb3zcnq6FOmGausrGTpB4W8vHRrPDm1b5PNh6cOb5S9dNq1yeamy4cyNL9zvGzj9kM8/ep6jh7XMGC6q6ys5J01u5m3ZEuTJ6dYLMaQfp348JXDlZyk0UQ+i0/OTrBdQQFrtpxcoqhbp7bccGnjbleQlZnBNZcMZPGqHN713UCwKsUTr6zj+kuHaKHZNFVRUcmr7xbw/sZ98bIuHdpwzcSBtU6WOVuZmRnkaiVyaWRKUM1QsF3BFgp2H46X9e/VgWubaLuCWCzG5DF96dguh9eWB/dVFR0p5ckF65g5aTD9tGRNWik9UX7KzdcA/Xrk6eZraXbUxdfMFB0p5akF609JTucO7sr1lw5p8r10Rg/rznWTB8fHn0pKy5n92gZ8ixaaTRfFR0t5auH6U5KTDejCh6YMUXKSZkcJqhnZHXatJe6lc8moPsHaeSmaWTeoT0dunjqM9uGKABUVlby0dCtvfVBIS5xw05zsPXiMJ15ZF19bEeDCkb246qIBWltRmiX91DYTVdsVVE1OiHK7gp5d2vGRacPpljD+9Ob7hbyybBvl4YK0klpbCot4csE6io8FPx8ZsRjTJgzg4lFawUGaLyWoZmDl+j08t3gzJ8IP/9ycTG68bCgjBnSJLKYO7XL48JXDT9nocPXm/TyzaBPHS8tqOVMa2/sb9/Hsok2cKAt+PnKyM7lhyhBGDu4acWQiDaNO6RqUniiPb08RpXd8N8vXpud2BbnZmVx/6RAWvr2N1ZuDcaiC3Yf564L1zJg4iDY5mtXV1Fas28vba3bFj/PaZnPDlCF069Q2wqhEGocSVBJL3y9k2epdVKTZmEo6bleQmRHjygn96ZSXy5L3goVm9xUd55F5ayKOrPXp0aUt100eQl7b9Pn5EGkIJagkPti0L+2S09B+nbgqTVdwiMViTBjZiw7tsk9Zj01SZ1Cfjsy4ZCDZWWq1SsuhBJXExef14a3VhfE+/ShlZ2VwzqCuTDinV9qvgWcDu5LXLofFK3doL6kUycyIcc6grlx0bu+0//kQOVNKUEmMHNxVA8xnqV+PPD46bUTUYYhIC5B+/UUiIiIoQYmISJpSghIRkbSkBCUiImkpZZMkzCwGPASscvdZZpYJ/Ay4Joxjlrv/d5Lz6lVPRERalpS0oMxsJDAf+EhC8eeAEcAo4ELgy2Z2UZLT61tPRERakFR18d0J/A54PKHsZuAP7l7m7geAR4GPJzm3vvVERKQFSUmCcve73P2RasX9gW0JxwVAfpLT61tPRERakCgnSWQAiWvixIDyBtQTEZEWJMoEtRXom3Dcl6B1dLb1RESkBYlyqaPZwD+a2TNAHnAb8PkG1BMRkRYkygT1G2AosALIAR5091cBzOxeAHf/bm31RESk5UppgnL3TyX8uwz4cg31vlufeiIi0nJpJQkREUlLSlAiIpKWlKBERCQtKUGJiEhaUoISEZG0pAQlIiJpSQlKRETSkhKUiIikJSUoERFJS0pQIiKSlpSgREQkLSlBiYhIWlKCEhGRtKQEJSIiaUkJSkRE0pISlIiIpKUod9TFzD4B3JNQ1AnIB/LdfVdCvZ8BHwX2h0Xu7h9LWaAiIpJykSYod/8j8EcAM8sGXgN+kpicQpOA29x9cYpDFBGRiESaoKr5F2C3uz+YWGhmucBY4BtmNhRYC3zF3bdGEKOIiKRIWoxBmVl34KvAV5I83Bd4Bfg2MAZYAsw2s1jqIhQRkVRLlxbUZ4HZ7r6x+gPuvgmYWXVsZrOA7wCDgE2pClBERFKrXi0oM+tmZt8K/32xma01syVmZo0Ux8eAP9Rw7TFmdke14hhwopGuLSLSqv3f//0fH/rQh5g5cybXXXcdX//619mxYwcAV155JatWrWLVqlXcfffdKY2rvi2o/wbywm61XwMvAIeB3wBXNiQAM+sCDANqmgBRAfzSzBaFrakvACvdvaAh1xUREfjpT3/KmjVrePDBB+nTpw8VFRXMmTOHj33sYzz++OPxeqNHj+aXv/xlSmOrb4K6BBgO9AYuAGYABzk57bshhgE73T3eIjKzCcDv3P0Cd3/PzL4IPGNmmUAB8HeNcF0RkZR713ez9INCTpRVNNk1srMyuOjc3oy1nrXWKyws5NFHH2XhwoV06tQJgIyMDG666Sbee+89Hnzw5Jy1N998k/vuu4+5c+fyzW9+k7y8PNydwsJCzIyf/vSntG/fvlFfR30TVBugEriGoPWyz8y6ASUNDcDd3yJIUollywgSYdXxn4E/N/RaIiJRW752T5MmJ4ATZRUsX7unzgS1YsUKhgwZEk9OiSZNmsQvfvGLGs997733+OMf/0gsFuPWW2/lhRde4JZbbmlw7InqO4vveeA54AfA/5rZEGA2MKdRoxERaeEuGNGD7KymnUCdnZXBBSN61KtuWVlZ0vLS0lJisZonS0+ZMoWcnByys7MZMWIEhw4dOqtYa1PfFtRngX8GHnH335vZSIKp3z9q9IhERFqwsdazzpZNqlxwwQVs2bKFPXv20KPHqQntzTffZOzYsbz22mtJz23Tpk3837FYjMrKykaPr15p3N2Pu/sDwEIzmwasA2a5+/FGj0hERFKiV69e3HHHHdxzzz3s2nVyAZ8nn3ySF198kc985jMRRlfPFlR4I+2jwOUE404XA6+Z2XR3f7sJ4xMRkSb01a9+lccff5wvfOELlJaWUlpayujRo3n00Ufp169fpLHF6tMsM7NHgT3AN4ECd+9iZv8CXO/uU5o4xjNmZoOATfPnzyc/Pz/qcEREpJqCggKmTZsGMNjdNyerU9+RuiuBr7n7EYLZfACzgNENDVJERCSZ+iaow0CfamV9aJz7oERERE5T3wT1e2CumX0UyDSzq4G/EG6VISIi0tjqO838J8Bx4PvhOb8mSE4/aaK4RESklav3aubhNPMHEsvMbATB/kwiIiKNqr5dfI+YWbyumWWEs/jebZqwRESktatvC6oP8Gczux0YRbA1Rjfg1qYKTEREWrf6tqCuBXoQ7Ga7BHgVOM/dn22qwEREpHWr71JHR4HrCW7WfYPgnqijTRmYiIikRrPcsNDMDnDyxtyq+nnAQTMrB3D3rk0XnoiINKXmvGHhzZyaoBqdmf0M+Cgnb/p1d/9YtToXA78iSI47gI+7+86mjEtEpCmsLFzNsh0rKStPvs1FY8jKzGJC3zGM6T2y1nrNesNCd1/YqFdLbhJwm7sn3fLdzHKAJ8I6b5jZFwhuHJ6ZgthERBrVyl2rmzQ5AZSVl7Fy1+o6E1S6b1hYVxffVncfkKSrL64hXXxmlguMBb5hZkMJ7qn6irtvTah2IVDk7m+Ex78HfmFm3dx939leW0QkCmN6jUxJC2pMr9qTU5WGblgIRLZh4d+HfzdVV19fgo0Pvw28D3wNmG1m49y96nr9gW1VJ7h7qZntAfoBSlAi0qyM6T2yzpZNqqT7hoV1dfEtCv9emFhuZt3dfW9DL+7um0joqjOzWcB3gEHAprA4g9OTYwwob+j1RURas8QNC2fNmkWvXr2AkxsWPvbYYzUmqFSo80ZdM/sHYDwwG1hG0OIZY2ZrCfaD2nC2FzezMcD57v6nhOIYcCLheCtBS6vqnGyCm4S3n+11RUQk0Gw3LDSzHwCfIEhKU4EtwGbgP4AvAPnuftPZXtzMRgGvA+PcfZOZ/TNwu7tPTqiTTdCautXdF5vZ5wgmTFxRy/MOQhsWioikrfpsWFhXC+oTwJXuvt7MzgVWATe6+8FwLb6ttZ9eO3d/z8y+CDxjZplAAfB3ZtYXeA6Y6e47zOzDwK/MrD3BuNMnGnJdERFJf3UlqC7uvh7A3T8ws2PufjA8PmJm9V4NvSbu/mfgz0keuiChzlLgooZeS0REmo+6ljqq3v9XWu245jmIIiIiDVBXCyjDzEZzMhFlVjuu72KzIiIiZ6SuBNUOWM6pLaUVCf9u0mWQRESk9arrPii1kEREJBJKQCIikpaUoEREJC0pQYmISFpSghIRkbSkBCUiImlJCUpERNKSEpSIiKQlJSgREUlLSlAiIpKWlKBERCQtKUGJiEhaUoISEZG01OANBxvKzD4OfJ1gZfSjwN3uvqxanS8C3wIKw6LD7j4lpYGKiEhKRZqgzMyA+4Fx7r7TzGYCTwEDqlWdBNzj7o+kOkYREYlG1F18JcCn3X1neLwM6G1mOdXqTQJuN7OVZjYv3DRRRERasEgTlLtvdvdnAcwsBjwAzHH3+NbyZtYeWAP81N3HAL8HnjezvChiFhGR1Ih8DAriSeghoD9wTeJj7n4EmJFw/JiZfQevYDONAAAUkklEQVS4EFiQwjBFRCSFou7iw8wGAIuBcuAKdz9Y7fGB4SSJRDHgRIpCFBGRCESaoMysA7AQeMrdb3P3Y0mqHQF+YGYXhefMBNoBS1MWqIiIpFzUXXx3AQOBm83s5oTy64BngZnuvsPMbgUeDCdPFAE3J45TiYhIyxNpgnL3HwM/ruHhCxLqzQPmpSQoERFJC5GPQYmIiCSjBCUiImlJCUpERNKSEpSIiKQlJSgREUlLSlAiIpKWlKBERCQtRX2jbloqPLybVbucExXRr6aUlZGFdR/CwM75UYdSL8UlR1he+AFFJYejDqVVyMrIZHi3IQzu0j/qUEQanRJUEgs3L6HoePp8wG4+sI0J/cYwts8oYrFY1OHUaM+RfbywbiHHThyPOpRWZfOBAsb2HcWEvmPS+udD5Eypiy+Jbm27RB3CaZZtX8mrm5dQUVERdShJbTlYwDNrXlZyisi7O95jwabFlFeURx2KSKNRCyqJq4Zeyq4jezlRHm0XX2VlJat2rWF7UbDT/dq9GzlSepSrh04hJ6v6no7ReX/3Wt7YugwqKwHIycphUv/xtM1uE3FkLd97u5xth3YAsH7fZopLjzJ92GW0ycqNODKRhlOCSiIWi9E7r0fUYQCQ37EPr215k7V7NwKwvaiQ2Wte5NrhV5CX2z7S2CorK1lS8A6rCtfEyzrk5nHtiCvo3KZjhJG1Hv069uaNLctYvWcdEIyfzl79IteOuIKOudrTU5o3dfGluYyMDC4fdAkT+p0fLztw7BB/Xf0Ce4/sjyyusvIyXtrw+inJqWded24aOUPJKYUyYhlcOvBCLu4/Nl526HgRT6+ex67iPRFGJtJwSlDNQCwWY1zfUVwxZBIZseAtO3biOHP8JbYcLEh5PMdOHGfu2vlsPrAtXjaoS3+uHzFN3XoRiMVinN/7XK4aeikZGcHPx/ETx5nr89mU8B6JNDdKUM3I8G6DmWlXxsefysrLmLf+Nd7fvTZlMRw8doinV89jd/HeeNno3udw1dBLycpUj3GUhnQdyPV2Fbnh+FN5RTkvbXidlYWrqQzHB0Wak8g/UczsOoI9oXKBlcA/uXvRmdZpLfp26MWN50zn+XULKC45ApWVvLHlLQ6XFHNx/tgmnWa88/Bu5q1/ldKycK/IWIxJ/cczqpc12TXlzPTO68FNI6fz/LqFwa0SlZUs2fYOh0uLmdh/fLwFLtIcRL3lew/gD8At7m7ARuAnZ1qntenSthM3jZxBj/bd4mUrC1fz8oZFlDXRNOP1+zbz7Nr58eSUlZHFjGGXKTmloU5tOnLTOdPplTDR5/1da3lx/WuRz0wVORNRt6CmA2+5+7rw+DfACjO7090rz6BOq9Muuy032FW8sukNNh8IxqE2HdjKET/KjGGXN9pYUGVlJe/ufJ9l21fEy9pmt+Ga4VNPSZCSXtpkt+E6m8bCTX9j4/4tAGw9uJ2HVz5Ndkbj/9pnZmQyotsQLuhzrlpp0miiTlD9gcRR3AKgI9ABKDqDOq1SVmYWVw2dwpJt7/LermA23e7ivTy9el6jTPWuqKjg9S1L8b0b4mWd23bi2uFT6aApzGkvKyOTaUMm0yG3PSt2fgBAaVkppZQ2yfWWbV/B3qP7uHLwZI1HSqOI+qtOBpCsFVR+hnVarYxYBpMGjGfSgAkQjj8dLinm6dXz2Hl491k/b2lZKc+vW3BKcurbsTc3njNdyakZicViXJw/limDLiInM7vJr7f5QAHP+MscPXGsya8lLV/UX3O2AhcnHPcDDrj7kTOs0+qN6mXk5bRn/sZFlFeUU1pWyrNr5zN10ESGdRt0Rs9VXHqEF9YtZP/Rg/GyEd2HMGXgRWRmZDZy5JIKI3sMZ3i3IRxvoqWoVu1eE78nbs+RfcHNwsOn0rltpya5nrQOUbegXgQuMbPh4fHngdlnUUeAQV3yueGcq+PjTxUVFbyy8Q2W73y/3tOM9x7dz9Or552SnMb3G8Plgy5RcmrmsjIyyctt3yR/JvYfz+SBF57ail/zIjsO74r4VUtzFmmCcvfdwD8AT5jZamA08FUzm2Bmy2urE1XM6a5n+27Bag4J31yXFizn9S1L61xoduvB7cxZ8xJHS4PumYxYBlMHT2R839FaJVvqdF7PEcwYdhlZ4SSM0rJSnvNXWLdvU8SRSXMVa4k38JnZIGDT/Pnzyc9vHvsoNbaSslJeXP8aOxO+weZ36sNVQ6ckHYv4YPc6Fm196+SCr5nZXD3sMvp17J2ymKVlSLbtyoR+5zO2z3n6oiNxBQUFTJs2DWCwu29OVifqLj5pIrlZOcwccQXDuw2OlxUc2smcNS9RXHpy+K4yvJFz0Zal8eSUl9ueG0fOUHKSs9IjbMV3SWjFL9u+gtc2v5m228VIelKCasEyMzKZOngi4/qOjpftP3qAp1e/yN6j+ymrKGf+xkWsLFwdf7x7+66nfbiInKkOuXl86Jzp9E34kuN7N/D8ugUnVyIRqYMSVAsXi8WY0G8MUwdPjHevHC09ypw1LzFnzYts3L81Xndg53xusKtol902qnClBcnNyuHa4VMZ0X1IvKxqu5jiEk3ClbopQbUSI7oPYeaIK+PjT2XlZads1zGql3H1sClkp+BeGWk9MjMyw+1ixsTLDhw7xNNr5kW6XYw0D0pQrUi/jr350Mjpp250GIsxMbzRV0vUSFMItosZzdTBE+M/Y0dLjzHHX2Lrwe0RRyfpTJ9IrUzXtp25aeQMBnXJp0vbTkwfehmje50TdVjSCgSt+CtOacW/sP5VPkjhdjHSvES9koREoF12W6YPuzzqMKQV6tuxNzeOnHHKdjGLtrxFUQq2i5HmRy0oEUmpqu1iurfvGi9r6u1ipHlSghKRlKvaLmZg55M30m86sJW5/vIpN/hK66YEJSKRyM7M5uphU07Z9HJ38V5mr5nHweOteicdCSlBiUhkgu1iJjBxwPj4QrNFx4uZvfpFChuwXYy0DEpQIhK50b3OYfrQKfEV80vKSpi7dj4bwt2ApXVSghKRtDCoS39uOOdq2iRsFzN/wyKW7/yg3tvFSMuiBCUiaePkdjEd42VLC94Ntoup1EKzrY0SlIiklY65edx4zgz6dOgVL1uzZz0vrFtIafmJCCOTVFOCEpG0U7VdzLA6touRli3SlSTM7OPA14FK4Chwt7svS1Lvi8C3gMKw6LC7T0lZoCKScpkZmVwxeCIdc9vzzo73gJPbxVw7fCrd2nWJOEJpapElKDMz4H5gnLvvNLOZwFPAgCTVJwH3uPsjqYxRRKIVbBdzPh1y83ht85tUVlZytPQos9e8yNVDp9C/U9+oQ5QmFGUXXwnwaXffGR4vA3qbWU6SupOA281spZnNM7PRSeqISAtl3Ydy7Ygr4tvBlJWX8cK6hazesy7iyKQpNXmCMrOZZlZW/Q9wmbs/G9aJAQ8Ac9y9tNr57YE1wE/dfQzwe+B5M8tr6thFJH3kd+zDjSOn0z6nHQCVlZW8vnkpSwuWaxp6C9XkXXzu/lxt1wkT0ENAf+CaJOcfAWYkHD9mZt8BLgQWNHa8IpK+qraLmbf+1fiGh8t3vs/hkmIuHzyRrPBGX2kZIp3FZ2YDgMVAOXCFux9MUmdgOEkiUQzQfFORVqh9TjtusKsY0LlfvGzD/i08t3Y+x8tKIoxMGluUkyQ6AAuB/3X379dS9QjwAzN7092XhpMp2gFLUxCmiKSh7Mxspg+7jMVbl/HB7mAcqvDwHp5ePY+xfc4jhvaVgmCtw/6d+pKblWxo/+wdPXGMg8eL6JPXs0n38IpymvldwEDgZjO7OaF8GpALPAfMdPcdZnYr8GA4gaIIuLn6WJWItC4ZsQwmD7iQjrkdWLLtHQCKjh/m1U1LIo4sveRm5TJj+OX0zuvRKM+3Yf8WFmxaTEVFBeP7jWF836absxZZgnL3HwM/rqXKBQl15wHzmjwoEWlWYrEYY3qPJC+nPQs2LaZcGx6epqSshLn+MlcMnsTQrgPP+nkqKytZUbiapQXvxsuOlB5tjBBrpC3fRaTZG9J1AJ3adGDN3vWUlml4usq2op0cP3E8vvDu4ZIjnN975Bl3y1VUVrBoy1us2bM+Xta5bccmbT2BEpSItBDd2nVh8oALow4jrRSVFPP82gUcCjeAXFrwLodLipk8cAIZsfrNkSstP8HLG16n4NDOeFmfDr2YPuyyRh/bqk5r8YmItFAdc/O4ceT0UxbeXb1nXb0X3i0uPcKcNS+dkpyGdRvMzBFXNHlyAiUoEZEWrU1W7lktvLsvXPdw/9ED8bJxfUdxxeCJ8Y0lm5oSlIhIC1e18O7YvqPiZVUL7+5LSEBVth3awew1L3I0nAQRi8W4fPAlTOh3fpNOK69OCUpEpBWIxWJc2O98Lht0STzJVC28u+3Qjni9qi7AsvIyILjn7NoRV2Ddh6Y8Zk2SEBFpRc7pMZS83Ha8tP51TpSfiC+8e+nACzlccoTlO9+P183Lbc81w6fStW3nSGJVC0pEpJXJ79iHG885feHdxOTUvX1XbjpnRmTJCZSgRERapa7tgoV3u7fvetpjAzr34wa7inY5bSOI7CQlKBGRVirZwrvn9hzB9GGXxffeipLGoEREWrGqhXe3HtxBTlZ2ky8AeyaUoEREWrmMWAaDuuRHHcZp1MUnIiJpSQlKRETSkhKUiIikJSUoERFJS5FOkjCznwEfBfaHRe7uH0tS72LgV0AesAP4uLvvrF5PRERajqhn8U0CbnP3xTVVCLd5fyKs94aZfQH4PTAzRTGKiEgEIktQZpYLjAW+YWZDgbXAV9x9a7WqFwJF7v5GePx74Bdm1s3d99Xw9JkAhYWFTRC5iIg0VMLnc417dzR5gjKzmcCcJA/dB7wCfBt4H/gaMNvMxrl7ZUK9/sC2qgN3LzWzPUA/oKYE1Qfg9ttvb/gLEBGRptQH2JDsgSZPUO7+XH2uY2azgO8Ag4BNCQ9lAJXVqseA8lqe7i1gCrCzjnoiIhKNTILk9FZNFaLs4hsDnO/uf0oojgHV9yHeCvRNOC8b6AZsr+m53b0EWNR40YqISBNI2nKqEuU08wrgl2ZWtQ/xF4CV7l5Qrd6bQDczmxQe/yPwN3c/mKI4RUQkArHKyuq9Z6ljZh8HvknQ1CsA/sndt5pZX+A5YKa77zCziwimmbcnGHf6hLtvjihsERFJgUgTlIiISE20koSIiKQlJSgREUlLUa8kkZbM7Drgx0AusJJgbKwo2qgaT32XmGqOzCwGPASscvdZZpYJ/Ay4huDnfZa7/3eEITZI9dcXlu0lGMOtcr+7PxxBeA0Wjkt/neDWkqPA3e6+zMz+FfgkwXv4Z+D71e6XbDZqeY1vA22B0rDqw+5+f0RhnjUzu4tg0lslwSy9zxDMHTjj30MlqGrMrAfwB2Cyu68zs58CPwH+OdrIGlWdS0w1R2Y2Evg1cDGwKiz+HDACGAV0AP5mZu+4+9Joojx7yV6fmRmw390viDK2xhC+lvuBce6+M7zJ/ykz+zxwKzCe4L7GecAHwGORBXuWanmNI4GhQA93r36rTbNhZuMJFl04390Phfe33ges4Cx+D9XFd7rpwFvuvi48/g1we/jNtdmrtsTUKjN70swGRB1XI7kT+B3weELZzcAf3L3M3Q8AjwIfjyK4RpDs9U0Cys3sdTNbaWbfDVuNzVEJ8OmEhaCXAb0JWvuPuPsRdz9O8AWyub6HNb3GS4Fi4IXw9/LnZtY2qiDPlru/DQwPk1MbTq74c1a/h0pQpztlaSWCrpOOBFm/JejLySWmxgBLCJaYavYJ2N3vcvdHqhUnez/Tb2/reqjh9WUBLxN0nVwGzAC+mOrYGoO7b3b3ZyHelfkAwTJpfWg572FNrzEXWECQjC8EBhAMMzQ77n7CzG4ieJ8uI/hCcVa/h+riO12ypZWghSyZ5O6bSFgJvpYlplqK6u9nXctkNSvu/tvEYzN7ALgb+EU0ETWcmbUnGGfrT5B4H6OFvYfVX2O48MCchMd/BDwFfDmSABvI3Z8GnjazzxB0yZZxFu+hWlCnO2VpJYIm6gF3PxJRPI3KzMaY2R3VipMtMdVSVH8/+3LqhIJmzczuCJcNq9Ks38uwu3kxwYfXFeEHd4t6D5O9RjO7wcwuS6jWLN9HMxtmZpcmFP0/YCDB0nRn/B4qQZ3uReASMxseHn8emB1hPI2tvktMtRSzgX80sywz6wzcBjwdcUyNaRRwr5llhmMWdwF/iTims2JmHYCFwFPufpu7Hwsfmk0wDtw+HEP9FM30PazlNeYDs8ysbTiGeA/N833sAzxqZt3D49uB9whag2f8e6guvmrcfbeZ/QPwRLhZ4gbgExGH1Wjc/T0z+yLwTPiLUAD8XcRhNaXfEMyOWgHkAA+6+6vRhtSovk+wDNgqIJtgAsXvIo3o7N1F8G37ZjO7OaF8GsEH3FKC93A28MfUh9coanuNQ4B3CD6XFwD3pj68hnH3183sh8BCMysj2AH9JoLxpzP+PdRSRyIikpbUxSciImlJCUpERNKSEpSIiKQlJSgREUlLSlAiIpKWNM1cJIXM7HlgSniYS3B3fdXq1W8RLHPTz90PRRCeSFrRNHORiJjZQ8BBd2+Wy9mINDW1oETShJkNIlgPsQvQGVhOsE7itwhubvwewfI43wLaAD9w95+H554L/JJgS4pdwL1JFpYVaVY0BiWSvjoBEwhWtv488HOCLsAhwD8A95tZFzPLA14CXgB6AncAPzezKUmfVaSZUIISSW/3uXspMB/IBP7T3UuAueFxf+A6oMjdZ7n7CXd/i2CRzs9HFbRIY1AXn0h62xf+XbU1wUEAd68INmclg2Btt2FmdjDhvEyCdd1Emi0lKJH0Vp9ZTDuAZe4+sarAzPrW81yRtKUuPpHm7zlgqJl9KtzOYDDBlg6fizYskYZRghJp5tx9P8HOs58C9hBshvdX4L4IwxJpMN0HJSIiaUktKBERSUtKUCIikpaUoEREJC0pQYmISFpSghIRkbSkBCUiImlJCUpERNKSEpSIiKSl/w9CcgNNJoN2LQAAAABJRU5ErkJggg==\n", "text/plain": [ "

" ] @@ -1962,7 +1946,7 @@ "source": [ "bikeshare = State(olin=10, wellesley=2)\n", "run_simulation(0.5, 0.5, 30)\n", - "savefig('figs/simulatedOlinBikeshare.coolFileFormat')" + "savefig('figs/simulatedOlinBikeshare.pdf')" ] }, { From acc90c102b3b780f72991f1c9166e5c0c78986a7 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 10 Sep 2018 17:00:34 -0400 Subject: [PATCH 06/61] chapter 3 --- code/chap03.ipynb | 673 ++++++++++++++++++++++++++++++++++--- code/figs/chap02-fig01.pdf | Bin 0 -> 14144 bytes 2 files changed, 618 insertions(+), 55 deletions(-) create mode 100644 code/figs/chap02-fig01.pdf diff --git a/code/chap03.ipynb b/code/chap03.ipynb index dd48de52..e1f94075 100644 --- a/code/chap03.ipynb +++ b/code/chap03.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -96,7 +96,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -125,18 +125,114 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 9, "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", + "
values
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare1 = State(olin=10, wellesley=2)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 10, "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", + "
values
olin2
wellesley10
\n", + "
" + ], + "text/plain": [ + "olin 2\n", + "wellesley 10\n", + "dtype: int64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare2 = State(olin=2, wellesley=10)" ] @@ -150,7 +246,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -159,7 +255,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -175,18 +271,114 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "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", + "
values
olin11
wellesley1
\n", + "
" + ], + "text/plain": [ + "olin 11\n", + "wellesley 1\n", + "dtype: int64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare1" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 14, "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", + "
values
olin1
wellesley11
\n", + "
" + ], + "text/plain": [ + "olin 1\n", + "wellesley 11\n", + "dtype: int64" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare2" ] @@ -209,9 +401,20 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "bikeshare = State(olin=10, wellesley=2)\n", "run_simulation(bikeshare, 0.4, 0.2, 60)\n", @@ -227,7 +430,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -261,9 +464,20 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "bikeshare = State(olin=10, wellesley=2)\n", "run_simulation(bikeshare, 0.4, 0.2, 60)\n", @@ -290,9 +504,20 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 18, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "5" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "x = 5" ] @@ -306,9 +531,20 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "x == 5" ] @@ -322,9 +558,17 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "yes, x is 5\n" + ] + } + ], "source": [ "if x == 5:\n", " print('yes, x is 5')" @@ -339,7 +583,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -382,9 +626,67 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 22, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
olin10
wellesley2
olin_empty0
wellesley_empty0
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "olin_empty 0\n", + "wellesley_empty 0\n", + "dtype: int64" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare = State(olin=10, wellesley=2, \n", " olin_empty=0, wellesley_empty=0)" @@ -399,7 +701,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -435,9 +737,27 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 27, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap02-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "run_simulation(bikeshare, 0.4, 0.2, 60)\n", "decorate_bikeshare()\n", @@ -453,18 +773,40 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 28, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "18" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.olin_empty" ] }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 29, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare.wellesley_empty" ] @@ -486,9 +828,72 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 32, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
olin10
wellesley2
olin_empty0
wellesley_empty0
clock0
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "olin_empty 0\n", + "wellesley_empty 0\n", + "clock 0\n", + "dtype: int64" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "bikeshare = State(olin=10, wellesley=2, \n", " olin_empty=0, wellesley_empty=0,\n", @@ -497,29 +902,63 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def step(state, p1, p2):\n", + " \"\"\"Simulate one minute of time.\n", + " \n", + " state: bikeshare State object\n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " \"\"\"\n", + " state.clock += 1\n", + " if flip(p1):\n", + " bike_to_wellesley(state)\n", + " \n", + " if flip(p2):\n", + " bike_to_olin(state)" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 33, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# Solution goes here" + "run_simulation(bikeshare, 0.4, 0.2, 60)" ] }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 35, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "60" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "bikeshare.clock" ] }, { @@ -537,39 +976,163 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 66, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
olin10
wellesley2
olin_empty0
wellesley_empty0
clock0
t_first_empty-1
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "olin_empty 0\n", + "wellesley_empty 0\n", + "clock 0\n", + "t_first_empty -1\n", + "dtype: int64" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "bikeshare = State(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0,\n", + " clock=0, t_first_empty=-1)" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 67, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def step(state, p1, p2):\n", + " \"\"\"Simulate one minute of time.\n", + " \n", + " state: bikeshare State object\n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " \"\"\"\n", + " state.clock += 1\n", + " if flip(p1):\n", + " bike_to_wellesley(state)\n", + " \n", + " if flip(p2):\n", + " bike_to_olin(state)\n", + " if (state.olin_empty == 1 or state.wellesley_empty == 1) and state.t_first_empty == -1:\n", + " print(\"it ran again!\")\n", + " state.t_first_empty = state.clock" ] }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 68, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "it ran again!\n", + "Saving figure to file figs/chap02-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# Solution goes here" + "run_simulation(bikeshare, 0.4, 0.2, 100)\n", + "decorate_bikeshare()\n", + "savefig('figs/chap02-fig01.pdf')" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 69, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "83" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "bikeshare.t_first_empty" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/code/figs/chap02-fig01.pdf b/code/figs/chap02-fig01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ad4decaf065706b5cbb0f6c7fccc66a90e49ca03 GIT binary patch literal 14144 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%0A-5ZEDE}6R&(Q=%I|GxIfYSZhyOV`=K}7 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 literal 0 HcmV?d00001 From 56561d7351a5a223574e816dc61e344eede1fa29 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 11 Sep 2018 15:49:44 -0400 Subject: [PATCH 07/61] made my very own ch.4 notebook --- code/chap04-mine.ipynb | 677 +++++++++++++++++++++++++++++++++++++++++ code/chap04.ipynb | 2 +- 2 files changed, 678 insertions(+), 1 deletion(-) create mode 100644 code/chap04-mine.ipynb diff --git a/code/chap04-mine.ipynb b/code/chap04-mine.ipynb new file mode 100644 index 00000000..3ffdcd6e --- /dev/null +++ b/code/chap04-mine.ipynb @@ -0,0 +1,677 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 4\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": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim library\n", + "from modsim import *" + ] + }, + { + "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": 2, + "metadata": {}, + "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": 3, + "metadata": {}, + "outputs": [], + "source": [ + "y = add_five(3)" + ] + }, + { + "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": 4, + "metadata": {}, + "outputs": [], + "source": [ + "add_five(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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": 5, + "metadata": {}, + "outputs": [], + "source": [ + "add_five(3)\n", + "add_five(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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": 6, + "metadata": {}, + "outputs": [], + "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 `make_state` that creates a `State` object with the state variables `olin=10` and `wellesley=2`, and then returns the new `State` object.\n", + "\n", + "Write a line of code that calls `make_state` and assigns the result to a variable named `init`." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Running simulations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the code from the previous notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def step(state, p1, p2):\n", + " \"\"\"Simulate one minute of time.\n", + " \n", + " state: bikeshare State 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(state)\n", + " \n", + " if flip(p2):\n", + " bike_to_olin(state)\n", + " \n", + "def bike_to_wellesley(state):\n", + " \"\"\"Move one bike from Olin to Wellesley.\n", + " \n", + " state: bikeshare State object\n", + " \"\"\"\n", + " if state.olin == 0:\n", + " state.olin_empty += 1\n", + " return\n", + " state.olin -= 1\n", + " state.wellesley += 1\n", + " \n", + "def bike_to_olin(state):\n", + " \"\"\"Move one bike from Wellesley to Olin.\n", + " \n", + " state: bikeshare State object\n", + " \"\"\"\n", + " if state.wellesley == 0:\n", + " state.wellesley_empty += 1\n", + " return\n", + " state.wellesley -= 1\n", + " state.olin += 1\n", + " \n", + "def decorate_bikeshare():\n", + " \"\"\"Add a title and label the axes.\"\"\"\n", + " decorate(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a modified version of `run_simulation` that creates a `State` object, runs the simulation, and returns the `State` object." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation(p1, p2, num_steps):\n", + " \"\"\"Simulate the given number of time steps.\n", + " \n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " num_steps: number of time steps\n", + " \"\"\"\n", + " state = State(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0)\n", + " \n", + " for i in range(num_steps):\n", + " step(state, p1, p2)\n", + " \n", + " return state" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now `run_simulation` doesn't plot anything:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "state = run_simulation(0.4, 0.2, 60)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But after the simulation, we can read the metrics from the `State` object." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "state.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run simulations with different values for the parameters. When `p1` is small, we probably don't run out of bikes at Olin." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "state = run_simulation(0.2, 0.2, 60)\n", + "state.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When `p1` is large, we probably do." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "state = run_simulation(0.6, 0.2, 60)\n", + "state.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## More for loops" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`linspace` creates a NumPy array of equally spaced numbers." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "p1_array = linspace(0, 1, 5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use an array in a `for` loop, like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "for p1 in p1_array:\n", + " print(p1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This will come in handy in the next section.\n", + "\n", + "`linspace` is defined in `modsim.py`. You can get the documentation using `help`." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "help(linspace)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`linspace` is based on a NumPy function with the same name. [Click here](https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html) to read more about how to use it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** \n", + "Use `linspace` to make an array of 10 equally spaced numbers from 1 to 10 (including both)." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "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": 19, + "metadata": {}, + "outputs": [], + "source": [ + "help(linrange)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use `linrange` to make an array of numbers from 1 to 11 with a step size of 2." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sweeping parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`p1_array` contains a range of values for `p1`." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "p2 = 0.2\n", + "num_steps = 60\n", + "p1_array = linspace(0, 1, 11)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following loop runs a simulation for each value of `p1` in `p1_array`; after each simulation, it prints the number of unhappy customers at the Olin station:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "for p1 in p1_array:\n", + " state = run_simulation(p1, p2, num_steps)\n", + " print(p1, state.olin_empty)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can do the same thing, but storing the results in a `SweepSeries` instead of printing them.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "sweep = SweepSeries()\n", + "\n", + "for p1 in p1_array:\n", + " state = run_simulation(p1, p2, num_steps)\n", + " sweep[p1] = state.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then we can plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "plot(sweep, label='Olin')\n", + "\n", + "decorate(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Arrival rate at Olin (p1 in customers/min)', \n", + " ylabel='Number of unhappy customers')\n", + "\n", + "savefig('figs/chap02-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercises\n", + "\n", + "**Exercise:** Wrap this code in a function named `sweep_p1` that takes an array called `p1_array` as a parameter. It should create a new `SweepSeries`, run a simulation for each value of `p1` in `p1_array`, store the results in the `SweepSeries`, and return the `SweepSeries`.\n", + "\n", + "Use your function to plot the number of unhappy customers at Olin as a function of `p1`. Label the axes." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write a function called `sweep_p2` that runs simulations with `p1=0.5` and a range of values for `p2`. It should store the results in a `SweepSeries` and return the `SweepSeries`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optional exercises\n", + "\n", + "The following two exercises are a little more challenging. If you are comfortable with what you have learned so far, you should give them a try. If you feel like you have your hands full, you might want to skip them for now.\n", + "\n", + "**Exercise:** Because our simulations are random, the results vary from one run to another, and the results of a parameter sweep tend to be noisy. We can get a clearer picture of the relationship between a parameter and a metric by running multiple simulations with the same parameter and taking the average of the results.\n", + "\n", + "Write a function called `run_multiple_simulations` that takes as parameters `p1`, `p2`, `num_steps`, and `num_runs`.\n", + "\n", + "`num_runs` specifies how many times it should call `run_simulation`.\n", + "\n", + "After each run, it should store the total number of unhappy customers (at Olin or Wellesley) in a `TimeSeries`. At the end, it should return the `TimeSeries`.\n", + "\n", + "Test your function with parameters\n", + "\n", + "```\n", + "p1 = 0.3\n", + "p2 = 0.3\n", + "num_steps = 60\n", + "num_runs = 10\n", + "```\n", + "\n", + "Display the resulting `TimeSeries` and use the `mean` function provided by the `TimeSeries` object to compute the average number of unhappy customers." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Continuting the previous exercise, use `run_multiple_simulations` to run simulations with a range of values for `p1` and\n", + "\n", + "```\n", + "p2 = 0.3\n", + "num_steps = 60\n", + "num_runs = 20\n", + "```\n", + "\n", + "Store the results in a `SweepSeries`, then plot the average number of unhappy customers as a function of `p1`. Label the axes.\n", + "\n", + "What value of `p1` minimizes the average number of unhappy customers?" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + } + ], + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/code/chap04.ipynb b/code/chap04.ipynb index 138fc23f..3ffdcd6e 100644 --- a/code/chap04.ipynb +++ b/code/chap04.ipynb @@ -669,7 +669,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.5" } }, "nbformat": 4, From 419b792ab01fb7a091ac891a2626352b4477d6bb Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 11 Sep 2018 16:59:26 -0400 Subject: [PATCH 08/61] adds code robin and I pair-programmed --- code/chap04-mine.ipynb | 453 +++++++++++++++++++++++++++++++------ code/figs/chap02-fig02.pdf | Bin 0 -> 15315 bytes 2 files changed, 385 insertions(+), 68 deletions(-) create mode 100644 code/figs/chap02-fig02.pdf diff --git a/code/chap04-mine.ipynb b/code/chap04-mine.ipynb index 3ffdcd6e..3f653618 100644 --- a/code/chap04-mine.ipynb +++ b/code/chap04-mine.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -45,11 +45,13 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def add_five(x):\n", + " \"\"\"This is a terrible Function, the purpose of functions are to save time and make programming easier. This adds keystrokes.\n", + " \"\"\"\n", " return x + 5" ] }, @@ -62,9 +64,20 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "8" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "y = add_five(3)" ] @@ -78,9 +91,20 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "add_five(5)" ] @@ -96,9 +120,20 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "add_five(3)\n", "add_five(5)" @@ -113,9 +148,17 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8 10\n" + ] + } + ], "source": [ "y1 = add_five(3)\n", "y2 = add_five(5)\n", @@ -134,20 +177,69 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def make_state():\n", + " return State(olin=10,wellesley=2)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init=make_state()" ] }, { @@ -166,7 +258,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -221,7 +313,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -250,9 +342,67 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
olin0
wellesley12
olin_empty0
wellesley_empty0
\n", + "
" + ], + "text/plain": [ + "olin 0\n", + "wellesley 12\n", + "olin_empty 0\n", + "wellesley_empty 0\n", + "dtype: int64" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "state = run_simulation(0.4, 0.2, 60)" ] @@ -266,9 +416,20 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "state.olin_empty" ] @@ -282,9 +443,20 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "state = run_simulation(0.2, 0.2, 60)\n", "state.olin_empty" @@ -299,9 +471,20 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "12" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "state = run_simulation(0.6, 0.2, 60)\n", "state.olin_empty" @@ -323,9 +506,20 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([0. , 0.25, 0.5 , 0.75, 1. ])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "p1_array = linspace(0, 1, 5)" ] @@ -339,9 +533,21 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, - "outputs": [], + "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)" @@ -358,9 +564,30 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function linspace in module modsim:\n", + "\n", + "linspace(start, stop, num=50, **options)\n", + " Returns an array of evenly-spaced values in the interval [start, stop].\n", + " \n", + " start: first value\n", + " stop: last value\n", + " num: number of 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(linspace)" ] @@ -382,11 +609,22 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "rangedNumbers = linspace(1, 10, 10)" ] }, { @@ -398,9 +636,38 @@ }, { "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function linrange in module modsim:\n", + "\n", + "linrange(start=0, stop=None, step=1, **options)\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-step`\n", + " (at least approximately).\n", + " If you provide the keyword argument `endpoint=True`,\n", + " the last value in the array is `stop`.\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)" ] @@ -414,11 +681,22 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 21, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1., 3., 5., 7., 9., 11.])" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "linrange(1, 11, 2, endpoint=True)" ] }, { @@ -437,9 +715,20 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "metadata": {}, - "outputs": [], + "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": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "p2 = 0.2\n", "num_steps = 60\n", @@ -455,9 +744,27 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0\n", + "0.1 0\n", + "0.2 0\n", + "0.30000000000000004 0\n", + "0.4 0\n", + "0.5 5\n", + "0.6000000000000001 16\n", + "0.7000000000000001 26\n", + "0.8 24\n", + "0.9 35\n", + "1.0 35\n" + ] + } + ], "source": [ "for p1 in p1_array:\n", " state = run_simulation(p1, p2, num_steps)\n", @@ -474,7 +781,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -494,11 +801,27 @@ }, { "cell_type": "code", - "execution_count": 24, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap02-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot(sweep, label='Olin')\n", "\n", @@ -522,10 +845,8 @@ }, { "cell_type": "code", - "execution_count": 25, - "metadata": { - "collapsed": true - }, + "execution_count": 26, + "metadata": {}, "outputs": [], "source": [ "# Solution goes here" @@ -533,7 +854,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -549,10 +870,8 @@ }, { "cell_type": "code", - "execution_count": 27, - "metadata": { - "collapsed": true - }, + "execution_count": 28, + "metadata": {}, "outputs": [], "source": [ "# Solution goes here" @@ -560,7 +879,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -597,10 +916,8 @@ }, { "cell_type": "code", - "execution_count": 29, - "metadata": { - "collapsed": true - }, + "execution_count": 30, + "metadata": {}, "outputs": [], "source": [ "# Solution goes here" @@ -608,7 +925,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -634,7 +951,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": { "scrolled": true }, @@ -645,7 +962,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ diff --git a/code/figs/chap02-fig02.pdf b/code/figs/chap02-fig02.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0229a3cc8e654a0dfc4f5c35fe33e92666daa035 GIT binary patch literal 15315 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 GK>iQy|JfD* literal 0 HcmV?d00001 From 5109bfedda97f99200b866baa6886731868bd7b9 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 11 Sep 2018 17:26:26 -0400 Subject: [PATCH 09/61] everything works! not optional exercises yet --- code/chap04-mine.ipynb | 82 +++++++++++++++++++++++++++---------- code/figs/chap02-fig02.pdf | Bin 15315 -> 15314 bytes 2 files changed, 60 insertions(+), 22 deletions(-) diff --git a/code/chap04-mine.ipynb b/code/chap04-mine.ipynb index 3f653618..2a7f25b1 100644 --- a/code/chap04-mine.ipynb +++ b/code/chap04-mine.ipynb @@ -715,7 +715,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -724,7 +724,7 @@ "array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])" ] }, - "execution_count": 22, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -744,7 +744,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -755,13 +755,13 @@ "0.1 0\n", "0.2 0\n", "0.30000000000000004 0\n", - "0.4 0\n", - "0.5 5\n", - "0.6000000000000001 16\n", - "0.7000000000000001 26\n", - "0.8 24\n", + "0.4 11\n", + "0.5 12\n", + "0.6000000000000001 18\n", + "0.7000000000000001 23\n", + "0.8 22\n", "0.9 35\n", - "1.0 35\n" + "1.0 36\n" ] } ], @@ -781,7 +781,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -801,7 +801,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -813,7 +813,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -845,20 +845,39 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 66, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def sweep_p1(p1_array):\n", + " sweep = SweepSeries()\n", + " for p1 in p1_array:\n", + " state = run_simulation(p1, 0.4, num_steps)\n", + " sweep[p1] = state.olin_empty\n", + " return sweep" ] }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 72, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# Solution goes here" + "plot(sweep_p1(linspace(0, 1, 11)), label='Olin')\n", + "decorate(title='Olin-Wellesley',\n", + " xlabel='Customers walking up to Olin station (customers/min)',\n", + " ylabel='Number of unhappy Oliners (Oliners)')" ] }, { @@ -870,20 +889,39 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 77, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def sweep_p2(p2_array):\n", + " sweep = SweepSeries()\n", + " for p2 in p2_array:\n", + " state = run_simulation(0.4, p2, 60)\n", + " sweep[p2] = state.olin_empty\n", + " return sweep" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 78, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# Solution goes here" + "plot(sweep_p2(linspace(0, 1, 11)), label='Wellesley')\n", + "decorate(title='Wellesley-Olin',\n", + " xlabel='Customers walking up to Wellesley station (customers/min)',\n", + " ylabel='Number of unhappy Wellesleyers (Wellesleyers)')" ] }, { diff --git a/code/figs/chap02-fig02.pdf b/code/figs/chap02-fig02.pdf index 0229a3cc8e654a0dfc4f5c35fe33e92666daa035..b9ea067b982cf01b4d89add2a655cd7475468d58 100644 GIT binary patch delta 1801 zcmZvbdr(wW9LGaLV}(Q^SwV6O7?5;4=f2K8NC?QQP+_(NAB{OKilDK{0wx3(+?1Fl zb=U-FlQ%-HAP^!@4!F&rt0N4s0}UdID26QO^Czj6WNI?zA9RBa)YX9UUWcwu)SMmAU+;;P2Vu;FZFg*RjZQo z;_xl`o$<1kSci$Dr!S0owD=nr4Tdk(+@Ed(^&Ok2##OjXUZ>ATYC<$ia%>&)7HkNpCE zT$c4i$*$s%jC(01y8W)55o2|SbtzxA^=guKtdRN0TJ}ke{z0B@7FyAGh$6(@Igd3P zkUg;WPtQ(nbJSC*nr=hSU9+DzDz&M^UY+#Yw=)brTg8PL)&<9%eHX*fv^2+Wf0IRfSh|D$XaX_uxd+=Aoe*&EoRVBc0M+8Bgw?rYcTo zmJOzu$6GYqEq@+`CMGjR7dief8yB!%*y0Vr*-DZmyy6QiRmpY|;?$K9^t> zxj>|Ka;z?mmkis&i--Kq4OX&edyWz_`97EA_w1zXA=V(x?+bf?dMwl9>|SLsJ?x1iurg18{2afpU2w- z#l&0@$G3j=$g*o@=Q{JTd*`OiYs^RKl)=<)kIRWJqZ-ac>8Q08?THFgsE?Vx`yP}4 ziF|jY2r+O@oLfRh4eeG{nVQx^Qv?7F)p|y|2S~u&CyA1XUMwKVu%tjkkQQhxjf5Iv zg&M}{KTr@ii}a=w0TIF1ApReXLPAP{;8OxfP<#&nDT4XegL@qjK$gNhV*oMcM+5{( zQT+c1n&m?S5@4Z5!I#D_eYx52Bq9YS6kr5ND4G@=NFi3Rmxe$9NE6JP#XQ* z1$$Wny=cbl9sJh<76~(8C@3(%BoNdJlUQJk8S+)u*N+K+H|o4??g7l+8RQQX0tWG^ eAz%gdgAfw@X+aXRK&@OC@D3$%a`FxG6a54EU00m| delta 1818 zcmZuwdo+}37+)LB8fsf?ij}d+X4m9>zuWtLjDyZ1Nn_WzB*|U6jBSKmGSRWerr79g z+R;UFIVwado3ZJTTBeg!$E~!Yqm+%#;t+PU*{$#E{p&f;^FGh-_j}&odnc|fuA)vu z?jF_Uyh!<1d2Wd8#@2}N2>VQ`lRuE}^t}dSZntuwNps;BE|npDJ!3-4`s~I|M@J90 z%qOZb5w^*;$l74QXl&k|lfUmwwkTqTtXDnS@!}N!Rx({^AWC}>-``!RIOZ6mbFe0( zqu3~WN#j6#(#HYq%_*mQT+Ov!kMc^Cq4Efy`B#oFFvC{&?OVhfP8ut>-F*8wvRLfr zZ{rr=b-}zbZH@Atq_VZQD)IBA-R>FNCSrCT2>L1Dlq~W{-ri6niPli{6RXSX9d_#7 zmFZe$F0s=nbp3hlD5)qktJC*5I^XM6*xA&gam|L}G!Ogm#+xon$qfr(ghKUfva(nu zA1N#7H<{`vmkvBWv(X~YaIEV}`JlAw*f}3$x>@XEu;)>@(EG%OyRz!bZoTmi>$ix* z+^?nZ_PYC^#DgINj!CP$nd_mEE%BWDO3pJz?2f zZ4qkz0}2ipS)M;$YGmG&?P5QXZ7OMRl1tnwx_^ngnm682Z5OC~2x8q*kwkYew}EFY z6yBe=l+clPm)pk}Pb9dGA)n^1F4L@YJ&I{(&vhp^DAP)Xpv8BIDKb$O8~=JNvMaWz z$MtD_Q2(Nf-a*a2Bk3c4mN$6TpoL8H|5B-FdwyhS^4Y0GWM7+=pI%2bjz=b2i+UXS#edn-3?c~&YAhU*BSJ&+;Sp?f!~n-ACVi zrsZq3TX?|FacEi=_0(AVkM=btgnS$CbiDtWnZQAP>PJ$x_uufMhFyEs!}QZ)Xuo44S^(TYo&m8Qo>pT6*nADq_8MWv?vFlne!^e$Og z(2m(KDtId&LIDuW28hC{S~Z8E7DdtklAuQk)!3=F}to z#fafl81?M?NG!+L6$~ProrBB=as=Y?!Z0>305O7%0U&{)e=+3$i2{%&0Sg#FhGB~W z7*3Gvdl*TxNdp`(+#CVl0>8zTs~3tRoC87tilc-eNzOn5(VSiq0uDhEquvKr#z`;*cR3oI{2JT!Iv#HqIN@{J&|6BIoAG=R5@{hGe@0AV_f3A%fu$L Date: Thu, 13 Sep 2018 16:52:49 -0400 Subject: [PATCH 10/61] all of ch5 working except optional exercise --- code/chap05-mine.ipynb | 1682 ++++++++++++++++++++++++++++++++++++ code/figs/chap03-fig01.pdf | Bin 0 -> 17024 bytes code/figs/chap03-fig02.pdf | Bin 0 -> 19017 bytes 3 files changed, 1682 insertions(+) create mode 100644 code/chap05-mine.ipynb create mode 100644 code/figs/chap03-fig01.pdf create mode 100644 code/figs/chap03-fig02.pdf diff --git a/code/chap05-mine.ipynb b/code/chap05-mine.ipynb new file mode 100644 index 00000000..3272cd07 --- /dev/null +++ b/code/chap05-mine.ipynb @@ -0,0 +1,1682 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 5\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": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reading data\n", + "\n", + "Pandas is a library that provides tools for reading and processing data. `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": 4, + "metadata": {}, + "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\n", + "\n", + "The arguments of `read_html` specify the file to read and how to interpret the tables in the file. The result, `tables`, is a sequence of `DataFrame` objects; `len(tables)` reports the length of the sequence." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')\n", + "len(tables)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can select the `DataFrame` we want using the bracket operator. The tables are numbered from 0, so `tables[2]` is actually the third table on the page.\n", + "\n", + "`head` selects the header and the first five rows." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "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 (2017)[28]Population Reference Bureau (1973–2016)[15]United Nations Department of Economic and Social Affairs (2015)[16]Maddison (2008)[17]HYDE (2007)[24]Tanton (1994)[18]Biraben (1980)[19]McEvedy & Jones (1978)[20]Thomlinson (1975)[21]Durand (1974)[22]Clark (1967)[23]
Year
195025576286542.516000e+092.525149e+092.544000e+092.527960e+092.400000e+092.527000e+092.500000e+092.400000e+09NaN2.486000e+09
19512594939877NaN2.572851e+092.571663e+09NaNNaNNaNNaNNaNNaNNaN
19522636772306NaN2.619292e+092.617949e+09NaNNaNNaNNaNNaNNaNNaN
19532682053389NaN2.665865e+092.665959e+09NaNNaNNaNNaNNaNNaNNaN
19542730228104NaN2.713172e+092.716927e+09NaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2017)[28] \\\n", + "Year \n", + "1950 2557628654 \n", + "1951 2594939877 \n", + "1952 2636772306 \n", + "1953 2682053389 \n", + "1954 2730228104 \n", + "\n", + " Population Reference Bureau (1973–2016)[15] \\\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)[16] \\\n", + "Year \n", + "1950 2.525149e+09 \n", + "1951 2.572851e+09 \n", + "1952 2.619292e+09 \n", + "1953 2.665865e+09 \n", + "1954 2.713172e+09 \n", + "\n", + " Maddison (2008)[17] HYDE (2007)[24] Tanton (1994)[18] \\\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)[19] McEvedy & Jones (1978)[20] Thomlinson (1975)[21] \\\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)[22] Clark (1967)[23] \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": 6, + "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": 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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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 (2017)[28]Population Reference Bureau (1973–2016)[15]United Nations Department of Economic and Social Affairs (2015)[16]Maddison (2008)[17]HYDE (2007)[24]Tanton (1994)[18]Biraben (1980)[19]McEvedy & Jones (1978)[20]Thomlinson (1975)[21]Durand (1974)[22]Clark (1967)[23]
Year
201270138713137.057075e+097.080072e+09NaNNaNNaNNaNNaNNaNNaNNaN
201370921280947.136796e+097.162119e+09NaNNaNNaNNaNNaNNaNNaNNaN
201471699681857.238184e+097.243784e+09NaNNaNNaNNaNNaNNaNNaNNaN
201572478927887.336435e+097.349472e+09NaNNaNNaNNaNNaNNaNNaNNaN
201673259967097.418152e+09NaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2017)[28] \\\n", + "Year \n", + "2012 7013871313 \n", + "2013 7092128094 \n", + "2014 7169968185 \n", + "2015 7247892788 \n", + "2016 7325996709 \n", + "\n", + " Population Reference Bureau (1973–2016)[15] \\\n", + "Year \n", + "2012 7.057075e+09 \n", + "2013 7.136796e+09 \n", + "2014 7.238184e+09 \n", + "2015 7.336435e+09 \n", + "2016 7.418152e+09 \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[16] \\\n", + "Year \n", + "2012 7.080072e+09 \n", + "2013 7.162119e+09 \n", + "2014 7.243784e+09 \n", + "2015 7.349472e+09 \n", + "2016 NaN \n", + "\n", + " Maddison (2008)[17] HYDE (2007)[24] Tanton (1994)[18] \\\n", + "Year \n", + "2012 NaN NaN NaN \n", + "2013 NaN NaN NaN \n", + "2014 NaN NaN NaN \n", + "2015 NaN NaN NaN \n", + "2016 NaN NaN NaN \n", + "\n", + " Biraben (1980)[19] McEvedy & Jones (1978)[20] Thomlinson (1975)[21] \\\n", + "Year \n", + "2012 NaN NaN NaN \n", + "2013 NaN NaN NaN \n", + "2014 NaN NaN NaN \n", + "2015 NaN NaN NaN \n", + "2016 NaN NaN NaN \n", + "\n", + " Durand (1974)[22] Clark (1967)[23] \n", + "Year \n", + "2012 NaN NaN \n", + "2013 NaN NaN \n", + "2014 NaN NaN \n", + "2015 NaN NaN \n", + "2016 NaN NaN " + ] + }, + "execution_count": 7, + "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": 8, + "metadata": {}, + "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. " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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", + "
censusprbunmaddisonhydetantonbirabenmjthomlinsondurandclark
Year
195025576286542.516000e+092.525149e+092.544000e+092.527960e+092.400000e+092.527000e+092.500000e+092.400000e+09NaN2.486000e+09
19512594939877NaN2.572851e+092.571663e+09NaNNaNNaNNaNNaNNaNNaN
19522636772306NaN2.619292e+092.617949e+09NaNNaNNaNNaNNaNNaNNaN
19532682053389NaN2.665865e+092.665959e+09NaNNaNNaNNaNNaNNaNNaN
19542730228104NaN2.713172e+092.716927e+09NaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " census prb un maddison hyde \\\n", + "Year \n", + "1950 2557628654 2.516000e+09 2.525149e+09 2.544000e+09 2.527960e+09 \n", + "1951 2594939877 NaN 2.572851e+09 2.571663e+09 NaN \n", + "1952 2636772306 NaN 2.619292e+09 2.617949e+09 NaN \n", + "1953 2682053389 NaN 2.665865e+09 2.665959e+09 NaN \n", + "1954 2730228104 NaN 2.713172e+09 2.716927e+09 NaN \n", + "\n", + " tanton biraben mj thomlinson durand \\\n", + "Year \n", + "1950 2.400000e+09 2.527000e+09 2.500000e+09 2.400000e+09 NaN \n", + "1951 NaN NaN NaN NaN NaN \n", + "1952 NaN NaN NaN NaN NaN \n", + "1953 NaN NaN NaN NaN NaN \n", + "1954 NaN NaN NaN NaN NaN \n", + "\n", + " clark \n", + "Year \n", + "1950 2.486000e+09 \n", + "1951 NaN \n", + "1952 NaN \n", + "1953 NaN \n", + "1954 NaN " + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first column, which is labeled `Year`, is special. It is the **index** for this `DataFrame`, which means it contains the labels for the rows.\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": "markdown", + "metadata": {}, + "source": [ + "### Series\n", + "\n", + "We can use dot notation to select a column from a `DataFrame`. The result is a `Series`, which is like a `DataFrame` with a single column." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2557628654\n", + "1951 2594939877\n", + "1952 2636772306\n", + "1953 2682053389\n", + "1954 2730228104\n", + "Name: census, dtype: int64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census = table2.census\n", + "census.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "2012 7013871313\n", + "2013 7092128094\n", + "2014 7169968185\n", + "2015 7247892788\n", + "2016 7325996709\n", + "Name: census, dtype: int64" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Like a `DataFrame`, a `Series` contains an index, which labels the rows.\n", + "\n", + "`1e9` is scientific notation for $1 \\cdot 10^9$ or 1 billion." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From here on, we will work in units of billions." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.525149\n", + "1951 2.572851\n", + "1952 2.619292\n", + "1953 2.665865\n", + "1954 2.713172\n", + "Name: un, dtype: float64" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "un = table2.un / 1e9\n", + "un.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.557629\n", + "1951 2.594940\n", + "1952 2.636772\n", + "1953 2.682053\n", + "1954 2.730228\n", + "Name: census, dtype: float64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census = table2.census / 1e9\n", + "census.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what these estimates look like." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(census, ':', label='US Census')\n", + "plot(un, '--', label='UN DESA')\n", + " \n", + "decorate(xlabel='Year',\n", + " ylabel='World population (billion)')\n", + "savefig('figs/chap03-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following expression computes the elementwise differences between the two series, then divides through by the UN value to produce [relative errors](https://en.wikipedia.org/wiki/Approximation_error), then finds the largest element.\n", + "\n", + "So the largest relative error between the estimates is about 1.3%." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.3821293828998855" + ] + }, + "execution_count": 15, + "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", + "1. Compute the elementwise differences, `census - un`\n", + "2. Compute the absolute differences, `abs(census - un)`\n", + "3. Compute the relative differences, `abs(census - un) / un`\n", + "4. Compute the percent differences, `abs(census - un) / un * 100`\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "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", + "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.057599\n", + "2011 -0.061999\n", + "2012 -0.066201\n", + "2013 -0.069991\n", + "2014 -0.073816\n", + "2015 -0.101579\n", + "2016 NaN\n", + "Length: 67, dtype: float64" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "diff = census - un" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "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", + "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.057599\n", + "2011 0.061999\n", + "2012 0.066201\n", + "2013 0.069991\n", + "2014 0.073816\n", + "2015 0.101579\n", + "2016 NaN\n", + "Length: 67, dtype: float64" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "absDiff = abs(diff)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 0.012862\n", + "1951 0.008585\n", + "1952 0.006674\n", + "1953 0.006072\n", + "1954 0.006286\n", + "1955 0.007404\n", + "1956 0.008439\n", + "1957 0.009887\n", + "1958 0.011011\n", + "1959 0.010208\n", + "1960 0.005617\n", + "1961 0.000369\n", + "1962 0.000311\n", + "1963 0.002702\n", + "1964 0.005350\n", + "1965 0.006399\n", + "1966 0.006829\n", + "1967 0.006289\n", + "1968 0.005827\n", + "1969 0.005821\n", + "1970 0.005832\n", + "1971 0.006258\n", + "1972 0.006166\n", + "1973 0.005847\n", + "1974 0.005332\n", + "1975 0.004437\n", + "1976 0.003388\n", + "1977 0.002670\n", + "1978 0.001965\n", + "1979 0.001712\n", + " ... \n", + "1987 0.003591\n", + "1988 0.004604\n", + "1989 0.005461\n", + "1990 0.005988\n", + "1991 0.006900\n", + "1992 0.007054\n", + "1993 0.007277\n", + "1994 0.007490\n", + "1995 0.007423\n", + "1996 0.007142\n", + "1997 0.006903\n", + "1998 0.006709\n", + "1999 0.006511\n", + "2000 0.006386\n", + "2001 0.006274\n", + "2002 0.006183\n", + "2003 0.006197\n", + "2004 0.006216\n", + "2005 0.006302\n", + "2006 0.006365\n", + "2007 0.006473\n", + "2008 0.006604\n", + "2009 0.006805\n", + "2010 0.008328\n", + "2011 0.008860\n", + "2012 0.009350\n", + "2013 0.009772\n", + "2014 0.010190\n", + "2015 0.013821\n", + "2016 NaN\n", + "Length: 67, dtype: float64" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "relDiff = absDiff / un" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 1.286247\n", + "1951 0.858540\n", + "1952 0.667365\n", + "1953 0.607232\n", + "1954 0.628640\n", + "1955 0.740425\n", + "1956 0.843928\n", + "1957 0.988701\n", + "1958 1.101054\n", + "1959 1.020766\n", + "1960 0.561750\n", + "1961 0.036871\n", + "1962 0.031146\n", + "1963 0.270201\n", + "1964 0.535045\n", + "1965 0.639908\n", + "1966 0.682939\n", + "1967 0.628856\n", + "1968 0.582745\n", + "1969 0.582126\n", + "1970 0.583151\n", + "1971 0.625807\n", + "1972 0.616597\n", + "1973 0.584666\n", + "1974 0.533223\n", + "1975 0.443692\n", + "1976 0.338849\n", + "1977 0.266959\n", + "1978 0.196499\n", + "1979 0.171246\n", + " ... \n", + "1987 0.359053\n", + "1988 0.460423\n", + "1989 0.546078\n", + "1990 0.598794\n", + "1991 0.690025\n", + "1992 0.705441\n", + "1993 0.727689\n", + "1994 0.749047\n", + "1995 0.742263\n", + "1996 0.714242\n", + "1997 0.690252\n", + "1998 0.670935\n", + "1999 0.651132\n", + "2000 0.638560\n", + "2001 0.627448\n", + "2002 0.618347\n", + "2003 0.619705\n", + "2004 0.621627\n", + "2005 0.630170\n", + "2006 0.636478\n", + "2007 0.647257\n", + "2008 0.660376\n", + "2009 0.680460\n", + "2010 0.832811\n", + "2011 0.885957\n", + "2012 0.935034\n", + "2013 0.977243\n", + "2014 1.019023\n", + "2015 1.382129\n", + "2016 NaN\n", + "Length: 67, dtype: float64" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "percentDiff = relDiff * 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`max` and `abs` are built-in functions provided by Python, but NumPy also provides version that are a little more general. When you import `modsim`, you get the NumPy versions of these functions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Constant growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can select a value from a `Series` using bracket notation. Here's the first element:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.557628654" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census[1950]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the last value." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7.325996709" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census[2016]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But rather than \"hard code\" those dates, we can get the first and last labels from the `Series`:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1950" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t_0 = get_first_label(census)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2016" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t_end = get_last_label(census)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "66" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "elapsed_time = t_end - t_0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can get the first and last values:" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.557628654" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_0 = get_first_value(census)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7.325996709" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_end = get_last_value(census)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we can compute the average annual growth in billions of people per year." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.768368055" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total_growth = p_end - p_0" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.07224800083333333" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "annual_growth = total_growth / elapsed_time" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TimeSeries" + ] + }, + { + "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": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
\n", + "
" + ], + "text/plain": [ + "Series([], dtype: float64)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results = TimeSeries()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initially the `TimeSeries` 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": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
19502.557629
\n", + "
" + ], + "text/plain": [ + "1950 2.557629\n", + "dtype: float64" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[t_0] = census[t_0]\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": 34, + "metadata": {}, + "outputs": [], + "source": [ + "for t in linrange(t_0, t_end):\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": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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tSqTNSo16Pjr7zRRXtcFwHlrl1GWnxR0/E9v76e6qeeodZ+sc889l4cffpjt27ezdetW1q5dS3FxMXfddddRz9+7dy8ul4vNmzcfcez6668PvP6v//ovfv/73/PEE0+QmprKvffey1e+8hWeeuopAGpqati6dStvvvkmO3fu5Oqrr+bCCy8kISGB22+/nd/97ncUFhby61//mnvuuYc//elPk36O7u7uY14nkyKEmB2egR4GP9yBu6cVwzBoHXRT3+uky2OnwxyHgZnWrmHy85ZxSlnprM7SOx7pQc1DhYWF/Pa3v6W4uJhnn32WT37yk5x11ln89Kc/DUz3nKi7u5u4uLjjTrV/7rnn+NKXvkROTg52u52vf/3r7N69m4aGBsD/7emGG27AarWyadMmUlJS2L9/PzabjbCwMH7zm9+wb98+PvnJT4YUZE70OiHEyTN8Xoaq99D75q9x97TSPeLhnYNDVPX5ICmHxOxczJYwzNYI8tUqTj31tHkVnGAR96DmK5vNhsfjOaLc6/USHn6oO52bm8s3v/lNwB+AXnnlFe69914SEhK47LLLgq5NSUmht7cXt9t9RJAaGBggPDwcm81GS0sLt912G3fccUfgeFhYGAcOHCAsLIzo6OigNlitVnw+H9HR0Tz11FM8+uijbN++Hbvdzuc//3muu+66ST/rZNdJkBJi5vhcI/S+/Xu8gz0MubzUdI3S4/QSFptMeGwymEzY7XY2bSwgKyubnPT5uYLLog1Qp5dNPvS2aXUWm1ZnHfP4eWuXcd7aZcc8/rEzcvnYGblTbld6ejotLS2sXLkyUObxeGhpaQnsFvy5z32Oj370o1x11VUAJCYmctlll7Fv3z601kfUuWbNGux2Ozt27GDr1q1Bx+6//37279/PU089RWpqKnfccQdnn3124HhVVRV5eXns3bv3mG3u6+sLPL9yu938/e9/56abbmLdunVYLJagBFvDMOjr6zvudTJpQ4iZY7La8VojqOpsoaF7lH63mcjULBLj4rBYLBQUFJCfnz/reU1TNWtDfEqpy5VSg4f98SqlXpmtNswHF110EQ899BC1tbWAf3rnfffdR0pKCqtWrQLg4x//OI888givvvoqLpcLl8vFzp072bFjB+eff/4RddpsNm655RbuuOMOXnvtNTweD8PDwzzxxBP89re/5cYbbwTg0ksv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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(census, ':', label='US Census')\n", + "plot(un, '--', label='UN DESA')\n", + "plot(results, color='gray', label='model')\n", + "\n", + "decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title='Constant growth')\n", + "savefig('figs/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": [ + "### Exercises\n", + "\n", + "**Optional Exercise:** Try fitting the model using data from 1970 to the present, and see if that does a better job.\n", + "\n", + "Hint: \n", + "\n", + "1. Copy the code from above and make a few changes. Test your code after each small change.\n", + "\n", + "2. Make sure your `TimeSeries` starts in 1950, even though the estimated annual growth is based on later data.\n", + "\n", + "3. You might want to add a constant to the starting value to match the data better." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/code/figs/chap03-fig01.pdf b/code/figs/chap03-fig01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2885b344794ab7c4c0fcf8226f65aa245654c0b2 GIT binary patch literal 17024 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 literal 0 HcmV?d00001 From be4d82aaa1dc763b1bd083db135cd4b1a5f29def Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Fri, 14 Sep 2018 15:50:00 -0400 Subject: [PATCH 11/61] copies ch6 notebook --- code/chap06-mine.ipynb | 536 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 536 insertions(+) create mode 100644 code/chap06-mine.ipynb diff --git a/code/chap06-mine.ipynb b/code/chap06-mine.ipynb new file mode 100644 index 00000000..20ac99f5 --- /dev/null +++ b/code/chap06-mine.ipynb @@ -0,0 +1,536 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 6\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": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *\n", + "\n", + "from pandas import read_html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Code from the previous chapter\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')\n", + "table2 = tables[2]\n", + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "un = table2.un / 1e9\n", + "un.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "census = table2.census / 1e9\n", + "census.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "elapsed_time = t_end - t_0\n", + "\n", + "p_0 = get_first_value(census)\n", + "p_end = get_last_value(census)\n", + "total_growth = p_end - p_0\n", + "\n", + "annual_growth = total_growth / elapsed_time" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### System objects" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can rewrite the code from the previous chapter using system objects." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "system = System(t_0=t_0, \n", + " t_end=t_end,\n", + " p_0=p_0,\n", + " annual_growth=annual_growth)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can encapsulate the code that runs the model in a function." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation1(system):\n", + " \"\"\"Runs the constant growth model.\n", + " \n", + " system: System object\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = results[t] + system.annual_growth\n", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also encapsulate the code that plots the results." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_results(census, un, timeseries, title):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " census: TimeSeries of population estimates\n", + " un: TimeSeries of population estimates\n", + " timeseries: TimeSeries of simulation results\n", + " title: string\n", + " \"\"\"\n", + " plot(census, ':', label='US Census')\n", + " plot(un, '--', label='UN DESA')\n", + " plot(timeseries, color='gray', label='model')\n", + " \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": 9, + "metadata": {}, + "outputs": [], + "source": [ + "results = run_simulation1(system)\n", + "plot_results(census, un, results, 'Constant growth model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Proportional growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a more realistic model where the number of births and deaths is proportional to the current population." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation2(system):\n", + " \"\"\"Run a model with proportional birth and death.\n", + " \n", + " system: System object\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, 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", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I picked a death rate that seemed reasonable and then adjusted the birth rate to fit the data." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "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": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "results = run_simulation2(system)\n", + "plot_results(census, un, results, 'Proportional model')\n", + "savefig('figs/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": [ + "### Factoring out the update function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`run_simulation1` and `run_simulation2` are nearly identical except the body of the loop. So we can factor that part out into a function." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true + }, + "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", + " births = system.birth_rate * pop\n", + " deaths = system.death_rate * pop\n", + " return pop + births - deaths" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The name `update_func` refers to a function object." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "update_func1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Which we can confirm by checking its type." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "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": 16, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we use it." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "p_0 = census[t_0]\n", + "\n", + "system = System(t_0=t_0, \n", + " t_end=t_end,\n", + " p_0=p_0,\n", + " birth_rate=0.027,\n", + " death_rate=0.01)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "results = run_simulation(system, update_func1)\n", + "plot_results(census, un, results, 'Proportional model, factored')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Remember not to put parentheses after `update_func1`. What happens if you try?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** When you run `run_simulation`, it runs `update_func1` once for each year between `t_0` 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": 19, + "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\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how it works:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "system.alpha = system.birth_rate - system.death_rate\n", + "\n", + "results = run_simulation(system, update_func2)\n", + "plot_results(census, un, results, 'Proportional model, combined birth and death')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercises\n", + "\n", + "**Exercise:** Maybe the reason the proportional model doesn't work very well is that the growth rate, `alpha`, is changing over time. So let's try a model with different growth rates before and after 1980 (as an arbitrary choice).\n", + "\n", + "Write an update function that takes `pop`, `t`, and `system` as parameters. The system object, `system`, should contain two parameters: the growth rate before 1980, `alpha1`, and the growth rate after 1980, `alpha2`. It should use `t` to determine which growth rate to use. Note: Don't forget the `return` statement.\n", + "\n", + "Test your function by calling it directly, then pass it to `run_simulation`. Plot the results. Adjust the parameters `alpha1` and `alpha2` to fit the data as well as you can.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": true, + "scrolled": false + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + } + ], + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 1d2e773833a7f30188fd6bd87bcba7da3adba107 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Sun, 16 Sep 2018 13:47:45 -0400 Subject: [PATCH 12/61] ch6 --- code/chap06-mine.ipynb | 366 +++++++++++++++++++++++++++++++------ code/figs/chap03-fig03.pdf | Bin 0 -> 18327 bytes 2 files changed, 314 insertions(+), 52 deletions(-) create mode 100644 code/figs/chap03-fig03.pdf diff --git a/code/chap06-mine.ipynb b/code/chap06-mine.ipynb index 20ac99f5..f45ecd75 100644 --- a/code/chap06-mine.ipynb +++ b/code/chap06-mine.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -41,7 +41,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -55,9 +55,26 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.525149\n", + "1951 2.572851\n", + "1952 2.619292\n", + "1953 2.665865\n", + "1954 2.713172\n", + "Name: un, dtype: float64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "un = table2.un / 1e9\n", "un.head()" @@ -65,9 +82,26 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.557629\n", + "1951 2.594940\n", + "1952 2.636772\n", + "1953 2.682053\n", + "1954 2.730228\n", + "Name: census, dtype: float64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "census = table2.census / 1e9\n", "census.head()" @@ -75,9 +109,20 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0.07224800083333333" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t_0 = get_first_label(census)\n", "t_end = get_last_label(census)\n", @@ -106,9 +151,67 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 9, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
annual_growth0.072248
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "annual_growth 0.072248\n", + "dtype: float64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system = System(t_0=t_0, \n", " t_end=t_end,\n", @@ -125,7 +228,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -154,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -184,9 +287,20 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation1(system)\n", "plot_results(census, un, results, 'Constant growth model')" @@ -208,7 +322,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -239,7 +353,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -256,9 +370,27 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation2(system)\n", "plot_results(census, un, results, 'Proportional model')\n", @@ -288,10 +420,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": true - }, + "execution_count": 17, + "metadata": {}, "outputs": [], "source": [ "def update_func1(pop, t, system):\n", @@ -317,9 +447,20 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 18, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "update_func1" ] @@ -333,9 +474,20 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "function" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(update_func1)" ] @@ -349,10 +501,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": true - }, + "execution_count": 21, + "metadata": {}, "outputs": [], "source": [ "def run_simulation(system, update_func):\n", @@ -381,9 +531,72 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 22, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
birth_rate0.027000
death_rate0.010000
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "birth_rate 0.027000\n", + "death_rate 0.010000\n", + "dtype: float64" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t_0 = get_first_label(census)\n", "t_end = get_last_label(census)\n", @@ -398,11 +611,20 @@ }, { "cell_type": "code", - "execution_count": 18, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation(system, update_func1)\n", "plot_results(census, un, results, 'Proportional model, factored')" @@ -438,10 +660,8 @@ }, { "cell_type": "code", - "execution_count": 19, - "metadata": { - "collapsed": true - }, + "execution_count": 25, + "metadata": {}, "outputs": [], "source": [ "def update_func2(pop, t, system):\n", @@ -466,9 +686,20 @@ }, { "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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TAx1dPToUSwWC0oprFYZXvBUYhgGdrudgwcPAkiQEmKUcblcVFVVER0dzYQJE4b13GPi17yxsZGkpCQJTqcgi8VCREQEkyZNorb2tJnmRohTQnt7O5988gk7duzgs88+o62tbVjPPyZyUG63m5CQkJFOhvgcwsPDcbmkQacQo0VraysbNmzwBSWr1TrsmYAxEaDAfBIXpy75/IQYPZqamtiwYQMOhzlknsViYe7cuYSFhQ1rOsZMgBJCCPH51dfXU1BQ4CvRCAoKIj8/n8TExGFPi1TaDDOlFCUlPYcfvOSSS3j55Zd9719//XUuueQS8vLyWLBgAddeey07d+7s99jr16/nqquuYtGiRSxcuJBvfetbFBQUDPo1CCHGptraWjZs2OALTiEhISxevHhEghNIgBqVCgoKuP/++7nnnnvYvHkz69evZ968eXz729+mvr6+131eeukl7rjjDq688krWr1/Pxx9/zKpVq7juuuvYtGnTMF+BEOJUU1VVRUFBAW63OVReaGgoS5YsYfz48SOWJglQo9C2bdtIS0tj/vz5WK1WwsLCuOGGG7j44ot7DVB2u51f/epX/PznP2fFihXYbDZsNhtf+9rXuP7669m7dy9gNiZ56qmnOPfcc1m0aBG33nqr73gbN27k4osv5sEHH2TRokWceeaZPPbYY75z/P3vf2fFihUsWLCAr3zlK3z00Ue+/fLz8/3Sc8455/Duu+/2u58QYvSoqKigqKiIzvkBIyIiWLp0KbGxsSOarjFbB1Wws4aCXTUALJyZzMIc/2k6Pt52kK1lRwBYOieFPOWfhX1/8wF2VtQBcPb8KeSkx/utf3tDJbsPNPR67M9r+fLlPPnkk6xevZoVK1Ywf/58srKyuO+++3rdvqioCKfTyVlnndVj3Q033OB7/ec//5nXXnuNZ599lsTERB544AF+8IMf8PzzzwNQXl7OihUr+Pjjj9m4cSPXXHMNF110EXFxcdx99928+uqrZGRk8L//+7/cf//9vP322/1eR319fZ/7SaMIIUaeYRiUlpZSXl7uWxYdHc3ixYuHvUFEbyQHNQplZGTwj3/8g6ysLNauXctll13G0qVL+f3vf09vMyDX19cTGxs7YFP7devWcfPNNzN16lTCwsK4/fbbKSwsZN++fYDZUufGG28kJCSEZcuWkZCQQGVlJTabjeDgYF56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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "system.alpha = system.birth_rate - system.death_rate\n", "\n", @@ -492,24 +723,55 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 53, "metadata": { - "collapsed": true, "scrolled": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# Solution goes here" + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "p_0 = census[t_0]\n", + "\n", + "# birth_rate - death_rate = alpha\n", + "alpha1 = 0.017\n", + "alpha2 = 0.016\n", + "\n", + "system2 = System(t_0=t_0, \n", + " t_end=t_end,\n", + " p_0=p_0,\n", + " alpha1=alpha1,\n", + " alpha2=alpha2)\n", + "\n", + "def update_func3(pop, t, system):\n", + " if t < 1980:\n", + " net_growth = system.alpha1 * pop\n", + " return pop + net_growth\n", + " else:\n", + " net_growth = system.alpha2 * pop\n", + " return pop + net_growth\n", + " \n", + "results = run_simulation(system2, update_func3)\n", + "plot_results(census, un, results, 'Proportional model, combined birth and death')" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "# Solution goes here" - ] + "source": [] } ], "metadata": { diff --git a/code/figs/chap03-fig03.pdf b/code/figs/chap03-fig03.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b3ca7d6b1b027c9cc8521d312c75a248661f1f61 GIT binary patch literal 18327 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 jJov9|>xl+}3?}fnxT2h055f)-*w|#% Date: Mon, 17 Sep 2018 16:15:16 -0400 Subject: [PATCH 13/61] dupes ch7 notebook --- code/chap07-mine.ipynb | 534 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 534 insertions(+) create mode 100644 code/chap07-mine.ipynb diff --git a/code/chap07-mine.ipynb b/code/chap07-mine.ipynb new file mode 100644 index 00000000..5beafe79 --- /dev/null +++ b/code/chap07-mine.ipynb @@ -0,0 +1,534 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 7\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": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *\n", + "\n", + "from pandas import read_html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Code from the previous chapter" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')\n", + "table2 = tables[2]\n", + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "un = table2.un / 1e9\n", + "un.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "census = table2.census / 1e9\n", + "census.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_results(census, un, timeseries, title):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " census: TimeSeries of population estimates\n", + " un: TimeSeries of population estimates\n", + " timeseries: TimeSeries of simulation results\n", + " title: string\n", + " \"\"\"\n", + " plot(census, ':', label='US Census')\n", + " plot(un, '--', label='UN DESA')\n", + " plot(timeseries, color='gray', label='model')\n", + " \n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " \n", + " return results" + ] + }, + { + "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": 7, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func_quad(pop, t, system):\n", + " \"\"\"Compute the population next year with a quadratic model.\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": [ + "Here's a `System` object with the parameters `alpha` and `beta`:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "p_0 = census[t_0]\n", + "\n", + "system = System(t_0=t_0, \n", + " t_end=t_end,\n", + " p_0=p_0,\n", + " alpha=0.025,\n", + " beta=-0.0018)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here are the results." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "results = run_simulation(system, update_func_quad)\n", + "plot_results(census, un, results, 'Quadratic model')\n", + "savefig('figs/chap03-fig04.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Can you find values for the parameters that make the model fit better?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Equilibrium\n", + "\n", + "To understand the quadratic model better, let's plot net growth as a function of population." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "pop_array = linspace(0, 15, 100)\n", + "net_growth_array = system.alpha * pop_array + system.beta * pop_array**2\n", + "None" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "sns.set_style('whitegrid')\n", + "\n", + "plot(pop_array, net_growth_array)\n", + "decorate(xlabel='Population (billions)',\n", + " ylabel='Net growth (billions)')\n", + "savefig('figs/chap03-fig05.pdf')\n", + "\n", + "sns.set_style('white')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like. Remember that the x axis is population now, not time." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It looks like the growth rate passes through 0 when the population is a little less than 14 billion.\n", + "\n", + "In the book we found that the net growth is 0 when the population is $-\\alpha/\\beta$:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "-system.alpha / system.beta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is the equilibrium the population tends toward." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`sns` is a library called Seaborn which provides functions that control the appearance of plots. In this case I want a grid to make it easier to estimate the population where the growth rate crosses through 0." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dysfunctions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When people first learn about functions, there are a few things they often find confusing. In this section I present and explain some common problems with functions.\n", + "\n", + "As an example, suppose you want a function that takes a `System` object, with variables `alpha` and `beta`, as a parameter and computes the carrying capacity, `-alpha/beta`. Here's a good solution:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "def carrying_capacity(system):\n", + " K = -system.alpha / system.beta\n", + " return K\n", + " \n", + "sys1 = System(alpha=0.025, beta=-0.0018)\n", + "pop = carrying_capacity(sys1)\n", + "print(pop)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's see all the ways that can go wrong.\n", + "\n", + "**Dysfunction #1:** Not using parameters. In the following version, the function doesn't take any parameters; when `sys1` appears inside the function, it refers to the object we created outside the function.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def carrying_capacity():\n", + " K = -sys1.alpha / sys1.beta\n", + " return K\n", + " \n", + "sys1 = System(alpha=0.025, beta=-0.0018)\n", + "pop = carrying_capacity()\n", + "print(pop)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This version actually works, but it is not as versatile as it could be. If there are several `System` objects, this function can only work with one of them, and only if it is named `system`.\n", + "\n", + "**Dysfunction #2:** Clobbering the parameters. When people first learn about parameters, they often write functions like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "def carrying_capacity(system):\n", + " system = System(alpha=0.025, beta=-0.0018)\n", + " K = -system.alpha / system.beta\n", + " return K\n", + " \n", + "sys1 = System(alpha=0.025, beta=-0.0018)\n", + "pop = carrying_capacity(sys1)\n", + "print(pop)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, we have a `System` object named `sys1` that gets passed as an argument to `carrying_capacity`. But when the function runs, it ignores the argument and immediately replaces it with a new `System` object. As a result, this function always returns the same value, no matter what argument is passed.\n", + "\n", + "When you write a function, you generally don't know what the values of the parameters will be. Your job is to write a function that works for any valid values. If you assign your own values to the parameters, you defeat the whole purpose of functions.\n", + "\n", + "\n", + "**Dysfunction #3:** No return value. Here's a version that computes the value of `K` but doesn't return it." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "def carrying_capacity(system):\n", + " K = -system.alpha / system.beta\n", + " \n", + "sys1 = System(alpha=0.025, beta=-0.0018)\n", + "pop = carrying_capacity(sys1)\n", + "print(pop)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A function that doesn't have a return statement always returns a special value called `None`, so in this example the value of `pop` is `None`. If you are debugging a program and find that the value of a variable is `None` when it shouldn't be, a function without a return statement is a likely cause.\n", + "\n", + "**Dysfunction #4:** Ignoring the return value. Finally, here's a version where the function is correct, but the way it's used is not." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def carrying_capacity(system):\n", + " K = -system.alpha / system.beta\n", + " return K\n", + " \n", + "sys2 = System(alpha=0.025, beta=-0.0018)\n", + "carrying_capacity(sys2)\n", + "\n", + "# print(K) This line won't work because K only exists inside the function." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, `carrying_capacity` runs and returns `K`, but the return value is dropped.\n", + "\n", + "When you call a function that returns a value, you should do something with the result. Often you assign it to a variable, as in the previous examples, but you can also use it as part of an expression.\n", + "\n", + "For example, you could eliminate the temporary variable `pop` like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "print(carrying_capacity(sys1))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or if you had more than one system, you could compute the total carrying capacity like this:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "total = carrying_capacity(sys1) + carrying_capacity(sys2)\n", + "total" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercises\n", + "\n", + "**Exercise:** In the book, I present 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_func` that implements this version of the model. Test it by computing the values of `r` and `K` that correspond to `alpha=0.025, beta=-0.0018`, and confirm that you get the same results. " + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 83d6b355868f81df6e316dc267747bd47170cc57 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 17 Sep 2018 17:32:55 -0400 Subject: [PATCH 14/61] done with ch7 notebook --- code/chap07-mine.ipynb | 334 ++++++++++++++++++++++++++++++++----- code/figs/chap03-fig04.pdf | Bin 0 -> 18817 bytes code/figs/chap03-fig05.pdf | Bin 0 -> 14755 bytes 3 files changed, 292 insertions(+), 42 deletions(-) create mode 100644 code/figs/chap03-fig04.pdf create mode 100644 code/figs/chap03-fig05.pdf diff --git a/code/chap07-mine.ipynb b/code/chap07-mine.ipynb index 5beafe79..59369b80 100644 --- a/code/chap07-mine.ipynb +++ b/code/chap07-mine.ipynb @@ -41,9 +41,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "filename = 'data/World_population_estimates.html'\n", @@ -57,10 +55,25 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.525149\n", + "1951 2.572851\n", + "1952 2.619292\n", + "1953 2.665865\n", + "1954 2.713172\n", + "Name: un, dtype: float64" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "un = table2.un / 1e9\n", "un.head()" @@ -69,10 +82,25 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.557629\n", + "1951 2.594940\n", + "1952 2.636772\n", + "1953 2.682053\n", + "1954 2.730228\n", + "Name: census, dtype: float64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "census = table2.census / 1e9\n", "census.head()" @@ -140,10 +168,8 @@ }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": true - }, + "execution_count": 10, + "metadata": {}, "outputs": [], "source": [ "def update_func_quad(pop, t, system):\n", @@ -170,7 +196,70 @@ "cell_type": "code", "execution_count": 8, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
alpha0.025000
beta-0.001800
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "alpha 0.025000\n", + "beta -0.001800\n", + "dtype: float64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t_0 = get_first_label(census)\n", "t_end = get_last_label(census)\n", @@ -194,7 +283,25 @@ "cell_type": "code", "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "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338/3/nOd3j++ecBKCsrY+3atbz77rts2bKF6667josuuoiEhATuuusu/vSnPzFnzhz++7//m/vuu4+///3vQ34fzc3NxzxPBkUIMTba2trYsWMHLS0tAPjaGrFHxJA3bwFz5szpN13H5fHj9vr5tLSB/JmJJMSEj2qs0oIah+bMmcMf//hH5s6dy8aNG7n88stZvXo1TzzxBIZhHHV8c3MzcXFxxx1qv2nTJr75zW8yY8YMwsPD+f73v8+2bdvYv38/YDbtb7rpJhwOB2vWrCElJYXKykqcTid2u50XX3yRXbt2cfnll4eUZE72PCHE8AsEApSUlLB582YzOQUCeBqrCO9uYmFkB3NmzjhqLumivBTiosOIjXTi9ox+N58kqFHmdDr7Dd/s4ff7CQsL632fnZ3ND3/4Q/7yl7/wwQcf8O1vf5unn36ajRs3HnVuSkoKLS0tg84jam9v751kV1NTw5133snSpUtZunQpZ555Jna7vXcVh+jo6H4xOBwOAoEA0dHRPP/881RWVrJ+/XrWrFnDU089NWiy7OtkzxNCDK+WlhY2b96M1ppAIECgqw3voXKyw7wszogi3N9N8bubcXv7JyGbzcq6NTP5p/MV6UlRox73pO3iWz5v6K63NQszWbMw85j7z1kynXOWTD/m/s+uzOazK7NPOK709HRqampYsGBB7zafz0dNTU1vteCvfOUrnH/++VxzzTUAJCYmcuWVV7Jr1y601kddc9GiRYSHh/P222+zdu3afvsefPBBKisref7550lNTeXuu+/mjDPO6N1fUlJCTk4O27dvP2bMra2tvc+vvF4v7733HrfccgtLly7FZrP1S4yGYdDa2nrc8wY+txJCDD+/309paSllZWUYhoHh8+A9XEe04UKlhhPltNHZ7aXYnc6+zhTadh9i9cJp/a4x2t16fUkLapRdfPHFPProo5SXlwPm/2weeOABUlJSKCwsBODCCy/kySef5PXXX8fj8eDxeNiyZQtvv/0255133lHXdDqd3Hbbbdx999288cYb+Hw+urq6ePbZZ/njH//IzTffDMBll13GY489Rm1tLX6/n6effpqrrroKl8s1ZMzNzc1ce+21bN26FYfDQVpaGhaLhbi4OGbMmIHH4+HVV1/F7/fz/PPP9y7aO9R5QoiRdfjwYd555x1KS0sxjAC+tkZ8hyrIjfSx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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation(system, update_func_quad)\n", "plot_results(census, un, results, 'Quadratic model')\n", @@ -219,10 +326,8 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": true - }, + "execution_count": 11, + "metadata": {}, "outputs": [], "source": [ "pop_array = linspace(0, 15, 100)\n", @@ -239,9 +344,27 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig05.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "sns.set_style('whitegrid')\n", "\n", @@ -271,9 +394,20 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "13.88888888888889" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "-system.alpha / system.beta" ] @@ -310,9 +444,17 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "13.88888888888889\n" + ] + } + ], "source": [ "def carrying_capacity(system):\n", " K = -system.alpha / system.beta\n", @@ -334,9 +476,17 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "13.88888888888889\n" + ] + } + ], "source": [ "def carrying_capacity():\n", " K = -sys1.alpha / sys1.beta\n", @@ -366,7 +516,7 @@ " system = System(alpha=0.025, beta=-0.0018)\n", " K = -system.alpha / system.beta\n", " return K\n", - " \n", + "\n", "sys1 = System(alpha=0.025, beta=-0.0018)\n", "pop = carrying_capacity(sys1)\n", "print(pop)" @@ -475,31 +625,131 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def update_func_quad2(pop, t, system):\n", + " \"\"\"Compute the population next year with a quadratic model.\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.r * pop * (1 - pop / system.k)\n", + " return pop + net_growth" ] }, { "cell_type": "code", - "execution_count": 21, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 18, + "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", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
r0.025000
k13.888889
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "r 0.025000\n", + "k 13.888889\n", + "dtype: float64" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "p_0 = census[t_0]\n", + "\n", + "system2 = System(t_0=t_0, \n", + " t_end=t_end,\n", + " p_0=p_0,\n", + " r=0.025,\n", + " k=-0.025/-0.0018\n", + " )" ] }, { - "cell_type": "code", - "execution_count": 22, + "cell_type": "raw", "metadata": {}, - "outputs": [], "source": [ - "# Solution goes here" + "results = run_simulation(system2, update_func_quad2)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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GRkZ1NXVkZycfMb9bTab47WiKEybNo3i4mLGjh3LwIED6datG6NGjWq0j/KbCjMajQaNRtNo/akvZ4Di4mKuv/56unbtytChQ7n22mspLS09a5I55dQztd9+GZ+LTqdzJIzIyEg8PT255557CAgIYPLkyQA8+eSTmEwmxz4BAQEAjl6QAIsWLWLcuHEsWrSIF1988azn1Gobfw009azLYDCccbmiKI0SdlPX99S/1T/+8Q98fX0bHcPZP0DE5UWeQYlW5e3tzahRo3j55Zcxm80A7N69m2uvvZZt27bx0ksvkZCQ4GiF6HS6Rs8rCgoKHK/z8vLYuXMnr7/+OrNnz+aPf/yjY1tFUYiKikKn05GamurYJzs7G4vF0mR8X375JXq9njfffJNp06YxaNAgioqKHMc8m9DQUDQajaMVB3D06FH69evndEeJYcOGcd111/Hss89y9OhRAAIDA4mIiHD8nEowKpXKkQwDAgJ45JFH+Pzzz/n444+dOte5REREoNPpGj0PVBSFlJQUoqKiznl9w8PD0Wq1lJWVOWIPDw9n5cqVjfYR4hRpQYlW98gjjzB58mSmTp3KrFmzCA0NJTY2lhkzZgCwYcMGx7ZJSUls2LCBYcOGYbFYePHFFx1fyp6enmg0Gj799FOuvfZaDh48yJIlS4CTvc/c3d256aabWLp0KZ6enri7u7N48eKztnA6depESUkJ33zzDd27d2fXrl2sXr3acUyDwYCbmxv79++ntLS0UcvA3d2dG2+8kaVLl+Lm5oa3tzdPP/00MTExBAYGOn195s6dy9dff81TTz3FK6+84vR+EydO5LPPPuOJJ56gX79+53XOM3FxcWHy5MksXboUFxcXQkNDWb9+PQUFBdx8883nvL5ubm7ceuutPPnkk+h0OiIjI3nzzTfZunUrf/nLXy4qNtExSQtKtDofHx82bNhAv379ePzxx7n22mv58ccfmTBhAiNHjuTBBx9k69atADz44INERkbypz/9iblz5zJ79mzHLanAwEAef/xxNm7cyOjRo1myZAm33XYbMTExZGRkADBv3jyGDx/O7NmzmTZtGhMnTkSn0zUZ2+jRo7n55pt5+OGHGT9+PBs2bGDJkiWoVCrS09MBmDp1Kh999BHTpk07bf+HH36Y/v37M2vWLG655Rbc3Nx44YUXzvv6PPTQQ3z11Vds3779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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(census, un, results, 'Quadratic R-K model')" ] }, { diff --git a/code/figs/chap03-fig04.pdf b/code/figs/chap03-fig04.pdf new file mode 100644 index 0000000000000000000000000000000000000000..496d53b9758a929e5e50371f74daae6225b015cc GIT binary patch literal 18817 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 P{BQvfE32%!9O(Z54i4x9 literal 0 HcmV?d00001 diff --git a/code/figs/chap03-fig05.pdf b/code/figs/chap03-fig05.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3aebd407b9bbf8f01a10b968f8b85df0405fb2a6 GIT binary patch literal 14755 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 literal 0 HcmV?d00001 From 18914e2c36e987c11dfcf0afd640b03daa590f90 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 18 Sep 2018 15:28:25 -0400 Subject: [PATCH 15/61] copies ch8 notebook --- code/chap08-mine.ipynb | 571 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 571 insertions(+) create mode 100644 code/chap08-mine.ipynb diff --git a/code/chap08-mine.ipynb b/code/chap08-mine.ipynb new file mode 100644 index 00000000..0f16233f --- /dev/null +++ b/code/chap08-mine.ipynb @@ -0,0 +1,571 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 8\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": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *\n", + "\n", + "from pandas import read_html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Functions from the previous chapter" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def plot_results(census, un, timeseries, title):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " census: TimeSeries of population estimates\n", + " un: TimeSeries of population estimates\n", + " timeseries: TimeSeries of simulation results\n", + " title: string\n", + " \"\"\"\n", + " plot(census, ':', label='US Census')\n", + " plot(un, '--', label='UN DESA')\n", + " plot(timeseries, color='gray', label='model')\n", + " \n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Reading the data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')\n", + "table2 = tables[2]\n", + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "un = table2.un / 1e9\n", + "census = table2.census / 1e9\n", + "plot(census, ':', label='US Census')\n", + "plot(un, '--', label='UN DESA')\n", + " \n", + "decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title='Estimated world population')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def update_func_quad(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": [ + "Extract the starting time and population." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "p_0 = get_first_value(census)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initialize the system object." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "system = System(t_0=t_0, \n", + " t_end=t_end,\n", + " p_0=p_0,\n", + " alpha=0.025,\n", + " beta=-0.0018)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the model and plot results." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "results = run_simulation(system, update_func_quad)\n", + "plot_results(census, un, results, '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": 10, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "system.t_end = 2250\n", + "results = run_simulation(system, update_func_quad)\n", + "plot_results(census, un, results, 'World population projection')\n", + "savefig('figs/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": 11, + "metadata": {}, + "outputs": [], + "source": [ + "results[system.t_end]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "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? Run the model with initial populations between 1 and 20 billion, and plot the results on the same axes." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "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": 14, + "metadata": {}, + "outputs": [], + "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": 15, + "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": 16, + "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_proj = table.census / 1e9\n", + " un_proj = table.un / 1e9\n", + " \n", + " plot(census_proj.dropna(), 'b:', label='US Census')\n", + " plot(un_proj.dropna(), 'g--', 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": 17, + "metadata": {}, + "outputs": [], + "source": [ + "system = System(t_0=t_0, \n", + " t_end=2100,\n", + " p_0=p_0,\n", + " alpha=0.025,\n", + " beta=-0.0018)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "results = run_simulation(system, update_func_quad)\n", + "\n", + "plot_results(census, un, results, 'World population projections')\n", + "plot_projections(table3)\n", + "savefig('figs/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": [ + "## Exercises\n", + "\n", + "**Optional exercise:** The net growth rate of world population has been declining for several decades. That observation suggests one more way to generate projections, by extrapolating observed changes in growth rate.\n", + "\n", + "The `modsim` library provides a function, `compute_rel_diff`, that computes relative differences of the elements in a sequence. It is a wrapper for the NumPy function `ediff1d`:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "%psource compute_rel_diff" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we can use it to compute the relative differences in the `census` and `un` estimates:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "alpha_census = compute_rel_diff(census)\n", + "plot(alpha_census)\n", + "\n", + "alpha_un = compute_rel_diff(un)\n", + "plot(alpha_un)\n", + "\n", + "decorate(xlabel='Year', label='Net growth rate')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Other than a bump around 1990, net growth rate has been declining roughly linearly since 1965. As an exercise, you can use this data to make a projection of world population until 2100.\n", + "\n", + "1. Define a function, `alpha_func`, that takes `t` as a parameter and returns an estimate of the net growth rate at time `t`, based on a linear function `alpha = intercept + slope * t`. Choose values of `slope` and `intercept` to fit the observed net growth rates since 1965.\n", + "\n", + "2. Call your function with a range of `ts` from 1960 to 2020 and plot the results.\n", + "\n", + "3. Create a `System` object that includes `alpha_func` as a system variable.\n", + "\n", + "4. Define an update function that uses `alpha_func` to compute the net growth rate at the given time `t`.\n", + "\n", + "5. Test your update function with `t_0 = 1960` and `p_0 = census[t_0]`.\n", + "\n", + "6. Run a simulation from 1960 to 2100 with your update function, and plot the results.\n", + "\n", + "7. Compare your projections with those from the US Census and UN." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Related viewing:** You might be interested in this [video by Hans Rosling about the demographic changes we expect in this century](https://www.youtube.com/watch?v=ezVk1ahRF78)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 6ef6904f10f329c060aa40806ebb903f54fbc108 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 18 Sep 2018 16:10:41 -0400 Subject: [PATCH 16/61] first ch8 exercise --- code/chap08-mine.ipynb | 180 ++++++++++++++++++++++++++++++++----- code/figs/chap04-fig01.pdf | Bin 0 -> 17819 bytes 2 files changed, 157 insertions(+), 23 deletions(-) create mode 100644 code/figs/chap04-fig01.pdf diff --git a/code/chap08-mine.ipynb b/code/chap08-mine.ipynb index 0f16233f..417ec3cf 100644 --- a/code/chap08-mine.ipynb +++ b/code/chap08-mine.ipynb @@ -16,9 +16,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Configure Jupyter so figures appear in the notebook\n", @@ -43,9 +41,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "def plot_results(census, un, timeseries, title):\n", @@ -68,9 +64,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "def run_simulation(system, update_func):\n", @@ -100,9 +94,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "filename = 'data/World_population_estimates.html'\n", @@ -117,7 +109,18 @@ "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "un = table2.un / 1e9\n", "census = table2.census / 1e9\n", @@ -146,9 +149,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "def update_func_quad(pop, t, system):\n", @@ -173,7 +174,18 @@ "cell_type": "code", "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "2.557628654" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t_0 = get_first_label(census)\n", "t_end = get_last_label(census)\n", @@ -193,7 +205,70 @@ "metadata": { "scrolled": true }, - "outputs": [], + "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", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
alpha0.025000
beta-0.001800
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "alpha 0.025000\n", + "beta -0.001800\n", + "dtype: float64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system = System(t_0=t_0, \n", " t_end=t_end,\n", @@ -213,7 +288,18 @@ "cell_type": "code", "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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338/3/nOd3j++ecBKCsrY+3atbz77rts2bKF6667josuuoiEhATuuusu/vSnPzFnzhz++7//m/vuu4+///3vQ34fzc3NxzxPBkUIMTba2trYsWMHLS0tAPjaGrFHxJA3bwFz5szpN13H5fHj9vr5tLSB/JmJJMSEj2qs0oIah+bMmcMf//hH5s6dy8aNG7n88stZvXo1TzzxBIZhHHV8c3MzcXFxxx1qv2nTJr75zW8yY8YMwsPD+f73v8+2bdvYv38/YDbtb7rpJhwOB2vWrCElJYXKykqcTid2u50XX3yRXbt2cfnll4eUZE72PCHE8AsEApSUlLB582YzOQUCeBqrCO9uYmFkB3NmzjhqLumivBTiosOIjXTi9ox+N58kqFHmdDr7Dd/s4ff7CQsL632fnZ3ND3/4Q/7yl7/wwQcf8O1vf5unn36ajRs3HnVuSkoKLS0tg84jam9v751kV1NTw5133snSpUtZunQpZ555Jna7vXcVh+jo6H4xOBwOAoEA0dHRPP/881RWVrJ+/XrWrFnDU089NWiy7OtkzxNCDK+WlhY2b96M1ppAIECgqw3voXKyw7wszogi3N9N8bubcXv7JyGbzcq6NTP5p/MV6UlRox73pO3iWz5v6K63NQszWbMw85j7z1kynXOWTD/m/s+uzOazK7NPOK709HRqampYsGBB7zafz0dNTU1vteCvfOUrnH/++VxzzTUAJCYmcuWVV7Jr1y601kddc9GiRYSHh/P222+zdu3afvsefPBBKisref7550lNTeXuu+/mjDPO6N1fUlJCTk4O27dvP2bMra2tvc+vvF4v7733HrfccgtLly7FZrP1S4yGYdDa2nrc8wY+txJCDD+/309paSllZWUYhoHh8+A9XEe04UKlhhPltNHZ7aXYnc6+zhTadh9i9cJp/a4x2t16fUkLapRdfPHFPProo5SXlwPm/2weeOABUlJSKCwsBODCCy/kySef5PXXX8fj8eDxeNiyZQtvv/0255133lHXdDqd3Hbbbdx999288cYb+Hw+urq6ePbZZ/njH//IzTffDMBll13GY489Rm1tLX6/n6effpqrrroKl8s1ZMzNzc1ce+21bN26FYfDQVpaGhaLhbi4OGbMmIHH4+HVV1/F7/fz/PPP9y7aO9R5QoiRdfjwYd555x1KS0sxjAC+tkZ8hyrIjfSx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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation(system, update_func_quad)\n", "plot_results(census, un, results, 'Quadratic model')" @@ -239,7 +325,25 @@ "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/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", "results = run_simulation(system, update_func_quad)\n", @@ -258,7 +362,18 @@ "cell_type": "code", "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "13.856665141368708" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "results[system.t_end]" ] @@ -267,7 +382,18 @@ "cell_type": "code", "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "13.88888888888889" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "-system.alpha / system.beta" ] @@ -285,7 +411,15 @@ "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "p_0 = get_first_value(census)\n", + "\n", + "system = System(t_0=t_0, \n", + " t_end=2250,\n", + " p_0=p_0,\n", + " alpha=0.025,\n", + " beta=-0.0018)" ] }, { diff --git a/code/figs/chap04-fig01.pdf b/code/figs/chap04-fig01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..10712e2fa4a16257f452278749e0971f9cd44b24 GIT binary patch literal 17819 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 literal 0 HcmV?d00001 From 2feb416d99abcfac1b377862526f4ef1be400f6c Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Sun, 23 Sep 2018 17:20:02 -0400 Subject: [PATCH 17/61] recreated ch8 code to turn in --- code/chap08-mine.ipynb | 298 +++++++++++++++++++++++++++++++------ code/figs/chap04-fig01.pdf | Bin 17819 -> 17036 bytes code/figs/chap04-fig02.pdf | Bin 0 -> 17152 bytes 3 files changed, 255 insertions(+), 43 deletions(-) create mode 100644 code/figs/chap04-fig02.pdf diff --git a/code/chap08-mine.ipynb b/code/chap08-mine.ipynb index 417ec3cf..7c9a0897 100644 --- a/code/chap08-mine.ipynb +++ b/code/chap08-mine.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -40,7 +40,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -63,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -93,7 +93,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -107,12 +107,12 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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gr4tQX0PeEdrfbwPzymEEANenaOBfSUawzCobWyhtKKJFVPmMitjQvtAARaLhaUXDfNxpOemL5+DugH4Sx+eTwghBoXo4EimpIynqKKB0iIbiS2TqSmMbk9O/VWflKCUUjFAFrChL84nhBADlWEYVDXVEBPS9eH+ycljaaq3sWNnMxaLhdziGhqaHF2myOhv+qqKLwso1Fo7etxSCCHEGdU01/FlzhYKa0u4ftxSIoM7xsS0WW1cNHIsdeU52G0W5kxI6dfJCfqoik9rvVVrndUX5/IlpRQVFV2HCfnggw+46aabAHOywokTJ3L48OEu23z/+9/nzTffPO14b775JtOmTWPFihWsWLGCq6++mttuu419+/a1b3P//fczf/789m3avl544QUA6urq+OlPf8rVV1/N8uXLueaaa3j99ddPO9fDDz/M+PHjuwzDJITwDy7Dxe6iA7y+713yqwtpaG7h6c/fp6C07rRtF88cwqUzhvT75AQy1FGfMwyDu+++mzfeeIOgoKAet58+fTpPP93RK3/Dhg1897vf5R//+AdpaeYguDfffHP7cEinevTRRwkNDWX16tVYLBaKi4u54YYbSElJYd68eYA5hNLbb7/NkiVLeOmll7jnnnt64UqFEL2hpL6cL7I3U95gzsdWWdtEQVkD0YSxfs9JvrpoVJceed6cQLCv9fsEte3kHnYU7PVo29EJWSzInNVl2brszRwqPdrtPlNTJzA9beIFxdjZnDlzcDgcPPLII/zsZz875/3nzp3L4sWL+dvf/uZRIiktLSUuLg6Hw0FgYCBJSUk88cQT7SOsgzkw7JAhQ9oT3R133EFISMg5xyaE6D0tTgfbTu5hX4mGTkPSpcckYK+IIciIoKSyidLKRhJjQ30Yqff0+wTV31gsFh555BFWrFjB/PnzWbhw4TkfY/To0axdu7b99V//+ldWr17dZZvf/e53KKW48847+dGPfsTs2bOZMmUKU6dO5aqrriIjo2OKkVdeeYVrrrmGCRMmkJCQwFtvvdU+hYcQou/lVOXzZc5W6lsa2pfZrDampU5kYtJoNlgLqahuYs6EVBJiBu6HSUlQvainCQvbJCYm8utf/5r/+q//Oi2xeKrzXE9nq+IbPXo0H3zwAfv372fr1q2sX7+ep556iscff5xFixaxf/9+Dh061D46+TXXXMMLL7zA17/+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\n", "text/plain": [ "
" ] @@ -148,7 +148,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -172,7 +172,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -181,7 +181,7 @@ "2.557628654" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -201,7 +201,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": { "scrolled": true }, @@ -264,7 +264,7 @@ "dtype: float64" ] }, - "execution_count": 8, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -286,12 +286,12 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { - "image/png": "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338/3/nOd3j++ecBKCsrY+3atbz77rts2bKF6667josuuoiEhATuuusu/vSnPzFnzhz++7//m/vuu4+///3vQ34fzc3NxzxPBkUIMTba2trYsWMHLS0tAPjaGrFHxJA3bwFz5szpN13H5fHj9vr5tLSB/JmJJMSEj2qs0oIah+bMmcMf//hH5s6dy8aNG7n88stZvXo1TzzxBIZhHHV8c3MzcXFxxx1qv2nTJr75zW8yY8YMwsPD+f73v8+2bdvYv38/YDbtb7rpJhwOB2vWrCElJYXKykqcTid2u50XX3yRXbt2cfnll4eUZE72PCHE8AsEApSUlLB582YzOQUCeBqrCO9uYmFkB3NmzjhqLumivBTiosOIjXTi9ox+N58kqFHmdDr7Dd/s4ff7CQsL632fnZ3ND3/4Q/7yl7/wwQcf8O1vf5unn36ajRs3HnVuSkoKLS0tg84jam9v751kV1NTw5133snSpUtZunQpZ555Jna7vXcVh+jo6H4xOBwOAoEA0dHRPP/881RWVrJ+/XrWrFnDU089NWiy7OtkzxNCDK+WlhY2b96M1ppAIECgqw3voXKyw7wszogi3N9N8bubcXv7JyGbzcq6NTP5p/MV6UlRox73pO3iWz5v6K63NQszWbMw85j7z1kynXOWTD/m/s+uzOazK7NPOK709HRqampYsGBB7zafz0dNTU1vteCvfOUrnH/++VxzzTUAJCYmcuWVV7Jr1y601kddc9GiRYSHh/P222+zdu3afvsefPBBKisref7550lNTeXuu+/mjDPO6N1fUlJCTk4O27dvP2bMra2tvc+vvF4v7733HrfccgtLly7FZrP1S4yGYdDa2nrc8wY+txJCDD+/309paSllZWUYhoHh8+A9XEe04UKlhhPltNHZ7aXYnc6+zhTadh9i9cJp/a4x2t16fUkLapRdfPHFPProo5SXlwPm/2weeOABUlJSKCwsBODCCy/kySef5PXXX8fj8eDxeNiyZQtvv/0255133lHXdDqd3Hbbbdx999288cYb+Hw+urq6ePbZZ/njH//IzTffDMBll13GY489Rm1tLX6/n6effpqrrroKl8s1ZMzNzc1ce+21bN26FYfDQVpaGhaLhbi4OGbMmIHH4+HVV1/F7/fz/PPP9y7aO9R5QoiRdfjwYd555x1KS0sxjAC+tkZ8hyrIjfSxKD2SKKcNa1gEnllnss8xBywWdpQ2cLh96M+D0TRpW1Dj1c0334zNZmPDhg00NTURFhbGypUree6553qfIX31q18lPDycxx9/nNtvvx3DMJg1axZ33303a9asGfS6X/7yl4mJieGpp57ijjvuwDAMCgoKeOaZZ1i2bBkAN9xwAz6fj6uuuoqWlhby8vJ45plnjrv+3cyZM7n33nu56667qK+vJyEhgR/96EfMmTMHgB/96Ec8+OCD/PjHP+bSSy9l8eLFIZ0nhBh+fr+fvXv3sm/fPgzDIODuwttcS5zdj8qIIsJhBSxEZM8jMm8ZiXYnRYfLaWrrZuW8DOKiwo57j9FimQjPA5RSOcC+N954g6ysrKP279mzh/z8/FGPSwwv+XsU4tQ0NTWxY8eOI6WHjAC+2jJy4x1kRDlo7fQQnZJO8uJzcMQfGbnc2uHG6bARETZybZbq6uqeHqCZWuv9oZwjLSghhJjgfD4fu3fvprKyst/21LR05uRn01X8Lvvqu6iw5RIfVsiF8f2n1cRFj59WU1+SoIQQYgKrr69n586ddHd3Q8APVhsOh4N58+b19jh1tbaz3eXAZwunqaadqkPtTE+LGePIj2/UEpRS6irgqQGbI4A3tNbnj1YcQggxGXi9XoqLi6mqqgLDwNfWgK+9mekFSzhtxemEhx8ZfZe19AxmBw5QUnWYhXNSSEscvZpOp2LUEpTW+vfA73veK6UWAa8B3x+tGIQQYjKoq6tj586duN1uAq4OvM112A0fBcnhxLhqae3yET5gdPjphRksmZtKQuzYDRs/UWPSxaeUcmAmq3u01jvGIgYhhJho3G43xcXF5uR6vw9vyyH8XW2kRtnJiYvgcEs3Rc2tdBrlfOH8QqzWI6u2RIY7iAyfWIVdQ0pQSikbsARYCqQCfqAO2Ka1/vQk7nsz0A08fhLnCiHElGIYBrW1tRQVFeF2u/F3NONtacBpNZibEkFKlAMvdvbac2iMzIR2gz37m49aQ3SiGTJBKaUSgG8BNwJJQAXQBNiAZCBbKVULPAk8prVuOd4NlVJOzG69/6e1Hv9j3IUQYgy5XC6Kioqora3F8LjwHq4l4HGRHu1gVkI4DpuF8Mw8kuauIre8lcbiOmZlxk2IQRDHc8wEpZRaD/wL8AZwLfC61to94JhY4AzgKqBIKXWn1vr549zzAiAA/OVUAhdCiMnMMAyqq6spLi7G6/Xi7ziM93AdYTYLMxPDiHFYCY+NJ3reGTiTzdF6i1UYGUlRkyI5wdAtqGXAMq11w7EO0Fq3YSaavyilMoA7geMlqEuBTVrrwIkGK4QQU0F3dzc7d+6kvr6+d5s1LIr0aAdxBGhq6mJfguKCVetwOp29x9ht1kmTnGCItfi01rcMlZwGOb5Wa/3NEA5dCbwX6nUnm1BKvj/yyCMUFhZSVlbW75jBigP2eOmll8jPz2fRokUsWrSIhQsXcuGFF/LMM8/0Wz383HPPpbCwsPe4nq/PfvazvcdUVlZy8803s2zZMhYtWsS6dev4z//8z0Hve9FFF3HmmWcOupK6EOLEGIZBZWUlb731Vr/kFBkZyelnnkXh0pXU+WIpSTyTA45cPtZNYxjtyAt5FJ9SKhUoBBxAv4I+WutXT+CeOUDNCRw/Jbndbm677TY2bdrU739IQ8nLy+NPf/oTYP5D3759O7fddhttbW185zvf6T3uF7/4xVGrnvcIBAJcf/31rFu3jp///OeEh4fz6aefcvPNN+N0OvnSl77Ue2zPIrApKSm89tprXHzxxafwHQsxtXV1dbFjxw4aGxvwtTVhsVixxyaRk5PD3LlzsdvtGIkJzIjMo2RbFWmJkcycNvQ6mhNdqKP4rsUccTfYGEUDc9BESLTWo19UZAJatWoVNTU1PPzww9x+++0nfL7FYmHx4sXcd9993HDDDVx77bXHXRQWzBWQKysrWbduHREREYBZzuP222/vrSvVY+PGjXzmM58hKSmJ3/3ud5KghDgJhmGwb98+9u7di7ezDe/hOgyfB4fVQsrsxcyfP7/3WIvVhspOxOmwM3Na7KQv/hlqC+r7wK+BO7TW7SMYz7DpLNlGV9nHIR0bPj2fmAX9y6W373obV9XRXXEDRc5eQlTespOKccjrRkbywAMPcPXVV3PWWWexYsWKk7rOqlWrsFqtbN++fdCS8AMlJSWxfPlyvv71r3PJJZf0dvNddtll/Y5rbm7mjTfe4K9//SsxMTE88MAD7Nq1q1+dKyHE0Do6OtixYwfNjfV4D5tzmgzDIIoAEV4/B4uL6JiviI480otisVjIzZwaJWtCrQc1Hfj3iZKcJovTTjuNDRs28IMf/IC2traTukZP/aWOjo7ebbfddltv0cCer0cffbR3/zPPPMP111/Pzp07ueWWW1i5ciU33XQTdXV1vce8/PLLrFq1ioyMDKKjo7nkkkuO+ZxKCNGfYRiUlZXx9ttv03CgHFdNOf6uNqIcVhZnRJMQ5qAudj41UXPZurvu+BecpEJtQb0GnAeUjmAsU0KoJd973HTTTbz77rvce++9/Z7/hMrv99PW1kZGRkbvtp///OfHfAbVE+PVV1/N1Vdfjcfj4eOPP+bhhx/m1ltvZePGjRiGwaZNm6ivr2f16tWA+czM7XZz++23k5Q0sScHCjGS2trazFZTfR2+5loCXhcWIDs+jBlxTiKmzSFiRSHbP6hlTlY8i1XaWIc8ZkJNUDuAXyilLgFKgH4PI7TWJ/6QZIRF5S07pa63mAVnHdXtNxxCKfnel81m48EHH+TSSy8lMvLEF3jcunUrhmGQl5cX0vEbN27khRde4OWXXwbMZLVq1SocDgfXXXcdAB9++CEtLS387W9/w2o90gjfsGEDL7zwQm8FXyHEEYFAgLKyMkr0XjyHD+HvOEwgYOCwGCzKjCEuPpHo+eacpljg6gvixm0ZjNESahffWcAWzNXHFxKcIxX8GnzcsxhUKCXfB5oxYwY//OEP2bRpU8j3CQQCbN26lbvuuosNGzYQHR0d0nlnnXUWBw4c4P7776epqQnDMKiqquLZZ5/tLTe/ceNGLrjgAtLS0khJSen9+vznP88LL7wgQ86FGKClpYXNmzejtcYwINDdgdvjw+H1EG8EcM44jYQzruidcAvjt0bTaAqpBaW1PmekA5kqQin5PpgrrriCt99+mw8//PCYx5SUlLBo0SIA7HY7mZmZXHfddVx55ZX9jvvud7+LzXb0wMu//e1vpKen84c//IFHHnmEdevW0d3dTUJCAhdccAHf+ta3aGpq4vXXX+e555476vx169Zx//338/e//51169aF+BMRYvLy+/2UlJRQXl5+ZD6ixUJKTh72A0U0G8mUxcyj6XAKX7SGPBh6ygi55LtSKg34JjAPs+W1B/i11rpi5MLrvXcOUvJ90pO/RzGZNDc38+n2T2irr8EWnQCYXfZz585l5syZHK6pYuMHzSTFR3LW4qwJU6PpZI1YyXel1HLg/4Aq4H3MibrrgFuUUmdrrT86qYiFEGKS8fl87Nmzh4rdO/G2HCLg8+J2+ZmlFAsXLiQqypwKmpg5gy+cm0xyfES/shjiiFAHSTwE/BdwY98VyJVSjwIPAtIFKISY8hoaGvj0oy201ewn4O7C4/XjdvuI9daTknFxb3LqkTrJW02nKtQEtRS4bpDyGI8Aoc2GFUKIScrr9VK0ayf7i7fja2/u3R5phYTIcJri5vFeUT0505Nw2OVZU6hCTVC1mGvo6QHbcwGZvCuEmLLq6ur49IN36KivxvCbcxztVguzk8LJVAv5U0UMAauD0+dPw24LdeC0gNAT1O+Ap5VS3wZ6hpGtAn4Z3CeEEFOKx+Nh50dbqNyzg4CrC4/Pj9NuJTnKQcHsmSQtPAt7TCIXZnYSHxNGuDPktblFUKg/sZ8C04BNmCP4LIAXs4vvzpEJTQghxp++5dc7avfj7eqgy+XDCATIyUhgydoLCcuY1buQa3qSrI99skKdB+UBrldK3QYooBso01p3j2RwQggxnrhcLnbt2tW7LqUjPpXOlsNEWMCWlMvuqAIWJmQTPslXGR8tQ5V8vwj4P621N/h6oOlKKeCE60EJIcSEYhgG+/bsQO+rxhc4MlYsIiqahWs/w9YKH/WeME6bk0KYQ54zDZehWlCvAOlAffD1sZxQPSghhJhIOlqa+Pgfr1JfV4vPGUNESiY2q4Xs7GwKCgqw2+2EZ3ThcFhJiAkf63AnlWMmKK21dbDXYnx65JFH2LNnD48//viQx/XM5t62bVtIBQyFmKoCfh8lW99i984deL0+utw+vG0NuB0JrLt4LcnJyb3HynymkSHDSoQQYoDmyr18/M4btLR3AuD3B/B6/YRFJuAKm45hk4EPo2GoZ1ANmN13x6W1Th22iCa56upqLrvsMm699VaefPJJvF4vt9xyC1arlSeffBKPx8ONN97INddcw/vvv89DDz3Evn37yMzM5Oabb+aCCy7ovc6dd97Jzp07yc3NJTc3t999Nm3axDPPPENzczOFhYXcc889TJ8+fSy+ZSEmDG/7YYo3/43yyir6PGoiIS6aqOwCqrxJzM1OIDJc/m8/Gob6KX+fEBPUeFNeXk5JScmghQGHm91uJy8vj1mzZoV8Tnt7O0VFRbz55pu8/vrr3HbbbVx66aW88cYbbN68mVtuuYUFCxawYcMG7r//fs4//3y2bdvGTTfdREpKCkuWLOHWW2+loKCAX//612itufbaa1m61Kx88tprr/GrX/2Kp556ijlz5vDss89y/fXX88orQz1KFGLqMnxe6na+x47tn3C4y4PFYsFmtWCxWsnLn8+81efR3h3A5fHJsPFRNNQzqOdGMY5hVVFRMSrJCcyFISsqKk4oQYFZKbenGKDf72f9+vU4nU7OOecc/H4/v/3tb1mxYgUXXWQOoFy1ahWf+9znePnll0lNTaWoqIjf/OY3OJ1OFixYwKWXXsrBgwcBs/W0fv165s2bB8ANN9zA7373O7Zs2UJ2dvbw/gCEmOD8fj+7t73Hnk+20O3y4fb6sdutzMieztKzLyA+xaxoGx8DIDWaRtNQXXwhV8fTWp94LfIRlJubO6otqIHda6GIj48H6K3LFBMTA9BbodblcpGZmdnvnKysLLZs2UJDQwNhYWEkJCT029eToGpqanj88cd5+umne/d7vV5qamokQQnRR3NzMzt27KCjowPDHoHb24LfFoY3bg65p59LfEr8WIc4pQ3Vxdc5alEMs1mzZp1wi2a0WY4zkW/p0qV89FH/KiZVVVUkJyeTlpaG2+2mqamJpKQkAA4dOtR7XGpqKuvXr+9XqLC8vJxp06bR1NQ0jN+FEBNPwNWJp6ud0oMN7N+/v3d7RMo0/OFJNDpmkTsjlYRYGTI+1obq4vv6aAYi+luzZg1PPvkkr776Kp/97GfZunUrf/7zn3n00UfJzMxk+fLl3H///dx7771UVlby0ksvsXjxYgAuu+wynnjiCZYtW0Zubi6vvPIKd9xxB6+88gp2uzzcFVOTEfDTvW8nVTu3sKfJjSduBhHBwQ52u52CwkJS0qbRcLib7AyZgjEeDNXF9wBwr9a6M/j6WAyt9T8Pf2hTm91u5/HHH+ehhx7izjvvJC0tjXvvvZc1a9YA8Mtf/pI777yT008/nWnTprF27Vqam81l/i+77DLa2tq46aabqK+vZ8aMGTz22GPk5ORQXV09lt+WEKPOMAw89ZW0FL3L3qp69je7cHt8eDtrmJ47g/S0NBYsWEBERAQA2RmOMY5Y9Bjqv9PLAEef18cyIUf6jZWsrCy0PlK1JDY2tt97oN/71atXD3qd5ORknnrqqWPeZ/369axfv/649xdiMvO1N9Ox+z0OHthPaZMLtz+Ax+vHb3HgNpzEJs9k2bJ5x+1yF2NjqC6+cwZ7LYQQ413A46Kr9CNaKnZR2tRNY5c5YMpqs+NMTKQ1kMKMmXkUzM2R5DSOhfxAQikVBVwJzAM8QDGwMbjSuRBCjDnDCOCqLKajZBsHGtsob3ZhCY6MtUcnEJU2ndULFtIdiCA3M06S0zgXUoJSSi0A3sJMTDsxa0J9HfgXpdSFWuu9IV4nA3gCOAdwAU9rre86ibiFEOIoAVcXh3a+y/YDrTR2egAL8UkJhCWmkzM7r3dxVzExhLoI7K+BPwIztNaf1Vp/BrME/PvAsR+EHO1PmOXj04CVwNeUUl85gfOFEGJQgUCAfQfr+LQ9nKYuLz7stDmS6YqazuqzzqGwsFCS0wQT6t/WQmC91trbs0Fr3a2U+gmwPZQLKKVWALnA6uB19imlzsYsfnjKDMOQ5vqb25OoAAAgAElEQVQEFggExjoEMcEEvG58h+twpmbT2trKjh07aG1txRaTSESyn6Z2O4lp0zn37KUkJcWNdbjiJISaoD4BzgBKBmxfCuwO8RpLgF3APUqpazC7+B7XWj8U4vnHFB4e3jtpVZLUxGIYBl6vl0OHDhEVJWucieMzjADu6hI69RZcXV2URM+ns6sVwwgOKLZYmT47jwWpM5mfl4XVKp8JE9VQ86Bu6vN2K/CoUmop8CHgBwqBG4H7Q7xXImaSexuzJTUX+JtSqlZr/YeTiL1XVlYW1dXVNDQ0nMplxBix2+3ExcX1q68jxGC8zbV07H4Pb2sj+xs72V3fRScfkj4rD6fDis1m6128Wf6zOvEdbzXzvuqAC4JfPRqBbwD3hXAvN9Cmtb4n+H6HUuo3wOXAKSUoh8PBzJkzT+USQohxzN/dTufeLbhry/D6DcqbXZTUd+MNWHE7oqhr6mTx/JkUFhZKS3wSGWoe1HB/4u8FIpVSzj5D0+WJpRDimAy/j66KT+ku307A76Oxy0dpswtPAKKT09jfZscZFsaSJaexYlG+tJommaG6+L6mtX4+1AsppSzA17XWvz3GIf8HNAAPKaW+ByjgWsxuQiGE6GUYBp5D++jc8wHezjYa213Uuw0au3zYImMJi0vFYndw2ox41qxcQlSUlFyfjIZqwSwKJpIngZe11rWDHaSUSgW+AtwAvH6si2mtXUqps4BHMIeau4AHtNb/c7LBCyEmK4Ou0o9prm9kb10HdS4/UbExRKZmYw2LJDw8nPnz55ORkTHWgYoRNFQX37eDgyLuBh5WSu3GXD2iEbAAKZjDz/OAvwLXaK23DnUzrXUFcPEwxS6EmKQsFivkLOKTT0o57DLosifSQRyzwiLJzs4mPz8fh0MWdZ3shnwGpLX+CLhEKTUTuBBzWPlsIIA5aOJXwKta6wMjHagQYnLqWW3cmZqNxWIhEAhQWlpKWVkZtuQs2pr8WKw2ZqQnsWrVchntOYWENEhBa70PeHyEYxFCTDG+tiY6ijfjba6jM2sFMVkz2LVrF+3t7QA4YxOY4fRRkJ9HQf7c3grUYmqQUXRCiFEX8LrpKv2I7v1FuD0+qhvaqdB/w5+WS3zskQEPCQkJnFVYSGysFBCciiRBCSFGjWEYuGvL6dzzHgG3ucrZ/sYudLOXTlsMnuZuYqIjCHM6mDt3Ljk5Ug5jKpMEJYQYFb6OFrM7r+kgAG5fgNJmF02WCNoiE/EYdhJjw0lLTeW00xb2VrgVU5ckKCHEiDL8PrrKPqG74lPcHi92m4XaDh/72v1YY9MIi4wlw+UlMiKcpYtPIyMjQ1pNAjixgoWLMBd8dWAOM++ltZYBFEKIQXWVfkxn+Sc0tHRzsKmLdqsda1wy9rQUsJgVfwrUbBk6Lo4SasHCO4GfAM1A+4DdBjLCTwhxDBG5C6kq2s6eQ53U+5x0OROZGW0mp+joaAoLC0lKShrrMMU4FGoL6jrgLq31T0cyGCHExGYYBvh9WOxHWkLNbR0ccKZQ7zBos0UQEWZ+7OTl5TF79mwZOi6OKdQElQRsGslAhBATm6+9mY5db2OJiiei4EyMgI/du3dTXV0NFicpGelEuX3Myp7GwoWFxMTEjHXIYpwLNUG9CFwF3DNyoQghJqKeQRBdFdvp6vZwsH4vjft9hIUH8Hg8vcfFREewfFk+M2bMkEEQIiShJqhu4A6l1BVAKeDpu1Nr/aXhDkwIMf55mmro2PU2/q5WXG4furqVQ26Dxk7NtBmZRIabHzHTpk1j3rx5hIeHj3HEYiIJNUFFcopFBYUQk0fA66Zz7we4qvaa7w2Dum4/BwMRNDpiMWxOvD4/kZGxLFiwgNTU1DGOWExEoa7F9/WRDkQIMTG4D+2no3gzge5OsECLy0dJswdvVDJx2XG4mrtIT4pC5c0mLy8Pu12mW4qTcyLzoBYAtwPzACtmhdxfaa3fH6HYhBDjiOH30r7zLVw15TS2dNPe7cHjcNIQCMeePBObzY4NmJ+XRWFhIXFxcWMdspjgrKEcpJS6EPgEczTfi8B/AzHA20qp80cuPCHEuGG143d1UV59mNL6TnY2+6gMJOBIzsJis2O325k/fz5r1qyR5CSGRagtqJ8C92mt7+27USn1I8wJvK8Nd2BCiPHFYrFgnbWMmo/3UuNz0hWWQJTPQRyQkZHB/PnzZRCEGFahJqh8YLCRei8APxy+cIQQ40FvEcGU6VisNvx+P2VlZZSVlWHPnI2vrou0mHAy0xIoLFxAWlraWIcsJqFQE9QBYBFQNmD7EqB+WCMSQoypgLuLjqJ36DhYQXX4bLIXLqS4uJjOzk4ArHYnc6aHkZubK4MgxIgK9V/WY8CTSqks4MPgtlXAncADIxGYEGL0uWsr6Ch6m6amVqobO6lzbaX4YD3JyUeeKSUkJFAoRQTFKAh1mPmvlFIxwB1AcnBzDfBjrfWjIxWcEGJ0BLxuOorfxV1TimEY1HX6qOj0022LxtXuJT4hQER4GHPnziU7O1tWghCjIuS2eXCh2J8qpVKBbq31wFXNhRATkKehivZdbxFwddLu9lPS5KLdb8UVnYHPGs6M5GhysmdQUFBAWFjYWIcrppBjJiil1E3Ab7XWruDrgft7X0s9KCEmHsPnpVN/SEvpDrBaOdDq4WC7B1tUHOEp6WQGIDY2moULF5KcnHz8CwoxzIZqQX0f2Ai4gq+PRepBCTHB+Dtbadn2KnXVtVQ0dtFmWAmLCMOZnIU1Igar1cq8OXOYNWuWlMMQY+aYCUprPXOw1wMppaQzWogJxhoexaGWbrbXdtLlN/DYwkiKm05YRAQpKSksWLCAqKiosQ5TTHGhVtStAJZqrZsHbJ8GfArISpBCTBDmnKZyyo1YvNZDdNpisUbGER0Tw5LFC8nIyJBBEGJcGOoZ1CXAmuDbHOBflFJdAw6bPUJxCSGGiWEYeBursCVm0dTUyK5du+jq6gJ7GPG5c7F2+Vi0YC4FBfkyp0mMK0P9a9wBfBvo+a/UIvrXgTKADuBrIxOaEOJUBdxdtH76JhV79rLbSCc+uf/cpeTkZM6VhV3FODXUM6hK4FwApdSzwK1a67bRCkwIcWrch/bTsuNNtu6tpa7bR4B9YJ9FfHw0DoeD/HypbivGt5DrQSml7EqpTKBnSI8FCAOWaK3/K5TrKKW+ATwFuPtsvllr/fwJxCyEGILh89Kx531qS3ZR2uyi2WdgGOC2R+F3B1gwfTr5+fkyp0mMe6EOklgHPAskDrL7MBBSggIWAw9prX8Q4vFCiBPgPVxH48f/R8nBRuo7vQBERkbQ7owhIyuLc89YTlJS0hhHKURoQn0i+m+YJTV+AbwBXAKkA78EvncC91sC/PuJBCiEOD4j4Kd1z1a2f/Auh70GfsPcbouIITxlOhfm55ObmyvdeWJCCTVBzQG+qLXWSqlPgCit9SallBf4EWbZjSEppWxAIfBVpdQvgC7gN8D9Wmvj5MIXQvi72ih+7SV2lFXT7QsQHmYnItyJIzGd6bPzmTdvntRpEhNSqAmqGwgEX5cAC4G/Ah8DeSFeIwX4CHgeuByzxtSfgDZkJQohTorb7aZ4916KKw/R7TN/RTt8dlJmFLBsxXJZokhMaKEmqHeAu5RS38JMMtcrpR4CzsZMMMelta4Dzuqz6VOl1CPAF5AEJcQJCQQC7N+/H601Pp+PmIwZeCor6HLEU7h8NWtWLJAlisSEF2qC+h7wZ+AbwJOY86PaACdmTajjUkrNA76ktf5xn81OzLX+hBAhMAyDfXuKqKhtoLurs3e7LSKavBVnMK/wNBLjpU6TmBxCHWZeBuQrpSK01t1KqeXAOUCj1npLiPdqAb6nlKoGnsGc+Pst4JsnEbcQU057UwPv/Pklag4dgvgs0qelABAdHc38+fNJSUkZ4wiFGF5DLXUUeZztb/a811oPXALpKFrrg8Hlkx7AHP3XCPxEa/3iCUctxBTi9/vRW99m1ycf0dpudjgEWmrpTkxg8aIF5ObmYrVaxzhKIYbfUC2oDszljEIRUme31vofwNIQrynElFd3YD/b3/k7HW2tWC3gcNjwev1ExqawYuVqsqfLOs1i8hoqQZ0zalEIIfrp6Ohg++Y3qNtfCkagd3tKQgwxM5ey5syV2GzSahKT21Br8b09moEIIczuvO3btrHjw3exeF3ERDrBAjaLBVWQz9zTz8fmcI51mEKMilCXOtrGEN19WuvlwxaREFOQYRjU1dWx/YPNVJdqMMxfN4/PT056IgvPvpjotKwxjlKI0RXqMPNXBjkvF7gYuGc4AxJiqmlvb6eoqIjGxkYMq50wpx2320uY1ULOrAJOv2gdFqvMaRJTT6jDzO8dbHtwdfJLgIeHMyghpgKv18uePXs5cKASI9histgcJE6bjqOzjUWfuYS06dJqElPXqZbP/AfwyHAEIsRUYRgGFfv28d5bm+lo7yBr5gwsFrBYLOTk5JCXl4fDYcdikUEQYmoL9RnUYHOi4jAXiq0d1oiEmMSamprY9ekn6J07sbg7sWGhqSmWuXNnM2/ePGJjZRUIIXqE2oI61pwoF/D14QtHiMmpq6uLPbuLOVBSjK+1kSiLly7AYTVIxc2KFStksq0QA4SaoAbOiTIAD1CstW4f3pCEmDz8fj9lZWWUFu/E3VRDwGsWk45w2kiww8y5C1BnrpXkJMQgQh0k8TaAUioaUIDf3Ky7RzA2ISYswzCoqalh69aPqa+sIN7hxhosFpgaZScvK4OkRWfjTMwY40iFGL9CfQYVhlkS4yrMFcgBupVSvwa+p7X2j1B8Qkw4LS0tFBUVUVK8B2/LISxGgG6/jbS4MOakxDBtwUoicubL0HEhjiPULr5fYdZ++jKwFbACK4CfA27gn0ciOCEmEpfLxZ49e6iurgYgPNCBzwhgs0Ci3WDp/AISF56JLSJ6jCMVYmIINUF9Cfic1vrdPtteUko1A5uQBCWmML/fT0VFBWVlZfh8vt7tMenTiQ2UkRIbgzr7QuKn545hlEJMPCdS8t07yPbWYYxFiAml5zlTUXExNZVVxCQlEuYwf6XS09MpKCjA2lZPeOp0LLZTnXIoxNQT6m/NHcBvlFIbgA+11gGl1HzM51I/7TtPKpTaUEJMdC0tLRQXF3Ng3z5aa6ux+j00uD3kz89n/vz5JCcnmwdGzRzbQIWYwEJNUA8D0cBmwK+UCgAOwAIsB37R51h58ismre7ubvbu3UtV5X58LYewdLRi9XuwWSDZ10LWDHUkOQkhTkmoCeqyEY1CiHHO5/NRVlZGRXkZ7pYGfG2NYBjYrRamx4URaYGMwpXkzpDkJMRwOdF5UBHAHMxRfOUySVdMdoZhUFVVxc5dxdRUVRPta8VhNQsIJkfamZUQTkzmbKLyV+KMkmWKhBhOoc6DsgH/CtzKka49j1LqOeCbWmvfEKcLMSE1NDSwe/duaqoP0lJThc3vpstqITMhgtlJ4SSnpBE9bzWOxGljHaoQk1KoXXw/Ba4G1gPvYiao1ZjzoO4OfgkxKbS3t7N7927q6+sBcPq7sQeCz5kcFvKSY5i25AzCp8+VFceFGEGhJqj1wHVa61f7bNuklGoHnkYSlJgE3G43WmsqKw/Qd23kiKQ0cv0dRHhdTF+4nMzFp2N1hI1doEJMEaEmqGigbJDtFYA8FRYTWs9E2x279lBfU0tkTDRJibFYLBamT5+OUgpL+2nYIqKxR8ePdbhCTBmhJqhtwM2Yz6D6+ibw8bBGJMQoMQyD6upq9u7dS8OhelpqqrAHPHS52pk1ayYLC+cfqc8ULpVthRhtoSaofwbeUkqdDXwY3LYSyAEuGP6whBhZPQMgWpub8LXW4+hsw4kXuxUyHS6mJSZK8UAhxliow8w/UkotBm4ACjCXPvoz8JjWWirqigmjtbWVXUXFNNYfwuhoxtfRDIaB025hXmokTgOmL1pOcp6smyfEWAt5gTCtdQlwm1IqCfBrrVtGLiwhhld3dze7d++haG85rQ31xBrtRIVZsVlgenwY02OdRGbOJkqtwBYpLSchxoOQE5RS6i7gRiAt+L4KeFhr/fAIxSbEKfN6vZSWlrJv3z7aWlroOniA8IAXD5ATH8XspAiiktKJLjgdR0L6WIcrhOgj1Im6P8Xs3ruP/vWgfqSUcmitHxy5EIU4cX6/n/3791NaWorXay7EH+m0023xE2a3kBFhY2ZKAsmL1hA2bQ6WYLVbIcT4EWoL6jrgawPmQb2nlCoDHgNCTlBKqXhgJ3C31vq5UM8TIhQ9I/M+3VGMx+PC6TiydnFi+jRmx1qxtdSRedpKomefhsXmGMNohRBDCTVB2YGqQbaXATEneM8ngcwTPEeIIRmGQX19PTt3FVNeeYju1iYiwsPInJ5OVFQUc+fOJSMjg4CrEywWbOFRYx2yEOI4Qk1QDwKPK6W+orWuAlBKJQI/w1zuKCRKqa8BscCuEw1UiGM5fPgwe/bsoampie72NoymA0QFvFh8NlIzVrBs8XysVnNJIim3LsTEEWqC+jKQD1QEB0f4gBmAE1iplPpWz4Fa69TBLqCUmgn8GDgd+NupBC0EmGvm7d27l7q6OgyfB29LPZbudqLsASKxMCPOTk6Yqzc5CSEmlhMpWHjSgquh/ydwm9a6Til1KpcTU1x3dzdaa/aW7sNiBHC6W/B1NGMxDDJjnEzLiMRisZMyfxkRMxeOdbhCiJMU6kTd50/xPneZl9EvneJ1xBTmdrspKyujtKyCg/VteNpbiA60ER9hIzXazsz4cCIcVsIz84hUK+Q5kxATXMjzoE7RlcA0pdTlwfcxmM+0lmutbxqlGMQE5fP5qKiooLy8HJ/PR8DjwtpSRZTfQ4TNwuzYMLKSInHEpxFVsBpH/KC9zEKICWZUEpTWem7f90qpTzEn+T43GvcXE1PPXKaysjI8Hk/vdofTQVqUjXCvlWlx4aSnJhIzfzVh02bLfCYhJpHRakEJEbJAIEBVVRUlJSU0HW4nYBjERDoBiImJYe7cuUR15tJS9B6J+UuJzD0Ni13mMwkx2YxJgtJanzYW9xXjm2EYHDx4kJKSElrb2qlt7MTV1oLT4iN5fj4F+flkZmZisVgwjFQip83EFnGi0/CEEBPFMROUUuq3oV5Ea/2N4QlHTEWGYVBXV4fWmvb2dgAsPjfWlmri/C6SnBZiotPIyjpSk8lisUpyEmKSG6oF1fe33wl8DtiLWbzQAywGFgJ/GLHoxKRmGAYNDQ3s3buX1tZWc6Pfh7e1Hkt3GwWJVnydVhJjwphGFVA4pvEKIUbXMROU1vqKntdKqacxBzV8t+8xSqn7gLkDzxXieBobG9Fa09zcjMvjw+X2EW10YHQ0kxVtIyszGofVgssXSYJaROTsJWMdshBilIX6DOqfMFtMAz0PfDp84YjJrrm5mb1799LU1ETAgLqmDjpbDhPlbSE3LYKcaRE4bebKD87UHBLzV2GLihvjqIUQYyHUBFUHnAuUDti+Dqgc1ojEpNTS0oLWmvr6+t5tFiOAteUgWYFuEsMtRAZ8OG0R2KMTiSo4HWdy1hBXFEJMdqEmqH8BnlFKnQt8Algw60FdBFwx1IliamtpaaGkpIRDhw71226xWJiRk0N+uIuDpWVERzhITUsgev4qwqfnY7HI+nlCTHWhLnX0O6VUNbAB+Gpw807gTK31lpEKTkxcra2tlJSUUFdXB4Db46e920tKfASZmZnk5eURFRWFb2YW4a5mEvIWEjl7CVZH2BhHLoQYL0KeB6W1fhN4cwRjEZNAW1sbJSUl1NbW9m6rbeyg8/BhEiwu8s/4J2ZlZ/Tus8cmkXnhNVidEWMRrhBiHBtqHtQDoV5Ea3378IQjJqrBEhNAwNNNoquebHs7YVYL5R9/wqzsi/sdI8lJCDGYoVpQy0K8hjEcgYiJ6ViJyfB5STA6yLK145xmp6zaQlS4g4yoJgwjIM+YhBDHNdQ8qHN6Xiulvgr8VWvdOCpRiXFv4DMmgC6Xj5a2LuanOsi0NhPlALABMHt6EnF5pxE5e7EkJyFESEJ9BvUrYCUgCWqKO9aovKpDbVi6u8k2mkjrDicq+shgh7CM2SSqFdgiZWkiIUToQk1QW4DPAz8bwVjEOHb48GFKSkr6zWPqkZGRQWpnHd2uerBAw+Fu4qLCcCSkEZW/CkdC+hhELISY6EJNUAHgX5VSPwL2Ad19d2qtlw93YGJ8aGpqoqSkhMbG/o1ni8VCRkYGc+bMITY2lpYY2PWP14iJcJKemUbs/NNxpudKfSYhxEk7kRaUzHeaIgzDoLGxkdLSUpqamnq3BwIGja0uvH4HX7rsHBIT4nv3xc0+jbl1FUTNUERkz8ditY1F6EKISSTUibr39rxWSsUCVq11y4hFJcaEYRgcOnSI0tJSWlr6//VaLBbqWwLEu9pJ9h5i//6CfgnKYrOTfOYV0mISQgybkCfqKqVuBH4ITAu+rwf+XWstz6UmOMMwqKmpoaysjLa2tn77LBYLmempZFrbaekspiZYr6ljzxaM0/L6JSRJTkKI4RRSglJK3QbcBfwUeBdzLb7VwA+UUt1a638fuRDFSAkEAlRXV1NWVkZnZ2e/fV6fweycTDKsHVhqd2AE/MRHO2nrcBAXHUZqbjIE/GAbk6LMQogpINRPl5uB/6e1/q8+295TSlUC9wGSoCYQn8/HgQMHqKiooLu733gXuj0B2t1hxLgPk1LzCVj8vTOxLRaYXZBHZN5ynEnTRj9wIcSUEmqCSsGspDvQx4DURJggvF4v+/fvp6KiAo/H02+fw+EgOzub/Tt2k3x4D1bDT31jGNNSogGwxyYTlbccR8p06coTQoyKUBNUEWZZjX8bsP3LmGXgxTjmcrmoqKigsrISn8/Xb19YWBi5ubnk5ORgt9sJP1hMZaMfiwVsNiu26ASi8pbhTJspiUkIMapCTVB3A39RSq0CPghuWwVcAFw+EoGJU9fZ2Ul5eTlVVVUEAoF++2yOMCKikzlz1UJstiNDwjMXr8bdUEV8ahrx+csJy8iVpYmEEGMi1GHmrymlzgNuwawH1Q3sAZZprXeMYHziJLS0tFBWVkZdXR2G0X8t3+joaLo9DjzV5dg9RTTl55GaFN2735mYQe5nrsCRlCktJiHEmBqq3MYFwGatdSeA1vod4J3RCkycGMMwaGhooLy8/KhVHwASEhLISUsgpq2ash0f0d5tPoPa+f6HrP3c2n7HSql1IcR4MFQL6i+ATyn1EfCP4Nf7Wmv3qEQmQhIIBKipqaG8vPyoOUwAKSkpZCdEEN5Uga+0CA+QlhhJe5eHiDA7GQmeoy8qhBDjwFAJKhlzrtMqYA3wHcCqlPqQIwlri9baP+JRiqMMNVTcYrGQnpaGtasTf/mn2OPB16e3LsxpY3bhfFLnL8eZmIEQQoxHQ9WDOgy8EvxCKWUDFmMmrFXAN4BkpdRmrfXFx7qOGF4ul4t9+/ZRWVmJ1+vtt89mszFjxgyyEmMofvV/8LrMxNXujCEmygkWC+HT5hAxcyH22KSxCF8IIUIW8jIAWmu/UqoaqAXqgQNAKpA7QrGJPtra2qioqODgwYNHjcgLCwsjJyeHnJwcnE4nhs9LbKSDpmCCamz3kbZgOeHZ87FFRA92eSGEGHeGTFBKqWjgbGAt8BlgLlAFvAk8A3xFa10zwjFOWT2ripeXl9PQ0DBgH/ix4/AHiExKJy8vr3efxe4gfd4imrZ+THzeaeQvX05YRMRohy+EEKdkqFF8m4HlwGHgLczljP6htS472ZsppdYB/wrMxGyFPaC1fupkrzdZ+f3+3oEP7cHFWftKiIshNuCmrngXTsNNa0s9/pULsFmPPGhKnreCMxeswiplL4QQE9RQLajVQDXwW8wBER9orb1DHD8kpVQG8CLwea31X5VSizHX89umtf7kZK/7/9u79+i4quuAw7/RSDMjybJelixZWLYF9sYGDMG8kialiUvSEBMoAdIGSCC8ktK0ISXpAodAEgivlgWlJSSE0lBKWSQUtzgpjwWF8GizeAQHYtgBrNHoYVvGYHs0kmakmekf58oej21hyZLmjrS/tbQs3TP3ztmembvnnHvuOdNJMpmko6ODaDRKMukGSw6nM/T1D1FTFWFuzSyaS/sp3/4W2XSaeMkQQ2moSGyku2szra27Vq4NlJZhdzEZY4rZaAmqDde1txL4KlApIs8BT+IS1iuqmh1l/92o6kYRaVDVuIiUAPXAMLBnE2GGicfjbNiwga6urt2uL3X19hHvH6IqGOD4miS18S4AN3lrAGpnRxguCVF7yBE0N84uTOWNMWaSjDaKLwr8xPtBRI4EPoFLWFcBQyLyNPCkqt6xP0/mJacKYLv33Deq6lsHEkCxymaz9Pb20t7evsf1JYBIJMJB5X2EBjcRzgyR3BqB+sqd5aXVDbQdeQTh5oNt9VpjzLQ0llF864B1InIbsAI4Hzft0WnAfiUozyBQCSwHfikib6nq3WPYv6gNDw/T1dVFe3s7fX19ACQGhshmYVZFGTU1NbS1tdHc3Ez3s4/wzntDVIRLiYRKCZQECTW1Ub7gMEpr5tpURMaYae0DE5SIHAQcD5zg/Xs0rmvuBdxaUE+P5QlVNQOkgJdE5MfAqbgRgdNaf38/7e3txGKxnTOKJ1NpunrjpJJD1FZV8Mk/PpG6urqdiadx6Yco2dZFpGo25a3LiMxfSkm4opBhGGPMlBltFN9DuITUjLtO9DzwCHA58PJYZ5AQkROBW1R1Rc7mMLBtrJUuFtlslq1bt9Le3s7mzZv3mLg1TIr69A7mlmwjOFhGIlVCfU6rKNQwn4YPr/LWYLIZxY0xM8toLagwcCuuhfSK1/I5EK8CLSLyDdyQ9eOBC4A/PcDj+s5IN140Gt05TLxvYIhIKEiQDJH0AE0lCRrCw7w7e5D341BTFaQi0QPU7jxOIBAg1LigQOd/Tl4AAA02SURBVFEYY0xhjTZIYtVEPpGqbheRk4F/AK7G3fB7oao+M5HPU0iJRIJoNEpnZ+fOaYh2JFL0vpcgk0zQVh1gSfUwdZGg140XYE5tOQ11FUTqm6motpF4xhgzYr8HSUwE736nj07lc062kdF40WiU3t7ePcpLBncwd3Azc0qHqUwGqYvUMtKLFygLU7VwCZH5SymtqpvimhtjjL9NaYKaTlKpFJ2dnUSjUfr7+0lnsiQGhphdGQKgsrKSRYsWUZeJ89vH15LNljB7VohMNkukvoXI/EMJNy0iECwrcCTGGONPlqDGIJvNsn37dqLRKD09PaTTbpxId2+c/h07KE0P0HLccSw7dDENDQ0EAgEyQ0kWND9PpKKcytalROYfSrCyusCRGGOM/1mC2g/pdJru7m46OjrYtm3XoMPsUJJ0YjvlO7ZQnxmiJhSgIlRFY2PjzseUlIWZ9/EzCFbV2Q21xhgzBpagRhGPx4nFYnR2dpJMptiRSBEkTTkDZBLbqQgMsbAqRHlLOd29aSLhILWDXbh7kHcprW4oTADGGFPELEHlyWQybNy4kY6ODrZu3QpAX3+SzT2bKRtOUBFIMb+xknlzQlSFQgQCAbJZiCyaRW3bUiItUuAIjDFmerAE5UkkEsRiMWKxGKlUareyUGoH1UNbqS4NUF0WoK06RKgs6KYemruISMsSyhoOsptpjTFmAs3oBJXJZNi0aRMdHR20x3qIJ1L09/WxsLWR0mAJgUCApqYm5h91OLHHHmQ4k6WmKkJ4zkHMWiCEmtooKQ0VOgxjjJmWZmSC6uvrIxaL0dXVRTKZJJMaJL55I9mBOJXZNIODtaw4ejmtra1EIhEAwsccS2h2PeF5hxCMVH7AMxhjjDlQMyZBDQ0Ns16jrP/922RSCarCkE5sJ92/nezwEJWZNIFghurSEqoqyndbQh2g5qhPFKjmxhgzM82IBBWPx1n76P8Q69lCaLif2SWDhMJu4tZwMEBzTZg5kSCJ/hTVNdXULZ1X4BobY4yZEQmqu7ub0sH3qBnoIUCWTADqayqZVxWirryUkrIQ4aY2WuYtpqx+ng12MMYYH5gRCaqlpYWuDfWktnTRUF7G/NoI9bPLicxdQHjeEkKNrQSCM+K/whhjisaMOCtXVVWx8tOreL8iTkm4gnDLYsJNB1MSihS6asYYY/ZhRiQocGsr1X70TAKlNjmrMcYUgxl1scWSkzHGFI8ZlaCMMcYUD0tQxhhjfMkSlDHGGF+yBGWMMcaXLEEZY4zxpWIZZh4E2LRpU6HrYYwxZhxyzt/7vbR4sSSoZoCzzz670PUwxhhzYJqBd/bngcWSoF4EPgZsBNIFrosxxpixC+KS04v7u0Mgm81OXnWMMcaYcbJBEsYYY3zJEpQxxhhfsgRljDHGlyxBGWOM8SVLUMYYY3zJEpQxxhhfsgRljDHGlyxBGWOM8aVimUlin0TkOGCtqjZ6fzcAtwGfApLAPwNXq2raK78XOAsYzjnMclXdICKtwN3ACUAv8DVV/aWPY/mIV74U6AGuVNWfe2UFi2UscYjIncA5eYeoBFar6g+K8DU5H/g2MAd4E/gbVX3OKyu2WL4GXAbUAy8Al6rqhkLGIiInATcAi73nvVlVfyQiNcBPgJOAPuDbqnqPt08A+D5wMRAC7gG+qarDXvlZwA9wsxw8A5ynqr1+jCVn3xLgIeAZVb01Z/vHca/pwcA64FxV3a9phfyoaFtQIhIQkQuBx3FvuhE/BRpxJ+3DgeOA7+WUHw2cpqqzcn42eGUPAL/FfSAvAh4QkbZJDmVcsYhIM/AL4B+BKuBS4D7vxFGQWMYTh6p+Jfe1AL4JrPfiKkgc441FRJYDtwCnAjXAfcAa72RSbLGcBVwHnO/V97+AJ0QkUqhYRGQ+7qR8Le7/98+B60XkU8APcdOgNQOfAW4QkRO9XS8GTsd99hcDxwJXesdchku053mxvOXFNqkOIBZEZCHwCHBa3jHnAGuA73rHfBh4LOf9V3SKtuK4F+GruBcYABGpAP4EuExVe1X1PeAq4CLvQ1oOHAq8mn8wEVkCHAN8R1VTqvoU7kN5weSHMvZYgC8Cv1LVn6pqVlWfwJ1g3i9gLOOJg5zHHgzcBHxBVXcU4WuymF2fqQDuJDPg7VtssXwOuEtVn1HVYVX9IZACVhYwloXA/ar6sKpmVPVF4GlgJXAGcJWq9qvqq8BduMQE8CXgVlXtUtUtwDXAJV7ZOcAjqvqcqg4CVwB/ICKL/RiLiMwCXsa1jl7IO+bpwO9U9SFVHVLVm4Gwd8yiVMwJ6k5VXQG8lLNtJJ5EzrY00ID7RnEUrmvvLhHZIiKviMgq73HLgJiq5u77JnDEpNR+d+OJZQUQFZEHRORdEfkN0KSqcQoXy3jiyPX3uJPiOu/vYntNHgNeB17DncxvBD6vqhmKL5aSvLKR8iUUKBZVfVZVvzLyt4jUsWsS6Syu9bO3+izDtcpzy+Z5++9Wpqr9QCf+jWUQWKqqVwJDeYfNjxNAmZr32KQo2gSlqj172daH68a4SUTqRKQe+I5XXI7rCnsW941yHq4L40ERORKYBfTnHbIfqJicCHar93hiqcN1rdyH6wq4HnjYa4UUJJZxxgGAiByO63O/MWf3YntNIrgTwgm462h/i+via6L4YnkIuFhEjhGRMhG5CNf7UE4BYxkhItW4VtuvcS2KQVXNnfk6tz759R35vWIvZfn7TrqxxOK1Zvd1fazgsUy0ok1QozgX9+31DdwFzzXe9m2q+riqnqSqL3lN4IeAp4DP4r4tlucdqwJ3kbJQ9hkL7qL2o6q61ovlQeAV4NP4L5bR4hjxZWCNqm7O2ea3OGD0WK4BNqnqr1U1qap3AFHgTIosFlV9APel5wFci+Jw4AngfQoci9fF+H/AZlx3WByI5HUZ59Ynv74jJ+y+vZTl7zupxhHLaPz4Hjsg0zFBNQOXqOpcVT0c6AbeUNV+ETlFRL6U9/gQrtm8Hmj1rlONOJQ9m8xTaZ+x4Jr9tXmPHxmV6bdYRotjxKnseXHab3HA6LHMx/X55xrGdcUUVSzeIJxHVPUQVW0CvoFLUi9TwFhE5A9xLY01wBnedaO3cNf8Fu2jPusBySvbqKrb8su8a3Ot+DeW0eTHOZZ9fanoh5nvxS3A6yJyOe6NdiO7RoQFgdtE5A3cB+3zwEeAC1U1JiLrgOtE5Apv+6nAh6c6gByjxXIv8Jcicg5wP+5b+nLgLFXt9Fkso8UxMty5DXg+dydVVZ/FAaPHshbXZfYgblG2s4HDgF/48DWB0WNZCVwtIh8DduC6/3qAF1U1W4hYvO7rtbhbEG4f2a6qfSLyMG4U3AW4IdYX4UbmAfwrcLmIPIlrZVzjbQP32XlORP4I+F9cq/E3qvp7n8Yymodx77+zvN//GsjgBl8UpemYoC7CjXp5D9ftcrvX1YKqrhGR1cC/A024VsgqVY15+34O+DHunoR3gQtU9fUprn+u0WJZJyIn404qdwAx4HRV7fT29VMs+4zDsxBIeiPJ8vkpDhj9NbnLu55wP+4+qPXAyT59TWD01+XfcBfX1+F6GZ4EPptzbaQQsVyKu458vYhcn7P9n3Cj8u4AOnA9Itep6n975XcCc3Gj3iqAn+Fdb1PV10Tky95jWnAtmjMnOQ4Yfyz7pKq9InIK7j6ou4HfAaeoamqiKz9VbEVdY4wxvjQdr0EZY4yZBixBGWOM8SVLUMYYY3zJEpQxxhhfsgRljDHGlyxBGWOM8SVLUMZMIG/y3i3e5J/5ZatFpM9bLsEY8wEsQRkzsb6OuwE+9+ZLRGQRsBo3c0C0APUypuhYgjJmAqnqJtyaQheKyPE5Rbfj1iG7fa87GmP2YDNJGDPBvJmon8dNEXQsbrb8B4EPqep67zHn41Z1bcHNJr5aVR/1ykpxS5R/AbcszFbc9FyXq2paRO7DzbG2FDdX2+mq+vSUBWjMFLEWlDETzJuv7mLc5L3nA38HXJuTnD6Dm6h1tfeYu3FreR3nHeIK3BLg5+JW6b0C+CtgVc7TnIObc20lbrkGY6ad6ThZrDEFp6qvi8gtwI9wLaQbcoqvBG7w1vACeFtEjsEtafFnuBV5z1PVX3nl94jIt3Arpv6nt229qt432XEYU0iWoIyZPN/Frar7fVXNXZ57GbBCRK7K2VaGt26PN+v+ShG5GbfE+nLcjO/BnMe/M5kVN8YPrIvPmEmiqgPerwN5RaXAN4Gjcn4Ow62phIhci1sSosT795NA/lIW+cc0ZtqxFpQxU+9NYIGqvj2ywWtNDQI3A38BfF1V7/XKynELCgb2cixjpi1LUMZMvZuAe0VEgaeAk4CrcdefwC0guEpEXgCqcV2Fs9lzOXljpjXr4jNmiqnqz4DLgG/hrjtdBlyiqj/3HvJF3Oi914D/AN4G/gVYMeWVNaaA7D4oY4wxvmQtKGOMMb5kCcoYY4wvWYIyxhjjS5agjDHG+JIlKGOMMb5kCcoYY4wvWYIyxhjjS5agjDHG+NL/Ayaqs/yaqgOLAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -321,7 +321,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": { "scrolled": false }, @@ -335,7 +335,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -360,7 +360,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -369,7 +369,7 @@ "13.856665141368708" ] }, - "execution_count": 11, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -380,7 +380,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -389,7 +389,7 @@ "13.88888888888889" ] }, - "execution_count": 12, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -407,19 +407,56 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "t_0 = get_first_label(census)\n", - "t_end = get_last_label(census)\n", - "p_0 = get_first_value(census)\n", - "\n", - "system = System(t_0=t_0, \n", - " t_end=2250,\n", - " p_0=p_0,\n", + "def plot_results(census, un, timeseries, title):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " census: TimeSeries of population estimates\n", + " un: TimeSeries of population estimates\n", + " timeseries: TimeSeries of simulation results\n", + " title: string\n", + " \"\"\"\n", + " plot(census, ':', label='US Census')\n", + " plot(un, '--', label='UN DESA')\n", + " plot(timeseries, color='gray', label='model')\n", + " \n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for i in range(1, 21):\n", + " system_i = System(t_0=get_first_label(census), \n", + " t_end=2300,\n", + " p_0=i,\n", " alpha=0.025,\n", - " beta=-0.0018)" + " beta=-0.0018)\n", + " results = run_simulation(system_i, update_func_quad)\n", + " plot(results, '--')\n", + " \n", + "plot(census, ':', label='US Census')\n", + "plot(un, '--', label='UN DESA')\n", + "decorate(xlabel='Year', ylabel='World population (billion)', title=\"Projection\")\n" ] }, { @@ -438,9 +475,107 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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)[28]Population Reference Bureau (1973-2015)[15]United Nations Department of Economic and Social Affairs (2015)[16]
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)[28] \\\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)[15] \\\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)[16] \n", + "Year \n", + "2016 7.432663e+09 \n", + "2017 NaN \n", + "2018 NaN \n", + "2019 NaN \n", + "2020 7.758157e+09 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "table3 = tables[3]\n", "table3.head()" @@ -455,10 +590,8 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": { - "collapsed": true - }, + "execution_count": 38, + "metadata": {}, "outputs": [], "source": [ "table3.columns = ['census', 'prb', 'un']" @@ -473,10 +606,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": true - }, + "execution_count": 39, + "metadata": {}, "outputs": [], "source": [ "def plot_projections(table):\n", @@ -500,9 +631,72 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 40, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2100.000000
p_02.557629
alpha0.025000
beta-0.001800
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2100.000000\n", + "p_0 2.557629\n", + "alpha 0.025000\n", + "beta -0.001800\n", + "dtype: float64" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system = System(t_0=t_0, \n", " t_end=2100,\n", @@ -513,9 +707,27 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 41, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap04-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation(system, update_func_quad)\n", "\n", @@ -697,7 +909,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.5" } }, "nbformat": 4, diff --git a/code/figs/chap04-fig01.pdf b/code/figs/chap04-fig01.pdf index 10712e2fa4a16257f452278749e0971f9cd44b24..ad631b9ed880d0eaa2156858dd7758e031532241 100644 GIT binary patch delta 4362 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 delta 5154 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 d(P18->ReF>7u2CTf$~Ct;DU)sMokveJ literal 0 HcmV?d00001 From 24743990b79906e0a68717f10a6706304b0a720c Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Sun, 23 Sep 2018 18:04:27 -0400 Subject: [PATCH 18/61] dupes sympy file --- code/chap09sympy-mine.ipynb | 632 ++++++++++++++++++++++++++++++++++++ 1 file changed, 632 insertions(+) create mode 100644 code/chap09sympy-mine.ipynb diff --git a/code/chap09sympy-mine.ipynb b/code/chap09sympy-mine.ipynb new file mode 100644 index 00000000..5289f4a2 --- /dev/null +++ b/code/chap09sympy-mine.ipynb @@ -0,0 +1,632 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 9\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": {}, + "outputs": [], + "source": [ + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import everything from SymPy.\n", + "from sympy import *\n", + "\n", + "# Set up Jupyter notebook to display math.\n", + "init_printing() " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following displays SymPy expressions and provides the option of showing results in LaTeX format." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from sympy.printing import latex\n", + "\n", + "def show(expr, show_latex=False):\n", + " \"\"\"Display a SymPy expression.\n", + " \n", + " expr: SymPy expression\n", + " show_latex: boolean\n", + " \"\"\"\n", + " if show_latex:\n", + " print(latex(expr))\n", + " return expr" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Analysis with SymPy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a symbol for time." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "t = symbols('t')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you combine symbols and numbers, you get symbolic expressions." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "expr = t + 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is an `Add` object, which just represents the sum without trying to compute it." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "type(expr)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`subs` can be used to replace a symbol with a number, which allows the addition to proceed." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "expr.subs(t, 2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`f` is a special class of symbol that represents a function." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "f = Function('f')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The type of `f` is `UndefinedFunction`" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "type(f)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "SymPy understands that `f(t)` means `f` evaluated at `t`, but it doesn't try to evaluate it yet." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "f(t)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`diff` returns a `Derivative` object that represents the time derivative of `f`" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "dfdt = diff(f(t), t)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "type(dfdt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need a symbol for `alpha`" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "alpha = symbols('alpha')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can write the differential equation for proportional growth." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "eq1 = Eq(dfdt, alpha*f(t))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And use `dsolve` to solve it. The result is the general solution." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "solution_eq = dsolve(eq1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can tell it's a general solution because it contains an unspecified constant, `C1`.\n", + "\n", + "In this example, finding the particular solution is easy: we just replace `C1` with `p_0`" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "C1, p_0 = symbols('C1 p_0')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "particular = solution_eq.subs(C1, p_0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the next example, we have to work a little harder to find the particular solution." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Solving the quadratic growth equation \n", + "\n", + "We'll use the (r, K) parameterization, so we'll need two more symbols:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "r, K = symbols('r K')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can write the differential equation." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "eq2 = Eq(diff(f(t), t), r * f(t) * (1 - f(t)/K))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And solve it." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "solution_eq = dsolve(eq2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result, `solution_eq`, contains `rhs`, which is the right-hand side of the solution." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "general = solution_eq.rhs" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can evaluate the right-hand side at $t=0$" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "at_0 = general.subs(t, 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we want to find the value of `C1` that makes `f(0) = p_0`.\n", + "\n", + "So we'll create the equation `at_0 = p_0` and solve for `C1`. Because this is just an algebraic identity, not a differential equation, we use `solve`, not `dsolve`.\n", + "\n", + "The result from `solve` is a list of solutions. In this case, [we have reason to expect only one solution](https://en.wikipedia.org/wiki/Picard%E2%80%93Lindel%C3%B6f_theorem), but we still get a list, so we have to use the bracket operator, `[0]`, to select the first one." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "solutions = solve(Eq(at_0, p_0), C1)\n", + "type(solutions), len(solutions)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "value_of_C1 = solutions[0]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now in the general solution, we want to replace `C1` with the value of `C1` we just figured out." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "particular = general.subs(C1, value_of_C1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is complicated, but SymPy provides a method that tries to simplify it." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "particular = simplify(particular)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Often simplicity is in the eye of the beholder, but that's about as simple as this expression gets.\n", + "\n", + "Just to double-check, we can evaluate it at `t=0` and confirm that we get `p_0`" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "particular.subs(t, 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This solution is called the [logistic function](https://en.wikipedia.org/wiki/Population_growth#Logistic_equation).\n", + "\n", + "In some places you'll see it written in a different form:\n", + "\n", + "$f(t) = \\frac{K}{1 + A e^{-rt}}$\n", + "\n", + "where $A = (K - p_0) / p_0$.\n", + "\n", + "We can use SymPy to confirm that these two forms are equivalent. First we represent the alternative version of the logistic function:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "A = (K - p_0) / p_0" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "logistic = K / (1 + A * exp(-r*t))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To see whether two expressions are equivalent, we can check whether their difference simplifies to 0." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "simplify(particular - logistic)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This test only works one way: if SymPy says the difference reduces to 0, the expressions are definitely equivalent (and not just numerically close).\n", + "\n", + "But if SymPy can't find a way to simplify the result to 0, that doesn't necessarily mean there isn't one. Testing whether two expressions are equivalent is a surprisingly hard problem; in fact, there is no algorithm that can solve it in general." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercises\n", + "\n", + "**Exercise:** Solve the quadratic growth equation using the alternative parameterization\n", + "\n", + "$\\frac{df(t)}{dt} = \\alpha f(t) + \\beta f^2(t) $" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Use [WolframAlpha](https://www.wolframalpha.com/) to solve the quadratic growth model, using either or both forms of parameterization:\n", + "\n", + " df(t) / dt = alpha f(t) + beta f(t)^2\n", + "\n", + "or\n", + "\n", + " df(t) / dt = r f(t) (1 - f(t)/K)\n", + "\n", + "Find the general solution and also the particular solution where `f(0) = p_0`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 4296fc6a234c6e5237abbaf1c403a3f163880039 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 24 Sep 2018 15:53:23 -0400 Subject: [PATCH 19/61] updates --- code/chap09sympy-mine.ipynb | 127 +++++++++++++++++++++++++++++++----- 1 file changed, 109 insertions(+), 18 deletions(-) diff --git a/code/chap09sympy-mine.ipynb b/code/chap09sympy-mine.ipynb index 5289f4a2..de26a531 100644 --- a/code/chap09sympy-mine.ipynb +++ b/code/chap09sympy-mine.ipynb @@ -38,10 +38,8 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, + "execution_count": 4, + "metadata": {}, "outputs": [], "source": [ "from sympy.printing import latex\n", @@ -73,9 +71,24 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAcAAAANBAMAAACX52mGAAAALVBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAEN0iVJnNiUSru3YyZmh4TpEAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABBSURBVAgdY2BgVGZgYGB5CCRYE4AEUwEDQ+e6lRsYGPyAPIYwEKEOxIwvgATHAwYBBvYElgMMrBOkGRiY115gAAAqOAp4YMdHJwAAAABJRU5ErkJggg==\n", + "text/latex": [ + "$$t$$" + ], + "text/plain": [ + "t" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t = symbols('t')" ] @@ -89,9 +102,24 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAACoAAAAQBAMAAACSDPCjAAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEN0iVJnNiUSru3YyZu9l18v4AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAfklEQVQYGWNgwA4YldHEWR4CBVg+QkRZNkBoyUiQAGsCqigDN0iUqQCLaOf6lRCtMBMgav0hShlQRcOwiqqDRNnT0pKepaVNALFBtjH+ALGAAMUEjg8MApii7AksBzBFWSdIgwVRTWBeewFVlHXet7kQERAJtw0hBGQxGiC4AJR2JRh3Dfv5AAAAAElFTkSuQmCC\n", + "text/latex": [ + "$$t + 1$$" + ], + "text/plain": [ + "t + 1" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "expr = t + 1" ] @@ -105,9 +133,20 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "sympy.core.add.Add" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(expr)" ] @@ -121,9 +160,24 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOBAMAAADkjZCYAAAAKlBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADmU0mKAAAADXRSTlMAIom7VJlmdt1E7xDNIS4hGwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAFJJREFUCB1jYBBSMmFgYAxg8E1gYL/CwNvAwLmSYe8BBiAAijAwcDcBCUaNaCDJwKA1AURyrWZgFGBgBiq+DSK5DBg4LjKwJTD4FjAwTA21ZAAAM4UOK1ZklQ8AAAAASUVORK5CYII=\n", + "text/latex": [ + "$$3$$" + ], + "text/plain": [ + "3" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "expr.subs(t, 2)" ] @@ -137,9 +191,20 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "f" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "f = Function('f')" ] @@ -153,9 +218,20 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "sympy.core.function.UndefinedFunction" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(f)" ] @@ -169,9 +245,24 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAACAAAAAUBAMAAAAevyJ8AAAAMFBMVEX///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEJl2IquJVETdZu8yu83OyatpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA70lEQVQYGTWQMWsCQRCF30W5nAY1pPIavSKxDJJfcHUgpDDYiCB2NmJjIQTO1kqLxE4Q06UIAf9A/kEskj6lhYV2NoF8O1wW3rw3b5jZnZXSc+s4H1t2cRMruzH5YLGZDFSkFsaqOMM7lqUVIjmXX4dP94QncE3xHfZnUhZoDrZMbj1HykQK2r8NqYtZqkuFZdr6hnH/IeUG0skPyQgk4GyM2UF8gh5wRhWY8Q27lqk8aUKyBm5oX48SQ70jhh9JVx7X1aTggBHMpLtXxI7iBranQ7x4WFw6wy3HYblFaKoQG7H+y6Wp9IO+LLHw/4V/hfArzA7LVpkAAAAASUVORK5CYII=\n", + "text/latex": [ + "$$f{\\left (t \\right )}$$" + ], + "text/plain": [ + "f(t)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "f(t)" ] From ddb692cd2a5a12e93489203e6e397cce4cafbebb Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 24 Sep 2018 16:18:45 -0400 Subject: [PATCH 20/61] adds allendowney world_pop_transition code --- ...p_transition_from_allendowney_github.ipynb | 233 ++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 code/world_pop_transition_from_allendowney_github.ipynb diff --git a/code/world_pop_transition_from_allendowney_github.ipynb b/code/world_pop_transition_from_allendowney_github.ipynb new file mode 100644 index 00000000..2c57f798 --- /dev/null +++ b/code/world_pop_transition_from_allendowney_github.ipynb @@ -0,0 +1,233 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Project 1 example\n", + "\n", + "Copyright 2018 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim library\n", + "from modsim import *" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import read_html\n", + "\n", + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')\n", + "table2 = tables[2]\n", + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_results(census, un, timeseries, title):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " census: TimeSeries of population estimates\n", + " un: TimeSeries of population estimates\n", + " timeseries: TimeSeries of simulation results\n", + " title: string\n", + " \"\"\"\n", + " plot(census, ':', label='US Census')\n", + " plot(un, '--', label='UN DESA')\n", + " if len(timeseries):\n", + " plot(timeseries, color='gray', label='model')\n", + " \n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "un = table2.un / 1e9\n", + "census = table2.census / 1e9\n", + "empty = TimeSeries()\n", + "plot_results(census, un, empty, 'World population estimates')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "half = get_first_value(census) / 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "init = State(young=half, old=half)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "system = System(birth_rate1 = 1/18,\n", + " mature_rate = 1/40,\n", + " death_rate = 1/40,\n", + " t_0 = 1950,\n", + " t_end = 2016,\n", + " init=init)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func1(state, t, system):\n", + " births = system.birth_rate1 * state.young\n", + " \n", + " maturings = system.mature_rate * state.young\n", + " deaths = system.death_rate * state.old\n", + " \n", + " young = state.young + births - maturings\n", + " old = state.old + maturings - deaths\n", + " \n", + " return State(young=young, old=old)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "state = update_func1(init, system.t_0, system)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "state = update_func1(state, system.t_0, system)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " init: initial State object\n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " \n", + " state = system.init\n", + " results[system.t_0] = state.young + state.old\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " state = update_func(state, t, system)\n", + " results[t+1] = state.young + state.old\n", + " \n", + " return results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "results = run_simulation(system, update_func1);" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plot_results(census, un, results, 'World population estimates')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 15d239acf510604e9fa3d624199ade2fb668b0f8 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 24 Sep 2018 16:25:22 -0400 Subject: [PATCH 21/61] runs code; no changes to updatefunc1 yet --- ...p_transition_from_allendowney_github.ipynb | 291 ++++++++++++++++-- 1 file changed, 270 insertions(+), 21 deletions(-) diff --git a/code/world_pop_transition_from_allendowney_github.ipynb b/code/world_pop_transition_from_allendowney_github.ipynb index 2c57f798..5abb5194 100644 --- a/code/world_pop_transition_from_allendowney_github.ipynb +++ b/code/world_pop_transition_from_allendowney_github.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -31,7 +31,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -47,7 +47,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -71,9 +71,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "un = table2.un / 1e9\n", "census = table2.census / 1e9\n", @@ -83,27 +94,158 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "1.278814327" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "half = get_first_value(census) / 2" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "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", + "
values
young1.278814
old1.278814
\n", + "
" + ], + "text/plain": [ + "young 1.278814\n", + "old 1.278814\n", + "dtype: float64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "init = State(young=half, old=half)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
birth_rate10.0555556
mature_rate0.025
death_rate0.025
t_01950
t_end2016
inityoung 1.278814\n", + "old 1.278814\n", + "dtype: flo...
\n", + "
" + ], + "text/plain": [ + "birth_rate1 0.0555556\n", + "mature_rate 0.025\n", + "death_rate 0.025\n", + "t_0 1950\n", + "t_end 2016\n", + "init young 1.278814\n", + "old 1.278814\n", + "dtype: flo...\n", + "dtype: object" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system = System(birth_rate1 = 1/18,\n", " mature_rate = 1/40,\n", @@ -115,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -133,25 +275,121 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "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", + "
values
young1.317889
old1.278814
\n", + "
" + ], + "text/plain": [ + "young 1.317889\n", + "old 1.278814\n", + "dtype: float64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "state = update_func1(init, system.t_0, system)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "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", + "
values
young1.358158
old1.279791
\n", + "
" + ], + "text/plain": [ + "young 1.358158\n", + "old 1.279791\n", + "dtype: float64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "state = update_func1(state, system.t_0, system)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -178,7 +416,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -187,9 +425,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot_results(census, un, results, 'World population estimates')" ] @@ -225,7 +474,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.5" } }, "nbformat": 4, From a2123bc1f9f35b86a71e4010cfa44bb11c92e994 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 24 Sep 2018 16:30:43 -0400 Subject: [PATCH 22/61] adds birthrate change at 1970 --- ...p_transition_from_allendowney_github.ipynb | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/code/world_pop_transition_from_allendowney_github.ipynb b/code/world_pop_transition_from_allendowney_github.ipynb index 5abb5194..d06d2c61 100644 --- a/code/world_pop_transition_from_allendowney_github.ipynb +++ b/code/world_pop_transition_from_allendowney_github.ipynb @@ -171,7 +171,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -204,6 +204,10 @@ " 0.0555556\n", " \n", " \n", + " birth_rate2\n", + " 0.0384615\n", + " \n", + " \n", " mature_rate\n", " 0.025\n", " \n", @@ -231,6 +235,7 @@ ], "text/plain": [ "birth_rate1 0.0555556\n", + "birth_rate2 0.0384615\n", "mature_rate 0.025\n", "death_rate 0.025\n", "t_0 1950\n", @@ -241,13 +246,14 @@ "dtype: object" ] }, - "execution_count": 7, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "system = System(birth_rate1 = 1/18,\n", + " birth_rate2 = 1/26,\n", " mature_rate = 1/40,\n", " death_rate = 1/40,\n", " t_0 = 1950,\n", @@ -257,12 +263,15 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def update_func1(state, t, system):\n", - " births = system.birth_rate1 * state.young\n", + " if t < 1970:\n", + " births = system.birth_rate1 * state.young\n", + " else:\n", + " births = system.birth_rate2 * state.young\n", " \n", " maturings = system.mature_rate * state.young\n", " deaths = system.death_rate * state.old\n", @@ -416,7 +425,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -425,12 +434,12 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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lVto7jHXY2vt7KO2qYcoQtm45xDXrsn16YLzJzn19/eze/du6uuHh6PabDbmz59PWlraKevSO9KMT1DbDu1hR22hX8fmxeWwKuNsn20bKrdQ0rj/mOcsSc5nWcrCE4pxpBUrVuB0OvnJT37CD37wg3Gfv3LlSi6++GL+7//+z69E0tjYSGxsLE6nE4fDQUJCAj//+c+HZlgHc2LYtLS0oUR32223nZIHokKIYQNuJ9sO7WFvg4YRpd6zo+Owt0QTaITT0NpHY2sv8TEhfl+3oaGBXbt2+UzyGhERwZIlS6bdMjozPkHNNBaLhZ/85CdcddVVnH/++Vx44YXjvkZeXh7vv//+0Ovf/e53vP766z7HPProoyiluP3227njjjs455xzKCgoYMmSJVx22WWkpg4vMfLHP/6Rq6++mvz8fOLi4njllVeGlvAQQpx8VW01fFi1le6BnqFtNquNpckLWZiQxybrYVra+1iRn0xctH+/TLrdbvbt20dFRYXP9pM9tmk8JEFNorEWLBwUHx/Pww8/zL333ntUYvHXyLWejtfFl5eXx1tvvUVRURFbt25l48aNPP300zz11FOsWbOGoqIiSkpKhmYnv/rqq/nDH/7A5z73uWnTzBfiTLL54A721O1jwOWhrqmLqIgg5iamcX768qGiiBX5yeNa3bajo4MdO3b4FEIEBgayePHi466mfarN+AS1LGXhCXXBrco4+6huv4kaa8HCkdasWcOll17K3Xffjd0+vm/D3r17fYosjsXlcvHggw/yrW99iwULFrBgwQK+9KUvsW7dOl588UXWrFnDCy+8gN1uH1qV1+Vy0dDQwIYNG0Zdil4IMbXSolLYWL6bgw1dWDx24kjn4pWrcAQMf074m5wMw6CiooJ9+/b5FEIkJiaycOFCv56Dn0qyYOEkGmvBwiPdc889NDQ08NFHH/l9j/fff5/169dz/fXXj3ms3W6noqKCdevWDa2Q63K5OHDgAPPmzaOjo4M333yTp59+mnfffZd3332XDRs2cOWVV/L73//e75iEEJMnOTyBhcm5RNuSyLAsw94fy8H6rnFfp7e3l82bN/tU6dlsNhYuXMiyZcumfXKC06AFNZ2MtWDhkQIDA3niiSeOKvkeadu2bVx11VWA2YUYHx/Pb37zG+LihhcdG+0Z1KJFi3jwwQd56qmneOyxx1i7di3B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\n", "text/plain": [ "
" ] From 7af10a7112acd2bff3f218b9aea737c2cc2888aa Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 24 Sep 2018 16:38:39 -0400 Subject: [PATCH 23/61] adds worldpop2 from allendowney github --- ..._transition2_from_allendowney_github.ipynb | 580 ++++++++++++++++++ 1 file changed, 580 insertions(+) create mode 100644 code/world_pop_transition2_from_allendowney_github.ipynb diff --git a/code/world_pop_transition2_from_allendowney_github.ipynb b/code/world_pop_transition2_from_allendowney_github.ipynb new file mode 100644 index 00000000..0efe7220 --- /dev/null +++ b/code/world_pop_transition2_from_allendowney_github.ipynb @@ -0,0 +1,580 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Project 1 example\n", + "\n", + "Copyright 2018 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": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim library\n", + "from modsim import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import read_html\n", + "\n", + "filename = '../data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')\n", + "table2 = tables[2]\n", + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_results(census, un, timeseries, title):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " census: TimeSeries of population estimates\n", + " un: TimeSeries of population estimates\n", + " timeseries: TimeSeries of simulation results\n", + " title: string\n", + " \"\"\"\n", + " plot(census, ':', label='US Census')\n", + " plot(un, '--', label='UN DESA')\n", + " if len(timeseries):\n", + " plot(timeseries, color='gray', label='model')\n", + " \n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "un = table2.un / 1e9\n", + "census = table2.census / 1e9\n", + "empty = TimeSeries()\n", + "plot_results(census, un, empty, 'World population estimates')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Why is world population growing linearly?\n", + "\n", + "Since 1970, world population has been growing approximately linearly, as shown in the previous figure. During this time, death and birth rates have decreased in most regions, but it is hard to imagine a mechanism that would cause them to decrease in a way that yields constant net growth year after year. So why is world population growing linearly?\n", + "\n", + "To explore this question, we will look for a model that reproduces linear growth, and identify the essential features that yield this behavior.\n", + "\n", + "Specifically, we'll add two new features to the model:\n", + "\n", + "1. Age: The current model does not account for age; we will extend the model by including two age groups, young and old, roughly corresponding to people younger or older than 40.\n", + "\n", + "2. The demographic transition: Birth rates have decreased substantially since 1970. We model this transition with an abrupt change in 1970 from an initial high level to a lower level." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll use the 1950 world population from the US Census as an initial condition, assuming that half the population is young and half old." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.278814327" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "half = get_first_value(census) / 2" + ] + }, + { + "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", + " \n", + " \n", + " \n", + " \n", + "
values
young1.278814
old1.278814
\n", + "
" + ], + "text/plain": [ + "young 1.278814\n", + "old 1.278814\n", + "dtype: float64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(young=half, old=half)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll use a `System` object to store the parameters of the model." + ] + }, + { + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
birth_rate10.0555556
birth_rate20.04
transition_year1970
mature_rate0.025
death_rate0.025
t_01950
t_end2016
inityoung 1.278814\n", + "old 1.278814\n", + "dtype: flo...
\n", + "
" + ], + "text/plain": [ + "birth_rate1 0.0555556\n", + "birth_rate2 0.04\n", + "transition_year 1970\n", + "mature_rate 0.025\n", + "death_rate 0.025\n", + "t_0 1950\n", + "t_end 2016\n", + "init young 1.278814\n", + "old 1.278814\n", + "dtype: flo...\n", + "dtype: object" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(birth_rate1 = 1/18,\n", + " birth_rate2 = 1/25,\n", + " transition_year = 1970,\n", + " mature_rate = 1/40,\n", + " death_rate = 1/40,\n", + " t_0 = 1950,\n", + " t_end = 2016,\n", + " init=init)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an update function that computes the state of the system during the next year, given the current state and time." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func1(state, t, system):\n", + " if t <= system.transition_year:\n", + " births = system.birth_rate1 * state.young\n", + " else: \n", + " births = system.birth_rate2 * state.young\n", + " \n", + " maturings = system.mature_rate * state.young\n", + " deaths = system.death_rate * state.old\n", + " \n", + " young = state.young + births - maturings\n", + " old = state.old + maturings - deaths\n", + " \n", + " return State(young=young, old=old)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll test the update function with the initial condition." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
young1.317889
old1.278814
\n", + "
" + ], + "text/plain": [ + "young 1.317889\n", + "old 1.278814\n", + "dtype: float64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = update_func1(init, system.t_0, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can do one more update using the state we just computed:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
young1.358158
old1.279791
\n", + "
" + ], + "text/plain": [ + "young 1.358158\n", + "old 1.279791\n", + "dtype: float64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = update_func1(state, system.t_0, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `run_simulation` function is similar to the one in the book; it returns a time series of total population." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " init: initial State object\n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " \n", + " state = system.init\n", + " results[system.t_0] = state.young + state.old\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " state = update_func(state, t, system)\n", + " results[t+1] = state.young + state.old\n", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run the simulation and plot the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "results = run_simulation(system, update_func1);" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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BdwIfBe4Z8QjPAKfFe3hs2KzN8qSWdNYMrvvQocfbaxmQ2k9AMcVTme+Suyz/d11uygq3wvAyQtTmZ0V12f7G59Usm1X04DnPlJf/vKXeeutt/jqV79KSkoKCxcu5JRTTuG0004b9JjKykq+9rWvDXnep59+mmXLlnHFFVcAkJ6ezrXXXsvDDz/M5Zdf3rPfxRdfzIoVKwC46qqruPDCC+no6CA4OJiamhpWrlxJamoqADk5OQG/rj179jB79mwKCwsBes4hhBgbe/fuZd26dbjdB1ZdT0tLY86cORNuooOhEtQcrbXvUCfQWpcDVyulZNDKCLLb7fzmN7+hsrKSNWvW8Nlnn3H99ddzxhln8Ktf/eqwz1taWso777zD/Pnze8q8Xi8+X98fdffjPICEhAQAGhsbmT59OpdccglXXHEFxx13HMcddxxnnHEGMTExAV3/nHPO4Vvf+hYlJSUcf/zxnH766cyaNeuwX48QIjCGYbBjxw6Kiop62pssFgsFBQWkp6cD0FGlCUpIxeoMHc9QewyaoAJJTv32N448nKkhLCyM1tbWg8pbWloOGmuQnp5Oeno6F154If/85z+58cYbue666waseaSnp1NRUTHktdvb2znrrLP43ve+N+R+dvuBX43uAbPdSezGG2/krLPO4r333uPll1/mN7/5Dc8//zypqalYLJaeX/5uvWeDKCwsZPXq1bz33nt8+OGHfOMb3+CGG27gsssuGzIeIcThG6i9yel0snDhQuLi4jC8XbRu+ZCO6lIccdOJWnImFsv416YC7sWnlJoJrACS6Nd2pbX++QjHNSKWzB760dvxc2dw/NwZg24/eWEqJy8c/BHUl5am86Wl6cOOKz09/aC2pdbWViorK8nIyBj0uKysLMBMMgPG86Uv8fjjj3PdddcRF9f3cWRLSwsRERHk5eXx2Wef9XxiOly5ubnk5uby3e9+l6985Su8/fbbfOtb3yI2NpaGhoae/RobG/t8DxAdHc25557Lueeeyx//+Ef+8Y9/SIISYpS0t7fz+eef09zc3FMWHR3NokWLCAkJwdvWzP71b+JpMZszuvbupq1iM01hWaQmRYxX2ECACUopdQnwF6ADqAV6f0Q2MDtQiABdcsklfPvb32b27NksX76c1tZWHn30UZKSkjj++OMBeOaZZ9ixYwcrV65kxowZ1NbW8utf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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(census, un, results, 'World population estimates')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This figure shows the results from our model along with world population estimates from the United Nations Department of Economic and Social Affairs (UN DESA) and the US Census Bureau.\n", + "\n", + "We adjusted the parameters by hand to fit the data as well as possible. Overall, the model fits the data well.\n", + "\n", + "Nevertheless, between 1970 and 2016 there is clear curvature in the model that does not appear in the data, and in the most recent years it looks like the model is diverging from the data.\n", + "\n", + "In particular, the model would predict accelerating growth in the near future, which does not seem consistent with the trend in the data, and it contradicts predictions by experts.\n", + "\n", + "It seems that this model does not explain why world population is growing linear. We conclude that adding two age groups to the model is not sufficient to produce linear growth. Modeling the demographic transition with an abrupt change in birth rate is not sufficient either.\n", + "\n", + "In future work, we might explore whether a gradual change in birth rate would work better, possibly using a logistic function. We also might explore the behavior of the model with more than two age groups." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From ce2b7aa452772607487d348734c2e40ee7e0cf45 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 25 Sep 2018 14:57:20 -0400 Subject: [PATCH 24/61] version bump --- code/world_pop_transition2_from_allendowney_github.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/world_pop_transition2_from_allendowney_github.ipynb b/code/world_pop_transition2_from_allendowney_github.ipynb index 0efe7220..77755248 100644 --- a/code/world_pop_transition2_from_allendowney_github.ipynb +++ b/code/world_pop_transition2_from_allendowney_github.ipynb @@ -572,7 +572,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.5" } }, "nbformat": 4, From ef408dafb1fb164a5a33d81167d865572788ce9b Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 9 Oct 2018 15:48:14 -0400 Subject: [PATCH 25/61] dupes ch12 --- code/chap12-mine.ipynb | 879 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 879 insertions(+) create mode 100644 code/chap12-mine.ipynb diff --git a/code/chap12-mine.ipynb b/code/chap12-mine.ipynb new file mode 100644 index 00000000..85e465c8 --- /dev/null +++ b/code/chap12-mine.ipynb @@ -0,0 +1,879 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 12\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": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Code\n", + "\n", + "Here's the code from the previous notebook that we'll need." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "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": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func(state, t, system):\n", + " \"\"\"Update the SIR model.\n", + " \n", + " state: State with variables S, I, R\n", + " t: time step\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": "code", + "execution_count": 6, + "metadata": {}, + "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: TimeFrame\n", + " \"\"\"\n", + " frame = TimeFrame(columns=system.init.index)\n", + " frame.row[system.t0] = system.init\n", + " \n", + " for t in linrange(system.t0, system.t_end):\n", + " frame.row[t+1] = update_func(frame.row[t], t, system)\n", + " \n", + " return frame" + ] + }, + { + "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": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def calc_total_infected(results):\n", + " \"\"\"Fraction of population infected during the simulation.\n", + " \n", + " results: DataFrame with columns S, I, R\n", + " \n", + " returns: fraction of population\n", + " \"\"\"\n", + " return get_first_value(results.S) - get_last_value(results.S)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an example.|" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "beta = 0.333\n", + "gamma = 0.25\n", + "system = make_system(beta, gamma)\n", + "\n", + "results = run_simulation(system, update_func)\n", + "print(beta, gamma, calc_total_infected(results))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write functions that take a `TimeFrame` object as a parameter 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", + "Note: Not all of these functions require the `System` object, but when you write a set of related functons, it is often convenient if they all take the same parameters.\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": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "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": 12, + "metadata": {}, + "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": 13, + "metadata": {}, + "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)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And run the model without immunization." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "results = run_simulation(system, update_func)\n", + "calc_total_infected(results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now with 10% immunization." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "system2 = make_system(beta, gamma)\n", + "add_immunization(system2, 0.1)\n", + "results2 = run_simulation(system2, update_func)\n", + "calc_total_infected(results2)" + ] + }, + { + "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": 16, + "metadata": {}, + "outputs": [], + "source": [ + "plot(results.S, '-', label='No immunization')\n", + "plot(results2.S, '--', label='10% immunization')\n", + "\n", + "decorate(xlabel='Time (days)',\n", + " ylabel='Fraction susceptible')\n", + "\n", + "savefig('figs/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": 17, + "metadata": {}, + "outputs": [], + "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", + " results = run_simulation(system, update_func)\n", + " print(fraction, calc_total_infected(results))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function does the same thing and stores the results in a `Sweep` object." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "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", + " \n", + " for fraction in immunize_array:\n", + " system = make_system(beta, gamma)\n", + " add_immunization(system, fraction)\n", + " results = run_simulation(system, update_func)\n", + " sweep[fraction] = calc_total_infected(results)\n", + " \n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "scrolled": 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": 20, + "metadata": {}, + "outputs": [], + "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('figs/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) (GLF), 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": 21, + "metadata": {}, + "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": 22, + "metadata": {}, + "outputs": [], + "source": [ + "spending = linspace(0, 1200, 21)" + ] + }, + { + "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": 23, + "metadata": {}, + "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": 24, + "metadata": {}, + "outputs": [], + "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('figs/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": 25, + "metadata": {}, + "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": 26, + "metadata": {}, + "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", + "beta, gamma" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can sweep different levels of campaign spending." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "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", + " results = run_simulation(system, update_func)\n", + " print(spending, system.beta, calc_total_infected(results))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a function that sweeps a range of spending and stores the results in a `SweepSeries`." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "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", + " \n", + " for spending in spending_array:\n", + " system = make_system(beta, gamma)\n", + " add_hand_washing(system, spending)\n", + " results = run_simulation(system, update_func)\n", + " sweep[spending] = calc_total_infected(results)\n", + " \n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "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": 30, + "metadata": {}, + "outputs": [], + "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('figs/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": 31, + "metadata": {}, + "outputs": [], + "source": [ + "num_students = 90\n", + "budget = 1200\n", + "price_per_dose = 100\n", + "max_doses = int(budget / price_per_dose)\n", + "dose_array = linrange(max_doses, endpoint=True)\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": 32, + "metadata": {}, + "outputs": [], + "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", + " results, run_simulation(system, update_func)\n", + " print(doses, system.init.S, system.beta, calc_total_infected(results))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function wraps that loop and stores the results in a `Sweep` object." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "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", + " \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", + " results = run_simulation(system, update_func)\n", + " sweep[doses] = calc_total_infected(results)\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": 34, + "metadata": {}, + "outputs": [], + "source": [ + "infected_sweep = sweep_doses(dose_array)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "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('figs/chap05-fig06.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercises\n", + "\n", + "**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": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + } + ], + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 0e9de7a26943c826f7672e22a446346d624f61d0 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 9 Oct 2018 16:18:56 -0400 Subject: [PATCH 26/61] first few exercises --- code/chap12-mine.ipynb | 58 ++++++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/code/chap12-mine.ipynb b/code/chap12-mine.ipynb index 85e465c8..7314d8ca 100644 --- a/code/chap12-mine.ipynb +++ b/code/chap12-mine.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -40,7 +40,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -64,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -91,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -128,7 +128,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -151,9 +151,17 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.333 0.25 0.46716293183605073\n" + ] + } + ], "source": [ "beta = 0.333\n", "gamma = 0.25\n", @@ -190,29 +198,53 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def peak_infected_proportion(tf):\n", + " return tf.I.max()" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 22, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def outbreak_peak(tf):\n", + " return tf.I.idxmax()" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def sick_at_end(tf):\n", + " return get_last_value(tf.I)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.043536202687592354\n", + "30\n", + "0.0006741943156034474\n" + ] + } + ], + "source": [ + "print(peak_infected_proportion(results))\n", + "print(outbreak_peak(results))\n", + "print(sick_at_end(results))" ] }, { From cbc519d9ac3d44c09950e1ee934e4d36a08d7552 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 9 Oct 2018 16:23:04 -0400 Subject: [PATCH 27/61] tweaks --- code/chap12-mine.ipynb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/chap12-mine.ipynb b/code/chap12-mine.ipynb index 7314d8ca..ec120d72 100644 --- a/code/chap12-mine.ipynb +++ b/code/chap12-mine.ipynb @@ -198,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -208,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -218,7 +218,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 39, "metadata": {}, "outputs": [], "source": [ @@ -228,7 +228,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 40, "metadata": {}, "outputs": [ { From 985836ffe9ad9edc658332fa9a86fcc22687a782 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 9 Oct 2018 16:33:38 -0400 Subject: [PATCH 28/61] first exercise at end of file --- code/chap12-mine.ipynb | 802 ++++++++++++++++++++++++++++++++++--- code/figs/chap05-fig02.pdf | Bin 0 -> 17035 bytes code/figs/chap05-fig03.pdf | Bin 0 -> 12470 bytes code/figs/chap05-fig04.pdf | Bin 0 -> 15347 bytes code/figs/chap05-fig05.pdf | Bin 0 -> 15731 bytes code/figs/chap05-fig06.pdf | Bin 0 -> 11108 bytes 6 files changed, 748 insertions(+), 54 deletions(-) create mode 100644 code/figs/chap05-fig02.pdf create mode 100644 code/figs/chap05-fig03.pdf create mode 100644 code/figs/chap05-fig04.pdf create mode 100644 code/figs/chap05-fig05.pdf create mode 100644 code/figs/chap05-fig06.pdf diff --git a/code/chap12-mine.ipynb b/code/chap12-mine.ipynb index ec120d72..e1fd2e99 100644 --- a/code/chap12-mine.ipynb +++ b/code/chap12-mine.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 41, "metadata": {}, "outputs": [], "source": [ @@ -40,7 +40,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 42, "metadata": {}, "outputs": [], "source": [ @@ -64,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 43, "metadata": {}, "outputs": [], "source": [ @@ -91,7 +91,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 44, "metadata": {}, "outputs": [], "source": [ @@ -128,7 +128,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 45, "metadata": {}, "outputs": [], "source": [ @@ -151,7 +151,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 46, "metadata": {}, "outputs": [ { @@ -198,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -208,7 +208,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 48, "metadata": {}, "outputs": [], "source": [ @@ -218,7 +218,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -228,7 +228,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 50, "metadata": {}, "outputs": [ { @@ -263,7 +263,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 51, "metadata": {}, "outputs": [], "source": [ @@ -288,9 +288,78 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 52, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
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": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tc = 3 # time between contacts in days \n", "tr = 4 # recovery time in days\n", @@ -310,9 +379,20 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 53, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0.468320811028781" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "results = run_simulation(system, update_func)\n", "calc_total_infected(results)" @@ -327,9 +407,20 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 54, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "0.30650802853979753" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system2 = make_system(beta, gamma)\n", "add_immunization(system2, 0.1)\n", @@ -348,9 +439,27 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 55, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap05-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot(results.S, '-', label='No immunization')\n", "plot(results2.S, '--', label='10% immunization')\n", @@ -370,9 +479,27 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 56, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.468320811028781\n", + "0.1 0.30650802853979753\n", + "0.2 0.16136545700638427\n", + "0.30000000000000004 0.0728155898425179\n", + "0.4 0.03552021675299155\n", + "0.5 0.019688715782459176\n", + "0.6000000000000001 0.011622057998337987\n", + "0.7000000000000001 0.006838737800619332\n", + "0.8 0.003696496253713877\n", + "0.9 0.0014815326722661948\n", + "1.0 -0.00016121210941239666\n" + ] + } + ], "source": [ "immunize_array = linspace(0, 1, 11)\n", "for fraction in immunize_array:\n", @@ -391,7 +518,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 57, "metadata": {}, "outputs": [], "source": [ @@ -422,11 +549,154 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 58, "metadata": { "scrolled": true }, - "outputs": [], + "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", + "
values
0.000.468321
0.050.387288
0.100.306508
0.150.229234
0.200.161365
0.250.108791
0.300.072816
0.350.049938
0.400.035520
0.450.026121
0.500.019689
0.550.015072
0.600.011622
0.650.008956
0.700.006839
0.750.005119
0.800.003696
0.850.002500
0.900.001482
0.950.000603
1.00-0.000161
\n", + "
" + ], + "text/plain": [ + "0.00 0.468321\n", + "0.05 0.387288\n", + "0.10 0.306508\n", + "0.15 0.229234\n", + "0.20 0.161365\n", + "0.25 0.108791\n", + "0.30 0.072816\n", + "0.35 0.049938\n", + "0.40 0.035520\n", + "0.45 0.026121\n", + "0.50 0.019689\n", + "0.55 0.015072\n", + "0.60 0.011622\n", + "0.65 0.008956\n", + "0.70 0.006839\n", + "0.75 0.005119\n", + "0.80 0.003696\n", + "0.85 0.002500\n", + "0.90 0.001482\n", + "0.95 0.000603\n", + "1.00 -0.000161\n", + "dtype: float64" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "immunize_array = linspace(0, 1, 21)\n", "infected_sweep = sweep_immunity(immunize_array)" @@ -441,9 +711,27 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 59, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap05-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xl8XGW9+PHPTPY0SZOuSfeWtt8ulK0tZREtIAJXUATEhctVUVTcroB6FURRNi+LchUQvbihKNwfCCiiVmSRnZaWUrp8u+9pmq7Zt5n5/fGcSaZDkp6kmTXf9+s1r8w588w535nMnO8853nO8wQikQjGGGNMugmmOgBjjDGmO5agjDHGpCVLUMYYY9KSJShjjDFpyRKUMcaYtGQJyhhjTFrKTXUApn9EZDMwsYeH81S1Y4D3lwdcoar3ess3AOep6ryB3I+37YXAs0Cpqjb4KH8a8GtgLPBVVb3vCPY9EjhLVX/fz+eXAPXA6ar6XH/j6Md+PwncoaojkrXPI+F9fu9Q1buPcDtJ+1z2R3x8pm+sBpXZrgWq4m8DnZw8Hwe+H7N8B3B2AvYD8DLutTT6LP8dYC0wA+hXYolxG3DhEW4jFR4GZqU6iD6YD/xyALaTzM9lf8THZ/rAalCZrV5VdyVpX4HYBa9mc9jaTX+oahvQl9dVDjylqpsHYPeBwxdJP6raDDSnOg6/VLV2gDaVtM9lP2Xk5yldWILKUt6pjgW4WvJJwFeAR4DbgQuAkbgk8DNVvcl7Tg6uVnYFMAxYDHzJK/srr0wEOB1YSMypFBGZh6t9zMcdIB4Avq2q7d4pu0eAq3G/JiuAfwGfUdWabmJfSMwpPm+fnwK+DMwEVuBO5b0Sc6pznoh8R1UDIlIK3AlcDESAZ4D/VNWd3vaHAT8EPuDt8i/e67wK+ET0dXrbygNuBD4JFAGvAl9RVfXKFQM/Bj6MO7X37V7+J58GbsXVckPeuuOApcAEIAz8DHi3F/c/gC+q6u6ethmz7U/ineITkUnAJu/1/RAYBzwNXImrYZwPVANfUNVF0dcLfAz4FiDAEuDfga8DlwF1wLdU9bcx5c9X1Se95YUc+j/bDPwI+BBwIrAeuE5V/+yV3+zF8qQX6zt4738u8D3gUtwp3H3AQ7jP0mkk93P5Sdz3aJX33t4G/KAv8anqcyLyH7jPyThgDXC9qv6lu/dgsLNTfNntHNwX7iTgKdzB6mRcghLcgfVGEZnrlf8O7gv4VeB4YBvu4P2Kt24f7tTby7E7EZHpwPO4L+58XIK7DLglplg58HngIm//C+jlYN6Nm4DrvfjbgJ976+cDy3EJqcpb93Pv9Z0NvAd3sP+7d7ADeAyYA7wfOAOYDdyDO2D+H+6gGd3W971yH/FiVuB5ERnqPX4v7kD0b95ru6qX1/AoUIY7kEZ9FHheVbcDPwVC3mt6DzDJe139dSPuFNNZuAP3W7j/3VxgGXB/XPkf4P7PJ+ES5lJcYpoP/BH4mdfG5tf3gfuAecA64Fcikh9XZhuHnqI+BtjjxQJdCfITwDRv+Yu4z9DLJP9zeTzuh8gJuGTXp/hE5Gzc9+47uM/gz4BHROTkXvY5aFkNKrPdKSI/iFt3XkzjfDNwq6qGAUTkJVyNaan3+O0i8h1glogsxf3CvklV/+iV/yJwA1AKHAQi0VOKIhK7z88CG4Evq2oEWCMiVwG/9WpyADnA1ar6hvf83+EOhH7drapPec+9HXhCRApUtVZEOoAGVd0lIlNwB/1xqrrDK38Z7qB3johswtVQjlPV5d7jnwXO8X75NwM53raKcAnnTFV9yYvjK95B5jIReQCXAD4UfVxEPodL6O+gqgdE5CngElyNBu/+rd79SbjEsVlV20TkY7j3vr9uVtXFXlwvAGWq+mNv+R7gYhEpVdV6r/w9qvqs9/iTwHnAtaoaEZEf4mqwk3E1WD/+oKoPedv7Hu6HxCRceyEAXk0y+pnKw7WlLQWu84qsBD6pqs97y5tF5OvALFV9VERS8bn8Xsz++hrftcDt0fcF2OD9QLwGV+M3MSxBZbZbgd/FrdsRc39TNDl5fgec5x2wpwPHASW4L+kI3Km8xdHC3oHrGnjHFz/ebOBV7yAQ9SKQh/tVGbU25n6d97hf8c8F9/ltjSsX7SigcTEX42pVRbga2FvRB1R1Ce6UVryjgAJgkXeKJqrQ25Z4r2FpzGNLcKfqevJ74Kci8gVcTWYs7jQTuBriw8CFIvJPXK3lD71s63DWx9xvwiXpqBbvbwGuRtBd+c0x/9PY8n519z/r7X9+FzAemBf93Krqn0TkdBG5DfeZPQaX5HJ87D8Rn8um2HbffsQ3G1ggIt+KWZcXF4PxWILKbHtUdX0vj8c3mv8SeC/u1MQDuBrTcu+xNu9vf4a3765xPto4HHsaua2HMn7EP7en5+cC7bhTMfGvZR/udJzf1xj9fpwFxLcD1dHVzT82jpB368mTuFNrZ+BOwf5VVfdD58FuPPBB4Fzc6bHLgPf5jDdee9xyb4mzP+VjdXcs8fs/Q0Qux7UznqKq+2LW3wD8J+6z+yjwX7g2Hj8S8bk8ZJv9iC8X187357j18e+9wdqgBg2v48BlwH+o6rWq+jDuizkUCKjqQdxB+ISY5xSJSI2ILKD3g/pq4CQRif1in4L70m0Y4JdyOKtxv0iHqOp6L4FX4zqHTMf9Ui0gpku2iLxHRLZ57SOxr3M90AGMitnWBtxpzxNxDdxtuHaLqDn08gtcVVtwbWAfwHUgeNCLIeCduhyrqr9Q1Yu9x88SkVH9fTMSKPrZiZrS3w2JyEm4trwrVPXNuIe/CFyjqtd4HTQ2434YRD9rqf5c9jW+1cDE6OfJ+0xdguugYuJYDWrwaMFdV3Sh1w4zBnfQDtB12uZHwPVeD6u1uHaAg7h2kXFAiYjMwp3Xj3UPrnPFT0Tkblw7xZ3Ab1T14GFODw4oVVUR+RPwgNeGVgvcjGtXWOO1A/0duF9EvoQ7gNwJ/NNr92kAjhaRiaq6RUTuBf5HRFpxDf1X4RrAv6uq9SJyP/BDEdmPq1Xdy+FraA/iklQEV6PCa+eZBdwtIl/BnXb7GO6At8frYTkSOOh1KU+1xcA1XttlFfC1/mxERKpwpzJ/ievIUhnz8D5gL/B+EfkXroPJDbjedtHPbAOp/Vz2Nb7bgD+IyBpcL80zcL0ALxuIYLKN1aAGCVVtxzXovxfXq+kBYBGud1+0F9/twC9wp6CW4Q487/euS/qnt24Zrldb7LZ34k5XnYA7ZXi/t/0vJvRF9ewTuLagx3EH0qG40SEOeI9fBmzBdYtehGtD+pL32K+BSmC1d7D8Bq6N6Fe4dqsTgHNVNfoL/CrgT7iD7N+B39D9qa1Yz+AS0GNxyebTuA4DT3v7Go97/8Pe/Wpcb8J08CVc7fJN3EH/m/3cztm4z9mVuB8T1TG3U3Dd+6MdMx7HJexf0PWZTfXnsk/xqepjuM4mV+O+h1/Hdff3e9pyUAnYjLrGGGPSkdWgjDHGpCVLUMYYY9KSJShjjDFpKet68YlIAW5Yk2p6vx7FGGNM8uTgOsQsVtX4C+y7lXUJCpecXkh1EMYYY7p1Gm5Ej8PKxgRVDfDggw9SWVl5uLLGGGOSYNeuXVx66aXgHaP9yMYEFQKorKxk3LhxqY7FGGPMoXw3vVgnCWOMMWnJEpQxxpi0ZAnKGGNMWrIEZYwxJi1ZgjLGGJOWLEHF2b2/iWW6m5bWjlSHYowxg1o2djPvt1A4whP/2kBrW4h12w7w4TOnEQj0ZdJXY4wxA8VqUDGCAQiH3fQju/c3sXHHwRRHZIwxg5clqBiBQIA5R43oXF6yugabL8sYY1LDElSc46aPJC/HvS21B5rZXF2X4oiMMWZwsgQVp7gwj6NjalGLV1ktyhhjUsESVDeOl5HkerWo3fub2LKrPsURGWPM4GMJqhvFhXnMnjK8c3nxql1WizLGmCSzBNWD42UUOUHXxbxmXxNba6wWZYwxyWQJqgclRfG1KGuLMsaYZLIE1YsTYmpRu/Y2sn13Q4ojMsaYwcMSVC9KivOZNbmrFvX6SmuLMsaYZLEEdRgnzBhF0KtFVe9tZEet1aKMMSYZLEEdRmlxPjMnDetcXryqJoXRGGPM4GEJyoe5M0YT9AaN3VHbYLUoY4xJAktQPpQNyWfGpIrOZatFGWNM4lmC8im2FrV9dz0791gtyhhjEskSlE9DSwqQiV21qCVWizLGmISyBNUHc2eM7pzAcGtNPbv2NqY4ImOMyV6WoPqgvLQAmVDeuWxtUcYYkziWoPpo7syuWtSWXXXU7GtKcUTGGJOdLEH1UUVpIdPGd9WilqzalcJojDEme1mC6od5MbWoTdV17N5vtShjjBlolqD6YVhZIVPHDe1ctrYoY4wZeJag+mnezNGd9zftPEjt/uYURmOMMdnHElQ/DR9axFHjYtqiVltblDHGDKTcZO5MRI4F7gOOATYCl6vq4l7KlwNvAd9R1V8nJcg+mD9zNBu2HwBgw46D7D3YzPChRSmOyhhjskPSalAikg88ATwMlAM3A4tEpKyXp90HjE1CeP0yoryIKWO72qKWrLa2KGOMGSjJPMW3EMhT1btUtV1VHwJWAh/prrCIfAIoA1YkL8S+mz+zsvP++u0H2VfXksJojDEmeyQzQc0CVsetWwPMiS8oIpOB7wKXJyGuIzKyoojJVa4SGIlErEefMcYMkGQmqBIg/oKhJqA4doWI5AC/A76mqhnR82D+rNha1AH2Wy3KGGOOWI+dJETkH0DEz0ZU9X0+ijUC8T0IioH4eSuud5vUP/rZdzoYNayYiZVlbNlVRyQSYcnqGs5aMDHVYRljTEbrrQb1Nq6NaCWwFTgTCACLgZeAZly7Uvxpu56sAiRu3QxvfayPAheLyAEROYA7BXiviNzrcz8pMX9W13VRa7cdYH+91aKMMeZI9FiDUtWrovdF5BHg26p6a2wZEflP4Dyf+3oWCIjIVcDdwEW47uaPxe13Rtw+3gTuSsdu5rEqhw9hQmUpW3fVE4lEeGP1bt574oRUh2WMMRnLbxvUucAj3ax/CjjVzwZUtc3bzkXAPuA64AJVrRWRa0Vkpc9Y0lZsj761W/dzsKE1hdEYY0xm83uh7kbgw8Atces/if9TfKjq28C7ull/Szfbjj52nN/tp1rViCGMG1XK9t31hCMR3lhTwxnzrBZljDH94TdB/RfwuIi8H1iKa4s6Edd1/NwExZaRTpw1mu276wFYs3k/c2eMZmhJQYqjMsaYzOPrFJ+qPgUcC7wKTAOmAs8Bx6jqCwmLLgONGVnCuFElAF4taneKIzLGmMzkeyw+VV0NXCMipUCjqoYTF1Zmmz+rku271wOwZvM+5s0cTdmQ/BRHZYwxmcX3hboicrWIVAP7gUki8isRuUtEkjrgbCYYO7KEMSNia1E2uoQxxvSVrwQlItcA/wl8A4h2TXsCN45et50bBrvY66JWb95HfVNbCqMxxpjM47cGdQXweVX9LRAGUNXHgU8AH09QbBlt3KgSxowYAkA4bG1RxhjTV34T1ATcwK7xNgPDBiyaLBIIBA4Zo2/1pr00WC3KGGN885uglgGXxCxHx+j7vPeY6ca4USVUDne1qJDVoowxpk/8JqivAdeKyF+AAuB7IvI68Fngm4kKLtO5WlRXW9SqTXtpaG5PYUTGGJM5/F4H9QowHVdb+gtQgbsOaqZdB9W7CaNLGT3MzSgSCkdYaj36jDHGF7+9+K4F6lT126r6IVU9X1W/ARwUkdsSG2JmCwQCnBjTFrVy414arRZljDGH1dt8UFVAqbd4I/CsiOyNK3Y88GVc93PTgwmVpYyqKGb3/iZXi9LdnHbc2FSHZYwxaa23GtQpuJ570cFgX/KWY29/8G6mF/FtUSs37qWpxWpRxhjTmx4TlKo+ihtzT3CDw56MG4cvepsKVKrq5UmIM+NNqipjVIVri+oIhVmq1qPPGGN602sblKpuVNX1QB6wFyhV1Q2qugE4h65TgOYw4mtRb2+wWpQxxvTGbzfzc4AVwPtj1l0ILBeRMwY8qiw1qaqMkeVFgKtFLVtbm+KIjDEmfflNULcA16rqzdEVqvpe4Hrg9kQElo0CgQDzZsbUotbvsVqUMcb0wG+CmoYbHDbeE8DMgQsn+00ZO5QRXi2qPRTmTatFGWNMt/wmqHXAed2sPxvYNnDhZL/4WtSKDXtobu1IYUTGGJOe/M7ldAvwoIicCizGjcV3AnAxYL34+uiosUMZXlbI3roW2jtcLerkOVWpDssYY9KK36GOHgb+Ddeb7zO4aTYKgDNU9cHEhZedAoEA82J69L21vpYWq0UZY8wh+jLl+yJgUQJjGVSmjitncVkN+6K1qHW1nHS01aKMMSbKd4ISkQtxo5pPB+bjptqoVtW7EhRbVou2RS16bQsAb63fw3HTR1KY7/tfYowxWc3vYLGXAfcDfwWKcSNLbARuFBEbh6+fpo4rp6K0EIC29hBvrduT4oiMMSZ9+O3F93XgSlW9EQgBqOrPcB0krkxQbFkvGAwwb+aozuXl62ppabO2KGOMAf8JairwejfrlwKV3aw3Pk0bX0F5aQEAre0h3lpvtShjjAH/CWot0N2QRhcDOnDhDD6uFtXVo2/5ulpa20MpjMgYY9KD3wT1beDHInIPrmPFFSLyf8BNwA0Jim3QmD6+gvISrxbVFmKF1aKMMcb3dVBP4qbbGIqbByo6qsQpqvp4gmIbNOJrUcvW7qbNalHGmEGutxl11wPvVtWd3pTvP1LVf09eaIPL9AkVvL5qF3WNbbS2ubao2KRljDGDTW81qCpghnf/RqAk8eEMXvG1qDfX1lotyhgzqPV2VegfgadFJNrveYeIdFtQVfP97ExEjgXuA47BXUd1uaou7qbcebjx/yYDu4HbvG7tWU0mDmPJ6hrqGttoaeuwWpQxZlDrrQb1H8BC4MO4C3Ov8O53dzssEcnHTc/xMFAO3AwsEpGyuHJVwCPAf6lqqbf9u0TkBN+vKkPlBAPMnXFoW5RdF2WMGax6rEGpagT4F4CIXAE8pKqtR7CvhUBezNBID4nIl4CPAP8bs99qERmpqvUiEgSGAx1A/RHsO2PMmDSMpbqbgw2ttLaFWL62lgU2Rp8xZhDyO/DbL4HzRGQubkTzQOyDqnqtj23MAlbHrVsDzIkv6CWnYuCgF+N/q+o6n7FmtJxggBNnjeYfr28F4M11tcyZOoLiwrwUR2aMMcnl9zqoHwKPAx8C3g2cFnN7l89tlABNceuacGP7dacFGIIbmPZyEfm0z/1kvGnjKxhW5sboa+8Is8xm3TXGDEJ+a1CXAF84wo4KjUBR3LpioKG7wqoaBtqAJSLyc+CDwC+OYP8ZIxgMsGB2JX99ZTMAK9bv4dhpIykpslqUMWbw8FuDKgSeOcJ9rQLiuwHO8NZ3EpH3iMgbceUKgANHuP+MMmXsUEZWuHzeEQrzxuqaFEdkjDHJ5TdB/Qa4SkRyjmBfzwIBEblKRPJE5KO47uaPxZV7ExgrIleLSI6InAJ8mkFSe4oKBAKcNLurc8TKTXupa2xLYUTGGJNcfhPUOFySqBGRJSLycuzNzwZUtQ04F7gI2AdcB1ygqrUicq2IrPTKHcRNL3+hV+7nwGdU9fk+vbIsMKGylKrhQwAIhyMsXrUrxREZY0zy+G2DUuC2I92Zqr5NN50qVPUW3IW50eWl3ZUbbAKBACfNqeKx59YDsGbLfk6YMapzkkNjjMlmvhKUql6f6EBM98aOLGH86FK21dQTiUR4fWUNZ580MdVhGWNMwvU2WOwtwE2q2uTd75HP66BMPy2YXcm2Gned8rpt+5k7YxQjyuM7RBpjTHbprQZ1GpCPu1bptF7KRQY0IvMOlcOHMLmqjE3VdQC8tnIX7z91coqjMsaYxOptqKPTurtvUuPE2VWdCWrTzoPU7Gti9LCernE2xpjM57cXn0mxkRVFTBtf3rn82tvVKYzGGGMSzxJUBjlxViWBgBsGcWtNPTtrux2EwxhjsoIlqAxSUVaITKjoXH717V1EItYEaIzJTpagMsz8WaMJerWonXsaOnv3GWNMtvF7oS4iMhw3NUZ3020sGuC4TA+GlhQwa/Iw3t64F3C1qPGjSztP/RljTLbwlaBE5JPAT3GDtsaLAEcyRp/po3mzKlm9eR+hcITd+5vYXF3H5DFDUx2WMcYMKL+n+L4J/Bo3u21e3C0/IZGZHpUU5TFn6ojOZWuLMsZkI7+n+MYDP1LV/YkMxvh3goxi5ca9tHeE2XuwmXXbDjA9pgOFMcZkOr81qKeB9yQyENM3xYV5HDttZOfy66t2EQ5bLcoYkz381qDeAP5HRM4H1uJmuu1kY/GlxnHTR7Ji/R5a20McqG9lzZZ9zJo8PNVhGWPMgPCboM7CJakKYEHcY/azPUUK83M5XkbxqjeqxOJVNciECnJy7OoBY0zm8zvdho3Fl6aOmTqC5etqaW7toL6pjVWb9h3SgcIYYzJVX66DGgl8AZiNa7taDdyvqlsSFJvxIT8vh7kzRvHi8p0ALF5dw4xJw8jLtVqUMSaz+TqKicg8XNvTR4EGoB43dfsKETk+ceEZP44+agQlRXkANLW0s2LDnhRHZIwxR87vz+wfAv8PmK2ql6vqp3A1qQeBOxIVnPEnNyfI3JmjO5eXrtlNW3sohREZY8yR85ug5gF3qmo4ukJVI8BdvLPThEmBWZOGUTbEXTPd0tbB8nW1KY7IGGOOjN8EVQNM6Gb9JNwpP5NiOTlB5s+s7FxetraWltaOFEZkjDFHxm8nid8BPxeRrwCveutOBv4Hd5rPpAGZWMEbWsOB+lba2kMs1d2ccsyYVIdljDH94rcGdRPwHPAYsMu7PQI8AXwrIZGZPgsGAyyY3VWLWr6uloMNrSmMyBhj+s9XglLVVq9jxCjgNFyb1DBV/aqqtvX+bJNMU8eVM3pYMQChcIQX39yR4oiMMaZ/ejzFJyLvA55R1Q7vfqwSYKSIADYfVDoJBAK8+/hxPPLMOiKRCJuq69hSXcfEqrJUh2aMMX3SWxvU34BKYLd3vyc2H1SaGT2smJmTKli1aR8AL7y5g3GjSmwIJGNMRuntiJWnqruj93u52XxQaeiko6soyHO/Gw40tLJ8nV28a4zJLD0mKFWNvdLzr0CJqoZib8Aw4OVEB2n6rrgwjxNndXWYWLx6Fw3N7SmMyBhj+qa3Nqh3AzO8xTOBz4hIfVyxmYAkKDZzhI6eOoJVm/ayt66F9o4wL7+1k/ctmJjqsIwxxpfe2qAOAt8GAt7taiAc83gEd5HuNxIWnTkiOcEApx0/lsef3wDA2q37OXrKcMaMLElxZMYYc3g9JihVXY43eoSIvACcr6oHkhWYGRjjRpUydVw567e7f92/3tzBJWdOJxgMpDgyY4zpnd/roE4DPiAiF0bXicjvReRjfdmZiBwrIq+ISKOIrBCR+T2UO0tE3hCROhFZLyKf68t+zKFOPXYMuV4Pvj0Hmlm5aW+KIzLGmMPzO93GN4EfAwUxq9cB94jIl31uIx838sTDQDlwM7BIRMriyo0HHsWNXlEOfAy4VUTO9rMf806lxfnMixnt/LW3d9k4fcaYtOf3wpgrgY+q6h+iK1T1u8BlwFU+t7EQ13X9LlVtV9WHgJXAR+LKTQJ+r6qPqWpYVRfjhlk61ed+TDeOmz7ykNHOo9PEG2NMuvKboIYDm7tZvw53Ma8fs3Cz8MZaA8yJXaGqL6jq56PLIjIMN7zSMp/7Md3IzQly2nFjO5dXbtpH7f7mFEZkjDG985ugXgO+JiKdI0aISBD4KrDE5zZKgKa4dU1AcU9PEJGhwJ+8/T/hcz+mB5OqyphQWQpAJBLhX8u2E4lEUhyVMcZ0z2+C+hpwIbBZRJ4UkT8Dm4CL8X+KrxEoiltXTA/zSYnIdNzUHjXAxbGTJZr+CQQCnHbc2M4efNV7G1m7dX+KozLGmO757cW3DHdB7h3Adlxyuh2Yqqpv+NzXKt55Ue8Mb/0hvIuEXwMexyWnFp/7MIdRUVrIcdNGdi6//Fa1TQ9vjElLficsRFVrcRMUHkJERqtqjY9NPAsEROQq4G7gIuAY3BxTsds7CngSuE5Vf+I3PuPfvJmj0S37aWxpp7GlncWrazjVJjY0xqQZXwlKRKYC/43r6BBthwrgup1X4QaN7ZWqtonIucB9wPdxnS4uUNVaEbkWuFRVZwNfBEpxXctvjdnEPar6X75elelVfl4OpxxTxT9e3wq4iQ1nTR5GRWlhiiMzxpgufmtQ9+EmK/wVcCPwXWAK8Eng8z0/7VCq+jbwrm7W3wLc4t2/Gjeskkmg6RMqeHvDXqr3NhIOR3jhzR2c/64pBAI2woQxJj347SRxEnCFqt4GvAm8oKqfBa4FLklUcCZxohMbRhPS1l31bK6uS3FUxhjTxW+CCgLRKzsVON67/ygwd6CDMskxsqKI2ZOHdS6/8OYOOkLWWdIYkx78Jqi3gA9691cC7/buV2Gz6Wa0k46uojDfnemta2zjzbW1KY7IGGMcvwnqe8AdInIl8CBwrog8DTyCm8zQZKjCglwWHN01GMiS1TXUN7WlMCJjjHH8Xgf1V9w1S/9Q1e24jg5vAfcAVyQuPJMMsycPZ2S5u4a6IxTmpeU7UxyRMcb472a+BPiUqq6AzrmirKddlgh6Exv+8dn1AKzffoBtNfWMH12a4siMMYOZ31N844H2RAZiUmvMiBJkQkXn8otv7iAUtnH6jDGp05froJ4QkfuAjcAhw2Cr6qKBDswk38nHjGHjzoO0d4TZW9fC2+v3cOz0kYd/ojHGJIDfBHW99/fObh6LYD35skJJUR7zZ1by8grXBvXaql1MrCqjvLTgMM80xpiB1+MpPhG5XESGeIt5vdzyEx2kSZ5jp43oTEht7SH+9upmuzbKGJMSvdWg7gYW4abJaAbGqOqepERlUiYnJ8j7Fkzk0WfWEQpH2HOgmX8t284Z8yakOjRjzCDTW4KqBu4Vkde8cleLSLdzN3lj6ZksMaqimNOOG8tzS7cDsGrTPsaMKGHGpGGHeaYxxgyc3hLU5bhBYS/CtTOdD3R0Uy6CN9CryR7GNgklAAAZeklEQVSzpwynek8j6k1o+NzS7YysKGL40Pg5J40xJjF6TFCq+jxwBoCIbAMWqureZAVmUisQCLBw7jhqDzSzr66FjlCYv76ymUvOnE5+nvWJMcYknt+RJMZbchp88nJzOOfkSeTluI/JgfpWnn1jO5GIXR9ljEk8vxfqmkFqWFkhC+eO61xet20/b2+w3yrGmMSzBGUOSyYOY/aU4Z3LLy7fwe59TSmMyBgzGFiCMr6cdtzYzgFlQ+EIf3t1My1t3fWZMcaYgWEJyviSmxPknJMndXaQqGts45+vb7X2KGNMwvTYi09EqnFdyA9LVccMWEQmbQ0tKeDMeeP56yubAdhUXceytbWcIKNSGpcxJjv1dh3Ut5MWhckYR40r57jpIztn3n11RTWVw4oZM7IkxZEZY7JNb9dB/cLPBkQkb+DCMZng5Dlj2LW3iV17GwlHIix6bQuXvHc6xYX2UTDGDBy/ExaOBL4JzKJr5PIAUAAcDdgYOINITjDAOSdN5KF/rKWlrYOG5nYWvbaVD5w2hWAwkOrwjDFZwm8niZ8DlwCbgNOBdUAYN/X7zYkJzaSzkuJ8zlowgUDAJaTtu+tZsromxVEZY7KJ3wR1BvAJVf0CsBL4paqeDdwGnJKo4Ex6m1hZxtwZXR0kFq+uYeuuuhRGZIzJJn4TVAGu1gSwGpjr3f8lcOpAB2Uyx4mzKhk3qhSASCTCP17fSkNTW4qjMsZkA78Jai1diWg1sMC7X+zdzCAVDAZ434IJDPE6SDS3dvD3V7cQCtv1UcaYI+M3Qd0B/FpELgUeBi4VkfuB3wEvJio4kxmKC/M4+6SJBL32qOq9jby6ojrFURljMp3f0cwfAN4LrFZVBT6I67n3CvCpxIVnMsWYkSWcdHRV5/KytbvZtPNgCiMyxmQ6XwlKRK4F3lDVpQCq+ndVvRC4xrsZw/EykslVZZ3LT7++lRobVNYY00+9DXVUBZR6izcCz4pI/DwLxwFfBr7hZ2cicixwH3AMsBG4XFUX91L+ROBJVbWxdDJAIBDgzPkT+L9/rqWusY3W9hCPP7+ec06exMTKssNvwBhjYvRWgzoFWIPrFAGurWlN3O0h4A9+diQi+cATuDasctz1U4tE5B1HLhEJiMhngEVAvq9XYtJCYUEu5548mcJ899unvSPMX17cxJot+1IcmTEm0/SYoFT1UWAqILhRI04BpsXcpgKVqnq5z30tBPJU9S5VbVfVh3DXVH2km7LfA64EbvK5bZNGRlYUcdHpUyktdr8twpEIT7++laW620Y/N8b41msblKpuVNX1uMTyGrANd01UEVCjqrv7sK9ZdNXGotYAc7ope5+qzgWW9GH7Jo1UlBVy0RnTGD60qHPdy2/t5MXlOy1JGWN88dvNPCIiNwMHgRXAW8AeEblbRHJ6f2qnEiC+xbyJbq6jUtWdPrdp0lhJUR4fWngUY2NGOl++rpZFr20hFAqnMDJjTCbwm6BuAi4HPg1M9m6fBi4Arve5jUZczStWMdDg8/kmAxXm53L+aVM4alx557p12w7w5xc30dYeSmFkxph05zdBfQK4QlV/r6pbVXWLqv4e+BwucfmxCteeFWuGt95ksdycIGcvmMico0Z0rtu+u57HnltPY3N7CiMzxqQzvwmqFDfcUbz1wEif23gWCIjIVSKSJyIfxXU3f8zn800GCwYDvPv4sYdczFt7oJlHn13H/vqWFEZmjElXfhPUEuDz3ay/EljmZwOq2gacC1wE7AOuAy5Q1VoRuVZEVvqMxWSoQCDAvJmjOXPehM5hkeoa2/jjs+vtgl5jzDv4mrAQ+BbwjIgsxA1vBHAyrrv5OX53pqpv4+aQil9/C3BLN+ufw10zZbLIzMnDKCrM5W+vbKYjFKa5tYPHn/Mu6K2yC3qNMY7fsfhew02x8TwuKY3DXUQ7Q1VfSlx4JltNqirjgvcc1XVBbyjMX17axJrNdkGvMcbpbaij7wB3qGoTgKquAa5KVmAm+1UOH8JFZ0zlzy9spK6xzV3Qu3grjS3tnCCjOmfrNcYMTr3VoL6Lu3bJmISpKC3kwtOnMaK86wqEV1ZU8+KbdkGvMYNdbwnKfr6apHAX9E5l3KiYC3rX1/L3V7fQ3mEX9BozWB2uk8Q4ESk83EZUdesAxWMGqYK8HM5/1xSeXryVddsOALB++wF27W3klGPGMG18uZ3yM2aQOVyC6nEqDE8AiAB+hzsypkc5OUHet2AixQV5LF9fC0BDczuLXtvCW+v38K5jx1A5fEiKozTGJMvhEtTpQPwcUMYkTCAQ4F3HjWFEeREvr9hJc2sHALv2NvLIM+uQCRWcPKeKkmKbhcWYbNdbgooAa/o4YrkxRywQCDBz8jCOGjeUJatrWL6ullDYdZjQrfvZuOMgx88YxfHTR5GX6/dac2NMprFOEiZt5eflcMoxY/j42TM4auzQzvXtoTCvr9zFg39bzdqt+623nzFZqrcE9RugOVmBGNOToSUFnHvKZC54z1GHdEePtk89akMlGZOVeptR91OqWp/MYIzpzbhRpVxy5nROnzueooKus9O79jby//65lqdf30KDjY5uTNbwOxafMWkhGAwwe8pwpo4v54249qk1W/azYbu1TxmTLewbbDJSgbVPGZP1rAZlMlq0fWpbTT0vvbWTPQdcs2m0ferVt6uZMXEY0yaUU1F62GvOjTFpxBKUyQrjR7v2qdWb9/Hq29Wd10/VNbbx+qpdvL5qF6OHFSMTK5g6rpziwrwUR2yMORxLUCZrxLdPrdy4l9b2UOfjNfuaqNnXxItv7mRCZSnTJ1QwecxQa6syJk1ZgjJZJ9o+deLsSjZX16Fb9rNlVx1hrzNFOBJhc3Udm6vryM/L4aixQ5k+oYKxI0sIBu3yP2PShSUok7Vyc4JMHVfO1HHltLR2sG77AdZu2U/13sbOMm3tIVZv3sfqzfsoKcpj2oQKZELFIddbGWNSwxKUGRQKC3KZc9QI5hw1goMNrazduh/dsp8DDa2dZRqa21mmu1mmuxk+tAiZUMGUsUMZWpJvI6kbkwKWoMygM7SkgPmzKpk3czS79zejW/axbtuBzo4VAHsPNvPyimZeXrGT4sI8qkYMYczwIVSNGMKI8iI7FWhMEliCMoNWIBBg9LBiRg8r5tRjx7K9pp41W/azaedBOkJdEyU2tbSzYfsBNmx381Tl5Qap9JJV1fAhVA4vJi/XZpwxZqBZgjIGyAkGmFhVxsSqMtraQ2zccZB129yEibE9AQHaO8Jsq6lnW40bCSwYCDCyoqgzYVWNGGLd2I0ZAJagjImTn5fDjEnDmDFpGOFwhH11LVTvaWTnnkaq9zS8Y7y/cCTS2YX9TdxEi+UlBVSNGELl8CFUlBUwrLSQwgL7uhnTF/aNMaYXwWCAEeVFjCgvYs7UEQDUN7W5hFXbQPWeRvbWtbzjeQcaWjnQ0Mrqzfs61xUV5DKsrJCK0gIqygo77w8pyrNOGMZ0wxKUMX1UWpxP6YR8pk+oAKClrYNde5uo3uMSVs2+ps4BbGM1t3awo7aBHbUNh6zPz8txSavUS1pl7n7ZkHzrjGEGNUtQxhyhwvxcJlWVMamqDICOUJja/c1U72mk9kAzB+pb2F/fekjHi1ht7aHOU4SxcoIByksKKB2ST0lRHiXF+ZQW51FanM+QojxKivLIybFRMEz2sgRlzADLzQm6DhMjhnSui0Qi1DW2caC+lb11LRyob2FfXSv761tobQt1u51QOMLeupZuTyGC64U4pDCXIUUuaZUU51Fa5P31losKcu30oclYlqCMSYJAIMDQkgKGlhQw0atpgUtcza0d7KtrYX9dq/tb38r+uhYaW3qffDESidDQ3E5Dc3uPMwrnBAMUF7pEVVSQS3HhoX/dLY8ibznHTimaNGIJypgUCgRcAikuzGPcqNJDHmtp66CuoY36pjYamlwiqm9qc0mpqY3Glo7DzncVCkeob3Lb8KMgP8clsJikVZSfQ0F+DgV5uRQW5FCQF112f3NzglZLMwlhCcqYNFWYn0vhsFxGDSvu9vFQKExjSwcNXgKq95JYg5fE6pvaejx92JPWthCtbSEO1LcevrAnGAx0JqvC/Nx3JLDC/BzycnPIzwuSn5tDXvRvbpCCPPfX2tJMdyxBGZOhcnKClA3Jp2xIfo9l2jtCNLV00Nzqbp33Wzpoao3eb6eptYOWtlC/ZiAOhyOd2wf/ie2Q1xIMkJ8Xm7RcQuv6GyQ3x/2Nvd+1LofcnMA7/lrNLrMlNUGJyLHAfcAxwEbgclVd3N9yxpje5eXmMLQkh6ElBYctGw5HaGnrSmbRhNbaFqKlzf1tbQ91/m1pC9Ha1tFtl/q+CnUmuSPeVKdAIEBuTuCQZJaTEyA3GCQ3N0huMEBubpCcYNCV88q4W4CcnKBX1m0jJ+jW5QQPXc7NCRCMWWdJceAkLUGJSD7wBHAX8G7gImCRiExU1bq+ljPGDKxgsKs9rC86QuHOZBWbwFpbvb/tIdo7QrS2h2nvCNHWHqa9PURbR5i2jhDt7WHC/ai5HU4kEqG9I0J7R3hAE9/hxCar2GQWzAmQE+xa79YFCXqJNNi5Puju5wRiyrp1wYBbHy0bDMTcj3s8GIhZH1c+U5JoMmtQC4E8Vb3LW35IRL4EfAT4336UM8akgdycICVFQUqK+jf+YCQSoSMU6UxebR0h2jvCtLWH3K0jTEdHmPaQ97cjTEfI/Y29H7+up+vOEi0cjtAW7lvbX7IFAgGCATqT1yHJLCaJBYN0PjakKJ8TZ42moqwwaXEmM0HNAlbHrVsDzOlnOWNMFggEAuTlBsjLDVI8gMe+cDjSmaiiSSsU6loXCkcOWd8eChMKhenwyoSizw1FCHnlQ6EIobArEwp3bS+6r4E43ZkMkUiEUIQ+xttIOBLh3JMnJSqsd0hmgioB4i/WaALiuyj5LWeMMT0KBgPkB3PIz0veVCiRSMQlq3BXUosmwHA44pJc2K0PxyS8Q5Yj0fteUvRu4XCEcDhMKOwGKA6Hwl5ZvPXRMl3bCMc8PxKzvr9GVSR3pulkJqhGIP7VFQMN/SxnjDFpJeC1AeXkAElMjH0RiUSIRLwkF01qka5k1rXeS7jeclFBblJP70FyE9Qq4Kq4dTOAB/pZzhhjTB8FAgECAQgSgPTMoZ2SmaCeBQIichVwN6533jHAY/0sZ4wxJosl7fJtVW0DzsUlnH3AdcAFqlorIteKyMrDlUtWrMYYY1IvqRfqqurbwLu6WX8LcMvhyhljjBk8bAAsY4wxackSlDHGmLSUjYPF5gDs2rUr1XEYY4zxxByTffcdzMYEVQVw6aWXpjoOY4wx71QFbPBTMBsT1GLgNKAaSO8BsYwxZvDIwSUn3zNTBPoz/4sxxhiTaNZJwhhjTFqyBGWMMSYtWYIyxhiTlixBGWOMSUuWoIwxxqQlS1DGGGPSkiUoY4wxackSlDHGmLSUjSNJ+CIixwL34SZD3AhcrqrvuMLZb7lM1If34CzgB8A0YDdwu6r+LJmxJkpf/78iUg68BXxHVX+dlCATrA+fgyrgp8DpQAvwc1W9PpmxJkof3oOTgB8DAtQCP1DV+5MZazKIyInAk6o6qofHJwC/AE7CHRO+rKpPDXQcg7IGJSL5wBPAw0A5cDOwSETK+lMuE/XhPRgPPArc5JX7GHCriJyd3IgHXj//v/cBY5MQXlL08T14AjeE2GjcgekTIvLxZMWaKH34LgS9cj9W1aG478LdXnLLCiISEJHPAIuA/F6KPoT7oTYcuAJ4SESmDHQ8gzJBAQuBPFW9S1XbVfUhYCXwkX6Wy0QL8ffaJgG/V9XHVDXs/ap8Djg1mcEmyEL68P8VkU8AZcCK5IWYcAvx8R6IyAJgCvAVVW1R1U3ec59NcryJsBB/n4MKYBQQEJEAEAE6gLZkBptg3wOuxP0g7ZaITAfm4c4itKnqM8CfgE8PdDCDNUHNAlbHrVsDzOlnuUzk67Wp6guq+vnosogMww3GuyzhESae7/+viEwGvgtcnoS4ksnvezAXl5hvEJEdIrIB+JCqVichxkTz+13YC9wN/AZoxw16eq2qxj83k92nqnOBJb2UmQVsVdXGmHUJOS4O1gRVAjTFrWsCivtZLhP1+bWJyFDcL6XXcKc6Mp2v90BEcoDfAV9T1WybaMzv5yD6w6QdV5O6EPhaNpziw//nIIhre/s4UISreX1XRN6XhBiTQlV3+iiWtOPiYO0k0Yj7gMUqBhr6WS4T9em1edX6J4BVwKWqGk5seEnh9z24HlBV/WNSokouv+9BK1Cnqjd4y8tF5H5covp9QiNMPL/vwYXAqar6dW/5eRH5BfA5XJvNYJG04+JgrUGtwvXCiTXDW9+fcpnI92sTkXfjak2PAxerakviw0sKv+/BR4GLReSAiBzAncq4V0TuTUKMieb3PVgDFHsdCqKy5Qeu3/dgPFAQt64DV6scTFYBE0QkNkkl5LiYLR+wvnoW19B5Fe6c8kW47qWP9bNcJvL12kTkKOBJ4DpV/UnSo0wsX++Bqs6IXRaRN4G7sqSbud/P+D9w3arvFJFrcAf0T+Ma1DOd3/dgEa4H62eB/wVOwPVg+0wSY005VVURWQ7cLCLfAk4BPgicPND7GpQ1KFVtA87FfRD3AdcBF6hqrYhcKyIrD1cuNZEPHL/vAfBFoBT3xWyIuf13aiIfOH14D7JWH74LLcB7cO1P1cDfgNtU9dHURD5w+vAerMSd5vsccAB3avObqpoN7bG9EpFLRST2FN5FwEzcNVD3A59W1bcHer82o64xxpi0NChrUMYYY9KfJShjjDFpyRKUMcaYtGQJyhhjTFqyBGWMMSYtWYIyxhiTlgbrhbomA4nIZmBiDw/nqWrHAO8vD7hCVe/1lm8AzlPVeQO5H2/bC3EXjJaqatoPpSUizwFLVPVrCdj2I0CDqn5yoLdtMoslKJNprgV+Fb9yoJOT5+PA94HokEZ3AIkaTeNloAo3zlkmuJDBN8SPSTJLUCbT1CdxRPFA7IJXs0lI7cYbzSBjRkpX1X2pjsFkP0tQJmt4p+AW4NpWTwK+AjwC3A5cAIzEJYGfqepN3nNycLWyK3BTSiwGvuSV/ZVXJoKb5nwhMaf4RGQecBswH5e4HgC+rart3im7R4CrcbWwCuBfwGdUtaab2BcSc4rP2+fHgG/hxr1bAvw78HXgMqAO+Jaq/tZ7/mbgB8ClXjzq3b/Yez0R4HZVvS2m/B2qere3PAnYBMxR1be9U3jPA8cC7wO2ec+/3yv/HN4pPi/W7kxS1S0ici5wq/c6Nnr77awFi8hluLm2qnDDB/U2k6sZRKyThMk25+ASwUnAU8APcYNYXoA7QP4YuFFE5nrlv4NLZF8FjscdiP8CvOKt24c7cL4cuxNv+pHncSM4z8cluMuAW2KKlQOfx41bdgEueX67D6/lB14MJwETgKW4xDQf+CPwMxEpiSl/M3AncBwQ8t6HScC7vPfhByIytQ/7/y/cILHHA08DPxWRym7KVcXcpgDrgIe85DQbeBS4Dzgal6zvFJGPAojI6cAvvfhOwCX68/sQo8liVoMymeZOEflB3LrzVPU5734zcGt0vioReQlXY1rqPX67iHwHmCUiS/Gmt47O9SQiXwRuwA2QexCIRE8pihwyI8NncbWBL6tqBFjjjYb9W68mB5ADXK2qb3jP/x0u2fh1j6o+6z33SeA83AyuERH5IfBlYDJdU9A/pKqPe+Ufwk3bfaWqNovIbd7yTGC9z/0/p6r3eNv7FvAF3Cjfh5yKjD3lKiIP4v4H0em/vwE8qKr3ecsbvBHyvwY8hEvgj8d0RLka9yPDGEtQJuPcipvdNtaOmPub4iZT/B1wnncaaTqudlGCSx4jcKfyFkcLq2o9cA28IyHFmw286iWnqBeBPGBazLq1MffrvMf9ik0kTcDmmP1F5+Qq6KX8LlVtBlDVkIi08875jHrTGbuq1nnvR4/xi8jXcaOCz1fV6Iyrs4E5IvKxmKK5dHWwOJqY/6eXfBdjDJagTObZo6q91QCa45Z/CbwX1z70AK7GtNx7rM37258h/eP3A12dKmJPnbf1UMaP+F5yh5vFuC/l419zd8eC+Nihh/hF5CzcKcYPquqGuO3+BHeKryfx22zrIR4zyNiHwGQtESnFtQudparPeOsqgaFAQFUPishuXNvHK97jRcBm4AP0nrhWAx8QkUBMreYUXJLYgGu3SWdtuPchakp/N+SdsnsY+J6q/jXu4dXA1NgfFSLyGWAWrgPJW7i2uVgneOvNIGcJymSzFtx1RReKyCZgDK5HX4CuU10/Aq73erWtxU1WdxBYBowDSkRkFq69KdY9uM4VPxGRu3FtQXcCv/ESXwJf1oBYDHxORJ7C9Zq7iX7UJEVkCPA48BLw87hOFAdx1469JiLXAv+H6xX4I29/AP8DvOC1PT0J/IdXxhKUsV58JnupajvuYtv34nrbPYCbtvspINqL73bgF7hZQZfheqK937su6Z/eumXA++O2vRPXmH8C7pTh/d72v5jQFzVwrsMl5Fdwcd/A4U8hdmc+rh3pPNzsqtUxt494HUQuBj4CrMTrTYjrno+qvgp8GNcLcjmuZvWHfr4mk2VsRl1jjDFpyWpQxhhj0pIlKGOMMWnJEpQxxpi0ZAnKGGNMWrIEZYwxJi1ZgjLGGJOWLEEZY4xJS5agjDHGpKX/D0lgQQrXu9AgAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot(infected_sweep)\n", "\n", @@ -478,7 +766,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 60, "metadata": {}, "outputs": [], "source": [ @@ -509,9 +797,22 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 61, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0., 60., 120., 180., 240., 300., 360., 420., 480.,\n", + " 540., 600., 660., 720., 780., 840., 900., 960., 1020.,\n", + " 1080., 1140., 1200.])" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "spending = linspace(0, 1200, 21)" ] @@ -531,7 +832,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 62, "metadata": {}, "outputs": [], "source": [ @@ -554,9 +855,27 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 63, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/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", @@ -593,7 +912,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 64, "metadata": {}, "outputs": [], "source": [ @@ -616,9 +935,20 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 65, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(0.3333333333333333, 0.25)" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "tc = 3 # time between contacts in days \n", "tr = 4 # recovery time in days\n", @@ -638,9 +968,29 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 66, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.3328871432717143 0.4667702312363652\n", + "100.0 0.3321342526691939 0.46414165040064037\n", + "200.0 0.33017160845482885 0.4572170063132055\n", + "300.0 0.32538647186519215 0.4398872029120663\n", + "400.0 0.3154039052420003 0.40163064627138245\n", + "500.0 0.3 0.3370342594898199\n", + "600.0 0.28459609475799963 0.26731703056804546\n", + "700.0 0.2746135281348078 0.22184699045990752\n", + "800.0 0.26982839154517113 0.20079159841614402\n", + "900.0 0.2678657473308061 0.1923921833925878\n", + "1000.0 0.26711285672828566 0.18921320781833872\n", + "1100.0 0.26683150821044227 0.18803175228016467\n", + "1200.0 0.26672740341296003 0.1875955039953746\n" + ] + } + ], "source": [ "spending_array = linspace(0, 1200, 13)\n", "\n", @@ -660,7 +1010,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 67, "metadata": {}, "outputs": [], "source": [ @@ -691,9 +1041,147 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 68, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
0.0000000.466770
63.1578950.465418
126.3157890.462905
189.4736840.458291
252.6315790.449980
315.7894740.435540
378.9473680.411960
442.1052630.377183
505.2631580.333171
568.4210530.287633
631.5789470.249745
694.7368420.223529
757.8947370.207480
821.0526320.198306
884.2105260.193244
947.3684210.190500
1010.5263160.189027
1073.6842110.188239
1136.8421050.187819
1200.0000000.187596
\n", + "
" + ], + "text/plain": [ + "0.000000 0.466770\n", + "63.157895 0.465418\n", + "126.315789 0.462905\n", + "189.473684 0.458291\n", + "252.631579 0.449980\n", + "315.789474 0.435540\n", + "378.947368 0.411960\n", + "442.105263 0.377183\n", + "505.263158 0.333171\n", + "568.421053 0.287633\n", + "631.578947 0.249745\n", + "694.736842 0.223529\n", + "757.894737 0.207480\n", + "821.052632 0.198306\n", + "884.210526 0.193244\n", + "947.368421 0.190500\n", + "1010.526316 0.189027\n", + "1073.684211 0.188239\n", + "1136.842105 0.187819\n", + "1200.000000 0.187596\n", + "dtype: float64" + ] + }, + "execution_count": 68, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "spending_array = linspace(0, 1200, 20)\n", "infected_sweep = sweep_hand_washing(spending_array)" @@ -708,9 +1196,27 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 69, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap05-fig05.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot(infected_sweep)\n", "\n", @@ -745,9 +1251,20 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 70, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "12" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "num_students = 90\n", "budget = 1200\n", @@ -768,9 +1285,29 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 71, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0.9888888888888889 0.26672740341296003 0.1875955039953746\n", + "1.0 0.9777777777777779 0.26683150821044227 0.1875955039953746\n", + "2.0 0.9666666666666667 0.26711285672828566 0.1875955039953746\n", + "3.0 0.9555555555555556 0.2678657473308061 0.1875955039953746\n", + "4.0 0.9444444444444445 0.26982839154517113 0.1875955039953746\n", + "5.0 0.9333333333333333 0.2746135281348078 0.1875955039953746\n", + "6.0 0.9222222222222223 0.28459609475799963 0.1875955039953746\n", + "7.0 0.9111111111111112 0.3 0.1875955039953746\n", + "8.0 0.9 0.3154039052420003 0.1875955039953746\n", + "9.0 0.888888888888889 0.32538647186519215 0.1875955039953746\n", + "10.0 0.8777777777777778 0.33017160845482885 0.1875955039953746\n", + "11.0 0.8666666666666667 0.3321342526691939 0.1875955039953746\n", + "12.0 0.8555555555555556 0.3328871432717143 0.1875955039953746\n" + ] + } + ], "source": [ "for doses in dose_array:\n", " fraction = doses / num_students\n", @@ -793,7 +1330,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 72, "metadata": {}, "outputs": [], "source": [ @@ -829,9 +1366,112 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 73, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
00.187596
10.174581
20.162910
30.153508
40.148565
50.152946
60.174964
70.217343
80.259071
90.278403
100.277915
110.267357
120.252797
\n", + "
" + ], + "text/plain": [ + "0 0.187596\n", + "1 0.174581\n", + "2 0.162910\n", + "3 0.153508\n", + "4 0.148565\n", + "5 0.152946\n", + "6 0.174964\n", + "7 0.217343\n", + "8 0.259071\n", + "9 0.278403\n", + "10 0.277915\n", + "11 0.267357\n", + "12 0.252797\n", + "dtype: float64" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "infected_sweep = sweep_doses(dose_array)" ] @@ -845,9 +1485,27 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 74, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap05-fig06.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot(infected_sweep)\n", "\n", @@ -879,12 +1537,48 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 76, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap05-fig06.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xd4nNWV+PHvqEuWLMlFcpGL3I4LNrgCNi7YBDAdQ0hhk2wI2YRkU0hhE4ckkLakLklIwqawSX6BQAi9xBiMwTa44EJxOy4qttybJKtaZX5/3FfSWEjyK1ujGUnn8zzzSPO2OTPgObr3vfeeQDAYxBhjjIk2MZEOwBhjjGmJJShjjDFRyRKUMcaYqGQJyhhjTFSyBGWMMSYqWYIyxhgTleIiHYDpOUTkz8An2jjkXlW9x8d1bgZWq+o+H8feDvxAVQe0sC8OqAEWquoSH9caBDwBTAEeVdW23suZrpUAfEpVf+c9/wFwmapedLbXjHYikgGcAGar6qpIx2Oin7WgTGf6EjDQe8zzts0I2fazM11AREYCjwNp5xqMqtZ6r/uqz1M+DQwBzge+do4v/zHguyHP7wOuOsdrGtOtWAvKdBpVLQFKAESkn7f5iKoebMdlAh0cU3teO8Odots74KVPex+qWtYB1zSmW7EEZaKOiFyIa1FMA04CfwG+7e3e6f3cJiLfVtUfiMjHga8DY4BqXIvoM6p66Ayvc1oXn4isAl4GpgKXAXuB+1T1/0Tkb8Ct3nlBYDbwBnAX8HmgD7AJ+KqqrvOOiwXuBm4HMoG13rE5wB+aXetKQrr4WvsMVLVWRC4D/gZ8E7gHSAdeB25X1SMiEg/cD9wM9AbeAr6iqutb+AxWAytV9a6QbQ8AI1T1KhG5CfgeMBI4APxaVX/R1ucacp1ewAPAIqAU+E6z/UnAt3CtyWxgvRfnW97+ubhW9XnAceCvwN2qWicigTN89hO9154GVABPAV9W1Qo/sZvoYF18JqqIyDhgOfAuMB34LPBJ4Ptel9zF3qGzgf8Rkdm4L/v7cAlqEe5L6RtnGcI3gRdx95mWAw+KSH/cF+EfgJW4bsG1wOe8x2eAycBSYLmIDPWu9T3vvC94+w8CLwArgK8CR0Ku5eszCDmsL/Ap4AbgJmAmsNjb92Vcgr0a9+Wej+sWbckjwAdDXjsWl9ge9u65PQr8FBDcZ/pjL3H48b/ARcBC4BbgK832/w74uPf+pgDbgZdFJNtLss8ATwPjvPd/B/Bv3rln+uwfBTZ77/864ArcHzGmC7EWlIk2nwF2qOqXvOfbRSQNeEhE7gWOetuPqmq5iFTgWg4Pe9sLReQ5YPxZvv4rqvoggIgs9uKZqKqveq91qqFb0Nv/FVX9l3fu90XkUuBz3r7PAt9R1ae94z+Pawmm4VoU9SHXas9nAO7f7pdVdZN3/t9xLT+A4bhWQ76qHhORO4HzRSRGVeubvd/HgF+IyAyv9THPi+9p3GcYB+xV1ULcZ3sAl0ja5A2I+DBwtaq+6W27A5fgEZG+uOR0U8MAFRH5LO4Pj88Bv8G1DA+oagFQICKX45I8uGTc4mePS6TDcX8AFKpqvohci2tdmy7EEpSJNhOA1c22rQISgFFAVegOVd0gIuUi8l3cX9rjvGu8dpavvyPk91LvZ3zzg0QkHRgE/J+I/ClkVyLuPls2ruvprZBYi3Etp+YJqbkzfQatxdoQ56+Aa4GDIvIGriXylxaSE6p6WESW4Vo463BJ5Rkv+W/AtUReEZHdwPPAX1X1cFvBe8YBscDGkG3rgIbVqcfienAa36fXdbcamODF9VPgTyLyfVzL8xFV3ePjswf4L+CXwH+KyBLgcVV9xkfcJopYF5+JNpUtbGsYUPC+/19F5ArgHdxfzK/h7vf8/hxe/1Qbrx+qIRn8G3BByGMcrluv4TpnUy7A72fQPNYAuFEcuO7OW3D37O4CNopIViuv9zDwQa9bbRGu2w9VrVfVj+BaZn/DdSOuE5GPtuO9hH52dUBDkmzpPTYcH+O9/l24RPYr7/0sE5H/4syfPar6AO7/ie/h/lB4XER+1464TRSwBGWizTaa7jM1mIn7Ms7n/V/4nwUeVtVPquqD3g32UXTwaL/mVPUorrtxkKruanjghtJ/QFWPAcdw91YAN2hARA6LyNQW3keoM30GbfK6yq5V1adU9dO4+0eDgUtaOeUpoL8XexB4ybvOZBH5qapuVNV7VHUG8CSulXUm24Ba4MKQbefjWlXgEmfoPUVEJMY7fruIDPcSSp6q/lhV5wE/B24902cvIhki8hugRlV/papX4e7L3eojbhNFrIvPRJtf47plfom7iT4Sd5P+IVU9KSIp3nEXePdDjgEzRWQyUA7cBnwAN8Iu3H4C3Csih4ANuNFoDfdRwI2ku0dE9gK7cPefjuNafKOA3t6AiOZJ50yfwZniygS+IyLHgd3A9d72t1s6WFXLRORZ3Lysv6lqjbfrBPAFETkB/B2X5GYAfwIQkVSgV0ujJVW1WEQeAu4XkVKgDPhtyP6TIvJb4JciUgUU4BLMEOCPuPtHtwC13ueQDiygqcu01c/ee+0FQJaIfAf3h/h1IeeaLsJaUCaqqGoRbsj1hbgv8v8FHgK+6O0/BPyZpqHn3wYKcTffV+FaC3cB54lIYpjD/TnwP97PrcCNuJv+a7z993mxPoT7Eu2HGzRQixvO/h4uaVwZetEzfQY+/BTXTfdXQHFJ+0ZVzWvjnIeBVO+8hjgKcCP6bvHe3z+9x33eId8A2lrN44u4EZFPA//CJba6kP134Vpkf8XdqxoLzFPVPFUtB67BtUDfxo3Sexu40zv3TJ/9DbiktgZ3n6sMl8RMFxKwirrGGGOikbWgjDHGRCVLUMYYY6KSJShjjDFRqUeN4vNumk/HrSlWd4bDjTHGdJxY3NJeb6mqr1U9elSCwiWnlZEOwhhjerDZuBG3Z9TTEtQBgIcffpgBA95Xv84YY0yYHDx4kFtvvRW872E/elqCqgMYMGAAOTk5kY7FGGN6It+3V2yQhDHGmKhkCcoYY0xUsgRljDEmKlmCMsYYE5UsQRljjIlKlqDa4VhJJRv1MGWVNWc+2BhjzDnpacPMz1pdfZDnVuZRVlnD2zuOcNOlo0hPDXc1B2OM6bmsBeVTTABiY93HVVFVw3Or8qisro1wVMYY031ZgvIpEAiwYNoQYmNcJfHik9W88EY+NbX1EY7MGGO6J0tQ7TCofyofuHAYgYBLUgePlbN0bSH19Vb00RhjOpolqHYalZPB7AsGNT7P31/Cik1FWGViY4zpWJagzsKkUf2ZIlmNzzfnHWPD9sMRjMgYY7ofS1Bn6eKJA5GhmY3P12w+wLb84xGMyBhjuhdLUGcpEAgwf9oQcrLSGrct37CXwgOlEYzKGGO6D0tQ5yA2NoarZg6nX0YyAPXBIEvWFHD4eEWEIzPGmK7PEtQ5SoiP5ZpLRtC7VwIANbX1PLcqj5IyXxWNjTHGtMISVAdITY7n2ktGkJTgFuaorK7luZV5VFTZkkjGGHO2LEF1kMzeSVw9K5c4b7WJ4rKGiby+i0caY4wJYQmqAw3s14vLQybyHjpewZLVNpHXGGPOhiWoDjZicDpzJg9ufF54sJTXNu61ibzGGNNOnbqauYicDzwITALygNtU9a02jp8BPK+qWSHbUoHfAFd5m5YAn1fVqBnfPXFkP8oqatiw/RAAW/OPk5qcwIwJAyIcmTHGdB2d1oISkQTgGeAxIAP4IbBURHq3cGxARG4HlgIJzXbf452fC4wCcrxtUeWi8wYwdlifxufrth5kS96xCEZkjDFdS2d28c0D4lX1flWtUdVHgS3Ah1o49l7gDuAHLewT72fA+1kPVHZwrOcsEAhw6bQhDB3QNJH3tY1F5O8viWBUxhjTdXRmghoPbGu2bTswsYVjH1TVqcD6FvbdD8wBioETQBItJ7KIi40JsPDi4WRlpgAQDAZ5aU0hB4+VRzgyY4yJfp2ZoFKB5kssVAApzQ9U1f1tXCce+AvQHxgAlAG/76AYO1x8XCzXXJLbOJG3tq6eF97I58TJqghHZowx0a0zE1Q5kNxsWwouwfgiIvHA34HfqupxVT0M3Anc2tK9rGiRkhTPdbNHkpxoE3mNMcavzkxQW2m6f9RgrLfdr1TcAInEkG21QND7GbUy0hJPm8hbWn6K51blcarGJvIaY0xLOjNBLQcCInKniMSLyIdxw82f8nsBVT0BvAn8RETSRSQd+DHwrKpG/QqtA/r24oqLmibyHjlRyZI1BdTZRF5jjHmfTktQqnoKWAjcBBwHvgXcoKpHRGSxiGzxeakPAqXATkBxAyVuC0PIYZE7KJ15U3Ian+85eJLl620irzHGNBfoSV+MIjIcyF+2bBk5OTlnOjys1m05yLqtBxufTxuXzUXnDYxgRMYYEz5FRUUsWLAAIFdVC/ycY0sdRcj08dmMz22ayLt+2yHe2300ghEZY0x0sQQVIYFAgHlThjBsQNPgwxWb9pG3zybyGmMMWIKKqJiYAFdePIzsPk0TeZeuLeTAUZvIa4wxlqAiLD4ulqtn5ZKR6kbON07kLbWJvMaYns0SVBRISYrn2tkjGifyVp2q5blVeZRX2kReY0zPZQkqSqSnJnLtJSOIjzt9Im+1TeQ1xvRQrdaDEpGXcSs0nJGqXt5hEfVgWX1SuPKi4bzwRj71wSBHiyt5YVU+185uSlzGGNNTtPWttxlXDmMLsAdYgCtx8RbwBq7ExTzev0K5OQfDBvbm0qlDGp/vP1rGv97Mp66uPoJRGWNM52u1BaWqdzb8LiL/BO5W1f8OPUZEvgRcE77weqZxuX2orqll1TtuUfc9h06ydG0hV1w0nJiYwBnONsaY7sFvv9FC4J8tbH8RmNVx4ZgGF4zJOq1E/O59Jby6fo8tiWSM6TH8Jqg83Bp4zf071sUXNtPHZTN5TFbj8+2FJ3h9Y5ElKWNMj9BqF18z/wU8LSJXAxtx96Jm4KrkLgxTbD1eIBBg5qSB1NTWsTnvGACb844RHx/LzIkDG1dFN8aY7shXC0pVXwTOB9YAo4FRwGvAJFVdGbboDIFAgLlTcpChmY3bNulh1m87FMGojDEm/Py2oFDVbcBXRSQNKFdVG1bWSQKBAAumD6Wmrr5xrb61Ww6SEBfL+WP6Rzg6Y4wJD9+Ta0TkKyJyAFd/abiI/J+I3C8ivpOcOXsxMQGuuHAYQ7PTGretfGcfW7yuP2OM6W58JSgR+SrwJeAuoNrb/AzwIeBH4QnNNBcbG8PCmbkM6tercdtrG4vYsedEBKMyxpjw8NuC+jTwWVX9f0A9gKo+DXwC+GiYYjMtiI+L4epLRpCV2bQC+ivr9pC/38p0GGO6F78JaiiwvYXtBUCfFrabMEqMj+Xa2SPo0zsJgPpgkCWrC9h76GRkAzPGmA7kN0FtAm4Jed4wEeez3j7TyZIT47h+zkjSvTIddfVBXnwj32pJGWO6Db8J6mvAYhF5AUgE7hWRdcB/AN8IV3Cmbb2S47l+zkhSk+MBqKmr57lVeRw+URHhyIwx5tz5nQe1GhiDay29AGTi5kGNs3lQkdW7VwLXzx3ZWEvqVE0dz67I47gVPDTGdHF+R/EtBkpV9W5VvVFVr1XVu4ASEflJeEM0Z5KZlsT1c0aSmBALuIKHz7y+m5Ky6jOcaYwx0autelADgYZJN98HlotI80k3k4Ev4Iafmwjql5HMdbNH8vTru6iprae8qoZnVuxm0bxRpKYkRDo8Y4xpt7ZaUDNxI/caFoN9w3se+vi79zBRILtPCtdcMoK42KaqvE+v2E1FlZWON8Z0Pa0mKFV9ArfmnuAWh70Ytw5fw2MUMEBVb+uEOI1Pg/unsvDiprpRxSereXZlHlWnaiMcmTHGtE+b96BUNU9VdwHxwDEgTVV3q+pu4EqaugBNFBk2sDeXXziscbXzo8WVPL8qn1M1dRGOzBhj/PM7zPxK4D3g6pBti4B3RGR+h0dlztmonAwWTGsqHX/wWDkvvplPrZWON8Z0EX4T1I+Axar6w4YNqnoZ8G3gp+EIzJy7scP7MHdyTuPzosNlLFldQJ0lKWNMF+A3QY3GLQ7b3DPAuI4Lx3S0iaP6MXPioMbnBQdKeeWtPdTXW1VeY0x085ugdgLXtLD9CmBvx4VjwmHK2CymjctufL5zbzHLN+y10vHGmKjmt5bTj4CHRWQW8BZuLb4pwM2AjeLrAi6cMICamnre2XUEgG0Fx4mPi2H2BYOtdLwxJir5XeroMeAq3Gi+23FlNhKB+ar6cPjCMx0lEAhwyQWDGDe8afH5d3cdZc3mgxGMyhhjWteeku9LgaVhjMWEWSAQ4NKpQ6itq2fn3mIANmw/REJ8DFPHZp/hbGOM6Vy+E5SILMKtaj4GmI4rtXFAVe8PU2wmDGJiAlw2fSg1tfUUHCgFYPV7B4iPi2HSqP4Rjs4YY5r4XSz2Y8AfgX8BKbiVJfKA74uIrcPXxcTGxnDlxcPJyUpt3LZi0z7e9e5PGWNMNPA7iu/rwB2q+n2gDkBV/xc3QOIOvy8mIueLyGoRKReR90Rk+hmOnyEih1vYvlhE9olIiYi8JCJDWjrftC4uNoarZ+UyoG+vxm0rNu3j7R3v+7iNMSYi/CaoUcC6FrZvBAb4uYCIJODmTT0GZAA/BJaKSO8Wjg2IyO24e14JzfZ9HvgkMAfIwg1z/5PP92FCxMe50vGhSWrVO/vZuN2SlDEm8vwmqB1AS0sa3Qyoz2vMA+JV9X5VrVHVR4EtwIdaOPZeXMvsBy3s+0/gLm9NwGrgK8BXfcZgmkmMj+W62SMY1K8pSb353n7WbzsUwaiMMcZ/grob+JWI/AY3sOLTIvIPXAK5x+c1xtNUuqPBdmBiC8c+qKpTgfWhG0WkFzAWyBCRTV733x8B+zY9BwnxriU1uH/TPak1mw+wbutBm8xrjIkYv/OgnseV20jHJZWGVSVmqurTPl8rFahotq0CN+ii+evtb+Uamd7PTwPX4boeg8DffMZgWhEfF8s1l4wgJ6tpgfp1Ww6ydoslKWNMZLRVUXcXMEdV93sl3/9HVf/tHF6rHEhuti0FKGvHNRpqmN+nqnu9OBcDO0UkTVVPnkN8PV58XAzXXJLLi2/ms+eg+yjXbztEfX2QiycOtBUnjDGdqq0W1EBcdxq4ku+pbRzrx1Zc8cNQY73tvqjqEVxdqsyQzQ1J1r49O0BcbAxXzcxl+MCmsSsb9TBvvLvfWlLGmE7V1kTdJ4FXRKShFOs+keb5xVHVhBZ3nG45EBCRO4EHgJuAScBT/sMF4P+Ab4nIa8BR3GjAF1S1tJ3XMa2Ii41h4cXDWbKmkPz9JQC8veMI9fVBW7vPGNNp2kpQHwf+gGutPIW771N8ti+kqqdEZCHwIPA9oAC4QVWPeN10t6rqBB+XWgxUAa8DfYCXsQVrO1zDZN6lawvZXeT+s7+76yj19UHmTsmxJGWMCbuAn24bEfkU8DdvWHeXJSLDgfxly5aRk5NzpsMNUFcf5JV1hY1r9wGMz+3DpVOHWJIyxvhWVFTEggULAHJVtcDPOX7X4nsIuEZEpuJWND/tm0lVF7cjTtOFxMYE+MCMYcQEAuieEwBszT9OfX2Q+dOGEhNjScoYEx5+E9QvgC8Cm4Hm93rsznk3FxMTYMF0l4y2FRwHYHvhCeqDcNl0S1LGmPDwm6BuAT7nrb9neqCYmADzp7luva35xwDYsecEwWCQy2YMI9aSlDGmg/ldSSIJeDWcgZjo5+pJ5XDeyH6N23buLWbpmgLq6uojGJkxpjvym6D+AtwpIrHhDMZEv0AgwNzJg5k0qilJ7d5XwpI1hZakjDEdym8XXw5wPXCLiBQAp0J3qurMjg3LRLNAIMDsCwYTExPg7R2uhlT+/hJefLOAhTOHExfr9+8eY4xpnd8EpcBPwhmI6VoCgQCzJg0iJhBgo7ryHIUHS3nxjXyumpVrScoYc858JShV/Xa4AzFdTyAQ4OKJA4mNCfCWV55jz6GTPL8qn6tnDSc+znqEjTFnr63FYn8E/EBVK7zfW2XzoHquQCDAhecNJBATYN2WgwAUHT7JcyvzuXZ2riUpY8xZa6sFNRtXzbbC+701Ng/KMGP8AGICAdZsPgDA/qNlPLsij2tnjyAh3pKUMab9Wk1Qqjq7pd+Nac20cdnExAR4811XzuvAsXKeXemSVKIlKWNMO9mdbNOhpkgWs88f3Pj84LFynnl9N1Wnats4yxhj3s8SlOlw54/pz9zJTYvxHj5R4ZJUtSUpY4x/lqBMWEwc1Y9Lpw5pfH6kuJKnV+ymoqomglEZY7oSS1AmbCaM6Nu4fh/A0eJKnnndkpQxxh+/E3URkb7ARFout7G0g+My3cT43L7ExARY9tZegsEgx0qreGL5Lq6bPYL01MRIh2eMiWK+EpSI/DvwO6Clb5QgYEO0TKvGDutDTCDAy+v2EAwGKSmr5p+v7uTa2SPIykyJdHjGmCjlt4vvG8Cfgb64FlToIyEskZluZczQTK4KWaevsrqWp17bxd5DJyMcmTEmWvnt4hsC/I+qnghnMKZ7yx2UzvVzRvL8G3lUn6qjprae51blcdn0oYwZmhnp8IwxUcZvC+oVYG44AzE9w8B+vVg0bxSpyfEA1NcHWbq2kLd3HI5wZMaYaOO3BbUB+KWIXAvs4P3lNmwtPuNb3/Rkbp4/mmdX5nG8tAqAVe/sp7yqlpkTBzaO+jPG9Gx+E9QHcEkqE7iw2T5bi8+0W2pKAovmjeKFN/I5cKwcgE16mMqqGi6dNtRKyBtjfJfbsLX4TIdLSozj+rkjeWlNIfn7SwDYXniCiupaFl5s5TqM6enaMw+qP/A5YALu3tU24I+qWhim2EwPEBcbw8KLh/P6piK25B0DYM/Bkzz9+m6unpVLSlJ8hCM0xkSKr0ESIjINd+/pw0AZcBK4CXhPRCaHLzzTE8TEBJg3JYcZ4wc0bjt0vIInl++ipKw6gpEZYyLJ7yi+XwCPAxNU9TZV/SSuJfUw8LNwBWd6jkAgwIwJA5g3JadxkERxWTVPLN/F0eLKCEdnjIkEvwlqGvBzVa1v2KCqQeB+3j9owpizdt7Iflx50bDGQRIVVTU8+douig7bhF5jehq/CeoQMLSF7cNxXX7GdJiRORlcN2dkY5HDUzV1PLcyj117iyMcmTGmM/kdJPE34Pci8kVgjbftYuCXuG4+YzrU4P6pLLp0FM+tzKOssoa6+iAvrS2korqGSaP6Rzo8Y0wn8NuC+gHwGvAUcNB7/BN4BvhmWCIzPV7f9GQWXTqajDS3RnEwGGTFpn2sfu8AwaBNvzOmu/OVoFS12hsYkQXMxt2T6qOqX1bVU22fbczZ690rgZsvHc2Avr0at23YfohX1++lvt6SlDHdWatdfCJyOfCqqtZ6v4dKBfqLCGD1oEx4JSXGcf2cEby0ppCCA6UAbCs4TmV1LVdcNJz4OKu7aUx31NY9qCXAAOCw93trrB6UCbv4uFgWzszltQ172VZwHICCA6U8s2I318zKJSnR95xzY0wX0dafnvGq2rDEdPMaUFYPynS62JgA86cNYerY7MZtB4+V88/lOyktt55mY7qbVhOUqtaFPP0XkKqqdaEPoA/wZriDNKZBIBDg4okDmTN5cNOE3pPVPLl8J8dKbEKvMd1JW/eg5gBjvacLgNtFpPlsyXGA+H0xETkfeBCYBOQBt6nqW20cPwN4XlWzWtn/a2Ciqs7zG4PpHiaN6k9yYhyvrNtDXX2Qssoanly+i6tn5TKof2qkwzPGdIC2Ou5LgLuBgPf4ClAfsj+Im6R7l58XEpEE3LD0+4E5uLX8lorIMFUtbXZsAPgUbSyjJCILgTuAVX5e33Q/o4dkkpwYx4tvFnCqpo7qmjqeWbGbyy8cxsicjEiHZ4w5R60mKFV9B2/1CBFZCVyrqucylX8e7r7W/d7zR0XkP4EPAX9oduy9wNW4+Vd3N7+Qt7L6r4HfARPPISbTxeVkpXHj3FE8tyqPiio3oXfJmkLmTq7lvJH9Ih2eMeYc+J0HNRu4TkQWNWwTkUdE5CPteK3xuBIdobbTcoJ5UFWnAutbudZDwH3A7na8vumm+mcmc9Olo8hIbZrQ+9rGItZutgm9xnRlfsttfAP4FZAYsnkn8BsR+YLP10oFKpptqwBSmh+oqvvbiOVzQL2q/tHn65oeID01kUWXjiK7T9P/Tm9tO8TStYXU1Na1caYxJlr5neF4B/BhVf17wwZV/S7wMeBOn9coB5KbbUuhHYvNisg44OvA7X7PMT1HSlI8N8wdydABaY3bdu4t5snluzhZYcPQjelq/CaovkBBC9t34ibz+rGV94/4G+tt92sRbrmlnSJSDPw3cIn3uzHEx8Vy9awRTAy5/3SkuJJ/vLKD/Uds4X1juhK/CWot8DURaVwxQkRigC/T+n2i5pYDARG5U0TiReTDuOHmT/kNVlV/qKq9VDVDVTNwC9Wu8n43BnATeudOyeHSqUOI8eZKVVbX8vSK3Y1l5Y0x0c9vgvoarvVSICLPi8hzQD5wMz67+LxFZRfihpcfB74F3KCqR0RksYhsaXf0xrRhwoi+3DB3JMneMkj19UGWb9jL6xuLqLOFZo2JegG/o5y8od0fxU3OPQXsAP7afA5TNBOR4UD+smXLyMnJiXQ4ppOcrDjFi2/kcySkdPzg/qlcefHwxuRljAmvoqIiFixYAJCrqgV+zvH9r1NVj+AKFJ5GRLJV9ZDf6xjT2dJSElh06WheXb+HnV5V3n1Hynh82Q6umplLv4zmY3eMMdHAV4ISkVHAj3FzmRruQwVww84H4haNNSZqxcfFcPmFw+ibnszaLQcJBoOUlp/iiVd3smDGUEbZyhPGRB2/96AeBEYD/wcMw02UXY4bwffZ8IRmTMcKBAJMG5fNVTOHkxDv/s6qqatnyeoC1nlJyxgTPfwmqIuAT6vqT4C3gZWq+h/AYuCWcAVnTDjkDkrn5vmjSU9tmne+butBlqwusEm9xkQRvwkqBjjg/a7AZO/3J4CpHR2UMeHWp3cSH5w/miHZTZN6d+8r4Z/LdlJSVh3ByIwxDfwmqHeB673ft+BWIweZfPcYAAAb3ElEQVR3/8mq6ZouKSkxjmsvGcH5o/s3bjtWWsXjy3ay91DzyjLGmM7mN0HdC/xMRO4AHgYWisgrwD9xxQyN6ZJiYgLMvmAwC6YNJTbGTeqtOlXLcyvzeHfXEbsvZUwE+V3N/F+4ZYleVtUi4BJcq+o3wKfDF54xnWNcbh9unDeKlCQ3ILU+GGTFpn0s31BEXV39Gc42xoSD32Hm64FPqup70Fgr6ivhDMyYzjagby9uuWwM/3ozn0PH3cL7W/OPcaK0ioUzhzcmL2NM5/DbxTcEqAlnIMZEg9TkeG6cNwoZmtm47cCxcv7xyg4OH29eLcYYE05+V5J4EHhGRB4E8oDK0J2qurSjAzMmUuJiY7hsxlD6ZiSz+j1X9LCssoYnX9vF/GlDGBOSvIwx4eM3QX3b+/nzFvYFsZF8ppsJBAJMkSz6piexdE0h1TV11NbVs3RtIcdKKrlwwkBivEEVxpjwaLWLT0RuE5Fe3tP4Nh4J4Q7SmEgZNqA3Ny8YTUZa06TeDdsP8+Kb+VTX2KReY8KprRbUA8BSXCXcSmCQqh7tlKiMiSKZaUncPH80L6/dQ+FBt3h/wYFS/rlsJ1fPyj0teRljOk5bCeoA8FsRWesd9xURabEkqar+KBzBGRMtkhLiuHpWLms2H2CjHgbgxMkqHn91B1dcOIyhA3pHOEJjup+2EtRtwHdxBQaDwLVAbQvHBQFLUKbbi4kJMHPSIPqmJ7F8QxG1dfVUn6rjuVX5XHTeAKZIFoGA3ZcypqO0mqBU9XVgPoCI7AXmqarVyzY9ngzrQ2ZaEi++mU9ZZQ3BYJDV7x1g76EyLpsxlNRkmy9lTEfwu5LEEEtOxjTJ6pPCBxeMYWDfXo3big6f5LGXlfz9JRGMzJjuw+9EXWNMM72S47lh3iimjs1u7NqrrK7lhTfyWbHJdQEaY86eJShjzkFsTICLJw7k+jkjTuvae3fXUR5/ZQfHSirbONsY0xZLUMZ0gJysND78ASF3UHrjtobSHe/tPmqrohtzFixBGdNBkhLjuGrmcOZNySEu1v3Tqq2r5/WNRbz4ZgGV1S0NgjXGtKbVUXwicgA3hPyMVHVQh0VkTBcWCAQ4b2Q/BvbrxdK1exq7+PL3l/DYyxVcNmMoOVlpZ7iKMQbangd1d6dFYUw30zc9mQ8uGM2b7+7n3V1uAZayyhqeWZHHFMlixoQBjQUSjTEta2se1J/8XEBEbNKHMS2Ii41hzuQchmSn8er6vVRW1xIMBtmw/RBFh09y+YXDSE+1ZZKMaY3fgoX9gW8A42lauTwAJALnAX3CEp0x3UDuoHQ+/IEUXnlrD3sPnQTg0PEKHntlB3MnD0aG2T8fY1rid5DE74FbgHzgUmAnUI8r/f7D8IRmTPfRKzme62aPYOakQcR4c6ZO1dTx8ro9vLy2kFO2Mrox7+M3Qc0HPqGqnwO2AA+p6hXAT4CZ4QrOmO6kocbUzfNHkxHStad7TvDoy8rBY+URjM6Y6OM3QSXiWk0A24Cp3u8PAbM6OihjurOsPincctkYxg1v6torLT/Fk8t3sX7bIerrbc6UMeA/Qe2gKRFtAy70fk/xHsaYdkiIj2XB9KFcfuEwEuLdbd36YJA1mw/wzIrdlFXWRDhCYyLPb8n3nwF/FpFY4DHgHREJAhcBq8IVnDHd3ZihmQzo24ulawsbu/j2HSnj0aXK/GlDGDE4/QxXMKb78rua+V+By4BtqqrA9biRe6uBT4YvPGO6v969Elg0bxTTxzUtOlt1qpYX38zntQ17qam1RWdNz+QrQYnIYmCDqm4EUNWXVHUR8FXvYYw5BzExAS48byA3zh152qKzm/OO8fiyHRwttkVnTc/T1lJHA4GGNVm+DywXkeY1oS4AvgDcFZ7wjOlZBvVP5cOXC8s3FLG7qBiA46VVPL5sB7POH8TEkf2saq/pMdq6BzUTeJym9fhW4SbnNvfnDo7JmB4tKSGOKy8axtb8NFa+vY/aunrq6oOs2LSPPQdPMm/qEKvaa3qEtpY6ekJERuG6AXcAFwNHQw4JAmWqetjvi4nI+cCDwCQgD7hNVd9q4/gZwPOqmhWyLQv4JbAAlzD/BXxJVU/4jcOYaBcIBJgwoi+D+rkBFEe8Lr6CA6U8vGQbF00YyMRR/Yix9fxMN9bmPShVzVPVXUC8qq4F9uLmRCUDh9qZnBKAZ3CjADNwK1AsFZHeLRwbEJHbgaVAQrPdfwRqgVxgNJAJ/MZvHMZ0JZm9k7h5/mjOH92/cVtNbT0r39nHP5btsMm9plvzOw8qKCI/BEqA94B3gaMi8oA39NyPebhEd7+q1qjqo7hVKT7UwrH3AncAPwjdKCIxuCWW7lXVclUtBv6AW3LJmG4pNjaG2RcM5sZ5o+jTO6lx+9HiSp5YvovlG/ZSZbWmTDfkN0H9ALgN+BSu5ZLr/X4D8G2f1xiPm+QbajswsYVjH1TVqcD60I2qWq+qN3itugY3AJt8xmBMlzW4fyofumwMF503sLEgYjAYZEveMR5+aTvbC45b5V7TrfidqPsJ4NOq+nzItkIRKQF+B9zj4xqpQEWzbRW0sBKFqu73E5SIfA2XoGw9QNMjxMbGMG1cNqOHZLDq7X3kHygFoLK6llfe2sPW/OPMnTKYvunJEY7UmHPnN0Gl4QZKNLcL6N/C9paU4+5dhUoBynye38irQfVr4Fpgvqpub+81jOnK0lMTuWpWLvn7S1mxqahxaaT9R8t47OUdXDCmP9PHZxMf57cH3pjo47eLbz3w2Ra234H/7rWtgDTbNtbb7puIpAEvA9OBGar6dnvON6a7CAQCjBiczq1XjmWyZDWW8agPBtmoh/n7UiV/f0mEozTm7PltQX0TeFVE5uGWNwI37Hw0cKXPaywHAiJyJ/AAcBNuuPlTvqN1HsUl1tmq2rzL0JgeJz4ullmTBjF2WCavbyxi/1E3sq+0/BQvvJFP7qB05kweTFpK8wGxxkQ3v2vxrcWV2Hgdl5RycEPAx6rqGz6vcQpYiEtMx4FvATeo6hERWSwiW850DRGZBFwFzAAOi0iZ9yjyE4Mx3Vnf9GRunDeKBdOGkpTQ9Ldn/v4SHlmynY3bD1NnpTxMFxJobdSPiHwH+Fl3aqWIyHAgf9myZeTk5EQ6HGPCpqq6ljffO8DW/NNXJ+vTO4l5U3IY1D81QpGZnqqoqIgFCxYA5KpqgZ9z2mpBfRc38s4Y08UkJcYxf9oQbrp09Gkj+o6XVvHka7tY9tYeKqqs5pSJbm0lKFtDxZgubmC/Xtxy2RhmTRpEfFzTP/dtBcd5+KXtbMk7ZnOnTNQ60yCJHBFJOsMxqOqeDorHGNPBYmMCTJYsRg/JYOXb+9i9z43sqz5Vx/INe9lWcJx5U3Lol2Fzp0x0OVOCanUhV08At2isTbYwJsqlpiSwcGYuhQdKeX1TEaXlpwA4eKycf7yyg0mj+zFj/IDGEvTGRNqZEtSlQPMaUMaYLmzYwN58pP9YNmw/xEY9TH19kPpgkLd3HGHX3mIuuWAwIwenW90pE3FtJaggsL09K5YbY7qG+LgYLjpvIDI0k9c3FVF02C3oUlZZw5LVBQwdkMacC3LISEuMbKCmR7NBEsb0YJm9k7h+zkg+MGMoyYlNf6/uOXiSR17azivrCjlRWhXBCE1P1lYL6i9AZWcFYoyJjEAggAzrw7CBvVm7+SCbvZF99cEg2wtPoHuKGZWTzrRx2bYIrelUbVXU/WRnBmKMiaykhDjmTslh7PA+rH7vAEWHTwKupMfOvcXs3FvMiMHpTBubTVaf9xUhMKbD+V2LzxjTQ2T3SeGGuSM5eKyct7YeovBgaeO+vH0l5O0rYdiA3kwfn82Avr0iGKnp7ixBGWNaNKBvL66dPYLDxytYv/0QefuaVkYvPFhK4cFScrLSmD4+m0H9etmoP9PhLEEZY9qU1SeFq2bmcqykkvXbDrGrqKRx9YmiwycpOnySQf16MXVcNkOz0yxRmQ5jCcoY40vf9GSuuGg4M05WsWHbIXbsKabeS1T7j5azf2Ue2X1SmDYum+EDe1uiMufMEpQxpl0y05K4bMYwpo8fwEY9zLaC49R7ZTwOHa/ghTfy6ZeRzLRx2Tbh15wTS1DGmLOSnprIpVOHMG1cNpv0MFvyjjXWmzpaXMmS1QX06Z3E1LFZjB6SSUyMJSrTPn5LvhtjTIvSUhKYMzmHj181nsljsoiPbfpaOV5axcvr9vDIS9vZmn/MCiaadrEEZYzpEL2S45l1/iA+dtU4po7NPm3R2eKyal5dv5eHl2xj8+6j1NXVRzBS01VYF58xpkOlJMVz8cSBTJb+vLvrKO/sPEL1qToASstP8drGItZvO8TkMVmMH9H3tDpVxoSyBGWMCYukhDhmjB/ABaP7897uo7y94wiV1bWAW5R25Tv7WL/dJaqxwzNJSYqPcMQm2liCMsaEVUJ8LFPHZjNpVD+25B1jkx6h3Cs3X1ldy5vv7Wf15gMM6teLUTkZjMxJt2QVRWpq68nfX8KRE5UMHZDGkOy0TnttS1DGmE4RHxfLBWOyOG9kP7blH2fD9kOUVbpEFQwG2XekjH1Hyljx9j5LVhFWX+/+e2jhCXbvK6am1t0zfG/3UT59/XnExnZOt6wlKGNMp4qLjWHiqH6Mz+2D7jmBFp5g/9HyxtUpLFlFRjAY5GhxFbrnODv3FDe2ckOlJsd36nQBS1DGmIiIjY1hfG5fxuf2paKqht1FJewqKrZk1clKy0+xY88Jduw5wfFWan9lpCUiQzM5b2S/Tp14bQnKGBNxKUnxTBzVj4mj+lmy6gRV1bXsKipmx55i9h8ta/GY5MQ4xgzNRIZm0j8zOSIrgliCMsZEFUtW4VFbV0/BgVJ27DlBwYHSxuWpQsXHxTBiUDpjhmUyJCst4qt/WIIyxkQtS1bnJhgMsv9oOVp4nN1FJVTX1L3vmJhAgCHZaciwTHIH9SY+LraFK0WGJShjTJdgycq/YyWVaKG7r9QwUrK57D4pjBmayeghGVH72ViCMsZ0OWebrIZkp5GRmkh6aiLpqQmnLcfU1ZVVnGLH3mJ27DnB0eLKFo9JT3WDHUYPzSAzLamTI2w/S1DGmC6tvcmq+bkZXrJKT00kIy2R9F6JZKQlRFVXV0uCwSCV1bWN95X2HWl6v6GSEuIYPSQDGZZJdp+ULlX+xBKUMabb8JOsQlVU1VBRVcP+o++/Vq+keC9pJXgtrsTGZBau5FVf75JORVUtFdU1jb9XVtW6WKtrG7dVVdc2FoxsLi42htxB6ciwTIZkpxHbRUudWIIyxnRLzZNV/v5STpysouRkNSfKqiktP9XiSLYG5VU1lLeSvFKT4+nttbQyUpPonZrQ2HXYfPHburr6kKTjJZqqpkRTWV3jElB1LVWn6lpMpH4EAgFyslKRoZmMGJzeLbovLUEZY7q9lKR4Jozoe9q2+vogJytOUVJWTUnZKYrLqikpq6bYR/Iqq6yhrLL15NUrOZ7qmjoqq2sbV3IPh8SEWDJSExk9JINRQzJJTY7OwQ5nyxKUMaZHiokJNHbdNdeQvIrLqin1klfxyWpKyt3z1rrWoCl5nY1AIEBSQiwpiXEkJ8WTnBhHSpL3SIwnJSmucVtyYlynrYkXKZagjDGmGb/Jq6SsmpKTTb+Xlr8/ecUEAiQ1JJqG5BKafBLjSElyyScpIS7ik2OjiSUoY4xpBz/Jq7yyhsSEWJITXUunK42ciyadmqBE5HzgQWASkAfcpqpvtXH8DOB5Vc0K2ZYAPADcDNQBv1DV/w5r4MYY40Nbycu0X6d1YHqJ5RngMSAD+CGwVER6t3BsQERuB5YCCc123wsIMBKYDnxCRD4eztiNMcZ0vs68wzYPiFfV+1W1RlUfBbYAH2rh2HuBO4AftLDvE8APVfWEqhYAPwM+E56QjTHGREpnJqjxwLZm27YDE1s49kFVnQqsD90oIhnAQGCrj2sYY4zpwjozQaUCFc22VQApzQ9U1f1tXKPhvDavYYwxpmvrzARVDiQ325YCtFwtq/Vr0Ow67b2GMcaYLqAzR/FtBe5stm0s8Fe/F1DVEyJyEDdIYl/INba2ftZpYgEOHjzo9yWNMcZ0gJDvXd9rMHVmgloOBETkTtww8Ztww82faud1/h/wXRF5F9fl9zXglz7PHQhw6623tvMljTHGdJCBwG4/B3ZaglLVUyKyEDcP6ntAAXCDqh4RkcXArao6wcelvgP8HDcCMAb4vXdNP94CZgMHcHOojDHGdI5YXHJqde5rc4GzXTnXGGOMCafuvdKgMcaYLssSlDHGmKhkCcoYY0xUsgRljDEmKlmCMsYYE5UsQRljjIlKlqCMMcZEJUtQxhhjopKVfPepvdWAuwIR+QBwHzAaOAz8VFX/N7JRdQyvNMu7wHdU9c8RDuecichA4HfApUAV8HtV/XZkozo3InIR8Cvc2ppHgPtU9Y+RjersNa8A3h2qf7fwnrJwS8stAALAv4AvqeqJcLy+taB8aE814K5CRIYAT+CKQmYAHwH+W0SuiGhgHedBYHCkg+hAz+CW6MoGLsJVkv5oZEM6eyISg3tPv1LVdNz/fw94fwh2KW1UAO+y1b/beE9/BGqBXNwftpnAb8IVhyUof+bhvxpwVzEceERVn1LVeq81+BowK6JRdQAR+QTQG3gv0rF0BBG5EBgBfFFVq1Q1H/f/5PKIBnZuMoEs3ALSASCI++I7FdGozk5rFcC7cvXv970n74+KeuBeVS1X1WLgD8Al4QrCEpQ/7akG3CWo6kpV/WzDcxHpg1tId1Pkojp3IpILfBe4LdKxdKCpuGR7j4jsE5HdwI2qeiDCcZ01VT2G6/76C1CDW0B0sao2/3fWFbyvAng3qP79vvfk/SF7g6ruCjnuBsL4nWEJyh/f1YC7IhFJB54F1uK6XbokEYkF/gZ8TVW7U9Gvhj8eanAtqUXA17pBF18V8FFcAdJ5uDI6l0cyrrPRSgXwLl39u42q5o1E5Gu4BPVf4YrDBkn40xHVgKOSiIzBJaWtuJIn9REO6Vx8G1BVfTLSgXSwaqBUVe/xnr8jIn/EJapHIhbVuVkEzFLVr3vPXxeRP+G6wJZGLqwO022rf4tIPPBr4FpgvqpuD9drWQvKn624m52h2lPJNyqJyBxcq+lp4GZVrYpwSOfqw8DNIlIsIsW47pTfishvIxzXudoOpHiDdRp09T8uhwCJzbbV4lqJXZ43qq2h+neD7vCdkQa8jBv0MUNV3w7n63X1/8k7S0dVA44aIjISeB74lqr+OtLxdARVHRv6XETeBu7vBsPMX8YNw/65iHwV96X3KdxN7K5qKW7U6H/gbrRPAT4N3B7RqDrWuVT/jlaP4ho2s1W1+W2PDmctKB9U9RSwEJeYjgPfwqsGHNHAzs3ngTTcl0RZyOPHkQ7MnM5r2c7F3X86ACwBfqKqT0Q0sHOgqltw3XyfAYpxXZXfUNUuew+0Bd8BNuNG/L6Fm9bht/p31BGRScBVwAzgcMh3RlG4XtMq6hpjjIlK1oIyxhgTlSxBGWOMiUqWoIwxxkQlS1DGGGOikiUoY4wxUckSlDHGmKhkE3VNtyQiBcCwkE2VwA5ceYeHIhHTuRKRHwH/iVv5e3i4avC0h4i8BqxX1a9FOhbT/VgLynRni3ErSg8CJgMP4WoOdbkvUxEZDHwT+CpwfjQkJ88iXGkGYzqctaBMd3YyZFXzA4CKSC3wMxH5q6oejmBs7ZXh/XzFqy0UFVT1eKRjMN2XJSjT0/wZ+ClwDfCQVyzvC7ius6G4hVkXq+qLACIyAbf+4nRcN+EzuBLX5d7+jwN3Azneud9W1Re8fYOA/wXm4LrlXgY+31pi9EpNfB84Dzjqve7PcMscNRQnzBORv6jqv4ecFwAKgJ+r6q9Ctj8NHFbV/xCR6cB9wIW4f/fvAl9W1Te9Y4fh1omb773PR3FlS2q8WmG/AK7zLv0C8J+qWhLaxSci9+DWqMzD1eOqBh4H7lTVujN9XsY0Z118pkfxFrjMByZ4mxbjuqi+g/tyfRp4NqT0+COAevuuBRYA3wAQkSuAX3nnTsQlo3+KyMXeub8D6nDJbS6uivHPW4rLW1n+ReA5XHfkYlz5kM8Bb+LqJYFbB+1Lzd5TEJdQbgm5XjpwJfCwiKQC/wLeBs7HlYw/6cWLiCTikmcyLpkuAq7HFX4EtyjyROBqXAKbQOtlvq/BtfYu9j6Xz+NqBvn5vIw5jbWgTE9UDPT2Wh5fxpXlftTbd49XYv0u4FZcUnkWKFTVPBG5jqay5IuBn4acu1tEpuLuE93snbsJKFDVUyLyEdwCvS35IrBEVRtKbO8QkRxca+43InLM235EVUtaOP9h4OsiMlhV9+GSwhFgBdAf+AnwC1WtBfBKkPzDO/cy3ICSWQ0LIIvIZ4ARXgtyDnCBqr7j7fsPXPJrSSXwOW+BZRWRO3AVgZ/w8XkZcxpLUKYn6g2UAFlAP2B1s/2rgA96v/8XrrVwh4i8BDyuqk97+yYAF4rIN0POjceNFgTXAnoMWCQiy4Angb+3EtMEXDXg5nHc55UPb5OqvisiW7y478fVxvq717o67BU4/LzXMhyDa6U19KCMxyXgIyHXewlARD6IS8jvhuxbT0gp8GYKveTUoBT3mTS8x7Y+L2NOY118pkcRkWRcPaV3cH/ttySA929DVR/EtS7uxXVd/UNE/uAdF4cbWXdByGMCrpsLVX0WV5jvTlxX34O4bryWtBRLwPvp99/pI8At3j2jy7zniMhAXNmH63AF8+7B1V5qcAp3j6wlbe1r7fjmGt5Hm5+XMc1ZgjI9zSdwlVtfUNVSYD/ufkmomcB2EektIg8AQVX9tapejRtMcat33DZgmKruanjg7gN9REQCIvJTYLCq/klVbwZuBD4gIlktxLWtlTgOA36HlD+Cu0d1O7AjpNrpIlziuExVf6aqr+AGKTQMsNgBDPMSG972j4vIOm9fIq6V1bBvrojsbVbh149WP692Xsf0ENbFZ7qzNBEZ4P2ejhvkcC9wd8jw6PuA73lF1zYAHwKuAOapaqmIzAMGicjd3vE34IrPgbuv83cR2Y4bZDDfu/7HVDUoIuNx866+iBuU8BHcaLujLcT6U2C99zqP4SrMfhP4mXetM75ZVS0UkTW4rsX7QnYdA7KBq0VkM27ARcP7ScRVt90F/FlEFuNaivcAf1XVbV7X5h9FpGGS8M+BZd59tTPGFaLVz6s9FzE9h7WgTHf2I9z8pwO4kXA3AJ9U1f8JOeYB3BfnT4D3cKPXrlHVld7+RUCKd/5aoAr4KICqPoUbov4VXNfZ13EDBBoGAXwKOAi8gruHMwS4WlXrmwfqtXYW4e4hbfZi/773sz0expUXfyRk2z9wZdX/7MXxGVwXXxCY6g0Bvx73B+s63NDwfwANAzY+BhTihrovBTbiWpLt4uPzMuY0VlHXGGNMVLIWlDHGmKhkCcoYY0xUsgRljDEmKlmCMsYYE5UsQRljjIlKlqCMMcZEJUtQxhhjopIlKGOMMVHp/wO2M0zY6rbMugAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "# Solution goes here" + "price_per_dose = 50\n", + "\n", + "infected_sweep = sweep_doses(dose_array)\n", + "\n", + "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('figs/chap05-fig06.pdf')" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/code/figs/chap05-fig02.pdf b/code/figs/chap05-fig02.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f1290ece1eab5bf5eca2684b68269cea62235052 GIT binary patch literal 17035 zcmb_^2{=_<7qBS9r9y_taLJtE4z7#L^E{JGxwz)p&5$X|P-Gq>LLp-rqYy$elw`_S zRAeTpB>y=|FYUTalMVUM-MLDAd9{}Tre0{}Y;NIN^b;5+~pKz~_46s$AwB=U=Z zqPxpQS172atS(eQ4(n-WiPcdASOZUb?igneSByK>+0ti6^I!M?BLQ`+l^sUL#T%dt zG8051pa@}MkcSr71-D}{9ju4TMR!ZUgrJT7m=Lt;F8hJv?8vKN=LnbxDxly9*ia5@ z>0$+#Tn+1NgR_Og!I9AcJ9^;Uu^1^vXU_+=& z^Y}Nv6Ks#C#*gPc>utU__4H$1AcuZ^%jRlkUhjII%?rBkK@xUi0n!&)(jMw57Q-Byp($tDE<3@U@x6CkeAz z4Y{kLMjng!Q#6pF7n?F&N^F!g(ki(4l6!g)?BXIeT!qeW*zCJH(pO%mzy8E=dZ3{A zV{NCMW>M`AdK zLc5rpEMqM$xG+5?>}otGSy#XLZ9aOjIqZVO$k^uW$Lg(z4QG9ScnKSrmDK7}rcyc_ zl^hLe2w8tSwCdQ${#O54g8s;>mnn*IZ!}|Hem2xULC#Kc`nl}`2a@r}WG{Z=)-$WC zy~ZE=Q8-JcYlu7LsNU^#jQ4wR-B)-mRMucrroggUf8Jp57DHaAQm20}JT8rzGbB~0 z)=4`;0glwTL`UZ^#8&8ue8<{4HmIp?T!bnw+30;DZ!gSc*?Xrlg@CmUN*+?8U|7Hl~a$GAH3)Wjc@f<+D(zC>57Cl6Y&KvP0s96Ncg;qcEcMN$d`|+B0jHc`{ zPu6T5w)f_|J$l)ShWQsiL>3IL5}r``ayvHkl|83Vw#sx`54op%Kaq>|W9#O%ltuPM z*18yy8OXv=gaGqrt-Q-8&L&U|MK@Hx&1-ay44ZGinID!H#2nmva{PI}dncj|$t7>g zoub-zvao^n$4Y-|_Fb8-(PgeDXiu1B&fAhArxK^Sg-(Jw=*3kzscQ9h^qzzqV_~-^ly!>tw+mi|0{z zqv4RP)4dxt7Yu{DbnPRft&S+ktqb&fC*rqhbSR@P(J(f;;z%nxA?=Thlt=_F;$^_T zDwKx*)QM3$$dl zr;gK4u3oFSnyVlPZS2IW`b@YULYR4u8yPYcuOoXoHPtWQgPyJS!LV8^dR9|Jw0h}~ zG?g!fH4jGNY+LO`)K9XfgoMaTXrxB=3@5VLPW(+-ERS(J6;lphz{~t-!h3aJRQxUZ z$z9jZ;p@5DW17j9o>s>r3*96RdHx`cg5$N7xXp28z5q3*ge*X@Wm{uOwB5mY7` z@wU%mrE*!08GNwzOOdm)cBb<1U^YitL$o{9K36=VD`G_`JxJviNUfJXGb(Jr%xD>3 zbLu612uFu4i%)-17nzCrN$tLrMyKU)JyPq^KB9Bq>rULcb`@?Ibv*YLbr^er+iAmu zf>ey$%lFpl3G|~x+mHE7nyR@m@@YZK@(u&I| zZ{7ucFyMBFe4EsX=*|=+imq4T6C|t;OVGF1CU8Xh=7=lt&EoMjYel@KBt`kl85GMK z!zz5R686RUxo<-~en>m?@Q_2=Q6usW+TF?`7Bh+c*Oy9q%1VqPermh-d$U&+z1ODI z9X6>*x<=WnVb)4iEKkxbsoP|dkfcn_lPp}SLi$wZHie97Vv_PnDRhvpmQnw>F2Q0M z4_~|xF$}*!g)b}ZwMB=?-J}^vXdidTF`bAJ`WtNl?3HSeETcDxuMqu;?2(>#D2!op|n&K=V^1^ih&w0*zj}nvt0U zpN1F%eclHVdp=eTN!|gSh%uS3xhj%M#TMUb>6OmubR5Q`7F^qqwx=#!qN-bEzH4BB z-(9uBp89Yz6E3ZgjCP z-x+rC)R;49bx)n?!XlE!(AW)W+_iFDhDR}%5=<4$$Bfzv9;tna`#i<&PHsk- zQi>sdDJ0)3?|pvt5RAL@Ica%i`#pJq=cJ!3_5EcgvLEA>eSp_|xcwMLYBhk;SzmG>Waj7ZSV86Sp*LaB!~ru2cF%rr8Y}Z zwq~paI5mZ;I2NvyA%m%>6IX)A+QsxA^ORyfN%tl$HL1j_GBsRTVr6XZcB_R5I3!Ld za(nYPk$PaB@;_ioOny%#m89>T>dL~@ZA0|-u4fnV{T0^7KlHjjt@1pE|5YF_ckOEmB0-VXi`;Q8;I@Tc|0df7_FJ* zMPa6e_7mm!0x&CoHS`$b`8KiXOhY;ru4%-jD3)qtt>(ml6og&rNPta1g~5vL!#2FkyNUz}4~L>7mU|}S zdwh;o=WV8z%zc%Vv|e@fv`U7){Xrl2(BC9flHTbJML^(GI^=z3otVV8Gmanp#*$qF z;hoeOrt=*QZx)M9=Ng0=OPJ;jBn7I!Cp$b_df@P^_vVV;{KR}|sb{{QtI!Rij*MHl z?(WG_>VVC!rIc~aII}aK0#5x*W^Nu13%fAZusQDVC`f#~HbCxk*bACXO-EkiFcC)w z34yd)$LaC_Mfb6j@7V5c(h>xI9rgG3|1L>;OTG-;CH&4;fA1Hz^H?z9MW7L=olOKB z%iQPF=E6|n%+=h9=7M5MHSu5Oz|(25#pd0Rmgic{M~?kVxUkh zU;Nbi+zHH+dx*t(+(Yu}lbv`|;glZ~NwgLWP(4$Zc|7i^Sg_8LFH;z>ytIP3Ov#2U zHl~XbZg!7M*LLR(U%szJlr+sG?>x7eF*Q$YJC^z+=8z1p(tw$v=Dk5}ZQ81%BTyP^n*-|sh>^!hUsP#aRkd=O;zC*pt(slOt6{ff28<+QT6TzRoEhlfT+OZ4ugs|i$VSA+Bk(HD6o`;#kZ zj*&$LCD4xauvdKLj8W6nx0xFj|JL}~NYvxSF!R&1U9 zw$9vdU9@<>(C^-v{?DBi3btqHxsKA>1y?*ICa0kCrBZW&A6YXuZlNJ}yDDX8!7f;1`|fg0 z|Ao-P90E~?=nJ332k{rmJ?GDbR+w`an}yub$WP`MLDsqQHUBN*h zzIQ?I&6el7ciizS^ai4nPn$l&mEM#wdA^c0$WY_3ltp3FHjRhK83^xQH zBAH&8P6>_hzv7F5FWYpTWS;K}SSTM-GHGtCH@`(BBD7%8Idm82P0!28suoo&H5EED zxWvJAvmrtZvT4G2$U%U^7 zOu5o!-^&faC6?kN?FH2wZzuqO?_=kHCqCUvT>csr*pxM(TUjZB=p1 z#9JRG89d2Z4kd0*=Fy=sLf5aoy^%NR6}M!4?LsyU;?!b!N=GQAe&b28b*c*V&0E$1 z4~tfxuDjKtnY!|q_+M)n$OKQT(~-)5H&=w)+=bMfKd*N#XfRaJl0Bp;iJ`0U{0YTn zJ({9$mTtKr?Ca{|#uo8o=s2zd937^3qPD;7DuvjxznXJy`*=;EHuYkAcCO{k8M3X+ z!k^2Ih*hx?uJs$Q5lJ`2x2l4$fmq_YPC1c`eRJM;q?| zlhrYBeILnntR}X3bn&P<_him;;(uhQV)rU)%woq#+rC9*Cs5TFRNQ7yF^AB za!R@)QHT^?1bOjJ$&kj7fJW%<2T#c^lfvG)N4{1%X4Tl!a>J+Xh`qQdEI1P^Tg7H2 zXMY&nTKkF5m&9szfau`a)xU_25Zb#ip|q9Vn_*;+HmJRWA4V)H=jBap4Fq@MS`oG$ z1h>PV1_@noBV)h8?8EUm>IEUuVp})SbS??@*q zdLvSLJ{+!tp$#bmB`+Nn(Y$!C_ARPcfO#?83a7>=JrCsts8?(~ZuyvYosBXfm`jP$XFLd6*cTiVwY8R1>a z5VyqDh-m6}yw^J)>7;8co)En*>&2OW_mr+?Z=LmO4_WdRqwqna_RJ8;)5<@i-9@kdk)2t=W{d9Rr7aJb6zF=ljG5m6X`TjMTL!yv-%qOmM)?E%x zJUh<)P|CWKxw|}7Z)l^MLRgud@U&FZf^=BL^p(`~AY1sNAN)>}$6bPv0n>2z72AWZh>`_q7+b0NRcY~2-Yw7aZjU963 znWsBKqe4+@H!hUZ3)`sx9N&L#8vtylov0 zB&V9_I?N`r-~(n#Z)g<9>QX&*q8MSUabEfim?TG~E4KnU8L#+;)Vo|Qk5U>t{kk<@ zS?S}|qw>(`s5lfoks76<$DqE%Wz<#9l<1iIxl$6nt;ZIKuah8rw5@KXbA8N^ex97; zDPaB87^c`t*I5v8(zzj3*SK+u!E=cJ3|GWYw)%`xW?k4d_yHsJuh}siDZFQ-P|>QC z%}_Gg^>i76U$Z_zV9&ApFkM_{XBB@ab$3bg z_bM)gEPd5+h2*fKtaW>w);FC*z4-pq}C^0@(MDXcJl`|IDDD(8{NBm-Vx8BN;niW7mw!SgNVLqyZf{$r;K3NDw9ab z6>qrqN7o6|XXibjIOnH+Y3T6>|CfXIG(qv^SFOXdLrK6Y?^Eq z5%C)+ge9>rK3cu!i82A2umeuV?(ro1V?AfHL!FD?u--BOEMd;iis`uQ(v5lH@Y^oZ zgEqGBy~|w*=(rB?k>6e&!6QM27bp0K3oWCj3*R>rQ3MKpW7O4QSJAN!1IMA?f+Q2{;p9@%Prz(yMjQ&nN${)yl zgYsfqgBPr!4ifzs!%}7%0s3h5uTRB4_UDYYTfGDI@x$JpVin+ZB4ImK6nX;`aR3%w*l2G3Er1yChhk`=}31em>e zSL&g9D$3W|k^Q_scGQ)uHPW27MDB|J`mLAs$$=q{$^{llCp0{deaXMjF{HJ%6s4w7 z=#(_m+#sy_b(LA}RxHuqqlo<1G=E>tjYJCS!L;tf@F{bxb0Hr>ts&f@CguVB;rJv| zu8nt~yhuw~XvfPDhHF?0Tf8`wpn?V6sZ<#(1#b+);Ae&sLA)A#+U5h~`PWSVdS9v< zSwryzMts<#;P&BLUt2f58QM4VXoxvS%E)LvRwkCjP0&xi5%&GGzGHYbhNCwE^9DDv z~o#$=ihgS)?H)+M0&A!r-9w5=bX3s)b+}Yf~+CAvZd|`wxmN!B7=88>(G!2VsYuY|CUq3oskHh81k4@*vB$V&0NQ5ZgLmHm$poLY~kEu{4jMl{fCpxLi4Ln z>As-&?7b|!t2V_X#&s4j7|uxdOdFkz{7&^vadfh~f#LF3weLoeEo<41jyckLLv=K| zrK8m?wNp$H{%289lV4jAKynrJ?Iw4-N735?W1PPn3K0Q!E`4$)iBdRLPba zZ5a}fVdtUrqs#9qjL^QdL$~+3fu_hi4uKvm0m>Rw?~Bu9@v$`Nvn%R9ij`?Ds-6@o z$~O$lC-r3<3#Z_zhLjEUE#Zp?zFAFwnqqiyhCTAgxyDmuc7mZjT==RqVhopLvj-Oo z>Ru5|ov&S6ND8GPrh60hl0M%_>1AQDtd@D(Lp~JxbQcOQ-1naHBHL|$#>_I3FEJD9;H3mk`GD1s1CinR7;b_NZ|PeCjPTiu#bl3 z;SeFh;5+L&*As5f0#5rcsYYw}YMVYBy&n{0c8E*SU_*>Zwp$Jl&kgaF&Xi?-sVF3) zDvkT&DD(45iH0Rs6T$;#(Esb!0^Cp@h7$uD%I{JIWKFFBntARjKLc-=TOTuRYPHQ8 zNKct)Nv3;8Ps3U7^ptGy*4I-P?R=KczRNF*FuaDldW+tVu+J1)tSokJ66sfVCgP|^ zO4RIhfM%a|c~bE_D^=H#8^jNs+cXlwY|=xxg6*+Q2H$w;&&DM(CQrJXHicNcJ43V< zkoqC5N|5z=eSP(oFn{IfClY=hjuzEAYXwbr61%Q5OmJ6w9c?j}oNPobLL_487>$9M z8fUI(iAZ49;zE7_^#Exh*3rK_el%o+(Q!Z~M{32s09qLkq*OAnhH(jdRiYmlFp3QL zd8pgouqEN05fw30Id_FYmz<7e>Tb>P@JANSyCTR&mYJrb-zJR;a~Xwa|*cO`&zdNI;2D zO!fX5+gnQXbF)^|8*~l${AnSh&B)i;bpdHJ7^q_|yEVeZ^yMUVe`_8}^e!Easo9}HrCA6@_&hxk_bCok@A=VtR-Z|=l{6F&*Gx4C7wEQF zpNz)jM z_#w*YZ-bR(4594|DLk-dyzIf(FDVNSHzF?Id-fJMz)ZYEt#*JY|C$jC?#mQ@i*g7M zMPWyj-MJJ2^r%5>b0Q($dr-PV-Kx-E=$*b8L`q*ncCHBqw)*;S;oID|&pg1i|C)}% z_ib|2wWKNWf#qVIS}covy2%$OHnUYq$iR4f_^{5a`xJ^*=@McBB#t$+H^29h8?Bgp zT5d~cJ}+ZYc+$P~w(nBa#P=DKxfId@f2o!(VN2Y7pYAKpc}61bDlGz@#rZ3(Uknh3 zQ$3iqnO~=}466kfFw0DKOozVXWsF6o54}k~FPdh2Rwn(Fmb6RKO??r-CwRN}@_bs-aX`XR`;j`p zywFJg>}JN$&EcP0wdU@@PZgdNRAE!UOgg`B<4NB9-Xf{p_EWCx`7;Wq1-n7J%npau zI%Drh4$tEOB~O_`<%jHLYqC&{Z)wrbINbvwRc zUSac*(pW877hx#JYlIM8>B%BFAFA;LdMc+;N7VFWQL-38$~lgd5qD}`;ySG&#hlwU zGtVdJj!WFF-_q+gXga`P|C*m8(0dO*fD8>hu9jVwI3f^3w|r(sYzCJ&5;&|_GlRp# zhjQUvMXHACwac!@y^j0La^aHyZ7;8T#%9T_Tl_kY3S&}qaY1w3xmQwIUUZ1Db+tS{ zmN%ca;o}q8`)#C?pXA~K4JXA3q553qtHFp$G^a?eclYGWK8?y1iJ208#cSErr09N8 zZPoiU&yMgbhM(^skc|im{`R{(?5C2jKF58b@z6^oL^mC&kFH7_s{5H;>j9_q z&(xqDh$AAn6&=-wa6C(Ad7Iq0=g2uZ`N@&ia)Q}wa6^MDN@T%|c}A627A{3(Omq3a zpLweygT>mgMm-ayUS>dN--=+4aC5X*q(X8X<=L;l!{vlzbn3t0^^*6lh-J8-Ds{HUrcIpdJ)pe zoIEohI>Hbtf5t0EBj`&lF*W=K+>>QCKklN5)bm9pm)yX((GKG}=}EE~zMIDKZEkYP zmYQlpH`ocC$xpn4=eBfesPNlyvDa6*TX5EW^YHX9**e}V2#-EMv471;1z~#^4!(F1 zcLHf*`Bjl4v|9S*pFNps7>3q0HznL}2W91bBejjfG{2gE?_4=zeQaYT?D`A4hUg9W zg|+~uXxNLX>Q15tpE(9!$$-##%v+3L_|V(Ur}JzzRVCPvTgoE$zTK|Bw#udbdlA5)}J~#zap>dOo zAyL^rp(o4Yx@Y1u=TyWzZ{g`T*o&(7A0m9>X-|yS6E0WL;YjYcISI&XP)L5^RISfE z#4I;ka+NeS{!wEPiGHI@gocF0?#&zw7+b@E1MX0`se*8Y)s!g1@W zQ{3mC_PxKIkrjKLHsk%Z4BDGR#pXxvh(kV1Ump}_TZkO>{lqEZ_PnwCPFnR@%oaAWDk8hTbGZ!U8CR0)m7~p@+ zn&IfZuUzD{M2-PrVR#b~0KF{FTs9V;t-G;RnV`!Sp&V1Dlvb~WA#FQ6I#Kx!8)Df= zFdldFt?nRE6k*wX`E}XVf3vWTC%Q;9%~_%gU;GN-cIehev7^ zO-I98=8T|*I<)e8Kj`SpJ-$&IvjKawNZ;49HX?eJ@j*xJ={slSk2>8;zsqpK-S7y3 zUho9(6vy1vS>_TK(T)uwM5y?+162Ok^cF5GvS;Z~*J^aagA;Gq0AHwcOF?0ph4m#H zfevwnuZa){bApASYldIR8=oIZZc2_srEQ5kBzSS(RjJ7;!@$&i$z!@hDGn2THn_r8 zTF8nN~__O}4Q1E7oyNHjx>3lCh`47)`TC zFW#XNn_Z~kY>SRJ<9tPhu^5ThM?M;DZE$^4#RON))~CIm7uw_<2czGhGri{3)gU?M zD3swPF}XqerAsdI04w}!a*EhDvr#b}ZonrHvWo@5M{PqVKFRh^s%dC!4dBK3vl`3L9JxAmea#3&SLYmHx$x)$v{G@v#WIs)o?ZdyOiyH@bYS(&o-i@d~ zI$V6tJub%B;MnXB846T#h^E4!TdqMk8IAK37_A2yO|v>F#eFw}M=Zr+ zJnu-m;!B)KYL>|SMt|v-jpO|-D$oNA^RKBg9JbFrq8=OtUQx;V<}MKj#l&>R_v-)H z9CmT1b`1zt+8ND15lA*3jC~#u8>sc5IWc9nAEp|UxLIs5&|1|<%bOAexUC+qf4}!ZNP*Buvws7=rGJ9x< z?Cyry{jggUxFr+~+eHH*0!8m8gM>qccMAY0DY9EnV5R;~Zb8&8O2C`lT`hb12t(m8 z)b3VG0I-{@p!F_7z}Gkb5dsdzc0KGi1@I~q{QO~8>uzaKyQKk+Hg=%_(jfLwwcOom z1vQ2IF5UU#3t$b4f}Ohu4)hnmqXa-VlKEB8!Y3qzg7P5|C@2DO3_vfy4S>QH5JL{@ zVd-w?igR&?!naF$04e}j9fNbX+pdM-hrz(@3h?jGFQBU$<~JkoAVEL_;{=qn{PtLg zfbK;L+;&|NSX~6T&95S(Uv7QQ&I)G>xH7m2*sgoo`G9bDk}K_D30B;QzyJfuVqBH5 zb~d&^Q4sKM4=CyR)y9VaNPs0ZHXeY}{}THDuI(N{fjT6h?8(kj+S$et3k4ib9pk+% z9$+9~stM@guucY`CI6Fum$d{8e~X2JZwHedJ$80C#!xiiB>x{S$p0%11Tbm93keJn z3h*`Hf(Qc(qY!Xt0T+Qokw_pufENHm0TXH)7kJ+3_q)$d-~D&UPWvBxfCfls`vUlF zTM=XiUT6ej``Ug6Vhb7&41@ulAt=BnK{!ZI7!Y6^7iiz^_Z#m|KcElzTLhTo+c1zm zK<~E@!1t#>kP`wF0%(EC?Fb3-*!d0O{P_*a09;@@cnA6aZu_I)HXX2iryuYelyRFT zNEf((7c)?V(62ja0C3PiI^Z3kyG;wE0|zJI4)Z?%P?J9oU>8uOopA@n0xu8&xFE>i zq_;`^>GewpIq0m4CMFLskb{il(h!4V0KwK9Df)o3fm(H2)(;)hwsk)ciSIt*o_Ms=0F}hgACkF z!6hI3?r3}Y-uVD&_aeRhowUxb01vD?a4^-~1G9j_!Ndd7o1=jezvH*bX*T}p10t-Lz-(Eb>4fpE-#0J1K_sT4Yf^NU++HDsg9YF5aLlB_1 zt;a4q1Bnp8W-nhsOCWIWhgn0B+j{Kk3ryDSqtxAefrLSDzaHRJ+ty=uUnEe6x{n7C z%mMZG$^v*Wpx$16fqVi`Zyz2I8~5vh0`k87euc7v0*(##1+t3Y-n)B!R)9mdv)0}1 zyR%qn_^%RNX@JH~p7N)NSilkk-F}lOAdT2T15%w|i|l{3#=FpvJ7_R|AOrXxh=Tti z0-4)Eh%kQeuw$26pxJ)U$^Uc(?e-TCG~8dnoz;H3;@IUPkhB1*sM=Y9x%hU`vJRMN z{gUKY;q`x90MGbCQ9u@`{>9n3ILm=`)?9L;2pDkq3xkQkg%E-WK|YuuCk)036sm0F z0m&Md69(t%=z?>!1LhMyf*;8XwZ-9FMFj-@Yv6Zrw*k5Un+L0lmOusa?mn(o)=&$K zr2{a!zxs3UGK#l5)*1qYeK_RzMgm;4git78vRFg^z`(Et{z098!{8`17-sgt1VID&3@Q9K4BQd#!$ZRV!h<7)fUi{d;=z%E zf5Q-9O1ckE5DiXk@b8aZU`Paz$^Hcs`Aa^eFbr_0y?q5?V5r>(Lx59u9}Fq94-Q+_WSS<2w)?+ABOsC%z^m} zym0!1hjYi+Ibz+n|ECek&ekqKwgdz$U>(zOaRKAp_HSLgOIRRKfWgB9hjGVkhYmPO O1c`#Mv&(BLK>iPvqtxdB literal 0 HcmV?d00001 diff --git a/code/figs/chap05-fig03.pdf b/code/figs/chap05-fig03.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1e220390c7f124b27c69e0bfbfe373ef48af2750 GIT binary patch literal 12470 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 literal 0 HcmV?d00001 diff --git a/code/figs/chap05-fig04.pdf b/code/figs/chap05-fig04.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cd6d10d163ecdc27d95311c891a5d565def5a7cb GIT binary patch literal 15347 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 literal 0 HcmV?d00001 From be230a3dfb1357580270b0a8197477c3860b6fbe Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 9 Oct 2018 16:43:20 -0400 Subject: [PATCH 29/61] second exercise in ch12 --- code/chap12-mine.ipynb | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/code/chap12-mine.ipynb b/code/chap12-mine.ipynb index e1fd2e99..da6436f0 100644 --- a/code/chap12-mine.ipynb +++ b/code/chap12-mine.ipynb @@ -1573,6 +1573,57 @@ "savefig('figs/chap05-fig06.pdf')" ] }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def sweep_doses_with_quarantine(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", + " \n", + " for doses in dose_array:\n", + " fraction = doses / num_students\n", + " spending = budget - doses * price_per_dose\n", + " \n", + " system = make_system(beta*0.9, gamma)\n", + " add_immunization(system, fraction)\n", + " add_hand_washing(system, spending)\n", + " \n", + " results = run_simulation(system, update_func)\n", + " sweep[doses] = calc_total_infected(results)\n", + "\n", + " return sweep\n", + "\n", + "price_per_dose = 50\n", + "\n", + "infected_sweep = sweep_doses_with_quarantine(dose_array)\n", + "\n", + "plot(infected_sweep)\n", + "\n", + "decorate(xlabel='Doses of vaccine',\n", + " ylabel='Total fraction infected',\n", + " title='Total infections vs. doses',\n", + " legend=False)" + ] + }, { "cell_type": "code", "execution_count": null, From d77716913281815b34136f13f7365ad3a5f3b969 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 15 Oct 2018 16:00:10 -0400 Subject: [PATCH 30/61] creates HIV model --- code/HIV Model.ipynb | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 code/HIV Model.ipynb diff --git a/code/HIV Model.ipynb b/code/HIV Model.ipynb new file mode 100644 index 00000000..6721c40d --- /dev/null +++ b/code/HIV Model.ipynb @@ -0,0 +1,66 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 26480118e14b258cbc37c57ecf051f1e122444af Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 15 Oct 2018 16:16:03 -0400 Subject: [PATCH 31/61] creates initial state and system for HIV model --- code/HIV Model.ipynb | 174 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 171 insertions(+), 3 deletions(-) diff --git a/code/HIV Model.ipynb b/code/HIV Model.ipynb index 6721c40d..33fae26e 100644 --- a/code/HIV Model.ipynb +++ b/code/HIV Model.ipynb @@ -18,16 +18,184 @@ }, { "cell_type": "code", - "execution_count": 2, + "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", + "
values
R1000
L0
E0
V100
\n", + "
" + ], "text/plain": [ - "4" + "R 1000\n", + "L 0\n", + "E 0\n", + "V 100\n", + "dtype: int64" ] }, - "execution_count": 2, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = State(\n", + " R=1000, # activated normal lymphocytes\n", + " L=0, # latently infected\n", + " E=0, # actively infected\n", + " V=100 # free virions\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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", + "
values
gamma0.00000
mu0.00136
delta0.00000
beta0.00027
alpha0.00000
pie0.00000
sigma0.00000
rho0.00000
\n", + "
" + ], + "text/plain": [ + "gamma 0.00000\n", + "mu 0.00136\n", + "delta 0.00000\n", + "beta 0.00027\n", + "alpha 0.00000\n", + "pie 0.00000\n", + "sigma 0.00000\n", + "rho 0.00000\n", + "dtype: float64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(\n", + " gamma=1.36, # birthrate of R\n", + " mu=1.36e-3, # natural deathrate of R and L\n", + " delta=0.33, # deathrate of E\n", + " beta=0.00027, # R-to-L conversion rate (per virion)\n", + " alpha=3.6e-2, # L-to-E rate\n", + " pie=100, # virion creation rate\n", + " sigma=2, # virion death rate\n", + " rho=0.1 # proportion of cells becoming latently infected upon infection\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.00136" + ] + }, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } From 7b34523f26ac3903a35e1bdef68fe6f934254d1b Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 15 Oct 2018 16:16:57 -0400 Subject: [PATCH 32/61] adds header --- code/HIV Model.ipynb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/HIV Model.ipynb b/code/HIV Model.ipynb index 33fae26e..dd0c88b7 100644 --- a/code/HIV Model.ipynb +++ b/code/HIV Model.ipynb @@ -1,5 +1,13 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# HIV Model\n", + "Sam Daitzman / Adi Sudhakar" + ] + }, { "cell_type": "code", "execution_count": 1, From 9a95fbb49ddd66a6277944c19177c19df6b892f3 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 15 Oct 2018 16:27:40 -0400 Subject: [PATCH 33/61] dupes ch14 --- code/chap14-mine.ipynb | 525 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 525 insertions(+) create mode 100644 code/chap14-mine.ipynb diff --git a/code/chap14-mine.ipynb b/code/chap14-mine.ipynb new file mode 100644 index 00000000..d67fbed0 --- /dev/null +++ b/code/chap14-mine.ipynb @@ -0,0 +1,525 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 14\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Code from previous chapters" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "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": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func(state, t, system):\n", + " \"\"\"Update the SIR model.\n", + " \n", + " state: State (s, i, r)\n", + " t: time\n", + " system: System object\n", + " \n", + " returns: State (sir)\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": "code", + "execution_count": 4, + "metadata": {}, + "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: TimeFrame\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " frame = TimeFrame(columns=init.index)\n", + " frame.row[t0] = init\n", + " \n", + " for t in linrange(t0, t_end):\n", + " frame.row[t+1] = update_func(frame.row[t], t, system)\n", + " \n", + " return frame" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def calc_total_infected(results):\n", + " \"\"\"Fraction of population infected during the simulation.\n", + " \n", + " results: DataFrame with columns S, I, R\n", + " \n", + " returns: fraction of population\n", + " \"\"\"\n", + " return get_first_value(results.S) - get_last_value(results.S)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def sweep_beta(beta_array, gamma):\n", + " \"\"\"Sweep 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", + " results = run_simulation(system, update_func)\n", + " sweep[system.beta] = calc_total_infected(results)\n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## SweepFrame\n", + "\n", + "The following sweeps two parameters and stores the results in a `SweepFrame`" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def sweep_parameters(beta_array, gamma_array):\n", + " \"\"\"Sweep 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: SweepFrame 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": 8, + "metadata": {}, + "outputs": [], + "source": [ + "beta_array = linspace(0.1, 0.9, 11)\n", + "gamma_array = linspace(0.1, 0.7, 4)\n", + "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": 9, + "metadata": {}, + "outputs": [], + "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 `sweep_parameters`, we have a `SweepFrame` with one row for each value of `beta` and one column for each value of `gamma`." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "frame.shape" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following loop shows how we can loop through the columns and rows of the `SweepFrame`. With 11 rows and 4 columns, there are 44 elements." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "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 `SweepFrame`, 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": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_sweep_frame(frame):\n", + " \"\"\"Plot the values from a SweepFrame.\n", + " \n", + " For each (beta, gamma), compute 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')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "plot_sweep_frame(frame)\n", + "\n", + "decorate(xlabel='Contact number (beta/gamma)',\n", + " ylabel='Fraction infected',\n", + " legend=False)\n", + "\n", + "savefig('figs/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." + ] + }, + { + "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": 14, + "metadata": {}, + "outputs": [], + "source": [ + "s_inf_array = linspace(0.0001, 0.9999, 101);" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "c_array = log(s_inf_array) / (s_inf_array - 1);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`total_infected` is the change in $s$ from the beginning to the end." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "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": 17, + "metadata": {}, + "outputs": [], + "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('figs/chap06-fig04.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The agreement is generally good, except for values of `c` less than 1." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercises" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** If we didn't know about contact numbers, we might have explored other possibilities, like the difference between `beta` and `gamma`, rather than their ratio.\n", + "\n", + "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": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "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.\n", + "\n", + "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": 21, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "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": {}, + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 28ad72d8dab5dcb3d1ea4f45427cc4076b22ac93 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 15 Oct 2018 16:48:48 -0400 Subject: [PATCH 34/61] ch14 exercises done --- code/chap14-mine.ipynb | 359 ++++++++++++++++++++++++++++++++----- code/chap14.ipynb | 2 +- code/figs/chap06-fig03.pdf | Bin 0 -> 19378 bytes code/figs/chap06-fig04.pdf | Bin 0 -> 21261 bytes 4 files changed, 320 insertions(+), 41 deletions(-) create mode 100644 code/figs/chap06-fig03.pdf create mode 100644 code/figs/chap06-fig04.pdf diff --git a/code/chap14-mine.ipynb b/code/chap14-mine.ipynb index d67fbed0..3d7feb6b 100644 --- a/code/chap14-mine.ipynb +++ b/code/chap14-mine.ipynb @@ -89,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -114,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -130,7 +130,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -161,7 +161,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -189,9 +189,90 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "beta_array = linspace(0.1, 0.9, 11)\n", "gamma_array = linspace(0.1, 0.7, 4)\n", @@ -208,9 +289,20 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "metadata": {}, - "outputs": [], + "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", @@ -244,9 +336,20 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "(11, 4)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "frame.shape" ] @@ -260,9 +363,60 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.1 0.1 0.0846929424381071\n", + "0.18 0.1 0.7086227853695759\n", + "0.26 0.1 0.9007802517781114\n", + "0.33999999999999997 0.1 0.9568878995442757\n", + "0.42000000000000004 0.1 0.9770452570735504\n", + "0.5 0.1 0.9845958628261559\n", + "0.58 0.1 0.9874003453175401\n", + "0.66 0.1 0.9884042490643622\n", + "0.74 0.1 0.9887434214062726\n", + "0.82 0.1 0.9888495150524135\n", + "0.9 0.1 0.9888795705171926\n", + "0.1 0.3 0.0054435591223862545\n", + "0.18 0.3 0.015914069144794984\n", + "0.26 0.3 0.055379762106819386\n", + "0.33999999999999997 0.3 0.2678641677332422\n", + "0.42000000000000004 0.3 0.5245629358439001\n", + "0.5 0.3 0.6860504839161878\n", + "0.58 0.3 0.7883785563390235\n", + "0.66 0.3 0.8550657464101674\n", + "0.74 0.3 0.8994791356903035\n", + "0.82 0.3 0.9294693026191699\n", + "0.9 0.3 0.9498533103273188\n", + "0.1 0.5 0.0027357655411521797\n", + "0.18 0.5 0.006118341358324897\n", + "0.26 0.5 0.011639469321666152\n", + "0.33999999999999997 0.5 0.022114766524234164\n", + "0.42000000000000004 0.5 0.04781622666891572\n", + "0.5 0.5 0.13243803845818214\n", + "0.58 0.5 0.30326419264834004\n", + "0.66 0.5 0.4641102273186152\n", + "0.74 0.5 0.5884769725281787\n", + "0.82 0.5 0.6827496109784223\n", + "0.9 0.5 0.7545952983288148\n", + "0.1 0.7 0.001826769346999102\n", + "0.18 0.7 0.003782561608418833\n", + "0.26 0.7 0.0064266722107564345\n", + "0.33999999999999997 0.7 0.010190551933453973\n", + "0.42000000000000004 0.7 0.015945826561526877\n", + "0.5 0.7 0.025707925046422053\n", + "0.58 0.7 0.04500775311679983\n", + "0.66 0.7 0.09069406882939202\n", + "0.74 0.7 0.18979521165624091\n", + "0.82 0.7 0.3183431867354656\n", + "0.9 0.7 0.4369993744563133\n" + ] + } + ], "source": [ "for gamma in frame.columns:\n", " series = frame[gamma]\n", @@ -280,7 +434,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 15, "metadata": {}, "outputs": [], "source": [ @@ -308,9 +462,27 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/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", @@ -346,7 +518,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -355,7 +527,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 18, "metadata": {}, "outputs": [], "source": [ @@ -371,7 +543,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -388,9 +560,27 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 20, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap06-fig04.pdf\n" + ] + }, + { + "data": { + "image/png": "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F/OjH/2ICy+8kHg8zj333MOaNWu4++67mTVrFrfddhsdHR189rOfZf/+/YNiuvHGG7nppptYunQpjz76KE899dSET1Ce59EW6zokEbUEraOjktCqyPXiFNNDkddL8fYNFL3RKCrIDZJQXsLjXArzc4lGj/JiPj1v5IvnMVOO7j2TUV01wkVsFhzt75KM+noYrlt85cqJdc5sPO8QaU1QzrlLEh7/GViasH0/cH8qzrv0uKq0tKCWHpdcd8pdd93F8uXLmTRpEpMmTWLWrFncfffdLF26lJqaGhYtWgTA8ccfz//8z/8AcN111/HYY49x6623snnzZpqbm+no6Bj0vsuXL+drX/sa69evZ+fOncyaNYtjjjmGM888kw9/+MM0NTVx+umnc+2111JWVjbotatWreKqq67irLPO4owzzuCKK64Yg08lsxzo6qF5bwc79nawc08HO/d2HNXYT1FBLpWlBZQW5w1KNsWFuRT9/t8p6u2miB7y8LuEANgThWUpumsi2y5ifV+cHngAtm/3v9WvXDmwf6KcMxvPO0SmdPGl1Ek2Lemut1Tr6OjgvvvuIz8/n7e97W0AtLe3c8cdd7BkyRIKCwv7j41EIv0zoa655hp6e3upr6/nrW99K01NTYfMksrJyeGiiy7innvuobm5mfe+970AnHjiif0TIp588kkuuOACbr311kGvvfrqqzn//PN57LHHuPfee7ntttu45557UvlRpFQ87rH3j0+x4+HH2Lm3gx3l02iZdUzSYzI50QiVpQVUlgX/SguZVF5AZWnB6APCMyrT3zWSjRexurq0XyxDOWc2njdBViSoTPLLX/6SyspKHnzwQXJycgBoa2tj+fLl7N27d8TXPfroo9xxxx0sXLiQDRs28Pzzz1NfX3/IcRdccAHnn38+OTk5fOtb3wLgpptuwvM8rrvuOs4++2ycc2zYsKH/NT09PaxYsYLVq1fzvve9jze/+c2ce+65dHV1kZ+fP8afQOq0d3azZUcbr+3YT+MLr9D115eAfIjmQ3vXsGNBhfm5TK0spLK0gEllhf0Jqaw4/+i63MJsVWTpRUwmLiWoNLvrrru49NJL+5MTQHl5OR/4wAf46U9/OuLrrr76aj760Y9SXFxMaWkpdXV1bNly6H3PU6ZMYcmSJcyfP5+8PP/GuQ996EN86lOf4u1vfzv5+fmYGatW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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot_sweep_frame(frame)\n", "plot(frac_infected_series, label='Analysis')\n", @@ -428,29 +618,46 @@ }, { "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ - "# Solution goes here" + "def plot_sweep_frame_difference(frame):\n", + " \"\"\"Plot the values from a SweepFrame.\n", + " \n", + " For each (beta, gamma), compute 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')" ] }, { "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_sweep_frame_difference(frame)\n", + "\n", + "decorate(xlabel='Contact number (c (beta-gamma))',\n", + " ylabel='Fraction infected')" ] }, { @@ -466,13 +673,85 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 26, "metadata": { "scrolled": true }, - "outputs": [], - "source": [ - "# Solution goes here" + "outputs": [ + { + "data": { + "text/plain": [ + "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" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frac_infected_series # according to the value of frac_infected_series, the contact number that will cause 26% of the population to become infected is 1.15" ] }, { diff --git a/code/chap14.ipynb b/code/chap14.ipynb index 95fd99e7..d67fbed0 100644 --- a/code/chap14.ipynb +++ b/code/chap14.ipynb @@ -517,7 +517,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.5" } }, "nbformat": 4, diff --git a/code/figs/chap06-fig03.pdf b/code/figs/chap06-fig03.pdf new file mode 100644 index 0000000000000000000000000000000000000000..88bfbf3bc2fe4df7da195396aa1af76ca4652a96 GIT binary patch literal 19378 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 AWB>pF literal 0 HcmV?d00001 diff --git a/code/figs/chap06-fig04.pdf b/code/figs/chap06-fig04.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0c56593052c5ea21246d9ed77e72352bb5b6cad4 GIT binary patch literal 21261 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 literal 0 HcmV?d00001 From 764aa387114a541ce328645b14452fd635986133 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 15 Oct 2018 17:15:33 -0400 Subject: [PATCH 35/61] HIV model update_func --- code/HIV Model.ipynb | 212 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 187 insertions(+), 25 deletions(-) diff --git a/code/HIV Model.ipynb b/code/HIV Model.ipynb index dd0c88b7..01550cc2 100644 --- a/code/HIV Model.ipynb +++ b/code/HIV Model.ipynb @@ -98,7 +98,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -128,7 +128,7 @@ " \n", " \n", " gamma\n", - " 0.00000\n", + " 1.36000\n", " \n", " \n", " mu\n", @@ -136,7 +136,7 @@ " \n", " \n", " delta\n", - " 0.00000\n", + " 0.33000\n", " \n", " \n", " beta\n", @@ -144,70 +144,232 @@ " \n", " \n", " alpha\n", - " 0.00000\n", + " 0.03600\n", " \n", " \n", " pie\n", - " 0.00000\n", + " 100.00000\n", " \n", " \n", " sigma\n", - " 0.00000\n", + " 2.00000\n", " \n", " \n", " rho\n", - " 0.00000\n", + " 0.10000\n", + " \n", + " \n", + " tau\n", + " 0.20000\n", " \n", " \n", "\n", "" ], "text/plain": [ - "gamma 0.00000\n", - "mu 0.00136\n", - "delta 0.00000\n", - "beta 0.00027\n", - "alpha 0.00000\n", - "pie 0.00000\n", - "sigma 0.00000\n", - "rho 0.00000\n", + "gamma 1.36000\n", + "mu 0.00136\n", + "delta 0.33000\n", + "beta 0.00027\n", + "alpha 0.03600\n", + "pie 100.00000\n", + "sigma 2.00000\n", + "rho 0.10000\n", + "tau 0.20000\n", "dtype: float64" ] }, - "execution_count": 9, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "system = System(\n", - " gamma=1.36, # birthrate of R\n", - " mu=1.36e-3, # natural deathrate of R and L\n", - " delta=0.33, # deathrate of E\n", + " gamma=1.36, # birthrate of R\n", + " mu=1.36e-3, # natural deathrate of R and L\n", + " delta=0.33, # deathrate of E\n", " beta=0.00027, # R-to-L conversion rate (per virion)\n", " alpha=3.6e-2, # L-to-E rate\n", - " pie=100, # virion creation rate\n", - " sigma=2, # virion death rate\n", - " rho=0.1 # proportion of cells becoming latently infected upon infection\n", + " pie=100, # virion creation rate\n", + " sigma=2, # virion death rate\n", + " rho=0.1, # proportion of cells becoming latently infected upon infection\n", + " tau=0.2 # proportion of cells activated\n", ")" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 106, "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", + "
values
R-1771
L-951
E-8662
V-886600
\n", + "
" + ], "text/plain": [ - "0.00136" + "R -1771\n", + "L -951\n", + "E -8662\n", + "V -886600\n", + "dtype: int64" ] }, - "execution_count": 7, + "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], + "source": [ + "def update_func(state, system):\n", + " # suggestion from Allison: first calculate named flows here to guarantee conservation\n", + " unpack(system)\n", + " state.R += gamma * tau - mu * state.R - beta * state.R * state.V\n", + " state.L += rho * beta * state.R * state.V - mu * state.L - alpha * state.L\n", + " state.E += (1 - rho) * beta * state.R * state.V + alpha * state.L - delta * state.E\n", + " state.V += pie * state.E - sigma * state.V\n", + " return state\n", + "state = update_func(state, system)" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "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", + "
values
R1000
L0
E0
V100
\n", + "
" + ], + "text/plain": [ + "R 1000\n", + "L 0\n", + "E 0\n", + "V 100\n", + "dtype: int64" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = State(\n", + " R=1000, # activated normal lymphocytes\n", + " L=0, # latently infected\n", + " E=0, # actively infected\n", + " V=100 # free virions\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1000" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "R" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], "source": [] }, { From 0120313228c44f74ac359ece3f2e77a35c2b1f6a Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 16 Oct 2018 16:21:10 -0400 Subject: [PATCH 36/61] beginning of a lotka-volterra model --- code/Lotka-Volterra.ipynb | 285 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 285 insertions(+) create mode 100644 code/Lotka-Volterra.ipynb diff --git a/code/Lotka-Volterra.ipynb b/code/Lotka-Volterra.ipynb new file mode 100644 index 00000000..65b2bb0c --- /dev/null +++ b/code/Lotka-Volterra.ipynb @@ -0,0 +1,285 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Lotka-Volterra" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
alpha0.05
beta0.10
delta0.10
gamma0.10
\n", + "
" + ], + "text/plain": [ + "alpha 0.05\n", + "beta 0.10\n", + "delta 0.10\n", + "gamma 0.10\n", + "dtype: float64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(\n", + " alpha=0.05,\n", + " beta=0.1,\n", + " delta=0.1,\n", + " gamma=0.1\n", + ")" + ] + }, + { + "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", + "
values
x1
y1
\n", + "
" + ], + "text/plain": [ + "x 1\n", + "y 1\n", + "dtype: int64" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = State(\n", + " x=1, # prey\n", + " y=1 # predator\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func(state, system):\n", + " x, y = state\n", + " unpack(system)\n", + "\n", + " x += alpha * x - beta * x * y\n", + " y += delta * x * y - gamma * y\n", + " \n", + " return State(x=x, y=y)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "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: TimeFrame\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " frame = TimeFrame(columns=init.index)\n", + " frame.row[t0] = init\n", + " \n", + " for t in linrange(t0, t_end):\n", + " frame.row[t+1] = update_func(frame.row[t], t, system)\n", + " \n", + " return frame" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
x0.950
y0.995
\n", + "
" + ], + "text/plain": [ + "x 0.950\n", + "y 0.995\n", + "dtype: float64" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "update_func(state, system)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 9af160bcc722c09739a34d5fc8a98c1a6aab1db7 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 16 Oct 2018 19:10:27 -0400 Subject: [PATCH 37/61] updates --- code/Lotka-Volterra.ipynb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/Lotka-Volterra.ipynb b/code/Lotka-Volterra.ipynb index 65b2bb0c..1dcb4635 100644 --- a/code/Lotka-Volterra.ipynb +++ b/code/Lotka-Volterra.ipynb @@ -97,7 +97,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -143,7 +143,7 @@ "dtype: int64" ] }, - "execution_count": 7, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -198,7 +198,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -244,7 +244,7 @@ "dtype: float64" ] }, - "execution_count": 27, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } From 90184207bdc7a89fe84d9f3def5a7c0b8468ebd7 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 18 Oct 2018 15:36:53 -0400 Subject: [PATCH 38/61] adds working lotka volterra example --- code/lotka-volterra-allen-downey.ipynb | 418 +++++++++++++++++++++++++ 1 file changed, 418 insertions(+) create mode 100644 code/lotka-volterra-allen-downey.ipynb diff --git a/code/lotka-volterra-allen-downey.ipynb b/code/lotka-volterra-allen-downey.ipynb new file mode 100644 index 00000000..23deee98 --- /dev/null +++ b/code/lotka-volterra-allen-downey.ipynb @@ -0,0 +1,418 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Quick implementation of Lotka-Volterra (with no explicit dt).\n", + "\n", + "Copyright 2018 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": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "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: TimeFrame\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " frame = TimeFrame(columns=init.index)\n", + " frame.row[t0] = init\n", + " \n", + " for t in linrange(t0, t_end):\n", + " frame.row[t+1] = update_func(frame.row[t], t, system)\n", + " \n", + " return frame" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func(state, t, system):\n", + " \"\"\"Update the SIR model.\n", + " \n", + " state: State(x, y)\n", + " t: time\n", + " system: System object\n", + " \n", + " returns: State(x, y)\n", + " \"\"\"\n", + " unpack(system)\n", + " x, y = state\n", + "\n", + " dxdt = alpha * x - beta * x * y\n", + " dydt = delta * x * y - gamma * y\n", + " \n", + " x += dxdt\n", + " y += dydt\n", + " \n", + " return State(x=x, y=y)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
x1
y1
\n", + "
" + ], + "text/plain": [ + "x 1\n", + "y 1\n", + "dtype: int64" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = State(x=1, y=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "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", + "
values
alpha0.05
beta0.10
gamma0.10
delta0.10
t00.00
t_end200.00
\n", + "
" + ], + "text/plain": [ + "alpha 0.05\n", + "beta 0.10\n", + "gamma 0.10\n", + "delta 0.10\n", + "t0 0.00\n", + "t_end 200.00\n", + "dtype: float64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(alpha=0.05,\n", + " beta=0.1,\n", + " gamma=0.1,\n", + " delta=0.1,\n", + " t0=0,\n", + " t_end=200)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
x0.95
y1.00
\n", + "
" + ], + "text/plain": [ + "x 0.95\n", + "y 1.00\n", + "dtype: float64" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "update_func(init, 0, system)" + ] + }, + { + "cell_type": "code", + "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", + "
xy
0.011
1.00.951
2.00.90250.995
3.00.8578260.985299
4.00.8161960.97129
\n", + "
" + ], + "text/plain": [ + " x y\n", + "0.0 1 1\n", + "1.0 0.95 1\n", + "2.0 0.9025 0.995\n", + "3.0 0.857826 0.985299\n", + "4.0 0.816196 0.97129" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results = run_simulation(system, update_func)\n", + "results.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 5269176390c79126ae4cf50e67af0ef6a6f6202a Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 18 Oct 2018 16:39:11 -0400 Subject: [PATCH 39/61] working HIV virion model! --- code/HIV Model.ipynb | 304 ++++++++------------------------------ code/Lotka-Volterra.ipynb | 7 +- code/chap15.ipynb | 2 +- 3 files changed, 71 insertions(+), 242 deletions(-) diff --git a/code/HIV Model.ipynb b/code/HIV Model.ipynb index 01550cc2..4444ef75 100644 --- a/code/HIV Model.ipynb +++ b/code/HIV Model.ipynb @@ -10,7 +10,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -21,12 +21,13 @@ "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", "\n", "# import functions from the modsim.py module\n", - "from modsim import *" + "from modsim import *\n", + "import seaborn as sns" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -56,33 +57,33 @@ " \n", " \n", " R\n", - " 1000\n", + " 1.000000e+03\n", " \n", " \n", " L\n", - " 0\n", + " 0.000000e+00\n", " \n", " \n", " E\n", - " 0\n", + " 0.000000e+00\n", " \n", " \n", " V\n", - " 100\n", + " 4.000000e-07\n", " \n", " \n", "\n", "" ], "text/plain": [ - "R 1000\n", - "L 0\n", - "E 0\n", - "V 100\n", - "dtype: int64" + "R 1.000000e+03\n", + "L 0.000000e+00\n", + "E 0.000000e+00\n", + "V 4.000000e-07\n", + "dtype: float64" ] }, - "execution_count": 3, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -92,98 +93,15 @@ " R=1000, # activated normal lymphocytes\n", " L=0, # latently infected\n", " E=0, # actively infected\n", - " V=100 # free virions\n", + " V=4e-7 # free virions\n", ")" ] }, { "cell_type": "code", - "execution_count": 18, + "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", - "
values
gamma1.36000
mu0.00136
delta0.33000
beta0.00027
alpha0.03600
pie100.00000
sigma2.00000
rho0.10000
tau0.20000
\n", - "
" - ], - "text/plain": [ - "gamma 1.36000\n", - "mu 0.00136\n", - "delta 0.33000\n", - "beta 0.00027\n", - "alpha 0.03600\n", - "pie 100.00000\n", - "sigma 2.00000\n", - "rho 0.10000\n", - "tau 0.20000\n", - "dtype: float64" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "system = System(\n", " gamma=1.36, # birthrate of R\n", @@ -194,180 +112,88 @@ " pie=100, # virion creation rate\n", " sigma=2, # virion death rate\n", " rho=0.1, # proportion of cells becoming latently infected upon infection\n", - " tau=0.2 # proportion of cells activated\n", - ")" + " tau=0.2, # proportion of cells activated\n", + " t_0=1, t_end=1201,\n", + " dt = 1/24\n", + ");" ] }, { "cell_type": "code", - "execution_count": 106, + "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", - "
values
R-1771
L-951
E-8662
V-886600
\n", - "
" - ], - "text/plain": [ - "R -1771\n", - "L -951\n", - "E -8662\n", - "V -886600\n", - "dtype: int64" - ] - }, - "execution_count": 106, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "def update_func(state, system):\n", + "def update_func(system, state):\n", " # suggestion from Allison: first calculate named flows here to guarantee conservation\n", " unpack(system)\n", - " state.R += gamma * tau - mu * state.R - beta * state.R * state.V\n", - " state.L += rho * beta * state.R * state.V - mu * state.L - alpha * state.L\n", - " state.E += (1 - rho) * beta * state.R * state.V + alpha * state.L - delta * state.E\n", - " state.V += pie * state.E - sigma * state.V\n", - " return state\n", - "state = update_func(state, system)" + " \n", + " drdt = gamma * tau - mu * state.R - beta * state.R * state.V\n", + " dldt = rho * beta * state.R * state.V - mu * state.L - alpha * state.L\n", + " dedt = (1 - rho) * beta * state.R * state.V + alpha * state.L - delta * state.E\n", + " dvdt = pie * state.E - sigma * state.V\n", + " \n", + " state.R += drdt * dt\n", + " state.L += dldt * dt\n", + " state.E += dedt * dt\n", + " state.V += dvdt * dt\n", + " return state" ] }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 37, "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", - "
values
R1000
L0
E0
V100
\n", - "
" - ], - "text/plain": [ - "R 1000\n", - "L 0\n", - "E 0\n", - "V 100\n", - "dtype: int64" - ] - }, - "execution_count": 107, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "state = State(\n", - " R=1000, # activated normal lymphocytes\n", - " L=0, # latently infected\n", - " E=0, # actively infected\n", - " V=100 # free virions\n", - ")" + "def run_simulation(system, state, update_func):\n", + " frame = TimeFrame(columns = state.index)\n", + " frame.row[system.t_0] = state\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " frame.row[t+1] = update_func(system, frame.row[t])\n", + " return frame" ] }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "1000" + "" ] }, - "execution_count": 49, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "R" + "state = State(\n", + " R=1000, # activated normal lymphocytes\n", + " L=0, # latently infected\n", + " E=0, # actively infected\n", + " V=4e-7 # free virions\n", + ")\n", + "run_simulation(system, state, update_func).plot()" ] }, { "cell_type": "code", - "execution_count": 53, + "execution_count": null, "metadata": {}, "outputs": [], "source": [] diff --git a/code/Lotka-Volterra.ipynb b/code/Lotka-Volterra.ipynb index 1dcb4635..57f581ce 100644 --- a/code/Lotka-Volterra.ipynb +++ b/code/Lotka-Volterra.ipynb @@ -164,9 +164,12 @@ "def update_func(state, system):\n", " x, y = state\n", " unpack(system)\n", + " \n", + " dxdt = alpha * x - beta * x * y\n", + " dydt = delta * x * y - gamma * y\n", "\n", - " x += alpha * x - beta * x * y\n", - " y += delta * x * y - gamma * y\n", + " x += dxdt\n", + " y += dydt\n", " \n", " return State(x=x, y=y)" ] diff --git a/code/chap15.ipynb b/code/chap15.ipynb index 9a203a9f..6880b213 100644 --- a/code/chap15.ipynb +++ b/code/chap15.ipynb @@ -310,7 +310,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.5" } }, "nbformat": 4, From 700a1caabbb61908214d7deac302c958dfbf894b Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 22 Oct 2018 15:31:26 -0400 Subject: [PATCH 40/61] patches modsim.py --- code/modsim.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modsim.py b/code/modsim.py index 4175bb20..a0b411fb 100644 --- a/code/modsim.py +++ b/code/modsim.py @@ -155,9 +155,6 @@ def linrange(start=0, stop=None, step=1, **options): stop: last value step: space between values - Also accepts the same keyword arguments as np.linspace. See - https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html - returns: array or Quantity """ if stop is None: @@ -177,7 +174,10 @@ def linrange(start=0, stop=None, step=1, **options): if options['endpoint']: n += 1 - array = np.linspace(start, stop, int(n), **options) + array = np.full(int(n), magnitude(step)) + array[0] = magnitude(start) + array = np.cumsum(array) + if units: array = array * units return array From 16acca0d8fc316466178875dd3c4b134983440e4 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 23 Oct 2018 17:12:54 -0400 Subject: [PATCH 41/61] updates --- code/HIV Model.ipynb | 2 +- code/chap13ode.ipynb | 878 +++++++++++++++++++++++++++++++++++++ code/chap15.ipynb | 2 +- code/figs/chap06-fig01.pdf | Bin 0 -> 13551 bytes code/figs/chap06-fig02.pdf | Bin 0 -> 13018 bytes 5 files changed, 880 insertions(+), 2 deletions(-) create mode 100644 code/chap13ode.ipynb create mode 100644 code/figs/chap06-fig01.pdf create mode 100644 code/figs/chap06-fig02.pdf diff --git a/code/HIV Model.ipynb b/code/HIV Model.ipynb index 4444ef75..43cefb22 100644 --- a/code/HIV Model.ipynb +++ b/code/HIV Model.ipynb @@ -222,7 +222,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.6.6" } }, "nbformat": 4, diff --git a/code/chap13ode.ipynb b/code/chap13ode.ipynb new file mode 100644 index 00000000..16e79e33 --- /dev/null +++ b/code/chap13ode.ipynb @@ -0,0 +1,878 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 13\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": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Code from previous chapters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`make_system`, `plot_results`, and `calc_total_infected` are unchanged." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "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": 3, + "metadata": {}, + "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, '--', label='Susceptible')\n", + " plot(I, '-', label='Infected')\n", + " plot(R, ':', label='Recovered')\n", + " decorate(xlabel='Time (days)',\n", + " ylabel='Fraction of population')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def calc_total_infected(results):\n", + " \"\"\"Fraction of population infected during the simulation.\n", + " \n", + " results: DataFrame with columns S, I, R\n", + " \n", + " returns: fraction of population\n", + " \"\"\"\n", + " return get_first_value(results.S) - get_last_value(results.S)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an updated version of `run_simulation` that uses `unpack`." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "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: TimeFrame\n", + " \"\"\"\n", + " unpack(system)\n", + " \n", + " frame = TimeFrame(columns=init.index)\n", + " frame.row[t0] = init\n", + " \n", + " for t in linrange(t0, t_end):\n", + " frame.row[t+1] = update_func(frame.row[t], t, system)\n", + " \n", + " return frame" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write a version of `update_func` that uses `unpack`." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Original\n", + "\n", + "def update_func(state, t, system):\n", + " \"\"\"Update the SIR model.\n", + " \n", + " state: State (s, i, r)\n", + " t: time\n", + " system: System object\n", + " \n", + " returns: State (sir)\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": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test the updated code with this example." + ] + }, + { + "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", + "
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": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = make_system(0.333, 0.25)\n", + "results = run_simulation(system, update_func)\n", + "results.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(results.S, results.I, results.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": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.25" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "beta_array = linspace(0.1, 1.1, 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": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.1 0.0072309016649785285\n", + "0.2 0.038410532615067994\n", + "0.30000000000000004 0.33703425948982\n", + "0.4 0.6502429153895082\n", + "0.5 0.8045061124629623\n", + "0.6 0.8862866308018508\n", + "0.7000000000000001 0.9316695082755875\n", + "0.8 0.9574278300784942\n", + "0.9 0.9720993156325133\n", + "1.0 0.9803437149675784\n", + "1.1 0.9848347293510136\n" + ] + } + ], + "source": [ + "for beta in beta_array:\n", + " system = make_system(beta, gamma)\n", + " results = run_simulation(system, update_func)\n", + " print(system.beta, calc_total_infected(results))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Wrap that loop in a function and return a `SweepSeries` object." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "def sweep_beta(beta_array, gamma):\n", + " \"\"\"Sweep 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", + " results = run_simulation(system, update_func)\n", + " sweep[system.beta] = calc_total_infected(results)\n", + " return sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Sweep `beta` and plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "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", + "
values
0.10.007231
0.20.038411
0.30.337034
0.40.650243
0.50.804506
0.60.886287
0.70.931670
0.80.957428
0.90.972099
1.00.980344
1.10.984835
\n", + "
" + ], + "text/plain": [ + "0.1 0.007231\n", + "0.2 0.038411\n", + "0.3 0.337034\n", + "0.4 0.650243\n", + "0.5 0.804506\n", + "0.6 0.886287\n", + "0.7 0.931670\n", + "0.8 0.957428\n", + "0.9 0.972099\n", + "1.0 0.980344\n", + "1.1 0.984835\n", + "dtype: float64" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "infected_sweep = sweep_beta(beta_array, gamma)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap06-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "label = 'gamma = ' + str(gamma)\n", + "plot(infected_sweep, label=label)\n", + "\n", + "decorate(xlabel='Contacts per day (beta)',\n", + " ylabel='Fraction infected')\n", + "\n", + "savefig('figs/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": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1])" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "beta_array" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And now an array of values for `gamma`" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0.2, 0.4, 0.6, 0.8]" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gamma_array = [0.2, 0.4, 0.6, 0.8]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For each value of `gamma`, sweep `beta` and plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap06-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzsvXl8HNd15/ut3tFo7CB2ENyAS5AU903iIpISRUmUbdnye5mMJ7GzOV4/GW8vi5I4kWIlfplk7HHGo1i2Y49HE/l5bMVJTEkUJUoiKZEUxX0r7gCx72h0A71WvT+q0QsIgE0S6G6g7/cjfdD3dFX3IdBdv7rnnnuOous6EolEIpFkGqZ0OyCRSCQSyXhIgZJIJBJJRiIFSiKRSCQZiRQoiUQikWQkUqAkEolEkpFIgZJIJBJJRiIFSiKRSCQZiRQoiUQikWQkUqAkEolEkpFIgZJIJBJJRmJJtwNTjRDCDqwD2oFwmt2RSCQSiYEZqATeV1XVn8wJs06gMMTpQLqdkEgkEsm4bAEOJnPgbBSodoAXX3yRioqKdPsikUgkEqCjo4NPfOITELlGJ8NsFKgwQEVFBTU1Nen2RSKRSCSJJL30IpMkJBKJRJKRpGUGJYRYD/y7qqplEzw/F/gBsBHoAr6oquqeFLookUgkkjST0hmUEEIRQvwusBewTXLoS8BpoAT4PeAlIcSCFLgokUgkkgwh1SG+vwQ+C/zVRAcIIRqAtcCfq6oaUFX1TeBfgd9JjYsSiUQiyQRSHeJ7XlXVPxdCbJvkmCVAs6qq3jjbRWD9VDigaRotLS14vd7bHyxJmtzcXGpqajCZ5LKmRCKZGlIqUKqqtiVxmAsYHmMbBpxT4UNPTw+KoiCEkBfTKULTNFpbW+np6aGsbNxlRYlEkuHouh75aTzWI49BR9fBbFIwm1N7zczENHMvkDPG5gQ8U/HiAwMDzJs3T4rTFGIymSgvL6epqUkKlGTGous6mqYTDGuEwzqhsBb5Xycc1tAiz+s6aLpOWBsd62ga0efHHqdpxrG6HnvOOI7Y+WPtCWPjf4z/0LWYeOgRozZGXAC0hMdx5+t6ggjF2yfDbjWzbU0N9bVF0/UnuIVMFKjzwFwhRI6qqiMR2+KI/Z4Jh8NYrdapeClJHFarlVAolG43JLOQcFgjGBGKUEgjrGkEQxphzRgbghJ7PjqOPB8vNKGwFmfTo681Or7dRTqb8QfDXGrqz26BUlVVFUKcAr4hhPhj4AHgI8D9U/UeiqJM1UtJIsjfqeR26LqOPxDGFwjjC4RiP/2jj8P4AyFG/KM/Q/gDYYJhLd2uZw2KoqAAKKCMjhXjp9NhYXn9nJT6kxECJYT4BPCPqqq6IqangO9h7IHqAX5HVdWz6fJPIpEkEgprccIS+Rk/HhWZ+HEwnPEzFJOiYLGYsJhNWMxK5KcJs0nBFPlfUcCsxI8VTIqCyUTkZ6I9em7kYj/6OPbTEACTKXLsBMfFxMLwNTpGSbCZDGWJCEzs34US9zyj58ZeZ/T8TCItAqWq6ltAYdz4ReDFuPFN4LHUe5Yd/OQnP+GFF15gaGiIhx56iGeeeQan89YcFE3T+Pa3v83LL7/M8PAwjY2N/Nmf/RkNDQ1p8FqSCjRNZ2g4wIDHz6DHz+BQAK8veMtsJ5TCWY1JUbBaTJgjomE1jz42YbGMGY+KisWExWQ8b4k+Z8IcOX/0GLPJeG1L5DXMpsy6QGc7GTGDkqSOAwcO8Pzzz/OjH/2Iqqoq/viP/5hnn32Wv/7rv77l2B//+Mfs37+fl156ibKyMp5//nk+/elPs2/fPiwW+dGZqei6jnckSP9QRIQ8AQaGfAx4Ari9fsLa9M1ybFYzDpsZh82Cwx75OWZst5nJGf1pt2C1mDLuzl6SGuRVJkN5+umnMZlMPPvss1Hbzp07+drXvsYjjzyScOyqVavGfY0XXniBtWvXJtj+5V/+haeeeor6+noAvvKVr/DEE0/wp3/6p+Tm5iYc63a7+dznPkdVVRUAn/rUp/jOd75De3s7tbW19/xvlEwfuq4z4g8ZM6GhAAMeQ4AGPX4Ghvz3PAMyKQoO+1hxGRWcMeITOc5us8gZiuSOyHqBOqF2cfR8B8HQ9IcsrBYT65dUsErcPhX7iSee4Etf+hJf//rXsVgsnD59mv7+frZt23bLsSdOnEjahytXrrB169boeO7cuei6zo0bN1i6dGnCsX/wB3+QMN63bx+FhYVRwZKkH18gFJ0BDXoC0VnRgMdPIHh3/TqdDiuFLjuFeTYKXQ5cTmucEBliI2c1klSQ9QJ18lJ3SsQJIBjSOHmpOymB2rBhA1arlSNHjrBp0yb27NnDrl27sNkmK2F4e4aHh8nJiW0zUxQFm83GyMjIJGfBkSNHeOaZZ3j22Wcxm8335IPkzgiGwgxEZkHx4biBIT++wN2l9jtsFgrz7BS6bBTmOShw2Shw2Sl02bFZ5d9XkhlkvUCtbJiT0hnUyobk0jRNJhOPPfYYr7zyCg888ACvvPIKf/M3fzPusWPDeKM8//zztzyXk5ODz+eLjnVdJxAI3BLei+dnP/sZzz33HH/xF3/B7t27k/Jfcvd4RoI0d7hpanfT0TuM1xe8q9exWc0UuIxZUKHLRkGeIUCFLjsOe9Z/9SUzgKz/lK4SZUnNaNLBE088we/93u+xe/duNE1jw4YN4x537NixpF9z0aJFXL9+PTpubm5G13Xq6urGPf6b3/wmL7/88rjrWZKpQdN0OvuGudHuprnDTffA5LPZeCxmU2TmE5kBjYpQnp0cu0WG4SR3jB4KEvL2Ex7qI+TpJzzUT9jTByi4lm7BVjY3Zb5kvUBlMsuXL6egoIBvfOMbPPHEE1NSnukjH/kITz/9NLt27aK2tpa/+7u/Y+fOneOmmX//+9/nX//1X/npT386oYBJ7o5hX5CbnUPcaB+iudONPzDxepHJpJCfa6PIZY/Oggpcdory7OTmWKUISe4KPRwi7B0gNNQXJ0Z9hEc8GMWPbmWk+ZwUKEmM3bt3893vfpdvfvObU/J6Dz74IJ/97Gf53Oc+x+DgIA888ADPPPNMwvt96EMf4jOf+QwvvPACHo+HJ598MuE1XnrpJYQQU+JPtqDrOt39I9yIhO66+kcm3LRqMilUlbqYV5lHbXkeRXkOTDL7TXKX6FqYsGcgKkChoT7Cnn7Cw24mEqLxUKx2HLWN0+foOEiBynDWr1/Pj3/841sy7O6FT3ziE3ziE58Y97lf/epX0cdHjhyZsvfMRnyBEDc7h2hqH6Kpw82If+KEBleOlbkV+dRVGKIkExUkd4quhQl7BxNmQyFPnyFEd1LBQ1EwOwuw5BVjdhVhcRVhzivBnJuPYkrt51IKVIZjMplk5fUZgq7r9Ll9NLUPcaPdTUevN1pleiyKolBZ4mRuRT7zKvMpKXDIUJ0kKXRdiwhRvyFAnn5jVuQduDMhQsHszMeSV4TZVYw5r9gQI1dhyoVoIqRASST3QDAUpqXLw412I3TnGZk44y7HbqGuIo+6ynxqy/JkJp3ktujhEKHBLoJ9HbHQnHcAXbuTPW4K5hxXRICKMecVGbOj3EIUc2Z/BjPbOwkbNmy4oyw9yfSi6zoDHj/N7UPc6HDT1u2ZtDRQebGTuop86irzKSvKkbMkyaTo4SDB/k6Cfe0E+9oJDXTekRiZc/Iwu4oMERoVo9wiFMvMbDEkBUoiuQ2hsEZrt4emdjdNHUMMevwTHmu3mZlbbsyS5pbn4XTMzAuDJDXooSDB/g6CfW0RQepC12+/J9PkyI1bIzKEyOwqwmS5t438mYYUKIlkHIKhMGpTPzfa3bR0eSatXVdamGOE7iryqSjJlRl3kgnRQgFCfaOC1EZwsPu260bm3AKsxVVYCuZERclktafI4/QiBUoiiUPXda60DHDoVNuE60lWi4nackOQ6irycDln112rZOrQgv5IuC4yQxrs4Xap3WZXEbbiKqzFlViLKzE5Jq7yMtuRAiWRROgdHOHAyVZaujy3PFeYZ2deZT51FflUleZiNsvMSsmtaP6RREEa6uN2gmTJK4mIkSFKJnvOpMdnE1KgJFlPIBjm6PkOTl/uSUgLz7FbWLO4jPlVBRS4siOkIrkzNP8wwV5DjAJ9bYQ9/bc5Q8GSX4K1pMoQpKIKTDZHSnydiUiBkmQtuq6jNvfz7ul2huMKspoUhfsWlbJuSTkOm/yKSGKERzzR2VGwr42wd3DyExQFS/4crCWV2IqrsBRVZM360VQgv31ZSLIt3+PZu3cvX/ziF1FVNUVeTi/d/SO8c6KF9l5vgr2q1MXWVdWUFsowi8RI+w50NhHouUmwt43wyNCkxyuKCUthWXT9yFJUMesy61KJFKgs405avo/S2dnJ17/+9RR6OX34AiGOnO3g7LXehFp4uQ4rm1ZUUV9bKPcqZTm6rhHsbcPfegl/x3X08MSbrxWTOSJIkaSGonIUs9xaMFVIgcpQMqHlOxhhsD/8wz/k4x//ON/73vfu9Z+VNnRd5/z1Pg6fbU+oiWdSFFY0zGFdY7msf5flhNy9+Nou4W+7gubzjnuMYjJjKaqIJTUUlmV8NYaZTNb/ZoevnWL48rFJ75KmCsVsxVm/FueCFbc9NhNavgP88Ic/pLS0lMcff3zGClRn3zDvnGihs284wV5bnsfWldUU5ctF6mwlPOLB334Ff+ulSMbdrZhzC7BX1WMrrcFSMCdj6tRlA1kvUCPXT6VEnMCIZ49cP5WUQGVCy/cLFy7w05/+lJ///Oe0tLTc0/umgxF/iMNn2zl/vS8hnOfKsbJ5ZTULqwtkOC8L0UIBAh3X8LVeJtjbxnhp4CZbDvaqRdir67Hkz5GfkzSR9QKVM39FSmdQOfNvL06Q/pbvPp+Pr33tazzzzDPk5eUl5XOmoGk65671cvhce0IjQLNJYZUoY83icqwWuY8pm9C1MMGeFnytlwh03hi3vp1iMmMrn4+jugFrabWcKWUAWS9QzgUrkprRpIN0tnw/e/Yszc3NfOELXwAgHDa+0GvXrh1X+DKF9h4v75xouaVt+rzKfDavqKYwT6b4Zgu6rhMa7DaSHdqvogVujRKAgq202gjhVcyXGXcZRtYLVCaTzpbva9eu5fTp09HxhQsXePLJJzO2svqwL8i7p9u42JS4UTI/18aWldXMrypIk2eSVBMeduNvvYyv7dKE+5QseSXYq+uxV9VjzuJSQpmOFKgMJ50t32cCYU3nzJVujp7vJBCMhW0sZhNrFpexSpRhkWWJZj1awIe/4yr+1ssE+zvGPcbkyMVRZYiSJb8kxR5K7gYpUBlOOlu+x9PY2Jhxm3RbuoY4cKKVXrcvwb6wuoBNK6rJz5XhmtmMroUJdDXhb71EoKt53DYVisWKvWIB9qp6rCVVKIq8WZlJSIHKcGTL91vxDAc4dLqNyzcHEuyFeXa2rqxmbkV+mjyTTDe6rhPqb8fXehl/xzX04Di9uRQFW2ktjuoGbOV1cuPsDEYKlGTGEA5rnLrcw/sXOgiGYnfLVouJdY0VrKgvlVXGZykhT7+R7NB2ZcJyQ5aCMhzV9dgrF8mK4LMEKVAZjmz5btDU4ebAyVYGhhLvmOtri9i0ogpXjrxLnm3ouoa/7QojN84QGuwe9xhzTh726gZjXclVmGIPJdNNSgVKCLECeB5YDlwDfltV1ffHOW4j8N8AAXQDf6Oq6vdT6askM3B7Axw81cq11sRsrJJ8B1tX11A9x5UmzyTTha7rBLtv4lWPEBrqveV5xWrHXrkQR3UDlsJyuYl2FpMygRJC2IBfAt8CtgJPAXuFEHWqqrrjjjNFjvuKqqr/SwixDjgghHhfVdVTqfJXkl5CYY3jahfHL3YltFu3Wc1sWFLBskWlmGVr9VlHsL8Dr3qUYF9bgl0xmbHNmYu9ugFb2Vy5iTZLSOUMahtgVVX1W5HxS0KILwC/BrwQd1wRUAYoQggFow5JCAik0FdJGvGOBHn57Su3hPMW1xXzwPJKnA4ZzptthDz9DKtH8XdeT7ArZgs581eQM+8+2dgvC0mlQC0BLoyxXQTuizeoqtorhPgH4MfAPwFm4A9UVR17rmQWomk6e480JYjTnMIctq6qobJUbqicbYR9XoYvH8N38yIJNfEUhZy5S3AuWoPJPnmvMsnsJZUC5QKGx9iGgYRPXyTE5wP+I/Bz4AHgF0KIi6qq7k2Fo5L0cfR8B63dHsAoZLtlZRXLFpRikuG8WYUW9DNy9QQjN87cUhfPXrmQ3Ib1mHNl9Y9sJ5UC5QXG5n46Ac8Y28eATaqqfi0yflsI8QPg9wEpULOY5g43H1zsio7XLSln+aI5afRIMtXo4RAjTWcZvnrilj1MttIanGI91oKyNHknyTRSuWnkPEZWXjyLI/Z4aoGxFT1DQGp6YmQBP/nJT9i6dSurVq3iq1/9KsPDYye2Md588012797NqlWr+PCHP8yRI0emxSfPSJDXjzZH22LUluexdnH5tLyXJPXouoav5SJ9b/8z3ouHE8TJkl9KwfonKFj/hBQnSQKpFKj9GIkPXxJCWIUQ/wEj3fzlMcftBZYKIT4thFCEEGuA3wP+OYW+zlpGW77/4Ac/4ODBgwQCgYSuvfFcvHiRr3zlK/zRH/0Rx48f55Of/CSf//znE9p1TAWaprP38I1op1unw8rO9XNlWG8WoOs6/s4b9B/4GUOn30roVGt25pO/8mEKNz2FrbQmjV5Kbke3t5fr/TfRtFvLSU0nKQvxqaoaEEI8hrEP6hngBvCkqqrdQog/AT6hqupSVVXPCSE+BjwL/C3QAfyRqqq/TJWvmUAmtHz/53/+Z5566im2bNkCwFNPPYUQYspLLx0+205bj3HhUhSFXRvrZKbeLCDY145XPXJL8VaTPQfnojU4ahtlungGo+kaTQOtnO64QKfH2Ci9tLyBTXPXpcyHlG7UVVX1LLB5HPtzwHNx4z3AnlT4dLrjAsfaThMKh6b9vSxmC2urlrO8ovG2x2ZCy/dz586xbds2fvd3f5czZ86wYMECnn766Xvu6hvPjXY3x9XYutOGpRVy8+0MJzTUh1c9QqCrKcGumK04F6wkZ/5yFIu8AclUQuEQau81znRexO1LLCsVTMF1Mp6sL3V0uvNCSsQJjD/86c4LSQlUJrR8Hxwc5MUXX+S73/0uS5cu5cUXX+TTn/40r776Kvn5916QdWg4wL6jzdHx3Io81iyWaxAzlfDIkJEy3nKJ+JRxRTHhqFuKc+FqWSMvgxkOjnC+6xLnui7jDyUmsJgUE4tK5vFA7ZqU+pT1ArW8vDGlM6jl5bcXJ0h/y3cAm83Ghz/84WgI8bd+67f40Y9+xAcffMD27duT+ndMRFjTee1wE76A8Xt35VjZub5Olq2ZgWgBH8NXT+BrOjsmZVzBXrWI3IZ1mJ2ywnymMjAyyOnOi1zqvXbLGpPNYmPJnHqWljWQa0v9fjQpUBWNSc1o0kE6W74DLFiwALfbnWAbbf1+rxw+005Hr7HuZFIUdm2cR4496z+OMwo9HGTk+hmGr51EDyUWerHNmUuu2CAbA2Youq7T7unidMcFmgdab3neZc9lefliROlCrGlsVyKvCBlMOlu+g5EU8Z//83/mQx/6EBs2bOBHP/oRuq6zcePGe/LhetsgJy7F1p02LquUVSJmELqu4bt5keHLx9D8iVsULAVl5C7eiK2kKk3eSSZD0zWu99/kVMd5erx9tzw/J7eE5RWNzC+qxZQBzR2lQGU46Wz5vm3bNr7xjW/w3HPP0draysKFC3n++ecT1rDuFLc3wL73Y+tO8yrzWSXkZtyZgK7rBDqu4710hLA3sbq8ObeAXLEBW/l8GabNQALhIGrPVc50XsTj997yfF1hDcsrGqlwzcmov9+EAiWE2DrRc2NRVfWdqXFHMpZ0t3zfvXs3u3fvnpL3DYc1Xjt8A3/ACBO6cqw8vG5uRn0hJOMT6G3De/EwocGuBLvJ7sRZvxZH7WLZTj0D8QaGOdulcqHrMoFwYq0Ds8lMQ8kC7qtYTKEjM9cIJ5tBvTVmrAMKoAFhwBp5HGBMPT3J1DGbWr6/e7qdzj4jJGRSFB69fx4Oue6U0YTcvUbKeHdzgl2x2HAuXEXOvGWypXoG0jvcz+mOC1zta0LTExMfHBY7S8oaWFrWQI41syvET3Z1yIt7/HHgSxj18I6pqhoWQiwH/hH40fS5J5ktXGkZ4NSVWFfUB5ZXUlEi150yFV3XGbl6Au+l90lIGTeZccxbhnPBKtn+IsPQdZ1WdwenOy/QMth+y/P5jjyWlzfSULoAywzZID2hQKmqGg1UCiGeBZ6K736rquppIcTngVcwhEoyDcyGlu+DHj9vHrsZHS+oLmBFvVx3ylT0cJCh02/hb78aZ1Vw1DTgrF+LOSdvwnMlqSeshbna18Tpzgv0DQ/c8nxFXhnLyxupK6yeceH0ZOMr+Rh9mcaSdwevIclCQmGNVw/fIBA01p3yc23sWFs7474o2UJ4ZAj3B68RcvdEbdbiSlxLt2DJK06jZ5Kx+EMBLnRf4WyXynBgTMFnRWFBUS3Lyxspc5Wmx8EpIFlx+T/APwkhvgScwFiL2gD8PfA/p8k3ySzg0Kk2uvuNKhUmk7HfyWGT9zSZSLCvDffx19ECsaoiOXVLyW18QNbMyyCG/B7OdKpc7LlyS4EBi9nC4tKFLCtfTL595pcMS/ZK8UXgfwC/jDsnCHwf+NpEJ0mym8s3+zlzNXYnvnlFFeXFMp8mExlpPo/33EH00QV1RcG1dAs5c5ek1zFJlG5vL6c6LnC9P9aWZpQcq4Nl5YLGOfU4LGO7Fc1ckhIoVVVHgE8JIb5IrKfTRVVVxzYblEgA6B/yJaw7Lawp5L6FMzfUMFvRtTDeC+8y0nQuajPZcshfvRNrsdxsmwl0eLp5v+UU7UOdtzxXlFPA8opGFhXPwzwLZ7lJx1qEEHnAb2AI1LPAViHEBVVVr09+piTbCIU1XjvcRDBk3I0XuOxy3SkD0QIjuI+/TrCvLWqz5JeSv2aXTITIAIaDIxy5eYLLvbdeYqvzK1he0UhNfuWs/l4lJVBCiAaMfVFuYAHwbeDXgY8IIR5VVfXdafNQMuM4cLKVngFjHcNsUnh04zzs1tl3dzeTCbl7cX/wKuGRWDsFe+VC8pZvk/ua0oyma5zvusT7racJxm2uVRSFhcXzWF6xmFJndiSsJLsD9NvA/6eq6mLAD6Cq6m8AP8FoKiiZQdxJy/d//Md/ZOvWraxdu5bf/M3f5MqVK5O+ttrUx7lrvdHxlpXVzCmSLRYyCX/7NQbeezlOnBRyG9aTt/JhKU5ppn2oi1+cf5V3mz9IEKf5RXP5D/d9mB0LHsgacYLkBep+4Lvj2P8eWDF17kimmztp+b5//35++tOf8tJLL3H48GGWLVvG1742cU6Mpum8dbwlOq6vLWLpAlnNOlPQdR3vpfdxn9iLHsn+UixW8tfswrlo9awOFWU6w4ER3rz2Lv928XX6hvuj9gJHPo837GDnoi3kzYKsvDsl2TWoEaAMuDTGXo8R9puxDJw8Rd/RY2ih4O0PvkdMFivF69dSuPL2mp4JLd/j23Louo7JZMJuHz9DSNN1Rvyh6LpTYZ6d7Wtq5EUvQ9BCATyn9uPvjP1Nzc4C8tc8iiWvKI2eZTeapnG2S+WDtjMJMyaLycLqqmXcV754ViY/JEuyAvVj4L8LIT4TGc8RQizDCP29OC2epYiBk6dSIk4AWijIwMlTSQlUJrR83717Nz/72c/Yvn07ZrOZ4uJifvKTn4z7up7hAJpmpL5azCYe3TgPm1x3ygjCw27cx14l5Im1V7CV1pC3aicm6+xJSZ5ptA11cqjpffpHEivDLyiey8ba1bhsshRYsiG+PwX2AG8CucB7GJt3fwk8PT2upYbClSswWVITdzdZrEmJEyS2fAfS0vI9EAiwYsUK9uzZw/Hjx/noRz/KZz7zGfz+xHbQI/4QPn+skeHWVdWUFsp1p0wg0NPCwKGfJ4hTzvzl5K97XIpTmvAGhnnj6kH+/eK+BHEqzMnncbGDhxdukeIUIdl9UCHgj4UQfwksjJx3RVVVrxCiDOia9AUymMKVK5IWjVSSCS3f/+qv/oodO3awcOFCAL785S/zi1/8gkOHDrFjxw4AQiGNoeFYN9XFdUU0zsueRdxMRdd1fE1n8Vx4FyKbOhWTGdd9D+Kobkizd9mJpmmc6brIB21nEipAWMwW1lTdx7IykdXhvPFINs08DFSoqtoNnIuzzwXOA9m3epcC0t3yvb29nUAgJj6KomAymbBYjI+NpusMev3RYtcmk8KDK+W6U7rRtTCeswfwtVyM2kx2J/lrdmEtLE+jZ9lLq7uDQ83HGBgTzltYXMfG2tXk2mSFlfGYrGHhrwMfjQwV4PtCCP+Yw+qAW/sGS6aEdLd83759Oz/84Q/ZsmUL1dXV/OAHP8BsNrNmzRp0XcfjDRAOR+7OFXDYLVgt8g4wnWj+YdzH9xLs74jaLAVlxuZbhwwbpRpPwMvhmye41teUYC/MKWDz3LVU5VekybOZwWQzqNeBnRjiBEYmX/xChQ4cQfaDmlbS2fL985//POFwmE9+8pMMDw+zbNkyvv/975Obm2usOwVi604up40ek5w5pZPgYBfuD15D88VaejuqG3At24pilgV6U0lYC3OmU+V4e2I4z2q2RsN5s6UR6XSijC06OB5CiK8Df6uq6nCczRJZm8oohBDzgOtvvPEGNTU1tzx/4cIFGhsbU+7X3fLee+/x+c9/nuPHj6fblSjBkEb/kC8a2nPYzeTn2mfc73Y24Wu9jOfMW+ja6E2DQm7jRnLmLZch1xTT4m7nUNMxBn2JO3AWlcxnY80qnLbsTCBqaWnhoYceApivquqNZM5J9rbqvwLPCyEuqqr6XMR2TQjxOvDFeOGSTC2Z1vJd03TccetOZrOCy3lvmYWSu0fXNYbVowxfOxm1KVY7+SsfxjanNo2eZR+egJf3mo9zvb85wV6UU8CmunVU5cn1vzslWYH6DrAU+Fac7TeA/wL8HfDZKfZLkoHous7QcOK6U4HLjkneoacFLehn6OQbBLpjF0Szq4iCNY9izi0Ebt4+AAAgAElEQVRIo2fZRVgLc7rzAifazhHSEsN5a6uXs3ROQ0bdZM4kkhWoJ4DtqqqeHjWoqvq2EOL3gVeRAjVtZFLL9xF/CH/culOe04bFLL946SDkGcD9wSuEvbGsMFtZHXkrH8JkkTPaVHFzsI1Dzcdw+4YS7PUl89lQuwqnNTvDeVPFnaycOiawy29DFhAMhfGMxCpuOOwWHHa58J4OAl3NuE/uQw/FtgA4F67C2bBerjeliCG/h/duHudG/80Ee7GziM1z11KRV5Ymz2YXyV5h/g2j1NFvqap6FkAI0YgR+tszXc5NF7quyy/yHaBpOoPeQHTdyWIxkedMrL6RTLKN5N7QdZ2R66fwXjzC6B9DMZnJW74de9Wi9DqXJYS0MKc7LnCi/SxhLRZNsJqtrKtewZKyekyKjCpMFckK1JeAfwFOR/ZC6YAd2IvRDn7G4HA46O3tpaSkRIpUEoyuO2lx6075ubaE352u6/T29uJwTDTJltwrejjE0Jm38bddjtpMjlwK1j6GJV92Kk4FzQOtvHvzGG5fYiPxhtIFrK9ZKcN500CypY76gQeFEEuAJUAAuKSq6sXJz0xECLECeB5YDlwDfltV1ffHOa4S+B/AdsAHfE9V1T+7k/eaiJqaGlpaWuju7p6Kl5v1BILhhHUnh91Cj+XWO0SHwzFuWr/k3gmPeHAff43QYOwzay2qIH/1Lkx2eVGcbtx+D+81f0DTQEuCvcRZxKa6dVS45qTJs9nPnbR8NwHzgFrgn4AGIUS+qqpJtdsQQtgwist+C9gKPAXsFULUjfMavwQ+AMqBSuDtSHv5/52svxNhtVqZP3/+vb5MVtDZN8zP91+OVim/b2Ep6++TIpRKgv0duI+/huaP7ZF31DbiWroZRdZtm3au9N7gnRtHErLzbBYb66pX0DhnkQznTTPJ1uKrBF7DECgnhoD8EbBBCPGwqqoXkniZbYBVVdXRVPWXhBBfAH4NeCHuvTZgtJXfpKpqELguhNhGYhULyTTjC4R47fCNqDiVFTnZvKIqzV5lF74WFc/Zd2KbbxUF15JNOOYuleHpaUbTNY62nOR0R+KlTZQuZH3NSnKsMpydCpKdQX0boyjsOqAnYvtPGC3fvw08MsF58SwBxgrZReC+MbY1wBngL4QQn8II8X1XVdW/S9JXyT2i6zpvvH8Tt9fIErNbzezaWIdZppSnjEBXE0On32I0GcJktZO3ehe2EnmTMN34gj72XTtEmztWz7DAkc+2+Rspl+G8lJLsFWcH8IyqqtFisZHqEU8D45fYvhUXMLbixDDGjCyeYmALEMSYSX0M+KoQ4j8m+T6Se+T05R6ut8X21+xYW0uBS/YOShVh7yDuk28wKk6WvBIKN31cilMK6PH28YsLryaIU11hDR9t3CXFKQ0kO4NSGH8fVClGwkQyeIGxK7pOwDPG5gfcqqr+RWR8SgjxfQyhuuc1KMnkhMIaR87Hvpwr6uewsKYwjR5lF3ooiPuD16J7nMw5LgrWPyGTIVLApZ5rHGg6mpA+vqZ6Oasrl8mQappIdgb1c+DvImtROoAQYjnw3zHWo5LhPCDG2BZH7PFcBJyRpIpR5I7QFNHU7iYQNL6g+bk2HrivMs0eZQ+6rjN0en+0+61iMpO3+hEpTtOMpmkcan6ft66/FxUnq9nKrvoHWVN1nxSnNJLshf/LGIkMrZHxecCKsYH3y0m+xn5AEUJ8CfgHjCy+5cDLY457HejGEMSvYIja7yDLKaWEKy0D0ccNc4vkulMKGbl2En/HtejYtWwr1gJZkWA6GQ6OsO/qQTqGYk3BC3MKeGTRVgod+Wn0TAKTzKCEEJ8WQrgAVFX1qKr668Ai4EMYmXeNqqo+mWyauaqqAeAxDGHqw1i/elJV1W4hxJ8IIc5FjvMBD2KsP7Vj1Pr7f1VV/fnd/iMlyREMhbnRFvtz1tfK0F6qCPS04FWPRsc5dctw1IwNOEimki5PD784/2qCOM0vmsuTjbukOGUIk82gvgW8AnjiWr5fw9hge1dEyiRtHsf+HPBc3PgasPtu30dyd9xodxMMawAU5zsozpeptKkgPOxm6MTrjCZFWIsqyG28P71OzXIudl/lYPNRNM34vKMorK9ewYqKJTKkl0FMJlBtGD2gjmIkSXxNCDE2oQEAVVWfGc8umVlcuRkL7y2qLZRf1BSgh4O4j+9FCxoJsiZHLvmrH5GbcKeJsBbm3eYPuNAdKxlls9h4aMEmagtklmSmMZlAfQr4c4yZjI7R/n28Dro6IAVqhhMIhrnRHhfek5l7046u6wydeYeQ29haqCgm8lftxGQfu/NCMhV4A8O8fvUAXZ6eqK3YWcQji7aSb3el0TPJREwoUKqqHiSyAVcIcR3Yqapqz0THS2Y219sGCUeqRpQW5lAkw3vTju/GmYTir7lLN2MtqkijR7OXDk83r195h5GgL2pbWFzH1nkbsJqtk5wpSSfJFoudDyCEsEbOUcY8L1u+z3ASwnty9jTtBHrb8Fx8Lzp21DaSM3dJGj2anei6zvnuy7zbfCzWEkZR2FizivvKF8swdoaTbC2+DcD3gGVjnlIwQnwyYD6D8QVCNHXGOoLK7L3pJTziMZIiIhdMa2EZrqW35A5J7pGQFuZg01Eu9cTyuhwWOw8t3Ex1vpypzgTupBbfIPAkkFRauWTmcL3VnVAUVpY1mj70cMioTh4wah+b7Dnkrd4lkyKmGE/Ay94r79Dj7YvaSnOL2blwC3lyvWnGkKxA3QdsVFX1zHQ6I0kPl2/2Rx/L2dP0oes6nnMHYn2dFIX8VTsxO3LT69gso22ok31XD+KLW2+qL5nPlnkbsMgbgRlFsgJ1AajCqDIumUUM+4K0dMV2D0iBmj58zefxtajRsavxAazFMrV5qtB1nbNdKodvHo+uNymKwv21a1ha1iDXm2YgyQrUd4AXhBDfAS4zpkCsqqp7ptoxSWq41jqIFvkyV5bk4nLabnOG5G4I9nfgPX8oOnZUN+CoG7ukK7lbQuEQ7zQd5Urv9ajNYXWwc+EWKvNkuah7Qdd1hi6q+Ht6KVy5HGteXsreO1mB+qfIz2+O85xMkpjBxNfeWyRnT9NC2OfFffw1dN2oWmDJL8W1bKu8o58ihvwe9l55h97hWKh6Tm4JOxdtwWWT4dN7IeT10vXGfoZbjHb34ZERKh55OGXvn2yauawYOgvxjgRp7fYCRihEttWYenQtzNCJ16Mt2002B/mrd6GYZYH+qaDF3c4bVw/hD0Vb1bF4ziI2zV2LWa433RPepma63txPeCTWzNxaUJBSHyb8lgghnKP7m4QQk25tl/ugZiZXWweisfqq0lxcOXLD4lTjPf8uwf7R/loKeSsfxuxMXYhktqLrOqc7L3Ck5WQ0Xd+kmNhUt5bGOfVp9m5mo4fD9L53mIHT8SkHCkWrV1K8dnVKfZnsNm5ICFGpqmoXRlNBfZxj5D6oGczl5lh4TyZHTD2+mxcZaT4XHecu3oittCaNHs0OguEgb984wrW+pqjNacth58ItsuvtPRLo66fz9X34e3ujNovTSdnDO3DWpP6zO5lA7cBoiwGwPQW+SFKIZzhAe68R3jMpCguqUzt1n+0EB7rwnDsQHdsrF5Ezf3kaPZodDPrc7L3yDv0jg1FbuWsOOxduwWmTjR3vFl3XcZ+/QM/BQ+jhWEfh3Lo6ynZsw5yTnt/tZLX43h7vsWR2EJ8cUV3mwumQ4b2pQvOPGEkRke6slrxi8u57UCZF3CPNA628ef1dAqFYEvGSsgbur10t15vugbDfT/f+t/Fci1XcUExmSjfdT/6ypWn93MqV2izl8k0Z3psOdC2M+8TraL5I8onVbiRFWOQNwN2i6zon2s9xrO10bL3JZGJL3XpE6cI0ezezGWlvp3PvPkJeb9RmKy6mfOdD2EtK0uiZgRSoLGTQ46ezz8hrMZkUFlTJ8N5U4b14mGBfW2SkkL/yIcy58vd7twTCQd66/i43+luitlybk52LtlKWm/4L6ExF1zT6j31A37HjxKcXFCxdSsmm+zFZMkMaMsMLSUqJD+/NLc/DYZcfg6nA13qJkRuxzKfchnXY5sxNo0czG38owL+r+xL2N1XmlfPwws3kWGU7mLsl6B6ic98b+Do6ojaz3c6c7dtwLZifRs9uRV6ZspCxnXMl907I3YPnTGyp1l4+n5yFq9Lo0cwmEA6y59KbCeK0rHwxG2tWYTLJbZl3i+fKVbreehstEFvHy6mqovzhHVhcmVdEN9l2G3OAPwXWAFZu7Qe1fupdk0wH/UM+ugeMjXdmGd6bErSAD/cHsaQIs6sI14rtMiniLgmGg7x6+S26vbFU563zNrB4zqI0ejWz0YJBeg4cwn3xYtSmKApF69ZStHoVSoaKfrIzqB8AG4D/hWy3MaOJnz3VVeZjs8rsp3tB1zWGTu4jPGL001IsVvJX78JkkTUN74aQFmbvlXfoGOqK2jbXrZPidA/4u3vo2Ps6wcFYar41L4/ynQ/hqMjsvljJCtRW4CMy3Xzmc0Vm700pw+pRAj2xBfy8FQ9hccnf690Q1sLsu3qAVndsbWRj7WqWlDWk0auZi67rDJ4+Q+97R6KzewDXokXMeXALZnvm931LVqD6MRoWSmYwvYMj9LqNHjlWs4l5lflp9mhm42+/yvC1k9Gxc9Ea7OXz0ufQDEbTNd689i7NA61R29rqFSyvaEyjVzOX0PAIXW/uZ7i5OWozWayUbtlE3mIxY8LPyQrUnwP/IIT4EuO325C1+GYA8Xuf5lXlY7XI8N7dEhrqY+j0W9GxrawOZ/3a9Dk0g9F0jbeuH+Z6f+xiurJyKaurZDuSu2G4+Sadb7yZUOTVXlpK+SMPYyucWbP7ZAXq74FC4PAEz8srXYaj63pi9p6sXH7XaEG/kRQRDgJgdhaQt2LHjLkrzSR0Xedg0/sJfZyWlS9mXfWKNHo1M9HDYXqPHGXg5KkEe+GKFZRsXI9innmX6WQF6uPT6oVk2ukZ8DHgMVoSWC0m6mR4767QdZ2hk28QHjYi3orZSv6aXZismR/PzzR0Xee9mx9wsftK1NY4p577a1dLsb9DAgODRpHX7u6ozZyTQ/lD23HOnbl78ZLtB/U2gBAiB6gHTMBVVVWHptE3yRRy+WZsP8mCqgIs5sxMK810hi8fI9AdC0XlLd+OJa84jR7NTHRd52jrSc52qlFbfcl8Ntetk+J0B4x2u+05cAgtFIzanXPnUrZjOxbnzC6gm+w+KDPwHPAHxPZBBYQQPwK+oKpqaNo8lNwzuq7LzrlTgL/zBsNXPoiOnQtWYa9ckEaPZi7H289yqv18dLyguI4H52+U4nQHhP1+ut8+gOdKbAaqmMyU3L+BguX3zYrfZbIhvm8A/wn4TeAghkBtAv4LRgLFn0+Ld5IpobNvGLfXyGux28zMLZcN8+6UkKefoVNvRMe20hqcYl0aPZq5nOo4zwetp6PjusIadsx/AJMiZ/XJ4uvooPP1NwgOxYJY1oICKh7ZiX1OaRo9m1qSFajfBH5XVdU9cbb/TwgxBHwPKVAZTfzsaUFVAWYZ3rsjtFDASIqIhFDMOXnkrXwYRV5Q75hzXZc4cvNEdFxTUMlDCzfL8kVJomsa/cdP0P/+sWg3bID8xsWUbt6EyTq7quYnK1Au4Mo49mtA0nIthFgBPA8sj5z726qqvj/J8YXAaeDPVVX9UbLvI4lxS/aeDO/dEbqu4zn1JmGv8TtUTGYjKcImi5XeKRe7r3KoKfZ1r8wr55GFW7HIXk5JEfJ46Nz3JiNtbVGbyWajbNuDuBbNzrYjyd62vA98fhz7F4APxrHfghDCBvwS+ClGyvo3gL1CiMnSyZ4HqpP0UTIO7b1ePCPGnb/DZqGmTIb37oSRq8fxd96Ijl33bcOSP3tCKKniSu8N3mk6Eh2XuUrZVf8gFrOsV50MnmvXufnTnyWIk6Oigtr/+/+ateIEyc+g/hB4SwixjdheqI3APODRJF9jG2BVVfVbkfFLQogvAL8GvDD2YCHEJ4F84MzY5yTJc7k5fu9TAWbTzF84TRWBrma8l45Fxznzl+Oork+jRzOT6/032X/93WizwRJnEY/Vb8dmnl3hqOlA1zR63zvCwKn4vU0KxWtXU7R2TcYWeZ0qkvrXqap6DFgNvA7UYoT1/g1YrKrqe0m+1xLgwhjbReC+sQcKIeYDXwd+O8nXloyDpulcbY1VqJLhveQJewdxn3qD0WZu1uIqchdvTK9TM5DmgVbeuHowul5SlFPA7oYd2GUx3duiBYN0vLo3QZwsublUP/khitevm/XiBHfQD0pV1UvAV+/hvVzA2JJIw4Az3hBJaf9fwFdVVe0QQtzDW2Y3rd0ehn1GeM/psFJVmnn9XjIRXdcZOr0fPWhsbDY5cslftVMmRdwhre4O9l59B03XAMh35LFbPIRDNhu8LSGPl/ZXXk3YeJs7bx5lD22fEUVep4oJBUoIcRTYpapqvxDifeL7Ao8hyX5QXmDsrjEn4Blj+zPjJdVfJPGakklI2PtUU4BJhveSwt+iEuw3KmorislIirDP7A2PqabD081rl99G0wxxctlzeUI8hNMqf4+3w9/TS/uv9hDyeqO2wpUrKLk/+/aJTTaD+hXgjzz+9yl4r/PAl8bYFgP/c4ztPwBVQoiPRcZ5wHeFEOtVVf3cFPiRFYQ1nastMrx3p2gBH141VnIyZ8EKrAVlafRo5tHl7eWVS/sJacb+fafNyRPiYVy23DR7lvl4m5rpfO31aFUIRVEo3bqFgqVL0uxZephQoFRV/cu44X7gPVVVg/HHCCHswONJvtd+QIlURP8H4CmMdPOXx7zv4jHvcRL4lkwzvzNauobwBYwLhCvHSmWJvDgkg/fSUbSA0ZLEnOPCuWh1mj2aWfQO97Pn0psEI4V0c6wOnhAPkW+X4eXbMXD6DD0H32U0WGWyWqnY9QjOubXpdSyNJBtU34+RGj6WBcD/TuYFVFUNAI9hCFMf8DTwpKqq3UKIPxFCnEvSF0kSjN37lG2hgbshONCFrzmWx5PbuAlFZpolTf/IIL+69CaBUKRqicXObvEQhQ5ZmHgydE2j+8Aheg4eIpqUk5dH9cc+mtXiBJOvQX0WGJ1FKcB5IcTYdSgXcIIkUVX1LLB5HPtzGLX+xjtnZbKvLzEIhzWuxWXv1dcWpdGbmYGua3jOHWD0AmGbMxebbD6YNIM+N7+69Aa+oDH7tJmt7G7YQXGODC1PhhYM0rl3H96mpqjNUVZGxeOPYnE6JzkzO5hsDeoFjMQGE/BD4FkSu+rqGAkOb9x6qiSdNHcO4Q8aLZ7zc22UFcmF6dvhu3mB0KCRMaWYzLiWbJKzziTx+L386tKbDAeMBnkWs4XHGrZTmiurvE9GyOOhfc+r+Ht6ojbXggWUPbR91pUsulsmW4MKEUlgEEJcB94F8lRV7YvY1gEnZCXzzGNsY0J5oZ0czT+CVz0aHecsXIU5tyCNHs0cvIFh/v3SPjx+I+PMbDLzaP02yl1z0uxZZuPv7qZ9z6sJmXpFq1ZRvHG9/L7GkewaVDegAn8cZ/s34IwQYvbW2ZiBhMIa19pkeO9O8KpHonuezDl5OBfIqHIyjAR9/OrSm7h9xk4Rk8nEI4u2UpVXnmbPMhvv9Ru0vvzLqDgpikLZ9m2U3L9BitMYkhWo7wAHiK1JAcwHjmBk5EkyhBvtboIhY+9JYZ6d0kK5KXIygv0d+FouRseupVtQZH242+IL+fnVpTcZGIl0FlYUHl6whdqCqjR7lrnous7AqdO0v/IaWsgIPJlsNio/tJv8xsW3OTs7SVag1gPPqKoa3VSrquoI8FcYfaEkGUJ8eK9ehvcmRdc1PGcPRMf28nnYymZue+xUEQgHeeXSfvqGI12aFYUdCzYxr6gmvY5lMLqm0XPgID2HYmnk1rw8aj72UZw18vc2EcneKvYBy4CrY+wNgGz7niEEQ2FutLujY7k5d3J8TecIDfUCRmJEbqO817odwXCQVy/vp9vbG7Vtm7eRhcV1afQqs9ECATpee53hmzejNkd5ORWPPTrjW7JPN8kK1PeB7wkhaoFjGLcAqzHKEv1gmnyT3CHX29yEwkZ4ryTfQUmB/PBPhOYfxnsplhjhXLQGs1O2IpmMkBbmtSvv0DEUqw+3uW49DaWy7f1EBIeGaP/VKwT6+qI216JFlO3YhskiQ8m3405avlswBGk0PacL+K/A306DX5K7IL72Xv1cmRwxGZ4L78U65OYWkLNgRZo9ymzCWph9Vw/Q5u6I2u6fu4YlZbL9yET4Orto3/MK4ZGRqK1ozWqjErkMvSdFUgKlqqqG0f7i60KIUiCgqqr7NqdJUog/GKYpPrxXI8N7ExHobcPfdjk6di3dgiK7uk6Ipmu8ce0QzQOtUdu6mhXcVy4X9ifCc+0ana+/gR429iMqJhNztj1I/mLZneFOSHqOKYRYhdHTyRwZK4AdWKOq6u9Pj3uSZLneNkhYMxZf5xTmUJiXPSX57wRdC+M9dzA6tlcuxFYqF6knQtM13rr+Hjf6Y+snq6qWsapyWRq9ylx0XWfg5Cl63ztCtKaezU7lY7vIqZYZjndKUgIlhHgao5KEB8jFqCgxupNxz/S4JrkT4jvnyr1PEzNy4ywhj7EeoJit5DY+kGaPMhdd1znY9D5Xem9EbfdVLGZt1fL0OZXB6OEw3QcO4j4fq+doLSigcvdj2AplRONuSDbN/PeBr6mqmg+0Y1Qhr8Zo//7+NPkmSRKfP8TNzlgy5cIaWQVhPMI+L8OXYy3cnfVrMDtklfeJONJygovdV6Ljxjn1bKxZLddPxiHs99P+q1cSxMlRUUHNx56U4nQPJCtQFcDPI49PAverqtoB/D/Ab0yHY5LkudY2iBZpqV1e7KTAJcN74+G98C56pA2ExVVMzrz70uxR5nK64wKnO2IX24bSBWyuk4v74xF0u2n9xb8w3NISteU11FP9kQ9hzpGZtPfCnZQ6Kok8vgSMpjy1AjKwmmYux2/OlXufxiXQ04K/PbaNL3fpZpkYMQFXem9w+Obx6HheUS1b58kyPOPh6+ig5ecvE+jvj9qK162l7KEdKGb5+bpXkk2S+CXGPqjfwegN9d+FEK9j9HZqmvRMybQy7AvS0hUt8CGz98ZB18KRVhoG9qp6bCXyvmo8Wt0dvHX9vei43DWHHQs2YVKSvZfNHjxXrtL5xptxmXpmyrY/SJ5oSLNns4dkBeqrwN9jVJN4EUOY3sBImviP0+OaJBmutg6iR8J7VaW5uJy2NHuUeYxcO0XYG6kZZ7Hiarw/zR5lJr3D/ey98g6aHqnlmFPArvoHsciZZgK6rjNw/AS9R2Ibvc12OxWPP0pOZWUaPZt9JCtQTwFPq6o6Wt/kU0KILwA+2W4jvYztnCtJJDw8xPCVD6Lj3Ib1mOyyEdxYhvweXrm8P9qq3Wlz8nj9dhwWuZ4Zjx4O0/32O7gvqlGbkan3OLZCmZw01SQrUP8NOApEC3DFF46VpAfPSJC2nljJfhneuxXvhUPomhGCseSX4qhbmmaPMg9fyM+eS/ujDQdtZiuP12/HZZcZjvGE/X46Xn2Nkda2qC2nqoqKRx/B7JBdA6aDZAPLR4CPTqcjkjvn6s2BaHiveo4Lp0N24Ywn0NWMv/NGdOxauhlFrqUkEAqHePXyWwz6jCokJpOJR+ofpNgpb3biCQ4O0vJ/fpEgTnmigaoP7ZbiNI0kO4PSgOeEEH8KXAdG4p9UVXX9VDsmuT2XW2T23kTo4RCe87GKEY6axViLKtLoUeYxWsKoyxNpOa4o7Jj/gGw4OIaR9g46XnmVsM8XtZVsWE/h6lUys3GaSVagjkT+l2QIQ8MBOnqN8J5JUVhQLePf8QxfO0l42JgVKFY7uWJDmj3KLEarRDQNxPbuPFC7mgWybUYCQ+oluva/HQ0TKyYzZQ9tJ69+UZo9yw4mFCghhClSJBZVVf9youMk6SF+71NNuYscuyzdP0rYO8jI1RPRca5Yj8kuN0zGc7z9bEKViBWVS1gmi79G0XWdvsNH6T8R+xyZc3KofGwXjgo5E08VkwXkg0KIsniDEGKrEEKm9WQAiZ1zZe29UXRdx3M+LjGiYA6O2sY0e5VZXOi+zAetp6PjRSXzWV+9Mo0eZRZaMEjHK68liJOtqIiapz4qxSnFTHbbPV5w9d+BlcC16XFHkgwDQ366+ocBMJkU5lfnp9mjzCHQ1USguzkyUoxWGjIxIkrTQAsHmmLlM2sKKnlQVomIEnQP0fHKq/h7Yx2DnXPnUvHIw5hsco9hqrnTuJD8FGcA8Y0J68rzcNhkeA9ADwfxnj8UHTvmNmItLJvkjOyi09PNvqsHIZL5WZpbzMMLt2CWG3EBo2xR+yuvJTQYLFyxgpL7N6CY5E1OOpBXthlIvEDJzbkxhq8cJzxiVHU32RzkNsjk0lEGfG5evfw24UjoM8/u4tH6bdjMcmsCjJcMYWLOg1vJb5TrculECtQMo9/to2fAuMOzmE3Mr5LZewAhzwAj105Fx7liIyab3J8CMBwYYc+lN/GH/AA4LHYeb9iO0yoTR4xkiCP0nzgZtZkdDioefYScKlmvMd3cTqA+JYSIrxhhAf6TEKIn/iBVVb875Z5JxiV+71NdRR42qwzP6LqO9/xB9EgNOWthOfYa2VobIBAOsufyfjx+Y0uCxWTh0YbtFDjkuqUWCNC57028N25EbbbiYioffxRrvvz9ZAKTCVQz8Nkxtg7gt8bYdEAKVArQdV12zh2HQMc1Aj2j+3kUXMu2yEV/IKyF2XvlHfqGjVYQiqLw8MLNlOWW3ObM2U/QPUT7nlcI9PVFbbl1cynfKZMhMokJBUpV1Xkp9EOSBL2DPvqHjN3sVouJukp5l6eFAnguvBsd59QtxZJfmkaPMgNd13nr+nu0uTuitq3zNjC3sDqNXmUGI7fzc1EAACAASURBVO0ddLw6Jhli5QpKNspkiExDrkHNIOI3586rLMBqkV+m4SsfoPkiFTXsOTgb1qXZo8zgSMsJrvbFWrWtrV6BKF2YRo8yA/dFle633pHJEDOElAqUEGIF8DywHGMv1W+rqvr+OMftBP4GqAe6gL9VVfUfU+lrpqHrekL2nqy9B6GhPkauxzac5i6+H5NV7iMf2659SVkDqyqzu4q7rmn0HTl6azLEY7tkD6cMJmW34EIIG0Zn3p8ChcA3gL1CiPwxx9UCPwf+KnLcrwN/LYTYlSpfM5Hu/hEGPUYWls1qZm5FXpo9Si+6ruM5F9vTYy2uxF5Vn2av0s947dofmLsmq9fktEAgUhkiJk624mJqPv4xKU4ZTipnUNsAq6qq34qMX4o0Pfw14IW44+YB/1tV1Zcj4/eFEG8Bm4DXUuNq5hGfvbegKh+LObvDe/62ywT7Iq0PlNGKEdl7EQbZrn08xk+GqKN850MyGWIGkEqBWgJcGGO7CNwXb1BV9QBwYHQshCgGtgA/mW4HMxVd1xNr72V59p4W9OO9GLsQ58xbjiWvOI0epZ+e4T7Zrn0MI+3tdLy6VyZDzGBSKVAuYHiMbRiYsP+2EKIA+FeMVh+/nD7XMpvOvmGGhgMA2G1maspcafYovQxfPobmNy46Jkcuzvo1afYovQz5PbxySbZrj8d94SLdb7+DrhmCLZMhZiapFCgvMHbruhMYt3W8EKIBQ5TOA58Ybf2RjcRn7y2sLsCcxeG9kLuXkRtno2PX4vsxWbI3VDParn0kaGw/yPZ27bqm0Xv4CAMnY1VFzDk5VDy6i5xKWYl8ppHKK915YOz2/sURewJCiK0Ys6Z/AT6uqqpv7DHZgq7rXG2R4T0YTYw4gLE3HGylNdgqszd1WrZrT2Q0GSJenGzFxdQ89TEpTjOUVM6g9gOKEOJLwD8AT2Gkm78cf5AQYiFGW4+nVVX9Tgr9y0jae7x4RozQTY7dQvWc7A3v+VtVgv3GxlNFMZG7ZHPWJkZousa+awdlu/YIMhlidpKyGZSqqgHgMQxh6gOeBp5UVbVbCPEnQohzkUM/D+RhpJZ74v7/Zqp8zSQuxYf3agoxmbL0ghzw4b14ODrOWbACiys7Zwqj7dqbB1qjtmxu1z7S3k7L//l5gjgVrVpJxWO7pDjNcFK6UVdV1bPA5nHszwHPRR5/GfhyKv3KVDRtbHgvOy/IAN5LR9ECRqTXnOPCuXB1mj1KH7Jde4xbkyHMzNm2lfzFsljwbECWOspgWrs9jPhDAOQ6rFSWZOfCd3CwC19zbIdCbuMDKJbs7GMk27UbyGSI7EAKVAYTn723KEvDe7qu4Tl7kGhixJy52Mrnp9epNCHbtRtogQCdr7+BtylWa9BeUkLFY49izc/uCiuzDSlQGUo4rHGtdTA6rp+bneE9380LhAa7ACN841qyKesuyCDbtY8SdLtp3/NqYjLEvHlGMoQ1O2fVsxkpUBlKS5cHX8AI7+U5bZQXT7ifedai+Ufwqkej45wFKzHnZl8HYdmu3WCkrc2oDOGL7TopWrWK4o3rs/KmJRuQApWhXL7ZH328qLYwK7+AXvUIetAokGvOycO5cFWaPUo9sl27wXjJEGXbHyRPNKTZM8l0IgUqAwmFNa61uaPj+prsC+8F+zvwtVyMjl1LN6OYs+vjKtu1R5Ih3jvMwKlYYohMhsgesusbP0O42TlEIGiEc/Jzbcwpyq67ZS0UMFppRLCVzcNWll17fHq8fRxsfj9r27Xrmob3+g36j5/A390dtctkiOxCClQGcqk5sbRRNoX3/J038Jw7EO2SO5oYkS24/R6OtZ7iSu+NBHu2tGvXw2HcF1UGTp4iODiY8Fzu/HmUPyyTIbIJKVAZRjCkcaM9LnsvSzbnaj4vnvOH8HdcS7A7xXrMztl/t+wL+jjefo7zXZeiLTMAUP7/9s48To7iyvPfzKyjq9WtvnRfCCHpidbZOjiMuTyeZTz27DA+1gefWeNj7MHYrL0+ZgYWG9vYZsFmWIYdYxvW7Ngzi9eLbfgwM148wApsMEig+wiQkEAnkrrV91FVmbl/RFR3VanVqhZdVd2l+H4+9anMyMjMyOzq+OWLePmewyVzWio+XXuQTNKxYycdW7aS7s1NeuC4Hg2rV9Gwbu059bBmsQI1rgiCkI273iSV1h1UQ20VTXVVZW5VcQnDkP4DO+nZ/QJhOjlY7sYSTLrw0orPkpv202w7tpvNR3YOpsvIcF79HC6as4qGROV6LqZ7e+nYso2OHTsIksmcbW4sRt2ypdStWE6k+tzzYrVYgRo3nOzq58kNBzja2jNYtmheZXvvpbtO0r19/WAA2AxVc4RJSy7FjVWuOAdhgDqxl5cOb6M32ZezbXrNVC6e28KMmqllal3xSbZ30L55C127FaFxn88Qqa6mbuUK6pY221h65zhWoMpMGIZsffUEz28/QtofGtqZ3lhNy+LK7KBCP03v3k307d1EmDWc5VXXUbPscmJT5pSxdcUlDENebz/Ii4c2097XmbOtPjGZi2av4rz6ORX7YDJw/AQnN22ie89rZKKDZIjW1dGwuoXaxYtwvHPrBWTL8FiBKiMd3QM8ueEAh08M5Wx0XYeLmmewWqZVZGijVNthuratx+/JmgB3HKoXtFC9cHVFu5If7T7OCwc28Wb38Zzy6liCNbOWI1MuwHUqLxllGIb0HTpE+6bN9B44eMr2qmnTqF+9iknz59tU7JYcKrc3GMeEYcj211p5buvhwfkmgCn1Cd65bh5T6ivPrTxIDdCz+3n6D+zOKY/WT6dm+ZVEahvL1LLic7KvgxcPbub19tzOOepFWTmjmeXThWgFRoXIuIq3b9pM/7Fjp2yvnjuH+pYWErNnVazFaHlrWIEqMV29SZ7aeIADb3YNlrmOw5ol01h74fSKS+cehiHJI3vp3vU7goGhuRYnEmWSXEzVvGacCrQaAHqSvbx0eBu7T+wdjKEH4DouzdMWs3rmUqqilTfPFvo+XeoVTm7afIqrODjULFxAQ0sL8alTytI+y8TBClSJCMOQXfvb+O2Ww4Mv4QI0Tq7inevmMa0CY+35vV1073iW5PE3csrj0+czaenleFWVmT4kmU6y+ehOtr25ezB+XoaFTfNZO3slk+OVlxn5TK7itUuEhpaVROsq1yvRMrZYgSoB3X0pnt54gNePDk2KO47DqsVTuXjpDCIVZzUF9O/fTs8rGwizXKfdqknUNF9GfMaCMrauePiBz87jr/Ly4e2DsfMyzJ48g4vntDBlUuUNZaZ7e+nYuo2O7dZV3DK2WIEqImEY8sobJ3lm8yEGkkNP0vU1cf5g3TxmTqk8CyLdeYKubetJd2Q7AjgkzmumevFFuNF42dpWLMIwZG/b62w4tIWuge6cbU3VDVw8t4U5k2eWqXXFI9XZSfumLXTu2m1dxS1FwQpUkejtT7H+5YPsPZQ7Br9y4VQuWT6TaKTCrCY/Rc+rG+nbtzVnviVS00jN8iuINlRmYM+DnUd48eBmTvS05ZTXxCexbvZKFjbOrzgHAO0qvpnuPXsZ1lW8ZRW1sti6ilveMlagisCeg+2sf/ngYLp20EFf/2DdPGZPrby5h+TxN+je/ix+35Djh+N6VC9cTWLBKpwKTKp3oreNFw9u5mDHkZzyeCTO6lnLaJ66qKKSCWpX8cPGVfzAKdvjU6fSsLqFSedbV3HL2GEFagzpH0izftOhnFxOAMsWNPG2FbOIRSunwwKdULB713MMHH41pzzaOIuaZVcQqam8OIJdA91sOLSVPa37cso912P59CWsmtFMLFI5Q1phGNKzbx/tL5/GVXzOHOpXryIxe3bFWYqW8mMFaozYd7iDp186SG//kFNATSLKO9bOZd6MysrfE4YhA4cUPbueJ0gNOQM40Tg1F15KfLZUXGc1GMz1+CsEQW4w1yVTLmDNrOVMik1sJ4AwDEl3dZFsbWOgtZVkaysDx46T6urKq5lxFV9FfGplRjuxjA+sQL1F+pNpfrv5MLtfz52DuHB+I5etnEVVrLJusd/TQdf2Z0i1Hsopj89cSE3zZbjxynrJuFKDufoDAyRbW7PEqI1kaxtBOnXafTKu4vWrVhKrn3jXbJl4VFbvWWJeP9rJ0xsP0N039E9dXRXl6jVzOH9WZf0Dh4FP32tb6N3zUo7Hlpeo1fHzps4rY+vGliAM6B7o4WDnUV4+sp3eZO47PRMpmGvo+yTbO/LEqJV0T8+Zdza40Sh1y5ZRt9K6iltKixWosyCZ8vnd1sPseK01p3zR3AaubJlNVbyybmvq5FG6tz1DujvbSnRInL+CSYvW4kQmZpielJ+iY6CL9r5O2vs7aO/v5GRfBx0DXbnDeIbxHMw1DEP8nl6Sba0MnGgl2aYtouTJk4TDXMvp8KqqiDU1EW9qJNbURKypkVhjI26ksn7TlomB/dWNkoPHunhq4wE6e4ZeSEzEI1y5eg4L51SWU0CQTtKrXqTv9R1kuxNHJk+hdvmVROomgAURhvSl+2nv7zRCNCRG3QOFWRHjLZhrkEqRbDup54gGxagVf2DgzDsbHNcj1thArLGRWFMj8aYmYlOa8BKJcSe+lnMXK1AFkkr7PL/tCFv3nMgpv2B2HVeunkN11cS0IoYjDEOSx17PSb0O4HgRqhevIzF/+biLnxeEAV0D3cYKGhKh9v5OkunkmQ+QR3UsQV18MnPrZrF02qKyBHMN0mnS3T1meK6VgdY2km1tpDo6yX//aCQiNTVagIxVFG9qIlo32b6nZBn3WIEqgCMnenhywxu0dw89ocZjHle2zGHR3ImXVDAMQ4KBXoK+Lvy+bvPdRdDXPfgd5jkExKbOpWbpFWVPv57yU4PCk7GKTvZ30NnflZsqvQAcx2FyvJb6qsk0JOqor5o8+BlrV/EwCPD7Bwj6+/H7+/D7+/H7+s16P35fH36fXg4y20ZwWBgONxrVw3KNjXqIbope9uKVF73Dcm5gBWoE0n7ACzuOsvmV44RZ0RHmz5zMVWvmUpMYn1ZTGPgE/T1GbLrwe7sI+o349HYR9PfkJAocCTeWYFLzZcRnXlASIQ6CgKSfZMBP0pPs5WRmSM4Mz/XkOSwUQtSLDolPYjL1VVqMJsdrzupl2jAMCVOp0wqL32cEyGwP+vvxB5KMxuoZGYdYfd2gAGnrqIlIbc2Ee1iyWEbCCtRpeLOtlyc3vEFbZ/9gWSzqcfnK2SyZ31DWjiBMp4Ysn/4ugl4jPhkR6u/lrXaGTiRKfOZCJsnFo0q9HoQBKT/NgJ8kmdZCk/RTDKSTg8KT9JMMpFMkB5eTDPh6Pe2nz3yS01AdqzbW0JAI1VdNpjqq51XCMCRMpwlSacJUmnRvB6l0miCVMuWnfgcDA7nWjhGf0TgenC2O4+BVVxNraMganmsk2tBgnRYs5wT2V56H7wds2PUmL+8+RpBlNc2dXss71s6ltrp4UQLCMCD005BOEST78Hs7c4bdMhZR9suxZ4sbjeMmavEStbiJGrxELVRNIqyqJowl8D2PZJCme6CTgZ4TWeKSJTZps54lNPnvCo3i4iEMcQL9IQhw/BDH97O+A1w/pNarosatosaNM8mNU+3GSBDFDULCVJIgfZQwdQA/neZEKkWQ1oIUpNOMnRUzetxYHC9RhZdI4FVV6U+iCjdrWX8ncKuqcGMxaxFZzmlKKlAishK4H1gBvAZ8XCm14WzrjTVhGPLr5/ez78hQWoxoxOVtK2axbEHT4FM4YUCYThH6+kk79FOEfpownQQ/rZf91FAdP22WM3WH9iO7buDr+SEgIMQnJE1IEOrlwc/gOlnL2dsgiEYJo3GCSJTQixFEIoRuhMDxCF2XdBgQ+GmC3uOku48Q+GnwjUhkiQVBkCUaIY4f6O1BiJO1zQ0CqoPT7DO4Hpj14eoZi8Rx8BwX13GJuB4xL0Y8EtPfXpSoF8Vx0kC3+WjJGf3A31vDjUQGhSRbXNzB5USO2HhVcRujzmIZJSUTKBGJAY8C9wBXAO8DnhCR85RSnaOtVwz8IOTN/a8y+eQW8JMkYg5T62J0/D7gmed8Qj+N76chDPBDINTiERLq4aMAQgKC0MxThOhtQUAYatFhcJveThigD5VZ10/4WiRyv50QvRyA47i5Hxwc9DeOq+vrhgCQ6RozMy7FjBbnOS6u6+E6Lp7j4bkuruPhuVE8x8N1XbyIKXPcoe1GmCii0eC4Hm40ghOJ4EajONEobiRrfbA8ghuJDAmQERsvUYUbj+NGx+f8o8VSSZTSgroKiCql7jHrD4vIZ4EPAj86i3pjjhOkqXn1V9DRh+c6eK5L+1vsLB2G+tvCp+MdcB3tyu24+snb8UyZB5lhHyNYuYSAn19Y4GmNxDkOruMMCozrZguNa4Qka931BstcxznrYSnHcXC8CI7ngutq4cgISDSCG4kOfecJyVC9aK7QRCK40aFla8VYLBOHUgpUM7Arr2w3sPws6405ad+nKhkQFBR13BkSCkfLkF51BtdxsspwzFfWMpnOPOtYmI46Sygc3LxlcDNWU6bccXBNPceIi4PZ5hqLxnVxPA/Xi+B6Hp4bwfVcve56uJ6nO3BXi6Jj6uuPXsbNXXfMPo7n4UQ8nMHtpo47/P5uJLOcdRw732KxWLIopUDVcOpUQS+QH9yr0HpjTrwqwfIPXM8bLzxLSKg7bM/DcSNmOYob8XDdiO7sXT285rqeEQF3UAwy64PCYL6H1jPCYKwUzzP7ObpTN3Vwtejgurozzyy72WLinCIsOE7u/haLxTLBKKVA9QD5oa6rycx0j75eUTh/9aWcv/rSUpzKYrFYLCNQygH5nYDklS0x5WdTz2KxWCwVTCktqKcBR0S+ANyH9s5bAfzyLOtZLBaLpYIpmQWllEoC70ILThtwC3CtUuq4iNwsIjvOVK9UbbVYLBZL+Snpi7pKqe3A24cp/zbw7TPVs1gsFsu5g30pxGKxWCzjEitQFovFYhmXVGKwWA/g6NGj5W6HxWKxWAxZfXLBQXUqUaBmAlx33XXlbofFYrFYTmUmsLeQipUoUBuAy4EjnHVQOovFYrGMMR5anArOTOFkZ4q1WCwWi2W8YJ0kLBaLxTIusQJlsVgslnGJFSiLxWKxjEusQFksFotlXGIFymKxWCzjEitQFovFYhmXWIGyWCwWy7jECpTFYrFYxiWVGEliQiAiK4H70ckYXwM+rpQ65Q1rEflD4A5gEXAMuEsp9YNStrWYFHofsurXA1uBryqlHipJI4vMKH4LM4HvA1cD/cAPlVK3lrKtxWIU9+AS4F501u3jwB1KqQdK2dZiIyIXAY8rpaadZvs84EHgEnSf8Dml1L+UsIklw1pQZUBEYsCjwM+AeuBbwBMiMjmv3lzgEeB2U+/DwHdE5JrStrg4FHof8rgfmF2C5pWEUd6DR9EhvKajO6ePishHStXWYjGK/wfX1LtXKVWH/n+4z4jbhEdEHBH5JPAEEBuh6sPoh7Qm4C+Ah0VkQQmaWHKsQJWHq4CoUuoepVRKKfUwsAP4YF69+cA/KaV+qZQKzBPl/wMuK2Vji8hVFHYfABCRjwKTgW2la2LRuYoC7oGIXAwsAG5SSvUrpfaZfZ8ucXuLwVUU9jtoAKYBjog4QAikgWQpG1tEvg7cgH4gHRYRWQysRY8gJJVSTwGPAZ8oTRNLixWo8tAM7Mor2w0szy5QSj2rlPrLzLqINKID4W4qegtLQ0H3AUBEzge+Bny8BO0qJYXegzVoYb5NRA6JyF7gz5RSR0rQxmJT6P9DK3Af8D+BFDro6M1Kqfx9Jyr3K6XWABtHqNMMvKGU6skqG/Z/phKwAlUeaoDevLJeoPp0O4hIHfpJ6QX0MEclUNB9EBEP+CnwJaVUpSX6KvS3kHk4SaEtqfcCX6qEIT4K/x246Lm3jwAJtOX1NRH5dyVoY9FRSh0uoNqo+46JjHWSKA896H+wbKqB7uEqG7P+UWAncJ1SKihu80pGoffhVkAppX5RklaVlkLvwQDQqZS6zaxvEZEH0EL1T0VtYfEp9B68F7hMKfVls75eRB4EPo2etzkXGFXfMdGxFlR52In2QspmiSnPQUSuQFtNvwLer5TqL37zSkah9+FDwPtFpF1E2tHDGX8vIn9fgjYWm0LvwW6g2jgUZKiUB8xC78FcIJ5XlkZblecKO4F5IpItUsP2HZVApfzAJxpPoyd6v4AeU38f2r32l9mVROQC4HHgFqXU35W8lcWnoPuglFqSvS4im4F7KsTNvKB7APwG7Vb9PRH5IrpD/wR6Un2iU+g9eALtxfop4EfAarQX2ydL2NayopRSIrIF+JaI/A3wNuBPgUvL27LiYC2oMqCUSgLvQv8jtgG3ANcqpY6LyM0issNUvRGoRf9Tdmd9/mt5Wj62jOI+VCyF3gNjOV+Jnn86AvwauFMp9Uh5Wj52jOIe7EAP830aaEcPbf61UqpS5mSHRUSuE5HsIbz3ARei34F6APiEUmp7WRpXZGxGXYvFYrGMS6wFZbFYLJZxiRUoi8VisYxLrEBZLBaLZVxiBcpisVgs4xIrUBaLxWIZl1iBslgsFsu4xAqUpWyIyCQR+aaIvCIifSKyT0S+Z3I+jdU5akRkTCI9i0hURD4zFscqFSKyUURuK+Lx14rIU2b5NhEZKdDpmY7liMhfiEjVKM795NmezzL+sQJlKQsm18/vgXcCN6GjNP8lcA06F1B+vLGz5YuMXbSFjwDfGKNjTXhMEN8fol+sHQuuMMcrKMKNUmojcNKkYbFUIDbUkaVc3IF+QHqHUqrPlO0TkZ3AHuBjwFjE2nPG4BjFOFYlcC0QKKWeH6Pjnc39vRf4sYj8pIKCKFsMVqAsJUdE4sB1wF9liRMASqkDInI1oExdB/gc8FlgHjpo6s2ZFNci8hA63UACeD/QCjyglLpdRK5H55BCRELgfHQ8u7vQnetU4CjwA6XU7aaeB9yMjvHWiM459FlT98dZx7oaeAX4AfrJP0THy7tRKXVsmGu+Hvg8OmvslwEfHU/uv2Q6VpOU8G507qcDZvt3lVKB2f8mdFDQf48Oc3RKYjsTp+8L6MSO95LV6YtIBJ0U7zp0VuI2dHbW/4xOBHgAuEYp9WTWPnuAbymlfpx/LvTfJT/CvCsi/w2dt6sb+I5S6t6s470L+A46luBr5vp+LCLzGUq+2CUiH1NKPWTi892ATt7ZDfwzcINSKhP657foFBR/QuWkobEY7BCfpRwsQHegG4bbqJR6ziSnAy0WXwe+ig4g+ivgsbw0358EDqIzjT4AfFNE1qDF4HvAFmAmugO+Gx1Y81p0J3lvVn3MeW5Ci0mL2eefgedNWZs51nPA99FCsw4dJ2++Od/puBB4D/AOtIX4KXQqEURkGvB/0TH2lps23Ah8JWv/FqALHST1H/IPbkTs68CX0CnhLzB1M3wZ+HPgo8Ais34jOu7dEeApdBr1zPEuQQvZKWlOzBDt2017s2lB35+LTTvuEJHrzD5LgUeA+4Fl6OHS74nIh9D3+X3mGBcAPxORDwO3oQV0EXA9OjDqpzMnM+L+G3QsP0uFYS0oSzloMN8dI1Uy1tPn0U/wD5vi24yl8RW0JQCwVyl1q1m+3Tx1r1FKvWSCbKYziQ5F5Hdoi+llU/8uEfkq0CwiL2NSbmdyT4nIjehOsta0N8w61nx0duP9Sqmk6VBrR7ikCDqf135gs4jcDvy1iHwDLRQblFLfNHVfNdGq70UPh2b4+ghJG28Avp+5V8Y5JDuZ3w7geqXUerO+X0S+jJ7/ewSdFPIeEblBKZVCz7k9rpQa7u/Ugn7AzU/zcBL4mMn4ulNE1gKfAf4R/Tf7R6XU/abuXhOx/0tKqYdFpM2UH1NK9YnIYdPex0356yKy3rQ3m53oILKWCsMKlKUcnDDfDSPW0sNOU9DWSza/BT6Qtf5q3vYuIHqaY/4UeI+I/DmwGFiFHiLyzLmmkmXZKaW60I4WiOSnLOJWtJX2XuNN9gvgf41wPQeMOGV4EZhuzrsUuCovarULJESkyaz3niGj8DLgnqy292ZHhFdKPSYiV4vInebaV6CtPs9U+QXaKrxGRP4V+A9ox5XhmA70DJOfbFteOvINaGsRc43LjZBniHCafE5KqfXGU+92dM6jpWirN996bEX/ViwVhh3is5SDPehOZd1wG0XkbvNk3zfcdvS8SvZvN3maOsPxP9DOF33oju5SdOqG7OMUFOJfKfUYOoneF9BDffcD/zLCLum89cw1+OiO+hG0YGY+K9BDWxkL5nT3I0PIqdc9eG+Mu/kv0IL0CHpYbEvW9XSjh1A/iB6GjI9wPcEw58pcSzZuVhsiwN+Re43L0NbYKZghy2fRc4H/ik5c+dgwVb1hzmupAKxAWUqOmTf4CfC5/HdezLDZp4EBpVQncJhTk7G9De0sUQiDYiMiteg5mP+olLpZKfUzdOdZBzhmKOsYWfM2IpIQkTfNsGL2sRwRuQuYrZR6UCn1fuDPgD8080nDMU9EpmStX4S2qtqAXcASpdSezAc9Z/VVtBgUwjb03E+mjTG0AGS4EfiiUuqLSqmfAPuB88gVmp8Cf4yeo/u5ydU0HEeBScO8DtBsHE0yXMLQMOAuYGHeNV6FHgKEUx8MbgTuUkp9Rin1ILAVLdj5wjjFtMdSYdghPku5+CbwbuBpEfkaephuJXAnuiP6oal3B/ANETkIvIR+ur8G3bEVQjcwQ0QWoCfie9BDcvuAWWiPPoehVOJ/C9wqIvvRXnq3oC2YTcAcoEZEmtEeaM3AfSJyE3pY8cPoTj8zhJlPFHhIRP4K7QhwC/Bts+2/AzeJyL1meS7aQ/BR48VXyLXeDfyDmUv7PdoJYmrW9lbg3SLyDNpJ5Tb0MGt2GvUn0ENuHwf+aIRzbTX1VppzZZgKPGiGES9CO7Bca7Z9F3hBRG4G/rfZ92+BjDdiZnhzg0n2NAAAAbNJREFUjYi8ZNp7tbnfDtpSbUYLcTYrOY3DjWViYy0oS1kwVsPbgY3ojngn2gPuV8AfZc1t3IcWrTvRHdOfAu9RSj1b4Kn+D1o8dqKHlD6Cfjl4J3qI7wn0MFbGi+8u4EG0N+AmtEfau40l8aQp24QW10+gn9z/Dd1hzzV1T2fxtKLnnTIegHehRQWl1EG08K5FD7v9BD2/9fkCrxOl1M+B/4T25HsZbXk9lVXlerSr/Tb0fd5vrnVN1jF8tHicAJ4Z4Vyd6LnAK/M2/QYtXBvQDyE3KaV+bfZ5Cf0qwAfRDht3ox9A7jT7bgMeR/9NPmWuJUT/Rv4NLaTfIdfCdYHLzH6WCsNm1LVYSoCZT/muUmrKmeqWGxH5ObBHKfU3Z6j3AeBWpdSK0rRs2DZcg36IEfuibuVhLSiLxQKAiFwpIp9HW4c/KmCXRwBHRC4vbstG5DPAt604VSZWoCwWS4YPoV+e/YpS6rUzVTai8En0UF7JEZF1aAeXh8pxfkvxsUN8FovFYhmXWAvKYrFYLOMSK1AWi8ViGZdYgbJYLBbLuMQKlMVisVjGJVagLBaLxTIu+f9GFNYoPnEsTgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "for gamma in gamma_array:\n", + " infected_sweep = sweep_beta(beta_array, gamma)\n", + " label = 'γ = ' + 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('figs/chap06-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "** Exercise:** Suppose the infectious period for the Freshman Plague is known to be 2 days on average, and suppose during one particularly bad year, 40% of the class is infected at some point. Estimate the time between contacts." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " \"\"\"Update the SIR model.\n", + " \n", + " state: State (s, i, r)\n", + " t: time\n", + " system: System object\n", + " \n", + " returns: State (sir)\n", + " \"\"\"\n", + " s, i, r = state\n", + "\n", + " infected = system.beta * i * s \n", + " recovered = system.gamma * i\n", + " \n", + " dsdt = -infected\n", + " didt = infected - recovered\n", + " drdt = recovered\n", + " \n", + " return dsdt, didt, drdt" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(-0.01208641975308642, 0.009308641975308642, 0.002777777777777778)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "slope_func(system.init, system.t0, system)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "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", + "
values
initS 0.988889\n", + "I 0.011111\n", + "R 0.000000\n", + "dtyp...
t00
t_end98
beta0.33
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.33\n", + "gamma 0.25\n", + "dtype: object" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fun_system = make_system(0.33, 0.25)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "results, details = run_ode_solver(fun_system, slope_func, t_eval=linrange(system.t0, system.t_end))" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/code/chap15.ipynb b/code/chap15.ipynb index 6880b213..9a203a9f 100644 --- a/code/chap15.ipynb +++ b/code/chap15.ipynb @@ -310,7 +310,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.5" + "version": "3.6.6" } }, "nbformat": 4, diff --git a/code/figs/chap06-fig01.pdf b/code/figs/chap06-fig01.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9bc1ceb1f27b643f5717a70f8ad90db870d1b16d GIT binary patch literal 13551 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 literal 0 HcmV?d00001 diff --git a/code/figs/chap06-fig02.pdf b/code/figs/chap06-fig02.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2859e4bc04032a32ac630bced09ca4a14f6cd012 GIT binary patch literal 13018 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 Date: Mon, 12 Nov 2018 15:56:25 -0500 Subject: [PATCH 42/61] copies ch20 --- code/chap20-mine.ipynb | 676 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 676 insertions(+) create mode 100644 code/chap20-mine.ipynb diff --git a/code/chap20-mine.ipynb b/code/chap20-mine.ipynb new file mode 100644 index 00000000..eccfea85 --- /dev/null +++ b/code/chap20-mine.ipynb @@ -0,0 +1,676 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 20\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": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Dropping pennies\n", + "\n", + "I'll start by getting the units we need from Pint." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "m = UNITS.meter\n", + "s = UNITS.second" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And defining the initial state." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "init = State(y=381 * m, \n", + " v=0 * m/s)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Acceleration due to gravity is about 9.8 m / s$^2$." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "g = 9.8 * m/s**2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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": 5, + "metadata": {}, + "outputs": [], + "source": [ + "t_end = 10 * s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we make a `System` object." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "system = System(init=init, g=g, t_end=t_end)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And define the slope function." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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`\n", + " \n", + " returns: derivatives of y and v\n", + " \"\"\"\n", + " y, v = state\n", + " unpack(system) \n", + "\n", + " dydt = v\n", + " dvdt = -g\n", + " \n", + " return dydt, dvdt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It's always a good idea to test the slope function with the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "dydt, dvdt = slope_func(init, 0, system)\n", + "print(dydt)\n", + "print(dvdt)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we're ready to call `run_ode_solver`" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "results, details = run_ode_solver(system, slope_func, max_step=0.5*s)\n", + "details.message" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here are the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's position as a function of time:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_position(results):\n", + " plot(results.y, label='y')\n", + " decorate(xlabel='Time (s)',\n", + " ylabel='Position (m)')\n", + "\n", + "plot_position(results)\n", + "savefig('figs/chap09-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Onto the sidewalk\n", + "\n", + "To figure out when the penny hit the sidewalk, we can use `crossings`, which finds the times where a `Series` passes through a given value." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "t_crossings = crossings(results.y, 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this example there should be just one crossing, the time when the penny hits the sidewalk." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "t_sidewalk = t_crossings[0] * s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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": 14, + "metadata": {}, + "outputs": [], + "source": [ + "sqrt(2 * init.y / g)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The estimate is accurate to about 10 decimal places." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Events\n", + "\n", + "Instead of running the simulation until the penny goes through the sidewalk, it would be better to detect the point where the penny hits the sidewalk and stop. `run_ode_solver` provides exactly the tool we need, **event functions**.\n", + "\n", + "Here's an event function that returns the height of the penny above the sidewalk:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def event_func(state, t, system):\n", + " \"\"\"Return the height of the penny above the sidewalk.\n", + " \"\"\"\n", + " y, v = state\n", + " return y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's how we pass it to `run_ode_solver`. The solver should run until the event function returns 0, and then terminate." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "results, details = run_ode_solver(system, slope_func, events=event_func)\n", + "details" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The message from the solver indicates the solver stopped because the event we wanted to detect happened.\n", + "\n", + "Here are the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the `events` option, the solver returns the actual time steps it computed, which are not necessarily equally spaced. \n", + "\n", + "The last time step is when the event occurred:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "t_sidewalk = get_last_label(results) * s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Unfortunately, `run_ode_solver` does not carry the units through the computation, so we have to put them back at the end.\n", + "\n", + "We could also get the time of the event from `details`, but it's a minor nuisance because it comes packed in an array:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "details.t_events[0][0] * s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result is accurate to about 15 decimal places.\n", + "\n", + "We can also check the velocity of the penny when it hits the sidewalk:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "v_sidewalk = get_last_value(results.v) * m / s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And convert to kilometers per hour." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "km = UNITS.kilometer\n", + "h = UNITS.hour\n", + "v_sidewalk.to(km / h)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "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": [ + "## Under the hood\n", + "\n", + "Here is the source code for `crossings` so you can see what's happening under the hood:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "%psource crossings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The [documentation of InterpolatedUnivariateSpline is here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.InterpolatedUnivariateSpline.html).\n", + "\n", + "And you can read the [documentation of `scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) to learn more about how `run_ode_solver` works." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercises\n", + "\n", + "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", + "\n", + "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", + "\n", + "Use `run_ode_solver` to answer this question.\n", + "\n", + "Here are some suggestions about how to proceed:\n", + "\n", + "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", + "\n", + "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", + "\n", + "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", + "\n", + "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", + "\n", + "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 7b752b1151bafc5269afd4a40ca42034f1560077 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 12 Nov 2018 17:19:30 -0500 Subject: [PATCH 43/61] ch20 working --- code/chap20-mine.ipynb | 2269 ++++++++++++++++++++++++++++------------ 1 file changed, 1594 insertions(+), 675 deletions(-) diff --git a/code/chap20-mine.ipynb b/code/chap20-mine.ipynb index eccfea85..460a4f42 100644 --- a/code/chap20-mine.ipynb +++ b/code/chap20-mine.ipynb @@ -1,676 +1,1595 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Modeling and Simulation in Python\n", - "\n", - "Chapter 20\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": [ - "# Configure Jupyter so figures appear in the notebook\n", - "%matplotlib inline\n", - "\n", - "# Configure Jupyter to display the assigned value after an assignment\n", - "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", - "\n", - "# import functions from the modsim.py module\n", - "from modsim import *" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Dropping pennies\n", - "\n", - "I'll start by getting the units we need from Pint." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "m = UNITS.meter\n", - "s = UNITS.second" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And defining the initial state." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "init = State(y=381 * m, \n", - " v=0 * m/s)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Acceleration due to gravity is about 9.8 m / s$^2$." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "g = 9.8 * m/s**2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "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": 5, - "metadata": {}, - "outputs": [], - "source": [ - "t_end = 10 * s" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we make a `System` object." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "system = System(init=init, g=g, t_end=t_end)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And define the slope function." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "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`\n", - " \n", - " returns: derivatives of y and v\n", - " \"\"\"\n", - " y, v = state\n", - " unpack(system) \n", - "\n", - " dydt = v\n", - " dvdt = -g\n", - " \n", - " return dydt, dvdt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It's always a good idea to test the slope function with the initial conditions." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "dydt, dvdt = slope_func(init, 0, system)\n", - "print(dydt)\n", - "print(dvdt)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we're ready to call `run_ode_solver`" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "results, details = run_ode_solver(system, slope_func, max_step=0.5*s)\n", - "details.message" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here are the results:" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "results" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And here's position as a function of time:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "def plot_position(results):\n", - " plot(results.y, label='y')\n", - " decorate(xlabel='Time (s)',\n", - " ylabel='Position (m)')\n", - "\n", - "plot_position(results)\n", - "savefig('figs/chap09-fig01.pdf')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Onto the sidewalk\n", - "\n", - "To figure out when the penny hit the sidewalk, we can use `crossings`, which finds the times where a `Series` passes through a given value." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "t_crossings = crossings(results.y, 0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this example there should be just one crossing, the time when the penny hits the sidewalk." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "t_sidewalk = t_crossings[0] * s" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "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": 14, - "metadata": {}, - "outputs": [], - "source": [ - "sqrt(2 * init.y / g)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The estimate is accurate to about 10 decimal places." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Events\n", - "\n", - "Instead of running the simulation until the penny goes through the sidewalk, it would be better to detect the point where the penny hits the sidewalk and stop. `run_ode_solver` provides exactly the tool we need, **event functions**.\n", - "\n", - "Here's an event function that returns the height of the penny above the sidewalk:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def event_func(state, t, system):\n", - " \"\"\"Return the height of the penny above the sidewalk.\n", - " \"\"\"\n", - " y, v = state\n", - " return y" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And here's how we pass it to `run_ode_solver`. The solver should run until the event function returns 0, and then terminate." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "results, details = run_ode_solver(system, slope_func, events=event_func)\n", - "details" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The message from the solver indicates the solver stopped because the event we wanted to detect happened.\n", - "\n", - "Here are the results:" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "results" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With the `events` option, the solver returns the actual time steps it computed, which are not necessarily equally spaced. \n", - "\n", - "The last time step is when the event occurred:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "t_sidewalk = get_last_label(results) * s" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Unfortunately, `run_ode_solver` does not carry the units through the computation, so we have to put them back at the end.\n", - "\n", - "We could also get the time of the event from `details`, but it's a minor nuisance because it comes packed in an array:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "details.t_events[0][0] * s" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The result is accurate to about 15 decimal places.\n", - "\n", - "We can also check the velocity of the penny when it hits the sidewalk:" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "v_sidewalk = get_last_value(results.v) * m / s" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And convert to kilometers per hour." - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], - "source": [ - "km = UNITS.kilometer\n", - "h = UNITS.hour\n", - "v_sidewalk.to(km / h)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "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": [ - "## Under the hood\n", - "\n", - "Here is the source code for `crossings` so you can see what's happening under the hood:" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [], - "source": [ - "%psource crossings" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The [documentation of InterpolatedUnivariateSpline is here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.InterpolatedUnivariateSpline.html).\n", - "\n", - "And you can read the [documentation of `scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) to learn more about how `run_ode_solver` works." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Exercises\n", - "\n", - "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", - "\n", - "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", - "\n", - "Use `run_ode_solver` to answer this question.\n", - "\n", - "Here are some suggestions about how to proceed:\n", - "\n", - "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", - "\n", - "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", - "\n", - "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", - "\n", - "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", - "\n", - "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "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.6" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "chap20-mine.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [ + "5K127O8QyVKq" + ] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "cells": [ + { + "metadata": { + "id": "qEb5Fl3ZyVJm", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 20\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "metadata": { + "id": "Y1DkmasdyVJp", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "YhjKHeXbyVJw", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "### Dropping pennies\n", + "\n", + "I'll start by getting the units we need from Pint." + ] + }, + { + "metadata": { + "id": "yZvaYdo-yVJy", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "m = UNITS.meter\n", + "s = UNITS.second" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "G257AdQMyVJ5", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And defining the initial state." + ] + }, + { + "metadata": { + "scrolled": true, + "id": "NzjWz6nEyVJ6", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "init = State(y=381 * m, \n", + " v=0 * m/s)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "VJJ7M7ChyVJ_", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Acceleration due to gravity is about 9.8 m / s$^2$." + ] + }, + { + "metadata": { + "id": "BNeJIDtRyVKB", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "g = 9.8 * m/s**2" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "1Z01dyaUyVKF", + "colab_type": "text" + }, + "cell_type": "markdown", + "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." + ] + }, + { + "metadata": { + "id": "o5DYstWPyVKG", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "t_end = 10 * s" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "Qzcm9FvnyVKL", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Now we make a `System` object." + ] + }, + { + "metadata": { + "id": "pOd97xheyVKM", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "system = System(init=init, g=g, t_end=t_end)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "6OgQg4whyVKR", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And define the slope function." + ] + }, + { + "metadata": { + "id": "xV5pPoFwyVKS", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "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", + " dydt = v\n", + " dvdt = -g\n", + " \n", + " return dydt, dvdt" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "SML_yjleyVKV", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "It's always a good idea to test the slope function with the initial conditions." + ] + }, + { + "metadata": { + "id": "h_2rqVXZyVKV", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "13ba2cd7-a2fd-4346-cf3a-d64d4ec404c5" + }, + "cell_type": "code", + "source": [ + "dydt, dvdt = slope_func(init, 0, system)\n", + "print(dydt)\n", + "print(dvdt)" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "text": [ + "0.0 meter / second\n", + "-9.8 meter / second ** 2\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "OAEFeuz8yVKb", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Now we're ready to call `run_ode_solver`" + ] + }, + { + "metadata": { + "id": "m-vjelT6yVKb", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "0ebf4bd8-1bb3-4b3e-9ccf-2b1f67e33252" + }, + "cell_type": "code", + "source": [ + "results, details = run_ode_solver(system, slope_func, max_step=0.5*s)\n", + "details.message" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'The solver successfully reached the end of the integration interval.'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 10 + } + ] + }, + { + "metadata": { + "id": "97cTwQ9jyVKi", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Here are the results:" + ] + }, + { + "metadata": { + "id": "LeO7a_65yVKi", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 787 + }, + "outputId": "7cf11d56-182e-4ddc-bef7-e8be56905ace" + }, + "cell_type": "code", + "source": [ + "results" + ], + "execution_count": 11, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
0.613367379.156526-6.010997
1.113367374.926028-10.910997
1.613367368.245529-15.810997
2.113367359.115031-20.710997
2.613367347.534532-25.610997
3.113367333.504034-30.510997
3.613367317.023535-35.410997
4.113367298.093036-40.310997
4.613367276.712538-45.210997
5.113367252.882039-50.110997
5.613367226.601541-55.010997
6.113367197.871042-59.910997
6.613367166.690544-64.810997
7.113367133.060045-69.710997
7.61336796.979547-74.610997
8.11336758.449048-79.510997
8.61336717.468550-84.410997
9.113367-25.961949-89.310997
9.613367-71.842448-94.210997
10.000000-109.000000-98.000000
\n", + "
" + ], + "text/plain": [ + " y v\n", + "0.000000 381.000000 0.000000\n", + "0.000102 381.000000 -0.001000\n", + "0.001122 380.999994 -0.011000\n", + "0.011327 380.999371 -0.111000\n", + "0.113367 380.937025 -1.110997\n", + "0.613367 379.156526 -6.010997\n", + "1.113367 374.926028 -10.910997\n", + "1.613367 368.245529 -15.810997\n", + "2.113367 359.115031 -20.710997\n", + "2.613367 347.534532 -25.610997\n", + "3.113367 333.504034 -30.510997\n", + "3.613367 317.023535 -35.410997\n", + "4.113367 298.093036 -40.310997\n", + "4.613367 276.712538 -45.210997\n", + "5.113367 252.882039 -50.110997\n", + "5.613367 226.601541 -55.010997\n", + "6.113367 197.871042 -59.910997\n", + "6.613367 166.690544 -64.810997\n", + "7.113367 133.060045 -69.710997\n", + "7.613367 96.979547 -74.610997\n", + "8.113367 58.449048 -79.510997\n", + "8.613367 17.468550 -84.410997\n", + "9.113367 -25.961949 -89.310997\n", + "9.613367 -71.842448 -94.210997\n", + "10.000000 -109.000000 -98.000000" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 11 + } + ] + }, + { + "metadata": { + "id": "H_aflXa3yVKn", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And here's position as a function of time:" + ] + }, + { + "metadata": { + "id": "mWM2oxpmyVKn", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1338 + }, + "outputId": "dc147506-1005-446c-9dd3-26280fb79da1" + }, + "cell_type": "code", + "source": [ + "def plot_position(results):\n", + " plot(results.y, label='y')\n", + " decorate(xlabel='Time (s)',\n", + " ylabel='Position (m)')\n", + "\n", + "plot_position(results)\n", + "savefig('figs/chap09-fig01.pdf')" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap09-fig01.pdf\n" + ], + "name": "stdout" + }, + { + "output_type": "error", + "ename": "FileNotFoundError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mplot_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'figs/chap09-fig01.pdf'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/content/modsim.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(filename, **options)\u001b[0m\n\u001b[1;32m 743\u001b[0m \"\"\"\n\u001b[1;32m 744\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Saving figure to file'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 745\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 746\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 747\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 699\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 700\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgcf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 701\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 702\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw_idle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# need this if 'transparent=True' to reset colors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 703\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(self, fname, **kwargs)\u001b[0m\n\u001b[1;32m 1832\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_frameon\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframeon\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1833\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1834\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1835\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1836\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mframeon\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)\u001b[0m\n\u001b[1;32m 2265\u001b[0m \u001b[0morientation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morientation\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2266\u001b[0m \u001b[0mbbox_inches_restore\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0m_bbox_inches_restore\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2267\u001b[0;31m **kwargs)\n\u001b[0m\u001b[1;32m 2268\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2269\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mbbox_inches\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mrestore_bbox\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_pdf.py\u001b[0m in \u001b[0;36mprint_pdf\u001b[0;34m(self, filename, **kwargs)\u001b[0m\n\u001b[1;32m 2582\u001b[0m \u001b[0mfile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_file\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2583\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2584\u001b[0;31m \u001b[0mfile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPdfFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmetadata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"metadata\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2585\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2586\u001b[0m \u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnewPage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheight\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_pdf.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, filename, metadata)\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtell_base\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 438\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstring_types\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 439\u001b[0;31m \u001b[0mfh\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'wb'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 440\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mis_writable_file_like\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 441\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'figs/chap09-fig01.pdf'" + ] + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n08wXCQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "5K127O8QyVKq", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "### Onto the sidewalk\n", + "\n", + "To figure out when the penny hit the sidewalk, we can use `crossings`, which finds the times where a `Series` passes through a given value." + ] + }, + { + "metadata": { + "id": "3OpJfvXIyVKq", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "t_crossings = crossings(results.y, 0)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "XlZefw2hyVKt", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "For this example there should be just one crossing, the time when the penny hits the sidewalk." + ] + }, + { + "metadata": { + "id": "_jIUWRMOyVKv", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "t_sidewalk = t_crossings[0] * s" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "9e9QxB2DyVKy", + "colab_type": "text" + }, + "cell_type": "markdown", + "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}}$" + ] + }, + { + "metadata": { + "id": "4H69FUJuyVKz", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "c0c8adc0-2eb7-44d2-93b3-bdfd8cd08e80" + }, + "cell_type": "code", + "source": [ + "sqrt(2 * init.y / g)" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/latex": "$8.817885349720552\\ \\mathrm{second}$", + "text/html": [ + "8.817885349720552 second" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 15 + } + ] + }, + { + "metadata": { + "id": "S--2VoU7yVK4", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The estimate is accurate to about 10 decimal places." + ] + }, + { + "metadata": { + "id": "r4gst6_oyVK5", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "## Events\n", + "\n", + "Instead of running the simulation until the penny goes through the sidewalk, it would be better to detect the point where the penny hits the sidewalk and stop. `run_ode_solver` provides exactly the tool we need, **event functions**.\n", + "\n", + "Here's an event function that returns the height of the penny above the sidewalk:" + ] + }, + { + "metadata": { + "id": "iH2eYoI1yVK6", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def event_func(state, t, system):\n", + " \"\"\"Return the height of the penny above the sidewalk.\n", + " \"\"\"\n", + " y, v = state\n", + " return y" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "RUU8C4koyVK8", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And here's how we pass it to `run_ode_solver`. The solver should run until the event function returns 0, and then terminate." + ] + }, + { + "metadata": { + "id": "sZcqDq-NyVK-", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 284 + }, + "outputId": "c41d07b7-5d31-4312-f305-c2233e196fb4" + }, + "cell_type": "code", + "source": [ + "results, details = run_ode_solver(system, slope_func, events=event_func)\n", + "details" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
values
messageA termination event occurred.
nfev38
njev0
nlu0
solNone
status1
successTrue
t_events[[8.817885349720553]]
\n", + "
" + ], + "text/plain": [ + "message A termination event occurred.\n", + "nfev 38\n", + "njev 0\n", + "nlu 0\n", + "sol None\n", + "status 1\n", + "success True\n", + "t_events [[8.817885349720553]]\n", + "dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 17 + } + ] + }, + { + "metadata": { + "id": "AM0k7t-7yVLA", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The message from the solver indicates the solver stopped because the event we wanted to detect happened.\n", + "\n", + "Here are the results:" + ] + }, + { + "metadata": { + "id": "o9Y5FnMfyVLC", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 254 + }, + "outputId": "7c0d4b23-d3c3-4974-fb19-7d44370f9443" + }, + "cell_type": "code", + "source": [ + "results" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
1.133773374.701343-11.110971
8.8178850.000000-86.415276
\n", + "
" + ], + "text/plain": [ + " y v\n", + "0.000000 381.000000 0.000000\n", + "0.000102 381.000000 -0.001000\n", + "0.001122 380.999994 -0.011000\n", + "0.011327 380.999371 -0.111000\n", + "0.113367 380.937025 -1.110997\n", + "1.133773 374.701343 -11.110971\n", + "8.817885 0.000000 -86.415276" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 18 + } + ] + }, + { + "metadata": { + "id": "CHxr2EqSyVLG", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "With the `events` option, the solver returns the actual time steps it computed, which are not necessarily equally spaced. \n", + "\n", + "The last time step is when the event occurred:" + ] + }, + { + "metadata": { + "id": "ttIZzpjPyVLH", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "t_sidewalk = get_last_label(results) * s" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "gmVFDsVTyVLK", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Unfortunately, `run_ode_solver` does not carry the units through the computation, so we have to put them back at the end.\n", + "\n", + "We could also get the time of the event from `details`, but it's a minor nuisance because it comes packed in an array:" + ] + }, + { + "metadata": { + "id": "Joo1jSYLyVLL", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "0861f9d3-b4a5-4504-f7be-ec3314e3ff66" + }, + "cell_type": "code", + "source": [ + "details.t_events[0][0] * s" + ], + "execution_count": 20, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/latex": "$8.817885349720553\\ \\mathrm{second}$", + "text/html": [ + "8.817885349720553 second" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 20 + } + ] + }, + { + "metadata": { + "id": "5To9p3EiyVLQ", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The result is accurate to about 15 decimal places.\n", + "\n", + "We can also check the velocity of the penny when it hits the sidewalk:" + ] + }, + { + "metadata": { + "id": "se6TYeCUyVLR", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "v_sidewalk = get_last_value(results.v) * m / s" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "iAgE4Gj9yVLU", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And convert to kilometers per hour." + ] + }, + { + "metadata": { + "id": "3SASlJsryVLV", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "4a2d7d92-fa2b-4618-b22e-d94887966ddc" + }, + "cell_type": "code", + "source": [ + "km = UNITS.kilometer\n", + "h = UNITS.hour\n", + "v_sidewalk.to(km / h)" + ], + "execution_count": 22, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/latex": "$-311.09499513814114\\ \\frac{\\mathrm{kilometer}}{\\mathrm{hour}}$", + "text/html": [ + "-311.09499513814114 kilometer/hour" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 22 + } + ] + }, + { + "metadata": { + "id": "BuHAdPo2yVLc", + "colab_type": "text" + }, + "cell_type": "markdown", + "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." + ] + }, + { + "metadata": { + "id": "zf50bYqKyVLd", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "## Under the hood\n", + "\n", + "Here is the source code for `crossings` so you can see what's happening under the hood:" + ] + }, + { + "metadata": { + "id": "egybRvtSyVLe", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "%psource crossings" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "pWHmHZADyVLi", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The [documentation of InterpolatedUnivariateSpline is here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.InterpolatedUnivariateSpline.html).\n", + "\n", + "And you can read the [documentation of `scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) to learn more about how `run_ode_solver` works." + ] + }, + { + "metadata": { + "id": "EBbygIvbyVLj", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "### Exercises\n", + "\n", + "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", + "\n", + "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", + "\n", + "Use `run_ode_solver` to answer this question.\n", + "\n", + "Here are some suggestions about how to proceed:\n", + "\n", + "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", + "\n", + "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", + "\n", + "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", + "\n", + "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", + "\n", + "\n", + "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." + ] + }, + { + "metadata": { + "id": "XcpC9qV2yVLl", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# units!\n", + "N = UNITS.newton\n", + "kg = UNITS.kilogram\n", + "m = UNITS.meter\n", + "AU = UNITS.astronomical_unit;" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "Nq0vKaw0yVLn", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "r_0 = (1 * AU).to_base_units()\n", + "v_0 = 0 * m / s\n", + "init = State(r=r_0,\n", + " v=v_0)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "2mYVqxxmyVLq", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "system = System(init=init,\n", + " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", + " m_sun=1.99e30 * kg,\n", + " m_earth=5.972e24 * kg,\n", + " t_end=100e6 * s,\n", + " r_final=695.508e6 * m + 6.371e6 * m)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "G4ijoX3dyVLt", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def universal_grav(state, system):\n", + " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", + " r, v = state\n", + " unpack(system)\n", + " force = G * m_sun * m_earth / r ** 2\n", + " \n", + " return force\n", + " " + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "0euiUJCfyVL0", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def slope_func(state, t, system):\n", + " r, v = state\n", + " unpack(system)\n", + " \n", + " force = universal_grav(state, system)\n", + " \n", + " drdt = v\n", + " dvdt = -force / m_earth\n", + " \n", + " return drdt, dvdt" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "yxNvIgrGyVL2", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "outputId": "7120ea5a-0b0c-4749-9111-599c45ae1f3e" + }, + "cell_type": "code", + "source": [ + "drdt, dvdt = slope_func(init, 0, system)\n", + "print(drdt)\n", + "print(dvdt)" + ], + "execution_count": 36, + "outputs": [ + { + "output_type": "stream", + "text": [ + "0.0 meter / second\n", + "-0.005934559038759181 newton / kilogram\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "BDP2V-W97UdW", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def event_func(state, t, system):\n", + " r, v = state\n", + " return r - system.r_final" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "oDu_ADwk7bMA", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "d8d2a613-7fae-4153-c504-da85529fd34b" + }, + "cell_type": "code", + "source": [ + "event_func(init, 0, system)" + ], + "execution_count": 119, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/latex": "$148895991691.0\\ \\mathrm{meter}$", + "text/html": [ + "148895991691.0 meter" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 119 + } + ] + }, + { + "metadata": { + "id": "0PSP5uH6yVL4", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 297 + }, + "outputId": "9c29f5e7-b731-45b8-c2c3-88e2f79094d5" + }, + "cell_type": "code", + "source": [ + "results, details = run_ode_solver(system, slope_func, events=event_func, method='LSODA', min_step=99)\n", + "results.index /= 60 * 60 * 24\n", + "results.r *= (0.000621371 / 1000)\n", + "plot(results.r, 'go-')\n", + "decorate(title='Distance from Sun',\n", + " xlabel='Time (days)',\n", + " ylabel='Distance from sun (thousand miles)')" + ], + "execution_count": 127, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "ZBi2VbR7yVL_", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 297 + }, + "outputId": "d1ae6d1c-3b3a-435d-fd08-683d512f4e61" + }, + "cell_type": "code", + "source": [ + "plot(results.v, 'ro-')\n", + "decorate(title='Earth Velocity',\n", + " xlabel='Time (days)',\n", + " ylabel='Velocity (m/s)')" + ], + "execution_count": 112, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "HJK8S7CZyVMB", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "\n", + "# Solution goes here" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "-EBnddfFyVME", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Solution goes here" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "-Ukzv__AyVMF", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Solution goes here" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "Cr7bXOkOyVMH", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Solution goes here" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "z2Rz6DNgyVMK", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Solution goes here" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "rvTAB2c9yVMM", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Solution goes here" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "kqO3E3-ByVMP", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Solution goes here" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "8lF4CTvjyVMU", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Solution goes here" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "TclFQil3yVMV", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Solution goes here" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "2QjbzAAGyVMZ", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "Ax8EsdFJypUT", + "colab_type": "code", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "outputId": "f7e4ff7d-efb2-4b09-e88f-ea07b75e289d" + }, + "cell_type": "code", + "source": [ + "# Imports\n", + "from IPython.display import clear_output\n", + "import os\n", + "import time\n", + "\n", + "# Install Python libraries\n", + "!pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", + "\n", + "# Removes code before re-downloading it\n", + "!rm -rf ./ModSimPy\n", + "!rm -rf ./modsim.py\n", + "\n", + "# Grabs ModSimPy\n", + "!git clone https://github.com/AllenDowney/ModSimPy.git\n", + "!cp \"ModSimPy/code/modsim.py\" .\n", + "\n", + "# Resets kernel to flush outdated libraries (especially SciPy)\n", + "clear_output()\n", + "print(\"Configured for ModSimPy. Restarting kernel.\")\n", + "time.sleep(1)\n", + "os._exit(0)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Configured for ModSimPy. Restarting kernel.\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "gFAThLbWytK9", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file From addc595432d0b706b7345f4a8a93f60a46bfa0b3 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 13 Nov 2018 17:06:08 -0500 Subject: [PATCH 44/61] creates earth orbit simulation --- code/orbit_homework.ipynb | 1442 +++++++++++++++++++++++++++++++++++++ 1 file changed, 1442 insertions(+) create mode 100644 code/orbit_homework.ipynb diff --git a/code/orbit_homework.ipynb b/code/orbit_homework.ipynb new file mode 100644 index 00000000..91ec56bc --- /dev/null +++ b/code/orbit_homework.ipynb @@ -0,0 +1,1442 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "orbit_homework.ipynb", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "cells": [ + { + "metadata": { + "id": "qEb5Fl3ZyVJm", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 20\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "metadata": { + "id": "Y1DkmasdyVJp", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "YhjKHeXbyVJw", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "### Dropping pennies\n", + "\n", + "I'll start by getting the units we need from Pint." + ] + }, + { + "metadata": { + "id": "yZvaYdo-yVJy", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "m = UNITS.meter\n", + "s = UNITS.second" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "G257AdQMyVJ5", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And defining the initial state." + ] + }, + { + "metadata": { + "scrolled": true, + "id": "NzjWz6nEyVJ6", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "init = State(y=381 * m, \n", + " v=0 * m/s)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "VJJ7M7ChyVJ_", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Acceleration due to gravity is about 9.8 m / s$^2$." + ] + }, + { + "metadata": { + "id": "BNeJIDtRyVKB", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "g = 9.8 * m/s**2" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "1Z01dyaUyVKF", + "colab_type": "text" + }, + "cell_type": "markdown", + "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." + ] + }, + { + "metadata": { + "id": "o5DYstWPyVKG", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "t_end = 10 * s" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "Qzcm9FvnyVKL", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Now we make a `System` object." + ] + }, + { + "metadata": { + "id": "pOd97xheyVKM", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "system = System(init=init, g=g, t_end=t_end)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "6OgQg4whyVKR", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And define the slope function." + ] + }, + { + "metadata": { + "id": "xV5pPoFwyVKS", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "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", + " dydt = v\n", + " dvdt = -g\n", + " \n", + " return dydt, dvdt" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "SML_yjleyVKV", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "It's always a good idea to test the slope function with the initial conditions." + ] + }, + { + "metadata": { + "id": "h_2rqVXZyVKV", + "colab_type": "code", + "outputId": "e85b8c17-5c77-4aad-f1f4-ed2fce2793e0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + } + }, + "cell_type": "code", + "source": [ + "dydt, dvdt = slope_func(init, 0, system)\n", + "print(dydt)\n", + "print(dvdt)" + ], + "execution_count": 8, + "outputs": [ + { + "output_type": "stream", + "text": [ + "0.0 meter / second\n", + "-9.8 meter / second ** 2\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "OAEFeuz8yVKb", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Now we're ready to call `run_ode_solver`" + ] + }, + { + "metadata": { + "id": "m-vjelT6yVKb", + "colab_type": "code", + "outputId": "628ef99d-6fc3-43f2-9997-2d7dd178dc4d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "cell_type": "code", + "source": [ + "results, details = run_ode_solver(system, slope_func, max_step=0.5*s)\n", + "details.message" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'The solver successfully reached the end of the integration interval.'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 9 + } + ] + }, + { + "metadata": { + "id": "97cTwQ9jyVKi", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Here are the results:" + ] + }, + { + "metadata": { + "id": "LeO7a_65yVKi", + "colab_type": "code", + "outputId": "f479620b-101e-4023-965d-227fab636db8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 815 + } + }, + "cell_type": "code", + "source": [ + "results" + ], + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
0.613367379.156526-6.010997
1.113367374.926028-10.910997
1.613367368.245529-15.810997
2.113367359.115031-20.710997
2.613367347.534532-25.610997
3.113367333.504034-30.510997
3.613367317.023535-35.410997
4.113367298.093036-40.310997
4.613367276.712538-45.210997
5.113367252.882039-50.110997
5.613367226.601541-55.010997
6.113367197.871042-59.910997
6.613367166.690544-64.810997
7.113367133.060045-69.710997
7.61336796.979547-74.610997
8.11336758.449048-79.510997
8.61336717.468550-84.410997
9.113367-25.961949-89.310997
9.613367-71.842448-94.210997
10.000000-109.000000-98.000000
\n", + "
" + ], + "text/plain": [ + " y v\n", + "0.000000 381.000000 0.000000\n", + "0.000102 381.000000 -0.001000\n", + "0.001122 380.999994 -0.011000\n", + "0.011327 380.999371 -0.111000\n", + "0.113367 380.937025 -1.110997\n", + "0.613367 379.156526 -6.010997\n", + "1.113367 374.926028 -10.910997\n", + "1.613367 368.245529 -15.810997\n", + "2.113367 359.115031 -20.710997\n", + "2.613367 347.534532 -25.610997\n", + "3.113367 333.504034 -30.510997\n", + "3.613367 317.023535 -35.410997\n", + "4.113367 298.093036 -40.310997\n", + "4.613367 276.712538 -45.210997\n", + "5.113367 252.882039 -50.110997\n", + "5.613367 226.601541 -55.010997\n", + "6.113367 197.871042 -59.910997\n", + "6.613367 166.690544 -64.810997\n", + "7.113367 133.060045 -69.710997\n", + "7.613367 96.979547 -74.610997\n", + "8.113367 58.449048 -79.510997\n", + "8.613367 17.468550 -84.410997\n", + "9.113367 -25.961949 -89.310997\n", + "9.613367 -71.842448 -94.210997\n", + "10.000000 -109.000000 -98.000000" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 10 + } + ] + }, + { + "metadata": { + "id": "H_aflXa3yVKn", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And here's position as a function of time:" + ] + }, + { + "metadata": { + "id": "mWM2oxpmyVKn", + "colab_type": "code", + "outputId": "46d0ec28-ca80-4cf6-faa9-589c1991778f", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 395 + } + }, + "cell_type": "code", + "source": [ + "def plot_position(results):\n", + " plot(results.y, label='y')\n", + " decorate(xlabel='Time (s)',\n", + " ylabel='Position (m)')\n", + "\n", + "plot_position(results)" + ], + "execution_count": 12, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\n08wXCQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "5K127O8QyVKq", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "### Onto the sidewalk\n", + "\n", + "To figure out when the penny hit the sidewalk, we can use `crossings`, which finds the times where a `Series` passes through a given value." + ] + }, + { + "metadata": { + "id": "3OpJfvXIyVKq", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "t_crossings = crossings(results.y, 0)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "XlZefw2hyVKt", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "For this example there should be just one crossing, the time when the penny hits the sidewalk." + ] + }, + { + "metadata": { + "id": "_jIUWRMOyVKv", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "t_sidewalk = t_crossings[0] * s" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "9e9QxB2DyVKy", + "colab_type": "text" + }, + "cell_type": "markdown", + "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}}$" + ] + }, + { + "metadata": { + "id": "4H69FUJuyVKz", + "colab_type": "code", + "outputId": "905c4c94-4e61-4c53-8fec-a1ed07caa39b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "cell_type": "code", + "source": [ + "sqrt(2 * init.y / g)" + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/latex": "$8.817885349720552\\ \\mathrm{second}$", + "text/html": [ + "8.817885349720552 second" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 15 + } + ] + }, + { + "metadata": { + "id": "S--2VoU7yVK4", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The estimate is accurate to about 10 decimal places." + ] + }, + { + "metadata": { + "id": "r4gst6_oyVK5", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "## Events\n", + "\n", + "Instead of running the simulation until the penny goes through the sidewalk, it would be better to detect the point where the penny hits the sidewalk and stop. `run_ode_solver` provides exactly the tool we need, **event functions**.\n", + "\n", + "Here's an event function that returns the height of the penny above the sidewalk:" + ] + }, + { + "metadata": { + "id": "iH2eYoI1yVK6", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def event_func(state, t, system):\n", + " \"\"\"Return the height of the penny above the sidewalk.\n", + " \"\"\"\n", + " y, v = state\n", + " return y" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "RUU8C4koyVK8", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And here's how we pass it to `run_ode_solver`. The solver should run until the event function returns 0, and then terminate." + ] + }, + { + "metadata": { + "id": "sZcqDq-NyVK-", + "colab_type": "code", + "outputId": "d9b8b525-f94c-4ed0-8788-0c93864725b1", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 297 + } + }, + "cell_type": "code", + "source": [ + "results, details = run_ode_solver(system, slope_func, events=event_func)\n", + "details" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
values
messageA termination event occurred.
nfev38
njev0
nlu0
solNone
status1
successTrue
t_events[[8.817885349720553]]
\n", + "
" + ], + "text/plain": [ + "message A termination event occurred.\n", + "nfev 38\n", + "njev 0\n", + "nlu 0\n", + "sol None\n", + "status 1\n", + "success True\n", + "t_events [[8.817885349720553]]\n", + "dtype: object" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 17 + } + ] + }, + { + "metadata": { + "id": "AM0k7t-7yVLA", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The message from the solver indicates the solver stopped because the event we wanted to detect happened.\n", + "\n", + "Here are the results:" + ] + }, + { + "metadata": { + "id": "o9Y5FnMfyVLC", + "colab_type": "code", + "outputId": "4891e873-da1e-4663-d472-0de9ee0354b2", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 266 + } + }, + "cell_type": "code", + "source": [ + "results" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
1.133773374.701343-11.110971
8.8178850.000000-86.415276
\n", + "
" + ], + "text/plain": [ + " y v\n", + "0.000000 381.000000 0.000000\n", + "0.000102 381.000000 -0.001000\n", + "0.001122 380.999994 -0.011000\n", + "0.011327 380.999371 -0.111000\n", + "0.113367 380.937025 -1.110997\n", + "1.133773 374.701343 -11.110971\n", + "8.817885 0.000000 -86.415276" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 18 + } + ] + }, + { + "metadata": { + "id": "CHxr2EqSyVLG", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "With the `events` option, the solver returns the actual time steps it computed, which are not necessarily equally spaced. \n", + "\n", + "The last time step is when the event occurred:" + ] + }, + { + "metadata": { + "id": "ttIZzpjPyVLH", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "t_sidewalk = get_last_label(results) * s" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "gmVFDsVTyVLK", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "Unfortunately, `run_ode_solver` does not carry the units through the computation, so we have to put them back at the end.\n", + "\n", + "We could also get the time of the event from `details`, but it's a minor nuisance because it comes packed in an array:" + ] + }, + { + "metadata": { + "id": "Joo1jSYLyVLL", + "colab_type": "code", + "outputId": "5247461f-7677-442d-fe32-99d272ddd130", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "cell_type": "code", + "source": [ + "details.t_events[0][0] * s" + ], + "execution_count": 20, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/latex": "$8.817885349720553\\ \\mathrm{second}$", + "text/html": [ + "8.817885349720553 second" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 20 + } + ] + }, + { + "metadata": { + "id": "5To9p3EiyVLQ", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The result is accurate to about 15 decimal places.\n", + "\n", + "We can also check the velocity of the penny when it hits the sidewalk:" + ] + }, + { + "metadata": { + "id": "se6TYeCUyVLR", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "v_sidewalk = get_last_value(results.v) * m / s" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "iAgE4Gj9yVLU", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "And convert to kilometers per hour." + ] + }, + { + "metadata": { + "id": "3SASlJsryVLV", + "colab_type": "code", + "outputId": "41a236f5-3b75-42f6-fdcc-8955c931e947", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "cell_type": "code", + "source": [ + "km = UNITS.kilometer\n", + "h = UNITS.hour\n", + "v_sidewalk.to(km / h)" + ], + "execution_count": 22, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/latex": "$-311.09499513814114\\ \\frac{\\mathrm{kilometer}}{\\mathrm{hour}}$", + "text/html": [ + "-311.09499513814114 kilometer/hour" + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 22 + } + ] + }, + { + "metadata": { + "id": "BuHAdPo2yVLc", + "colab_type": "text" + }, + "cell_type": "markdown", + "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." + ] + }, + { + "metadata": { + "id": "zf50bYqKyVLd", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "## Under the hood\n", + "\n", + "Here is the source code for `crossings` so you can see what's happening under the hood:" + ] + }, + { + "metadata": { + "id": "egybRvtSyVLe", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "%psource crossings" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "pWHmHZADyVLi", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "The [documentation of InterpolatedUnivariateSpline is here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.InterpolatedUnivariateSpline.html).\n", + "\n", + "And you can read the [documentation of `scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) to learn more about how `run_ode_solver` works." + ] + }, + { + "metadata": { + "id": "EBbygIvbyVLj", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "### Exercises\n", + "\n", + "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", + "\n", + "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", + "\n", + "Use `run_ode_solver` to answer this question.\n", + "\n", + "Here are some suggestions about how to proceed:\n", + "\n", + "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", + "\n", + "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", + "\n", + "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", + "\n", + "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", + "\n", + "\n", + "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." + ] + }, + { + "metadata": { + "id": "XcpC9qV2yVLl", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "# units!\n", + "N = UNITS.newton\n", + "kg = UNITS.kilogram\n", + "m = UNITS.meter\n", + "AU = UNITS.astronomical_unit;" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "Nq0vKaw0yVLn", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "x_0 = (0 * AU).to_base_units()\n", + "y_0 = (1 * AU).to_base_units()\n", + "\n", + "vx_0 = 0 * m / s\n", + "vy_0 = 0 * m / s\n", + "\n", + "init = State(x=x_0,\n", + " y=y_0,\n", + " vx=vx_0,\n", + " vy=vy_0)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "2mYVqxxmyVLq", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "system = System(init=init,\n", + " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", + " m_sun=1.99e30 * kg,\n", + " m_earth=5.972e24 * kg,\n", + " t_end=100e6 * s,\n", + " r_final=695.508e6 * m + 6.371e6 * m)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "G4ijoX3dyVLt", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def universal_grav(state, system):\n", + " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", + " x, y, vx, vy = state\n", + " unpack(system)\n", + " \n", + " position = Vector(x, y)\n", + " \n", + " mag = G * m_sun * m_earth / position.mag ** 2\n", + " direction = -position.hat()\n", + " \n", + " force = direction * mag\n", + " \n", + " \n", + " return force\n", + " " + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "0euiUJCfyVL0", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def slope_func(state, t, system):\n", + " x, y, vx, vy = state\n", + " unpack(system)\n", + " \n", + " v = Vector(vx, vy)\n", + " force = universal_grav(state, system)\n", + " a = force / m_earth\n", + " \n", + "# dxdt = v\n", + "# dvydt = -force / m_earth\n", + " \n", + " \n", + " return vx, vy, a.x, a.y" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "yxNvIgrGyVL2", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "vx, vy, ax, ay = slope_func(init, 0, system)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "BDP2V-W97UdW", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def event_func(state, t, system):\n", + " r, v = state\n", + " return r - system.r_final" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "oDu_ADwk7bMA", + "colab_type": "code", + "outputId": "72e886f0-bd62-42eb-ef6e-b2073c8a6689", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 249 + } + }, + "cell_type": "code", + "source": [ + "event_func(init, 0, system)" + ], + "execution_count": 121, + "outputs": [ + { + "output_type": "error", + "ename": "ValueError", + "evalue": "ignored", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mevent_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minit\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mevent_func\u001b[0;34m(state, t, system)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mevent_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mr_final\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: too many values to unpack (expected 2)" + ] + } + ] + }, + { + "metadata": { + "id": "0PSP5uH6yVL4", + "colab_type": "code", + "outputId": "70728366-1d70-4e53-d721-af333aeab598", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 430 + } + }, + "cell_type": "code", + "source": [ + "results, details = run_ode_solver(system, slope_func, method='LSODA', min_step=99)\n", + "results.index /= 60 * 60 * 24\n", + "# results.r *= (0.000621371 / 1000)\n", + "plot(results.y, 'go-')\n", + "decorate(title='Distance from Sun',\n", + " xlabel='Time (days)',\n", + " ylabel='Distance from sun (thousand miles)')" + ], + "execution_count": 125, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/scipy/integrate/_ode.py:1348: UserWarning: lsoda: Repeated error test failures (internal error).\n", + " self.messages.get(istate, unexpected_istate_msg)))\n" + ], + "name": "stderr" + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "ZBi2VbR7yVL_", + "colab_type": "code", + "outputId": "2a8e2021-acfd-4ef1-a83b-d380dcc6e227", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 396 + } + }, + "cell_type": "code", + "source": [ + "plot(results.vy, 'ro-')\n", + "decorate(title='Earth Velocity',\n", + " xlabel='Time (days)',\n", + " ylabel='Velocity (m/s)')" + ], + "execution_count": 126, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAF7CAYAAAAaI2s4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3XlcVXXi//HXBWXXVERFATfKzLRM\nUdOm3PJyCRdGTU1bLGt+lTVmfctSc1KbaUpNs5mxskYdmxm3zFIWk/bURNvUMldwAXfDhQsI3N8f\nZ+5lu4CgXO6V9/PxuA/uPefc8/l4snj3WU02m82GiIiIiIfwqukKiIiIiFSGwouIiIh4FIUXERER\n8SgKLyIiIuJRFF5ERETEoyi8iIiIiEdReBERtzZ//nx+//vfu7zcvn378u677172fT788EO6d+9+\nBWokInYKLyJSJX379qVDhw507Nix1GvatGlVvu/Zs2d5//33q/TdrVu30q5dO/bt2+f0/EsvvcTA\ngQOrXLeqGDJkCN9++63j84YNG9i7d69L6yBytVF4EZEqmzhxItu3by/1eumll6p8z02bNvGf//yn\nSt/t2rUrkZGRrFixotS5nJwc1q5dy4gRI6pctyth3rx5Ci8il0nhRUSqjc1mY/78+fTt25fOnTtj\nNptZvXq14/z8+fO59957efHFF7n55ptZvXo1Tz31FHv37qVjx4589913jmtXrVpF79696dixIxMm\nTCA7O9tpmSNGjGDNmjXk5uYWO56UlMTFixcZPHgwAOfPn2fy5Mnccccd3HzzzYwcOZKffvrJ6T0L\nCgpYuHAhZrOZTp06YTabiwWkgoIC5s+fzx133MEtt9zC/fff72j9+eCDD+jcuTMAZrOZ3bt388wz\nz/Dwww9z7733lmqlSk5OpnPnzly4cOFSH7NIraPwIiLVZu3atSxevJh3332X7777jgkTJvDCCy9w\n4MABxzW7d+8mLCyMrVu3MmTIEB599FEiIyPZvn07t9xyCwBHjhwhNTWVxMREli9fzqeffsratWud\nljlkyBCysrJITk4udnzlypXExMRQr149AF544QUyMjJYtWoV3377Lbfddht/+MMfnIaiZcuW8e67\n7/Laa6/x3Xff8fTTTzNt2jRSUlIA+Ne//sUHH3zAe++9x+bNm2ndujXjx4+n5O4rSUlJAMyaNYt3\n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\neiu33norM2bMYOoV2KdAREREriLu2G3066+/0q5dOwYPHsxPP/3k9JpOnTpVW8VERETEjbnjbKOn\nnnqK+Ph47r77bqfnTSYTv/zyS7VVTERERNzYtm3GKyvLWKQuJaXmV9iNj48HYNeuXS6piIiIiHiI\nlBRYsgQuXDA+nz8PCxca710QYCqcKp2Xl8eCBQsoKCgAjIG8f//737l48WK1V05ERETcUEKC826j\nxESXFF9heJkxYwZffvmlI6z4+vqybds2ZsyYUe2VExERETeUkeH8eHq6S4qvMLx8++23LF682LEd\nQP369VmwYAFbtmyp9sqJiIiIGwoNdX68eXOXFF9heLl48SJ169Yt/iUvL7Kzs6utUiIiIuLGLBbn\nx6OjXVJ8hXsbde/enQkTJhAXF0e9evU4ffo0y5Yt4/bbb3dF/URERMTdREUZs4y2bzcG7QYFwbhx\nNT/byG7q1KnMnj2bqVOncubMGRo3bkx0dDQTJkxwRf1ERETEHXXtCrfcYrwPDHRZcIFLCC/+/v5M\nmTJFmy+KiIiIc+6ySJ3d+fPnmTt3Lp999hmnTp0iJCSE6OhoHn/8cfz8/FxRRxERERGHCsPLn//8\nZ44dO8bkyZNp0KABp0+f5v3332fWrFlqjREREamt3HFvI7sff/yRDz/8sNiMo9/97nfExcVVa8VE\nRETEQ7i426jCqdL5+fmlpkr7+vpic3FFRUREROASwkvLli2ZO3cuF/63f8H58+eZN28eERER1V45\nERER8QDuNmB3ypQpTJgwgbfeeos6deqQl5dHx44dmTNnjivqJyIiIu7Ince8hIeHs2rVKo4cOcLJ\nkycJCQmhuYuW/xUREREpqczwEh8f7/T4kSNH+OGHHwCIiYmpnlqJiIiIe9u2zXhlZUH9+pCSUvMr\n7M6aNavcL5pMJoUXERGR2iglBRYtMrYGADh/HhYuNN67IMCUGV4+/fTTai9cREREPFBCgvPjiYku\nCS8VzjYCOHToEG+//bajNWbPnj3VWikRERFxYxkZzo+np7uk+ArDyxdffMHgwYP56aefWLduHQAL\nFy7kb3/7W7VXTkRERNxQaKjz4y6a0FNheHn11VdZvnw5b775pmMvoylTpjiCjIiIiNQyFovz49HR\nLim+wqnSeXl5REZGAsYgXYB69eo53ouIiEgtExUFubnw44/GoN2gIBg3ruZnG9n5+/vz008/0alT\nJ8ex3bt34+vrW60VExERETfWtSvccovx3sfHZcEFLiG8jB8/nvvuu49bb72VEydO8MQTT7Bp0yZe\nffVVV9RPRERE3J27bQ/Qv39/3n//fdavX09ISAjNmjVjwoQJtG3b1hX1ExEREXfkjtsDzJw5k9Gj\nR9O6dWs6dOhAhw4dXFkvEREREafKnG2UmprKwIEDuf/++1m/fj0FBQWurJeIiIiIU2WGl4ULF5KU\nlETnzp2ZOXMmvXv3Zv78+Rw/ftyV9RMRERF3VIPdRuWu89KiRQsmTJjA559/zrRp09i5cyf9+/fn\nySefZPPmza6qo4iIiLgzFw/YvaTtAby8vOjXrx8LFiwgKSmJ7Oxsxo4dW911ExERESmlwtlGdgcO\nHGDZsmWsWbOGRo0aMXny5Oqsl4iIiIhT5YaXixcvkpSUxLJly/jhhx/o27cvc+fOpXv37q6qn4iI\niEgxZYaXv/zlL6xZswY/Pz+GDx/OnDlzCAkJcWXdRERExF254zove/bsYcaMGfTt2xdvb29X1klE\nRESkTGWGl/fee8+V9RARERFPkpIC27ZBVpaxMWNKivtszCgiIiJSTEoKvPeesaM0GD8XLjTeuyDA\nXNJUaRERERGHhITin+3rvCQmuqR4hRcRERGpnIwM5wN209NdUrzCi4iIiFROaKjz482bu6R4hRcR\nERGpHIvF+fHoaJcUX6Ph5dixY4wdO5a+ffsycOBAUlJSHOcWLVqExWLBbDYzefJkcnNzAcjNzWXy\n5MmYzWYsFgtLlixxfCc9PZ2xY8diNpuJi4srtv/Spk2biIuLw2w2M3bsWI4ePVphWSIiIuJEVBQ8\n+KAxy8hkMn6OG+ey2UY1Gl4mTZrE7bffzqeffsrkyZNZunQpAD/88ANLlixh2bJlJCYmcu7cOf71\nr38BRtDIzMwkISGBFStWsHjxYrZv3w7A1KlTueOOO0hKSuLPf/4zTz/9NNnZ2WRlZTFx4kRmzpxJ\nUlISffr0Ydq0aRWWJSIiImXo1g1uuQV+9zvo0sVlwQVqMLxkZGSwc+dOxowZA0CPHj2YN28eAImJ\nicTExFC/fn1MJhNDhw4l8X8jmBMTE7n77rvx8vIiKCgIs9nsCB3ffvstd999NwDt27cnNDSUb7/9\nls2bNxMeHk6HDh0AGDp0KN988w3nz58vtywRERFxPzUWXnbt2kVYWBizZ8/GbDYzZswYfv75ZwBS\nU1OJiIhwXBseHs7+/fsBY4PIouciIiLYv38/aWlpNGzYkICAgGLnDhw4QGpqKuHh4Y7jgYGBNGjQ\ngIMHD5ZbloiIiLifGgsvZ8+eZffu3XTt2pWkpCQGDRrE+PHjycvLw2q14uPj47jWz88Pq9UKQHZ2\nNr6+vqXOlTwO4OvrS1ZWFlartdxzZZUlIiIi7qfaV9hdv349r732WqnjY8aMITg4mP79+wMwfPhw\n/vrXv5Kamoq/v3+xQbNWq9XRouLv709OTk6pcyWPgxF0AgICsNlsTs8FBgaWW5aIiIhcAvsidS5S\n7eFlwIABDBgwoNTxXbt2MX/+fAoKCvDy8sJkMuHl5YWXlxdt2rQhLS3NcW1aWhqRkZEAjnOtWrUq\ndq5ly5acOXOGCxcuEBgY6Dg3dOhQ8vPziY+Pd9zv3LlzZGZm0rJly3LLEhEREfdTY91G7dq1o0mT\nJqxYsQKAhIQE6tevT0REBBaLhXXr1nHy5Eny8vJYsmQJd911FwAWi4WlS5eSn5/P8ePHWbduHTEx\nMQQFBdGrVy/HTKHNmzdz4sQJunXrRvfu3UlPT2fr1q2AMWOpT58+BAQElFuWiIiIuJ8a25jRZDLx\nxhtvMGnSJN5++22Cg4OZN28ederUoWPHjjz44IOMHj0am81Gz549GTVqFAD33Xcf+/fvJzo6Gm9v\nbx5//HGuv/56AF566SWee+45Vq1aRVBQEPPmzXOMZ5kzZw7Tp0/HarUSERHBK6+8AlBuWSIiIuJ+\nTDabizuqrgKHDx+mX79+JCcnExYWVtPVERERcb2CAnj0UeO9yQQLFlyxW1f0e1bbA4iIiEjlOduY\n0UUUXkRERMSjKLyIiIiIR1F4ERERkcvj4uGzCi8iIiJSNcePw7Zt8NVXMH06pKS4pNgamyotIiIi\nHiwlBXbtKvx85AgsXGi8r+YdptXyIiIiIpWXkOD8eGJitRet8CIiIiKVl5Hh/Hh6erUXrfAiIiIi\nlde8eeWOX0EKLyIiIlJ5Fovz49HR1V60BuyKiIhI5UVFwfXXw+HDcOEChIUZwaWaB+uCwouIiIhU\nVZMmxgtg6lSXFatuIxEREfEoCi8iIiJy+Vy4yq7Ci4iIiHgUhRcRERHxKAovIiIi4lEUXkRERMSj\nKLyIiIiIR1F4ERERkaoxmWqkWIUXERER8SgKLyIiIuJRFF5ERETEoyi8iIiIiEdReBEREZHLp+0B\nRERERJxTeBERERGPovAiIiIiVXP8OGzbBl99BTNmQEqKS4qt45JSRERE5OqSkgK7dhWOdTlyBBYu\nNN5HRVVr0Wp5ERERkcpLSHB+PDGx2otWeBEREZHKy8hwfjw9vdqLVngRERGRygsNdX68efNqL1rh\nRURERCrPYnF+PDq62otWeBEREZHKi4qC9u0hKMjYXTosDMaNq/bBuqDZRiIiIlJVTZpA48bG+ylT\nwMs1bSJqeRERERGPovAiIiIiHkXhRURERDyKwouIiIh4FIUXERER8SgKLyIiIuJRFF5ERETEoyi8\niIiIiEdReBEREZHLZ7O5rCiFFxEREfEoCi8iIiLiURReRERExKMovIiIiIhHUXgRERERj6LwIiIi\nIh5F4UVEREQ8isKLiIiIeBSFFxEREfEoCi8iIiJSNcePw7Zt8NVXMGMGpKS4pNg6LilFREREri4p\nKfDLL4XbAqSnw8KFxvuoqGotukZbXlatWkVMTAwWi4WxY8dy4MABAGw2G7NmzcJsNhMdHc3s2bMd\n3zl79izjx4/HbDYTGxtLfHy849yuXbsYOXIkZrOZkSNHsmvXLse5devWERsbi9ls5oknnuDcuXMV\nliUiIiJlSEgo/tkeYhITq73oGgsv+/bt49VXX+Wf//wnCQkJDBgwgBdeeAGA+Ph4tmzZwscff8xH\nH33Eli1bSPzfw5g1axahoaEkJSWxcOFCZsyYwbFjxwB46qmnGDduHElJSTz88MP83//9HwDp6enM\nmDGDt99+m6SkJFq0aMHrr79eYVkiIiJShowMMJlKH09Pr/aiazS8tGrViqZNmwLQo0cP9uzZA0Bi\nYiJxcXH4+Pjg4+PDoEGDHIEiKSmJkSNHAtCsWTO6detGcnIyv/76K+fOnaN///4A9OvXj1OnTrFv\n3z6Sk5O59dZbad68OQDDhg1z3K+8skRERKQMoaHOj//vd211qrHwctNNN3Hw4EF2796NzWZj/fr1\n9OzZE4DU1FQiIiIc10ZERLB//37OnDnDb7/95vRcamoqYWFhxcoIDw93nCv5nVOnTpGZmVlmWSIi\nIlIOi8X58ejoai+6xgbsNm3alIkTJzJkyBACAwPx9/dn6dKlAFitVnx9fR3X+vn5YbVayc7OxsvL\ni7p16zrO+fr6cvr06VLfsZ/LysrCarXSqFEjx3EfHx9MJhNWq7XMskRERKQcUVHQvj2kpcGFCxAW\nBjEx1T5YF1wQXtavX89rr71W6vioUaNYunQpGzZsoHnz5qxZs4ZHH32UtWvX4u/vT05OjuNaq9VK\nQEAA/v7+FBQUkJubi4+PDwDZ2dkEBAQQEBBQ7Dv2c4GBgQQEBJCbm+s4npOTg81mc9zTWVkiIiJS\ngSZNIDjYeD95MtRxTZtItXcbDRgwgE8++aTUy2az0blzZ8c4lJiYGPbu3cuZM2do06YNaWlpjnuk\npaURGRlJgwYNaNSoEYcOHSp1rk2bNsWO22w20tLSaNu2La1bty52v9TUVEJCQqhfv36ZZYmIiIh7\nqrExL61bt+b777/nzJkzAHzxxReEhITQsGFDLBYLy5cvJysriwsXLrB8+XLuuusuACwWC4sXLwZg\n7969bNmyhX79+hEZGUmjRo34+OOPAVi9ejUtWrSgdevW9O/fn02bNjnGsixatIjY2FjH/coqS0RE\nRNxPjY156du3Lzt37nTMHAoKCmLu3LmYTCaio6PZuXMnQ4YMwWQyERsbS9++fQGYOHEikyZN4s47\n78TX15eXX36Zxo0bA8Y06qlTpzJ//nyCg4Md3VVNmzZl2rRpPP744+Tn53PDDTcwZcoUgHLLEhER\nEfdjstnsq8rIpTp8+DD9+vUjOTm51AwnERGRWuOxxyA/33j/t79dsTEvFf2e1d5GIiIi4lEUXkRE\nRMSjKLyIiIiIR1F4EREREY+i8CIiIiIeReFFREREPIrCi4iIiFSNyVQjxSq8iIiIiEdReBERERGP\novAiIiIiHkXhRURERDyKwouIiIh4FIUXERER8SgKLyIiIuJRFF5ERETEoyi8iIiIiEdReBERERGP\novAiIiIiVXPsGGzbBl99BTNnQkqKS4qt45JSRERE5OqSkgK//AIFBcbnI0dg4ULjfVRUtRatlhcR\nERGpvIQE8PpfjPDyKtykMTGx2otWeBEREZHKy8iAsDAjuLRoURhe0tOrvWh1G4mIiEjlhYYaXUbh\n4YXBBaB582ovWi0vIiIiUnkWi/GzaHABiI6u9qLV8iIiIiKVZx+Um5hodBU1b24El2oerAsKLyIi\nIlJVUVEuCSslqdtIREREPIrCi4iIiHgUhRcRERHxKAovIiIi4lEUXkRERMSjKLyIiIiIR1F4ERER\nEY+i8CIiIiIeRYvUVUF+fj4AR48ereGaiIiIXH3sv1/tv29LUnipghMnTgAwevToGq6JiIjI1evE\niRO0bNmy1HGTzWaz1UB9PFp2djY7duwgJCQEb2/vmq6OiIjIVSU/P58TJ05w44034ufnV+q8wouI\niIh4FA3YFREREY+i8CIiIiIeReFFREREPIrCi4iIiHgUhRc3sGnTJuLi4jCbzYwdO7bWrR9z8eJF\nXnnlFdq1a1fsz75o0SIsFgtms5nJkyeTm5tbg7V0jeTkZAYPHozFYmHUqFHs3r0bqJ3PIikpicGD\nBxMdHV3rn4Xd559/Trt27Th8+DA2m41Zs2ZhNpuJjo5m9uzZNV29anf48GE6dOhAdHS04/Xss88C\ntfPvxbFjxxg7dix9+/Zl4MCBpKSkALXkWdikRl24cMHWo0cP244dO2w2m822ePFi2yOPPFLDtXKt\ncePG2ebNm2e77rrrbBkZGTabzWb7/vvvbX369LFlZmbaCgoKbE888YRt4cKFNVzT6nX06FFb165d\nbXv27LHZbDbb0qVLbSNGjKiVz+LIkSO27t272w4fPmyz2Wy2RYsW2YYOHVorn4VdVlaWLTY21tat\nWzfboUOHbGvXrrUNHz7clpOTY8vJybHdfffdtoSEhJquZrU6dOiQrU+fPqWO19a/Fw888IDtvffe\ns9lsNtumTZtsTz75ZK15Fmp5qWGbN28mPDycDh06ADB06FC++eYbzp8/X8M1c53HHnuMJ598stix\nxMREYmJiqF+/PiaTiaFDh5KYmFhDNXSNOnXqMHv2bCIjIwHo0qULe/furdXPokWLFgDceuutHDhw\noFY+C7v58+czaNAgAgMDAePfkbi4OHx8fPDx8WHQoEG15lmUVBv/XmRkZLBz507GjBkDQI8ePZg3\nb16teRYKLzUsNTWV8PBwx+fAwEAaNGjAwYMHa7BWrtW5c+dSx1JTU4mIiHB8Dg8PZ//+/a6slssF\nBwdz++23Oz5/+eWX3HTTTbXyWTRp0oRevXoBkJeXx+rVq+nXr1+tfBYAv/76Kxs3buSBBx5wHCv5\nLCIiImrFszh//jyPPfYY0dHRPPTQQ+zbt69W/r3YtWsXYWFhzJ49G7PZzJgxY/j5559rzbNQeKlh\nVqsVX1/fYsd8fX3JysqqoRq5B6vVio+Pj+Ozn58fVqu1BmvkWps2bWLx4sU8//zztfpZLF68mF69\nerF161aeeeaZWvksbDYb06ZNY8qUKdStW9dxvOR/O2rDswgMDCQ2NpYXXniB+Ph4evXqxWOPPVYr\n/16cPXuW3bt307VrV5KSkhg0aBDjx4+vNc9C4aWGBQQEkJOTU+xYdna2o2m4tvL39y82yMxqtRIQ\nEFCDNXKdDRs2MGnSJBYsWEBkZGStfhb3338/mzdv5v7772fkyJF4eXnVumexbNkyIiMj6dq1a7Hj\n/v7+xf7bURueRcOGDXnxxRcJCwvDy8uLsWPHcvLkSby9vWvd34t69eoRHBxM//79ARg+fDiZmZm1\n5lkovNSwNm3aFOsiOnfuHJmZmU43oqpN2rRpQ1pamuNzWlqaYyzI1Wzjxo28/PLLvPfee3Ts2BGo\nnc9i3759bNy4EQCTyURsbCwXLlzAZDLVumeRnJxMcnIyvXr1olevXmRkZDBs2DBOnDhR655FZmYm\nhw4dKnasoKAAf3//WvcsmjdvzoULFygoKACMf0+8vLxqzbNQeKlh3bt3Jz09na1btwLGFLc+ffpc\nlUm5MiwWC+vWrePkyZPk5eWxZMkS7rrrrpquVrWyWq08//zzzJ8/n7Zt2zqO18Zncfr0aZ599lmO\nHTsGwLZt27h48SKPPvporXsW77zzDps2beKbb77hm2++ITQ0lJUrV/KnP/2J5cuXk5WVxYULF1i+\nfPlV/yy2b9/O/fffz+nTpwFYvnw5oaGhPPLII7Xu70W7du1o0qQJK1asACAhIYH69evz//7f/6sV\nz6JOTVegtvPz82POnDlMnz4dq9VKREQEr7zySk1Xy2VOnjzpGC0PcO+99+Lt7c3ixYt58MEHGT16\nNDabjZ49ezJq1KgarGn1S05O5vTp0zzzzDPFji9durTWPYuoqCgeffRRxo4dS0FBAT4+Prz++utE\nRUXVumdRlujoaHbu3MmQIUMcrVN9+/at6WpVq9tuu4177rmHUaNGYTKZaNq0qSPs17a/FyaTiTfe\neINJkybx9ttvExwczLx587jxxhtrxbPQrtIiIiLiUdRtJCIiIh5F4UVEREQ8isKLiIiIeBSFFxER\nEfEoCi8iIiLiURReRERExKMovIhItXn22WeJjo4mOjqaLl26EBUV5fj8/PPPc+zYMaKjox2LjlWn\nU6dOMWDAAH766adS5w4fPky7du04ceLEFS83NTWVvn37lloZVkSqTuu8iIhLTJo0CR8fH6ZPn14j\n5T/44IP06NGDRx55pNS5w4cP069fP77++mtCQkKueNkffPABS5cuZeXKlXh56f8ZRS6X/i0SkRpT\ntMXD/n7NmjX8/ve/p3v37ixYsIB169YxdOhQbr31VmbNmuX47p49e3jggQcwm8307duXBQsWlFnO\nxo0b2b17N/fddx8A58+f56mnnuKOO+7g97//PZ999lmx6zds2MCQIUOwWCzceeedLF++HIDZs2fz\n0EMPFbv2lVde4amnnp8GKloAAARESURBVMJqtfL0009jNpuJjo5mxIgR7NixA4AhQ4aQnZ3N2rVr\nr8hzE6ntFF5ExK0cPHiQDz74gL/+9a/Mnz+f3bt3s2rVKt555x0WLlzIiRMnyM7OZuzYsfTu3Zuk\npCQ+/PBD1q1bx+rVq53ec82aNfTv3x8/Pz8A/vnPf5Kens4nn3zCihUrinUl2YPNlClTSEhIYPr0\n6UybNo1jx44xdOhQNm3aRHp6OmBsChgfH09cXBwffPABx48fJyEhgcTERB544AESExMB8PLyIiYm\nhjVr1lTz0xOpHRReRMSt2DeRa9++PXl5eVgsFsdnm81GRkYGW7duxWq1OlpS6tevz7Bhw/j444+d\n3nPbtm106dLF8fmbb77hrrvuwsfHB29vb0aOHOk4FxQUxNatW+natStgbJ5qMpk4ePAgrVq1onPn\nznzwwQcAbNmyBZvNRq9evWjatCl79+4lPj6e06dPY7FYiu1T1aVLF7Zt23YFn5RI7aWNGUXErdSr\nVw/AMTYkKCgIAG9vb8Bo7fjtt9/IyckhJibG8b2LFy+WOV7l5MmTNG7c2PH5zJkzXHPNNY7PjRo1\ncry32Wz885//JD4+npycHEwmEwUFBRQUFAAwbNgw5s+fz+OPP866desYPHgw3t7e9O/fn9zcXJYt\nW8bkyZNp3749zz//PDfddBMAjRs3xmq1cv78ecefSUSqRuFFRDxOs2bNCAgIcHTLVFaDBg3IzMx0\nfD558qTj/erVq1myZAn//ve/adWqFbm5udx8882O89HR0cycOZONGzeSlJTEf/7zH8e5mJgYYmJi\nsFqtvP322/zxj3/k888/r1IdRaRs6jYSEY/TqVMngoKCWLlyJQD5+fnMmzePdevWOb2+cePGxQJK\nt27diI+PJzc3l/z8fP773/86zp07d47g4GAiIiIoKCjgnXfeoU6dOmRlZQHg7+9PTEwMU6dOpVWr\nVrRt2xaAN9980zFo2N/f39HiYnfy5En8/f3V6iJyBSi8iIjH8fHx4a233mLt2rWYzWZiYmI4dOgQ\nt912m9Pru3Tpwnfffef4/PDDDxMcHEz//v2Ji4sjKirKcW7QoEE0aNCAfv36MWzYMK6//npiY2N5\n4YUXHAN7hw0bxpEjR4iLi3N8b9iwYWzbto0777yTu+66i7/97W/FZkeVHHcjIlWndV5E5Kr3zTff\nMGnSJDZs2ICvr+9l3+/UqVPceeedfPHFF44xOuWx2WwMHDiQRx55hEGDBl12+SK1nVpeROSq16tX\nL9q2bcv7779/2fcqKCjgtddeY8SIEZcUXAA+/vhj6tatS2xs7GWXLyIKLyJSS8yaNYtly5Y5Fo6r\nik3/v507pgEoBqEoijf8VAymqqMmOtfCH/7yknN29ktI2Lu6u+69tdb6NHPOqZmpmfFdF37ibAQA\nRLEGAABRxAsAEEW8AABRxAsAEEW8AABRxAsAEOUB6TD5gfk8niQAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "metadata": { + "id": "Ax8EsdFJypUT", + "colab_type": "code", + "outputId": "fa75453a-e752-4b06-f229-f2fed36b8459", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "cell_type": "code", + "source": [ + "# Imports\n", + "from IPython.display import clear_output\n", + "import os\n", + "import time\n", + "\n", + "# Install Python libraries\n", + "!pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", + "\n", + "# Removes code before re-downloading it\n", + "!rm -rf ./ModSimPy\n", + "!rm -rf ./modsim.py\n", + "\n", + "# Grabs ModSimPy\n", + "!git clone https://github.com/AllenDowney/ModSimPy.git\n", + "!cp \"ModSimPy/code/modsim.py\" .\n", + "\n", + "# Resets kernel to flush outdated libraries (especially SciPy)\n", + "clear_output()\n", + "print(\"Configured for ModSimPy. Restarting kernel.\")\n", + "time.sleep(1)\n", + "os._exit(0)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Configured for ModSimPy. Restarting kernel.\n" + ], + "name": "stdout" + } + ] + }, + { + "metadata": { + "id": "gFAThLbWytK9", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file From 7e1b8de83cececeecdc124cbdfa14e2e9126ff52 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Mon, 26 Nov 2018 17:24:42 -0500 Subject: [PATCH 45/61] creates duck problem solver --- Duck_Problem.ipynb | 297 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 297 insertions(+) create mode 100644 Duck_Problem.ipynb diff --git a/Duck_Problem.ipynb b/Duck_Problem.ipynb new file mode 100644 index 00000000..d21b6366 --- /dev/null +++ b/Duck_Problem.ipynb @@ -0,0 +1,297 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Duck Problem", + "version": "0.3.2", + "provenance": [], + "collapsed_sections": [], + "include_colab_link": true + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "metadata": { + "id": "qEb5Fl3ZyVJm", + "colab_type": "text" + }, + "cell_type": "markdown", + "source": [ + "# Duck Problem\n", + "Sam and Jocelyn" + ] + }, + { + "metadata": { + "id": "yW7W7kYgwXpc", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "from modsim import *" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "7HdOyi18wfcM", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "system = System (\n", + " density_duck = 0.3, #g/cm^3\n", + " density_water = 1, # g/cm^3" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "3Cf0h9kMwfea", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "def error_func(d, system):\n", + " unpack(system)\n", + " \n", + " volume_duck = (4/3) * pi * r ** 3\n", + " mass_duck = volume_duck * density_duck\n", + " volume_water = (pi / 3) * (3 * r * d ** 2 - d ** 3)\n", + " mass_water = volume_water * density_water\n", + " \n", + " print(d)\n", + " \n", + " return mass_duck - mass_water" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "b13HxrLZwfg_", + "colab_type": "code", + "outputId": "02aa2c31-0965-4f6b-b707-ff6ae74c8a29", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 51 + } + }, + "cell_type": "code", + "source": [ + "error_func(3, system)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "3\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "43.982297150257125" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 30 + } + ] + }, + { + "metadata": { + "id": "VC131nNxwfj_", + "colab_type": "code", + "outputId": "e2e7a864-e5b0-4a3f-c7b2-7fd409b00b26", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "cell_type": "code", + "source": [ + "fsolve(error_func, 3, system)[0]" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "3\n", + "[3]\n", + "[3.]\n", + "[3.]\n", + "[3.00000004]\n", + "[3.66666666]\n", + "[3.63105175]\n", + "[3.63257187]\n", + "[3.63257491]\n", + "[3.63257491]\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "3.6325749109056766" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 31 + } + ] + }, + { + "metadata": { + "id": "ObNRqgN-wfmp", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "xgyncKR1wfol", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "9H42tz60wfre", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "8tSxsGURwftr", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "hk2kF4ywwfv9", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "gUV1-abywfyH", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "colab_type": "code", + "outputId": "eb7d36ab-74c5-4e5e-d976-697b0db7555d", + "id": "YddhMDFZwVTq", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "cell_type": "code", + "source": [ + "# Imports\n", + "from IPython.display import clear_output\n", + "import os\n", + "import time\n", + "\n", + "# Install Python libraries\n", + "!pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", + "# Removes code before re-downloading it\n", + "!rm -rf ./ModSimPy\n", + "!rm -rf ./modsim.py\n", + "\n", + "# Grabs ModSimPy\n", + "!git clone https://github.com/AllenDowney/ModSimPy.git\n", + "!cp \"ModSimPy/code/modsim.py\" .\n", + "\n", + "# Resets kernel to flush outdated libraries (especially SciPy)\n", + "clear_output()\n", + "print(\"Configured for ModSimPy. Restarting kernel.\")\n", + "time.sleep(1)\n", + "os._exit(0)" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Configured for ModSimPy. Restarting kernel.\n" + ], + "name": "stdout" + } + ] + } + ] +} \ No newline at end of file From 4ff7ee46bd73e1217d3f60376fd735a622f01cfb Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 27 Nov 2018 15:37:29 -0500 Subject: [PATCH 46/61] dupes ch23 --- code/chap23-mine.ipynb | 572 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 572 insertions(+) create mode 100644 code/chap23-mine.ipynb diff --git a/code/chap23-mine.ipynb b/code/chap23-mine.ipynb new file mode 100644 index 00000000..2031f90b --- /dev/null +++ b/code/chap23-mine.ipynb @@ -0,0 +1,572 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 23\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": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Code from the previous chapter" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "m = UNITS.meter\n", + "s = UNITS.second\n", + "kg = UNITS.kilogram\n", + "degree = UNITS.degree" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "params = Params(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 = 45 * degree,\n", + " velocity = 40 * m / s,\n", + " t_end = 20 * s)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def make_system(params):\n", + " \"\"\"Make a system object.\n", + " \n", + " params: Params object with angle, velocity, x, y,\n", + " diameter, duration, g, mass, rho, and C_d\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " unpack(params)\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", + " return System(params, init=init, area=area)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def drag_force(V, system):\n", + " \"\"\"Computes drag force in the opposite direction of `V`.\n", + " \n", + " V: velocity\n", + " system: System object with rho, C_d, area\n", + " \n", + " returns: Vector drag force\n", + " \"\"\"\n", + " unpack(system)\n", + " mag = -rho * V.mag**2 * C_d * area / 2\n", + " direction = V.hat()\n", + " f_drag = mag * direction\n", + " return f_drag" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "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", + " V = Vector(vx, vy) \n", + " a_drag = drag_force(V, system) / mass\n", + " a_grav = Vector(0, -g)\n", + " \n", + " a = a_grav + a_drag\n", + " \n", + " return vx, vy, a.x, a.y" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def event_func(state, t, system):\n", + " \"\"\"Stop when the y coordinate is 0.\n", + " \n", + " state: State object\n", + " t: time\n", + " system: System object\n", + " \n", + " returns: y coordinate\n", + " \"\"\"\n", + " x, y, vx, vy = state\n", + " return y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Optimal launch angle\n", + "\n", + "To find the launch angle that maximizes distance from home plate, we need a function that takes launch angle and returns range." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def range_func(angle, params): \n", + " \"\"\"Computes range for a given launch angle.\n", + " \n", + " angle: launch angle in degrees\n", + " params: Params object\n", + " \n", + " returns: distance in meters\n", + " \"\"\"\n", + " params = Params(params, angle=angle)\n", + " system = make_system(params)\n", + " results, details = run_ode_solver(system, slope_func, events=event_func)\n", + " x_dist = get_last_value(results.x) * m\n", + " return x_dist" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's test `range_func`." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "%time range_func(45, params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And sweep through a range of angles." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "angles = linspace(20, 80, 21)\n", + "sweep = SweepSeries()\n", + "\n", + "for angle in angles:\n", + " x_dist = range_func(angle, params)\n", + " print(angle, x_dist)\n", + " sweep[angle] = x_dist" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plotting the `Sweep` object, it looks like the peak is between 40 and 45 degrees." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "plot(sweep, color='C2')\n", + "decorate(xlabel='Launch angle (degree)',\n", + " ylabel='Range (m)',\n", + " title='Range as a function of launch angle',\n", + " legend=False)\n", + "\n", + "savefig('figs/chap10-fig03.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use `max_bounded` to search for the peak efficiently." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "%time res = max_bounded(range_func, [0, 90], params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`res` is an `ModSimSeries` object with detailed results:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "res" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`x` is the optimal angle and `fun` the optional range." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "optimal_angle = res.x * degree" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "max_x_dist = res.fun" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Under the hood\n", + "\n", + "Read the source code for `max_bounded` and `min_bounded`, below.\n", + "\n", + "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": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "%psource max_bounded" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "%psource min_bounded" + ] + }, + { + "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 is launched 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 params 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": 18, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Always test the slope function with the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test your function with a launch angle of 45 degrees:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "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": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With initial velocity 40 m/s and an optimal launch angle, the ball clears the Green Monster with a little room to spare.\n", + "\n", + "Which means we can get over the wall with a lower initial velocity." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Finding the minimum velocity\n", + "\n", + "Even though we are finding the \"minimum\" velocity, we are not really solving a minimization problem. Rather, we want to find the velocity that makes the height at the wall exactly 11 m, given given that it's launched at the optimal angle. And that's a job for `fsolve`.\n", + "\n", + "Write an error function that takes a velocity and a `Params` object as parameters. It should use `max_bounded` to find the highest possible height of the ball at the wall, for the given velocity. Then it should return the difference between that optimal height and 11 meters." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test your error function before you call `fsolve`." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "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": 27, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And just to check, run `error_func` with the value you found." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + } + ], + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 276a7f9e233ecee2a8e3a22887261881ad23a864 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 27 Nov 2018 20:29:09 -0500 Subject: [PATCH 47/61] baseball modeling progress --- code/chap20-mine.ipynb | 3152 ++++++++++++++++++------------------ code/chap23-mine.ipynb | 601 ++++++- code/figs/chap10-fig03.pdf | Bin 0 -> 13936 bytes 3 files changed, 2145 insertions(+), 1608 deletions(-) create mode 100644 code/figs/chap10-fig03.pdf diff --git a/code/chap20-mine.ipynb b/code/chap20-mine.ipynb index 460a4f42..1d888d4b 100644 --- a/code/chap20-mine.ipynb +++ b/code/chap20-mine.ipynb @@ -1,1595 +1,1611 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "qEb5Fl3ZyVJm" + }, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 20\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": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Y1DkmasdyVJp" + }, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "YhjKHeXbyVJw" + }, + "source": [ + "### Dropping pennies\n", + "\n", + "I'll start by getting the units we need from Pint." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "yZvaYdo-yVJy" + }, + "outputs": [], + "source": [ + "m = UNITS.meter\n", + "s = UNITS.second" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "G257AdQMyVJ5" + }, + "source": [ + "And defining the initial state." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "NzjWz6nEyVJ6", + "scrolled": true + }, + "outputs": [], + "source": [ + "init = State(y=381 * m, \n", + " v=0 * m/s)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "VJJ7M7ChyVJ_" + }, + "source": [ + "Acceleration due to gravity is about 9.8 m / s$^2$." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "BNeJIDtRyVKB" + }, + "outputs": [], + "source": [ + "g = 9.8 * m/s**2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "1Z01dyaUyVKF" + }, + "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": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "o5DYstWPyVKG" + }, + "outputs": [], + "source": [ + "t_end = 10 * s" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Qzcm9FvnyVKL" + }, + "source": [ + "Now we make a `System` object." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "pOd97xheyVKM" + }, + "outputs": [], + "source": [ + "system = System(init=init, g=g, t_end=t_end)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "6OgQg4whyVKR" + }, + "source": [ + "And define the slope function." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "xV5pPoFwyVKS" + }, + "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", + " dydt = v\n", + " dvdt = -g\n", + " \n", + " return dydt, dvdt" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "SML_yjleyVKV" + }, + "source": [ + "It's always a good idea to test the slope function with the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { "colab": { - "name": "chap20-mine.ipynb", - "version": "0.3.2", - "provenance": [], - "collapsed_sections": [ - "5K127O8QyVKq" - ] - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "colab_type": "code", + "id": "h_2rqVXZyVKV", + "outputId": "13ba2cd7-a2fd-4346-cf3a-d64d4ec404c5" + }, + "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)" + ] }, - "cells": [ - { - "metadata": { - "id": "qEb5Fl3ZyVJm", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "# Modeling and Simulation in Python\n", - "\n", - "Chapter 20\n", - "\n", - "Copyright 2017 Allen Downey\n", - "\n", - "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" - ] - }, - { - "metadata": { - "id": "Y1DkmasdyVJp", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Configure Jupyter so figures appear in the notebook\n", - "%matplotlib inline\n", - "\n", - "# Configure Jupyter to display the assigned value after an assignment\n", - "%config InteractiveShell.ast_node_interactivity='last_expr'\n", - "\n", - "# import functions from the modsim.py module\n", - "from modsim import *" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "YhjKHeXbyVJw", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "### Dropping pennies\n", - "\n", - "I'll start by getting the units we need from Pint." - ] - }, - { - "metadata": { - "id": "yZvaYdo-yVJy", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "m = UNITS.meter\n", - "s = UNITS.second" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "G257AdQMyVJ5", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And defining the initial state." - ] - }, - { - "metadata": { - "scrolled": true, - "id": "NzjWz6nEyVJ6", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "init = State(y=381 * m, \n", - " v=0 * m/s)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "VJJ7M7ChyVJ_", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Acceleration due to gravity is about 9.8 m / s$^2$." - ] - }, - { - "metadata": { - "id": "BNeJIDtRyVKB", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "g = 9.8 * m/s**2" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "1Z01dyaUyVKF", - "colab_type": "text" - }, - "cell_type": "markdown", - "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." - ] - }, - { - "metadata": { - "id": "o5DYstWPyVKG", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "t_end = 10 * s" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "Qzcm9FvnyVKL", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Now we make a `System` object." - ] - }, - { - "metadata": { - "id": "pOd97xheyVKM", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "system = System(init=init, g=g, t_end=t_end)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "6OgQg4whyVKR", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And define the slope function." - ] - }, - { - "metadata": { - "id": "xV5pPoFwyVKS", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "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", - " dydt = v\n", - " dvdt = -g\n", - " \n", - " return dydt, dvdt" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "SML_yjleyVKV", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "It's always a good idea to test the slope function with the initial conditions." - ] - }, - { - "metadata": { - "id": "h_2rqVXZyVKV", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 52 - }, - "outputId": "13ba2cd7-a2fd-4346-cf3a-d64d4ec404c5" - }, - "cell_type": "code", - "source": [ - "dydt, dvdt = slope_func(init, 0, system)\n", - "print(dydt)\n", - "print(dvdt)" - ], - "execution_count": 9, - "outputs": [ - { - "output_type": "stream", - "text": [ - "0.0 meter / second\n", - "-9.8 meter / second ** 2\n" - ], - "name": "stdout" - } - ] - }, - { - "metadata": { - "id": "OAEFeuz8yVKb", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Now we're ready to call `run_ode_solver`" - ] - }, - { - "metadata": { - "id": "m-vjelT6yVKb", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "outputId": "0ebf4bd8-1bb3-4b3e-9ccf-2b1f67e33252" - }, - "cell_type": "code", - "source": [ - "results, details = run_ode_solver(system, slope_func, max_step=0.5*s)\n", - "details.message" - ], - "execution_count": 10, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "'The solver successfully reached the end of the integration interval.'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 10 - } - ] - }, - { - "metadata": { - "id": "97cTwQ9jyVKi", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Here are the results:" - ] - }, - { - "metadata": { - "id": "LeO7a_65yVKi", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 787 - }, - "outputId": "7cf11d56-182e-4ddc-bef7-e8be56905ace" - }, - "cell_type": "code", - "source": [ - "results" - ], - "execution_count": 11, - "outputs": [ - { - "output_type": "execute_result", - "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", - "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
0.613367379.156526-6.010997
1.113367374.926028-10.910997
1.613367368.245529-15.810997
2.113367359.115031-20.710997
2.613367347.534532-25.610997
3.113367333.504034-30.510997
3.613367317.023535-35.410997
4.113367298.093036-40.310997
4.613367276.712538-45.210997
5.113367252.882039-50.110997
5.613367226.601541-55.010997
6.113367197.871042-59.910997
6.613367166.690544-64.810997
7.113367133.060045-69.710997
7.61336796.979547-74.610997
8.11336758.449048-79.510997
8.61336717.468550-84.410997
9.113367-25.961949-89.310997
9.613367-71.842448-94.210997
10.000000-109.000000-98.000000
\n", - "
" - ], - "text/plain": [ - " y v\n", - "0.000000 381.000000 0.000000\n", - "0.000102 381.000000 -0.001000\n", - "0.001122 380.999994 -0.011000\n", - "0.011327 380.999371 -0.111000\n", - "0.113367 380.937025 -1.110997\n", - "0.613367 379.156526 -6.010997\n", - "1.113367 374.926028 -10.910997\n", - "1.613367 368.245529 -15.810997\n", - "2.113367 359.115031 -20.710997\n", - "2.613367 347.534532 -25.610997\n", - "3.113367 333.504034 -30.510997\n", - "3.613367 317.023535 -35.410997\n", - "4.113367 298.093036 -40.310997\n", - "4.613367 276.712538 -45.210997\n", - "5.113367 252.882039 -50.110997\n", - "5.613367 226.601541 -55.010997\n", - "6.113367 197.871042 -59.910997\n", - "6.613367 166.690544 -64.810997\n", - "7.113367 133.060045 -69.710997\n", - "7.613367 96.979547 -74.610997\n", - "8.113367 58.449048 -79.510997\n", - "8.613367 17.468550 -84.410997\n", - "9.113367 -25.961949 -89.310997\n", - "9.613367 -71.842448 -94.210997\n", - "10.000000 -109.000000 -98.000000" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 11 - } - ] - }, - { - "metadata": { - "id": "H_aflXa3yVKn", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And here's position as a function of time:" - ] - }, - { - "metadata": { - "id": "mWM2oxpmyVKn", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 1338 - }, - "outputId": "dc147506-1005-446c-9dd3-26280fb79da1" - }, - "cell_type": "code", - "source": [ - "def plot_position(results):\n", - " plot(results.y, label='y')\n", - " decorate(xlabel='Time (s)',\n", - " ylabel='Position (m)')\n", - "\n", - "plot_position(results)\n", - "savefig('figs/chap09-fig01.pdf')" - ], - "execution_count": 12, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Saving figure to file figs/chap09-fig01.pdf\n" - ], - "name": "stdout" - }, - { - "output_type": "error", - "ename": "FileNotFoundError", - "evalue": "ignored", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mplot_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'figs/chap09-fig01.pdf'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m/content/modsim.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(filename, **options)\u001b[0m\n\u001b[1;32m 743\u001b[0m \"\"\"\n\u001b[1;32m 744\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Saving figure to file'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 745\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 746\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 747\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 699\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 700\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgcf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 701\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 702\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw_idle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# need this if 'transparent=True' to reset colors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 703\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(self, fname, **kwargs)\u001b[0m\n\u001b[1;32m 1832\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_frameon\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframeon\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1833\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1834\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1835\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1836\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mframeon\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)\u001b[0m\n\u001b[1;32m 2265\u001b[0m \u001b[0morientation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morientation\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2266\u001b[0m \u001b[0mbbox_inches_restore\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0m_bbox_inches_restore\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2267\u001b[0;31m **kwargs)\n\u001b[0m\u001b[1;32m 2268\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2269\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mbbox_inches\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mrestore_bbox\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_pdf.py\u001b[0m in \u001b[0;36mprint_pdf\u001b[0;34m(self, filename, **kwargs)\u001b[0m\n\u001b[1;32m 2582\u001b[0m \u001b[0mfile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_file\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2583\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2584\u001b[0;31m \u001b[0mfile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPdfFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmetadata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"metadata\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2585\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2586\u001b[0m \u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnewPage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheight\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_pdf.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, filename, metadata)\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtell_base\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 438\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstring_types\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 439\u001b[0;31m \u001b[0mfh\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'wb'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 440\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mis_writable_file_like\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 441\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'figs/chap09-fig01.pdf'" - ] - }, - { - "output_type": "display_data", - "data": { - "image/png": "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\n08wXCQAAAABJRU5ErkJggg==\n", - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - } - } - ] - }, - { - "metadata": { - "id": "5K127O8QyVKq", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "### Onto the sidewalk\n", - "\n", - "To figure out when the penny hit the sidewalk, we can use `crossings`, which finds the times where a `Series` passes through a given value." - ] - }, - { - "metadata": { - "id": "3OpJfvXIyVKq", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "t_crossings = crossings(results.y, 0)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "XlZefw2hyVKt", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "For this example there should be just one crossing, the time when the penny hits the sidewalk." - ] - }, - { - "metadata": { - "id": "_jIUWRMOyVKv", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "t_sidewalk = t_crossings[0] * s" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "9e9QxB2DyVKy", - "colab_type": "text" - }, - "cell_type": "markdown", - "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}}$" - ] - }, - { - "metadata": { - "id": "4H69FUJuyVKz", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "outputId": "c0c8adc0-2eb7-44d2-93b3-bdfd8cd08e80" - }, - "cell_type": "code", - "source": [ - "sqrt(2 * init.y / g)" - ], - "execution_count": 15, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/latex": "$8.817885349720552\\ \\mathrm{second}$", - "text/html": [ - "8.817885349720552 second" - ], - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 15 - } - ] - }, - { - "metadata": { - "id": "S--2VoU7yVK4", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "The estimate is accurate to about 10 decimal places." - ] - }, - { - "metadata": { - "id": "r4gst6_oyVK5", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "## Events\n", - "\n", - "Instead of running the simulation until the penny goes through the sidewalk, it would be better to detect the point where the penny hits the sidewalk and stop. `run_ode_solver` provides exactly the tool we need, **event functions**.\n", - "\n", - "Here's an event function that returns the height of the penny above the sidewalk:" - ] - }, - { - "metadata": { - "id": "iH2eYoI1yVK6", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "def event_func(state, t, system):\n", - " \"\"\"Return the height of the penny above the sidewalk.\n", - " \"\"\"\n", - " y, v = state\n", - " return y" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "RUU8C4koyVK8", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And here's how we pass it to `run_ode_solver`. The solver should run until the event function returns 0, and then terminate." + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "OAEFeuz8yVKb" + }, + "source": [ + "Now we're ready to call `run_ode_solver`" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "m-vjelT6yVKb", + "outputId": "0ebf4bd8-1bb3-4b3e-9ccf-2b1f67e33252" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'The solver successfully reached the end of the integration interval.'" ] - }, - { - "metadata": { - "id": "sZcqDq-NyVK-", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 284 - }, - "outputId": "c41d07b7-5d31-4312-f305-c2233e196fb4" - }, - "cell_type": "code", - "source": [ - "results, details = run_ode_solver(system, slope_func, events=event_func)\n", - "details" + }, + "execution_count": 10, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "results, details = run_ode_solver(system, slope_func, max_step=0.5*s)\n", + "details.message" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "97cTwQ9jyVKi" + }, + "source": [ + "Here are the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 787 + }, + "colab_type": "code", + "id": "LeO7a_65yVKi", + "outputId": "7cf11d56-182e-4ddc-bef7-e8be56905ace" + }, + "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", + "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
0.613367379.156526-6.010997
1.113367374.926028-10.910997
1.613367368.245529-15.810997
2.113367359.115031-20.710997
2.613367347.534532-25.610997
3.113367333.504034-30.510997
3.613367317.023535-35.410997
4.113367298.093036-40.310997
4.613367276.712538-45.210997
5.113367252.882039-50.110997
5.613367226.601541-55.010997
6.113367197.871042-59.910997
6.613367166.690544-64.810997
7.113367133.060045-69.710997
7.61336796.979547-74.610997
8.11336758.449048-79.510997
8.61336717.468550-84.410997
9.113367-25.961949-89.310997
9.613367-71.842448-94.210997
10.000000-109.000000-98.000000
\n", + "
" ], - "execution_count": 17, - "outputs": [ - { - "output_type": "execute_result", - "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", - "
values
messageA termination event occurred.
nfev38
njev0
nlu0
solNone
status1
successTrue
t_events[[8.817885349720553]]
\n", - "
" - ], - "text/plain": [ - "message A termination event occurred.\n", - "nfev 38\n", - "njev 0\n", - "nlu 0\n", - "sol None\n", - "status 1\n", - "success True\n", - "t_events [[8.817885349720553]]\n", - "dtype: object" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 17 - } + "text/plain": [ + " y v\n", + "0.000000 381.000000 0.000000\n", + "0.000102 381.000000 -0.001000\n", + "0.001122 380.999994 -0.011000\n", + "0.011327 380.999371 -0.111000\n", + "0.113367 380.937025 -1.110997\n", + "0.613367 379.156526 -6.010997\n", + "1.113367 374.926028 -10.910997\n", + "1.613367 368.245529 -15.810997\n", + "2.113367 359.115031 -20.710997\n", + "2.613367 347.534532 -25.610997\n", + "3.113367 333.504034 -30.510997\n", + "3.613367 317.023535 -35.410997\n", + "4.113367 298.093036 -40.310997\n", + "4.613367 276.712538 -45.210997\n", + "5.113367 252.882039 -50.110997\n", + "5.613367 226.601541 -55.010997\n", + "6.113367 197.871042 -59.910997\n", + "6.613367 166.690544 -64.810997\n", + "7.113367 133.060045 -69.710997\n", + "7.613367 96.979547 -74.610997\n", + "8.113367 58.449048 -79.510997\n", + "8.613367 17.468550 -84.410997\n", + "9.113367 -25.961949 -89.310997\n", + "9.613367 -71.842448 -94.210997\n", + "10.000000 -109.000000 -98.000000" ] - }, - { - "metadata": { - "id": "AM0k7t-7yVLA", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "The message from the solver indicates the solver stopped because the event we wanted to detect happened.\n", - "\n", - "Here are the results:" + }, + "execution_count": 11, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "results" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "H_aflXa3yVKn" + }, + "source": [ + "And here's position as a function of time:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1338 + }, + "colab_type": "code", + "id": "mWM2oxpmyVKn", + "outputId": "dc147506-1005-446c-9dd3-26280fb79da1" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap09-fig01.pdf\n" + ] + }, + { + "ename": "FileNotFoundError", + "evalue": "ignored", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mplot_position\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'figs/chap09-fig01.pdf'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/content/modsim.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(filename, **options)\u001b[0m\n\u001b[1;32m 743\u001b[0m \"\"\"\n\u001b[1;32m 744\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Saving figure to file'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 745\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 746\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 747\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/pyplot.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 699\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 700\u001b[0m \u001b[0mfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgcf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 701\u001b[0;31m \u001b[0mres\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavefig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 702\u001b[0m \u001b[0mfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw_idle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# need this if 'transparent=True' to reset colors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 703\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mres\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/figure.py\u001b[0m in \u001b[0;36msavefig\u001b[0;34m(self, fname, **kwargs)\u001b[0m\n\u001b[1;32m 1832\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_frameon\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mframeon\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1833\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1834\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprint_figure\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfname\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1835\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1836\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mframeon\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/backend_bases.py\u001b[0m in \u001b[0;36mprint_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)\u001b[0m\n\u001b[1;32m 2265\u001b[0m \u001b[0morientation\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0morientation\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2266\u001b[0m \u001b[0mbbox_inches_restore\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0m_bbox_inches_restore\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2267\u001b[0;31m **kwargs)\n\u001b[0m\u001b[1;32m 2268\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2269\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mbbox_inches\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mrestore_bbox\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_pdf.py\u001b[0m in \u001b[0;36mprint_pdf\u001b[0;34m(self, filename, **kwargs)\u001b[0m\n\u001b[1;32m 2582\u001b[0m \u001b[0mfile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_file\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2583\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2584\u001b[0;31m \u001b[0mfile\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mPdfFile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmetadata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"metadata\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2585\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2586\u001b[0m \u001b[0mfile\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnewPage\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mwidth\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheight\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_pdf.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, filename, metadata)\u001b[0m\n\u001b[1;32m 437\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtell_base\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 438\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msix\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstring_types\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 439\u001b[0;31m \u001b[0mfh\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'wb'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 440\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0mis_writable_file_like\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 441\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'figs/chap09-fig01.pdf'" + ] + }, + { + "data": { + "image/png": "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\n08wXCQAAAABJRU5ErkJggg==\n", + "text/plain": [ + "" ] - }, - { - "metadata": { - "id": "o9Y5FnMfyVLC", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 254 - }, - "outputId": "7c0d4b23-d3c3-4974-fb19-7d44370f9443" - }, - "cell_type": "code", - "source": [ - "results" + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "def plot_position(results):\n", + " plot(results.y, label='y')\n", + " decorate(xlabel='Time (s)',\n", + " ylabel='Position (m)')\n", + "\n", + "plot_position(results)\n", + "savefig('figs/chap09-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "5K127O8QyVKq" + }, + "source": [ + "### Onto the sidewalk\n", + "\n", + "To figure out when the penny hit the sidewalk, we can use `crossings`, which finds the times where a `Series` passes through a given value." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "3OpJfvXIyVKq" + }, + "outputs": [], + "source": [ + "t_crossings = crossings(results.y, 0)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "XlZefw2hyVKt" + }, + "source": [ + "For this example there should be just one crossing, the time when the penny hits the sidewalk." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "_jIUWRMOyVKv" + }, + "outputs": [], + "source": [ + "t_sidewalk = t_crossings[0] * s" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "9e9QxB2DyVKy" + }, + "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": 15, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "4H69FUJuyVKz", + "outputId": "c0c8adc0-2eb7-44d2-93b3-bdfd8cd08e80" + }, + "outputs": [ + { + "data": { + "text/html": [ + "8.817885349720552 second" ], - "execution_count": 18, - "outputs": [ - { - "output_type": "execute_result", - "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", - "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
1.133773374.701343-11.110971
8.8178850.000000-86.415276
\n", - "
" - ], - "text/plain": [ - " y v\n", - "0.000000 381.000000 0.000000\n", - "0.000102 381.000000 -0.001000\n", - "0.001122 380.999994 -0.011000\n", - "0.011327 380.999371 -0.111000\n", - "0.113367 380.937025 -1.110997\n", - "1.133773 374.701343 -11.110971\n", - "8.817885 0.000000 -86.415276" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 18 - } - ] - }, - { - "metadata": { - "id": "CHxr2EqSyVLG", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "With the `events` option, the solver returns the actual time steps it computed, which are not necessarily equally spaced. \n", - "\n", - "The last time step is when the event occurred:" - ] - }, - { - "metadata": { - "id": "ttIZzpjPyVLH", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "t_sidewalk = get_last_label(results) * s" + "text/latex": [ + "$8.817885349720552\\ \\mathrm{second}$" ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "gmVFDsVTyVLK", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Unfortunately, `run_ode_solver` does not carry the units through the computation, so we have to put them back at the end.\n", - "\n", - "We could also get the time of the event from `details`, but it's a minor nuisance because it comes packed in an array:" + "text/plain": [ + "" ] - }, - { - "metadata": { - "id": "Joo1jSYLyVLL", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "outputId": "0861f9d3-b4a5-4504-f7be-ec3314e3ff66" - }, - "cell_type": "code", - "source": [ - "details.t_events[0][0] * s" + }, + "execution_count": 15, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "sqrt(2 * init.y / g)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "S--2VoU7yVK4" + }, + "source": [ + "The estimate is accurate to about 10 decimal places." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "r4gst6_oyVK5" + }, + "source": [ + "## Events\n", + "\n", + "Instead of running the simulation until the penny goes through the sidewalk, it would be better to detect the point where the penny hits the sidewalk and stop. `run_ode_solver` provides exactly the tool we need, **event functions**.\n", + "\n", + "Here's an event function that returns the height of the penny above the sidewalk:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "iH2eYoI1yVK6" + }, + "outputs": [], + "source": [ + "def event_func(state, t, system):\n", + " \"\"\"Return the height of the penny above the sidewalk.\n", + " \"\"\"\n", + " y, v = state\n", + " return y" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "RUU8C4koyVK8" + }, + "source": [ + "And here's how we pass it to `run_ode_solver`. The solver should run until the event function returns 0, and then terminate." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 284 + }, + "colab_type": "code", + "id": "sZcqDq-NyVK-", + "outputId": "c41d07b7-5d31-4312-f305-c2233e196fb4" + }, + "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", + "
values
messageA termination event occurred.
nfev38
njev0
nlu0
solNone
status1
successTrue
t_events[[8.817885349720553]]
\n", + "
" ], - "execution_count": 20, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/latex": "$8.817885349720553\\ \\mathrm{second}$", - "text/html": [ - "8.817885349720553 second" - ], - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 20 - } + "text/plain": [ + "message A termination event occurred.\n", + "nfev 38\n", + "njev 0\n", + "nlu 0\n", + "sol None\n", + "status 1\n", + "success True\n", + "t_events [[8.817885349720553]]\n", + "dtype: object" ] - }, - { - "metadata": { - "id": "5To9p3EiyVLQ", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "The result is accurate to about 15 decimal places.\n", - "\n", - "We can also check the velocity of the penny when it hits the sidewalk:" - ] - }, - { - "metadata": { - "id": "se6TYeCUyVLR", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "v_sidewalk = get_last_value(results.v) * m / s" + }, + "execution_count": 17, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "results, details = run_ode_solver(system, slope_func, events=event_func)\n", + "details" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "AM0k7t-7yVLA" + }, + "source": [ + "The message from the solver indicates the solver stopped because the event we wanted to detect happened.\n", + "\n", + "Here are the results:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 254 + }, + "colab_type": "code", + "id": "o9Y5FnMfyVLC", + "outputId": "7c0d4b23-d3c3-4974-fb19-7d44370f9443" + }, + "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", + "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
1.133773374.701343-11.110971
8.8178850.000000-86.415276
\n", + "
" ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "iAgE4Gj9yVLU", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And convert to kilometers per hour." + "text/plain": [ + " y v\n", + "0.000000 381.000000 0.000000\n", + "0.000102 381.000000 -0.001000\n", + "0.001122 380.999994 -0.011000\n", + "0.011327 380.999371 -0.111000\n", + "0.113367 380.937025 -1.110997\n", + "1.133773 374.701343 -11.110971\n", + "8.817885 0.000000 -86.415276" ] - }, - { - "metadata": { - "id": "3SASlJsryVLV", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "outputId": "4a2d7d92-fa2b-4618-b22e-d94887966ddc" - }, - "cell_type": "code", - "source": [ - "km = UNITS.kilometer\n", - "h = UNITS.hour\n", - "v_sidewalk.to(km / h)" + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "results" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "CHxr2EqSyVLG" + }, + "source": [ + "With the `events` option, the solver returns the actual time steps it computed, which are not necessarily equally spaced. \n", + "\n", + "The last time step is when the event occurred:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "ttIZzpjPyVLH" + }, + "outputs": [], + "source": [ + "t_sidewalk = get_last_label(results) * s" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "gmVFDsVTyVLK" + }, + "source": [ + "Unfortunately, `run_ode_solver` does not carry the units through the computation, so we have to put them back at the end.\n", + "\n", + "We could also get the time of the event from `details`, but it's a minor nuisance because it comes packed in an array:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "Joo1jSYLyVLL", + "outputId": "0861f9d3-b4a5-4504-f7be-ec3314e3ff66" + }, + "outputs": [ + { + "data": { + "text/html": [ + "8.817885349720553 second" ], - "execution_count": 22, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/latex": "$-311.09499513814114\\ \\frac{\\mathrm{kilometer}}{\\mathrm{hour}}$", - "text/html": [ - "-311.09499513814114 kilometer/hour" - ], - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 22 - } - ] - }, - { - "metadata": { - "id": "BuHAdPo2yVLc", - "colab_type": "text" - }, - "cell_type": "markdown", - "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." - ] - }, - { - "metadata": { - "id": "zf50bYqKyVLd", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "## Under the hood\n", - "\n", - "Here is the source code for `crossings` so you can see what's happening under the hood:" - ] - }, - { - "metadata": { - "id": "egybRvtSyVLe", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "%psource crossings" + "text/latex": [ + "$8.817885349720553\\ \\mathrm{second}$" ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "pWHmHZADyVLi", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "The [documentation of InterpolatedUnivariateSpline is here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.InterpolatedUnivariateSpline.html).\n", - "\n", - "And you can read the [documentation of `scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) to learn more about how `run_ode_solver` works." + "text/plain": [ + "" ] - }, - { - "metadata": { - "id": "EBbygIvbyVLj", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "### Exercises\n", - "\n", - "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", - "\n", - "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", - "\n", - "Use `run_ode_solver` to answer this question.\n", - "\n", - "Here are some suggestions about how to proceed:\n", - "\n", - "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", - "\n", - "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", - "\n", - "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", - "\n", - "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", - "\n", - "\n", - "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." - ] - }, - { - "metadata": { - "id": "XcpC9qV2yVLl", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# units!\n", - "N = UNITS.newton\n", - "kg = UNITS.kilogram\n", - "m = UNITS.meter\n", - "AU = UNITS.astronomical_unit;" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "Nq0vKaw0yVLn", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "r_0 = (1 * AU).to_base_units()\n", - "v_0 = 0 * m / s\n", - "init = State(r=r_0,\n", - " v=v_0)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "2mYVqxxmyVLq", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "system = System(init=init,\n", - " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", - " m_sun=1.99e30 * kg,\n", - " m_earth=5.972e24 * kg,\n", - " t_end=100e6 * s,\n", - " r_final=695.508e6 * m + 6.371e6 * m)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "G4ijoX3dyVLt", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "def universal_grav(state, system):\n", - " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", - " r, v = state\n", - " unpack(system)\n", - " force = G * m_sun * m_earth / r ** 2\n", - " \n", - " return force\n", - " " - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "0euiUJCfyVL0", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "def slope_func(state, t, system):\n", - " r, v = state\n", - " unpack(system)\n", - " \n", - " force = universal_grav(state, system)\n", - " \n", - " drdt = v\n", - " dvdt = -force / m_earth\n", - " \n", - " return drdt, dvdt" + }, + "execution_count": 20, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "details.t_events[0][0] * s" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "5To9p3EiyVLQ" + }, + "source": [ + "The result is accurate to about 15 decimal places.\n", + "\n", + "We can also check the velocity of the penny when it hits the sidewalk:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "se6TYeCUyVLR" + }, + "outputs": [], + "source": [ + "v_sidewalk = get_last_value(results.v) * m / s" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "iAgE4Gj9yVLU" + }, + "source": [ + "And convert to kilometers per hour." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "3SASlJsryVLV", + "outputId": "4a2d7d92-fa2b-4618-b22e-d94887966ddc" + }, + "outputs": [ + { + "data": { + "text/html": [ + "-311.09499513814114 kilometer/hour" ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "yxNvIgrGyVL2", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 52 - }, - "outputId": "7120ea5a-0b0c-4749-9111-599c45ae1f3e" - }, - "cell_type": "code", - "source": [ - "drdt, dvdt = slope_func(init, 0, system)\n", - "print(drdt)\n", - "print(dvdt)" + "text/latex": [ + "$-311.09499513814114\\ \\frac{\\mathrm{kilometer}}{\\mathrm{hour}}$" ], - "execution_count": 36, - "outputs": [ - { - "output_type": "stream", - "text": [ - "0.0 meter / second\n", - "-0.005934559038759181 newton / kilogram\n" - ], - "name": "stdout" - } + "text/plain": [ + "" ] - }, - { - "metadata": { - "id": "BDP2V-W97UdW", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "def event_func(state, t, system):\n", - " r, v = state\n", - " return r - system.r_final" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "oDu_ADwk7bMA", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "outputId": "d8d2a613-7fae-4153-c504-da85529fd34b" - }, - "cell_type": "code", - "source": [ - "event_func(init, 0, system)" + }, + "execution_count": 22, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "km = UNITS.kilometer\n", + "h = UNITS.hour\n", + "v_sidewalk.to(km / h)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "BuHAdPo2yVLc" + }, + "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": { + "colab_type": "text", + "id": "zf50bYqKyVLd" + }, + "source": [ + "## Under the hood\n", + "\n", + "Here is the source code for `crossings` so you can see what's happening under the hood:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "egybRvtSyVLe" + }, + "outputs": [], + "source": [ + "%psource crossings" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "pWHmHZADyVLi" + }, + "source": [ + "The [documentation of InterpolatedUnivariateSpline is here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.InterpolatedUnivariateSpline.html).\n", + "\n", + "And you can read the [documentation of `scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) to learn more about how `run_ode_solver` works." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "EBbygIvbyVLj" + }, + "source": [ + "### Exercises\n", + "\n", + "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", + "\n", + "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", + "\n", + "Use `run_ode_solver` to answer this question.\n", + "\n", + "Here are some suggestions about how to proceed:\n", + "\n", + "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", + "\n", + "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", + "\n", + "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", + "\n", + "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", + "\n", + "\n", + "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "XcpC9qV2yVLl" + }, + "outputs": [], + "source": [ + "# units!\n", + "N = UNITS.newton\n", + "kg = UNITS.kilogram\n", + "m = UNITS.meter\n", + "AU = UNITS.astronomical_unit;" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Nq0vKaw0yVLn" + }, + "outputs": [], + "source": [ + "r_0 = (1 * AU).to_base_units()\n", + "v_0 = 0 * m / s\n", + "init = State(r=r_0,\n", + " v=v_0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "2mYVqxxmyVLq" + }, + "outputs": [], + "source": [ + "system = System(init=init,\n", + " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", + " m_sun=1.99e30 * kg,\n", + " m_earth=5.972e24 * kg,\n", + " t_end=100e6 * s,\n", + " r_final=695.508e6 * m + 6.371e6 * m)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "G4ijoX3dyVLt" + }, + "outputs": [], + "source": [ + "def universal_grav(state, system):\n", + " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", + " r, v = state\n", + " unpack(system)\n", + " force = G * m_sun * m_earth / r ** 2\n", + " \n", + " return force\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "0euiUJCfyVL0" + }, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " r, v = state\n", + " unpack(system)\n", + " \n", + " force = universal_grav(state, system)\n", + " \n", + " drdt = v\n", + " dvdt = -force / m_earth\n", + " \n", + " return drdt, dvdt" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 52 + }, + "colab_type": "code", + "id": "yxNvIgrGyVL2", + "outputId": "7120ea5a-0b0c-4749-9111-599c45ae1f3e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 meter / second\n", + "-0.005934559038759181 newton / kilogram\n" + ] + } + ], + "source": [ + "drdt, dvdt = slope_func(init, 0, system)\n", + "print(drdt)\n", + "print(dvdt)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "BDP2V-W97UdW" + }, + "outputs": [], + "source": [ + "def event_func(state, t, system):\n", + " r, v = state\n", + " return r - system.r_final" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "oDu_ADwk7bMA", + "outputId": "d8d2a613-7fae-4153-c504-da85529fd34b" + }, + "outputs": [ + { + "data": { + "text/html": [ + "148895991691.0 meter" ], - "execution_count": 119, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/latex": "$148895991691.0\\ \\mathrm{meter}$", - "text/html": [ - "148895991691.0 meter" - ], - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 119 - } - ] - }, - { - "metadata": { - "id": "0PSP5uH6yVL4", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 297 - }, - "outputId": "9c29f5e7-b731-45b8-c2c3-88e2f79094d5" - }, - "cell_type": "code", - "source": [ - "results, details = run_ode_solver(system, slope_func, events=event_func, method='LSODA', min_step=99)\n", - "results.index /= 60 * 60 * 24\n", - "results.r *= (0.000621371 / 1000)\n", - "plot(results.r, 'go-')\n", - "decorate(title='Distance from Sun',\n", - " xlabel='Time (days)',\n", - " ylabel='Distance from sun (thousand miles)')" + "text/latex": [ + "$148895991691.0\\ \\mathrm{meter}$" ], - "execution_count": 127, - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - } - } + "text/plain": [ + "" ] - }, - { - "metadata": { - "id": "ZBi2VbR7yVL_", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 297 - }, - "outputId": "d1ae6d1c-3b3a-435d-fd08-683d512f4e61" - }, - "cell_type": "code", - "source": [ - "plot(results.v, 'ro-')\n", - "decorate(title='Earth Velocity',\n", - " xlabel='Time (days)',\n", - " ylabel='Velocity (m/s)')" - ], - "execution_count": 112, - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - } - } + }, + "execution_count": 119, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "event_func(init, 0, system)" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 297 + }, + "colab_type": "code", + "id": "0PSP5uH6yVL4", + "outputId": "9c29f5e7-b731-45b8-c2c3-88e2f79094d5" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" ] - }, - { - "metadata": { - "id": "HJK8S7CZyVMB", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "\n", - "# Solution goes here" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "-EBnddfFyVME", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Solution goes here" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "-Ukzv__AyVMF", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Solution goes here" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "Cr7bXOkOyVMH", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Solution goes here" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "z2Rz6DNgyVMK", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Solution goes here" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "rvTAB2c9yVMM", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Solution goes here" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "kqO3E3-ByVMP", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Solution goes here" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "8lF4CTvjyVMU", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Solution goes here" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "TclFQil3yVMV", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Solution goes here" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "2QjbzAAGyVMZ", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "Ax8EsdFJypUT", - "colab_type": "code", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - }, - "outputId": "f7e4ff7d-efb2-4b09-e88f-ea07b75e289d" - }, - "cell_type": "code", - "source": [ - "# Imports\n", - "from IPython.display import clear_output\n", - "import os\n", - "import time\n", - "\n", - "# Install Python libraries\n", - "!pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", - "\n", - "# Removes code before re-downloading it\n", - "!rm -rf ./ModSimPy\n", - "!rm -rf ./modsim.py\n", - "\n", - "# Grabs ModSimPy\n", - "!git clone https://github.com/AllenDowney/ModSimPy.git\n", - "!cp \"ModSimPy/code/modsim.py\" .\n", - "\n", - "# Resets kernel to flush outdated libraries (especially SciPy)\n", - "clear_output()\n", - "print(\"Configured for ModSimPy. Restarting kernel.\")\n", - "time.sleep(1)\n", - "os._exit(0)" - ], - "execution_count": 0, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Configured for ModSimPy. Restarting kernel.\n" - ], - "name": "stdout" - } + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "results, details = run_ode_solver(system, slope_func, events=event_func, method='LSODA', min_step=99)\n", + "results.index /= 60 * 60 * 24\n", + "results.r *= (0.000621371 / 1000)\n", + "plot(results.r, 'go-')\n", + "decorate(title='Distance from Sun',\n", + " xlabel='Time (days)',\n", + " ylabel='Distance from sun (thousand miles)')" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 297 + }, + "colab_type": "code", + "id": "ZBi2VbR7yVL_", + "outputId": "d1ae6d1c-3b3a-435d-fd08-683d512f4e61" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" ] - }, - { - "metadata": { - "id": "gFAThLbWytK9", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" - ], - "execution_count": 0, - "outputs": [] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(results.v, 'ro-')\n", + "decorate(title='Earth Velocity',\n", + " xlabel='Time (days)',\n", + " ylabel='Velocity (m/s)')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "HJK8S7CZyVMB" + }, + "outputs": [], + "source": [ + "\n", + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "-EBnddfFyVME" + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "-Ukzv__AyVMF" + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Cr7bXOkOyVMH" + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "z2Rz6DNgyVMK" + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "rvTAB2c9yVMM" + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "kqO3E3-ByVMP" + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "8lF4CTvjyVMU" + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "TclFQil3yVMV" + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "2QjbzAAGyVMZ" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "Ax8EsdFJypUT", + "outputId": "f7e4ff7d-efb2-4b09-e88f-ea07b75e289d" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Configured for ModSimPy. Restarting kernel.\n" + ] } - ] -} \ No newline at end of file + ], + "source": [ + "# Imports\n", + "from IPython.display import clear_output\n", + "import os\n", + "import time\n", + "\n", + "# Install Python libraries\n", + "!pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", + "\n", + "# Removes code before re-downloading it\n", + "!rm -rf ./ModSimPy\n", + "!rm -rf ./modsim.py\n", + "\n", + "# Grabs ModSimPy\n", + "!git clone https://github.com/AllenDowney/ModSimPy.git\n", + "!cp \"ModSimPy/code/modsim.py\" .\n", + "\n", + "# Resets kernel to flush outdated libraries (especially SciPy)\n", + "clear_output()\n", + "print(\"Configured for ModSimPy. Restarting kernel.\")\n", + "time.sleep(1)\n", + "os._exit(0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "gFAThLbWytK9" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [ + "5K127O8QyVKq" + ], + "name": "chap20-mine.ipynb", + "provenance": [], + "version": "0.3.2" + }, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/code/chap23-mine.ipynb b/code/chap23-mine.ipynb index 2031f90b..924874a6 100644 --- a/code/chap23-mine.ipynb +++ b/code/chap23-mine.ipynb @@ -42,7 +42,24 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "degree" + ], + "text/latex": [ + "$degree$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m = UNITS.meter\n", "s = UNITS.second\n", @@ -52,13 +69,107 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 31, "metadata": { "collapsed": true }, - "outputs": [], + "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", + "
values
wall_height11.28 meter
x0 meter
y1 meter
g9.8 meter / second ** 2
mass0.145 kilogram
diameter0.073 meter
rho1.2 kilogram / meter ** 3
C_d0.3
angle45 degree
velocity40.0 meter / second
t_end20 second
\n", + "
" + ], + "text/plain": [ + "wall_height 11.28 meter\n", + "x 0 meter\n", + "y 1 meter\n", + "g 9.8 meter / second ** 2\n", + "mass 0.145 kilogram\n", + "diameter 0.073 meter\n", + "rho 1.2 kilogram / meter ** 3\n", + "C_d 0.3\n", + "angle 45 degree\n", + "velocity 40.0 meter / second\n", + "t_end 20 second\n", + "dtype: object" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "params = Params(x = 0 * m, \n", + "params = Params(wall_height = 11.28 * m,\n", + " x = 0 * m, \n", " y = 1 * m,\n", " g = 9.8 * m/s**2,\n", " mass = 145e-3 * kg,\n", @@ -72,7 +183,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": { "collapsed": true }, @@ -105,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -126,7 +237,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 44, "metadata": { "collapsed": true }, @@ -141,6 +252,7 @@ " \n", " returns: sequence (vx, vy, ax, ay)\n", " \"\"\"\n", + " print(state)\n", " x, y, vx, vy = state\n", " unpack(system)\n", "\n", @@ -155,7 +267,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -183,7 +295,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 10, "metadata": { "collapsed": true }, @@ -213,9 +325,33 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Wall time: 165 ms\n" + ] + }, + { + "data": { + "text/html": [ + "102.72776151763686 meter" + ], + "text/latex": [ + "$102.72776151763686 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "%time range_func(45, params)" ] @@ -229,9 +365,37 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "20.0 79.96823513701818 meter\n", + "23.0 86.2962864918857 meter\n", + "26.0 91.59647908800756 meter\n", + "29.0 95.89089380357947 meter\n", + "32.0 99.20335822576214 meter\n", + "35.0 101.55668007973463 meter\n", + "38.0 102.97173880917646 meter\n", + "41.0 103.46740813177843 meter\n", + "44.0 103.060922479178 meter\n", + "47.0 101.7684506860653 meter\n", + "50.0 99.60572853320414 meter\n", + "53.0 96.58867331645769 meter\n", + "56.0 92.7339915489422 meter\n", + "59.0 88.05990483905572 meter\n", + "62.0 82.58716276454999 meter\n", + "65.0 76.34016117578483 meter\n", + "68.0 69.34714056465755 meter\n", + "71.0 61.63878192638946 meter\n", + "74.0 53.256101549629825 meter\n", + "77.0 44.246680677829886 meter\n", + "80.0 34.6702130194327 meter\n" + ] + } + ], "source": [ "angles = linspace(20, 80, 21)\n", "sweep = SweepSeries()\n", @@ -251,9 +415,27 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap10-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot(sweep, color='C2')\n", "decorate(xlabel='Launch angle (degree)',\n", @@ -273,9 +455,17 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 14, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Wall time: 971 ms\n" + ] + } + ], "source": [ "%time res = max_bounded(range_func, [0, 90], params)" ] @@ -289,9 +479,77 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
fun103.46837822354611 meter
status0
successTrue
messageSolution found.
x41.1391
nfev9
\n", + "
" + ], + "text/plain": [ + "fun 103.46837822354611 meter\n", + "status 0\n", + "success True\n", + "message Solution found.\n", + "x 41.1391\n", + "nfev 9\n", + "dtype: object" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "res" ] @@ -305,18 +563,52 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "41.139142795614596 degree" + ], + "text/latex": [ + "$41.139142795614596 degree$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "optimal_angle = res.x * degree" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "103.46837822354611 meter" + ], + "text/latex": [ + "$103.46837822354611 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "max_x_dist = res.fun" ] @@ -334,18 +626,98 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 18, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[1;32mdef\u001b[0m \u001b[0mmax_bounded\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmax_func\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;34m\"\"\"Finds the input value that maximizes `max_func`.\n", + "\n", + " Wrapper for https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize_scalar.html\n", + "\n", + " min_func: computes the function to be maximized\n", + " bounds: sequence of two values, lower and upper bounds of the\n", + " range to be searched\n", + " args: any additional positional arguments are passed to max_func\n", + " options: any keyword arguments are passed as options to minimize_scalar\n", + "\n", + " returns: ModSimSeries object\n", + " \"\"\"\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mmin_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;33m-\u001b[0m\u001b[0mmax_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", + "\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmin_bounded\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmin_func\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# we have to negate the function value before returning res\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfun\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m-\u001b[0m\u001b[0mres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfun\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "%psource max_bounded" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[1;32mdef\u001b[0m \u001b[0mmin_bounded\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmin_func\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;34m\"\"\"Finds the input value that minimizes `min_func`.\n", + "\n", + " Wrapper for https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize_scalar.html\n", + "\n", + " min_func: computes the function to be minimized\n", + " bounds: sequence of two values, lower and upper bounds of the\n", + " range to be searched\n", + " args: any additional positional arguments are passed to min_func\n", + " options: any keyword arguments are passed as options to minimize_scalar\n", + "\n", + " returns: ModSimSeries object\n", + " \"\"\"\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# try:\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# print(bounds[0])\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# min_func(bounds[0], *args)\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# except Exception as e:\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# msg = \"\"\"Before running scipy.integrate.min_bounded, I tried\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# running the slope function you provided with the\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# initial conditions in system and t=0, and I got\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# the following error:\"\"\"\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# logger.error(msg)\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# raise(e)\u001b[0m\u001b[1;33m\n", + "\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0munderride\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mxatol\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1e-3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", + "\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;31m# TODO: Do we need to remove units from bounds?\u001b[0m\u001b[1;33m\n", + "\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0munits_off\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mminimize_scalar\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmin_func\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mbracket\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mbounds\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mmethod\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'bounded'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0moptions\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", + "\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msuccess\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[0mmsg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"\"\"scipy.optimize.minimize_scalar did not succeed.\n", + " The message it returned is %s\"\"\"\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmessage\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mException\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", + "\u001b[0m\u001b[1;33m\n", + "\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mModSimSeries\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mres\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "%psource min_bounded" ] @@ -373,40 +745,172 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 30, "metadata": { "collapsed": true }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "10.365609807246543 meter" + ], + "text/latex": [ + "$10.365609807246543 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "def event_func_wall(state, t, system):\n", + " x, y, vx, vy = state\n", + " return 94.5 - x\n", + "\n", + "def height_func(angle, params): \n", + " \"\"\"Computes height for a given launch velocity.\n", + " \n", + " angle: launch angle in degrees\n", + " params: Params object\n", + " \n", + " returns: height in meters\n", + " \"\"\"\n", + " params = Params(params, angle=angle)\n", + " system = make_system(params)\n", + " results, details = run_ode_solver(system, slope_func, events=event_func_wall)\n", + " height = get_last_value(results.y) * m\n", + " return height\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "Always test the slope function with the initial conditions." + "Always test the height function with the initial conditions." ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 45, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "wall_height 11.28 meter\n", + "x 0 meter\n", + "y 1 meter\n", + "g 9.8 meter / second ** 2\n", + "mass 0.145 kilogram\n", + "diameter 0.073 meter\n", + "rho 1.2 kilogram / meter ** 3\n", + "C_d 0.3\n", + "angle 45 degree\n", + "velocity 40.0 meter / second\n", + "t_end 20 second\n", + "dtype: object\n" + ] + }, + { + "ename": "ValueError", + "evalue": "too many values to unpack (expected 4)", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mslope_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmake_system\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m\u001b[0m in \u001b[0;36mslope_func\u001b[1;34m(state, t, system)\u001b[0m\n\u001b[0;32m 9\u001b[0m \"\"\"\n\u001b[0;32m 10\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvy\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[0munpack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msystem\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mValueError\u001b[0m: too many values to unpack (expected 4)" + ] + } + ], "source": [ - "# Solution goes here" + "slope_func(params, 0, make_system(params))" ] }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 33, "metadata": { "collapsed": true }, - "outputs": [], + "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", + "
values
fun11.04782805563812 meter
status0
successTrue
messageSolution found.
x44.5406
nfev12
\n", + "
" + ], + "text/plain": [ + "fun 11.04782805563812 meter\n", + "status 0\n", + "success True\n", + "message Solution found.\n", + "x 44.5406\n", + "nfev 12\n", + "dtype: object" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "res = max_bounded(height_func, [0, 90], params)" ] }, { @@ -418,11 +922,28 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 34, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "11.033479404035603 meter" + ], + "text/latex": [ + "$11.033479404035603 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "height_func(45 * degree, params)" ] }, { diff --git a/code/figs/chap10-fig03.pdf b/code/figs/chap10-fig03.pdf new file mode 100644 index 0000000000000000000000000000000000000000..77da231f5fa6004c05a8b13c2562f684fb107bfa GIT binary patch literal 13936 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 literal 0 HcmV?d00001 From 239b004396d0a4956c6093cc5ae30a17c529231e Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 27 Nov 2018 20:42:39 -0500 Subject: [PATCH 48/61] orbit simulation progress --- code/orbit_homework.ipynb | 224 ++++++++++++++++++++++++-------------- 1 file changed, 142 insertions(+), 82 deletions(-) diff --git a/code/orbit_homework.ipynb b/code/orbit_homework.ipynb index 91ec56bc..b79a87eb 100644 --- a/code/orbit_homework.ipynb +++ b/code/orbit_homework.ipynb @@ -198,7 +198,7 @@ " t: time\n", " system: System object containing `g`\n", " \n", - " returns: derivatives of y and v\n", + " returns: derivatives of y and vw\n", " \"\"\"\n", " y, v = state\n", " unpack(system) \n", @@ -225,11 +225,7 @@ "metadata": { "id": "h_2rqVXZyVKV", "colab_type": "code", - "outputId": "e85b8c17-5c77-4aad-f1f4-ed2fce2793e0", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 52 - } + "colab": {} }, "cell_type": "code", "source": [ @@ -237,17 +233,8 @@ "print(dydt)\n", "print(dvdt)" ], - "execution_count": 8, - "outputs": [ - { - "output_type": "stream", - "text": [ - "0.0 meter / second\n", - "-9.8 meter / second ** 2\n" - ], - "name": "stdout" - } - ] + "execution_count": 0, + "outputs": [] }, { "metadata": { @@ -263,32 +250,15 @@ "metadata": { "id": "m-vjelT6yVKb", "colab_type": "code", - "outputId": "628ef99d-6fc3-43f2-9997-2d7dd178dc4d", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 35 - } + "colab": {} }, "cell_type": "code", "source": [ "results, details = run_ode_solver(system, slope_func, max_step=0.5*s)\n", "details.message" ], - "execution_count": 9, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "'The solver successfully reached the end of the integration interval.'" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 9 - } - ] + "execution_count": 0, + "outputs": [] }, { "metadata": { @@ -304,17 +274,17 @@ "metadata": { "id": "LeO7a_65yVKi", "colab_type": "code", - "outputId": "f479620b-101e-4023-965d-227fab636db8", + "outputId": "90da9df0-9126-4aba-8cd4-3b12b6dba298", "colab": { "base_uri": "https://localhost:8080/", - "height": 815 + "height": 824 } }, "cell_type": "code", "source": [ "results" ], - "execution_count": 10, + "execution_count": 43, "outputs": [ { "output_type": "execute_result", @@ -504,7 +474,7 @@ "metadata": { "tags": [] }, - "execution_count": 10 + "execution_count": 43 } ] }, @@ -522,10 +492,10 @@ "metadata": { "id": "mWM2oxpmyVKn", "colab_type": "code", - "outputId": "46d0ec28-ca80-4cf6-faa9-589c1991778f", + "outputId": "28aaa7a3-4b60-470d-ec21-d991be4e09c4", "colab": { "base_uri": "https://localhost:8080/", - "height": 395 + "height": 297 } }, "cell_type": "code", @@ -537,14 +507,14 @@ "\n", "plot_position(results)" ], - "execution_count": 12, + "execution_count": 44, "outputs": [ { "output_type": "display_data", "data": { - "image/png": "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\n08wXCQAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl8lNed5/tPVWnfEFrQAhIICQ5g\ng40NmMVgG4wX7NhJHI+d+CYzuZ1u9013Yie59/Z0ujPpcd+ezvimu2PnNXGmb7c7y6S9OybYsQPB\n2IANBmMbmwAHEBJCSEIg0L5Vqer+8ZQKsWgxqOopSd/366WX9Jynlh+JVV+d85znHE8oFEJERCTe\neN0uQERE5FIUUCIiEpcUUCIiEpcUUCIiEpcUUCIiEpcUUCIiEpcS3C6gnzHmLuBVoAw4Bvw98Dkg\nBPzaWvuX4cdlA08DVwO9wGPW2uddKVpERKLGEw/3QRlj0oD3gGLgemAp8ChwE05AvQ38g7X2RWPM\nT4Fua+2jxphpwAfAQmvtiUFeOxlYDNQDfVH/x4iIyKfhA4qA3dbanoEn4qUH9TfAL4Gvh4/vB37W\nX6wx5pfhthfD31cAWGtrjTFvAfcATw3y2ouBbdEqXERERsVKYPvABtcDyhgzH1gLLOFcQM0Gfjrg\nYZXAw8aYXCAnfDzw3Jwh3qIe4Fe/+hWFhYWjVbaIiIyChoYGHnroIQh/Vg/kakAZYzw4QfQNa63f\nGNN/Kg3oHvDQLiA93B601vovOJc/xNv0ARQWFjJt2rTRKl1EREbXRZdg3J7F9yfAfmvt9gvaO4CU\nAcdpQHu43WuMSbrEORERGUfcDqh7gXuNMQ3GmAagBNiNc8GsYsDjZuEE2RngFFB+4bkY1SsiIjHi\n6hCftXbdwGNjTDVwM7AI+CtjzC8AD05P67vhhz2PM8PvYWPMPJyZfl9HRETGFbd7UJdkrX0ReAP4\nCGca+UvW2g3h098F8o0xR3DC6o+stSfdqVRERKLF9Vl8A1lrZwz4+S+Bv7zEY1qBz8ewLBERcUFc\nBVQ8CoVC1Da209Leg8fjAcDr8ZCQ4CExwUdigpdEn5fERO95x16vx+XKRUTGNgXUMD4+fJptey+5\nSMWQfF4nwJISncBKSBgQYAleUpMSSE9LJCPV+UoPf/f54nLUVUQk5hRQw+jqDVzW8/qCIfp6A3T3\nfrrnpaWcH1gZ/SGWlhRpT1CIicgEoIAaxnVmCkmJPlrae3CWLQwRDIbw94UIBIL4A0H8gb7w9yD+\nPuf75a5x2Nntp7PbD2cHf0xqcgIZaYnkZKaQOymV3Ekp5E5KIT01MTIMKSIy1imghpGU6OM6M+VT\nPScUCtEXDNHrd4Ir0Bc8F2CBIL2BPjq7A3R0+Wnv8tPe2UtHl5+O7sCIgq2rJ0BXT4BTZ7sYmGRJ\niT5ys5ywypkUDq+sFFKS9X+ziIw9+uSKAo/HQ4LP86mH4oLBEJ3d/aHlp72rl/YuvxNknX7aOnvp\n7A4QHCTEev191Dd1UN/UcV57WkpipJeVm5VKzqQUcrKSSUzwXfa/UUQE4L777uOP//iPueOOOwDY\nsmULP/rRj1i/fv0Vv7YCKo54vR7nWlNaEuRe+jHBYIjOngCt7T00tXTT1NrNmZZumlq76Om99G4i\n/cOGx0+2Rdo8Hg85mckU5WdQnJdOcV66874iEvc+tI3s2t+APxCM2nskJnhZMq+QhcOMIN199928\n+uqrkYDatGkTd91116jUoIAaY7xeT2TmX3F+RqQ9FArR0R2gqaWLppZzoXW2tYdA38X/EYdCIZpa\nnYDbV3kagKz0JIpy0ynKS6c4P4PJmcm6piUShz46dCqq4QTgDwT56NCpYQNq3bp1/OhHP6KtrY20\ntDS2bNnC88+Pzh6yCqhxwuM5F1zTC7Mi7cFgiJaOnnBgdUfCq7m956LrXa0dvbR29GJrnOtaKUkJ\nFOWFAysvnfzJafh0f5eI666dnR+THtS1s4faKMJRUFDAggUL2LhxI6WlpUydOpWSkpJRqUEBNc55\nvR4mZ6YwOTPlvBV2/YE+Gpo6qT/dQd3pDk42deC/oKfV3Rugqq6FqroWABJ8Xgpz0yjOy6AoL53C\n3DRdxxJxwUIzZdieTSzdddddvPHGG0yfPp1169YN/4QRUkBNUIkJPkoKMikpyASc+7ZON3dRd6rd\nmWhxuoOunvPvAQv0BaltbKe20dndxOf1MDU/gxnFWcwomkRWuq5hiUxEd9xxB48//jgHDhzghRde\nGLXXVUAJ4IRNQU4aBTlpLMS5RnW2rYf60x3Un26n7nQHrR3n33XcFwxRc7KNmpNtbP3wBLmTUplR\nlEVZcRYFOWm6fiUyQWRnZ7N48WJaWlooKioatddVQMkleTwecrJSyMlK4aqZzpTC9s5e6k47vau6\nU+00tXaf9xxngkYXew6eJDU5gRlFWcwoyqK0MFNDgSLjXFFREatWrRrV11RAyYhlpCUxuzSJ2aWT\nAWjr7KW6rpWq+hZONLbTFzw36aKrJ8CB6jMcqD7jDAVOyaCsaBIzirPI1HR2kXGlurqarVu38p3v\nfGdUX1cBJZctMy2J+RV5zK/Iwx/oo6ahjer6VqrrW8+7ftUXDFHT0EZNQxtvfwh52f1DgZOYMjlV\nQ4EiY9gTTzzB+vXr+d73vkdmZuaovrbncteMGyuMMTOAqs2bNzNt2jS3y5kQQqEQJ890UlXnhFVT\nS9egj81KT8KUTsZMzyE7MzmGVYpIPKitrWXNmjUAZdba6oHn1IOSUefxeCjMTacwN51l84to7eil\nur6F6vrWi4YCWzt62X3gJLsPnKQwNx1TOplZJdlaP1BEFFASfVnpSSyoyGdBRT69/j6On2yjKnzt\nauDyTA1NHTQ0dbBt7wlmFGVhSiczoyhLe2SJTFAKKImppEQf5dOyKZ+WTaAvSHV9K/bYWY7Vt0YW\nwQ0GQxw90cLREy0kJ/mYNS0bMz2HwlxNXReZSBRQ4poEn5eKadlUTMumqyfAkePNHDx2hpNnOiOP\n6entY9/RJvYdbWJSRnL4etVkJmXoepXIeKeAkriQmpwQmRF4tq0be+wsh2rOnndzcEt7D7v2N7Br\nfwOFuenMmT6ZipJsUpL0n7HIeKTfbIk7kzNTWHp1ETdcVUj96Q5szVmOHG+mx3/x9arte+sw0yez\noCKP3EmpLlYtIqNNASVxy+PxUJyfQXF+BiuvnUp1XSv22BmONbRFrlcF+oL84WgTfzjaxNT8DBZU\n5FFWPAmvVl0XGfMUUDImJPi8VJRkU1GSTWe3nyO1zRyoOsOp5nP3WJ041c6JU+3ODcTlecwry9F0\ndZExTL+9MuakpSSyoCKf+eV51Dd18PHh0xw90RLpVbV19vLuJ3Xs2t/A7FJn+C8vW8N/ImONAkrG\nLI/HQ3FeBsV5GbR39vJJZRP7q5oiyywF+oLsr3LaNPwnMvYooGRcyEhLYtn8IhbPK+BwTTMfHzl1\nyeG/jNRE5lfkMa8sl1QN/4nENf2GyriS4PMytyyHOTMm09DUycdHTlFZe274r73Lz45P6tm9/ySz\nS7NZUJGv4T+ROKWAknHJ4/FQlJdOUV467Z297AvP9Dt/+O8M+6vOML0wi8XzCijMTXe5ahEZSAEl\n415GWhJLry5i0dwCjhxvZu+RU5w6e27471hDK8caWiktyGTRvAKK8zJcrFZE+imgZMJI8HmZMyMH\nM90Z/tt7+BSVJ1ro33Kmf/v6aVMyWDyvkOK8dK39J+IiBZRMOAOH/860drPnwEkOHW+OBFVtYzu1\njUcozstg8bwCpk3JUFCJuEABJRNaTlYKa2+YzuJ5hew5eBJ77GxkQkXd6XbWb22nMDedxfMKKC3I\nVFCJxJDrAWWMuQ/4HpACnAb+1Fq7zxjzKPAw4AW2AV+31vYaY5KAnwCrgD7gKWvtk+5UL+NFdmYy\naxaXsmhuAXsONnKw+kwkqBqaOtiw7ShTJqexeF4BM4qyFFQiMeDqTnDGmFLgp8C91to5wAvA08aY\npcAjwDJgDpANfDP8tG8DOeH2G4BHjTGLYl27jE+TMpJZvaiE/+3OuVxdnodvwE29jWc7ee2dKp7/\n/SEqa88NCYpIdLi9Vakf+JK19lj4eDNggPuB56y1zdbaEPB0uI3w93+21gatta3AiwPOiYyKrPQk\nbr5uGl++cy4LKs4PqlPNXby+o5pnNx3iyHEFlUi0uDrEZ62tB+oBjDEJwH8C1gOzgd8MeGglTo+J\n8LnKC86ti3atMjFlpCWxauE0rp9TwIeHGtlX2USgLwhAU0sXb+ysJi87lRULiikpyHS5WpHxxe0e\nFADGmEeAk8BK4C+ANKB7wEO6gP67KIc6JxIV6amJ3HjNVL6ybi7XmSkkJpz71Tnd3MX6rZVs2HaU\nppauIV5FRD6NuAgoa+0TQB7wI+BdIIgzaaJfGtAe/rljiHMiUZWWksjyBcV8Zd08rp9TQKLv3K/Q\nsYZWnt10iC17jtPZ7XexSpHxwe1JEnONMbcCWGtD1tpngCwgBFQMeOgsYH/454NDnBOJidTkBJbN\nL+KhO+cyrywnMqsvFArxh6NN/PL1A+za34A/0DfMK4nIYNzuQeUDvzDGFAMYY1YAicD/A3zRGFMQ\nvjb1CPBM+DnPA98wxviMMUXAg8BzsS9dBDJSE1m9qJQHbp1N6YBrUP5AkF1/aOBXbxzkQNUZgkFN\npBD5tFwNKGvtVuDvgN8bYw7i3N/0YLj9hzj3Px0ADgFPhZ/2BFAHWGAL8Ji1dm+saxcZKC87lXtW\nlfOZlTPJzTo3At3e5Wfz+zU8v/kQx0+2uVihyNjjGe9TZI0xM4CqzZs3M23aNLfLkQkgGAxx8NgZ\ndu5ruOhaVGlhJisWFJM7SVt8iADU1tayZs0agDJrbfXAc66vJCEy3ni9HuaV5TKrJJsPD53iw4ON\n+MNT02sa2jh+8hDzynJYMq+Q9NREl6sViV8KKJEoSUzwsWReIVeV5fLeHxo4UH2GUCgUmUhxqOYs\nC80UFs7OJzHB53a5InHH7UkSIuNeemoiqxeV8ODa2ZQWXnoixREtnSRyEQWUSIzkTkrlnpXl3LNy\n5nnXoNq7/Lyxo5pXt1fR0t7jXoEicUYBJRJjpYVZPHDrbFYvKiEt5dw1qGMNrTyz0fL+gZP0ha9Z\niUxkCigRF/RPpPjS7Yb55XmRG30DfUF27qvnud8fou6UFkiRiU0BJeKilKQEbrpuGl9YPYv87HPD\nfmdau3n5rSNs3l1DV0/AxQpF3KOAEokDBTlp3L9mNiuvmXreQrQHqs9EVqPQJAqZaBRQInHC6/Vw\nzex8Hrp9DuVTJ0Xau3sDbH6/hl+/VcmZ1u4hXkFkfFFAicSZjLQk7lxexl0ryshKT4q0151u59mN\nlh2f1OMPaBKFjH8KKJE4VVY8iS/eZrjOTMEbnkQRDIXYc/Akz2w8yLH6VpcrFIkuBZRIHEtM8LF8\nQTEPrJ1NUe65fTlbO3rZsP0or++opr1Le0/J+KSAEhkDciel8vlbKli9qISUpHMrlFXWNvPvvzvI\nvsrTmkQh444CSmSM8HjO3Ts1Z3pOpL3X38dbH9SyYftR9aZkXFFAiYwxaSmJ3LqklM/dXEF2ZnKk\nvaahjWc2HuRQzVn1pmRcUECJjFFT8zN4cK3h2tn5kZUoenr72PjeMd7YeeyivahExhoFlMgYluDz\ncuM1U/nsTeXnTUmvrG3mmY2WqroWF6sTuTIKKJFxoL83ddXM3EhbV0+A196p4ve7aujx97lYncjl\nUUCJjBNJiT5uub6Ez9w4k/QBq6QfPHaGZ353kOMn21ysTuTTU0CJjDPTi7L44m2GWSWTI23tXX7W\nb63k7Q9q8QfUm5KxQQElMg6lJCdw+9Lp3LF0xnn3TX1SeZrnNh2ioanDxepERkYBJTKOVZRk86Xb\nDWVFWZG25vYeXtpyhB2f1GljRIlrCiiRcS4tJZF1K8pYs6iUpEQfAKFQiD0HG3l+82FOne1yuUKR\nS1NAiUwAHo+HuWU5PLjWMG1KRqS9qaWLF948xPsHTurmXok7CiiRCSQrPYl7V5WzauFUEnzOr38w\nGGLnvnp+s+2obu6VuKKAEplgPB4PCyryeWDtbApy0iLtx0+28eymQ9Q2ajq6xAcFlMgENTkzhftu\nmcX1cwoibZ3dftZvPcqu/Q0EgxryE3cpoEQmMK/Xw7L5RXxm5UxSk53p6KFQiF1/aNCQn7hOASUi\nTC/M4oG1hqn55yZQ1Da28cxGqxUoxDUKKBEBICM1kXtXlbNkXmFkdfSungC/2XaUnfvqNeQnMZcw\n3AOMMcuALwMrgcJwcwOwDfiltXZH9MoTkVjyej0suaqQorx0Nu2qobPbTygU4v0DJ6k71cFtS6eT\nkZo4/AuJjIJBe1DGmEnGmJeA9UAK8E/Afwx//ROQDLxijHnZGJMdi2JFJDZKCjJ5cO1spk3JjLTV\nnW7nuU2WYw2tLlYmE8lQPaidwDPAV6y1l1q462ljTBrwLeAd4KrLKcAYcw/wGE7gNQF/aq3dZ4x5\nFHgYJ0S3AV+31vYaY5KAnwCrgD7gKWvtk5fz3iIyuLSURO5ZOZM9B0+ya79zI29XT4AN245y/Zwp\n3HBVEV6vx+0yZRwb6hrUH1lrHxsknACw1nZaa/8O+KPLeXNjzFTg58CXrLVzgX8H/qcxZinwCLAM\nmANkA98MP+3bQE64/QbgUWPMost5fxEZmtfrYfG8Qj57U/l5W3jsOdjIK28fob2z18XqZLwbtAdl\nrX0XwBiTDNwDlAK+Cx7zePj7zst8fz/wRWvt/vDxduC/AfcDz1lrm8M1PA18H/hh+NxfWWuDQKsx\n5sVw2/uXWYOIDGNqfgYPrJ3N73fVUBOe1Vd3uoNnNx1i7ZJSpg9YjFZktAw7SQJ4BVgIHMIZUusX\nAh6/kje31jYCbwxouhN4D5gN/GZAeyVOj4nwucoLzq27kjpEZHhpKYl8ZuVM9hxsZNcfGgiGQnT3\nBtiw/SgLzRSWXl2ET0N+MopGElALgDJrbVSXPDbGrMG5nrUa+DHQPeB0F5Ae/jltiHMiEkUej4dF\ncwsozk9n485jtHc5N/J+aBs5dbaT25fOiNzwK3KlRnIf1CEgEM0ijDGfBX4G3B0e7uvAmTnYLw1o\nD/881DkRiYHivAweWGuYXnhuaK+2sZ0XNh/idLO275DRMZI/db4D/MYY8xpw3vxSa+0vrrQAY8yt\nwBPAbdbaA+Hmg0DFgIfNAvZfcO7wJc6JSIykJidw941l7DnYyM599QC0dvTy0puHWbO4lIoS3X0i\nV2YkAfXXwE1AORdfg7qigApPU/834LMDwgngeeBlY8w/4kw9fwRnynv/uW8YYzYCU4AH0TUoEVf0\nD/nlTkph064aev19+PuCvLGzmuubC1h69blVKUQ+rZEE1AqgxFrbFIX3vxfIB35ljBnYfhPOjL1t\ngAfYBDwVPvcEzoQJizP0+Ji1dm8UahORESornsQXVs/it+9U0dzeA8Cegyc509LFrTdMJznRN8wr\niFxsJAG1H2iOxptba5/hXM/oQk+Gvy58jh/4WjTqEZHLl5OVwhfWzGLje8eoaXCmolfVt/LC5kPc\ntaKMyZkpw7yCyPlGElDrgVeNMS8DLQNPWGufj0pVIjImpSQlcPeKmezcV88HthGA5rYeXth8mNtv\nmK77peRTGUlAPRL+/t0L2kM414NERCK8Xg/LFxSTl53Km+8fJ9AXpNffx6vvVLH06kKuM1N0XUpG\nZNCAMsYkWGsD1tqy4V7EGOOz1vYN9zgRmThml05mcmYKv323irbOXkKhEDs+qed0cxerF5WQmKDr\nUjK0oe6D2mqMKRnuBYwxxcBbo1aRiIwb+ZNTuX/NLIrzzm2EePh4My9tOUJrh9bxk6ENFVBPAh8Z\nY/7xUouxGmOuN8b8A7AX+B/RKlBExra0lETuvamc+eV5kbbTzV28sPkQJ07pHnsZ3FCLxT5rjNkN\n/A1ObwqgMXx6Cs41qJeBZdbaI1GuU0TGMJ/Xw03XTSMvO5W3P6wlGHS27lj/diU3XlvM/PI8XZeS\niww5ScJaWwl82Rjzx8Aizt9R931rbfegTxYRucBVM3PJyUrh9R3VdHb7CYZCbP3wBKebu7hp4TR8\nvpGsviYTxYhWdQwH0fYo1yIiE0BRXjr/Yc0sXt9RzckznQDsrzpDc1sP65aXkaLFZiVMf66ISMxl\npCXxuZsrmDN9cqSt7nQHL245TEt4JQoRBZSIuCLB52XN4lKWLyiOtDW39fDim4cjPSuZ2BRQIuIa\nj8fDdWYKdyybEdnssKsnwK/fOkJVXcswz5bxbkSDveH7oS615fvWaBQlIhNLxbRs0lMSee2dKrp7\nAwT6gvz23WpWXlvMgop8t8sTlwwbUMaYx3C23Ahw8XYbaVGqS0QmmKK8dO5bXcGGbUdp7XBWntj6\n4QlaO3pZsaBY09AnoJH0oL4GXG+t/TDaxYjIxDY5M8XZtuPdahqaOgD46NAp2jr9rF1SSoKmoU8o\nI/l/u1HhJCKxkpaSyGdvKqd86qRIW2VtM6+8XUlXT8DFyiTWRhJQzxljvhD1SkREwhJ8Xm5fOoNr\nZp27/tTQ1MFLbx6muU3T0CeKkQzx3Qn8tTHmx8DZgSestfOiUpWITHher4eV104lKy2J7R/XEQqF\naG7v4aUth7lrRRmFuelulyhRNpKA+tfwl4hIzF0zO5+MtEQ27aoh0BekqyfAK29XcuuSUiqmZbtd\nnkTRsAFlrf05gDGmFCgA6q21tdEuTESkX/m0bNJTnWnoXT3ONPTf7TxGxwI/18zWNPTxathrUMax\nF6gC3gGOGWN2GGOmR706EZGwwtx07rtlFtkZyQCEQiG27T3Btg9PEAyGXK5OomEkkySexNlWI9ta\nmwTkApuBH0ezMBGRC2VnJnPf6lkUDbj+tPfIKd7YWY0/EHSxMomGkQTUNGvtf7XWtgFYa5uttX8N\nVES3NBGRi6UmJ3DvTeWUD7j+dPREC6+8fYRuTUMfV0YSUD5jTNLABmNMMqDbukXEFQk+L3csnc5C\nMyXSdvJMJ79+6wgdXX4XK5PRNJJZfG8CrxljngRO4eym++fA76NZmIjIUDweDysWFJOZlsi2j5xp\n6E2t3by05TD3ripnUvhalYxdI+lB/Z/AxzjXorYAPwI+Av4iinWJiIzIgop81i4pxRteq6+1o5df\nv3WEM63a8HusG8k0807gO+EvEZG4M7t0MokJXt7YUU1fMER7l5+XtxzhnpUzmZKjNa3HqkEDyhjz\nX6y1jxljfjLYY6y1X49OWSIin05Z8STuWVXOq9uP4g8E6e4N8MrWSu5aUcbU/Ay3y5PLMNQQX0r4\ne+ogXymDPE9ExBVT8zP47E0VpCQ5f3v3+vvYsO2oNj8cowbtQVlrvxv+8afW2vcuPK8FZEUkHhXk\npPG5m8v5zdajdHT7CfQFef3dam5dUsrs0slulyefwkgmSfzbhQ3GmBTgp6NfjojIlcudlMrnb6kg\nK925QyYYCrFpVw37Kk+7XJl8GkNdg/om8AMgyRjTecHpRGBfNAsTEbkSkzKS+fwts9iwtZKm1m5C\noRBvfVBLrz/IdXOmDP8C4rpBe1DW2ieBGcAJnC03Bn6tAlbEoD4RkcuWkZrI526uoGDATL53P6lj\nxyfOfVMS34acZm6tbTTGzLPWdsSqIBGR0ZSSnMC9q8r57btV1Da2A7DnYCM9vX3cdN00PB4tihOv\nhhrie9VaezfwvjHmkn9qjMaGhcaYRJyhxG8DJf1beRhjHgUexunlbQO+bq3tDS+79BOcXlwf8FS4\ntycicklJiT7uvnEmv9tRTVV9KwD7jjbRGwiyZnEpPq9CKh4N1YP6l/D3/w5Esy+8Htg9sMEYsxR4\nBFgItAAvAN8EfogTZDnAHCAD+MgY86619v0o1igiY1yCz8sdy8t4c3cNtsbZHPxQzVn8/j5uXzaD\nBN9I5oxJLA11DeqV8PefAf/LWvvz8OaFW4Gt/RsZjoK/tdZ+/4K2+4Hnwiunh4Cnw2395/7ZWhu0\n1rYCLw44JyIyKJ/Xw61LSrm6PC/SVlXfyoZtR+n197lYmVzKSDYs/BLwUvjnrwAW2GuM+dpoFGCt\n3XGJ5tlA5YDjSpwe03DnRESG5PF4uGnhVK6fUxBpO3GqnVfertR2HXFmJH3av+TcOnzfAz6PsxfU\nI9EqCkgDBq702AWkj+CciMiwPB4Py+YXsXx+caSt8Wwn67cqpOLJSALKY62tNMbMBCZba1+11jYS\n3f2gOjh/KaU0oH0E50RERuy6OVO45fqSyEy+U81dCqk4MpKASjDGZAD3Ed4DKjyTLpqbrRzk/B17\nZwH7R3BORORTuWpmLqsVUnFpJBsW/hLnZl0fcFO47efA76JVFPA88LIx5h+BJpzhxGcGnPuGMWYj\nzuaJDwLroliLiIxzc8tyAHhzz3FCoVAkpO5dVU5K8kg+JiUaRrIf1N8ZY14GzlhrT4abf46z0+4V\nMcYUAG8PaHrLGBMA1uBMKd+GM5S4CXgq/JgncCZFWCAAPGat3XultYjIxKaQij8j/V89FXg4HCj1\nwK+ttb1X+ubhwBtsBt6T4a8Ln+MHRmUGoYjIQAqp+DKSaeZfxenJXIOzSOz1wE5jzH1Rrk1EJObm\nluXomlScGMmfBI8C11trD/Y3GGOuBn5B+P4oEZHxRD2p+DCSWXyJA8MJwFq7j+jO4hMRcZV6Uu4b\nSUD5jTFXDWwwxswFrvgalIhIPFNIuWskfdW/B3YZY94ATuFM7V4LfDWahYmIxAMN97ln2B6UtfZZ\nYDnwMc6q5h8By621L0a5NhGRuKCelDuGjf/wKhIHdK+RiExk6knF3qA9KGPMVGPM20Ar0GGMecEY\nkxm70kRE4ot6UrE11BDfP+KsezcXuA5n99rHYlGUiEi8UkjFzlABtRD4P6zjE+CPcJYgEhGZ0BRS\nsTFUQPVZa4P9B9baDka+NJKIyLh2yZDaVkmPduYdNUMFVChmVYiIjEEXhdTZLl7bXoU/EBzmmTIS\nQ/WIsowx93P+xoSZA9ustc9HszgRkXg3tyyHYCjElj3HAag73c7rO6q4a3kZPt9I1kKQwQwVUAHg\n8SHaQjh7M4mITGhXzczFH+hMoh0zAAAP3klEQVRj+946AGoa2ti0q4bbbpiO1xvNzcfHt0EDylo7\nI4Z1iIiMadfOnkKvP8iu/Q0AHKltJinRe96W8vLpqP8pIjJKFs8r4JqK/Mjx/qozvPNxHaGQLulf\nDgWUiMgo8Xg83HhtMXNn5ETaPjp0it0HTg7xLBmMAkpEZBR5PB5uub6E8mnZkbZdf2hg76FTLlY1\nNimgRERGmdfr4bYlpZQWnFsdbtveExyoOuNiVWOPAkpEJAp8Pi93Lp9BUW56pO3NPcc5UtvsYlVj\niwJKRCRKEhN83HVjGfnZqQCEQiE2vneMYw2tLlc2NiigRESiKCUpgc+snEl2ZjIAwWCI19+tpu50\nu8uVxT8FlIhIlKWlJPLZVeVkpiUBEOgL8ur2KhrPdrpcWXxTQImIxEBGWhL3rionLSURgF5/Hxu2\nHeVsa7fLlcUvBZSISIxkZyZzz8qZJCf5AOjqCbB+ayWtHb0uVxafFFAiIjGUl53KZ26cSWKC8/Hb\n3uVn/dZKOrr8LlcWfxRQIiIxVpibzrrlZfjCC8m2tPfwG214eBEFlIiIC0oKMrlj2Qy84YVkm1q7\n2bD9KP6ANjzsp4ASEXFJWfEk1iw+t9r5yTOdvLHjGMGgFpcFBZSIiKvM9BxWXTs1cnysoZW3Pjiu\nFdBRQImIuG5+RR6L5hZEjvdXndEK6CigRETiwg1XFTJn+rltOnb9oYH9VU0uVuS+obZ8j1vGmNXA\nD4EM4BjwVWttrbtViYhcPo/Hwy2LSujs9lNzsg2At/bUkp6SyPSiLJerc8eY60EZY9KBZ4GvWWtn\nAxuAn7pblYjIlfN5PdyxbEZkcdlgKMQbO6ppPDMxl0QacwEFrAaOWms/CB8/DdxmjMkc4jkiImNC\nUqKPu2+cSVa6s26fvy/Ihu1HaWnvcbmy2BuLATUbqOw/sNa2A01AhWsViYiMovTURD5z40xSkpyr\nMF09ATZsO0pn98RabWIsBlQacOHqil1A+iUeKyIyJk3OSuGuFWUk+JyP6eb2Hl57pwp/IOhyZbEz\nFgOqA0i5oC0N0OYqIjKuFOWls3ZJ6Xk38m58b+LcyDsWA+ogA4bzjDGTgMnAYdcqEhGJkvJp2ay8\ntjhyXFXXwtYPayfEjbxjMaC2ANONMTeGj78FvGqt7XCxJhGRqFlQkc91ZkrkeN/RJvYcbHSxotgY\ncwFlre0CHgT+hzHmCLAU+DN3qxIRia5l84swpZMjxzv31XPw2BkXK4q+MXmjrrX2LeAat+sQEYkV\nj8fD6kUldHQHqG10buR9c/dx0pITKC0cnzfyjrkelIjIROXzeblz+QzyBtzI+/qOak6d7XK3sChR\nQImIjCHJ4Rt5M1ITAfAHnBt5x+O28QooEZExJiM1kc+snElykg+Azm4/G7YdHXc78iqgRETGoNxJ\nqedtG3+2rZvX3qki0Dd+buRVQImIjFFT8zO4dUlp5Li+qYPNu2vGzT1SCigRkTFsVslkbrzm3I28\nh483s3v/+NjsUAElIjLGXTt7Cgsq8iLHu/Y3cKjmrIsVjQ4FlIjIOHDjNVMpLTy369Dm3TU0NI3t\nBXYUUCIi44DX6+H2pTPIyXLW0u4Lhvjtu9W0dY7d6ecKKBGRcSI50cddK8oi+0h1dvvDW3T0uVzZ\n5VFAiYiMI5Myklm3fAbe8PTz081dbHyvZkxu0aGAEhEZZ4rzM7jlupLIcVVdCzv21btY0eVRQImI\njENzy3JYOGCLjg9tIweqxtbq5wooEZFxatnVRZQVT4ocb/ngOCdOjZ3NxxVQIiLjlNfr4bYbSs+t\nfh4M8fq71bS097hc2cgooERExrHEBGdmX1qKs/p5d2+AV7dX0d0b/wvLKqBERMa5zLQk1i2fcd7C\nsht3Hov7mX0KKBGRCaAwN501i88tLFtzso3te0+4WNHwFFAiIhPE7NLJLJlXGDn++MhpPjly2sWK\nhqaAEhGZQBbPK2BWSXbkeNtHJzh+ss3FigangBIRmUA8Hg9rFpdSkJMGQDAU4o0d1Zxt7Xa3sEtQ\nQImITDAJPi/rlpeRkerM7Ovx9/HqO1Vxt2W8AkpEZAJKT03krhUzSfQ5MdDS3sNv362mL462jFdA\niYhMUPmTU8/bMr7udDtvf1gbN1vGK6BERCaw8mnZLJtfFDneX3WGfZVNLlZ0jgJKRGSCu85MYc70\nyZHjbR+doC4O1uxTQImITHAej4ebry9hyuRzM/te31FNu8u78SqgREQkPLNvBqnJzm68XT0Bfvtu\nNQEXJ00ooEREBICMtCTuXDYDr8dZs6/xbCdv7XFv0oQCSkREIorzM7jx2uLI8cFjZ/ik0p3lkBRQ\nIiJynvnlecydkRM53v5RnSsbHSqgRETkPB6Ph5uum3bRckhtMZ40oYASEZGLJPi83Lns/EkTr8d4\n0kRCzN7pEowxicAPgG8DJdba2gHnHgUexgnRbcDXrbW9xpgk4CfAKqAPeMpa+2TMixcRGef6J028\n8nYlwVAoPGniOGsWl+IJT6SIJrd7UOuBiwY2jTFLgUeAZcAcIBv4Zvj0t4GccPsNwKPGmEUxqVZE\nZIIpzs9g5bVTI8cHj53l48OxmTThdkD9rbX2+5dovx94zlrbbK0NAU+H2/rP/bO1NmitbQVeHHBO\nRERG2dXlucwrOzdp4p2P66htjP4eUq4GlLV2xyCnZgOVA44rcXpMw50TEZFR5vF4WLXw/EkTv9t5\njNaO6E6acLsHNZg0YODuWV1A+gjOiYhIFCT4vNy5vIy0FGcPqa6eAK/vqIrqpImoT5IwxnweePwS\np/7eWvuvgzytA0gZcJzGuWtVQ50TEZEoyUhN5M5lM/j120cIBkOcOtvFlvePc+uS6EyaiHpAWWtf\nBl7+lE87CFQMOJ4F7L/g3OFLnBMRkSgqyktn1bVTeesDZ9K1rTlLSWEmc6bnDPPMTy9eh/ieB75o\njCkwxiTgzOh7ZsC5bxhjfMaYIuBB4DmX6hQRmXCumpnLvLLcyPGJxugMYrl2H5QxpgB4e0DTW8aY\nALDGWvu+MeaHOPc/eYBNwFPhxz2BMynCAgHgMWvt3thVLiIysXk8Hm5aOJVEn5fTLV1cMys/Ku/j\nWkBZa08yxOy78M23F92Aa631A1+LYmkiIjIMn8/LyoVTh3/gFYjXIT4REZngFFAiIhKXFFAiIhKX\nFFAiIhKXFFAiIhKXFFAiIhKXFFAiIhKXXN2wMEZ8AA0NDW7XISIiFxjw2ey78NxECKgigIceesjt\nOkREZHBFnL+V0oQIqN3ASqAeZ4t4ERGJHz6ccNp94QlPKBSKfTkiIiLD0CQJERGJSwooERGJSwoo\nERGJSwooERGJSxNhFt8VMcasBn4IZADHgK9aa2vdrSr2jDH3AI8ByUAT8KfW2n3uVuUOY8xdwKtA\nmbW22uVyYs4YUwz8HJgFtAJ/bq3d6m5VsWWM+Srwf+FsqFoL/Jm19pC7VUWfMSYR+AHwbaCk/7PQ\nGPMo8DBOp2cb8HVrbe+Vvp96UEMwxqQDzwJfs9bOBjYAP3W3qtgzxkzF+UD6krV2LvDvwP90typ3\nGGPScH5Bz7hdi4t+DrxurZ0BPAL8ubvlxJYxZg7w/wJrw78PLwFPu1tVzKwHztvf3RizFOe/g2U4\nm9BmA98cjTdTQA1tNXDUWvtB+Php4DZjTKaLNbnBD3zRWrs/fLwduMrFetz0N8AvgTaX63CFMaYE\nuB74MYC1dou19j+4W1XMzQMOW2tPhI/fBK52sZ5Y+ltr7fcvaLsfeM5a22ytDeF8Tt4/Gm+mgBra\nbAbc2WytbccZ3qpwrSIXWGsbrbVvDGi6E3jPrXrcYoyZD6wF/sntWlx0DVAF/MAYY40xbxtjFrpd\nVIztBMqNMVcbYzzAfcAml2uKCWvtjks0n/c5Gf55zmi8nwJqaGlA9wVtXUC6C7XEBWPMGuBb4a8J\nI/xB9FPgG9Zav9v1uCgbmA9stdYa4H8BLxtjJsz1bGttHfBd4COcod4/A/6zq0W568LPyVH7jFRA\nDa0DSLmgLY0LxmAnCmPMZ4GfAXcPGO6bKP4E2G+t3e52IS5rAU5aa9eHj/8FyMH5K3pCCPcY/wqY\naa2djBNOvwn/ETMRXfg5OWqfkQqooR1kwHCeMWYSMBk47FpFLjHG3Ao8AdxmrX3f7XpccC9wrzGm\nwRjTAJQAu40xt7hcV6wdAzKNMV6A8DWHIBNrncs1wLvW2prw8XM416Xy3CvJVed9TuLM7hyVP2AV\nUEPbAkw3xtwYPv4W8Kq1tsPFmmIuPHPt34DPW2sPuF2PG6y166y1U6y1hdbaQuA4sNhau8Xt2mLs\nE6AO+BqAMeZ+4CwXrEI9zllguTEmN3y8DmgATrtXkqueB75ojCkID/U+AjwzGi+sxWKHYYy5Gafn\nkA4cAf6TtXZCbS5ljPkiTkBVX3DqJmvtydhX5D5jTDVw8wS9D2oezlBvHtCIcw/QHleLijFjzN8A\nXwJCOPeCfWu8D/8aYwqAt/sPcf4oCeD0KO/Dud3AgzNh5JvW2sCVvqcCSkRE4pKG+EREJC4poERE\nJC4poEREJC4poEREJC4poEREJC4poEREJC5NmPWzRGLFGPMLYEn4sAhnpYX++8XeBb4HbAZutNZG\n9eZOY8wU4B2crVJ2D/KYB4BHce5ru+I9fERGi+6DEokiY8zPgG5r7Z+69P4bgc3W2v8+zON+Bpyx\n1n47JoWJjIB6UCIxZoyZgbNlRRHOIptVwJdxejFlwD8AR4HvANOBp621/zn83KtwVjYpBRKB/89a\n+98GeZ9bcVYevzd8bIB/BqaEn7sX+BNrbRPwX4D9xpgfW2urRv9fLfLp6RqUSHyosNYuAr4C/Fdg\nvrV2Mc7eW/+3MabQGJOKs4zMa+EdnhcCDxpj/uMgr/ll4NfW2q7w8d8Cb4V3gZ0FHMDZ34rwwqe7\ngQei888T+fQUUCLxoX9xzY9wRjaeG3DswVk9fSXOmpBPAFhrm4F/BR4a5DVvxNn9uF8dcGe4Z5Vq\nrf1ra+2zA85vD7+HSFzQEJ9IfGgJf+/ftqIVwFrb54zM4QNygVScobj+5yXhrKR9KYUXnPsLnBX5\nHwfmGmNexdmAsf8xDeHniMQFBZTI2FELtFtrL2s7bWttD/ADnO3aC3B6X4/jDCuKxB0N8YmMHe8B\nLcaY/x3AGOMzxjxmjHlwkMef1yMyxvzWGLMaILxNyoV7e13Y4xJxlQJKZIwI36N0N/AlY4zFCZiZ\nwO8Gecp2YMWA48eBx40x1hhzAJiDs115vxXAtlEvXOQy6T4okXHKGLMWZ2PBcmtt9zCPnYazdfd8\nTTOXeKEelMg4Za3dhNPL+rMRPPz7wL8onCSeKKBExreHgIeNMdcP9gBjzBeAq3Fm+YnEDQ3xiYhI\nXFIPSkRE4pICSkRE4pICSkRE4pICSkRE4pICSkRE4pICSkRE4tL/D26Ldrs9FDoKAAAAAElFTkSu\nQmCC\n", "text/plain": [ - "" + "" ] }, "metadata": { @@ -625,7 +595,7 @@ "metadata": { "id": "4H69FUJuyVKz", "colab_type": "code", - "outputId": "905c4c94-4e61-4c53-8fec-a1ed07caa39b", + "outputId": "3f3f99e4-f18e-41fe-abf7-4199fc90ce44", "colab": { "base_uri": "https://localhost:8080/", "height": 34 @@ -635,7 +605,7 @@ "source": [ "sqrt(2 * init.y / g)" ], - "execution_count": 15, + "execution_count": 47, "outputs": [ { "output_type": "execute_result", @@ -651,7 +621,7 @@ "metadata": { "tags": [] }, - "execution_count": 15 + "execution_count": 47 } ] }, @@ -710,7 +680,7 @@ "metadata": { "id": "sZcqDq-NyVK-", "colab_type": "code", - "outputId": "d9b8b525-f94c-4ed0-8788-0c93864725b1", + "outputId": "41ddce9c-82a0-4e9f-bc3f-c52ea16f1d92", "colab": { "base_uri": "https://localhost:8080/", "height": 297 @@ -721,7 +691,7 @@ "results, details = run_ode_solver(system, slope_func, events=event_func)\n", "details" ], - "execution_count": 17, + "execution_count": 49, "outputs": [ { "output_type": "execute_result", @@ -800,7 +770,7 @@ "metadata": { "tags": [] }, - "execution_count": 17 + "execution_count": 49 } ] }, @@ -820,7 +790,7 @@ "metadata": { "id": "o9Y5FnMfyVLC", "colab_type": "code", - "outputId": "4891e873-da1e-4663-d472-0de9ee0354b2", + "outputId": "7f517f94-2b68-4df5-851b-289c5e007247", "colab": { "base_uri": "https://localhost:8080/", "height": 266 @@ -830,7 +800,7 @@ "source": [ "results" ], - "execution_count": 18, + "execution_count": 50, "outputs": [ { "output_type": "execute_result", @@ -912,7 +882,7 @@ "metadata": { "tags": [] }, - "execution_count": 18 + "execution_count": 50 } ] }, @@ -957,7 +927,7 @@ "metadata": { "id": "Joo1jSYLyVLL", "colab_type": "code", - "outputId": "5247461f-7677-442d-fe32-99d272ddd130", + "outputId": "7ed99de8-9300-4617-b4e0-c75de47fae45", "colab": { "base_uri": "https://localhost:8080/", "height": 34 @@ -967,7 +937,7 @@ "source": [ "details.t_events[0][0] * s" ], - "execution_count": 20, + "execution_count": 52, "outputs": [ { "output_type": "execute_result", @@ -983,7 +953,7 @@ "metadata": { "tags": [] }, - "execution_count": 20 + "execution_count": 52 } ] }, @@ -1026,7 +996,7 @@ "metadata": { "id": "3SASlJsryVLV", "colab_type": "code", - "outputId": "41a236f5-3b75-42f6-fdcc-8955c931e947", + "outputId": "fcc90d50-6e6a-4e7b-ec79-537c7b52e1f7", "colab": { "base_uri": "https://localhost:8080/", "height": 34 @@ -1038,7 +1008,7 @@ "h = UNITS.hour\n", "v_sidewalk.to(km / h)" ], - "execution_count": 22, + "execution_count": 54, "outputs": [ { "output_type": "execute_result", @@ -1054,7 +1024,7 @@ "metadata": { "tags": [] }, - "execution_count": 22 + "execution_count": 54 } ] }, @@ -1267,7 +1237,8 @@ "cell_type": "code", "source": [ "def event_func(state, t, system):\n", - " r, v = state\n", + " print(state)\n", + " x, y, vx, vy = state\n", " return r - system.r_final" ], "execution_count": 0, @@ -1277,28 +1248,39 @@ "metadata": { "id": "oDu_ADwk7bMA", "colab_type": "code", - "outputId": "72e886f0-bd62-42eb-ef6e-b2073c8a6689", + "outputId": "708f4205-baa3-42d5-b2f1-71f5aa3aa126", "colab": { "base_uri": "https://localhost:8080/", - "height": 249 + "height": 333 } }, "cell_type": "code", "source": [ "event_func(init, 0, system)" ], - "execution_count": 121, + "execution_count": 66, "outputs": [ + { + "output_type": "stream", + "text": [ + "x 0.0 meter\n", + "y 149597870691.0 meter\n", + "vx 0.0 meter / second\n", + "vy 0.0 meter / second\n", + "dtype: object\n" + ], + "name": "stdout" + }, { "output_type": "error", - "ename": "ValueError", + "ename": "NameError", "evalue": "ignored", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mevent_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minit\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m\u001b[0m in \u001b[0;36mevent_func\u001b[0;34m(state, t, system)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mevent_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mt\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mr_final\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: too many values to unpack (expected 2)" + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mevent_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minit\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m\u001b[0m in \u001b[0;36mevent_func\u001b[0;34m(state, t, system)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mr_final\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'r' is not defined" ] } ] @@ -1307,10 +1289,10 @@ "metadata": { "id": "0PSP5uH6yVL4", "colab_type": "code", - "outputId": "70728366-1d70-4e53-d721-af333aeab598", + "outputId": "2f274108-86fd-4d0f-db33-9fcd9a1879fd", "colab": { "base_uri": "https://localhost:8080/", - "height": 430 + "height": 331 } }, "cell_type": "code", @@ -1323,7 +1305,7 @@ " xlabel='Time (days)',\n", " ylabel='Distance from sun (thousand miles)')" ], - "execution_count": 125, + "execution_count": 67, "outputs": [ { "output_type": "stream", @@ -1336,9 +1318,9 @@ { "output_type": "display_data", "data": { - "image/png": "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\n", + "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": { @@ -1351,10 +1333,10 @@ "metadata": { "id": "ZBi2VbR7yVL_", "colab_type": "code", - "outputId": "2a8e2021-acfd-4ef1-a83b-d380dcc6e227", + "outputId": "348bc2da-d0e9-48af-ebee-8515b7a426e6", "colab": { "base_uri": "https://localhost:8080/", - "height": 396 + "height": 297 } }, "cell_type": "code", @@ -1364,14 +1346,14 @@ " xlabel='Time (days)',\n", " ylabel='Velocity (m/s)')" ], - "execution_count": 126, + "execution_count": 65, "outputs": [ { "output_type": "display_data", "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAF7CAYAAAAaI2s4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3XlcVXXi//HXBWXXVERFATfKzLRM\nUdOm3PJyCRdGTU1bLGt+lTVmfctSc1KbaUpNs5mxskYdmxm3zFIWk/bURNvUMldwAXfDhQsI3N8f\nZ+5lu4CgXO6V9/PxuA/uPefc8/l4snj3WU02m82GiIiIiIfwqukKiIiIiFSGwouIiIh4FIUXERER\n8SgKLyIiIuJRFF5ERETEoyi8iIiIiEdReBERtzZ//nx+//vfu7zcvn378u677172fT788EO6d+9+\nBWokInYKLyJSJX379qVDhw507Nix1GvatGlVvu/Zs2d5//33q/TdrVu30q5dO/bt2+f0/EsvvcTA\ngQOrXLeqGDJkCN9++63j84YNG9i7d69L6yBytVF4EZEqmzhxItu3by/1eumll6p8z02bNvGf//yn\nSt/t2rUrkZGRrFixotS5nJwc1q5dy4gRI6pctyth3rx5Ci8il0nhRUSqjc1mY/78+fTt25fOnTtj\nNptZvXq14/z8+fO59957efHFF7n55ptZvXo1Tz31FHv37qVjx4589913jmtXrVpF79696dixIxMm\nTCA7O9tpmSNGjGDNmjXk5uYWO56UlMTFixcZPHgwAOfPn2fy5Mnccccd3HzzzYwcOZKffvrJ6T0L\nCgpYuHAhZrOZTp06YTabiwWkgoIC5s+fzx133MEtt9zC/fff72j9+eCDD+jcuTMAZrOZ3bt388wz\nz/Dwww9z7733lmqlSk5OpnPnzly4cOFSH7NIraPwIiLVZu3atSxevJh3332X7777jgkTJvDCCy9w\n4MABxzW7d+8mLCyMrVu3MmTIEB599FEiIyPZvn07t9xyCwBHjhwhNTWVxMREli9fzqeffsratWud\nljlkyBCysrJITk4udnzlypXExMRQr149AF544QUyMjJYtWoV3377Lbfddht/+MMfnIaiZcuW8e67\n7/Laa6/x3Xff8fTTTzNt2jRSUlIA+Ne//sUHH3zAe++9x+bNm2ndujXjx4+n5O4rSUlJAMyaNYt3\n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\neiu33norM2bMYOoV2KdAREREriLu2G3066+/0q5dOwYPHsxPP/3k9JpOnTpVW8VERETEjbnjbKOn\nnnqK+Ph47r77bqfnTSYTv/zyS7VVTERERNzYtm3GKyvLWKQuJaXmV9iNj48HYNeuXS6piIiIiHiI\nlBRYsgQuXDA+nz8PCxca710QYCqcKp2Xl8eCBQsoKCgAjIG8f//737l48WK1V05ERETcUEKC826j\nxESXFF9heJkxYwZffvmlI6z4+vqybds2ZsyYUe2VExERETeUkeH8eHq6S4qvMLx8++23LF682LEd\nQP369VmwYAFbtmyp9sqJiIiIGwoNdX68eXOXFF9heLl48SJ169Yt/iUvL7Kzs6utUiIiIuLGLBbn\nx6OjXVJ8hXsbde/enQkTJhAXF0e9evU4ffo0y5Yt4/bbb3dF/URERMTdREUZs4y2bzcG7QYFwbhx\nNT/byG7q1KnMnj2bqVOncubMGRo3bkx0dDQTJkxwRf1ERETEHXXtCrfcYrwPDHRZcIFLCC/+/v5M\nmTJFmy+KiIiIc+6ySJ3d+fPnmTt3Lp999hmnTp0iJCSE6OhoHn/8cfz8/FxRRxERERGHCsPLn//8\nZ44dO8bkyZNp0KABp0+f5v3332fWrFlqjREREamt3HFvI7sff/yRDz/8sNiMo9/97nfExcVVa8VE\nRETEQ7i426jCqdL5+fmlpkr7+vpic3FFRUREROASwkvLli2ZO3cuF/63f8H58+eZN28eERER1V45\nERER8QDuNmB3ypQpTJgwgbfeeos6deqQl5dHx44dmTNnjivqJyIiIu7Ince8hIeHs2rVKo4cOcLJ\nkycJCQmhuYuW/xUREREpqczwEh8f7/T4kSNH+OGHHwCIiYmpnlqJiIiIe9u2zXhlZUH9+pCSUvMr\n7M6aNavcL5pMJoUXERGR2iglBRYtMrYGADh/HhYuNN67IMCUGV4+/fTTai9cREREPFBCgvPjiYku\nCS8VzjYCOHToEG+//bajNWbPnj3VWikRERFxYxkZzo+np7uk+ArDyxdffMHgwYP56aefWLduHQAL\nFy7kb3/7W7VXTkRERNxQaKjz4y6a0FNheHn11VdZvnw5b775pmMvoylTpjiCjIiIiNQyFovz49HR\nLim+wqnSeXl5REZGAsYgXYB69eo53ouIiEgtExUFubnw44/GoN2gIBg3ruZnG9n5+/vz008/0alT\n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\n/16cPXuW3bt307VrV5KSkhg0aBDjx4+vNc9C4aWGBQQEkJOTU+xYdna2o2m4tvL39y82yMxqtRIQ\nEFCDNXKdDRs2MGnSJBYsWEBkZGStfhb3338/mzdv5v7772fkyJF4eXnVumexbNkyIiMj6dq1a7Hj\n/v7+xf7bURueRcOGDXnxxRcJCwvDy8uLsWPHcvLkSby9vWvd34t69eoRHBxM//79ARg+fDiZmZm1\n5lkovNSwNm3aFOsiOnfuHJmZmU43oqpN2rRpQ1pamuNzWlqaYyzI1Wzjxo28/PLLvPfee3Ts2BGo\nnc9i3759bNy4EQCTyURsbCwXLlzAZDLVumeRnJxMcnIyvXr1olevXmRkZDBs2DBOnDhR655FZmYm\nhw4dKnasoKAAf3//WvcsmjdvzoULFygoKACMf0+8vLxqzbNQeKlh3bt3Jz09na1btwLGFLc+ffpc\nlUm5MiwWC+vWrePkyZPk5eWxZMkS7rrrrpquVrWyWq08//zzzJ8/n7Zt2zqO18Zncfr0aZ599lmO\nHTsGwLZt27h48SKPPvporXsW77zzDps2beKbb77hm2++ITQ0lJUrV/KnP/2J5cuXk5WVxYULF1i+\nfPlV/yy2b9/O/fffz+nTpwFYvnw5oaGhPPLII7Xu70W7du1o0qQJK1asACAhIYH69evz//7f/6sV\nz6JOTVegtvPz82POnDlMnz4dq9VKREQEr7zySk1Xy2VOnjzpGC0PcO+99+Lt7c3ixYt58MEHGT16\nNDabjZ49ezJq1KgarGn1S05O5vTp0zzzzDPFji9durTWPYuoqCgeffRRxo4dS0FBAT4+Prz++utE\nRUXVumdRlujoaHbu3MmQIUMcrVN9+/at6WpVq9tuu4177rmHUaNGYTKZaNq0qSPs17a/FyaTiTfe\neINJkybx9ttvExwczLx587jxxhtrxbPQrtIiIiLiUdRtJCIiIh5F4UVEREQ8isKLiIiIeBSFFxER\nEfEoCi8iIiLiURReRERExKMovIhItXn22WeJjo4mOjqaLl26EBUV5fj8/PPPc+zYMaKjox2LjlWn\nU6dOMWDAAH766adS5w4fPky7du04ceLEFS83NTWVvn37lloZVkSqTuu8iIhLTJo0CR8fH6ZPn14j\n5T/44IP06NGDRx55pNS5w4cP069fP77++mtCQkKueNkffPABS5cuZeXKlXh56f8ZRS6X/i0SkRpT\ntMXD/n7NmjX8/ve/p3v37ixYsIB169YxdOhQbr31VmbNmuX47p49e3jggQcwm8307duXBQsWlFnO\nxo0b2b17N/fddx8A58+f56mnnuKOO+7g97//PZ999lmx6zds2MCQIUOwWCzceeedLF++HIDZs2fz\n0EMPFbv2lVde4amnnp8GKloAAARESURBVMJqtfL0009jNpuJjo5mxIgR7NixA4AhQ4aQnZ3N2rVr\nr8hzE6ntFF5ExK0cPHiQDz74gL/+9a/Mnz+f3bt3s2rVKt555x0WLlzIiRMnyM7OZuzYsfTu3Zuk\npCQ+/PBD1q1bx+rVq53ec82aNfTv3x8/Pz8A/vnPf5Kens4nn3zCihUrinUl2YPNlClTSEhIYPr0\n6UybNo1jx44xdOhQNm3aRHp6OmBsChgfH09cXBwffPABx48fJyEhgcTERB544AESExMB8PLyIiYm\nhjVr1lTz0xOpHRReRMSt2DeRa9++PXl5eVgsFsdnm81GRkYGW7duxWq1OlpS6tevz7Bhw/j444+d\n3nPbtm106dLF8fmbb77hrrvuwsfHB29vb0aOHOk4FxQUxNatW+natStgbJ5qMpk4ePAgrVq1onPn\nznzwwQcAbNmyBZvNRq9evWjatCl79+4lPj6e06dPY7FYiu1T1aVLF7Zt23YFn5RI7aWNGUXErdSr\nVw/AMTYkKCgIAG9vb8Bo7fjtt9/IyckhJibG8b2LFy+WOV7l5MmTNG7c2PH5zJkzXHPNNY7PjRo1\ncry32Wz885//JD4+npycHEwmEwUFBRQUFAAwbNgw5s+fz+OPP866desYPHgw3t7e9O/fn9zcXJYt\nW8bkyZNp3749zz//PDfddBMAjRs3xmq1cv78ecefSUSqRuFFRDxOs2bNCAgIcHTLVFaDBg3IzMx0\nfD558qTj/erVq1myZAn//ve/adWqFbm5udx8882O89HR0cycOZONGzeSlJTEf/7zH8e5mJgYYmJi\nsFqtvP322/zxj3/k888/r1IdRaRs6jYSEY/TqVMngoKCWLlyJQD5+fnMmzePdevWOb2+cePGxQJK\nt27diI+PJzc3l/z8fP773/86zp07d47g4GAiIiIoKCjgnXfeoU6dOmRlZQHg7+9PTEwMU6dOpVWr\nVrRt2xaAN9980zFo2N/f39HiYnfy5En8/f3V6iJyBSi8iIjH8fHx4a233mLt2rWYzWZiYmI4dOgQ\nt912m9Pru3Tpwnfffef4/PDDDxMcHEz//v2Ji4sjKirKcW7QoEE0aNCAfv36MWzYMK6//npiY2N5\n4YUXHAN7hw0bxpEjR4iLi3N8b9iwYWzbto0777yTu+66i7/97W/FZkeVHHcjIlWndV5E5Kr3zTff\nMGnSJDZs2ICvr+9l3+/UqVPceeedfPHFF44xOuWx2WwMHDiQRx55hEGDBl12+SK1nVpeROSq16tX\nL9q2bcv7779/2fcqKCjgtddeY8SIEZcUXAA+/vhj6tatS2xs7GWXLyIKLyJSS8yaNYtly5Y5Fo6r\nik3/v507pgEoBqEoijf8VAymqqMmOtfCH/7yknN29ktI2Lu6u+69tdb6NHPOqZmpmfFdF37ibAQA\nRLEGAABRxAsAEEW8AABRxAsAEEW8AABRxAsAEOUB6TD5gfk8niQAAAAASUVORK5CYII=\n", + "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ - "" + "" ] }, "metadata": { @@ -1380,14 +1362,92 @@ } ] }, + { + "metadata": { + "id": "t_xp-0ER-O6t", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "AwVA_CYZ-O_u", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "wNRcyudo-PDq", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "uftDQ7GI-PJG", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "l4LgemZu-PRE", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "metadata": { + "id": "k1o3Wo4A-QNK", + "colab_type": "code", + "colab": {} + }, + "cell_type": "code", + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, { "metadata": { "id": "Ax8EsdFJypUT", "colab_type": "code", - "outputId": "fa75453a-e752-4b06-f229-f2fed36b8459", + "outputId": "57f2e86e-b569-47de-bb1d-38e2e28c8d35", "colab": { "base_uri": "https://localhost:8080/", - "height": 35 + "height": 34 } }, "cell_type": "code", From ed15545ab30a47ea721c82fa58a865b6b005683a Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 27 Nov 2018 21:45:38 -0500 Subject: [PATCH 49/61] full earth orbit ODE solver --- code/orbit_homework.ipynb | 1986 +++++++++---------------------------- 1 file changed, 493 insertions(+), 1493 deletions(-) diff --git a/code/orbit_homework.ipynb b/code/orbit_homework.ipynb index b79a87eb..f82aa10e 100644 --- a/code/orbit_homework.ipynb +++ b/code/orbit_homework.ipynb @@ -1,1502 +1,502 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "name": "orbit_homework.ipynb", - "version": "0.3.2", - "provenance": [], - "collapsed_sections": [] - }, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "qEb5Fl3ZyVJm" + }, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 20\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": 120, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Y1DkmasdyVJp" + }, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "EBbygIvbyVLj" + }, + "source": [ + "### Exercises\n", + "\n", + "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", + "\n", + "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", + "\n", + "Use `run_ode_solver` to answer this question.\n", + "\n", + "Here are some suggestions about how to proceed:\n", + "\n", + "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", + "\n", + "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", + "\n", + "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", + "\n", + "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", + "\n", + "\n", + "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "XcpC9qV2yVLl" + }, + "outputs": [], + "source": [ + "# units!\n", + "year = UNITS.year\n", + "s = UNITS.second\n", + "N = UNITS.newton\n", + "kg = UNITS.kilogram\n", + "m = UNITS.meter\n", + "AU = UNITS.astronomical_unit;" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Nq0vKaw0yVLn" + }, + "outputs": [], + "source": [ + "x_0 = (0 * AU).to_base_units()\n", + "y_0 = (1 * AU).to_base_units()\n", + "\n", + "vx_0 = 30330 * m / s\n", + "vy_0 = 0 * m / s\n", + "\n", + "init = State(x=x_0,\n", + " y=y_0,\n", + " vx=vx_0,\n", + " vy=vy_0)" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "2mYVqxxmyVLq" + }, + "outputs": [], + "source": [ + "system = System(init=init,\n", + " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", + " m_sun=1.99e30 * kg,\n", + " m_earth=5.972e24 * kg,\n", + " t_end=100e6 * s,\n", + " r_final=695.508e6 * m + 6.371e6 * m)" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "G4ijoX3dyVLt" + }, + "outputs": [], + "source": [ + "def universal_grav(state, system):\n", + " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", + " x, y, vx, vy = state\n", + " unpack(system)\n", + " \n", + " position = Vector(x, y)\n", + " \n", + " mag = G * m_sun * m_earth / position.mag ** 2\n", + " direction = -position.hat()\n", + " \n", + " force = direction * mag\n", + " \n", + " return force\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "0euiUJCfyVL0" + }, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " x, y, vx, vy = state\n", + " unpack(system)\n", + " \n", + " v = Vector(vx, vy)\n", + " force = universal_grav(state, system)\n", + " a = force / m_earth\n", + " \n", + " return vx, vy, a.x, a.y" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "yxNvIgrGyVL2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "30330.0 meter / second 0.0 meter / second -0.0 newton / kilogram -0.005934559038759181 newton / kilogram\n" + ] } + ], + "source": [ + "vx, vy, ax, ay = slope_func(init, 0, system)\n", + "print(vx, vy, ax, ay)" + ] }, - "cells": [ - { - "metadata": { - "id": "qEb5Fl3ZyVJm", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "# Modeling and Simulation in Python\n", - "\n", - "Chapter 20\n", - "\n", - "Copyright 2017 Allen Downey\n", - "\n", - "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" - ] - }, - { - "metadata": { - "id": "Y1DkmasdyVJp", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# Configure Jupyter so figures appear in the notebook\n", - "%matplotlib inline\n", - "\n", - "# Configure Jupyter to display the assigned value after an assignment\n", - "%config InteractiveShell.ast_node_interactivity='last_expr'\n", - "\n", - "# import functions from the modsim.py module\n", - "from modsim import *" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "YhjKHeXbyVJw", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "### Dropping pennies\n", - "\n", - "I'll start by getting the units we need from Pint." - ] - }, - { - "metadata": { - "id": "yZvaYdo-yVJy", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "m = UNITS.meter\n", - "s = UNITS.second" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "G257AdQMyVJ5", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And defining the initial state." - ] - }, - { - "metadata": { - "scrolled": true, - "id": "NzjWz6nEyVJ6", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "init = State(y=381 * m, \n", - " v=0 * m/s)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "VJJ7M7ChyVJ_", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Acceleration due to gravity is about 9.8 m / s$^2$." - ] - }, - { - "metadata": { - "id": "BNeJIDtRyVKB", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "g = 9.8 * m/s**2" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "1Z01dyaUyVKF", - "colab_type": "text" - }, - "cell_type": "markdown", - "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." - ] - }, - { - "metadata": { - "id": "o5DYstWPyVKG", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "t_end = 10 * s" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "Qzcm9FvnyVKL", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Now we make a `System` object." - ] - }, - { - "metadata": { - "id": "pOd97xheyVKM", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "system = System(init=init, g=g, t_end=t_end)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "6OgQg4whyVKR", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And define the slope function." - ] - }, - { - "metadata": { - "id": "xV5pPoFwyVKS", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "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 vw\n", - " \"\"\"\n", - " y, v = state\n", - " unpack(system) \n", - "\n", - " dydt = v\n", - " dvdt = -g\n", - " \n", - " return dydt, dvdt" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "SML_yjleyVKV", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "It's always a good idea to test the slope function with the initial conditions." - ] - }, - { - "metadata": { - "id": "h_2rqVXZyVKV", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "dydt, dvdt = slope_func(init, 0, system)\n", - "print(dydt)\n", - "print(dvdt)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "OAEFeuz8yVKb", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Now we're ready to call `run_ode_solver`" - ] - }, - { - "metadata": { - "id": "m-vjelT6yVKb", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "results, details = run_ode_solver(system, slope_func, max_step=0.5*s)\n", - "details.message" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "97cTwQ9jyVKi", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Here are the results:" - ] - }, - { - "metadata": { - "id": "LeO7a_65yVKi", - "colab_type": "code", - "outputId": "90da9df0-9126-4aba-8cd4-3b12b6dba298", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 824 - } - }, - "cell_type": "code", - "source": [ - "results" - ], - "execution_count": 43, - "outputs": [ - { - "output_type": "execute_result", - "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", - "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
0.613367379.156526-6.010997
1.113367374.926028-10.910997
1.613367368.245529-15.810997
2.113367359.115031-20.710997
2.613367347.534532-25.610997
3.113367333.504034-30.510997
3.613367317.023535-35.410997
4.113367298.093036-40.310997
4.613367276.712538-45.210997
5.113367252.882039-50.110997
5.613367226.601541-55.010997
6.113367197.871042-59.910997
6.613367166.690544-64.810997
7.113367133.060045-69.710997
7.61336796.979547-74.610997
8.11336758.449048-79.510997
8.61336717.468550-84.410997
9.113367-25.961949-89.310997
9.613367-71.842448-94.210997
10.000000-109.000000-98.000000
\n", - "
" - ], - "text/plain": [ - " y v\n", - "0.000000 381.000000 0.000000\n", - "0.000102 381.000000 -0.001000\n", - "0.001122 380.999994 -0.011000\n", - "0.011327 380.999371 -0.111000\n", - "0.113367 380.937025 -1.110997\n", - "0.613367 379.156526 -6.010997\n", - "1.113367 374.926028 -10.910997\n", - "1.613367 368.245529 -15.810997\n", - "2.113367 359.115031 -20.710997\n", - "2.613367 347.534532 -25.610997\n", - "3.113367 333.504034 -30.510997\n", - "3.613367 317.023535 -35.410997\n", - "4.113367 298.093036 -40.310997\n", - "4.613367 276.712538 -45.210997\n", - "5.113367 252.882039 -50.110997\n", - "5.613367 226.601541 -55.010997\n", - "6.113367 197.871042 -59.910997\n", - "6.613367 166.690544 -64.810997\n", - "7.113367 133.060045 -69.710997\n", - "7.613367 96.979547 -74.610997\n", - "8.113367 58.449048 -79.510997\n", - "8.613367 17.468550 -84.410997\n", - "9.113367 -25.961949 -89.310997\n", - "9.613367 -71.842448 -94.210997\n", - "10.000000 -109.000000 -98.000000" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 43 - } - ] - }, - { - "metadata": { - "id": "H_aflXa3yVKn", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And here's position as a function of time:" - ] - }, - { - "metadata": { - "id": "mWM2oxpmyVKn", - "colab_type": "code", - "outputId": "28aaa7a3-4b60-470d-ec21-d991be4e09c4", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 297 - } - }, - "cell_type": "code", - "source": [ - "def plot_position(results):\n", - " plot(results.y, label='y')\n", - " decorate(xlabel='Time (s)',\n", - " ylabel='Position (m)')\n", - "\n", - "plot_position(results)" - ], - "execution_count": 44, - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xl8lNed5/tPVWnfEFrQAhIICQ5g\ng40NmMVgG4wX7NhJHI+d+CYzuZ1u9013Yie59/Z0ujPpcd+ezvimu2PnNXGmb7c7y6S9OybYsQPB\n2IANBmMbmwAHEBJCSEIg0L5Vqer+8ZQKsWgxqOopSd/366WX9Jynlh+JVV+d85znHE8oFEJERCTe\neN0uQERE5FIUUCIiEpcUUCIiEpcUUCIiEpcUUCIiEpcUUCIiEpcS3C6gnzHmLuBVoAw4Bvw98Dkg\nBPzaWvuX4cdlA08DVwO9wGPW2uddKVpERKLGEw/3QRlj0oD3gGLgemAp8ChwE05AvQ38g7X2RWPM\nT4Fua+2jxphpwAfAQmvtiUFeOxlYDNQDfVH/x4iIyKfhA4qA3dbanoEn4qUH9TfAL4Gvh4/vB37W\nX6wx5pfhthfD31cAWGtrjTFvAfcATw3y2ouBbdEqXERERsVKYPvABtcDyhgzH1gLLOFcQM0Gfjrg\nYZXAw8aYXCAnfDzw3Jwh3qIe4Fe/+hWFhYWjVbaIiIyChoYGHnroIQh/Vg/kakAZYzw4QfQNa63f\nGNN/Kg3oHvDQLiA93B601vovOJc/xNv0ARQWFjJt2rTRKl1EREbXRZdg3J7F9yfAfmvt9gvaO4CU\nAcdpQHu43WuMSbrEORERGUfcDqh7gXuNMQ3GmAagBNiNc8GsYsDjZuEE2RngFFB+4bkY1SsiIjHi\n6hCftXbdwGNjTDVwM7AI+CtjzC8AD05P67vhhz2PM8PvYWPMPJyZfl9HRETGFbd7UJdkrX0ReAP4\nCGca+UvW2g3h098F8o0xR3DC6o+stSfdqVRERKLF9Vl8A1lrZwz4+S+Bv7zEY1qBz8ewLBERcUFc\nBVQ8CoVC1Da209Leg8fjAcDr8ZCQ4CExwUdigpdEn5fERO95x16vx+XKRUTGNgXUMD4+fJptey+5\nSMWQfF4nwJISncBKSBgQYAleUpMSSE9LJCPV+UoPf/f54nLUVUQk5hRQw+jqDVzW8/qCIfp6A3T3\nfrrnpaWcH1gZ/SGWlhRpT1CIicgEoIAaxnVmCkmJPlrae3CWLQwRDIbw94UIBIL4A0H8gb7w9yD+\nPuf75a5x2Nntp7PbD2cHf0xqcgIZaYnkZKaQOymV3Ekp5E5KIT01MTIMKSIy1imghpGU6OM6M+VT\nPScUCtEXDNHrd4Ir0Bc8F2CBIL2BPjq7A3R0+Wnv8tPe2UtHl5+O7sCIgq2rJ0BXT4BTZ7sYmGRJ\niT5ys5ywypkUDq+sFFKS9X+ziIw9+uSKAo/HQ4LP86mH4oLBEJ3d/aHlp72rl/YuvxNknX7aOnvp\n7A4QHCTEev191Dd1UN/UcV57WkpipJeVm5VKzqQUcrKSSUzwXfa/UUQE4L777uOP//iPueOOOwDY\nsmULP/rRj1i/fv0Vv7YCKo54vR7nWlNaEuRe+jHBYIjOngCt7T00tXTT1NrNmZZumlq76Om99G4i\n/cOGx0+2Rdo8Hg85mckU5WdQnJdOcV66874iEvc+tI3s2t+APxCM2nskJnhZMq+QhcOMIN199928\n+uqrkYDatGkTd91116jUoIAaY7xeT2TmX3F+RqQ9FArR0R2gqaWLppZzoXW2tYdA38X/EYdCIZpa\nnYDbV3kagKz0JIpy0ynKS6c4P4PJmcm6piUShz46dCqq4QTgDwT56NCpYQNq3bp1/OhHP6KtrY20\ntDS2bNnC88+Pzh6yCqhxwuM5F1zTC7Mi7cFgiJaOnnBgdUfCq7m956LrXa0dvbR29GJrnOtaKUkJ\nFOWFAysvnfzJafh0f5eI666dnR+THtS1s4faKMJRUFDAggUL2LhxI6WlpUydOpWSkpJRqUEBNc55\nvR4mZ6YwOTPlvBV2/YE+Gpo6qT/dQd3pDk42deC/oKfV3Rugqq6FqroWABJ8Xgpz0yjOy6AoL53C\n3DRdxxJxwUIzZdieTSzdddddvPHGG0yfPp1169YN/4QRUkBNUIkJPkoKMikpyASc+7ZON3dRd6rd\nmWhxuoOunvPvAQv0BaltbKe20dndxOf1MDU/gxnFWcwomkRWuq5hiUxEd9xxB48//jgHDhzghRde\nGLXXVUAJ4IRNQU4aBTlpLMS5RnW2rYf60x3Un26n7nQHrR3n33XcFwxRc7KNmpNtbP3wBLmTUplR\nlEVZcRYFOWm6fiUyQWRnZ7N48WJaWlooKioatddVQMkleTwecrJSyMlK4aqZzpTC9s5e6k47vau6\nU+00tXaf9xxngkYXew6eJDU5gRlFWcwoyqK0MFNDgSLjXFFREatWrRrV11RAyYhlpCUxuzSJ2aWT\nAWjr7KW6rpWq+hZONLbTFzw36aKrJ8CB6jMcqD7jDAVOyaCsaBIzirPI1HR2kXGlurqarVu38p3v\nfGdUX1cBJZctMy2J+RV5zK/Iwx/oo6ahjer6VqrrW8+7ftUXDFHT0EZNQxtvfwh52f1DgZOYMjlV\nQ4EiY9gTTzzB+vXr+d73vkdmZuaovrbncteMGyuMMTOAqs2bNzNt2jS3y5kQQqEQJ890UlXnhFVT\nS9egj81KT8KUTsZMzyE7MzmGVYpIPKitrWXNmjUAZdba6oHn1IOSUefxeCjMTacwN51l84to7eil\nur6F6vrWi4YCWzt62X3gJLsPnKQwNx1TOplZJdlaP1BEFFASfVnpSSyoyGdBRT69/j6On2yjKnzt\nauDyTA1NHTQ0dbBt7wlmFGVhSiczoyhLe2SJTFAKKImppEQf5dOyKZ+WTaAvSHV9K/bYWY7Vt0YW\nwQ0GQxw90cLREy0kJ/mYNS0bMz2HwlxNXReZSBRQ4poEn5eKadlUTMumqyfAkePNHDx2hpNnOiOP\n6entY9/RJvYdbWJSRnL4etVkJmXoepXIeKeAkriQmpwQmRF4tq0be+wsh2rOnndzcEt7D7v2N7Br\nfwOFuenMmT6ZipJsUpL0n7HIeKTfbIk7kzNTWHp1ETdcVUj96Q5szVmOHG+mx3/x9arte+sw0yez\noCKP3EmpLlYtIqNNASVxy+PxUJyfQXF+BiuvnUp1XSv22BmONbRFrlcF+oL84WgTfzjaxNT8DBZU\n5FFWPAmvVl0XGfMUUDImJPi8VJRkU1GSTWe3nyO1zRyoOsOp5nP3WJ041c6JU+3ODcTlecwry9F0\ndZExTL+9MuakpSSyoCKf+eV51Dd18PHh0xw90RLpVbV19vLuJ3Xs2t/A7FJn+C8vW8N/ImONAkrG\nLI/HQ3FeBsV5GbR39vJJZRP7q5oiyywF+oLsr3LaNPwnMvYooGRcyEhLYtn8IhbPK+BwTTMfHzl1\nyeG/jNRE5lfkMa8sl1QN/4nENf2GyriS4PMytyyHOTMm09DUycdHTlFZe274r73Lz45P6tm9/ySz\nS7NZUJGv4T+ROKWAknHJ4/FQlJdOUV467Z297AvP9Dt/+O8M+6vOML0wi8XzCijMTXe5ahEZSAEl\n415GWhJLry5i0dwCjhxvZu+RU5w6e27471hDK8caWiktyGTRvAKK8zJcrFZE+imgZMJI8HmZMyMH\nM90Z/tt7+BSVJ1ro33Kmf/v6aVMyWDyvkOK8dK39J+IiBZRMOAOH/860drPnwEkOHW+OBFVtYzu1\njUcozstg8bwCpk3JUFCJuEABJRNaTlYKa2+YzuJ5hew5eBJ77GxkQkXd6XbWb22nMDedxfMKKC3I\nVFCJxJDrAWWMuQ/4HpACnAb+1Fq7zxjzKPAw4AW2AV+31vYaY5KAnwCrgD7gKWvtk+5UL+NFdmYy\naxaXsmhuAXsONnKw+kwkqBqaOtiw7ShTJqexeF4BM4qyFFQiMeDqTnDGmFLgp8C91to5wAvA08aY\npcAjwDJgDpANfDP8tG8DOeH2G4BHjTGLYl27jE+TMpJZvaiE/+3OuVxdnodvwE29jWc7ee2dKp7/\n/SEqa88NCYpIdLi9Vakf+JK19lj4eDNggPuB56y1zdbaEPB0uI3w93+21gatta3AiwPOiYyKrPQk\nbr5uGl++cy4LKs4PqlPNXby+o5pnNx3iyHEFlUi0uDrEZ62tB+oBjDEJwH8C1gOzgd8MeGglTo+J\n8LnKC86ti3atMjFlpCWxauE0rp9TwIeHGtlX2USgLwhAU0sXb+ysJi87lRULiikpyHS5WpHxxe0e\nFADGmEeAk8BK4C+ANKB7wEO6gP67KIc6JxIV6amJ3HjNVL6ybi7XmSkkJpz71Tnd3MX6rZVs2HaU\nppauIV5FRD6NuAgoa+0TQB7wI+BdIIgzaaJfGtAe/rljiHMiUZWWksjyBcV8Zd08rp9TQKLv3K/Q\nsYZWnt10iC17jtPZ7XexSpHxwe1JEnONMbcCWGtD1tpngCwgBFQMeOgsYH/454NDnBOJidTkBJbN\nL+KhO+cyrywnMqsvFArxh6NN/PL1A+za34A/0DfMK4nIYNzuQeUDvzDGFAMYY1YAicD/A3zRGFMQ\nvjb1CPBM+DnPA98wxviMMUXAg8BzsS9dBDJSE1m9qJQHbp1N6YBrUP5AkF1/aOBXbxzkQNUZgkFN\npBD5tFwNKGvtVuDvgN8bYw7i3N/0YLj9hzj3Px0ADgFPhZ/2BFAHWGAL8Ji1dm+saxcZKC87lXtW\nlfOZlTPJzTo3At3e5Wfz+zU8v/kQx0+2uVihyNjjGe9TZI0xM4CqzZs3M23aNLfLkQkgGAxx8NgZ\ndu5ruOhaVGlhJisWFJM7SVt8iADU1tayZs0agDJrbfXAc66vJCEy3ni9HuaV5TKrJJsPD53iw4ON\n+MNT02sa2jh+8hDzynJYMq+Q9NREl6sViV8KKJEoSUzwsWReIVeV5fLeHxo4UH2GUCgUmUhxqOYs\nC80UFs7OJzHB53a5InHH7UkSIuNeemoiqxeV8ODa2ZQWXnoixREtnSRyEQWUSIzkTkrlnpXl3LNy\n5nnXoNq7/Lyxo5pXt1fR0t7jXoEicUYBJRJjpYVZPHDrbFYvKiEt5dw1qGMNrTyz0fL+gZP0ha9Z\niUxkCigRF/RPpPjS7Yb55XmRG30DfUF27qvnud8fou6UFkiRiU0BJeKilKQEbrpuGl9YPYv87HPD\nfmdau3n5rSNs3l1DV0/AxQpF3KOAEokDBTlp3L9mNiuvmXreQrQHqs9EVqPQJAqZaBRQInHC6/Vw\nzex8Hrp9DuVTJ0Xau3sDbH6/hl+/VcmZ1u4hXkFkfFFAicSZjLQk7lxexl0ryshKT4q0151u59mN\nlh2f1OMPaBKFjH8KKJE4VVY8iS/eZrjOTMEbnkQRDIXYc/Akz2w8yLH6VpcrFIkuBZRIHEtM8LF8\nQTEPrJ1NUe65fTlbO3rZsP0or++opr1Le0/J+KSAEhkDciel8vlbKli9qISUpHMrlFXWNvPvvzvI\nvsrTmkQh444CSmSM8HjO3Ts1Z3pOpL3X38dbH9SyYftR9aZkXFFAiYwxaSmJ3LqklM/dXEF2ZnKk\nvaahjWc2HuRQzVn1pmRcUECJjFFT8zN4cK3h2tn5kZUoenr72PjeMd7YeeyivahExhoFlMgYluDz\ncuM1U/nsTeXnTUmvrG3mmY2WqroWF6sTuTIKKJFxoL83ddXM3EhbV0+A196p4ve7aujx97lYncjl\nUUCJjBNJiT5uub6Ez9w4k/QBq6QfPHaGZ353kOMn21ysTuTTU0CJjDPTi7L44m2GWSWTI23tXX7W\nb63k7Q9q8QfUm5KxQQElMg6lJCdw+9Lp3LF0xnn3TX1SeZrnNh2ioanDxepERkYBJTKOVZRk86Xb\nDWVFWZG25vYeXtpyhB2f1GljRIlrCiiRcS4tJZF1K8pYs6iUpEQfAKFQiD0HG3l+82FOne1yuUKR\nS1NAiUwAHo+HuWU5PLjWMG1KRqS9qaWLF948xPsHTurmXok7CiiRCSQrPYl7V5WzauFUEnzOr38w\nGGLnvnp+s+2obu6VuKKAEplgPB4PCyryeWDtbApy0iLtx0+28eymQ9Q2ajq6xAcFlMgENTkzhftu\nmcX1cwoibZ3dftZvPcqu/Q0EgxryE3cpoEQmMK/Xw7L5RXxm5UxSk53p6KFQiF1/aNCQn7hOASUi\nTC/M4oG1hqn55yZQ1Da28cxGqxUoxDUKKBEBICM1kXtXlbNkXmFkdfSungC/2XaUnfvqNeQnMZcw\n3AOMMcuALwMrgcJwcwOwDfiltXZH9MoTkVjyej0suaqQorx0Nu2qobPbTygU4v0DJ6k71cFtS6eT\nkZo4/AuJjIJBe1DGmEnGmJeA9UAK8E/Afwx//ROQDLxijHnZGJMdi2JFJDZKCjJ5cO1spk3JjLTV\nnW7nuU2WYw2tLlYmE8lQPaidwDPAV6y1l1q462ljTBrwLeAd4KrLKcAYcw/wGE7gNQF/aq3dZ4x5\nFHgYJ0S3AV+31vYaY5KAnwCrgD7gKWvtk5fz3iIyuLSURO5ZOZM9B0+ya79zI29XT4AN245y/Zwp\n3HBVEV6vx+0yZRwb6hrUH1lrHxsknACw1nZaa/8O+KPLeXNjzFTg58CXrLVzgX8H/qcxZinwCLAM\nmANkA98MP+3bQE64/QbgUWPMost5fxEZmtfrYfG8Qj57U/l5W3jsOdjIK28fob2z18XqZLwbtAdl\nrX0XwBiTDNwDlAK+Cx7zePj7zst8fz/wRWvt/vDxduC/AfcDz1lrm8M1PA18H/hh+NxfWWuDQKsx\n5sVw2/uXWYOIDGNqfgYPrJ3N73fVUBOe1Vd3uoNnNx1i7ZJSpg9YjFZktAw7SQJ4BVgIHMIZUusX\nAh6/kje31jYCbwxouhN4D5gN/GZAeyVOj4nwucoLzq27kjpEZHhpKYl8ZuVM9hxsZNcfGgiGQnT3\nBtiw/SgLzRSWXl2ET0N+MopGElALgDJrbVSXPDbGrMG5nrUa+DHQPeB0F5Ae/jltiHMiEkUej4dF\ncwsozk9n485jtHc5N/J+aBs5dbaT25fOiNzwK3KlRnIf1CEgEM0ijDGfBX4G3B0e7uvAmTnYLw1o\nD/881DkRiYHivAweWGuYXnhuaK+2sZ0XNh/idLO275DRMZI/db4D/MYY8xpw3vxSa+0vrrQAY8yt\nwBPAbdbaA+Hmg0DFgIfNAvZfcO7wJc6JSIykJidw941l7DnYyM599QC0dvTy0puHWbO4lIoS3X0i\nV2YkAfXXwE1AORdfg7qigApPU/834LMDwgngeeBlY8w/4kw9fwRnynv/uW8YYzYCU4AH0TUoEVf0\nD/nlTkph064aev19+PuCvLGzmuubC1h69blVKUQ+rZEE1AqgxFrbFIX3vxfIB35ljBnYfhPOjL1t\ngAfYBDwVPvcEzoQJizP0+Ji1dm8UahORESornsQXVs/it+9U0dzeA8Cegyc509LFrTdMJznRN8wr\niFxsJAG1H2iOxptba5/hXM/oQk+Gvy58jh/4WjTqEZHLl5OVwhfWzGLje8eoaXCmolfVt/LC5kPc\ntaKMyZkpw7yCyPlGElDrgVeNMS8DLQNPWGufj0pVIjImpSQlcPeKmezcV88HthGA5rYeXth8mNtv\nmK77peRTGUlAPRL+/t0L2kM414NERCK8Xg/LFxSTl53Km+8fJ9AXpNffx6vvVLH06kKuM1N0XUpG\nZNCAMsYkWGsD1tqy4V7EGOOz1vYN9zgRmThml05mcmYKv323irbOXkKhEDs+qed0cxerF5WQmKDr\nUjK0oe6D2mqMKRnuBYwxxcBbo1aRiIwb+ZNTuX/NLIrzzm2EePh4My9tOUJrh9bxk6ENFVBPAh8Z\nY/7xUouxGmOuN8b8A7AX+B/RKlBExra0lETuvamc+eV5kbbTzV28sPkQJ07pHnsZ3FCLxT5rjNkN\n/A1ObwqgMXx6Cs41qJeBZdbaI1GuU0TGMJ/Xw03XTSMvO5W3P6wlGHS27lj/diU3XlvM/PI8XZeS\niww5ScJaWwl82Rjzx8Aizt9R931rbfegTxYRucBVM3PJyUrh9R3VdHb7CYZCbP3wBKebu7hp4TR8\nvpGsviYTxYhWdQwH0fYo1yIiE0BRXjr/Yc0sXt9RzckznQDsrzpDc1sP65aXkaLFZiVMf66ISMxl\npCXxuZsrmDN9cqSt7nQHL245TEt4JQoRBZSIuCLB52XN4lKWLyiOtDW39fDim4cjPSuZ2BRQIuIa\nj8fDdWYKdyybEdnssKsnwK/fOkJVXcswz5bxbkSDveH7oS615fvWaBQlIhNLxbRs0lMSee2dKrp7\nAwT6gvz23WpWXlvMgop8t8sTlwwbUMaYx3C23Ahw8XYbaVGqS0QmmKK8dO5bXcGGbUdp7XBWntj6\n4QlaO3pZsaBY09AnoJH0oL4GXG+t/TDaxYjIxDY5M8XZtuPdahqaOgD46NAp2jr9rF1SSoKmoU8o\nI/l/u1HhJCKxkpaSyGdvKqd86qRIW2VtM6+8XUlXT8DFyiTWRhJQzxljvhD1SkREwhJ8Xm5fOoNr\nZp27/tTQ1MFLbx6muU3T0CeKkQzx3Qn8tTHmx8DZgSestfOiUpWITHher4eV104lKy2J7R/XEQqF\naG7v4aUth7lrRRmFuelulyhRNpKA+tfwl4hIzF0zO5+MtEQ27aoh0BekqyfAK29XcuuSUiqmZbtd\nnkTRsAFlrf05gDGmFCgA6q21tdEuTESkX/m0bNJTnWnoXT3ONPTf7TxGxwI/18zWNPTxathrUMax\nF6gC3gGOGWN2GGOmR706EZGwwtx07rtlFtkZyQCEQiG27T3Btg9PEAyGXK5OomEkkySexNlWI9ta\nmwTkApuBH0ezMBGRC2VnJnPf6lkUDbj+tPfIKd7YWY0/EHSxMomGkQTUNGvtf7XWtgFYa5uttX8N\nVES3NBGRi6UmJ3DvTeWUD7j+dPREC6+8fYRuTUMfV0YSUD5jTNLABmNMMqDbukXEFQk+L3csnc5C\nMyXSdvJMJ79+6wgdXX4XK5PRNJJZfG8CrxljngRO4eym++fA76NZmIjIUDweDysWFJOZlsi2j5xp\n6E2t3by05TD3ripnUvhalYxdI+lB/Z/AxzjXorYAPwI+Av4iinWJiIzIgop81i4pxRteq6+1o5df\nv3WEM63a8HusG8k0807gO+EvEZG4M7t0MokJXt7YUU1fMER7l5+XtxzhnpUzmZKjNa3HqkEDyhjz\nX6y1jxljfjLYY6y1X49OWSIin05Z8STuWVXOq9uP4g8E6e4N8MrWSu5aUcbU/Ay3y5PLMNQQX0r4\ne+ogXymDPE9ExBVT8zP47E0VpCQ5f3v3+vvYsO2oNj8cowbtQVlrvxv+8afW2vcuPK8FZEUkHhXk\npPG5m8v5zdajdHT7CfQFef3dam5dUsrs0slulyefwkgmSfzbhQ3GmBTgp6NfjojIlcudlMrnb6kg\nK925QyYYCrFpVw37Kk+7XJl8GkNdg/om8AMgyRjTecHpRGBfNAsTEbkSkzKS+fwts9iwtZKm1m5C\noRBvfVBLrz/IdXOmDP8C4rpBe1DW2ieBGcAJnC03Bn6tAlbEoD4RkcuWkZrI526uoGDATL53P6lj\nxyfOfVMS34acZm6tbTTGzLPWdsSqIBGR0ZSSnMC9q8r57btV1Da2A7DnYCM9vX3cdN00PB4tihOv\nhhrie9VaezfwvjHmkn9qjMaGhcaYRJyhxG8DJf1beRhjHgUexunlbQO+bq3tDS+79BOcXlwf8FS4\ntycicklJiT7uvnEmv9tRTVV9KwD7jjbRGwiyZnEpPq9CKh4N1YP6l/D3/w5Esy+8Htg9sMEYsxR4\nBFgItAAvAN8EfogTZDnAHCAD+MgY86619v0o1igiY1yCz8sdy8t4c3cNtsbZHPxQzVn8/j5uXzaD\nBN9I5oxJLA11DeqV8PefAf/LWvvz8OaFW4Gt/RsZjoK/tdZ+/4K2+4Hnwiunh4Cnw2395/7ZWhu0\n1rYCLw44JyIyKJ/Xw61LSrm6PC/SVlXfyoZtR+n197lYmVzKSDYs/BLwUvjnrwAW2GuM+dpoFGCt\n3XGJ5tlA5YDjSpwe03DnRESG5PF4uGnhVK6fUxBpO3GqnVfertR2HXFmJH3av+TcOnzfAz6PsxfU\nI9EqCkgDBq702AWkj+CciMiwPB4Py+YXsXx+caSt8Wwn67cqpOLJSALKY62tNMbMBCZba1+11jYS\n3f2gOjh/KaU0oH0E50RERuy6OVO45fqSyEy+U81dCqk4MpKASjDGZAD3Ed4DKjyTLpqbrRzk/B17\nZwH7R3BORORTuWpmLqsVUnFpJBsW/hLnZl0fcFO47efA76JVFPA88LIx5h+BJpzhxGcGnPuGMWYj\nzuaJDwLroliLiIxzc8tyAHhzz3FCoVAkpO5dVU5K8kg+JiUaRrIf1N8ZY14GzlhrT4abf46z0+4V\nMcYUAG8PaHrLGBMA1uBMKd+GM5S4CXgq/JgncCZFWCAAPGat3XultYjIxKaQij8j/V89FXg4HCj1\nwK+ttb1X+ubhwBtsBt6T4a8Ln+MHRmUGoYjIQAqp+DKSaeZfxenJXIOzSOz1wE5jzH1Rrk1EJObm\nluXomlScGMmfBI8C11trD/Y3GGOuBn5B+P4oEZHxRD2p+DCSWXyJA8MJwFq7j+jO4hMRcZV6Uu4b\nSUD5jTFXDWwwxswFrvgalIhIPFNIuWskfdW/B3YZY94ATuFM7V4LfDWahYmIxAMN97ln2B6UtfZZ\nYDnwMc6q5h8By621L0a5NhGRuKCelDuGjf/wKhIHdK+RiExk6knF3qA9KGPMVGPM20Ar0GGMecEY\nkxm70kRE4ot6UrE11BDfP+KsezcXuA5n99rHYlGUiEi8UkjFzlABtRD4P6zjE+CPcJYgEhGZ0BRS\nsTFUQPVZa4P9B9baDka+NJKIyLh2yZDaVkmPduYdNUMFVChmVYiIjEEXhdTZLl7bXoU/EBzmmTIS\nQ/WIsowx93P+xoSZA9ustc9HszgRkXg3tyyHYCjElj3HAag73c7rO6q4a3kZPt9I1kKQwQwVUAHg\n8SHaQjh7M4mITGhXzczFH+hMoh0zAAAP3klEQVRj+946AGoa2ti0q4bbbpiO1xvNzcfHt0EDylo7\nI4Z1iIiMadfOnkKvP8iu/Q0AHKltJinRe96W8vLpqP8pIjJKFs8r4JqK/Mjx/qozvPNxHaGQLulf\nDgWUiMgo8Xg83HhtMXNn5ETaPjp0it0HTg7xLBmMAkpEZBR5PB5uub6E8mnZkbZdf2hg76FTLlY1\nNimgRERGmdfr4bYlpZQWnFsdbtveExyoOuNiVWOPAkpEJAp8Pi93Lp9BUW56pO3NPcc5UtvsYlVj\niwJKRCRKEhN83HVjGfnZqQCEQiE2vneMYw2tLlc2NiigRESiKCUpgc+snEl2ZjIAwWCI19+tpu50\nu8uVxT8FlIhIlKWlJPLZVeVkpiUBEOgL8ur2KhrPdrpcWXxTQImIxEBGWhL3rionLSURgF5/Hxu2\nHeVsa7fLlcUvBZSISIxkZyZzz8qZJCf5AOjqCbB+ayWtHb0uVxafFFAiIjGUl53KZ26cSWKC8/Hb\n3uVn/dZKOrr8LlcWfxRQIiIxVpibzrrlZfjCC8m2tPfwG214eBEFlIiIC0oKMrlj2Qy84YVkm1q7\n2bD9KP6ANjzsp4ASEXFJWfEk1iw+t9r5yTOdvLHjGMGgFpcFBZSIiKvM9BxWXTs1cnysoZW3Pjiu\nFdBRQImIuG5+RR6L5hZEjvdXndEK6CigRETiwg1XFTJn+rltOnb9oYH9VU0uVuS+obZ8j1vGmNXA\nD4EM4BjwVWttrbtViYhcPo/Hwy2LSujs9lNzsg2At/bUkp6SyPSiLJerc8eY60EZY9KBZ4GvWWtn\nAxuAn7pblYjIlfN5PdyxbEZkcdlgKMQbO6ppPDMxl0QacwEFrAaOWms/CB8/DdxmjMkc4jkiImNC\nUqKPu2+cSVa6s26fvy/Ihu1HaWnvcbmy2BuLATUbqOw/sNa2A01AhWsViYiMovTURD5z40xSkpyr\nMF09ATZsO0pn98RabWIsBlQacOHqil1A+iUeKyIyJk3OSuGuFWUk+JyP6eb2Hl57pwp/IOhyZbEz\nFgOqA0i5oC0N0OYqIjKuFOWls3ZJ6Xk38m58b+LcyDsWA+ogA4bzjDGTgMnAYdcqEhGJkvJp2ay8\ntjhyXFXXwtYPayfEjbxjMaC2ANONMTeGj78FvGqt7XCxJhGRqFlQkc91ZkrkeN/RJvYcbHSxotgY\ncwFlre0CHgT+hzHmCLAU+DN3qxIRia5l84swpZMjxzv31XPw2BkXK4q+MXmjrrX2LeAat+sQEYkV\nj8fD6kUldHQHqG10buR9c/dx0pITKC0cnzfyjrkelIjIROXzeblz+QzyBtzI+/qOak6d7XK3sChR\nQImIjCHJ4Rt5M1ITAfAHnBt5x+O28QooEZExJiM1kc+snElykg+Azm4/G7YdHXc78iqgRETGoNxJ\nqedtG3+2rZvX3qki0Dd+buRVQImIjFFT8zO4dUlp5Li+qYPNu2vGzT1SCigRkTFsVslkbrzm3I28\nh483s3v/+NjsUAElIjLGXTt7Cgsq8iLHu/Y3cKjmrIsVjQ4FlIjIOHDjNVMpLTy369Dm3TU0NI3t\nBXYUUCIi44DX6+H2pTPIyXLW0u4Lhvjtu9W0dY7d6ecKKBGRcSI50cddK8oi+0h1dvvDW3T0uVzZ\n5VFAiYiMI5Myklm3fAbe8PTz081dbHyvZkxu0aGAEhEZZ4rzM7jlupLIcVVdCzv21btY0eVRQImI\njENzy3JYOGCLjg9tIweqxtbq5wooEZFxatnVRZQVT4ocb/ngOCdOjZ3NxxVQIiLjlNfr4bYbSs+t\nfh4M8fq71bS097hc2cgooERExrHEBGdmX1qKs/p5d2+AV7dX0d0b/wvLKqBERMa5zLQk1i2fcd7C\nsht3Hov7mX0KKBGRCaAwN501i88tLFtzso3te0+4WNHwFFAiIhPE7NLJLJlXGDn++MhpPjly2sWK\nhqaAEhGZQBbPK2BWSXbkeNtHJzh+ss3FigangBIRmUA8Hg9rFpdSkJMGQDAU4o0d1Zxt7Xa3sEtQ\nQImITDAJPi/rlpeRkerM7Ovx9/HqO1Vxt2W8AkpEZAJKT03krhUzSfQ5MdDS3sNv362mL462jFdA\niYhMUPmTU8/bMr7udDtvf1gbN1vGK6BERCaw8mnZLJtfFDneX3WGfZVNLlZ0jgJKRGSCu85MYc70\nyZHjbR+doC4O1uxTQImITHAej4ebry9hyuRzM/te31FNu8u78SqgREQkPLNvBqnJzm68XT0Bfvtu\nNQEXJ00ooEREBICMtCTuXDYDr8dZs6/xbCdv7XFv0oQCSkREIorzM7jx2uLI8cFjZ/ik0p3lkBRQ\nIiJynvnlecydkRM53v5RnSsbHSqgRETkPB6Ph5uum3bRckhtMZ40oYASEZGLJPi83Lns/EkTr8d4\n0kRCzN7pEowxicAPgG8DJdba2gHnHgUexgnRbcDXrbW9xpgk4CfAKqAPeMpa+2TMixcRGef6J028\n8nYlwVAoPGniOGsWl+IJT6SIJrd7UOuBiwY2jTFLgUeAZcAcIBv4Zvj0t4GccPsNwKPGmEUxqVZE\nZIIpzs9g5bVTI8cHj53l48OxmTThdkD9rbX2+5dovx94zlrbbK0NAU+H2/rP/bO1NmitbQVeHHBO\nRERG2dXlucwrOzdp4p2P66htjP4eUq4GlLV2xyCnZgOVA44rcXpMw50TEZFR5vF4WLXw/EkTv9t5\njNaO6E6acLsHNZg0YODuWV1A+gjOiYhIFCT4vNy5vIy0FGcPqa6eAK/vqIrqpImoT5IwxnweePwS\np/7eWvuvgzytA0gZcJzGuWtVQ50TEZEoyUhN5M5lM/j120cIBkOcOtvFlvePc+uS6EyaiHpAWWtf\nBl7+lE87CFQMOJ4F7L/g3OFLnBMRkSgqyktn1bVTeesDZ9K1rTlLSWEmc6bnDPPMTy9eh/ieB75o\njCkwxiTgzOh7ZsC5bxhjfMaYIuBB4DmX6hQRmXCumpnLvLLcyPGJxugMYrl2H5QxpgB4e0DTW8aY\nALDGWvu+MeaHOPc/eYBNwFPhxz2BMynCAgHgMWvt3thVLiIysXk8Hm5aOJVEn5fTLV1cMys/Ku/j\nWkBZa08yxOy78M23F92Aa631A1+LYmkiIjIMn8/LyoVTh3/gFYjXIT4REZngFFAiIhKXFFAiIhKX\nFFAiIhKXFFAiIhKXFFAiIhKXFFAiIhKXXN2wMEZ8AA0NDW7XISIiFxjw2ey78NxECKgigIceesjt\nOkREZHBFnL+V0oQIqN3ASqAeZ4t4ERGJHz6ccNp94QlPKBSKfTkiIiLD0CQJERGJSwooERGJSwoo\nERGJSwooERGJSxNhFt8VMcasBn4IZADHgK9aa2vdrSr2jDH3AI8ByUAT8KfW2n3uVuUOY8xdwKtA\nmbW22uVyYs4YUwz8HJgFtAJ/bq3d6m5VsWWM+Srwf+FsqFoL/Jm19pC7VUWfMSYR+AHwbaCk/7PQ\nGPMo8DBOp2cb8HVrbe+Vvp96UEMwxqQDzwJfs9bOBjYAP3W3qtgzxkzF+UD6krV2LvDvwP90typ3\nGGPScH5Bz7hdi4t+DrxurZ0BPAL8ubvlxJYxZg7w/wJrw78PLwFPu1tVzKwHztvf3RizFOe/g2U4\nm9BmA98cjTdTQA1tNXDUWvtB+Php4DZjTKaLNbnBD3zRWrs/fLwduMrFetz0N8AvgTaX63CFMaYE\nuB74MYC1dou19j+4W1XMzQMOW2tPhI/fBK52sZ5Y+ltr7fcvaLsfeM5a22ytDeF8Tt4/Gm+mgBra\nbAbc2WytbccZ3qpwrSIXWGsbrbVvDGi6E3jPrXrcYoyZD6wF/sntWlx0DVAF/MAYY40xbxtjFrpd\nVIztBMqNMVcbYzzAfcAml2uKCWvtjks0n/c5Gf55zmi8nwJqaGlA9wVtXUC6C7XEBWPMGuBb4a8J\nI/xB9FPgG9Zav9v1uCgbmA9stdYa4H8BLxtjJsz1bGttHfBd4COcod4/A/6zq0W568LPyVH7jFRA\nDa0DSLmgLY0LxmAnCmPMZ4GfAXcPGO6bKP4E2G+t3e52IS5rAU5aa9eHj/8FyMH5K3pCCPcY/wqY\naa2djBNOvwn/ETMRXfg5OWqfkQqooR1kwHCeMWYSMBk47FpFLjHG3Ao8AdxmrX3f7XpccC9wrzGm\nwRjTAJQAu40xt7hcV6wdAzKNMV6A8DWHIBNrncs1wLvW2prw8XM416Xy3CvJVed9TuLM7hyVP2AV\nUEPbAkw3xtwYPv4W8Kq1tsPFmmIuPHPt34DPW2sPuF2PG6y166y1U6y1hdbaQuA4sNhau8Xt2mLs\nE6AO+BqAMeZ+4CwXrEI9zllguTEmN3y8DmgATrtXkqueB75ojCkID/U+AjwzGi+sxWKHYYy5Gafn\nkA4cAf6TtXZCbS5ljPkiTkBVX3DqJmvtydhX5D5jTDVw8wS9D2oezlBvHtCIcw/QHleLijFjzN8A\nXwJCOPeCfWu8D/8aYwqAt/sPcf4oCeD0KO/Dud3AgzNh5JvW2sCVvqcCSkRE4pKG+EREJC4poERE\nJC4poEREJC4poEREJC4poEREJC4poEREJC5NmPWzRGLFGPMLYEn4sAhnpYX++8XeBb4HbAZutNZG\n9eZOY8wU4B2crVJ2D/KYB4BHce5ru+I9fERGi+6DEokiY8zPgG5r7Z+69P4bgc3W2v8+zON+Bpyx\n1n47JoWJjIB6UCIxZoyZgbNlRRHOIptVwJdxejFlwD8AR4HvANOBp621/zn83KtwVjYpBRKB/89a\n+98GeZ9bcVYevzd8bIB/BqaEn7sX+BNrbRPwX4D9xpgfW2urRv9fLfLp6RqUSHyosNYuAr4C/Fdg\nvrV2Mc7eW/+3MabQGJOKs4zMa+EdnhcCDxpj/uMgr/ll4NfW2q7w8d8Cb4V3gZ0FHMDZ34rwwqe7\ngQei888T+fQUUCLxoX9xzY9wRjaeG3DswVk9fSXOmpBPAFhrm4F/BR4a5DVvxNn9uF8dcGe4Z5Vq\nrf1ra+2zA85vD7+HSFzQEJ9IfGgJf+/ftqIVwFrb54zM4QNygVScobj+5yXhrKR9KYUXnPsLnBX5\nHwfmGmNexdmAsf8xDeHniMQFBZTI2FELtFtrL2s7bWttD/ADnO3aC3B6X4/jDCuKxB0N8YmMHe8B\nLcaY/x3AGOMzxjxmjHlwkMef1yMyxvzWGLMaILxNyoV7e13Y4xJxlQJKZIwI36N0N/AlY4zFCZiZ\nwO8Gecp2YMWA48eBx40x1hhzAJiDs115vxXAtlEvXOQy6T4okXHKGLMWZ2PBcmtt9zCPnYazdfd8\nTTOXeKEelMg4Za3dhNPL+rMRPPz7wL8onCSeKKBExreHgIeNMdcP9gBjzBeAq3Fm+YnEDQ3xiYhI\nXFIPSkRE4pICSkRE4pICSkRE4pICSkRE4pICSkRE4pICSkRE4tL/D26Ldrs9FDoKAAAAAElFTkSu\nQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - } - } - ] - }, - { - "metadata": { - "id": "5K127O8QyVKq", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "### Onto the sidewalk\n", - "\n", - "To figure out when the penny hit the sidewalk, we can use `crossings`, which finds the times where a `Series` passes through a given value." - ] - }, - { - "metadata": { - "id": "3OpJfvXIyVKq", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "t_crossings = crossings(results.y, 0)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "XlZefw2hyVKt", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "For this example there should be just one crossing, the time when the penny hits the sidewalk." - ] - }, - { - "metadata": { - "id": "_jIUWRMOyVKv", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "t_sidewalk = t_crossings[0] * s" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "9e9QxB2DyVKy", - "colab_type": "text" - }, - "cell_type": "markdown", - "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}}$" - ] - }, - { - "metadata": { - "id": "4H69FUJuyVKz", - "colab_type": "code", - "outputId": "3f3f99e4-f18e-41fe-abf7-4199fc90ce44", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } - }, - "cell_type": "code", - "source": [ - "sqrt(2 * init.y / g)" - ], - "execution_count": 47, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/latex": "$8.817885349720552\\ \\mathrm{second}$", - "text/html": [ - "8.817885349720552 second" - ], - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 47 - } - ] - }, - { - "metadata": { - "id": "S--2VoU7yVK4", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "The estimate is accurate to about 10 decimal places." - ] - }, - { - "metadata": { - "id": "r4gst6_oyVK5", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "## Events\n", - "\n", - "Instead of running the simulation until the penny goes through the sidewalk, it would be better to detect the point where the penny hits the sidewalk and stop. `run_ode_solver` provides exactly the tool we need, **event functions**.\n", - "\n", - "Here's an event function that returns the height of the penny above the sidewalk:" - ] - }, - { - "metadata": { - "id": "iH2eYoI1yVK6", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "def event_func(state, t, system):\n", - " \"\"\"Return the height of the penny above the sidewalk.\n", - " \"\"\"\n", - " y, v = state\n", - " return y" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "RUU8C4koyVK8", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And here's how we pass it to `run_ode_solver`. The solver should run until the event function returns 0, and then terminate." - ] - }, - { - "metadata": { - "id": "sZcqDq-NyVK-", - "colab_type": "code", - "outputId": "41ddce9c-82a0-4e9f-bc3f-c52ea16f1d92", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 297 - } - }, - "cell_type": "code", - "source": [ - "results, details = run_ode_solver(system, slope_func, events=event_func)\n", - "details" - ], - "execution_count": 49, - "outputs": [ - { - "output_type": "execute_result", - "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", - "
values
messageA termination event occurred.
nfev38
njev0
nlu0
solNone
status1
successTrue
t_events[[8.817885349720553]]
\n", - "
" - ], - "text/plain": [ - "message A termination event occurred.\n", - "nfev 38\n", - "njev 0\n", - "nlu 0\n", - "sol None\n", - "status 1\n", - "success True\n", - "t_events [[8.817885349720553]]\n", - "dtype: object" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 49 - } - ] - }, - { - "metadata": { - "id": "AM0k7t-7yVLA", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "The message from the solver indicates the solver stopped because the event we wanted to detect happened.\n", - "\n", - "Here are the results:" - ] - }, - { - "metadata": { - "id": "o9Y5FnMfyVLC", - "colab_type": "code", - "outputId": "7f517f94-2b68-4df5-851b-289c5e007247", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 266 - } - }, - "cell_type": "code", - "source": [ - "results" - ], - "execution_count": 50, - "outputs": [ - { - "output_type": "execute_result", - "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", - "
yv
0.000000381.0000000.000000
0.000102381.000000-0.001000
0.001122380.999994-0.011000
0.011327380.999371-0.111000
0.113367380.937025-1.110997
1.133773374.701343-11.110971
8.8178850.000000-86.415276
\n", - "
" - ], - "text/plain": [ - " y v\n", - "0.000000 381.000000 0.000000\n", - "0.000102 381.000000 -0.001000\n", - "0.001122 380.999994 -0.011000\n", - "0.011327 380.999371 -0.111000\n", - "0.113367 380.937025 -1.110997\n", - "1.133773 374.701343 -11.110971\n", - "8.817885 0.000000 -86.415276" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 50 - } - ] - }, - { - "metadata": { - "id": "CHxr2EqSyVLG", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "With the `events` option, the solver returns the actual time steps it computed, which are not necessarily equally spaced. \n", - "\n", - "The last time step is when the event occurred:" - ] - }, - { - "metadata": { - "id": "ttIZzpjPyVLH", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "t_sidewalk = get_last_label(results) * s" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "gmVFDsVTyVLK", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "Unfortunately, `run_ode_solver` does not carry the units through the computation, so we have to put them back at the end.\n", - "\n", - "We could also get the time of the event from `details`, but it's a minor nuisance because it comes packed in an array:" - ] - }, - { - "metadata": { - "id": "Joo1jSYLyVLL", - "colab_type": "code", - "outputId": "7ed99de8-9300-4617-b4e0-c75de47fae45", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } - }, - "cell_type": "code", - "source": [ - "details.t_events[0][0] * s" - ], - "execution_count": 52, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/latex": "$8.817885349720553\\ \\mathrm{second}$", - "text/html": [ - "8.817885349720553 second" - ], - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 52 - } - ] - }, - { - "metadata": { - "id": "5To9p3EiyVLQ", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "The result is accurate to about 15 decimal places.\n", - "\n", - "We can also check the velocity of the penny when it hits the sidewalk:" - ] - }, - { - "metadata": { - "id": "se6TYeCUyVLR", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "v_sidewalk = get_last_value(results.v) * m / s" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "iAgE4Gj9yVLU", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "And convert to kilometers per hour." - ] - }, - { - "metadata": { - "id": "3SASlJsryVLV", - "colab_type": "code", - "outputId": "fcc90d50-6e6a-4e7b-ec79-537c7b52e1f7", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } - }, - "cell_type": "code", - "source": [ - "km = UNITS.kilometer\n", - "h = UNITS.hour\n", - "v_sidewalk.to(km / h)" - ], - "execution_count": 54, - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/latex": "$-311.09499513814114\\ \\frac{\\mathrm{kilometer}}{\\mathrm{hour}}$", - "text/html": [ - "-311.09499513814114 kilometer/hour" - ], - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - }, - "execution_count": 54 - } - ] - }, - { - "metadata": { - "id": "BuHAdPo2yVLc", - "colab_type": "text" - }, - "cell_type": "markdown", - "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." - ] - }, - { - "metadata": { - "id": "zf50bYqKyVLd", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "## Under the hood\n", - "\n", - "Here is the source code for `crossings` so you can see what's happening under the hood:" - ] - }, - { - "metadata": { - "id": "egybRvtSyVLe", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "%psource crossings" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "pWHmHZADyVLi", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "The [documentation of InterpolatedUnivariateSpline is here](https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.InterpolatedUnivariateSpline.html).\n", - "\n", - "And you can read the [documentation of `scipy.integrate.solve_ivp`](https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html) to learn more about how `run_ode_solver` works." - ] - }, - { - "metadata": { - "id": "EBbygIvbyVLj", - "colab_type": "text" - }, - "cell_type": "markdown", - "source": [ - "### Exercises\n", - "\n", - "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", - "\n", - "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", - "\n", - "Use `run_ode_solver` to answer this question.\n", - "\n", - "Here are some suggestions about how to proceed:\n", - "\n", - "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", - "\n", - "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", - "\n", - "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", - "\n", - "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", - "\n", - "\n", - "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." - ] - }, - { - "metadata": { - "id": "XcpC9qV2yVLl", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "# units!\n", - "N = UNITS.newton\n", - "kg = UNITS.kilogram\n", - "m = UNITS.meter\n", - "AU = UNITS.astronomical_unit;" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "Nq0vKaw0yVLn", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "x_0 = (0 * AU).to_base_units()\n", - "y_0 = (1 * AU).to_base_units()\n", - "\n", - "vx_0 = 0 * m / s\n", - "vy_0 = 0 * m / s\n", - "\n", - "init = State(x=x_0,\n", - " y=y_0,\n", - " vx=vx_0,\n", - " vy=vy_0)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "2mYVqxxmyVLq", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "system = System(init=init,\n", - " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", - " m_sun=1.99e30 * kg,\n", - " m_earth=5.972e24 * kg,\n", - " t_end=100e6 * s,\n", - " r_final=695.508e6 * m + 6.371e6 * m)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "G4ijoX3dyVLt", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "def universal_grav(state, system):\n", - " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", - " x, y, vx, vy = state\n", - " unpack(system)\n", - " \n", - " position = Vector(x, y)\n", - " \n", - " mag = G * m_sun * m_earth / position.mag ** 2\n", - " direction = -position.hat()\n", - " \n", - " force = direction * mag\n", - " \n", - " \n", - " return force\n", - " " - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "0euiUJCfyVL0", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "def slope_func(state, t, system):\n", - " x, y, vx, vy = state\n", - " unpack(system)\n", - " \n", - " v = Vector(vx, vy)\n", - " force = universal_grav(state, system)\n", - " a = force / m_earth\n", - " \n", - "# dxdt = v\n", - "# dvydt = -force / m_earth\n", - " \n", - " \n", - " return vx, vy, a.x, a.y" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "yxNvIgrGyVL2", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "vx, vy, ax, ay = slope_func(init, 0, system)" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "BDP2V-W97UdW", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "def event_func(state, t, system):\n", - " print(state)\n", - " x, y, vx, vy = state\n", - " return r - system.r_final" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "oDu_ADwk7bMA", - "colab_type": "code", - "outputId": "708f4205-baa3-42d5-b2f1-71f5aa3aa126", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 333 - } - }, - "cell_type": "code", - "source": [ - "event_func(init, 0, system)" - ], - "execution_count": 66, - "outputs": [ - { - "output_type": "stream", - "text": [ - "x 0.0 meter\n", - "y 149597870691.0 meter\n", - "vx 0.0 meter / second\n", - "vy 0.0 meter / second\n", - "dtype: object\n" - ], - "name": "stdout" - }, - { - "output_type": "error", - "ename": "NameError", - "evalue": "ignored", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mevent_func\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minit\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m\u001b[0m in \u001b[0;36mevent_func\u001b[0;34m(state, t, system)\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvy\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mr\u001b[0m \u001b[0;34m-\u001b[0m \u001b[0msystem\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mr_final\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'r' is not defined" - ] - } - ] - }, - { - "metadata": { - "id": "0PSP5uH6yVL4", - "colab_type": "code", - "outputId": "2f274108-86fd-4d0f-db33-9fcd9a1879fd", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 331 - } - }, - "cell_type": "code", - "source": [ - "results, details = run_ode_solver(system, slope_func, method='LSODA', min_step=99)\n", - "results.index /= 60 * 60 * 24\n", - "# results.r *= (0.000621371 / 1000)\n", - "plot(results.y, 'go-')\n", - "decorate(title='Distance from Sun',\n", - " xlabel='Time (days)',\n", - " ylabel='Distance from sun (thousand miles)')" - ], - "execution_count": 67, - "outputs": [ - { - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.6/dist-packages/scipy/integrate/_ode.py:1348: UserWarning: lsoda: Repeated error test failures (internal error).\n", - " self.messages.get(istate, unexpected_istate_msg)))\n" - ], - "name": "stderr" - }, - { - "output_type": "display_data", - "data": { - "image/png": "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\nSUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - } - } - ] - }, - { - "metadata": { - "id": "ZBi2VbR7yVL_", - "colab_type": "code", - "outputId": "348bc2da-d0e9-48af-ebee-8515b7a426e6", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 297 - } - }, - "cell_type": "code", - "source": [ - "plot(results.vy, 'ro-')\n", - "decorate(title='Earth Velocity',\n", - " xlabel='Time (days)',\n", - " ylabel='Velocity (m/s)')" - ], - "execution_count": 65, - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "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\nAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": { - "tags": [] - } - } - ] - }, - { - "metadata": { - "id": "t_xp-0ER-O6t", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "AwVA_CYZ-O_u", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "wNRcyudo-PDq", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "uftDQ7GI-PJG", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" - ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "l4LgemZu-PRE", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" - ], - "execution_count": 0, - "outputs": [] + { + "cell_type": "code", + "execution_count": 153, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "BDP2V-W97UdW" + }, + "outputs": [], + "source": [ + "def event_func(state, t, system):\n", + " x, y, vx, vy = state\n", + " position = Vector(x, y)\n", + " return position.mag - system.r_final" + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 333 }, + "colab_type": "code", + "id": "oDu_ADwk7bMA", + "outputId": "708f4205-baa3-42d5-b2f1-71f5aa3aa126" + }, + "outputs": [ { - "metadata": { - "id": "k1o3Wo4A-QNK", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" + "data": { + "text/html": [ + "148895991691.0 meter" ], - "execution_count": 0, - "outputs": [] - }, - { - "metadata": { - "id": "Ax8EsdFJypUT", - "colab_type": "code", - "outputId": "57f2e86e-b569-47de-bb1d-38e2e28c8d35", - "colab": { - "base_uri": "https://localhost:8080/", - "height": 34 - } - }, - "cell_type": "code", - "source": [ - "# Imports\n", - "from IPython.display import clear_output\n", - "import os\n", - "import time\n", - "\n", - "# Install Python libraries\n", - "!pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", - "\n", - "# Removes code before re-downloading it\n", - "!rm -rf ./ModSimPy\n", - "!rm -rf ./modsim.py\n", - "\n", - "# Grabs ModSimPy\n", - "!git clone https://github.com/AllenDowney/ModSimPy.git\n", - "!cp \"ModSimPy/code/modsim.py\" .\n", - "\n", - "# Resets kernel to flush outdated libraries (especially SciPy)\n", - "clear_output()\n", - "print(\"Configured for ModSimPy. Restarting kernel.\")\n", - "time.sleep(1)\n", - "os._exit(0)" + "text/latex": [ + "$148895991691.0 meter$" ], - "execution_count": 0, - "outputs": [ - { - "output_type": "stream", - "text": [ - "Configured for ModSimPy. Restarting kernel.\n" - ], - "name": "stdout" - } + "text/plain": [ + "" ] - }, - { - "metadata": { - "id": "gFAThLbWytK9", - "colab_type": "code", - "colab": {} - }, - "cell_type": "code", - "source": [ - "" - ], - "execution_count": 0, - "outputs": [] + }, + "execution_count": 154, + "metadata": {}, + "output_type": "execute_result" } - ] -} \ No newline at end of file + ], + "source": [ + "event_func(init, 0, system)" + ] + }, + { + "cell_type": "code", + "execution_count": 165, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 331 + }, + "colab_type": "code", + "id": "0PSP5uH6yVL4", + "outputId": "2f274108-86fd-4d0f-db33-9fcd9a1879fd" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results, details = run_ode_solver(system, slope_func, method='LSODA')\n", + "results.index /= 60 * 60 * 24\n", + "# results.r *= (0.000621371 / 1000)\n", + "plot(results.x, results.y, 'go-')\n", + "decorate(title='Earth Orbit',\n", + " xlabel='X Position (m)',\n", + " ylabel='Y Position (m)')" + ] + }, + { + "cell_type": "code", + "execution_count": 167, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 297 + }, + "colab_type": "code", + "id": "ZBi2VbR7yVL_", + "outputId": "348bc2da-d0e9-48af-ebee-8515b7a426e6" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(results.vy, 'ro-')\n", + "decorate(title='Earth Velocity',\n", + " xlabel='Time (days)',\n", + " ylabel='Y Velocity (m/s)')" + ] + }, + { + "cell_type": "code", + "execution_count": 168, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Nq0vKaw0yVLn" + }, + "outputs": [], + "source": [ + "x_0 = (0 * AU).to_base_units()\n", + "y_0 = (1 * AU).to_base_units()\n", + "\n", + "vx_0 = 0 * m / s\n", + "vy_0 = 0 * m / s\n", + "\n", + "init = State(x=x_0,\n", + " y=y_0,\n", + " vx=vx_0,\n", + " vy=vy_0)" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "2mYVqxxmyVLq" + }, + "outputs": [], + "source": [ + "system = System(init=init,\n", + " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", + " m_sun=1.99e30 * kg,\n", + " m_earth=5.972e24 * kg,\n", + " t_end=100e6 * s,\n", + " r_final=695.508e6 * m + 6.371e6 * m)" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": {}, + "outputs": [], + "source": [ + "def event_func(state, t, system):\n", + " x, y, vx, vy = state\n", + " position = Vector(x, y)\n", + " return position.mag" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "AwVA_CYZ-O_u" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results, details = run_ode_solver(system, slope_func, events=event_func, method='RK23')\n", + "results.index /= 60 * 60 * 24\n", + "# results.r *= (0.000621371 / 1000)\n", + "plot(results.y, 'go-')\n", + "decorate(title='Earth Orbit',\n", + " xlabel='X Position (m)',\n", + " ylabel='Y Position (m)')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "wNRcyudo-PDq" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "uftDQ7GI-PJG" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "l4LgemZu-PRE" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "k1o3Wo4A-QNK" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "Ax8EsdFJypUT", + "outputId": "57f2e86e-b569-47de-bb1d-38e2e28c8d35" + }, + "outputs": [], + "source": [ + "# # Imports\n", + "# from IPython.display import clear_output\n", + "# import os\n", + "# import time\n", + "\n", + "# # Install Python libraries\n", + "# !pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", + "\n", + "# # Removes code before re-downloading it\n", + "# !rm -rf ./ModSimPy\n", + "# !rm -rf ./modsim.py\n", + "\n", + "# # Grabs ModSimPy\n", + "# !git clone https://github.com/AllenDowney/ModSimPy.git\n", + "# !cp \"ModSimPy/code/modsim.py\" .\n", + "\n", + "# # Resets kernel to flush outdated libraries (especially SciPy)\n", + "# clear_output()\n", + "# print(\"Configured for ModSimPy. Restarting kernel.\")\n", + "# time.sleep(1)\n", + "# os._exit(0)" + ] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "name": "orbit_homework.ipynb", + "provenance": [], + "version": "0.3.2" + }, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From d9b7331bb24c7f3a63508e4d5ee8f3569a1286e3 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 27 Nov 2018 21:49:22 -0500 Subject: [PATCH 50/61] adds name --- code/orbit_homework.ipynb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/code/orbit_homework.ipynb b/code/orbit_homework.ipynb index f82aa10e..70c7c883 100644 --- a/code/orbit_homework.ipynb +++ b/code/orbit_homework.ipynb @@ -8,12 +8,9 @@ }, "source": [ "# Modeling and Simulation in Python\n", + "Sam Daitzman\n", "\n", - "Chapter 20\n", - "\n", - "Copyright 2017 Allen Downey\n", - "\n", - "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + "Chapter 20" ] }, { @@ -362,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": 180, + "execution_count": 195, "metadata": { "colab": {}, "colab_type": "code", From bfb45a82870b784a5308f42509e604c16866cdea Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 27 Nov 2018 21:51:26 -0500 Subject: [PATCH 51/61] fixes typo --- code/orbit_homework.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/orbit_homework.ipynb b/code/orbit_homework.ipynb index 70c7c883..46dd633d 100644 --- a/code/orbit_homework.ipynb +++ b/code/orbit_homework.ipynb @@ -359,7 +359,7 @@ }, { "cell_type": "code", - "execution_count": 195, + "execution_count": 197, "metadata": { "colab": {}, "colab_type": "code", @@ -368,7 +368,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -383,7 +383,7 @@ "# results.r *= (0.000621371 / 1000)\n", "plot(results.y, 'go-')\n", "decorate(title='Earth Orbit',\n", - " xlabel='X Position (m)',\n", + " xlabel='Time (days)',\n", " ylabel='Y Position (m)')" ] }, From 266ddd5de75dc9579e823093071ba97a1b66892b Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Wed, 28 Nov 2018 20:29:29 -0500 Subject: [PATCH 52/61] moves duck problem --- Duck_Problem.ipynb => code/Duck_Problem.ipynb | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Duck_Problem.ipynb => code/Duck_Problem.ipynb (100%) diff --git a/Duck_Problem.ipynb b/code/Duck_Problem.ipynb similarity index 100% rename from Duck_Problem.ipynb rename to code/Duck_Problem.ipynb From d8f3a509376dbe8ce83950b182308bcfc559ef95 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 29 Nov 2018 15:32:06 -0500 Subject: [PATCH 53/61] Create jump2.ipynb --- code/jump2.ipynb | 867 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 867 insertions(+) create mode 100644 code/jump2.ipynb diff --git a/code/jump2.ipynb b/code/jump2.ipynb new file mode 100644 index 00000000..0b672c79 --- /dev/null +++ b/code/jump2.ipynb @@ -0,0 +1,867 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Bungee dunk example, taking into account the mass of the bungee cord\n", + "\n", + "Copyright 2018 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": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Bungee jumping" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In Chapter 21, we simulated a bungee jump with a model that took into account gravity, air resistance, and the spring force of the bungee cord, but we ignored the weight of the cord.\n", + "\n", + "It is tempting to say that the weight of the cord doesn't matter, because it falls along with the jumper. But that intuition is incorrect, as explained by [Heck, Uylings, and Kędzierska](http://iopscience.iop.org/article/10.1088/0031-9120/45/1/007). As the cord falls, it transfers energy to the jumper. They derive a differential equation that relates the acceleration of the jumper to position and velocity:\n", + "\n", + "$a = g + \\frac{\\mu v^2/2}{\\mu(L+y) + 2L}$ \n", + "\n", + "where $a$ is the net acceleration of the number, $g$ is acceleration due to gravity, $v$ is the velocity of the jumper, $y$ is the position of the jumper relative to the starting point (usually negative), $L$ is the length of the cord, and $\\mu$ is the mass ratio of the cord and jumper.\n", + "\n", + "If you don't believe this model is correct, [this video might convince you](https://www.youtube.com/watch?v=X-QFAB0gEtE).\n", + "\n", + "Following the example in Chapter 21, we'll model the jump with the following modeling assumptions:\n", + "\n", + "1. Initially the bungee cord hangs from a crane with the attachment point 80 m above a cup of tea.\n", + "\n", + "2. Until the cord is fully extended, it applies a force to the jumper as explained above.\n", + "\n", + "3. After the cord is fully extended, it obeys [Hooke's Law](https://en.wikipedia.org/wiki/Hooke%27s_law); that is, it applies a force to the jumper proportional to the extension of the cord beyond its resting length.\n", + "\n", + "4. The jumper is subject to drag force proportional to the square of their velocity, in the opposite of their direction of motion.\n", + "\n", + "First I'll create a `Param` object to contain the quantities we'll need:\n", + "\n", + "1. Let's assume that the jumper's mass is 75 kg and the cord's mass is also 75 kg, so `mu=1`.\n", + "\n", + "2. The jumpers's frontal area is 1 square meter, and terminal velocity is 60 m/s. I'll use these values to back out the coefficient of drag.\n", + "\n", + "3. The length of the bungee cord is `L = 25 m`.\n", + "\n", + "4. The spring constant of the cord is `k = 40 N / m` when the cord is stretched, and 0 when it's compressed.\n", + "\n", + "I adopt the coordinate system and most of the variable names from [Heck, Uylings, and Kędzierska](http://iopscience.iop.org/article/10.1088/0031-9120/45/1/007).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "m = UNITS.meter\n", + "s = UNITS.second\n", + "kg = UNITS.kilogram\n", + "N = UNITS.newton" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "params = Params(v_init = 0 * m / s,\n", + " g = 9.8 * m/s**2,\n", + " M = 75 * kg, # mass of jumper\n", + " m_cord = 75 * kg, # mass of cord\n", + " area = 1 * m**2, # frontal area of jumper\n", + " rho = 1.2 * kg/m**3, # density of air\n", + " v_term = 60 * m / s, # terminal velocity of jumper\n", + " L = 25 * m, # length of cord\n", + " k = 40 * N / m) # spring constant of cord" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now here's a version of `make_system` that takes a `Params` object as a parameter.\n", + "\n", + "`make_system` uses the given value of `v_term` to compute the drag coefficient `C_d`.\n", + "\n", + "It also computes `mu` and the initial `State` object." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def make_system(params):\n", + " \"\"\"Makes a System object for the given params.\n", + " \n", + " params: Params object\n", + " \n", + " returns: System object\n", + " \"\"\"\n", + " unpack(params)\n", + " \n", + " # back out the coefficient of drag\n", + " C_d = 2 * M * g / (rho * area * v_term**2)\n", + " \n", + " mu = m_cord / M\n", + " init = State(y=0*m, v=v_init)\n", + " t_end = 10 * s\n", + "\n", + " return System(params, C_d=C_d, mu=mu,\n", + " init=init, t_end=t_end)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's make a `System`" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "system = make_system(params)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`drag_force` computes drag as a function of velocity:" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def drag_force(v, system):\n", + " \"\"\"Computes drag force in the opposite direction of `v`.\n", + " \n", + " v: velocity\n", + " \n", + " returns: drag force in N\n", + " \"\"\"\n", + " unpack(system)\n", + " f_drag = -np.sign(v) * rho * v**2 * C_d * area / 2\n", + " return f_drag" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's drag force at 20 m/s." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "drag_force(20 * m/s, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following function computes the acceleration of the jumper due to tension in the cord.\n", + "\n", + "$a_{cord} = \\frac{\\mu v^2/2}{\\mu(L+y) + 2L}$ " + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def cord_acc(y, v, system):\n", + " \"\"\"Computes acceleration due to the force of \n", + " the bungee cord on the jumper.\n", + " \n", + " y: height of the jumper\n", + " v: velocity of the jumpter\n", + " \n", + " returns: acceleration in m/s\n", + " \"\"\"\n", + " # Fill this in\n", + " return 0" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's acceleration due to tension in the cord if we're going 20 m/s after falling 20 m." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "y = -20 * m\n", + "v = -20 * m/s\n", + "cord_acc(y, v, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now here's the slope function:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def slope_func1(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", + " # Fill this in\n", + " dvdt = -g\n", + " \n", + " return v, dvdt" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As always, let's test the slope function with the initial params." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "slope_func1(system.init, 0, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll need an event function to stop the simulation when we get to the end of the cord." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def event_func(state, t, system):\n", + " \"\"\"Run until y=-L.\n", + " \n", + " state: position, velocity\n", + " t: time\n", + " system: System object containing g, rho,\n", + " C_d, area, and mass\n", + " \n", + " returns: difference between y and -L\n", + " \"\"\"\n", + " y, v = state\n", + " unpack(system)\n", + "\n", + " # Fill this in\n", + " return 1" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can test it with the initial conditions." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "event_func(system.init, 0, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then run the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "results, details = run_ode_solver(system, slope_func1, \n", + " events=event_func, max_step=0.1)\n", + "details.message" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how long it takes to drop 25 meters." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "t_final = get_last_label(results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the plot of position as a function of time." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_position(results, **options):\n", + " plot(results.y, **options)\n", + " decorate(xlabel='Time (s)',\n", + " ylabel='Position (m)')\n", + " \n", + "plot_position(results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's velocity as a function of time:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "def plot_velocity(results):\n", + " plot(results.v, color='C1', label='v')\n", + " \n", + " decorate(xlabel='Time (s)',\n", + " ylabel='Velocity (m/s)')\n", + " \n", + "plot_velocity(results)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Velocity when we reach the end of the cord." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "min(results.v) * m/s" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sweeping cord weight\n", + "\n", + "Now let's see how velocity at the crossover point depends on the weight of the cord." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "def sweep_m_cord(m_cord_array, params):\n", + " sweep = SweepSeries()\n", + "\n", + " for m_cord in m_cord_array:\n", + " system = make_system(Params(params, m_cord=m_cord))\n", + " results, details = run_ode_solver(system, slope_func1, \n", + " events=event_func)\n", + " min_velocity = min(results.v) * m/s\n", + " sweep[m_cord.magnitude] = min_velocity\n", + " \n", + " return sweep" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "m_cord_array = linspace(1, 201, 51) * kg\n", + "sweep = sweep_m_cord(m_cord_array, params);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like. As expected, a heavier cord gets the jumper going faster.\n", + "\n", + "There's a hitch near 25 kg that seems to be due to numerical error." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "plot(sweep)\n", + "\n", + "decorate(xlabel='Mass of cord (kg)',\n", + " ylabel='Fastest downward velocity (m/s)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Phase 2\n", + "\n", + "Once the jumper falls past the length of the cord, acceleration due to energy transfer from the cord stops abruptly. As the cord stretches, it starts to exert a spring force. So let's simulate this second phase." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`spring_force` computes the force of the cord on the jumper:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "def spring_force(y, system):\n", + " \"\"\"Computes the force of the bungee cord on the jumper:\n", + " \n", + " y: height of the jumper\n", + " \n", + " Uses these variables from system:\n", + " y_attach: height of the attachment point\n", + " L: resting length of the cord\n", + " k: spring constant of the cord\n", + " \n", + " returns: force in N\n", + " \"\"\"\n", + " unpack(system)\n", + " distance_fallen = -y\n", + " extension = distance_fallen - L\n", + " f_spring = k * extension\n", + " return f_spring" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The spring force is 0 until the cord is fully extended. When it is extended 1 m, the spring force is 40 N. " + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "spring_force(-25*m, system)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "spring_force(-26*m, system)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The slope function for Phase 2 includes the spring force, and drops the acceleration due to the cord." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "def slope_func2(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", + " a_drag = drag_force(v, system) / M\n", + " a_spring = spring_force(y, system) / M\n", + " dvdt = -g + a_drag + a_spring\n", + " \n", + " return v, dvdt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I'll run Phase 1 again so we can get the final state." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "system1 = make_system(params)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "event_func.direction=-1\n", + "results1, details1 = run_ode_solver(system1, slope_func1, \n", + " events=event_func, max_step=0.1)\n", + "print(details1.message)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now I need the final time, position, and velocity from Phase 1." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "t_final = get_last_label(results1)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "init2 = results1.row[t_final]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And that gives me the starting conditions for Phase 2." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "system2 = System(system1, t_0=t_final, t_end=t_final+10, init=init2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run Phase 2, setting the direction of the event function so it doesn't stop the simulation immediately. " + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "event_func.direction=+1\n", + "results2, details2 = run_ode_solver(system2, slope_func2, \n", + " events=event_func, max_step=0.1)\n", + "print(details2.message)\n", + "t_final = get_last_label(results2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot the results on the same axes." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "plot_position(results1, label='Phase 1')\n", + "plot_position(results2, label='Phase 2')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And get the lowest position from Phase 2." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [], + "source": [ + "min(results2.y) * m" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To see how big the effect of the cord is, I'll collect the previous code in a function." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "def simulate_system2(params):\n", + " \n", + " system1 = make_system(params)\n", + " event_func.direction=-1\n", + " results1, details1 = run_ode_solver(system1, slope_func1, events=event_func, max_step=0.1)\n", + "\n", + " t_final = get_last_label(results1)\n", + " init2 = results1.row[t_final]\n", + " \n", + " system2 = System(system1, t_0=t_final, t_end=t_final+10, init=init2)\n", + " event_func.direction=+1\n", + " results2, details2 = run_ode_solver(system2, slope_func2, events=event_func, max_step=0.1)\n", + " t_final = get_last_label(results2)\n", + " return TimeFrame(pd.concat([results1, results2]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run both phases and get the results in a single `TimeFrame`." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "results = simulate_system2(params);" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "plot_position(results)" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "params_no_cord = Params(params, m_cord=1*kg)\n", + "results_no_cord = simulate_system2(params_no_cord);" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "plot_position(results, label='m_cord = 75 kg')\n", + "plot_position(results_no_cord, label='m_cord = 1 kg')" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "min(results_no_cord.y) * m" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "diff = min(results.y) - min(results_no_cord.y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 503898ebb4f912efbafeaf66c389d5b5ae933656 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 29 Nov 2018 15:45:35 -0500 Subject: [PATCH 54/61] working baseball angle optimization --- code/chap23-mine.ipynb | 2888 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 2703 insertions(+), 185 deletions(-) diff --git a/code/chap23-mine.ipynb b/code/chap23-mine.ipynb index 924874a6..5e58fed5 100644 --- a/code/chap23-mine.ipynb +++ b/code/chap23-mine.ipynb @@ -16,9 +16,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Configure Jupyter so figures appear in the notebook\n", @@ -40,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -55,7 +53,7 @@ "" ] }, - "execution_count": 2, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -69,10 +67,8 @@ }, { "cell_type": "code", - "execution_count": 31, - "metadata": { - "collapsed": true - }, + "execution_count": 4, + "metadata": {}, "outputs": [ { "data": { @@ -162,7 +158,7 @@ "dtype: object" ] }, - "execution_count": 31, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -183,10 +179,8 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, + "execution_count": 5, + "metadata": {}, "outputs": [], "source": [ "def make_system(params):\n", @@ -216,7 +210,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -237,10 +231,8 @@ }, { "cell_type": "code", - "execution_count": 44, - "metadata": { - "collapsed": true - }, + "execution_count": 7, + "metadata": {}, "outputs": [], "source": [ "def slope_func(state, t, system):\n", @@ -267,7 +259,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -295,10 +287,8 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": true - }, + "execution_count": 9, + "metadata": {}, "outputs": [], "source": [ "def range_func(angle, params): \n", @@ -325,14 +315,58 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Wall time: 165 ms\n" + "[ 0. 1. 28.28427125 28.28427125]\n", + "[1.73143253e-05 1.00001731e+00 2.82842676e+01 2.82842616e+01]\n", + "[3.46286505e-04 1.00034629e+00 2.82841993e+01 2.82840793e+01]\n", + "[5.19428766e-04 1.00051943e+00 2.82841633e+01 2.82839833e+01]\n", + "[1.38513897e-03 1.00138513e+00 2.82839834e+01 2.82835035e+01]\n", + "[1.53904243e-03 1.00153903e+00 2.82839514e+01 2.82834181e+01]\n", + "[1.73142151e-03 1.00173140e+00 2.82839114e+01 2.82833115e+01]\n", + "[1.73142151e-03 1.00173140e+00 2.82839114e+01 2.82833115e+01]\n", + "[5.19424251e-03 1.00519415e+00 2.82831918e+01 2.82813921e+01]\n", + "[6.92555388e-03 1.00692526e+00 2.82828320e+01 2.82804324e+01]\n", + "[1.55820008e-02 1.01558051e+00 2.82810332e+01 2.82756344e+01]\n", + "[1.71208671e-02 1.01711907e+00 2.82807135e+01 2.82747814e+01]\n", + "[1.90444255e-02 1.01904220e+00 2.82803138e+01 2.82737153e+01]\n", + "[1.90444253e-02 1.01904220e+00 2.82803138e+01 2.82737153e+01]\n", + "[ 0.05366823 1.05365793 28.27311994 28.25452485]\n", + "[ 0.07097022 1.07093936 28.26952883 28.2449389 ]\n", + "[ 0.15746931 1.15731735 28.25157969 28.19701935]\n", + "[ 0.17284129 1.17265827 28.24839206 28.18850562]\n", + "[ 0.19205366 1.19182763 28.24440904 28.17786584]\n", + "[ 0.19205349 1.19182736 28.24440912 28.17786594]\n", + "[ 0.53785196 1.53681114 28.17272895 27.98637249]\n", + "[ 0.70976391 1.7066655 28.13746831 27.89154481]\n", + "[ 1.5683528 2.55320675 27.96173581 27.41832065]\n", + "[ 1.72054444 2.70237153 27.93076703 27.33464134]\n", + "[ 1.91037826 2.88791945 27.89227403 27.23036067]\n", + "[ 1.91020607 2.88764665 27.89235604 27.23046367]\n", + "[ 5.32508864 6.22149323 27.2007423 25.35544056]\n", + "[ 6.93727077 7.63016094 26.90916468 24.50279972]\n", + "[15.01037044 14.57127389 25.44673238 20.24137176]\n", + "[16.52014025 15.8568477 25.15560473 19.45225421]\n", + "[18.22008322 17.14421717 24.87924035 18.57690145]\n", + "[18.03810702 16.86263695 24.96306548 18.68068978]\n", + "[27.2544995 23.7595691 23.47005921 13.9452524 ]\n", + "[31.24257365 25.24116513 23.02045164 12.01287476]\n", + "[52.44261652 33.32112818 20.2223726 1.74054676]\n", + "[58.27832581 37.06777872 19.01189553 -0.84190664]\n", + "[62.39842417 36.91005332 18.61696852 -2.8118032 ]\n", + "[58.81907502 31.88109955 19.82253665 -1.46700122]\n", + "[70.18157468 31.04019805 18.64910098 -6.99762866]\n", + "[75.10611975 27.05325263 18.13790684 -9.39363665]\n", + "[ 99.65768029 6.9191345 15.12102665 -21.10211762]\n", + "[104.80853871 5.15683685 14.14925527 -23.52553226]\n", + "[109.5044468 -2.51649973 13.44737199 -25.55843981]\n", + "[107.53901227 -7.82781491 14.11111066 -24.58125566]\n", + "Wall time: 204 ms\n" ] }, { @@ -347,7 +381,7 @@ "" ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -365,33 +399,981 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "[ 0. 1. 37.58770483 13.68080573]\n", + "[1.73141653e-05 1.00000630e+00 3.75877012e+01 1.36807999e+01]\n", + "[3.46283307e-04 1.00012604e+00 3.75876329e+01 1.36806893e+01]\n", + "[5.19424215e-04 1.00018905e+00 3.75875969e+01 1.36806310e+01]\n", + "[1.38512792e-03 1.00050414e+00 3.75874170e+01 1.36803398e+01]\n", + "[1.53903037e-03 1.00056015e+00 3.75873850e+01 1.36802881e+01]\n", + "[1.73140825e-03 1.00063017e+00 3.75873450e+01 1.36802233e+01]\n", + "[1.73140825e-03 1.00063017e+00 3.75873450e+01 1.36802233e+01]\n", + "[5.19420817e-03 1.00189049e+00 3.75866254e+01 1.36790586e+01]\n", + "[6.92553354e-03 1.00252052e+00 3.75862656e+01 1.36784762e+01]\n", + "[1.55820776e-02 1.00567057e+00 3.75844667e+01 1.36755645e+01]\n", + "[1.71209754e-02 1.00623051e+00 3.75841469e+01 1.36750469e+01]\n", + "[1.90445793e-02 1.00693040e+00 3.75837472e+01 1.36743999e+01]\n", + "[1.90445792e-02 1.00693040e+00 3.75837472e+01 1.36743999e+01]\n", + "[ 0.05366926 1.01952818 37.57655231 13.66275371]\n", + "[ 0.07097415 1.025815 37.57295861 13.65693391]\n", + "[ 0.15749035 1.05723574 37.5549942 13.62783859]\n", + "[ 0.17286673 1.06281469 37.55180267 13.62266799]\n", + "[ 0.19208529 1.06978532 37.5478142 13.61620557]\n", + "[ 0.19208521 1.06978524 37.54781424 13.61620559]\n", + "[ 0.53800102 1.19522692 37.47603093 13.49989014]\n", + "[ 0.71021494 1.25674223 37.44050969 13.44206039]\n", + "[ 1.57051858 1.56303305 37.26328081 13.15325101]\n", + "[ 1.72309006 1.61683783 37.23195938 13.10207883]\n", + "[ 1.91354301 1.6837274 37.19293285 13.03821431]\n", + "[ 1.91346052 1.68365449 37.19297 13.03823678]\n", + "[ 5.33992795 2.88482487 36.49132708 11.88942916]\n", + "[ 6.98044157 3.36634465 36.17568992 11.34601841]\n", + "[15.15983475 5.69240941 34.60517589 8.64099469]\n", + "[16.63367778 6.09061075 34.3173695 8.15970995]\n", + "[18.37960695 6.49046316 34.00008256 7.58555758]\n", + "[18.29365092 6.41616995 34.03816633 7.60846785]\n", + "[30.13652316 9.06337814 31.89206302 3.71904841]\n", + "[35.21793075 8.86458428 31.15089312 2.07117003]\n", + "[61.74442781 8.01508472 26.84580049 -6.42421012]\n", + "[68.52097233 9.11703481 25.28240307 -8.31934301]\n", + "[73.61842205 7.42795992 24.57222148 -9.96275431]\n", + "[69.85959519 4.36131405 25.94014569 -9.21025611]\n", + "[ 81.74701444 0.14059081 24.240016 -13.09759275]\n", + "[ 86.81422846 -3.97387292 23.51365022 -14.75374076]\n", + "[112.18417911 -24.43057104 19.68316501 -22.92614843]\n", + "[117.41964415 -26.74214167 18.76797251 -24.58055954]\n", + "[122.18832318 -33.16799563 17.98839555 -26.04483436]\n", + "[120.37708068 -36.60678382 18.40477449 -25.46282814]\n", "20.0 79.96823513701818 meter\n", + "[ 0. 1. 36.82019414 15.62924514]\n", + "[1.73142144e-05 1.00000735e+00 3.68201905e+01 1.56292390e+01]\n", + "[3.46284287e-04 1.00014699e+00 3.68201222e+01 1.56291224e+01]\n", + "[5.19425669e-04 1.00022048e+00 3.68200862e+01 1.56290611e+01]\n", + "[1.38513173e-03 1.00058795e+00 3.68199063e+01 1.56287543e+01]\n", + "[1.53903459e-03 1.00065327e+00 3.68198743e+01 1.56286997e+01]\n", + "[1.73141298e-03 1.00073493e+00 3.68198343e+01 1.56286316e+01]\n", + "[1.73141297e-03 1.00073493e+00 3.68198343e+01 1.56286316e+01]\n", + "[5.19422200e-03 1.00220476e+00 3.68191147e+01 1.56274044e+01]\n", + "[6.92555038e-03 1.00293955e+00 3.68187549e+01 1.56267909e+01]\n", + "[1.55821077e-02 1.00661333e+00 3.68169560e+01 1.56237233e+01]\n", + "[1.71210070e-02 1.00726638e+00 3.68166362e+01 1.56231780e+01]\n", + "[1.90446123e-02 1.00808265e+00 3.68162365e+01 1.56224963e+01]\n", + "[1.90446122e-02 1.00808265e+00 3.68162365e+01 1.56224963e+01]\n", + "[ 0.05366932 1.0227752 36.80904169 15.61022667]\n", + "[ 0.07097406 1.03010849 36.80544819 15.60409552]\n", + "[ 0.15748937 1.06676059 36.78748497 15.57344381]\n", + "[ 0.17286551 1.07326903 36.78429373 15.56799674]\n", + "[ 0.19208372 1.0814013 36.78030569 15.56118882]\n", + "[ 0.19208363 1.08140121 36.78030573 15.56118885]\n", + "[ 0.53799278 1.22775012 36.70853051 15.43865541]\n", + "[ 0.71018795 1.29962813 36.67303003 15.37775424]\n", + "[ 1.57038473 1.6576388 36.49592102 15.0736253 ]\n", + "[ 1.72293236 1.72059283 36.46462839 15.01974815]\n", + "[ 1.91334647 1.79888702 36.42564461 14.95251529]\n", + "[ 1.91325843 1.79880403 36.42568461 14.95254179]\n", + "[ 5.33899871 3.20505144 35.72484655 13.7431873 ]\n", + "[ 6.97771787 3.78022144 35.4111622 13.17298274]\n", + "[15.15034236 6.57153741 33.84993016 10.33414758]\n", + "[16.62634508 7.05474882 33.56251255 9.82789742]\n", + "[18.36933617 7.54919337 33.2486752 9.22694108]\n", + "[18.27749464 7.46450726 33.28966747 9.25392802]\n", + "[29.93880424 10.70614131 31.19623009 5.23906807]\n", + "[34.94446584 10.74476048 30.48405671 3.54698514]\n", + "[61.13950333 11.14368967 26.31100284 -5.21452328]\n", + "[67.90796626 12.5965018 24.75758594 -7.20723517]\n", + "[72.94658747 11.12536378 24.07886676 -8.8994209 ]\n", + "[69.12370731 7.81491071 25.46602954 -8.06519517]\n", + "[ 81.00716693 4.0513707 23.81672793 -12.1159234 ]\n", + "[ 8.60830635e+01 4.30913963e-02 2.31116792e+01 -1.38458617e+01]\n", + "[111.49270617 -19.9102949 19.36684276 -22.37756413]\n", + "[116.74102053 -22.09284827 18.45272209 -24.10354555]\n", + "[121.52726593 -28.51751821 17.68296117 -25.63283356]\n", + "[119.70571421 -32.10651181 18.11489898 -25.02664933]\n", "23.0 86.2962864918857 meter\n", + "[ 0. 1. 35.95176185 17.53484587]\n", + "[1.73142502e-05 1.00000844e+00 3.59517583e+01 1.75348394e+01]\n", + "[3.46285004e-04 1.00016889e+00 3.59516899e+01 1.75347164e+01]\n", + "[5.19426727e-04 1.00025334e+00 3.59516539e+01 1.75346516e+01]\n", + "[1.38513447e-03 1.00067557e+00 3.59514740e+01 1.75343279e+01]\n", + "[1.53903762e-03 1.00075063e+00 3.59514420e+01 1.75342703e+01]\n", + "[1.73141636e-03 1.00084446e+00 3.59514020e+01 1.75341984e+01]\n", + "[1.73141636e-03 1.00084446e+00 3.59514020e+01 1.75341984e+01]\n", + "[5.19423174e-03 1.00253334e+00 3.59506824e+01 1.75329035e+01]\n", + "[6.92556145e-03 1.00337764e+00 3.59503226e+01 1.75322561e+01]\n", + "[1.55821234e-02 1.00759899e+00 3.59485237e+01 1.75290190e+01]\n", + "[1.71210225e-02 1.00834937e+00 3.59482039e+01 1.75284436e+01]\n", + "[1.90446270e-02 1.00928731e+00 3.59478042e+01 1.75277243e+01]\n", + "[1.90446269e-02 1.00928731e+00 3.59478042e+01 1.75277243e+01]\n", + "[ 0.05366932 1.0261699 35.9406095 17.51477692]\n", + "[ 0.07097386 1.03459716 35.93701622 17.50830736]\n", + "[ 0.15748801 1.07671797 35.91905431 17.47596407]\n", + "[ 0.17286384 1.08419802 35.91586342 17.47021652]\n", + "[ 0.19208161 1.09354454 35.91187585 17.46303313]\n", + "[ 0.19208152 1.09354444 35.91187589 17.46303316]\n", + "[ 0.53798234 1.26174723 35.84010963 17.33374209]\n", + "[ 0.7101551 1.34444763 35.80463197 17.2695053 ]\n", + "[ 1.57022427 1.75646299 35.62765462 16.94874123]\n", + "[ 1.72274337 1.82896603 35.59639351 16.89192786]\n", + "[ 1.91311127 1.91915928 35.55745667 16.82103968]\n", + "[ 1.9130168 1.9190642 35.55749995 16.82107102]\n", + "[ 5.33789179 3.53925869 34.85754533 15.54601621]\n", + "[ 6.97448273 4.21119194 34.54599935 14.94695251]\n", + "[15.13897108 7.48320573 32.9948292 11.96385321]\n", + "[16.61740793 8.0548924 32.70770657 11.43045319]\n", + "[18.3568955 8.64604903 32.39762105 10.8007942 ]\n", + "[18.25821821 8.54888583 32.44195688 10.832668 ]\n", + "[29.69065495 12.36628168 30.41034951 6.70080848]\n", + "[34.60145025 12.6369195 29.72953069 4.968246 ]\n", + "[60.35913519 14.2585309 25.70672353 -4.0406498 ]\n", + "[67.08310989 16.05658691 24.17459062 -6.12673786]\n", + "[72.04336591 14.80128331 23.52999027 -7.86416936]\n", + "[68.18696894 11.25162758 24.92324146 -6.95014341]\n", + "[ 80.43971776 7.8348023 23.27606551 -11.30867878]\n", + "[ 85.65508558 3.71580659 22.5747028 -13.16376546]\n", + "[111.78793173 -16.72428792 18.80116879 -22.30834398]\n", + "[117.26340699 -18.75353981 17.83746883 -24.18232266]\n", + "[122.16560665 -25.53707681 17.05486141 -25.80381739]\n", + "[120.14221447 -29.68563195 17.55176683 -25.10198517]\n", "26.0 91.59647908800756 meter\n", - "29.0 95.89089380357947 meter\n", + "[ 0. 1. 34.98478829 19.39238481]\n", + "[1.73142767e-05 1.00000960e+00 3.49847847e+01 1.93923780e+01]\n", + "[3.46285534e-04 1.00019195e+00 3.49847163e+01 1.93922479e+01]\n", + "[5.19427500e-04 1.00028792e+00 3.49846803e+01 1.93921795e+01]\n", + "[1.38513644e-03 1.00076779e+00 3.49845004e+01 1.93918372e+01]\n", + "[1.53903978e-03 1.00085309e+00 3.49844684e+01 1.93917764e+01]\n", + "[1.73141877e-03 1.00095973e+00 3.49844285e+01 1.93917003e+01]\n", + "[1.73141877e-03 1.00095973e+00 3.49844285e+01 1.93917003e+01]\n", + "[5.19423850e-03 1.00287915e+00 3.49837088e+01 1.93903314e+01]\n", + "[6.92556822e-03 1.00383871e+00 3.49833490e+01 1.93896470e+01]\n", + "[1.55821279e-02 1.00863634e+00 3.49815501e+01 1.93862250e+01]\n", + "[1.71210253e-02 1.00948917e+00 3.49812304e+01 1.93856167e+01]\n", + "[1.90446272e-02 1.01055516e+00 3.49808307e+01 1.93848563e+01]\n", + "[1.90446271e-02 1.01055516e+00 3.49808307e+01 1.93848563e+01]\n", + "[ 0.05366926 1.02974263 34.97363604 19.37116909]\n", + "[ 0.07097357 1.03932112 34.97004301 19.36433013]\n", + "[ 0.15748628 1.08719673 34.95208257 19.3301404 ]\n", + "[ 0.17286173 1.09569917 34.94889205 19.32406488]\n", + "[ 0.19207897 1.10632335 34.944905 19.31647165]\n", + "[ 0.19207887 1.10632324 34.94490505 19.31647169]\n", + "[ 0.53796963 1.29752104 34.8731487 19.17980487]\n", + "[ 0.71011597 1.3915981 34.83769621 19.11193012]\n", + "[ 1.57003477 1.86037315 34.66086386 18.77302574]\n", + "[ 1.72252026 1.94290736 34.62963733 18.71301164]\n", + "[ 1.91283383 2.04559598 34.59075217 18.63814008]\n", + "[ 1.91273187 2.04548628 34.59079922 18.63817727]\n", + "[ 5.33658949 3.89032557 33.89181706 17.29153136]\n", + "[ 6.97068352 4.66279018 33.58261926 16.6612723 ]\n", + "[15.12557367 8.43427501 32.04237452 13.52203626]\n", + "[16.60681508 9.09872347 31.75541704 12.95894634]\n", + "[18.34218544 9.78919361 31.44942039 12.29844829]\n", + "[18.23553711 9.6769317 31.49762083 12.33622955]\n", + "[29.39929069 14.04928184 29.53553948 8.09433866]\n", + "[34.1988158 14.54406399 28.88796575 6.32436838]\n", + "[59.42833923 17.35014629 25.03039747 -2.91619849]\n", + "[66.07697164 19.48637273 23.52913718 -5.09178094]\n", + "[70.94176324 18.44062106 22.92075388 -6.87146624]\n", + "[67.07714885 14.65421362 24.30880999 -5.87980791]\n", + "[ 79.46050465 11.65893111 22.69968872 -10.48289473]\n", + "[ 84.73000202 7.52328044 22.01539542 -12.44185109]\n", + "[111.14202419 -12.9835139 18.28760137 -22.09155342]\n", + "[116.71978836 -14.87619383 17.29799207 -24.08233324]\n", + "[121.67216697 -21.87266699 16.51552381 -25.78343075]\n", + "[119.54225102 -26.40645007 17.05884065 -25.01307558]\n", + "29.0 95.89089380357947 meter\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 1. 33.92192385 21.19677057]\n", + "[1.73142962e-05 1.00001082e+00 3.39219202e+01 2.11967633e+01]\n", + "[3.46285924e-04 1.00021638e+00 3.39218519e+01 2.11966256e+01]\n", + "[5.19428059e-04 1.00032457e+00 3.39218159e+01 2.11965531e+01]\n", + "[1.38513782e-03 1.00086552e+00 3.39216360e+01 2.11961905e+01]\n", + "[1.53904129e-03 1.00096169e+00 3.39216040e+01 2.11961261e+01]\n", + "[1.73142044e-03 1.00108190e+00 3.39215640e+01 2.11960455e+01]\n", + "[1.73142044e-03 1.00108190e+00 3.39215640e+01 2.11960455e+01]\n", + "[5.19424294e-03 1.00324566e+00 3.39208444e+01 2.11945954e+01]\n", + "[6.92557154e-03 1.00432737e+00 3.39204846e+01 2.11938704e+01]\n", + "[1.55821228e-02 1.00973576e+00 3.39186857e+01 2.11902455e+01]\n", + "[1.71210173e-02 1.01069715e+00 3.39183660e+01 2.11896011e+01]\n", + "[1.90446148e-02 1.01189885e+00 3.39179663e+01 2.11887956e+01]\n", + "[1.90446147e-02 1.01189885e+00 3.39179663e+01 2.11887956e+01]\n", + "[ 0.05366917 1.03352906 33.91077173 21.174297 ]\n", + "[ 0.07097318 1.04432751 33.90717898 21.16705289]\n", + "[ 0.15748415 1.09830136 33.88922016 21.13083806]\n", + "[ 0.17285916 1.10788712 33.88603006 21.12440286]\n", + "[ 0.19207577 1.11986509 33.8820436 21.11636018]\n", + "[ 0.19207566 1.11986497 33.88204365 21.11636023]\n", + "[ 0.53795447 1.33542757 33.8102983 20.9716047 ]\n", + "[ 0.71006993 1.44154645 33.77487366 20.89974367]\n", + "[ 1.56981302 1.97038748 33.59820153 20.54096499]\n", + "[ 1.72225929 2.06353155 33.56701304 20.47744557]\n", + "[ 1.91250943 2.17943102 33.52818499 20.39821307]\n", + "[ 1.91239871 2.1793035 33.52823645 20.3982574 ]\n", + "[ 5.33506907 4.26162331 32.83032843 18.97324129]\n", + "[ 6.96625397 5.1391292 32.52371798 18.30912957]\n", + "[15.1099682 9.43265115 30.99536056 15.00018688]\n", + "[16.59450803 10.19513678 30.70839115 14.40442533]\n", + "[18.32508831 10.98803875 30.40686178 13.71067199]\n", + "[18.20909782 10.85734192 30.45955657 13.75566026]\n", + "[29.06944571 15.76191943 28.57368998 9.40980745]\n", + "[33.74316369 16.47100626 27.96091167 7.60505062]\n", + "[58.36398806 20.41325209 24.28127162 -1.85345641]\n", + "[64.91009799 22.8790625 22.81930218 -4.11470503]\n", + "[69.66400682 22.03331606 22.24880178 -5.93405622]\n", + "[65.81307696 18.01144649 23.6216087 -4.86735497]\n", + "[78.18016316 15.46314424 22.0719131 -9.67881923]\n", + "[ 83.45094576 11.35507235 21.41259391 -11.72994358]\n", + "[109.86596882 -9.03355813 17.77465986 -21.82463145]\n", + "[115.46749184 -10.81763711 16.77345376 -23.91450085]\n", + "[120.42846809 -17.95602014 15.99873743 -25.68806946]\n", + "[118.25202622 -22.76351643 16.57700766 -24.86477519]\n", "32.0 99.20335822576214 meter\n", + "[ 0. 1. 32.76608177 22.94305745]\n", + "[1.73143101e-05 1.00001212e+00 3.27660782e+01 2.29430498e+01]\n", + "[3.46286201e-04 1.00024247e+00 3.27660098e+01 2.29429035e+01]\n", + "[5.19428446e-04 1.00036371e+00 3.27659738e+01 2.29428265e+01]\n", + "[1.38513872e-03 1.00096988e+00 3.27657939e+01 2.29424416e+01]\n", + "[1.53904227e-03 1.00107764e+00 3.27657619e+01 2.29423732e+01]\n", + "[1.73142150e-03 1.00121234e+00 3.27657219e+01 2.29422876e+01]\n", + "[1.73142150e-03 1.00121234e+00 3.27657219e+01 2.29422876e+01]\n", + "[5.19424548e-03 1.00363698e+00 3.27650023e+01 2.29407480e+01]\n", + "[6.92557191e-03 1.00484912e+00 3.27646425e+01 2.29399783e+01]\n", + "[1.55821091e-02 1.01090960e+00 3.27628437e+01 2.29361297e+01]\n", + "[1.71209993e-02 1.01198691e+00 3.27625239e+01 2.29354455e+01]\n", + "[1.90445909e-02 1.01333351e+00 3.27621242e+01 2.29345903e+01]\n", + "[1.90445908e-02 1.01333351e+00 3.27621242e+01 2.29345903e+01]\n", + "[ 0.05366903 1.03757178 32.7549298 22.9191969 ]\n", + "[ 0.07097269 1.04967262 32.75133736 22.9115061 ]\n", + "[ 0.1574816 1.11015656 32.73338036 22.87305853]\n", + "[ 0.17285608 1.12089873 32.73019072 22.86622679]\n", + "[ 0.19207195 1.13432178 32.72620491 22.85768861]\n", + "[ 0.19207183 1.13432163 32.72620496 22.85768867]\n", + "[ 0.5379366 1.37589163 32.65447188 22.70401588]\n", + "[ 0.71001611 1.49484953 32.61907817 22.62776419]\n", + "[ 1.56955488 2.08771882 32.4425838 22.24709881]\n", + "[ 1.72195564 2.19216622 32.41143733 22.17972072]\n", + "[ 1.91213209 2.32213352 32.37267264 22.09568954]\n", + "[ 1.91201106 2.32198406 32.37272926 22.09574269]\n", + "[ 5.33330186 4.65715823 31.67601266 20.58449783]\n", + "[ 6.96111122 5.64506602 31.37226439 19.88349302]\n", + "[15.09193275 10.4875787 29.85687219 16.38922752]\n", + "[16.58042612 11.3545926 29.569651 15.75725657]\n", + "[18.3054713 12.25360291 29.2730168 15.02750003]\n", + "[18.1784637 12.10017182 29.33097465 15.08136954]\n", + "[28.7043009 17.51233566 27.527284 10.63708048]\n", + "[33.23902946 18.42415924 26.95058904 8.79982364]\n", + "[57.17796925 23.44516646 23.4598265 -0.864274 ]\n", + "[63.59688098 26.23028674 22.04474119 -3.20723262]\n", + "[68.22571184 25.57217815 21.5134338 -5.06400731]\n", + "[64.40814044 21.31565665 22.86175683 -3.92542689]\n", + "[76.65664125 19.21255518 21.38556776 -8.92244599]\n", + "[ 81.89114198 15.14912997 20.75631821 -11.0586372 ]\n", + "[108.11174943 -5.06355367 17.23694046 -21.56068151]\n", + "[113.68071562 -6.77211116 16.23364867 -23.73868449]\n", + "[118.61950703 -14.02136745 15.47159021 -25.57969917]\n", + "[116.43860183 -19.02619105 16.07708161 -24.71263756]\n", "35.0 101.55668007973463 meter\n", + "[ 0. 1. 31.52043014 24.62645901]\n", + "[1.73143193e-05 1.00001353e+00 3.15204265e+01 2.46264508e+01]\n", + "[3.46286385e-04 1.00027055e+00 3.15203582e+01 2.46262951e+01]\n", + "[5.19428688e-04 1.00040582e+00 3.15203222e+01 2.46262132e+01]\n", + "[1.38513922e-03 1.00108218e+00 3.15201423e+01 2.46258035e+01]\n", + "[1.53904279e-03 1.00120242e+00 3.15201103e+01 2.46257306e+01]\n", + "[1.73142204e-03 1.00135272e+00 3.15200703e+01 2.46256396e+01]\n", + "[1.73142204e-03 1.00135272e+00 3.15200703e+01 2.46256396e+01]\n", + "[5.19424636e-03 1.00405812e+00 3.15193507e+01 2.46240007e+01]\n", + "[6.92556958e-03 1.00541061e+00 3.15189909e+01 2.46231813e+01]\n", + "[1.55820869e-02 1.01217286e+00 3.15171921e+01 2.46190845e+01]\n", + "[1.71209717e-02 1.01337492e+00 3.15168723e+01 2.46183563e+01]\n", + "[1.90445556e-02 1.01487745e+00 3.15164726e+01 2.46174459e+01]\n", + "[1.90445555e-02 1.01487745e+00 3.15164726e+01 2.46174459e+01]\n", + "[ 0.05366885 1.0419224 31.50927835 24.60106012]\n", + "[ 0.0709721 1.05542463 31.50568624 24.59287392]\n", + "[ 0.15747859 1.12291339 31.48773128 24.55195027]\n", + "[ 0.17285245 1.13489974 31.48454216 24.5446788 ]\n", + "[ 0.19206745 1.14987752 31.48055707 24.53559117]\n", + "[ 0.19206732 1.14987734 31.48055713 24.53559123]\n", + "[ 0.53791565 1.41942764 31.40883776 24.37203024]\n", + "[ 0.70995341 1.55218127 31.37347859 24.2909147 ]\n", + "[ 1.56925509 2.21383322 31.19718241 23.88600804]\n", + "[ 1.72160326 2.33041586 31.16608253 23.81435804]\n", + "[ 1.91169421 2.47547849 31.12738849 23.72501659]\n", + "[ 1.91156096 2.47530169 31.1274512 23.72508075]\n", + "[ 5.33125177 5.08176118 30.43206246 22.11842419]\n", + "[ 6.95515162 6.18641854 30.13149492 21.37702524]\n", + "[15.07119839 11.61002252 28.63028279 17.67933029]\n", + "[16.56451419 12.58958312 28.34248576 17.0069016 ]\n", + "[18.28319169 13.59898255 28.05123402 16.23799778]\n", + "[18.14309592 13.4171996 28.11540338 16.3029334 ]\n", + "[28.30600038 19.3102381 26.39929907 11.76542077]\n", + "[32.68959032 20.41155545 25.85976308 9.89767991]\n", + "[5.58789708e+01 2.64449042e+01 2.25674508e+01 3.93089053e-02]\n", + "[62.1477577 29.53709169 21.20624795 -2.38113743]\n", + "[66.63825 29.0515663 20.71513662 -4.27342807]\n", + "[62.87225441 24.56124313 22.03028299 -3.06685448]\n", + "[74.92437967 22.8834565 20.63747324 -8.23425441]\n", + "[ 80.093231 18.86426268 20.04166222 -10.45103178]\n", + "[105.96337681 -1.19679323 16.66026809 -21.33494057]\n", + "[111.45446809 -2.86736715 15.66156393 -23.59363081]\n", + "[116.34576218 -10.22165193 14.91544013 -25.49777534]\n", + "[114.19361642 -15.36786752 15.54261775 -24.5925976 ]\n", "38.0 102.97173880917646 meter\n", + "[ 0. 1. 30.18838321 26.24236116]\n", + "[1.73143244e-05 1.00001505e+00 3.01883796e+01 2.62423524e+01]\n", + "[3.46286487e-04 1.00030102e+00 3.01883112e+01 2.62421862e+01]\n", + "[5.19428802e-04 1.00045153e+00 3.01882753e+01 2.62420987e+01]\n", + "[1.38513934e-03 1.00120407e+00 3.01880953e+01 2.62416613e+01]\n", + "[1.53904290e-03 1.00133786e+00 3.01880634e+01 2.62415835e+01]\n", + "[1.73142212e-03 1.00150509e+00 3.01880234e+01 2.62414863e+01]\n", + "[1.73142212e-03 1.00150509e+00 3.01880234e+01 2.62414863e+01]\n", + "[5.19424571e-03 1.00451521e+00 3.01873037e+01 2.62397366e+01]\n", + "[6.92556464e-03 1.00602004e+00 3.01869440e+01 2.62388618e+01]\n", + "[1.55820562e-02 1.01354397e+00 3.01851452e+01 2.62344880e+01]\n", + "[1.71209341e-02 1.01488142e+00 3.01848254e+01 2.62337105e+01]\n", + "[1.90445085e-02 1.01655319e+00 3.01844257e+01 2.62327386e+01]\n", + "[1.90445083e-02 1.01655319e+00 3.01844257e+01 2.62327386e+01]\n", + "[ 0.05366862 1.04664438 30.1772316 26.21524487]\n", + "[ 0.07097139 1.06166739 30.17363989 26.20650567]\n", + "[ 0.15747504 1.13675756 30.15568722 26.16281812]\n", + "[ 0.17284817 1.15009395 30.15249869 26.15505584]\n", + "[ 0.19206216 1.16675866 30.14851441 26.14535495]\n", + "[ 0.19206201 1.16675845 30.14851448 26.14535502]\n", + "[ 0.53789117 1.46666796 30.07681052 25.97075766]\n", + "[ 0.70988043 1.61436959 30.04149013 25.88421949]\n", + "[ 1.56890701 2.35052933 29.86541613 25.45229184]\n", + "[ 1.72119447 2.48024868 29.83436817 25.37588228]\n", + "[ 1.91118621 2.64164255 29.79575336 25.28062743]\n", + "[ 1.91103834 2.64143127 29.79582332 25.28070551]\n", + "[ 5.32887325 5.54134368 29.1019228 23.56781185]\n", + "[ 6.94824486 6.77025594 28.80490857 22.7819594 ]\n", + "[15.04744023 12.81317337 27.31925353 18.85966431]\n", + "[16.54673533 13.91526174 27.03044205 18.1416059 ]\n", + "[18.25810644 15.03998352 26.74513189 17.32993344]\n", + "[18.10232774 14.82239583 26.8166969 17.40882745]\n", + "[27.87594594 21.16722023 25.19315334 12.78314784]\n", + "[32.09707344 22.4430219 24.69167347 10.88669843]\n", + "[54.47353661 29.4126002 21.60625225 0.84452324]\n", + "[60.57051801 32.79723966 20.3054965 -1.64880352]\n", + "[64.91015784 32.46644887 19.85530915 -3.57506403]\n", + "[61.21302556 27.74366429 21.12892875 -2.30526565]\n", + "[73.00549451 26.45705038 19.82668601 -7.63275677]\n", + "[78.08407091 22.46869415 19.26645131 -9.92733658]\n", + "[103.47023299 2.47310059 16.03611229 -21.1745212 ]\n", + "[108.84275544 0.79745634 15.04677488 -23.50796217]\n", + "[113.66417052 -6.67426773 14.31875187 -25.4708265 ]\n", + "[111.57085311 -11.9173996 14.96353973 -24.53167523]\n", "41.0 103.46740813177843 meter\n", - "44.0 103.060922479178 meter\n", + "[ 0. 1. 28.77359201 27.78633482]\n", + "[1.73143256e-05 1.00001672e+00 2.87735884e+01 2.77863254e+01]\n", + "[3.46286513e-04 1.00033440e+00 2.87735200e+01 2.77861474e+01]\n", + "[5.19428795e-04 1.00050160e+00 2.87734841e+01 2.77860537e+01]\n", + "[1.38513912e-03 1.00133760e+00 2.87733041e+01 2.77855851e+01]\n", + "[1.53904261e-03 1.00148622e+00 2.87732722e+01 2.77855018e+01]\n", + "[1.73142174e-03 1.00167200e+00 2.87732322e+01 2.77853976e+01]\n", + "[1.73142174e-03 1.00167200e+00 2.87732322e+01 2.77853976e+01]\n", + "[5.19424356e-03 1.00501593e+00 2.87725125e+01 2.77835233e+01]\n", + "[6.92555704e-03 1.00668765e+00 2.87721528e+01 2.77825862e+01]\n", + "[1.55820163e-02 1.01504594e+00 2.87703540e+01 2.77779008e+01]\n", + "[1.71208858e-02 1.01653171e+00 2.87700342e+01 2.77770679e+01]\n", + "[1.90444485e-02 1.01838886e+00 2.87696346e+01 2.77760268e+01]\n", + "[1.90444484e-02 1.01838886e+00 2.87696346e+01 2.77760268e+01]\n", + "[ 0.05366834 1.05181696 28.76244063 27.75728715]\n", + "[ 0.07097054 1.06850563 28.75884936 27.74792614]\n", + "[ 0.15747086 1.15192101 28.74089928 27.70113079]\n", + "[ 0.17284315 1.16673584 28.73771141 27.69281667]\n", + "[ 0.19205596 1.18524787 28.73372805 27.68242628]\n", + "[ 0.1920558 1.18524762 28.73372813 27.68242638]\n", + "[ 0.53786255 1.51840209 28.66204162 27.49542096]\n", + "[ 0.70979535 1.68244742 28.62676507 27.40279375]\n", + "[ 1.56850216 2.50004814 28.45094173 26.94053064]\n", + "[ 1.72071952 2.64411645 28.41995197 26.8587804 ]\n", + "[ 1.9105959 2.82333623 28.38142657 26.75689402]\n", + "[ 1.9104304 2.82308085 28.38150526 26.75698995]\n", + "[ 5.32610839 6.04325049 27.68928334 24.92497228]\n", + "[ 6.94022585 7.4052942 27.3962626 24.08992412]\n", + "[15.02026641 14.11312951 25.92773421 19.91804223]\n", + "[16.52709205 15.35031044 25.63731188 19.14795829]\n", + "[18.23008946 16.59598534 25.35858987 18.28931511]\n", + "[18.05532983 16.33253557 25.43904833 18.38605773]\n", + "[27.41496269 23.0972049 23.91267974 13.67722186]\n", + "[31.46299327 24.53048487 23.44999845 11.75360248]\n", + "[52.96671261 32.34906508 20.5789481 1.53730508]\n", + "[58.87111194 36.0086016 19.34488981 -1.0237953 ]\n", + "[63.04800679 35.81157023 18.93610021 -2.98290403]\n", + "[59.43646624 30.85860357 20.16003142 -1.65571793]\n", + "[70.91481299 29.91590144 18.95368951 -7.13638579]\n", + "[75.88128608 25.93400863 18.43016572 -9.50718375]\n", + "[100.66128292 5.86437945 15.35908813 -21.10267006]\n", + "[105.87471335 4.13331347 14.38250271 -23.50480366]\n", + "[110.60538581 -3.48326727 13.67393744 -25.5212313 ]\n", + "[108.60216565 -8.7839873 14.33333244 -24.55255356]\n", + "44.0 103.060922479178 meter\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 1. 27.2799344 29.25414806]\n", + "[1.73143232e-05 1.00001857e+00 2.72799308e+01 2.92541380e+01]\n", + "[3.46286464e-04 1.00037135e+00 2.72798624e+01 2.92539465e+01]\n", + "[5.19428668e-04 1.00055702e+00 2.72798265e+01 2.92538457e+01]\n", + "[1.38513855e-03 1.00148537e+00 2.72796465e+01 2.92533418e+01]\n", + "[1.53904193e-03 1.00165040e+00 2.72796146e+01 2.92532522e+01]\n", + "[1.73142090e-03 1.00185670e+00 2.72795746e+01 2.92531402e+01]\n", + "[1.73142090e-03 1.00185670e+00 2.72795746e+01 2.92531402e+01]\n", + "[5.19423987e-03 1.00557004e+00 2.72788549e+01 2.92511245e+01]\n", + "[6.92554658e-03 1.00742642e+00 2.72784952e+01 2.92501167e+01]\n", + "[1.55819661e-02 1.01670801e+00 2.72766964e+01 2.92450781e+01]\n", + "[1.71208255e-02 1.01835791e+00 2.72763767e+01 2.92441824e+01]\n", + "[1.90443742e-02 1.02042020e+00 2.72759770e+01 2.92430628e+01]\n", + "[1.90443740e-02 1.02042020e+00 2.72759770e+01 2.92430628e+01]\n", + "[ 0.053668 1.05754081 27.26878327 29.22291033]\n", + "[ 0.07096954 1.07607233 27.2651925 29.21284433]\n", + "[ 0.15746595 1.16869821 27.24724538 29.16252556]\n", + "[ 0.17283725 1.18514852 27.24405827 29.15358585]\n", + "[ 0.19204867 1.20570402 27.24007596 29.14241386]\n", + "[ 0.19204849 1.20570371 27.24007605 29.14241398]\n", + "[ 0.537829 1.57563214 27.16840943 28.94134305]\n", + "[ 0.70969581 1.75772496 27.13318281 28.84182304]\n", + "[ 1.56802965 2.66522775 26.95764438 28.34522811]\n", + "[ 1.72016591 2.8251237 26.92672024 28.25743684]\n", + "[ 1.90990766 3.02399032 26.88829649 28.1480545 ]\n", + "[ 1.90972062 3.02367763 26.88838584 28.1481737 ]\n", + "[ 5.32288281 6.59675497 26.19807124 26.18152219]\n", + "[ 6.93088323 8.10244512 25.9095696 25.29169271]\n", + "[14.98920486 15.52983302 24.4599666 20.84041795]\n", + "[16.50566211 16.91816351 24.16711621 20.01025534]\n", + "[18.1990628 18.29115124 23.89573641 19.09972513]\n", + "[18.00106289 17.96800576 23.9870106 19.21964294]\n", + "[26.92338386 25.11703429 22.56212071 14.43269294]\n", + "[30.78828452 26.68840013 22.13884321 12.48318379]\n", + "[51.3624561 35.25532436 19.48880454 2.1016052 ]\n", + "[57.05416739 39.1684653 18.32747565 -0.52154328]\n", + "[61.05696147 39.08050299 17.96031614 -2.51290961]\n", + "[57.54744938 33.90108319 19.1264539 -1.13546682]\n", + "[68.66225898 33.24123806 18.01998159 -6.76477856]\n", + "[73.49629354 29.23108184 17.5333836 -9.21105248]\n", + "[ 97.5511647 8.89692971 14.62575564 -21.14063381]\n", + "[102.56119358 7.05063992 13.66428505 -23.60347997]\n", + "[107.18080291 -0.7518645 12.97596686 -25.66685318]\n", + "[105.30437076 -6.07084006 13.64771504 -24.6755453 ]\n", "47.0 101.7684506860653 meter\n", + "[ 0. 1. 25.71150439 30.64177772]\n", + "[1.73143169e-05 1.00002063e+00 2.57115008e+01 3.06417668e+01]\n", + "[3.46286338e-04 1.00041269e+00 2.57114324e+01 3.06415600e+01]\n", + "[5.19428417e-04 1.00061903e+00 2.57113964e+01 3.06414511e+01]\n", + "[1.38513760e-03 1.00165073e+00 2.57112165e+01 3.06409067e+01]\n", + "[1.53904082e-03 1.00183414e+00 2.57111845e+01 3.06408099e+01]\n", + "[1.73141957e-03 1.00206340e+00 2.57111446e+01 3.06406890e+01]\n", + "[1.73141957e-03 1.00206340e+00 2.57111446e+01 3.06406890e+01]\n", + "[5.19423449e-03 1.00619014e+00 2.57104249e+01 3.06385115e+01]\n", + "[6.92553291e-03 1.00825317e+00 2.57100652e+01 3.06374228e+01]\n", + "[1.55819040e-02 1.01856799e+00 2.57082664e+01 3.06319798e+01]\n", + "[1.71207512e-02 1.02040154e+00 2.57079467e+01 3.06310122e+01]\n", + "[1.90442830e-02 1.02269340e+00 2.57075471e+01 3.06298028e+01]\n", + "[1.90442828e-02 1.02269340e+00 2.57075471e+01 3.06298028e+01]\n", + "[ 0.05366759 1.06394607 25.70035355 30.60803315]\n", + "[ 0.07096834 1.08453943 25.69676336 30.5971603 ]\n", + "[ 0.15746015 1.18746982 25.67881965 30.54280925]\n", + "[ 0.17283029 1.20574966 25.6756334 30.53315369]\n", + "[ 0.19204007 1.22859095 25.6716523 30.52108733]\n", + "[ 0.19203986 1.22859056 25.6716524 30.52108748]\n", + "[ 0.53778947 1.63965307 25.60000866 30.30392222]\n", + "[ 0.70957875 1.84189391 25.56483941 30.19652768]\n", + "[ 1.56747528 2.84972657 25.38962754 29.6607211 ]\n", + "[ 1.7195174 3.02727147 25.35877796 29.56603412]\n", + "[ 1.90910117 3.24802453 25.32047078 29.44810235]\n", + "[ 1.9088875 3.24763597 25.32057328 29.44825243]\n", + "[ 5.3190997 7.21377009 24.63244431 27.3280684 ]\n", + "[ 6.9199428 8.87559395 24.34909704 26.37681908]\n", + "[14.95368799 17.08838246 22.92049127 21.61015954]\n", + "[16.48266017 18.64877933 22.62408135 20.70956433]\n", + "[18.16505287 20.15616633 22.36093119 19.74134121]\n", + "[17.93821227 19.7538811 22.46552866 19.8918759 ]\n", + "[26.40107938 27.24724147 21.14614178 15.03193339]\n", + "[30.07336649 28.93431384 20.76274906 13.05750477]\n", + "[49.66390594 38.1319779 18.33961202 2.51845479]\n", + "[55.12334095 42.27255276 17.25691041 -0.16027011]\n", + "[58.9411581 42.26433046 16.93137667 -2.18400201]\n", + "[55.55001297 36.86427825 18.03154379 -0.76500277]\n", + "[66.25378536 36.41016209 17.02785197 -6.53983512]\n", + "[70.93539063 32.32658161 16.57746883 -9.06125122]\n", + "[ 94.14175385 11.48610192 13.8341454 -21.30794433]\n", + "[ 98.89587296 9.45321147 12.88969055 -23.81912375]\n", + "[103.38368307 1.41063779 12.2221342 -25.92043806]\n", + "[101.68120479 -3.88242146 12.9041021 -24.9189026 ]\n", "50.0 99.60572853320414 meter\n", + "[ 0. 1. 24.07260093 31.9454204 ]\n", + "[1.73143064e-05 1.00002298e+00 2.40725973e+01 3.19454086e+01]\n", + "[3.46286127e-04 1.00045954e+00 2.40725290e+01 3.19451839e+01]\n", + "[5.19428026e-04 1.00068930e+00 2.40724930e+01 3.19450657e+01]\n", + "[1.38513623e-03 1.00183812e+00 2.40723131e+01 3.19444745e+01]\n", + "[1.53903923e-03 1.00204235e+00 2.40722811e+01 3.19443694e+01]\n", + "[1.73141770e-03 1.00229764e+00 2.40722411e+01 3.19442380e+01]\n", + "[1.73141769e-03 1.00229764e+00 2.40722411e+01 3.19442380e+01]\n", + "[5.19422720e-03 1.00689285e+00 2.40715215e+01 3.19418733e+01]\n", + "[6.92551550e-03 1.00919006e+00 2.40711617e+01 3.19406911e+01]\n", + "[1.55818277e-02 1.02067573e+00 2.40693630e+01 3.19347802e+01]\n", + "[1.71206601e-02 1.02271740e+00 2.40690433e+01 3.19337294e+01]\n", + "[1.90441717e-02 1.02526940e+00 2.40686437e+01 3.19324160e+01]\n", + "[1.90441714e-02 1.02526940e+00 2.40686437e+01 3.19324160e+01]\n", + "[ 0.05366709 1.07120442 24.06145043 31.90877522]\n", + "[ 0.07096691 1.09413367 24.05786092 31.89696899]\n", + "[ 0.15745325 1.20873776 24.03992116 31.83795337]\n", + "[ 0.17282202 1.22908994 24.03673592 31.82746979]\n", + "[ 0.19202986 1.25452025 24.03275622 31.81436898]\n", + "[ 0.19202962 1.25451976 24.03275634 31.81436917]\n", + "[ 0.53774258 1.71217179 23.96113918 31.57858923]\n", + "[ 0.70944006 1.93718213 23.92603652 31.46210362]\n", + "[ 1.56682024 3.05835333 23.75120267 30.88104043]\n", + "[ 1.7187526 3.2558178 23.72043849 30.77839956]\n", + "[ 1.90814966 3.50124427 23.68226632 30.65061621]\n", + "[ 1.90790252 3.50075315 23.68238531 30.65080813]\n", + "[ 5.31463099 7.90989434 22.99678557 28.35373694]\n", + "[ 6.90704319 9.74272514 22.71937085 27.33309935]\n", + "[14.91303667 18.82091446 21.3141593 22.2069723 ]\n", + "[16.45854536 20.58128271 21.01260221 21.22230466]\n", + "[18.12829258 22.23080819 20.75873662 20.18945877]\n", + "[17.86509606 21.721369 20.87998923 20.3812477 ]\n", + "[25.84743987 29.51304573 19.66986627 15.45352556]\n", + "[29.31815797 31.2895526 19.32672534 13.45474357]\n", + "[47.873578 40.97812816 17.13568996 2.76461043]\n", + "[5.30815838e+01 4.53134250e+01 1.61374645e+01 3.76569150e-02]\n", + "[56.70398954 45.34956823 15.8533096 -2.01950889]\n", + "[53.44758404 39.73766281 16.87910978 -0.56955264]\n", + "[63.69116755 39.39201306 15.98025681 -6.48664042]\n", + "[68.19927706 35.17935987 15.56439269 -9.08246305]\n", + "[ 90.42005865 13.54078339 12.98394161 -21.62087831]\n", + "[ 94.85190624 11.23731211 12.0592191 -24.15989342]\n", + "[ 99.18536102 2.88856957 11.41313392 -26.28650455]\n", + "[ 97.72128429 -2.3247922 12.10169108 -25.29727603]\n", "53.0 96.58867331645769 meter\n", + "[ 0. 1. 22.36771614 33.1615029 ]\n", + "[1.73142909e-05 1.00002567e+00 2.23677125e+01 3.31614900e+01]\n", + "[3.46285818e-04 1.00051339e+00 2.23676442e+01 3.31612445e+01]\n", + "[5.19427474e-04 1.00077008e+00 2.23676082e+01 3.31611153e+01]\n", + "[1.38513436e-03 1.00205353e+00 2.23674283e+01 3.31604693e+01]\n", + "[1.53903708e-03 1.00228169e+00 2.23673963e+01 3.31603544e+01]\n", + "[1.73141517e-03 1.00256690e+00 2.23673563e+01 3.31602108e+01]\n", + "[1.73141517e-03 1.00256690e+00 2.23673563e+01 3.31602108e+01]\n", + "[5.19421764e-03 1.00770060e+00 2.23666367e+01 3.31576268e+01]\n", + "[6.92549354e-03 1.01026700e+00 2.23662769e+01 3.31563349e+01]\n", + "[1.55817340e-02 1.02309849e+00 2.23644783e+01 3.31498758e+01]\n", + "[1.71205485e-02 1.02537939e+00 2.23641586e+01 3.31487276e+01]\n", + "[1.90440354e-02 1.02823039e+00 2.23637590e+01 3.31472924e+01]\n", + "[1.90440351e-02 1.02823039e+00 2.23637590e+01 3.31472924e+01]\n", + "[ 0.05366649 1.07954737 22.35656605 33.12145924]\n", + "[ 0.07096519 1.10516087 22.35297733 33.10855964]\n", + "[ 0.15744498 1.23317884 22.33504223 33.04408022]\n", + "[ 0.1728121 1.2559119 22.33185816 33.03262688]\n", + "[ 0.19201763 1.28431651 22.32788012 33.01831461]\n", + "[ 0.19201734 1.28431588 22.32788026 33.01831486]\n", + "[ 0.53768644 1.79548895 22.25629435 32.76073541]\n", + "[ 0.7092742 2.0465893 22.22126991 32.63362591]\n", + "[ 1.56603919 3.29756888 22.0468787 31.99969224]\n", + "[ 1.71784279 3.51782566 22.01621327 31.8877654 ]\n", + "[ 1.90701711 3.79144353 21.97819926 31.74849461]\n", + "[ 1.90672715 3.79081028 21.97833934 31.74874468]\n", + "[ 5.30930397 8.70599249 21.29570008 29.24545308]\n", + "[ 6.89169922 10.72759309 21.02518584 28.14575761]\n", + "[14.8664473 20.76937005 19.64615049 22.60525904]\n", + "[16.43421386 22.76804447 19.33718156 21.51803103]\n", + "[18.08940977 24.56788147 19.09386868 20.41218856]\n", + "[17.77953397 23.90975716 19.23629755 20.66084102]\n", + "[25.26131992 31.94560656 18.13893838 15.67059457]\n", + "[28.52205386 33.78000555 17.83631034 13.64745776]\n", + "[45.99353877 43.78941455 15.88192173 2.81048216]\n", + "[5.09313933e+01 4.82776868e+01 1.49740741e+01 4.36301685e-02]\n", + "[54.34836913 48.31462172 14.73078348 -2.04941632]\n", + "[51.24317788 42.50382874 15.67340256 -0.58137032]\n", + "[60.97048961 42.14301556 14.88072824 -6.63409673]\n", + "[65.28069743 37.73657375 14.49665034 -9.30144109]\n", + "[ 86.35205483 14.96994707 12.07759826 -22.08799673]\n", + "[ 90.37417849 12.30232726 11.17910905 -24.620892 ]\n", + "[ 94.52630461 3.57378945 10.55621681 -26.75493163]\n", + "[ 93.39136879 -1.49284441 11.24232116 -25.81716524]\n", "56.0 92.7339915489422 meter\n", - "59.0 88.05990483905572 meter\n", + "[ 0. 1. 20.601523 34.28669203]\n", + "[1.73142696e-05 1.00002882e+00 2.06015194e+01 3.42866778e+01]\n", + "[3.46285391e-04 1.00057632e+00 2.06014510e+01 3.42864075e+01]\n", + "[5.19426726e-04 1.00086447e+00 2.06014150e+01 3.42862653e+01]\n", + "[1.38513189e-03 1.00230522e+00 2.06012351e+01 3.42855540e+01]\n", + "[1.53903424e-03 1.00256136e+00 2.06012031e+01 3.42854276e+01]\n", + "[1.73141184e-03 1.00288152e+00 2.06011632e+01 3.42852696e+01]\n", + "[1.73141184e-03 1.00288152e+00 2.06011632e+01 3.42852696e+01]\n", + "[5.19420527e-03 1.00864444e+00 2.06004435e+01 3.42824247e+01]\n", + "[6.92546590e-03 1.01152536e+00 2.06000838e+01 3.42810024e+01]\n", + "[1.55816181e-02 1.02592936e+00 2.05982852e+01 3.42738914e+01]\n", + "[1.71204107e-02 1.02848976e+00 2.05979655e+01 3.42726274e+01]\n", + "[1.90438676e-02 1.03169013e+00 2.05975659e+01 3.42710474e+01]\n", + "[1.90438672e-02 1.03169013e+00 2.05975659e+01 3.42710474e+01]\n", + "[ 0.05366576 1.0892954 20.59037339 34.24260755]\n", + "[ 0.0709631 1.11804426 20.58678562 34.22840827]\n", + "[ 0.15743495 1.2617294 20.56885607 34.15743441]\n", + "[ 0.17280007 1.28724276 20.56567341 34.14482856]\n", + "[ 0.19200279 1.31912041 20.56169734 34.12907662]\n", + "[ 0.19200245 1.31911958 20.56169751 34.12907696]\n", + "[ 0.53761842 1.89278594 20.49014887 33.84559231]\n", + "[ 0.70907344 2.17425848 20.45521762 33.70588967]\n", + "[ 1.56509715 3.5762744 20.28135174 33.00930782]\n", + "[ 1.71674856 3.82302351 20.25080175 32.88638519]\n", + "[ 1.90565404 4.12935066 20.21297559 32.73353261]\n", + "[ 1.90530813 4.12851469 20.21314321 32.73386581]\n", + "[ 5.30288034 9.63066107 19.53401624 29.9868087 ]\n", + "[ 6.87324477 11.86227075 19.27162774 28.79617976]\n", + "[14.81299185 22.98968138 17.922 22.77153962]\n", + "[16.41135332 25.28124405 17.60232323 21.55583613]\n", + "[18.04978366 27.23949261 17.37110728 20.36673217]\n", + "[17.67865639 26.36902463 17.54099728 20.69585806]\n", + "[24.64094019 34.5835198 16.55962848 15.64821743]\n", + "[27.68387217 36.43684793 16.29767546 13.59987249]\n", + "[44.02562151 46.5542142 14.58382621 2.61680785]\n", + "[48.67513948 51.14081593 13.77246022 -0.18062685]\n", + "[51.87705833 51.12339403 13.56918437 -2.31407197]\n", + "[48.93963429 45.13267236 14.41907608 -0.84339725]\n", + "[58.07908918 44.59808949 13.73320975 -7.01495774]\n", + "[62.1597423 39.93001081 13.37724926 -9.74508081]\n", + "[ 81.87279554 15.7075234 11.12279637 -22.70142525]\n", + "[ 85.36972007 12.58692798 10.2669074 -25.17489552]\n", + "[ 89.3041922 3.41120267 9.67130457 -27.29178544]\n", + "[ 88.62421494 -1.430914 10.33235713 -26.46759239]\n", + "59.0 88.05990483905572 meter\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 1. 18.77886251 35.31790371]\n", + "[1.73142406e-05 1.00003256e+00 1.87788589e+01 3.53178879e+01]\n", + "[3.46284813e-04 1.00065127e+00 1.87787905e+01 3.53175877e+01]\n", + "[5.19425726e-04 1.00097689e+00 1.87787546e+01 3.53174296e+01]\n", + "[1.38512864e-03 1.00260502e+00 1.87785747e+01 3.53166395e+01]\n", + "[1.53903051e-03 1.00289446e+00 1.87785427e+01 3.53164990e+01]\n", + "[1.73140748e-03 1.00325626e+00 1.87785027e+01 3.53163234e+01]\n", + "[1.73140748e-03 1.00325626e+00 1.87785027e+01 3.53163234e+01]\n", + "[5.19418925e-03 1.00976864e+00 1.87777831e+01 3.53131629e+01]\n", + "[6.92543085e-03 1.01302417e+00 1.87774233e+01 3.53115829e+01]\n", + "[1.55814733e-02 1.02930112e+00 1.87756248e+01 3.53036831e+01]\n", + "[1.71202388e-02 1.03219441e+00 1.87753052e+01 3.53022789e+01]\n", + "[1.90436583e-02 1.03581087e+00 1.87749056e+01 3.53005236e+01]\n", + "[1.90436579e-02 1.03581087e+00 1.87749056e+01 3.53005236e+01]\n", + "[ 0.05366484 1.10090552 18.7677135 35.26892976]\n", + "[ 0.07096051 1.13338731 18.76412688 35.25315832]\n", + "[ 0.15742261 1.29572424 18.74620407 35.17432899]\n", + "[ 0.17278528 1.32454686 18.74302311 35.16032935]\n", + "[ 0.19198454 1.36055788 18.73904943 35.1428365 ]\n", + "[ 0.19198412 1.36055676 18.73904964 35.14283695]\n", + "[ 0.53753478 2.00859551 18.66754621 34.82802752]\n", + "[ 0.70882676 2.32608412 18.63272788 34.67314293]\n", + "[ 1.56394448 3.90709691 18.45949561 33.90106466]\n", + "[ 1.71541442 4.18520852 18.42908225 33.76490031]\n", + "[ 1.90399068 4.53016915 18.39148287 33.59572401]\n", + "[ 1.9035697 4.52903378 18.39168738 33.59618023]\n", + "[ 5.2950222 10.72421572 17.71679487 30.55621746]\n", + "[ 6.85074095 13.19116169 17.46411516 29.25987801]\n", + "[14.75165646 25.55832836 16.14763443 22.66022382]\n", + "[16.39311964 28.22396302 15.81233471 21.27824362]\n", + "[18.01224095 30.34756953 15.59512536 19.99308146]\n", + "[17.55862131 29.16325424 15.80146172 20.43967746]\n", + "[23.98374832 37.47435393 14.93900642 15.33922826]\n", + "[26.8017877 39.29673905 14.71779824 13.26345777]\n", + "[41.97179815 49.24595942 13.24767725 2.12903001]\n", + "[46.31562478 53.85709807 12.53936482 -0.68901003]\n", + "[49.29319737 53.71311499 12.37474372 -2.87064294]\n", + "[46.53998514 47.57016696 13.12106393 -1.41539324]\n", + "[54.99269658 46.65835747 12.54147857 -7.66612346]\n", + "[ 58.79900623 41.67232685 12.20956887 -10.4375171 ]\n", + "[ 76.88148692 15.76259775 10.13537862 -23.42691613]\n", + "[ 79.71247016 12.14461003 9.35774292 -25.767943 ]\n", + "[ 83.3758127 2.49303308 8.79771388 -27.83654432]\n", + "[ 83.30769569 -2.06006558 9.38487693 -27.20761997]\n", "62.0 82.58716276454999 meter\n", + "[ 0. 1. 16.90473047 36.25231148]\n", + "[1.73142016e-05 1.00003713e+00 1.69047269e+01 3.62522937e+01]\n", + "[3.46284032e-04 1.00074261e+00 1.69046585e+01 3.62519564e+01]\n", + "[5.19424389e-04 1.00111390e+00 1.69046225e+01 3.62517789e+01]\n", + "[1.38512433e-03 1.00297038e+00 1.69044426e+01 3.62508912e+01]\n", + "[1.53902558e-03 1.00330041e+00 1.69044106e+01 3.62507334e+01]\n", + "[1.73140173e-03 1.00371295e+00 1.69043706e+01 3.62505361e+01]\n", + "[1.73140173e-03 1.00371295e+00 1.69043706e+01 3.62505361e+01]\n", + "[5.19416834e-03 1.01113867e+00 1.69036510e+01 3.62469854e+01]\n", + "[6.92538581e-03 1.01485072e+00 1.69032913e+01 3.62452104e+01]\n", + "[1.55812893e-02 1.03341002e+00 1.69014929e+01 3.62363357e+01]\n", + "[1.71200205e-02 1.03670898e+00 1.69011733e+01 3.62347582e+01]\n", + "[1.90433931e-02 1.04083247e+00 1.69007737e+01 3.62327864e+01]\n", + "[1.90433926e-02 1.04083247e+00 1.69007737e+01 3.62327864e+01]\n", + "[ 0.05366369 1.11505332 16.8935822 36.19729405]\n", + "[ 0.07095727 1.15208196 16.889997 36.17958014]\n", + "[ 0.15740712 1.33713543 16.87208253 36.09104575]\n", + "[ 0.17276673 1.36998743 16.86890369 36.07532454]\n", + "[ 0.19196166 1.41103074 16.86493297 36.05568155]\n", + "[ 0.19196114 1.41102916 16.86493322 36.05568219]\n", + "[ 0.53742995 2.14960982 16.79348579 35.70218657]\n", + "[ 0.70851784 2.51075384 16.75880712 35.52862131]\n", + "[ 1.56250845 4.30858149 16.58635411 34.66369072]\n", + "[ 1.71375977 4.62463912 16.55610483 34.5112512 ]\n", + "[ 1.9019254 5.01620127 16.51878466 34.32206388]\n", + "[ 1.9014005 5.01460461 16.51904023 34.32271001]\n", + "[ 5.28523432 12.04542147 15.84935314 30.92378087]\n", + "[ 6.82282182 14.77754664 15.60847749 29.50308293]\n", + "[14.68148318 28.58303637 14.32941538 22.20634053]\n", + "[16.38548854 31.75011257 13.97094376 20.60026216]\n", + "[17.9824747 34.04262416 13.77015011 19.20277361]\n", + "[17.41418644 32.37475254 14.02620787 19.82728214]\n", + "[23.28625305 40.6754367 13.28523221 14.6770814 ]\n", + "[25.87330103 42.40013299 13.10475401 12.56933024]\n", + "[39.83495648 51.80677376 11.88068005 1.26718632]\n", + "[43.8572224 56.33884168 11.28301839 -1.56213803]\n", + "[46.60131977 55.96973161 11.15468294 -3.80518663]\n", + "[44.04812117 49.71535064 11.78417129 -2.38473489]\n", + "[51.68251172 48.17039707 11.30726943 -8.63716802]\n", + "[ 55.15212533 42.84094257 10.99609092 -11.40658219]\n", + "[ 71.27636198 15.23978174 9.13624868 -24.21597524]\n", + "[ 73.31054614 11.20139146 8.49755815 -26.35198527]\n", + "[ 76.62625627 1.13194547 7.98640576 -28.33885077]\n", + "[ 77.31019395 -3.15905151 8.41696208 -27.97144919]\n", "65.0 76.34016117578483 meter\n", + "[ 0. 1. 14.98426374 37.08735418]\n", + "[1.73141482e-05 1.00004285e+00 1.49842601e+01 3.70873340e+01]\n", + "[3.46282964e-04 1.00085708e+00 1.49841918e+01 3.70869496e+01]\n", + "[5.19422575e-04 1.00128561e+00 1.49841558e+01 3.70867473e+01]\n", + "[1.38511855e-03 1.00342825e+00 1.49839759e+01 3.70857358e+01]\n", + "[1.53901897e-03 1.00380915e+00 1.49839439e+01 3.70855560e+01]\n", + "[1.73139403e-03 1.00428529e+00 1.49839039e+01 3.70853312e+01]\n", + "[1.73139403e-03 1.00428529e+00 1.49839039e+01 3.70853312e+01]\n", + "[5.19414052e-03 1.01285562e+00 1.49831843e+01 3.70812854e+01]\n", + "[6.92532667e-03 1.01713974e+00 1.49828246e+01 3.70792629e+01]\n", + "[1.55810501e-02 1.03855915e+00 1.49810263e+01 3.70691510e+01]\n", + "[1.71197370e-02 1.04236644e+00 1.49807067e+01 3.70673535e+01]\n", + "[1.90430489e-02 1.04712529e+00 1.49803072e+01 3.70651069e+01]\n", + "[1.90430482e-02 1.04712528e+00 1.49803072e+01 3.70651069e+01]\n", + "[ 0.0536622 1.13278191 14.9731164 37.02466743]\n", + "[ 0.07095308 1.17550509 14.96953302 37.00448966]\n", + "[ 0.15738721 1.38900588 14.95162916 36.90364641]\n", + "[ 0.1727429 1.42690216 14.94845299 36.88574234]\n", + "[ 0.19193227 1.47424436 14.94448603 36.86337345]\n", + "[ 0.1919316 1.47424203 14.94448635 36.86337439]\n", + "[ 0.53729532 2.32614632 14.87311009 36.46083567]\n", + "[ 0.7081215 2.74163306 14.83860863 36.26369811]\n", + "[ 1.56067809 4.80913607 14.66713737 35.28166185]\n", + "[ 1.71166305 5.17233995 14.63708841 35.10870678]\n", + "[ 1.89930451 5.62156133 14.60012052 34.89438475]\n", + "[ 1.89862994 5.61921549 14.60044955 34.89533981]\n", + "[ 5.27276099 13.68345002 13.93731707 31.04568318]\n", + "[ 6.78742203 16.71471443 13.71110041 29.47674928]\n", + "[14.60198538 32.22113591 12.47417703 21.31225239]\n", + "[16.40010975 36.10303874 12.08051603 19.38843363]\n", + "[17.97209677 38.55991666 11.8992664 17.85749054]\n", + "[17.23805488 36.10778759 12.22543539 18.76369068]\n", + "[22.54391083 44.25125542 11.608063 13.56292925]\n", + "[24.89540577 45.78370944 11.46822476 11.41431354]\n", + "[37.62071486 54.11018658 10.49115946 -0.09371483]\n", + "[41.30846873 58.41015576 10.01405046 -2.93017532]\n", + "[43.8095134 57.6743899 9.91703385 -5.25720377]\n", + "[41.4700671 51.36970533 10.41171701 -3.88642738]\n", + "[ 48.14788931 48.87704528 10.02612964 -10.02797928]\n", + "[ 51.20858076 43.19929287 9.73412223 -12.72757852]\n", + "[ 65.07164687 14.11897217 8.13035252 -25.0885201 ]\n", + "[ 66.27062904 9.94212828 7.69981852 -26.99942841]\n", + "[ 69.14989651 -0.39564011 7.2524863 -28.87543359]\n", + "[ 70.59684924 -4.69592026 7.43263114 -28.74029105]\n", "68.0 69.34714056465755 meter\n", - "71.0 61.63878192638946 meter\n", + "[ 0. 1. 13.02272618 37.82074302]\n", + "[1.73140732e-05 1.00005028e+00 1.30227226e+01 3.78207195e+01]\n", + "[3.46281465e-04 1.00100567e+00 1.30226542e+01 3.78202734e+01]\n", + "[5.19420044e-04 1.00150850e+00 1.30226182e+01 3.78200386e+01]\n", + "[1.38511055e-03 1.00402260e+00 1.30224383e+01 3.78188647e+01]\n", + "[1.53900983e-03 1.00446954e+00 1.30224063e+01 3.78186560e+01]\n", + "[1.73138340e-03 1.00502822e+00 1.30223664e+01 3.78183951e+01]\n", + "[1.73138340e-03 1.00502822e+00 1.30223664e+01 3.78183951e+01]\n", + "[5.19410237e-03 1.01508434e+00 1.30216468e+01 3.78136994e+01]\n", + "[6.92524659e-03 1.02011099e+00 1.30212871e+01 3.78113522e+01]\n", + "[1.55807292e-02 1.04524271e+00 1.30194889e+01 3.77996164e+01]\n", + "[1.71193571e-02 1.04970975e+00 1.30191694e+01 3.77975304e+01]\n", + "[1.90425880e-02 1.05529321e+00 1.30187699e+01 3.77949230e+01]\n", + "[1.90425871e-02 1.05529321e+00 1.30187699e+01 3.77949230e+01]\n", + "[ 0.05366021 1.15579199 13.01158008 37.74799145]\n", + "[ 0.07094752 1.20590099 13.00799908 37.72458222]\n", + "[ 0.15736081 1.45629267 12.99010917 37.60759741]\n", + "[ 0.17271132 1.50072777 12.98693649 37.5868318 ]\n", + "[ 0.19189331 1.55623359 12.98297448 37.56089008]\n", + "[ 0.19189243 1.55622998 12.98297491 37.56089156]\n", + "[ 0.53711688 2.55499478 12.91169211 37.09407674]\n", + "[ 0.70759673 3.04041271 12.87742296 36.86623015]\n", + "[ 1.55827535 5.454615 12.70722678 35.7317206 ]\n", + "[ 1.70893221 5.87837816 12.67742702 35.5320587 ]\n", + "[ 1.89588419 6.40121859 12.64091755 35.28518441]\n", + "[ 1.89498288 6.39757108 12.64135775 35.28667689]\n", + "[ 5.20992808 15.65080183 11.99578166 30.91478119]\n", + "[ 6.67694998 18.98766895 11.78955349 29.1848136 ]\n", + "[14.34383444 36.36467144 10.61360274 20.01903459]\n", + "[16.24583939 41.22640015 10.17790117 17.66982467]\n", + "[17.7716416 43.81783054 10.02066489 15.99401329]\n", + "[16.82835707 40.17079639 10.43197636 17.31510134]\n", + "[21.54972199 48.0073663 9.93609531 12.05669153]\n", + "[23.65792211 49.24828413 9.8353593 9.85513211]\n", + "[35.10278994 55.91884396 9.09693944 -1.91813735]\n", + "[38.44100096 59.81610302 8.74918777 -4.77558097]\n", + "[40.68266266 58.5661222 8.67295079 -7.21369715]\n", + "[38.5681647 52.28103842 9.01522534 -5.88008405]\n", + "[ 44.22334516 48.59250761 8.69897283 -11.82127522]\n", + "[ 46.82775482 42.55552153 8.42849887 -14.3877699 ]\n", + "[ 58.34893868 12.21848973 7.0933825 -26.11617257]\n", + "[ 58.88073569 8.31049133 6.88491731 -27.88822502]\n", + "[ 61.27410058 -2.15008367 6.50895467 -29.64118993]\n", + "[ 63.21762766 -6.97691866 6.42306887 -29.5576848 ]\n", + "71.0 61.63878192638946 meter\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 1. 11.02549423 38.45046784]\n", + "[1.73139632e-05 1.00006038e+00 1.10254906e+01 3.84504399e+01]\n", + "[3.46279264e-04 1.00120762e+00 1.10254223e+01 3.84499091e+01]\n", + "[5.19416353e-04 1.00181141e+00 1.10253863e+01 3.84496297e+01]\n", + "[1.38509898e-03 1.00483034e+00 1.10252064e+01 3.84482328e+01]\n", + "[1.53899663e-03 1.00536702e+00 1.10251744e+01 3.84479845e+01]\n", + "[1.73136807e-03 1.00603788e+00 1.10251344e+01 3.84476741e+01]\n", + "[1.73136807e-03 1.00603788e+00 1.10251344e+01 3.84476741e+01]\n", + "[5.19404770e-03 1.01811319e+00 1.10244148e+01 3.84420868e+01]\n", + "[6.92513327e-03 1.02414888e+00 1.10240552e+01 3.84392940e+01]\n", + "[1.55802795e-02 1.05432511e+00 1.10222573e+01 3.84253306e+01]\n", + "[1.71188252e-02 1.05968863e+00 1.10219377e+01 3.84228487e+01]\n", + "[1.90419434e-02 1.06639253e+00 1.10215383e+01 3.84197466e+01]\n", + "[1.90419422e-02 1.06639252e+00 1.10215383e+01 3.84197466e+01]\n", + "[ 0.05365744 1.18705797 11.01434984 38.36390934]\n", + "[ 0.0709398 1.2471934 11.01077212 38.33607089]\n", + "[ 0.15732426 1.54765583 10.99290133 38.1969652 ]\n", + "[ 0.17266765 1.60096112 10.98973344 38.17227989]\n", + "[ 0.19183944 1.66753833 10.98577821 38.14144527]\n", + "[ 0.1918382 1.66753229 10.98577882 38.14144776]\n", + "[ 0.53687012 2.86544615 10.91462427 37.58661677]\n", + "[ 0.70687197 3.44479923 10.88067302 37.31705817]\n", + "[ 1.55499567 6.32416941 10.71219988 35.9755685 ]\n", + "[ 1.70524575 6.82916762 10.68271633 35.73962794]\n", + "[ 1.89125397 7.44985324 10.64682801 35.44888073]\n", + "[ 1.8899853 7.4437322 10.64744807 35.45139515]\n", + "[ 4.76972268 17.03201168 10.09361339 30.95683099]\n", + "[ 6.0410758 20.45858805 9.9201927 29.19058388]\n", + "[12.70823716 38.38487964 8.9202917 19.79181224]\n", + "[14.3922208 43.53030078 8.53544969 17.33763284]\n", + "[15.71734203 46.16788777 8.40617703 15.62952404]\n", + "[14.85007837 42.1812761 8.78021704 17.05601326]\n", + "[18.89857279 50.04568016 8.37670412 11.75346018]\n", + "[20.71350601 51.22729231 8.30305378 9.52680974]\n", + "[30.60571302 57.55988904 7.74525033 -2.39235487]\n", + "[33.51867288 61.42133413 7.48885832 -5.26972739]\n", + "[35.452401 60.00838271 7.43794234 -7.77089381]\n", + "[33.59944848 53.61192241 7.68137544 -6.4465871 ]\n", + "[ 38.3663922 49.61126939 7.4330066 -12.3198734 ]\n", + "[ 40.57646343 43.51046262 7.20028902 -14.84800878]\n", + "[ 50.23674759 12.95724888 6.09338888 -26.37875884]\n", + "[ 50.49196136 9.07042346 5.96563468 -28.08451665]\n", + "[ 52.51381989 -1.3766083 5.6493687 -29.80083823]\n", + "[ 54.44621001 -6.21314172 5.50458861 -29.77236664]\n", "74.0 53.256101549629825 meter\n", + "[ 0. 1. 8.99804217 38.97480259]\n", + "[1.73137902e-05 1.00007499e+00 8.99803858e+00 3.89747681e+01]\n", + "[3.46275804e-04 1.00149989e+00 8.99797021e+00 3.89741137e+01]\n", + "[5.19410590e-04 1.00224980e+00 8.99793423e+00 3.89737693e+01]\n", + "[1.38508106e-03 1.00599933e+00 8.99775433e+00 3.89720473e+01]\n", + "[1.53897622e-03 1.00666590e+00 8.99772235e+00 3.89717411e+01]\n", + "[1.73134440e-03 1.00749910e+00 8.99768237e+00 3.89713585e+01]\n", + "[1.73134440e-03 1.00749910e+00 8.99768237e+00 3.89713585e+01]\n", + "[5.19396398e-03 1.02249662e+00 8.99696281e+00 3.89644705e+01]\n", + "[6.92496224e-03 1.02999240e+00 8.99660323e+00 3.89610277e+01]\n", + "[1.55796088e-02 1.06746801e+00 8.99480558e+00 3.89438152e+01]\n", + "[1.71180328e-02 1.07412861e+00 8.99448611e+00 3.89407559e+01]\n", + "[1.90409842e-02 1.08245362e+00 8.99408683e+00 3.89369321e+01]\n", + "[1.90409823e-02 1.08245361e+00 8.99408683e+00 3.89369321e+01]\n", + "[ 0.05365334 1.2322964 8.98690027 38.86810647]\n", + "[ 0.07092841 1.30691982 8.98332734 38.83381558]\n", + "[ 0.15727056 1.67971419 8.96548445 38.66249186]\n", + "[ 0.17260358 1.74582383 8.96232349 38.6321014 ]\n", + "[ 0.1917604 1.82837668 8.95837816 38.59414761]\n", + "[ 0.19175852 1.82836541 8.95837909 38.59415227]\n", + "[ 0.53650795 3.31360196 8.88741143 37.91127417]\n", + "[ 0.7058102 4.02665578 8.85392178 37.5817297 ]\n", + "[ 1.55027191 7.56721319 8.68790579 35.94273422]\n", + "[ 1.70002409 8.18786606 8.65882989 35.65450108]\n", + "[ 1.88466751 8.94571015 8.62383096 35.30133641]\n", + "[ 1.88274514 8.93426394 8.62477036 35.30605061]\n", + "[ 4.30878875 18.86542907 8.16665556 30.67410683]\n", + "[ 5.37684064 22.36523813 8.02676013 28.86699302]\n", + "[11.00189227 40.7802796 7.2085519 19.20196735]\n", + "[12.45400342 46.24325667 6.87878988 16.62685827]\n", + "[13.570448 48.89316436 6.77753347 14.88058165]\n", + "[12.78977896 44.48332554 7.10864375 16.42728906]\n", + "[16.15322243 52.25587119 6.7958466 11.06759507]\n", + "[17.66844475 53.28922201 6.74724965 8.80341357]\n", + "[25.96633338 58.78244444 6.35889587 -3.32537559]\n", + "[28.43685295 62.48114729 6.19793212 -6.23963059]\n", + "[30.0484011 60.76894248 6.16191573 -8.82993547]\n", + "[28.46942213 54.28303579 6.2968948 -7.49903398]\n", + "[ 32.32492991 49.69147363 6.10073943 -13.26584472]\n", + "[ 34.11756746 43.42338042 5.90453123 -15.71882286]\n", + "[ 41.86246495 12.3544797 5.02059433 -26.93404927]\n", + "[ 41.90554835 8.71269433 4.97681609 -28.62038337]\n", + "[ 43.52631137 -1.75525914 4.72229115 -30.2791352 ]\n", + "[ 45.33508569 -7.0030961 4.51451837 -30.19739911]\n", "77.0 44.246680677829886 meter\n", + "[ 0. 1. 6.94592711 39.39231012]\n", + "[1.73134864e-05 1.00009819e+00 6.94592351e+00 3.93922653e+01]\n", + "[3.46269728e-04 1.00196379e+00 6.94585514e+00 3.93914134e+01]\n", + "[5.19400556e-04 1.00294564e+00 6.94581916e+00 3.93909651e+01]\n", + "[1.38505021e-03 1.00785482e+00 6.94563927e+00 3.93887236e+01]\n", + "[1.53894114e-03 1.00872753e+00 6.94560729e+00 3.93883251e+01]\n", + "[1.73130380e-03 1.00981841e+00 6.94556732e+00 3.93878270e+01]\n", + "[1.73130380e-03 1.00981841e+00 6.94556732e+00 3.93878270e+01]\n", + "[5.19382172e-03 1.02945410e+00 6.94484780e+00 3.93788611e+01]\n", + "[6.92467714e-03 1.03926692e+00 6.94448830e+00 3.93743802e+01]\n", + "[1.55785082e-02 1.08832546e+00 6.94269112e+00 3.93519782e+01]\n", + "[1.71167348e-02 1.09704407e+00 6.94237177e+00 3.93479968e+01]\n", + "[1.90394153e-02 1.10794107e+00 6.94197265e+00 3.93430206e+01]\n", + "[1.90394121e-02 1.10794104e+00 6.94197265e+00 3.93430206e+01]\n", + "[ 0.05364667 1.30407464 6.93478921 39.25345395]\n", + "[ 0.07091001 1.40163912 6.93122393 39.2088772 ]\n", + "[ 0.1571843 1.88892168 6.91342553 38.98621265]\n", + "[ 0.17250088 1.97527598 6.91027552 38.9467396 ]\n", + "[ 0.19163367 2.08307144 6.90634597 38.89745852]\n", + "[ 0.1916305 2.08304667 6.90634753 38.89746877]\n", + "[ 0.5359271 4.02217096 6.8356777 38.01089535]\n", + "[ 0.70411197 4.94201077 6.80291947 37.58761888]\n", + "[ 1.54291614 9.50369706 6.6406888 35.48374202]\n", + "[ 1.69211723 10.30424193 6.61213219 35.1130818 ]\n", + "[ 1.87462194 11.26918854 6.57851266 34.6639244 ]\n", + "[ 1.87136196 11.24392677 6.58010294 34.67433542]\n", + "[ 3.82126303 21.51907355 6.22254761 29.88610884]\n", + "[ 4.67701372 25.06037418 6.11699741 28.03142772]\n", + "[ 9.20909551 43.83504543 5.48761076 18.05356901]\n", + "[10.41136386 49.65729634 5.21876319 15.33883105]\n", + "[11.30975359 52.25787568 5.14562281 13.54475111]\n", + "[10.63069038 47.30116038 5.42593208 15.22560324]\n", + "[13.2976551 54.78487858 5.20196014 9.78020478]\n", + "[14.50728945 55.5156382 5.17638563 7.45328565]\n", + "[21.17293009 59.28216323 4.94537706 -5.02062383]\n", + "[23.185795 62.58438036 4.88942446 -8.0342915 ]\n", + "[ 24.45651897 60.34349729 4.84872225 -10.7511024 ]\n", + "[23.16040989 53.81280186 4.85836558 -9.33825967]\n", + "[ 26.09981097 48.16298195 4.69760403 -14.95844141]\n", + "[ 27.46008984 41.51271879 4.53761554 -17.28676759]\n", + "[ 33.28365315 9.19281593 3.86213154 -28.04040004]\n", + "[ 33.20893772 6.11074058 3.88753301 -29.80069439]\n", + "[ 34.41141626 -4.51470233 3.69509353 -31.36905787]\n", + "[ 35.94542863 -10.84333124 3.44563063 -31.03897131]\n", "80.0 34.6702130194327 meter\n" ] } @@ -415,7 +1397,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -455,14 +1437,416 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Wall time: 971 ms\n" + "[ 0. 1. 33.01363222 22.58539546]\n", + "[1.73143076e-05 1.00001185e+00 3.30136286e+01 2.25853879e+01]\n", + "[3.46286152e-04 1.00023690e+00 3.30135602e+01 2.25852434e+01]\n", + "[5.19428378e-04 1.00035535e+00 3.30135243e+01 2.25851674e+01]\n", + "[1.38513857e-03 1.00094760e+00 3.30133443e+01 2.25847873e+01]\n", + "[1.53904211e-03 1.00105288e+00 3.30133124e+01 2.25847198e+01]\n", + "[1.73142132e-03 1.00118449e+00 3.30132724e+01 2.25846353e+01]\n", + "[1.73142132e-03 1.00118449e+00 3.30132724e+01 2.25846353e+01]\n", + "[5.19424509e-03 1.00355344e+00 3.30125527e+01 2.25831151e+01]\n", + "[6.92557206e-03 1.00473773e+00 3.30121930e+01 2.25823550e+01]\n", + "[1.55821126e-02 1.01065899e+00 3.30103941e+01 2.25785547e+01]\n", + "[1.71210039e-02 1.01171156e+00 3.30100743e+01 2.25778791e+01]\n", + "[1.90445968e-02 1.01302722e+00 3.30096746e+01 2.25770347e+01]\n", + "[1.90445967e-02 1.01302722e+00 3.30096746e+01 2.25770347e+01]\n", + "[ 0.05366906 1.03670869 33.00248022 22.56183461]\n", + "[ 0.0709728 1.04853149 32.9988877 22.55424032]\n", + "[ 0.15748217 1.10762567 32.98093031 22.51627519]\n", + "[ 0.17285676 1.11812098 32.97774057 22.50952913]\n", + "[ 0.1920728 1.13123555 32.97375461 22.50109801]\n", + "[ 0.19207268 1.1312354 32.97375467 22.50109806]\n", + "[ 0.53794055 1.36725362 32.90201893 22.34935198]\n", + "[ 0.71002798 1.48347208 32.86661851 22.2740486 ]\n", + "[ 1.56961172 2.06268096 32.69008565 21.8981101 ]\n", + "[ 1.72202249 2.16471736 32.6589301 21.83156523]\n", + "[ 1.91221516 2.29168457 32.62015169 21.74857008]\n", + "[ 1.91209642 2.29154006 32.62020716 21.74862124]\n", + "[ 5.33369084 4.57279354 31.92323259 20.25599242]\n", + "[ 6.96224272 5.53728508 31.61886526 19.56292129]\n", + "[15.09589085 10.26332212 30.10068529 16.10854453]\n", + "[16.58349965 11.10802329 29.81353989 15.48441707]\n", + "[18.30975974 11.98466487 29.51585107 14.76238238]\n", + "[18.1851959 11.83636751 29.57264449 14.81424697]\n", + "[28.78292297 17.14523822 27.75142565 10.38996524]\n", + "[33.34754788 18.01598978 27.16714173 8.55928402]\n", + "[57.43383528 22.81811382 23.63632294 -1.06307696]\n", + "[63.88109982 25.53785478 22.21090767 -3.38940228]\n", + "[68.53702635 24.84192589 21.6713683 -5.23857282]\n", + "[64.71098884 20.63407666 23.02550611 -4.11462717]\n", + "[76.99114128 18.43962983 21.5331281 -9.07455788]\n", + "[ 82.23579926 14.36647646 20.89730891 -11.19351941]\n", + "[108.51063942 -5.88306096 17.3514598 -21.61336308]\n", + "[114.09034604 -7.60437154 16.34797643 -23.77375649]\n", + "[119.03596007 -14.83177983 15.58297543 -25.60112824]\n", + "[116.85305402 -19.80074234 16.18332714 -24.74260806]\n", + "[ 0. 1. 22.58539546 33.01363222]\n", + "[1.73142932e-05 1.00002531e+00 2.25853919e+01 3.30136194e+01]\n", + "[3.46285863e-04 1.00050617e+00 2.25853235e+01 3.30133768e+01]\n", + "[5.19427553e-04 1.00075926e+00 2.25852875e+01 3.30132490e+01]\n", + "[1.38513463e-03 1.00202467e+00 2.25851076e+01 3.30126104e+01]\n", + "[1.53903738e-03 1.00224963e+00 2.25850756e+01 3.30124969e+01]\n", + "[1.73141552e-03 1.00253082e+00 2.25850356e+01 3.30123550e+01]\n", + "[1.73141552e-03 1.00253082e+00 2.25850356e+01 3.30123550e+01]\n", + "[5.19421899e-03 1.00759237e+00 2.25843160e+01 3.30098005e+01]\n", + "[6.92549659e-03 1.01012271e+00 2.25839562e+01 3.30085235e+01]\n", + "[1.55817469e-02 1.02277389e+00 2.25821576e+01 3.30021383e+01]\n", + "[1.71205638e-02 1.02502274e+00 2.25818379e+01 3.30010033e+01]\n", + "[1.90440541e-02 1.02783368e+00 2.25814383e+01 3.29995845e+01]\n", + "[1.90440538e-02 1.02783368e+00 2.25814383e+01 3.29995845e+01]\n", + "[ 0.05366657 1.07842961 22.57424531 32.97404738]\n", + "[ 0.07096543 1.10368352 22.57065649 32.96129538]\n", + "[ 0.15744611 1.2299046 22.55272076 32.89755354]\n", + "[ 0.17281345 1.25231873 22.54953653 32.8862311 ]\n", + "[ 0.19201929 1.28032495 22.54555827 32.87208236]\n", + "[ 0.19201901 1.28032434 22.5455584 32.8720826 ]\n", + "[ 0.53769408 1.78432869 22.47396827 32.61744564]\n", + "[ 0.70929677 2.03193868 22.43893326 32.49176873]\n", + "[ 1.56614534 3.26555584 22.26448232 31.86496341]\n", + "[ 1.7179663 3.48276535 22.23380365 31.75428821]\n", + "[ 1.90717089 3.75261673 22.19576829 31.61656487]\n", + "[ 1.90688694 3.75200413 22.19590541 31.61680649]\n", + "[ 5.31002783 8.59958501 21.51286674 29.14129215]\n", + "[ 6.8937821 10.59637825 21.24142428 28.05213113]\n", + "[14.87265803 20.51093765 19.85893236 22.56717428]\n", + "[16.43723553 22.47708158 19.55105005 21.49407015]\n", + "[18.09437471 24.25757866 19.30633285 20.39791913]\n", + "[17.79105872 23.62106401 19.44579925 20.63833413]\n", + "[25.33680253 31.62955879 18.33408858 15.65565667]\n", + "[28.62436297 33.45864445 18.02635933 13.63560557]\n", + "[46.23462431 43.43839709 16.04200928 2.81694909]\n", + "[51.20743433 47.91013643 15.12247676 0.05461775]\n", + "[54.65075842 47.94972075 14.87409034 -2.03372382]\n", + "[51.525659 42.16302125 15.82766613 -0.5671572 ]\n", + "[61.32134549 41.81200967 15.02160031 -6.6034585 ]\n", + "[65.65795854 37.43367771 14.63371352 -9.2621242 ]\n", + "[ 86.88408137 14.82748143 12.19436678 -22.02088303]\n", + "[ 90.96340579 12.21083697 11.29196656 -24.55702921]\n", + "[ 95.14005285 3.53406768 10.66600076 -26.69133723]\n", + "[ 93.95763063 -1.55514893 11.35326653 -25.74420563]\n", + "[ 0. 1. 37.28129695 14.4949956 ]\n", + "[1.73141876e-05 1.00000673e+00 3.72812934e+01 1.44949897e+01]\n", + "[3.46283753e-04 1.00013464e+00 3.72812250e+01 1.44948766e+01]\n", + "[5.19424877e-04 1.00020195e+00 3.72811890e+01 1.44948171e+01]\n", + "[1.38512966e-03 1.00053853e+00 3.72810091e+01 1.44945196e+01]\n", + "[1.53903230e-03 1.00059837e+00 3.72809771e+01 1.44944667e+01]\n", + "[1.73141041e-03 1.00067316e+00 3.72809371e+01 1.44944006e+01]\n", + "[1.73141041e-03 1.00067316e+00 3.72809371e+01 1.44944006e+01]\n", + "[5.19421451e-03 1.00201946e+00 3.72802175e+01 1.44932105e+01]\n", + "[6.92554136e-03 1.00269249e+00 3.72798577e+01 1.44926155e+01]\n", + "[1.55820921e-02 1.00605747e+00 3.72780588e+01 1.44896406e+01]\n", + "[1.71209908e-02 1.00665562e+00 3.72777390e+01 1.44891117e+01]\n", + "[1.90445955e-02 1.00740327e+00 3.72773393e+01 1.44884507e+01]\n", + "[1.90445954e-02 1.00740327e+00 3.72773393e+01 1.44884507e+01]\n", + "[ 0.05366929 1.02086073 37.27014446 14.47655165]\n", + "[ 0.07097413 1.02757703 37.26655084 14.47060559]\n", + "[ 0.15748999 1.06114475 37.24858691 14.44087908]\n", + "[ 0.17286628 1.06710517 37.24539549 14.43559636]\n", + "[ 0.19208471 1.07455255 37.2414072 14.42899382]\n", + "[ 0.19208462 1.07455247 37.24140724 14.42899385]\n", + "[ 0.53799786 1.2085748 37.16962719 14.31015667]\n", + "[ 0.71020442 1.27434418 37.13411434 14.25108105]\n", + "[ 1.57046609 1.60186795 36.9569339 13.95605729]\n", + "[ 1.72302821 1.65942933 36.92562412 13.90378773]\n", + "[ 1.91346588 1.73100197 36.88661488 13.83855659]\n", + "[ 1.91338118 1.73092509 36.88665316 13.83858065]\n", + "[ 5.3395626 3.01630839 36.1853356 12.66520725]\n", + "[ 6.97936945 3.53638891 35.87048843 12.11090227]\n", + "[15.15611188 6.05402799 34.30374001 9.35148481]\n", + "[16.63082391 6.48716654 34.01610456 8.86007548]\n", + "[18.37559866 6.92608215 33.70021577 8.27500626]\n", + "[18.28730319 6.84769637 33.73945957 8.29952276]\n", + "[30.06112794 9.74392315 31.61399799 4.35684552]\n", + "[35.11361932 9.64420678 30.88454857 2.69009923]\n", + "[61.51654854 9.31544017 26.63183025 -5.91835573]\n", + "[68.29462259 10.56371554 25.07106451 -7.85456636]\n", + "[73.37021018 8.96509443 24.37358572 -9.51870886]\n", + "[69.58062775 5.79642504 25.75125407 -8.73203557]\n", + "[ 81.42729034 1.77932053 24.07758858 -12.67292274]\n", + "[ 86.48442035 -2.26882776 23.36199067 -14.3546176 ]\n", + "[111.79914697 -22.41424776 19.57910929 -22.65091948]\n", + "[117.01769495 -24.67303193 18.66939742 -24.32752955]\n", + "[121.78339632 -31.06220743 17.89619078 -25.81595636]\n", + "[119.98737711 -34.52452508 18.31425054 -25.23075186]\n", + "[ 0. 1. 30.00190744 26.45535012]\n", + "[1.73143247e-05 1.00001527e+00 3.00019038e+01 2.64553413e+01]\n", + "[3.46286495e-04 1.00030535e+00 3.00018355e+01 2.64551735e+01]\n", + "[5.19428808e-04 1.00045803e+00 3.00017995e+01 2.64550853e+01]\n", + "[1.38513933e-03 1.00122139e+00 3.00016196e+01 2.64546438e+01]\n", + "[1.53904288e-03 1.00135710e+00 3.00015876e+01 2.64545654e+01]\n", + "[1.73142209e-03 1.00152673e+00 3.00015476e+01 2.64544673e+01]\n", + "[1.73142209e-03 1.00152673e+00 3.00015476e+01 2.64544673e+01]\n", + "[5.19424551e-03 1.00458015e+00 3.00008280e+01 2.64527016e+01]\n", + "[6.92556377e-03 1.00610662e+00 3.00004682e+01 2.64518188e+01]\n", + "[1.55820514e-02 1.01373876e+00 2.99986694e+01 2.64474050e+01]\n", + "[1.71209283e-02 1.01509545e+00 2.99983496e+01 2.64466204e+01]\n", + "[1.90445012e-02 1.01679126e+00 2.99979500e+01 2.64456397e+01]\n", + "[1.90445010e-02 1.01679126e+00 2.99979500e+01 2.64456397e+01]\n", + "[ 0.05366858 1.04731521 29.99075586 26.42798616]\n", + "[ 0.07097128 1.06255426 29.98716421 26.41916722]\n", + "[ 0.15747451 1.13872422 29.96921186 26.37508111]\n", + "[ 0.17284754 1.15225237 29.96602342 26.36724806]\n", + "[ 0.19206138 1.1691567 29.96203925 26.35745874]\n", + "[ 0.19206123 1.16915648 29.96203933 26.35745881]\n", + "[ 0.53788756 1.47337821 29.8903376 26.18127009]\n", + "[ 0.70986969 1.62320128 29.85502282 26.09395055]\n", + "[ 1.56885582 2.3699336 29.67898092 25.65812973]\n", + "[ 1.72113439 2.50151631 29.64794044 25.58103461]\n", + "[ 1.91111153 2.66522582 29.60933708 25.48492826]\n", + "[ 1.91096148 2.6650092 29.60940813 25.48500849]\n", + "[ 5.32852357 5.60652693 28.91572261 23.75681826]\n", + "[ 6.94723012 6.85288171 28.61922075 22.96461033]\n", + "[15.0439765 12.98282576 27.13578422 19.01013547]\n", + "[16.5441885 14.10237307 26.84679399 18.28545037]\n", + "[18.25449332 15.24309833 26.56233437 17.46768903]\n", + "[18.09636001 15.01996877 26.63500584 17.54874173]\n", + "[27.81543321 21.42347799 25.02433441 12.91152952]\n", + "[32.01377181 22.72160694 24.52805849 11.01132317]\n", + "[54.27569726 29.81130644 21.47119492 0.9450646 ]\n", + "[60.34784604 33.23420126 20.17909468 -1.55773359]\n", + "[64.66617113 32.92279067 19.73448054 -3.48848913]\n", + "[60.97963885 28.16873422 21.00185854 -2.21056675]\n", + "[72.73268775 26.93165804 19.71230056 -7.55910412]\n", + "[77.79734273 22.9458311 19.15698226 -9.86405629]\n", + "[103.10856611 2.94951704 15.94778593 -21.15914687]\n", + "[108.46199629 1.26951049 14.96000078 -23.50224875]\n", + "[113.2723445 -6.21988022 14.23454348 -25.47267859]\n", + "[111.18930271 -11.47304422 14.88146092 -24.52924712]\n", + "[ 0. 1. 30.07935134 26.36726424]\n", + "[1.73143246e-05 1.00001518e+00 3.00793477e+01 2.63672554e+01]\n", + "[3.46286492e-04 1.00030355e+00 3.00792794e+01 2.63670883e+01]\n", + "[5.19428806e-04 1.00045532e+00 3.00792434e+01 2.63670004e+01]\n", + "[1.38513934e-03 1.00121419e+00 3.00790635e+01 2.63665606e+01]\n", + "[1.53904289e-03 1.00134910e+00 3.00790315e+01 2.63664824e+01]\n", + "[1.73142210e-03 1.00151773e+00 3.00789915e+01 2.63663847e+01]\n", + "[1.73142210e-03 1.00151773e+00 3.00789915e+01 2.63663847e+01]\n", + "[5.19424560e-03 1.00455314e+00 3.00782719e+01 2.63646257e+01]\n", + "[6.92556414e-03 1.00607062e+00 3.00779121e+01 2.63637462e+01]\n", + "[1.55820534e-02 1.01365776e+00 3.00761133e+01 2.63593491e+01]\n", + "[1.71209307e-02 1.01500645e+00 3.00757935e+01 2.63585674e+01]\n", + "[1.90445042e-02 1.01669226e+00 3.00753939e+01 2.63575904e+01]\n", + "[1.90445041e-02 1.01669226e+00 3.00753939e+01 2.63575904e+01]\n", + "[ 0.0536686 1.04703626 30.06819974 26.34000337]\n", + "[ 0.07097133 1.06218548 30.06460807 26.33121762]\n", + "[ 0.15747473 1.13790643 30.04665559 26.28729742]\n", + "[ 0.1728478 1.15135485 30.0434671 26.27949382]\n", + "[ 0.19206171 1.16815954 30.03948289 26.26974131]\n", + "[ 0.19206156 1.16815933 30.03948296 26.26974138]\n", + "[ 0.53788907 1.47058794 29.96778031 26.09421507]\n", + "[ 0.70987417 1.61952892 29.9324632 26.00722076]\n", + "[ 1.56887716 2.36186527 29.75640793 25.57302037]\n", + "[ 1.72115943 2.49267323 29.72536434 25.4962106 ]\n", + "[ 1.91114266 2.65541998 29.68675621 25.40045865]\n", + "[ 1.91099352 2.65520559 29.68682681 25.40053798]\n", + "[ 5.32866932 5.5794253 28.99305178 23.67871429]\n", + "[ 6.94765304 6.81853339 28.69633665 22.88915018]\n", + "[15.04541922 12.9123183 27.21197744 18.94806399]\n", + "[16.54524785 14.02460383 26.92306261 18.2261388 ]\n", + "[18.25599684 15.15868591 26.63824915 17.41090961]\n", + "[18.09884649 14.93787504 26.71045882 17.49105919]\n", + "[27.84057336 21.31714102 25.09444402 12.85861409]\n", + "[32.04837736 22.60605725 24.59601037 10.95996095]\n", + "[54.35789033 29.64618272 21.52729831 0.90365931]\n", + "[60.44037371 33.05326678 20.23159811 -1.59522604]\n", + "[64.76755623 32.73387347 19.78467386 -3.52412162]\n", + "[61.07659516 27.9927685 21.05465594 -2.24955211]\n", + "[72.84609569 26.73527444 19.75983089 -7.58938426]\n", + "[77.91656646 22.74845534 19.20247326 -9.89004223]\n", + "[103.25910695 2.75275744 15.98449968 -21.16531667]\n", + "[108.6205369 1.07467082 14.99606415 -23.50442908]\n", + "[113.4355163 -6.40733699 14.26954096 -25.47173584]\n", + "[111.348148 -11.65643035 14.91558252 -24.53006807]\n", + "[ 0. 1. 30.12337951 26.31695284]\n", + "[1.73143245e-05 1.00001513e+00 3.01233759e+01 2.63169441e+01]\n", + "[3.46286490e-04 1.00030253e+00 3.01233075e+01 2.63167773e+01]\n", + "[5.19428804e-04 1.00045379e+00 3.01232716e+01 2.63166895e+01]\n", + "[1.38513934e-03 1.00121010e+00 3.01230916e+01 2.63162507e+01]\n", + "[1.53904290e-03 1.00134455e+00 3.01230597e+01 2.63161727e+01]\n", + "[1.73142211e-03 1.00151262e+00 3.01230197e+01 2.63160752e+01]\n", + "[1.73142211e-03 1.00151262e+00 3.01230197e+01 2.63160752e+01]\n", + "[5.19424564e-03 1.00453781e+00 3.01223000e+01 2.63143199e+01]\n", + "[6.92556434e-03 1.00605018e+00 3.01219403e+01 2.63134424e+01]\n", + "[1.55820545e-02 1.01361178e+00 3.01201415e+01 2.63090547e+01]\n", + "[1.71209321e-02 1.01495593e+00 3.01198217e+01 2.63082747e+01]\n", + "[1.90445059e-02 1.01663606e+00 3.01194220e+01 2.63072997e+01]\n", + "[1.90445058e-02 1.01663606e+00 3.01194220e+01 2.63072997e+01]\n", + "[ 0.05366861 1.04687789 30.11222792 26.28975043]\n", + "[ 0.07097135 1.06197612 30.10863622 26.28098351]\n", + "[ 0.15747485 1.13744216 30.09068366 26.23715738]\n", + "[ 0.17284795 1.15084531 30.08749516 26.22937049]\n", + "[ 0.19206189 1.16759343 30.08351093 26.21963885]\n", + "[ 0.19206174 1.16759322 30.083511 26.21963893]\n", + "[ 0.53788992 1.46900385 30.01180781 26.04448824]\n", + "[ 0.7098767 1.61744402 29.97648938 25.95767837]\n", + "[ 1.56888924 2.35728446 29.80042653 25.52439694]\n", + "[ 1.72117361 2.48765254 29.76938118 25.447749 ]\n", + "[ 1.91116028 2.64985262 29.73077035 25.35219804]\n", + "[ 1.91101166 2.6496395 29.73084068 25.35227686]\n", + "[ 5.32875184 5.56403725 29.03701491 23.63406386]\n", + "[ 6.94789252 6.79902727 28.74017884 22.84600003]\n", + "[15.04623675 12.87226589 27.25529591 18.91251005]\n", + "[16.54584907 13.98043001 26.96642321 18.19214894]\n", + "[18.25684973 15.11073339 26.68140897 17.37835714]\n", + "[18.10025498 14.89122984 26.75335755 17.45799748]\n", + "[27.85486023 21.25663178 25.1343034 12.82827672]\n", + "[32.06804478 22.54027257 24.63464084 10.93051105]\n", + "[54.40459965 29.55201669 21.55918539 0.87989847]\n", + "[60.49294482 32.95006351 20.2614419 -1.6167493 ]\n", + "[64.82515956 32.62609017 19.81320149 -3.54458316]\n", + "[61.13169743 27.89237097 21.08465651 -2.27193312]\n", + "[72.91050036 26.62317066 19.78683641 -7.60679396]\n", + "[77.98425595 22.63575048 19.22831782 -9.90500212]\n", + "[103.34447778 2.64020158 16.005352 -21.1689607 ]\n", + "[108.71041103 0.9631379 15.01655031 -23.50579066]\n", + "[113.52800119 -6.51470191 14.28942134 -25.47130994]\n", + "[111.43821055 -11.76142063 14.93495959 -24.53065365]\n", + "[ 0. 1. 30.12456468 26.31559619]\n", + "[1.73143245e-05 1.00001513e+00 3.01245611e+01 2.63155874e+01]\n", + "[3.46286490e-04 1.00030250e+00 3.01244927e+01 2.63154207e+01]\n", + "[5.19428804e-04 1.00045375e+00 3.01244567e+01 2.63153329e+01]\n", + "[1.38513934e-03 1.00120999e+00 3.01242768e+01 2.63148941e+01]\n", + "[1.53904290e-03 1.00134443e+00 3.01242448e+01 2.63148161e+01]\n", + "[1.73142211e-03 1.00151248e+00 3.01242048e+01 2.63147186e+01]\n", + "[1.73142211e-03 1.00151248e+00 3.01242048e+01 2.63147186e+01]\n", + "[5.19424565e-03 1.00453740e+00 3.01234852e+01 2.63129634e+01]\n", + "[6.92556435e-03 1.00604963e+00 3.01231254e+01 2.63120859e+01]\n", + "[1.55820546e-02 1.01361054e+00 3.01213266e+01 2.63076985e+01]\n", + "[1.71209321e-02 1.01495457e+00 3.01210069e+01 2.63069185e+01]\n", + "[1.90445060e-02 1.01663455e+00 3.01206072e+01 2.63059436e+01]\n", + "[1.90445058e-02 1.01663455e+00 3.01206072e+01 2.63059436e+01]\n", + "[ 0.05366861 1.04687363 30.11341308 26.28839536]\n", + "[ 0.07097135 1.06197048 30.10982139 26.27962894]\n", + "[ 0.15747486 1.13742967 30.09186883 26.23580534]\n", + "[ 0.17284796 1.1508316 30.08868033 26.2280189 ]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0.19206189 1.1675782 30.08469609 26.21828782]\n", + "[ 0.19206175 1.16757799 30.08469616 26.2182879 ]\n", + "[ 0.53788994 1.46896123 30.01299296 26.04314731]\n", + "[ 0.70987677 1.61738792 29.97767449 25.9563424 ]\n", + "[ 1.56888956 2.35716122 29.80161144 25.52308569]\n", + "[ 1.72117399 2.48751745 29.77056604 25.44644209]\n", + "[ 1.91116075 2.64970283 29.73195514 25.35089654]\n", + "[ 1.91101214 2.64948974 29.73202547 25.35097535]\n", + "[ 5.32875406 5.56362323 29.03819833 23.63285946]\n", + "[ 6.94789896 6.79850241 28.74135901 22.84483598]\n", + "[15.04625873 12.87118806 27.25646199 18.91155033]\n", + "[16.54586525 13.97924131 26.96759041 18.19123127]\n", + "[18.25687267 15.10944295 26.68257077 17.37747814]\n", + "[18.10029284 14.88997449 26.75451234 17.45710482]\n", + "[27.85524475 21.2550024 25.13537636 12.82745754]\n", + "[32.06857413 22.53850081 24.63568069 10.9297158 ]\n", + "[54.4058568 29.54947896 21.56004366 0.87925665]\n", + "[60.49435963 32.94728202 20.26224519 -1.61733076]\n", + "[64.82670978 32.62318498 19.81396933 -3.545136 ]\n", + "[61.1331805 27.88966482 21.08546391 -2.27253777]\n", + "[72.91223332 26.62014842 19.78756319 -7.60726456]\n", + "[77.98607712 22.63271168 19.22901333 -9.90540669]\n", + "[103.34677366 2.63716478 16.00591311 -21.16906016]\n", + "[108.71282769 0.96012796 15.0171016 -23.50582853]\n", + "[113.5304879 -6.51759994 14.28995633 -25.47129957]\n", + "[111.44063243 -11.76425413 14.93548097 -24.5306706 ]\n", + "[ 0. 1. 30.1244113 26.31577177]\n", + "[1.73143245e-05 1.00001513e+00 3.01244077e+01 2.63157630e+01]\n", + "[3.46286490e-04 1.00030251e+00 3.01243393e+01 2.63155962e+01]\n", + "[5.19428804e-04 1.00045376e+00 3.01243034e+01 2.63155085e+01]\n", + "[1.38513934e-03 1.00121001e+00 3.01241234e+01 2.63150697e+01]\n", + "[1.53904290e-03 1.00134445e+00 3.01240915e+01 2.63149917e+01]\n", + "[1.73142211e-03 1.00151250e+00 3.01240515e+01 2.63148942e+01]\n", + "[1.73142211e-03 1.00151250e+00 3.01240515e+01 2.63148942e+01]\n", + "[5.19424564e-03 1.00453745e+00 3.01233318e+01 2.63131390e+01]\n", + "[6.92556435e-03 1.00604970e+00 3.01229720e+01 2.63122615e+01]\n", + "[1.55820546e-02 1.01361070e+00 3.01211733e+01 2.63078740e+01]\n", + "[1.71209321e-02 1.01495474e+00 3.01208535e+01 2.63070940e+01]\n", + "[1.90445060e-02 1.01663474e+00 3.01204538e+01 2.63061191e+01]\n", + "[1.90445058e-02 1.01663474e+00 3.01204538e+01 2.63061191e+01]\n", + "[ 0.05366861 1.04687419 30.1132597 26.28857073]\n", + "[ 0.07097135 1.06197121 30.10966801 26.27980425]\n", + "[ 0.15747486 1.13743129 30.09171545 26.23598032]\n", + "[ 0.17284796 1.15083337 30.08852695 26.22819382]\n", + "[ 0.19206189 1.16758017 30.08454271 26.21846267]\n", + "[ 0.19206175 1.16757996 30.08454278 26.21846275]\n", + "[ 0.53788994 1.46896674 30.01283958 26.04332085]\n", + "[ 0.70987676 1.61739518 29.97752112 25.9565153 ]\n", + "[ 1.56888952 2.35717717 29.8014581 25.52325539]\n", + "[ 1.72117394 2.48753494 29.7704127 25.44661123]\n", + "[ 1.91116069 2.64972222 29.73180181 25.35106498]\n", + "[ 1.91101208 2.64950912 29.73187214 25.35114379]\n", + "[ 5.32875377 5.56367681 29.03804517 23.63301533]\n", + "[ 6.94789813 6.79857033 28.74120627 22.84498663]\n", + "[15.04625589 12.87132755 27.25631108 18.91167454]\n", + "[16.54586315 13.97939515 26.96743936 18.19135004]\n", + "[18.2568697 15.10960995 26.68242042 17.37759191]\n", + "[18.10028794 14.89013695 26.75436289 17.45722035]\n", + "[27.85519499 21.25521327 25.1352375 12.82756356]\n", + "[32.06850562 22.53873011 24.63554612 10.92981873]\n", + "[54.40569411 29.54980739 21.55993258 0.87933971]\n", + "[60.49417653 32.947642 20.26214124 -1.61725551]\n", + "[64.82650916 32.62356097 19.81386996 -3.54506444]\n", + "[61.13298857 27.89001505 21.08535942 -2.27245951]\n", + "[72.91200905 26.62053956 19.78746913 -7.60720365]\n", + "[77.98584143 22.63310496 19.22892332 -9.90535433]\n", + "[103.34647655 2.63755781 16.0058405 -21.16904729]\n", + "[108.71251494 0.96051752 15.01703025 -23.50582363]\n", + "[113.53016609 -6.51722487 14.28988709 -25.47130091]\n", + "[111.44031901 -11.76388741 14.93541349 -24.53066841]\n", + "[ 0. 1. 30.12471806 26.31542061]\n", + "[1.73143245e-05 1.00001512e+00 3.01247145e+01 2.63154118e+01]\n", + "[3.46286490e-04 1.00030250e+00 3.01246461e+01 2.63152451e+01]\n", + "[5.19428804e-04 1.00045375e+00 3.01246101e+01 2.63151573e+01]\n", + "[1.38513934e-03 1.00120998e+00 3.01244302e+01 2.63147185e+01]\n", + "[1.53904290e-03 1.00134442e+00 3.01243982e+01 2.63146405e+01]\n", + "[1.73142211e-03 1.00151247e+00 3.01243582e+01 2.63145430e+01]\n", + "[1.73142211e-03 1.00151247e+00 3.01243582e+01 2.63145430e+01]\n", + "[5.19424565e-03 1.00453735e+00 3.01236386e+01 2.63127879e+01]\n", + "[6.92556435e-03 1.00604956e+00 3.01232788e+01 2.63119104e+01]\n", + "[1.55820546e-02 1.01361038e+00 3.01214800e+01 2.63075230e+01]\n", + "[1.71209321e-02 1.01495439e+00 3.01211603e+01 2.63067430e+01]\n", + "[1.90445060e-02 1.01663435e+00 3.01207606e+01 2.63057681e+01]\n", + "[1.90445058e-02 1.01663435e+00 3.01207606e+01 2.63057681e+01]\n", + "[ 0.05366861 1.04687308 30.11356646 26.28821998]\n", + "[ 0.07097135 1.06196975 30.10997477 26.27945363]\n", + "[ 0.15747486 1.13742806 30.09202221 26.23563036]\n", + "[ 0.17284796 1.15082982 30.0888337 26.22784397]\n", + "[ 0.1920619 1.16757623 30.08484947 26.21811297]\n", + "[ 0.19206175 1.16757602 30.08484954 26.21811304]\n", + "[ 0.53788995 1.46895571 30.01314634 26.04297376]\n", + "[ 0.70987678 1.61738066 29.97782786 25.9561695 ]\n", + "[ 1.5688896 2.35714527 29.80176479 25.52291599]\n", + "[ 1.72117404 2.48749997 29.77071938 25.44627295]\n", + "[ 1.91116081 2.64968345 29.73210847 25.3507281 ]\n", + "[ 1.91101221 2.64947036 29.7321788 25.35080691]\n", + "[ 5.32875435 5.56356965 29.03835148 23.63270358]\n", + "[ 6.94789979 6.79843448 28.74151174 22.84468533]\n", + "[15.04626158 12.87104858 27.25661289 18.91142612]\n", + "[16.54586734 13.97908748 26.96774146 18.1911125 ]\n", + "[18.25687564 15.10927595 26.68272112 17.37736438]\n", + "[18.10029774 14.88981202 26.75466179 17.45698928]\n", + "[27.85529452 21.25479154 25.13551521 12.82735151]\n", + "[32.06864263 22.53827152 24.63581527 10.92961287]\n", + "[54.4060195 29.54915053 21.56015473 0.87917358]\n", + "[60.49454272 32.94692205 20.26234915 -1.61740602]\n", + "[64.8269104 32.62280899 19.8140687 -3.54520755]\n", + "[61.13337243 27.8893146 21.0855684 -2.27261602]\n", + "[72.91245759 26.61975728 19.78765724 -7.60732547]\n", + "[77.9863128 22.6323184 19.22910334 -9.90545905]\n", + "[103.34707077 2.63677175 16.00598573 -21.16907304]\n", + "[108.71314043 0.9597384 15.01717294 -23.50583344]\n", + "[113.53080971 -6.51797502 14.29002556 -25.47129823]\n", + "[111.44094585 -11.76462086 14.93554844 -24.5306728 ]\n", + "Wall time: 1.3 s\n" ] } ], @@ -479,7 +1863,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -545,7 +1929,7 @@ "dtype: object" ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -563,7 +1947,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -578,7 +1962,7 @@ "" ] }, - "execution_count": 16, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -589,7 +1973,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -604,7 +1988,7 @@ "" ] }, - "execution_count": 17, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -626,98 +2010,18 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\u001b[1;32mdef\u001b[0m \u001b[0mmax_bounded\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmax_func\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;34m\"\"\"Finds the input value that maximizes `max_func`.\n", - "\n", - " Wrapper for https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize_scalar.html\n", - "\n", - " min_func: computes the function to be maximized\n", - " bounds: sequence of two values, lower and upper bounds of the\n", - " range to be searched\n", - " args: any additional positional arguments are passed to max_func\n", - " options: any keyword arguments are passed as options to minimize_scalar\n", - "\n", - " returns: ModSimSeries object\n", - " \"\"\"\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mmin_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[1;33m-\u001b[0m\u001b[0mmax_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", - "\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmin_bounded\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmin_func\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# we have to negate the function value before returning res\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfun\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m-\u001b[0m\u001b[0mres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfun\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "%psource max_bounded" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\u001b[1;32mdef\u001b[0m \u001b[0mmin_bounded\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmin_func\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;34m\"\"\"Finds the input value that minimizes `min_func`.\n", - "\n", - " Wrapper for https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize_scalar.html\n", - "\n", - " min_func: computes the function to be minimized\n", - " bounds: sequence of two values, lower and upper bounds of the\n", - " range to be searched\n", - " args: any additional positional arguments are passed to min_func\n", - " options: any keyword arguments are passed as options to minimize_scalar\n", - "\n", - " returns: ModSimSeries object\n", - " \"\"\"\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# try:\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# print(bounds[0])\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# min_func(bounds[0], *args)\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# except Exception as e:\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# msg = \"\"\"Before running scipy.integrate.min_bounded, I tried\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# running the slope function you provided with the\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# initial conditions in system and t=0, and I got\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# the following error:\"\"\"\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# logger.error(msg)\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# raise(e)\u001b[0m\u001b[1;33m\n", - "\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0munderride\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mxatol\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1e-3\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", - "\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;31m# TODO: Do we need to remove units from bounds?\u001b[0m\u001b[1;33m\n", - "\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0munits_off\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mres\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mminimize_scalar\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmin_func\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mbracket\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mbounds\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mbounds\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0margs\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0margs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mmethod\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'bounded'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0moptions\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0moptions\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", - "\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msuccess\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[0mmsg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"\"\"scipy.optimize.minimize_scalar did not succeed.\n", - " The message it returned is %s\"\"\"\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mres\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmessage\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mException\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n", - "\u001b[0m\u001b[1;33m\n", - "\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mModSimSeries\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mres\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "%psource min_bounded" ] @@ -745,28 +2049,9 @@ }, { "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "10.365609807246543 meter" - ], - "text/latex": [ - "$10.365609807246543 meter$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 19, + "metadata": {}, + "outputs": [], "source": [ "def event_func_wall(state, t, system):\n", " x, y, vx, vy = state\n", @@ -796,7 +2081,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -824,8 +2109,8 @@ "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mslope_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmake_system\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[1;32m\u001b[0m in \u001b[0;36mslope_func\u001b[1;34m(state, t, system)\u001b[0m\n\u001b[0;32m 9\u001b[0m \"\"\"\n\u001b[0;32m 10\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvy\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[0munpack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msystem\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mslope_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmake_system\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m\u001b[0m in \u001b[0;36mslope_func\u001b[1;34m(state, t, system)\u001b[0m\n\u001b[0;32m 9\u001b[0m \"\"\"\n\u001b[0;32m 10\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvy\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstate\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 12\u001b[0m \u001b[0munpack\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msystem\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 13\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mValueError\u001b[0m: too many values to unpack (expected 4)" ] } @@ -836,11 +2121,567 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": { - "collapsed": true - }, + "execution_count": 21, + "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 1. 33.01363222 22.58539546]\n", + "[1.73143076e-05 1.00001185e+00 3.30136286e+01 2.25853879e+01]\n", + "[3.46286152e-04 1.00023690e+00 3.30135602e+01 2.25852434e+01]\n", + "[5.19428378e-04 1.00035535e+00 3.30135243e+01 2.25851674e+01]\n", + "[1.38513857e-03 1.00094760e+00 3.30133443e+01 2.25847873e+01]\n", + "[1.53904211e-03 1.00105288e+00 3.30133124e+01 2.25847198e+01]\n", + "[1.73142132e-03 1.00118449e+00 3.30132724e+01 2.25846353e+01]\n", + "[1.73142132e-03 1.00118449e+00 3.30132724e+01 2.25846353e+01]\n", + "[5.19424509e-03 1.00355344e+00 3.30125527e+01 2.25831151e+01]\n", + "[6.92557206e-03 1.00473773e+00 3.30121930e+01 2.25823550e+01]\n", + "[1.55821126e-02 1.01065899e+00 3.30103941e+01 2.25785547e+01]\n", + "[1.71210039e-02 1.01171156e+00 3.30100743e+01 2.25778791e+01]\n", + "[1.90445968e-02 1.01302722e+00 3.30096746e+01 2.25770347e+01]\n", + "[1.90445967e-02 1.01302722e+00 3.30096746e+01 2.25770347e+01]\n", + "[ 0.05366906 1.03670869 33.00248022 22.56183461]\n", + "[ 0.0709728 1.04853149 32.9988877 22.55424032]\n", + "[ 0.15748217 1.10762567 32.98093031 22.51627519]\n", + "[ 0.17285676 1.11812098 32.97774057 22.50952913]\n", + "[ 0.1920728 1.13123555 32.97375461 22.50109801]\n", + "[ 0.19207268 1.1312354 32.97375467 22.50109806]\n", + "[ 0.53794055 1.36725362 32.90201893 22.34935198]\n", + "[ 0.71002798 1.48347208 32.86661851 22.2740486 ]\n", + "[ 1.56961172 2.06268096 32.69008565 21.8981101 ]\n", + "[ 1.72202249 2.16471736 32.6589301 21.83156523]\n", + "[ 1.91221516 2.29168457 32.62015169 21.74857008]\n", + "[ 1.91209642 2.29154006 32.62020716 21.74862124]\n", + "[ 5.33369084 4.57279354 31.92323259 20.25599242]\n", + "[ 6.96224272 5.53728508 31.61886526 19.56292129]\n", + "[15.09589085 10.26332212 30.10068529 16.10854453]\n", + "[16.58349965 11.10802329 29.81353989 15.48441707]\n", + "[18.30975974 11.98466487 29.51585107 14.76238238]\n", + "[18.1851959 11.83636751 29.57264449 14.81424697]\n", + "[28.78292297 17.14523822 27.75142565 10.38996524]\n", + "[33.34754788 18.01598978 27.16714173 8.55928402]\n", + "[57.43383528 22.81811382 23.63632294 -1.06307696]\n", + "[63.88109982 25.53785478 22.21090767 -3.38940228]\n", + "[68.53702635 24.84192589 21.6713683 -5.23857282]\n", + "[64.71098884 20.63407666 23.02550611 -4.11462717]\n", + "[76.99114128 18.43962983 21.5331281 -9.07455788]\n", + "[ 82.23579926 14.36647646 20.89730891 -11.19351941]\n", + "[108.51063942 -5.88306096 17.3514598 -21.61336308]\n", + "[114.09034604 -7.60437154 16.34797643 -23.77375649]\n", + "[119.03596007 -14.83177983 15.58297543 -25.60112824]\n", + "[116.85305402 -19.80074234 16.18332714 -24.74260806]\n", + "[ 0. 1. 22.58539546 33.01363222]\n", + "[1.73142932e-05 1.00002531e+00 2.25853919e+01 3.30136194e+01]\n", + "[3.46285863e-04 1.00050617e+00 2.25853235e+01 3.30133768e+01]\n", + "[5.19427553e-04 1.00075926e+00 2.25852875e+01 3.30132490e+01]\n", + "[1.38513463e-03 1.00202467e+00 2.25851076e+01 3.30126104e+01]\n", + "[1.53903738e-03 1.00224963e+00 2.25850756e+01 3.30124969e+01]\n", + "[1.73141552e-03 1.00253082e+00 2.25850356e+01 3.30123550e+01]\n", + "[1.73141552e-03 1.00253082e+00 2.25850356e+01 3.30123550e+01]\n", + "[5.19421899e-03 1.00759237e+00 2.25843160e+01 3.30098005e+01]\n", + "[6.92549659e-03 1.01012271e+00 2.25839562e+01 3.30085235e+01]\n", + "[1.55817469e-02 1.02277389e+00 2.25821576e+01 3.30021383e+01]\n", + "[1.71205638e-02 1.02502274e+00 2.25818379e+01 3.30010033e+01]\n", + "[1.90440541e-02 1.02783368e+00 2.25814383e+01 3.29995845e+01]\n", + "[1.90440538e-02 1.02783368e+00 2.25814383e+01 3.29995845e+01]\n", + "[ 0.05366657 1.07842961 22.57424531 32.97404738]\n", + "[ 0.07096543 1.10368352 22.57065649 32.96129538]\n", + "[ 0.15744611 1.2299046 22.55272076 32.89755354]\n", + "[ 0.17281345 1.25231873 22.54953653 32.8862311 ]\n", + "[ 0.19201929 1.28032495 22.54555827 32.87208236]\n", + "[ 0.19201901 1.28032434 22.5455584 32.8720826 ]\n", + "[ 0.53769408 1.78432869 22.47396827 32.61744564]\n", + "[ 0.70929677 2.03193868 22.43893326 32.49176873]\n", + "[ 1.56614534 3.26555584 22.26448232 31.86496341]\n", + "[ 1.7179663 3.48276535 22.23380365 31.75428821]\n", + "[ 1.90717089 3.75261673 22.19576829 31.61656487]\n", + "[ 1.90688694 3.75200413 22.19590541 31.61680649]\n", + "[ 5.31002783 8.59958501 21.51286674 29.14129215]\n", + "[ 6.8937821 10.59637825 21.24142428 28.05213113]\n", + "[14.87265803 20.51093765 19.85893236 22.56717428]\n", + "[16.43723553 22.47708158 19.55105005 21.49407015]\n", + "[18.09437471 24.25757866 19.30633285 20.39791913]\n", + "[17.79105872 23.62106401 19.44579925 20.63833413]\n", + "[25.33680253 31.62955879 18.33408858 15.65565667]\n", + "[28.62436297 33.45864445 18.02635933 13.63560557]\n", + "[46.23462431 43.43839709 16.04200928 2.81694909]\n", + "[51.20743433 47.91013643 15.12247676 0.05461775]\n", + "[54.65075842 47.94972075 14.87409034 -2.03372382]\n", + "[51.525659 42.16302125 15.82766613 -0.5671572 ]\n", + "[61.32134549 41.81200967 15.02160031 -6.6034585 ]\n", + "[65.65795854 37.43367771 14.63371352 -9.2621242 ]\n", + "[ 86.88408137 14.82748143 12.19436678 -22.02088303]\n", + "[ 90.96340579 12.21083697 11.29196656 -24.55702921]\n", + "[ 95.14005285 3.53406768 10.66600076 -26.69133723]\n", + "[ 93.95763063 -1.55514893 11.35326653 -25.74420563]\n", + "[104.19557046 -24.77028507 9.85660966 -31.18771107]\n", + "[107.79620921 -41.90019035 9.09272625 -32.35063472]\n", + "[ 123.86300151 -108.69556346 6.78144172 -43.16734207]\n", + "[123.58591208 -89.88003234 8.54126573 -54.71325398]\n", + "[ 124.69269367 -105.04019068 8.64575644 -58.99754981]\n", + "[ 129.63703917 -159.68316995 4.92665121 -40.26411003]\n", + "[100.29180116 -15.91825652 10.42729119 -29.11207966]\n", + "[102.87769278 -25.21367547 9.95450742 -30.22243698]\n", + "[115.06421743 -68.35045385 7.95064608 -36.50327558]\n", + "[116.49427349 -70.43245022 8.03150744 -39.18136908]\n", + "[118.55576542 -81.66912973 7.63680897 -40.13399963]\n", + "[119.32558197 -91.69528395 6.97488292 -37.20570011]\n", + "[ 0. 1. 37.28129695 14.4949956 ]\n", + "[1.73141876e-05 1.00000673e+00 3.72812934e+01 1.44949897e+01]\n", + "[3.46283753e-04 1.00013464e+00 3.72812250e+01 1.44948766e+01]\n", + "[5.19424877e-04 1.00020195e+00 3.72811890e+01 1.44948171e+01]\n", + "[1.38512966e-03 1.00053853e+00 3.72810091e+01 1.44945196e+01]\n", + "[1.53903230e-03 1.00059837e+00 3.72809771e+01 1.44944667e+01]\n", + "[1.73141041e-03 1.00067316e+00 3.72809371e+01 1.44944006e+01]\n", + "[1.73141041e-03 1.00067316e+00 3.72809371e+01 1.44944006e+01]\n", + "[5.19421451e-03 1.00201946e+00 3.72802175e+01 1.44932105e+01]\n", + "[6.92554136e-03 1.00269249e+00 3.72798577e+01 1.44926155e+01]\n", + "[1.55820921e-02 1.00605747e+00 3.72780588e+01 1.44896406e+01]\n", + "[1.71209908e-02 1.00665562e+00 3.72777390e+01 1.44891117e+01]\n", + "[1.90445955e-02 1.00740327e+00 3.72773393e+01 1.44884507e+01]\n", + "[1.90445954e-02 1.00740327e+00 3.72773393e+01 1.44884507e+01]\n", + "[ 0.05366929 1.02086073 37.27014446 14.47655165]\n", + "[ 0.07097413 1.02757703 37.26655084 14.47060559]\n", + "[ 0.15748999 1.06114475 37.24858691 14.44087908]\n", + "[ 0.17286628 1.06710517 37.24539549 14.43559636]\n", + "[ 0.19208471 1.07455255 37.2414072 14.42899382]\n", + "[ 0.19208462 1.07455247 37.24140724 14.42899385]\n", + "[ 0.53799786 1.2085748 37.16962719 14.31015667]\n", + "[ 0.71020442 1.27434418 37.13411434 14.25108105]\n", + "[ 1.57046609 1.60186795 36.9569339 13.95605729]\n", + "[ 1.72302821 1.65942933 36.92562412 13.90378773]\n", + "[ 1.91346588 1.73100197 36.88661488 13.83855659]\n", + "[ 1.91338118 1.73092509 36.88665316 13.83858065]\n", + "[ 5.3395626 3.01630839 36.1853356 12.66520725]\n", + "[ 6.97936945 3.53638891 35.87048843 12.11090227]\n", + "[15.15611188 6.05402799 34.30374001 9.35148481]\n", + "[16.63082391 6.48716654 34.01610456 8.86007548]\n", + "[18.37559866 6.92608215 33.70021577 8.27500626]\n", + "[18.28730319 6.84769637 33.73945957 8.29952276]\n", + "[30.06112794 9.74392315 31.61399799 4.35684552]\n", + "[35.11361932 9.64420678 30.88454857 2.69009923]\n", + "[61.51654854 9.31544017 26.63183025 -5.91835573]\n", + "[68.29462259 10.56371554 25.07106451 -7.85456636]\n", + "[73.37021018 8.96509443 24.37358572 -9.51870886]\n", + "[69.58062775 5.79642504 25.75125407 -8.73203557]\n", + "[ 81.42729034 1.77932053 24.07758858 -12.67292274]\n", + "[ 86.48442035 -2.26882776 23.36199067 -14.3546176 ]\n", + "[111.79914697 -22.41424776 19.57910929 -22.65091948]\n", + "[117.01769495 -24.67303193 18.66939742 -24.32752955]\n", + "[121.78339632 -31.06220743 17.89619078 -25.81595636]\n", + "[119.98737711 -34.52452508 18.31425054 -25.23075186]\n", + "[ 0. 1. 30.59668446 25.76514895]\n", + "[1.73143232e-05 1.00001458e+00 3.05966809e+01 2.57651404e+01]\n", + "[3.46286465e-04 1.00029160e+00 3.05966125e+01 2.57649774e+01]\n", + "[5.19428781e-04 1.00043740e+00 3.05965765e+01 2.57648917e+01]\n", + "[1.38513934e-03 1.00116640e+00 3.05963966e+01 2.57644629e+01]\n", + "[1.53904291e-03 1.00129600e+00 3.05963646e+01 2.57643867e+01]\n", + "[1.73142214e-03 1.00145800e+00 3.05963246e+01 2.57642914e+01]\n", + "[1.73142214e-03 1.00145800e+00 3.05963246e+01 2.57642914e+01]\n", + "[5.19424606e-03 1.00437394e+00 3.05956050e+01 2.57625762e+01]\n", + "[6.92556640e-03 1.00583170e+00 3.05952452e+01 2.57617187e+01]\n", + "[1.55820663e-02 1.01312022e+00 3.05934464e+01 2.57574313e+01]\n", + "[1.71209465e-02 1.01441584e+00 3.05931266e+01 2.57566692e+01]\n", + "[1.90445239e-02 1.01603530e+00 3.05927270e+01 2.57557165e+01]\n", + "[1.90445238e-02 1.01603530e+00 3.05927270e+01 2.57557165e+01]\n", + "[ 0.05366869 1.04518504 30.58553279 25.73856837]\n", + "[ 0.07097161 1.05973808 30.58194096 25.73000166]\n", + "[ 0.15747616 1.13247917 30.56398756 25.68717622]\n", + "[ 0.17284953 1.14539837 30.56079885 25.67956703]\n", + "[ 0.19206384 1.16154178 30.55681432 25.67005741]\n", + "[ 0.19206369 1.16154159 30.55681439 25.67005749]\n", + "[ 0.53789892 1.45206958 30.48510561 25.49890242]\n", + "[ 0.7099035 1.59515435 30.4497731 25.41405492]\n", + "[ 1.56901692 2.3083037 30.27362971 24.99055127]\n", + "[ 1.72132351 2.43396697 30.24256557 24.9156253 ]\n", + "[ 1.91134657 2.59031954 30.20392601 24.82221335]\n", + "[ 1.91120337 2.59011948 30.20399366 24.8222869 ]\n", + "[ 5.32962415 5.39945066 29.50962838 23.1425005 ]\n", + "[ 6.95042448 6.59023746 29.21150578 22.37044246]\n", + "[15.05490396 12.44301603 27.72103023 18.51793143]\n", + "[16.55226362 13.50717467 27.43257738 17.81416491]\n", + "[18.26593143 14.59675584 27.14542195 17.01573002]\n", + "[18.11516567 14.39082402 27.21462803 17.09008219]\n", + "[28.00818184 20.60338218 25.56282842 12.49031513]\n", + "[32.27917305 21.82854916 25.04985196 10.60230216]\n", + "[54.905837 28.52599281 21.90156354 0.61419269]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[61.056555 31.82462996 20.58201295 -1.85779034]\n", + "[65.44270612 31.44948923 20.11949263 -3.77400289]\n", + "[61.72314805 26.79622602 21.40642764 -2.52260372]\n", + "[73.59951569 25.39667586 20.07639371 -7.8029455 ]\n", + "[ 78.70755312 21.40115282 19.50532852 -10.07440805]\n", + "[104.2520186 1.39823182 16.2286294 -21.21433806]\n", + "[109.66428161 -0.27097769 15.23607163 -23.52596236]\n", + "[114.50888984 -7.70525115 14.50244617 -25.47171296]\n", + "[112.39478235 -12.92357747 15.14231158 -24.54233284]\n", + "[ 0. 1. 29.73110726 26.75932102]\n", + "[1.73143252e-05 1.00001558e+00 2.97311037e+01 2.67593121e+01]\n", + "[3.46286504e-04 1.00031167e+00 2.97310353e+01 2.67591421e+01]\n", + "[5.19428813e-04 1.00046751e+00 2.97309993e+01 2.67590526e+01]\n", + "[1.38513931e-03 1.00124668e+00 2.97308194e+01 2.67586054e+01]\n", + "[1.53904285e-03 1.00138519e+00 2.97307874e+01 2.67585258e+01]\n", + "[1.73142204e-03 1.00155834e+00 2.97307474e+01 2.67584264e+01]\n", + "[1.73142204e-03 1.00155834e+00 2.97307474e+01 2.67584264e+01]\n", + "[5.19424517e-03 1.00467497e+00 2.97300278e+01 2.67566373e+01]\n", + "[6.92556244e-03 1.00623305e+00 2.97296680e+01 2.67557428e+01]\n", + "[1.55820441e-02 1.01402319e+00 2.97278692e+01 2.67512705e+01]\n", + "[1.71209195e-02 1.01540797e+00 2.97275495e+01 2.67504754e+01]\n", + "[1.90444902e-02 1.01713888e+00 2.97271498e+01 2.67494817e+01]\n", + "[1.90444901e-02 1.01713888e+00 2.97271498e+01 2.67494817e+01]\n", + "[ 0.05366853 1.04829475 29.71995572 26.73159386]\n", + "[ 0.07097113 1.06384924 29.71636415 26.72265798]\n", + "[ 0.15747373 1.14159584 29.69841229 26.67798742]\n", + "[ 0.17284661 1.15540399 29.69522397 26.67005058]\n", + "[ 0.19206023 1.17265818 29.69123998 26.66013159]\n", + "[ 0.19206007 1.17265796 29.69124005 26.66013167]\n", + "[ 0.53788223 1.48317595 29.6195416 26.48160941]\n", + "[ 0.70985383 1.63609574 29.58423506 26.39314431]\n", + "[ 1.56878035 2.39826038 29.40824026 25.95161598]\n", + "[ 1.72104582 2.53256263 29.37721074 25.87351588]\n", + "[ 1.91100145 2.69965136 29.33862418 25.77616143]\n", + "[ 1.91084815 2.69942676 29.33869683 25.7762449 ]\n", + "[ 5.32800805 5.70165794 28.64532676 24.02563395]\n", + "[ 6.94573441 6.97338767 28.34957616 23.224131 ]\n", + "[15.03888401 13.22998066 26.86938125 19.22255973]\n", + "[16.54046622 14.37505055 26.58011411 18.48813402]\n", + "[18.24920278 15.53897404 26.29689878 17.66147889]\n", + "[18.08757427 15.30753998 26.37121094 17.74576543]\n", + "[27.72742398 21.79440598 24.77919678 13.09212866]\n", + "[31.89265291 23.12408902 24.29042764 11.18656762]\n", + "[53.98796422 30.38368484 21.27486729 1.08598139]\n", + "[60.02374043 33.86101744 19.99541308 -1.43027149]\n", + "[64.31103521 33.57679012 19.55882765 -3.36745741]\n", + "[60.64027984 28.77783973 20.81696917 -2.07804428]\n", + "[72.33493587 27.61042612 19.54581507 -7.45664256]\n", + "[77.3788845 23.62740296 18.99759849 -9.77646608]\n", + "[102.57847791 3.62532708 15.81904668 -21.13998702]\n", + "[107.90315346 1.93739813 14.83359549 -23.49678737]\n", + "[112.69692526 -5.5783491 14.11186745 -25.47792815]\n", + "[110.62966905 -10.84470374 14.76175646 -24.52848536]\n", + "[ 0. 1. 27.17943783 29.34754094]\n", + "[1.73143229e-05 1.00001870e+00 2.71794342e+01 2.93475308e+01]\n", + "[3.46286458e-04 1.00037391e+00 2.71793659e+01 2.93473384e+01]\n", + "[5.19428656e-04 1.00056086e+00 2.71793299e+01 2.93472371e+01]\n", + "[1.38513850e-03 1.00149562e+00 2.71791500e+01 2.93467307e+01]\n", + "[1.53904187e-03 1.00166180e+00 2.71791180e+01 2.93466406e+01]\n", + "[1.73142083e-03 1.00186952e+00 2.71790780e+01 2.93465281e+01]\n", + "[1.73142083e-03 1.00186952e+00 2.71790780e+01 2.93465281e+01]\n", + "[5.19423957e-03 1.00560848e+00 2.71783584e+01 2.93445025e+01]\n", + "[6.92554579e-03 1.00747768e+00 2.71779986e+01 2.93434898e+01]\n", + "[1.55819624e-02 1.01682332e+00 2.71761999e+01 2.93384263e+01]\n", + "[1.71208211e-02 1.01848460e+00 2.71758801e+01 2.93375262e+01]\n", + "[1.90443687e-02 1.02056113e+00 2.71754804e+01 2.93364011e+01]\n", + "[1.90443686e-02 1.02056113e+00 2.71754804e+01 2.93364011e+01]\n", + "[ 0.05366797 1.05793791 27.16828672 29.31614942]\n", + "[ 0.07096946 1.07659727 27.16469599 29.30603391]\n", + "[ 0.1574656 1.16986206 27.14674907 29.25546774]\n", + "[ 0.17283683 1.18642582 27.14356201 29.24648411]\n", + "[ 0.19204815 1.20712306 27.13957978 29.23525724]\n", + "[ 0.19204797 1.20712274 27.13957987 29.23525736]\n", + "[ 0.5378266 1.57960189 27.06791465 29.0331989 ]\n", + "[ 0.70968872 1.76294529 27.03269154 28.93319533]\n", + "[ 1.56799602 2.67667662 26.85717313 28.43419218]\n", + "[ 1.72012654 2.83766867 26.82625359 28.34597729]\n", + "[ 1.9098587 3.03789523 26.78783699 28.23606952]\n", + "[ 1.90967009 3.0375782 26.78792711 28.23619047]\n", + "[ 5.32265327 6.63508101 26.09774655 26.26010234]\n", + "[ 6.93021889 8.15059288 25.80956175 25.36646558]\n", + "[14.98702147 15.62727632 24.3612675 20.89570977]\n", + "[16.50420009 17.02617509 24.06822266 20.06128001]\n", + "[18.19692515 18.407742 23.79735316 19.14715917]\n", + "[17.99722472 18.08008207 23.88941584 19.26882682]\n", + "[26.89011493 25.25294735 22.47131664 14.47693769]\n", + "[30.74268299 26.83261422 22.05063834 12.52577029]\n", + "[51.25404897 35.44466351 19.41529027 2.13365042]\n", + "[56.93113961 39.37356439 18.25893231 -0.4933455 ]\n", + "[60.92214476 39.29178014 17.89450219 -2.48681982]\n", + "[57.41988638 34.09770275 19.05657039 -1.1063698 ]\n", + "[68.509222 33.45388774 17.95675177 -6.74530067]\n", + "[73.3338867 29.440419 17.4725581 -9.1965058]\n", + "[ 97.33704721 9.08106144 14.57569855 -21.14743458]\n", + "[102.33203733 7.22486902 13.61528462 -23.61389105]\n", + "[106.94365866 -0.59156474 12.92831156 -25.68005735]\n", + "[105.07703039 -5.91027439 13.60079902 -24.68761821]\n", + "[ 0. 1. 28.58951267 27.97569955]\n", + "[1.73143255e-05 1.00001694e+00 2.85895091e+01 2.79756901e+01]\n", + "[3.46286511e-04 1.00033885e+00 2.85894407e+01 2.79755104e+01]\n", + "[5.19428786e-04 1.00050828e+00 2.85894047e+01 2.79754159e+01]\n", + "[1.38513907e-03 1.00135539e+00 2.85892248e+01 2.79749431e+01]\n", + "[1.53904255e-03 1.00150599e+00 2.85891928e+01 2.79748590e+01]\n", + "[1.73142166e-03 1.00169423e+00 2.85891528e+01 2.79747539e+01]\n", + "[1.73142166e-03 1.00169423e+00 2.85891528e+01 2.79747539e+01]\n", + "[5.19424318e-03 1.00508263e+00 2.85884332e+01 2.79728628e+01]\n", + "[6.92555588e-03 1.00677658e+00 2.85880734e+01 2.79719172e+01]\n", + "[1.55820106e-02 1.01524601e+00 2.85862747e+01 2.79671898e+01]\n", + "[1.71208789e-02 1.01675154e+00 2.85859549e+01 2.79663494e+01]\n", + "[1.90444400e-02 1.01863338e+00 2.85855552e+01 2.79652990e+01]\n", + "[1.90444398e-02 1.01863338e+00 2.85855552e+01 2.79652990e+01]\n", + "[ 0.0536683 1.05250596 28.57836131 27.94639103]\n", + "[ 0.07097042 1.06941649 28.5747701 27.93694605]\n", + "[ 0.15747029 1.15394068 28.55682037 27.889731 ]\n", + "[ 0.17284246 1.16895242 28.55363259 27.88134236]\n", + "[ 0.1920551 1.18771048 28.54964936 27.87085887]\n", + "[ 0.19205494 1.18771021 28.54964944 27.87085897]\n", + "[ 0.53785861 1.52529213 28.47796529 27.68217802]\n", + "[ 0.70978365 1.69151205 28.44269468 27.58872919]\n", + "[ 1.56844657 2.51994691 28.26690525 27.12237327]\n", + "[ 1.72065435 2.66592328 28.23592332 27.03990268]\n", + "[ 1.91051488 2.84751245 28.19741002 26.93712216]\n", + "[ 1.9103469 2.84725066 28.19748994 26.93722069]\n", + "[ 5.3257288 6.10998419 27.50549502 25.08914263]\n", + "[ 6.93912571 7.48952433 27.21301315 24.24751411]\n", + "[15.01657467 14.2848729 25.74676685 20.04215744]\n", + "[16.52448551 15.54014339 25.45608882 19.26498188]\n", + "[18.22634376 16.80150609 25.1782486 18.4000834 ]\n", + "[18.04891177 16.53138599 25.25995466 18.49941889]\n", + "[27.35466124 23.34655886 23.74615086 13.78045415]\n", + "[31.38014119 24.7983741 23.28840751 11.85350544]\n", + "[52.76972098 32.71717291 20.4448759 1.6158987 ]\n", + "[58.6483974 36.40994885 19.21965961 -0.95335523]\n", + "[62.80395439 36.22811623 18.81611144 -2.91655149]\n", + "[59.20437708 31.24635329 20.033202 -1.58260583]\n", + "[70.63953679 30.34298545 18.83925875 -7.08222709]\n", + "[75.59041204 26.3596555 18.32039806 -9.46256958]\n", + "[100.28554373 6.2682212 15.26977568 -21.10098387]\n", + "[105.4758908 4.52614132 14.29498258 -23.5112757 ]\n", + "[110.19367694 -3.11134565 13.58893583 -25.53402677]\n", + "[108.20426026 -8.41658809 14.25000179 -24.56203642]\n", + "[ 0. 1. 28.57458428 27.99094734]\n", + "[1.73143255e-05 1.00001696e+00 2.85745807e+01 2.79909379e+01]\n", + "[3.46286511e-04 1.00033921e+00 2.85745123e+01 2.79907581e+01]\n", + "[5.19428785e-04 1.00050882e+00 2.85744763e+01 2.79906635e+01]\n", + "[1.38513907e-03 1.00135684e+00 2.85742964e+01 2.79901903e+01]\n", + "[1.53904255e-03 1.00150759e+00 2.85742644e+01 2.79901062e+01]\n", + "[1.73142165e-03 1.00169604e+00 2.85742244e+01 2.79900011e+01]\n", + "[1.73142165e-03 1.00169604e+00 2.85742244e+01 2.79900011e+01]\n", + "[5.19424315e-03 1.00508806e+00 2.85735048e+01 2.79881085e+01]\n", + "[6.92555579e-03 1.00678381e+00 2.85731450e+01 2.79871623e+01]\n", + "[1.55820101e-02 1.01526229e+00 2.85713463e+01 2.79824314e+01]\n", + "[1.71208783e-02 1.01676942e+00 2.85710265e+01 2.79815904e+01]\n", + "[1.90444393e-02 1.01865328e+00 2.85706268e+01 2.79805392e+01]\n", + "[1.90444391e-02 1.01865328e+00 2.85706268e+01 2.79805392e+01]\n", + "[ 0.05366829 1.05256203 28.56343293 27.96161757]\n", + "[ 0.07097041 1.0694906 28.55984172 27.95216574]\n", + "[ 0.15747024 1.15410501 28.54189202 27.90491649]\n", + "[ 0.17284241 1.16913277 28.53870425 27.89652178]\n", + "[ 0.19205503 1.18791084 28.53472103 27.88603069]\n", + "[ 0.19205487 1.18791058 28.53472111 27.88603079]\n", + "[ 0.53785829 1.52585273 28.46303715 27.6972133 ]\n", + "[ 0.70978269 1.69224955 28.42776702 27.60369751]\n", + "[ 1.56844203 2.52156578 28.25198035 27.13700807]\n", + "[ 1.72064902 2.66769737 28.22099906 27.05447879]\n", + "[ 1.91050826 2.84947926 28.18248675 26.95162541]\n", + "[ 1.91034008 2.84921695 28.18256677 26.95172416]\n", + "[ 5.3256978 6.11541268 27.49059035 25.10233749]\n", + "[ 6.93903588 7.49637394 27.19815239 24.26017334]\n", + "[15.01627365 14.29883212 25.73209175 20.05209092]\n", + "[16.52427366 15.55557559 25.44139248 19.27433668]\n", + "[18.22603901 16.81821035 25.16362404 18.40892931]\n", + "[18.04838808 16.5475415 25.24543226 18.50847807]\n", + "[27.34976759 23.3667703 23.73264668 13.7886984 ]\n", + "[31.37341849 24.82006962 23.27530274 11.86148155]\n", + "[52.75373639 32.74689564 20.43399924 1.62215908]\n", + "[58.63032046 36.4423424 19.20950157 -0.94774966]\n", + "[62.78414546 36.26172052 18.80637706 -2.91127581]\n", + "[59.1855462 31.27763345 20.02290927 -1.57678899]\n", + "[70.6171824 30.37740073 18.82997051 -7.07793873]\n", + "[75.56678332 26.39392993 18.3114867 -9.45905198]\n", + "[100.25497557 6.30059846 15.26251978 -21.1009252 ]\n", + "[105.4434266 4.5575866 14.28787307 -23.51187063]\n", + "[110.16015745 -3.08161897 13.58203032 -25.53512799]\n", + "[108.17188179 -8.38719963 14.2432298 -24.56287482]\n", + "[ 0. 1. 28.502722 28.06412013]\n", + "[1.73143255e-05 1.00001705e+00 2.85027184e+01 2.80641106e+01]\n", + "[3.46286510e-04 1.00034096e+00 2.85026500e+01 2.80639302e+01]\n", + "[5.19428781e-04 1.00051143e+00 2.85026140e+01 2.80638352e+01]\n", + "[1.38513904e-03 1.00136381e+00 2.85024341e+01 2.80633604e+01]\n", + "[1.53904252e-03 1.00151535e+00 2.85024021e+01 2.80632760e+01]\n", + "[1.73142162e-03 1.00170476e+00 2.85023622e+01 2.80631705e+01]\n", + "[1.73142162e-03 1.00170476e+00 2.85023622e+01 2.80631705e+01]\n", + "[5.19424300e-03 1.00511422e+00 2.85016425e+01 2.80612713e+01]\n", + "[6.92555533e-03 1.00681870e+00 2.85012828e+01 2.80603218e+01]\n", + "[1.55820078e-02 1.01534077e+00 2.84994840e+01 2.80555744e+01]\n", + "[1.71208756e-02 1.01685565e+00 2.84991642e+01 2.80547305e+01]\n", + "[1.90444359e-02 1.01874919e+00 2.84987646e+01 2.80536756e+01]\n", + "[1.90444357e-02 1.01874919e+00 2.84987646e+01 2.80536756e+01]\n", + "[ 0.05366828 1.05283228 28.49157065 28.03468779]\n", + "[ 0.07097037 1.06984788 28.48797947 28.02520295]\n", + "[ 0.15747001 1.15489721 28.47002991 27.97778869]\n", + "[ 0.17284213 1.17000219 28.46684217 27.96936468]\n", + "[ 0.1920547 1.18887677 28.462859 27.95883699]\n", + "[ 0.19205453 1.1888765 28.46285908 27.95883709]\n", + "[ 0.53785673 1.52855522 28.39117605 27.76936085]\n", + "[ 0.70977808 1.69580484 28.35590826 27.67552207]\n", + "[ 1.56842011 2.52936968 28.18013493 27.20722376]\n", + "[ 1.72062333 2.67624946 28.14915672 27.12441132]\n", + "[ 1.91047633 2.85896038 28.11064915 27.02120651]\n", + "[ 1.91030716 2.85869551 28.11072966 27.02130629]\n", + "[ 5.32554815 6.1415798 27.41884251 25.16560717]\n", + "[ 6.93860221 7.52938687 27.12661638 24.32086042]\n", + "[15.01482114 14.36609635 25.6614507 20.09963326]\n", + "[16.52325288 15.62994326 25.37064812 19.31908572]\n", + "[18.22456992 16.89870115 25.09322578 18.45122526]\n", + "[18.04586037 16.62537407 25.17552789 18.55180707]\n", + "[27.32620346 23.46404436 23.66764227 13.82811801]\n", + "[31.34104917 24.92444791 23.21221879 11.89961423]\n", + "[52.67677093 32.88970568 20.38163347 1.65205824]\n", + "[58.54326969 36.59795727 19.16059832 -0.92098922]\n", + "[62.68875412 36.42311791 18.7595103 -2.88610017]\n", + "[59.09487925 31.42786635 19.97334721 -1.54902303]\n", + "[70.50951025 30.54261031 18.78524174 -7.05751292]\n", + "[75.45295735 26.55841006 18.2685694 -9.44232971]\n", + "[100.10762563 6.45567355 15.22756417 -21.10080682]\n", + "[105.28689891 4.70809374 14.25362419 -23.5148817 ]\n", + "[109.99852853 -2.93943415 13.54876296 -25.54056247]\n", + "[108.01579105 -8.24658339 14.21060105 -24.56705663]\n", + "[ 0. 1. 28.50995626 28.05677092]\n", + "[1.73143255e-05 1.00001704e+00 2.85099527e+01 2.80567614e+01]\n", + "[3.46286510e-04 1.00034078e+00 2.85098843e+01 2.80565811e+01]\n", + "[5.19428781e-04 1.00051117e+00 2.85098483e+01 2.80564861e+01]\n", + "[1.38513905e-03 1.00136311e+00 2.85096684e+01 2.80560115e+01]\n", + "[1.53904252e-03 1.00151456e+00 2.85096364e+01 2.80559271e+01]\n", + "[1.73142162e-03 1.00170388e+00 2.85095964e+01 2.80558216e+01]\n", + "[1.73142162e-03 1.00170388e+00 2.85095964e+01 2.80558216e+01]\n", + "[5.19424301e-03 1.00511159e+00 2.85088768e+01 2.80539231e+01]\n", + "[6.92555537e-03 1.00681518e+00 2.85085170e+01 2.80529740e+01]\n", + "[1.55820080e-02 1.01533286e+00 2.85067182e+01 2.80482282e+01]\n", + "[1.71208759e-02 1.01684696e+00 2.85063985e+01 2.80473846e+01]\n", + "[1.90444363e-02 1.01873953e+00 2.85059988e+01 2.80463301e+01]\n", + "[1.90444361e-02 1.01873953e+00 2.85059988e+01 2.80463301e+01]\n", + "[ 0.05366828 1.05280505 28.49880491 28.02734892]\n", + "[ 0.07097037 1.06981187 28.49521373 28.01786741]\n", + "[ 0.15747003 1.15481737 28.47726415 27.97046979]\n", + "[ 0.17284216 1.16991458 28.47407641 27.96204873]\n", + "[ 0.19205473 1.18877942 28.47009323 27.95152473]\n", + "[ 0.19205456 1.18877916 28.47009331 27.95152483]\n", + "[ 0.53785689 1.52828287 28.39841019 27.76211501]\n", + "[ 0.70977855 1.69544655 28.36314216 27.6683088 ]\n", + "[ 1.56842232 2.52858325 28.18736748 27.2001727 ]\n", + "[ 1.72062592 2.67538763 28.15638897 27.11738881]\n", + "[ 1.91047955 2.85800493 28.11788092 27.01421944]\n", + "[ 1.91031048 2.85774032 28.11796138 27.01431911]\n", + "[ 5.32556325 6.13894292 27.42606523 25.15925644]\n", + "[ 6.93864597 7.52606047 27.13381774 24.31477 ]\n", + "[15.01496762 14.35931989 25.66856187 20.09486786]\n", + "[16.52335571 15.62245074 25.37776978 19.3146021 ]\n", + "[18.22471796 16.89059224 25.10031255 18.44698884]\n", + "[18.04611534 16.61753402 25.18256479 18.54746617]\n", + "[27.32857615 23.45425337 23.67418601 13.82416966]\n", + "[31.34430831 24.91394473 23.21856936 11.89579515]\n", + "[52.68452033 32.87534933 20.38690562 1.64906609]\n", + "[58.55203534 36.58231578 19.16552166 -0.9236664 ]\n", + "[62.69835964 36.40689772 18.76422885 -2.88861806]\n", + "[59.10400795 31.41276833 19.97833766 -1.55180058]\n", + "[70.5203541 30.52601324 18.78974579 -7.05955285]\n", + "[75.46442215 26.54189029 18.2728913 -9.44399732]\n", + "[100.12247413 6.44012103 15.23108513 -21.10080643]\n", + "[105.30267511 4.69300719 14.25707386 -23.51456754]\n", + "[110.01481986 -2.95367919 13.55211386 -25.54000539]\n", + "[108.03152143 -8.26067499 14.21388797 -24.56662471]\n", + "[ 0. 1. 28.5101359 28.05658837]\n", + "[1.73143255e-05 1.00001704e+00 2.85101323e+01 2.80565789e+01]\n", + "[3.46286510e-04 1.00034078e+00 2.85100639e+01 2.80563985e+01]\n", + "[5.19428781e-04 1.00051116e+00 2.85100280e+01 2.80563036e+01]\n", + "[1.38513905e-03 1.00136309e+00 2.85098480e+01 2.80558290e+01]\n", + "[1.53904252e-03 1.00151454e+00 2.85098161e+01 2.80557446e+01]\n", + "[1.73142162e-03 1.00170386e+00 2.85097761e+01 2.80556391e+01]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1.73142162e-03 1.00170386e+00 2.85097761e+01 2.80556391e+01]\n", + "[5.19424301e-03 1.00511152e+00 2.85090564e+01 2.80537406e+01]\n", + "[6.92555537e-03 1.00681509e+00 2.85086967e+01 2.80527914e+01]\n", + "[1.55820080e-02 1.01533266e+00 2.85068979e+01 2.80480457e+01]\n", + "[1.71208759e-02 1.01684674e+00 2.85065781e+01 2.80472021e+01]\n", + "[1.90444363e-02 1.01873929e+00 2.85061785e+01 2.80461476e+01]\n", + "[1.90444361e-02 1.01873929e+00 2.85061785e+01 2.80461476e+01]\n", + "[ 0.05366828 1.05280437 28.49898456 28.02716663]\n", + "[ 0.07097037 1.06981098 28.49539338 28.01768519]\n", + "[ 0.15747004 1.15481539 28.4774438 27.97028799]\n", + "[ 0.17284216 1.1699124 28.47425606 27.961867 ]\n", + "[ 0.19205473 1.18877701 28.47027288 27.9513431 ]\n", + "[ 0.19205456 1.18877674 28.47027296 27.9513432 ]\n", + "[ 0.5378569 1.52827611 28.39858984 27.76193502]\n", + "[ 0.70977856 1.69543765 28.3633218 27.66812962]\n", + "[ 1.56842238 2.52856372 28.18754709 27.19999756]\n", + "[ 1.72062599 2.67536623 28.15656856 27.11721437]\n", + "[ 1.91047963 2.8579812 28.11806051 27.01404588]\n", + "[ 1.91031056 2.8577166 28.11814097 27.01414555]\n", + "[ 5.32556363 6.13887745 27.4262446 25.15909868]\n", + "[ 6.93864705 7.52597788 27.13399657 24.3146187 ]\n", + "[15.01497125 14.35915162 25.66873847 20.09474946]\n", + "[16.52335826 15.62226469 25.37794663 19.31449069]\n", + "[18.22472164 16.89039089 25.10048854 18.44688357]\n", + "[18.04612167 16.61733934 25.18273953 18.54735831]\n", + "[27.32863507 23.45401022 23.67434851 13.82407155]\n", + "[31.34438924 24.91368389 23.21872706 11.89570025]\n", + "[52.68471277 32.87499276 20.38703654 1.64899174]\n", + "[58.55225301 36.58192728 19.16564392 -0.92373293]\n", + "[62.69859817 36.40649485 18.76434603 -2.88868063]\n", + "[59.10423464 31.41239333 19.97846158 -1.5518696 ]\n", + "[70.52062338 30.52560099 18.78985763 -7.05960356]\n", + "[75.46470684 26.54147994 18.27299862 -9.44403878]\n", + "[100.12284283 6.43973464 15.23117256 -21.10080646]\n", + "[105.30306683 4.69263236 14.25715952 -23.51455977]\n", + "[110.01522437 -2.95403313 13.55219706 -25.53999158]\n", + "[108.03191202 -8.26102511 14.21396958 -24.56661402]\n", + "[ 0. 1. 28.51029945 28.05642217]\n", + "[1.73143255e-05 1.00001704e+00 2.85102959e+01 2.80564127e+01]\n", + "[3.46286510e-04 1.00034077e+00 2.85102275e+01 2.80562323e+01]\n", + "[5.19428781e-04 1.00051116e+00 2.85101915e+01 2.80561374e+01]\n", + "[1.38513905e-03 1.00136308e+00 2.85100116e+01 2.80556628e+01]\n", + "[1.53904252e-03 1.00151453e+00 2.85099796e+01 2.80555784e+01]\n", + "[1.73142162e-03 1.00170384e+00 2.85099396e+01 2.80554729e+01]\n", + "[1.73142162e-03 1.00170384e+00 2.85099396e+01 2.80554729e+01]\n", + "[5.19424301e-03 1.00511146e+00 2.85092200e+01 2.80535744e+01]\n", + "[6.92555538e-03 1.00681501e+00 2.85088602e+01 2.80526253e+01]\n", + "[1.55820080e-02 1.01533248e+00 2.85070614e+01 2.80478796e+01]\n", + "[1.71208759e-02 1.01684655e+00 2.85067417e+01 2.80470360e+01]\n", + "[1.90444363e-02 1.01873907e+00 2.85063420e+01 2.80459815e+01]\n", + "[1.90444361e-02 1.01873907e+00 2.85063420e+01 2.80459815e+01]\n", + "[ 0.05366828 1.05280376 28.49914811 28.02700067]\n", + "[ 0.07097037 1.06981017 28.49555693 28.01751931]\n", + "[ 0.15747004 1.15481359 28.47760735 27.97012248]\n", + "[ 0.17284216 1.16991042 28.47441961 27.96170156]\n", + "[ 0.19205473 1.18877481 28.47043643 27.95117774]\n", + "[ 0.19205457 1.18877454 28.47043651 27.95117784]\n", + "[ 0.5378569 1.52826995 28.39875339 27.76177117]\n", + "[ 0.70977857 1.69542955 28.36348535 27.6679665 ]\n", + "[ 1.56842243 2.52854594 28.1877106 27.1998381 ]\n", + "[ 1.72062605 2.67534675 28.15673207 27.11705556]\n", + "[ 1.9104797 2.85795961 28.118224 27.01388787]\n", + "[ 1.91031064 2.85769501 28.11830446 27.01398754]\n", + "[ 5.32556397 6.13881784 27.42640788 25.15895506]\n", + "[ 6.93864804 7.52590268 27.13415938 24.31448096]\n", + "[15.01497457 14.35899844 25.66889923 20.09464167]\n", + "[16.52336059 15.62209532 25.37810763 19.31438927]\n", + "[18.22472498 16.89020759 25.10064875 18.44678774]\n", + "[18.04612743 16.61716211 25.18289862 18.54726012]\n", + "[27.32868871 23.45378887 23.67449645 13.82398224]\n", + "[31.34446292 24.91344643 23.21887064 11.89561386]\n", + "[52.68488796 32.87466814 20.38715573 1.64892404]\n", + "[58.55245118 36.5815736 19.16575523 -0.9237935 ]\n", + "[62.69881532 36.40612807 18.7644527 -2.8887376 ]\n", + "[59.10444102 31.41205192 19.9785744 -1.55193244]\n", + "[70.52086852 30.52522567 18.78995946 -7.05964972]\n", + "[75.46496602 26.54110637 18.27309633 -9.44407652]\n", + "[100.12317848 6.43938288 15.23125215 -21.10080648]\n", + "[105.30342344 4.69229112 14.2572375 -23.5145527 ]\n", + "[110.01559262 -2.95435536 13.55227281 -25.53997902]\n", + "[108.0322676 -8.26134386 14.21404389 -24.56660428]\n" + ] + }, { "data": { "text/html": [ @@ -904,7 +2745,7 @@ "dtype: object" ] }, - "execution_count": 33, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -922,26 +2763,9 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "11.033479404035603 meter" - ], - "text/latex": [ - "$11.033479404035603 meter$" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "height_func(45 * degree, params)" ] @@ -955,25 +2779,719 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 24, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 1. 33.01363222 22.58539546]\n", + "[1.73143076e-05 1.00001185e+00 3.30136286e+01 2.25853879e+01]\n", + "[3.46286152e-04 1.00023690e+00 3.30135602e+01 2.25852434e+01]\n", + "[5.19428378e-04 1.00035535e+00 3.30135243e+01 2.25851674e+01]\n", + "[1.38513857e-03 1.00094760e+00 3.30133443e+01 2.25847873e+01]\n", + "[1.53904211e-03 1.00105288e+00 3.30133124e+01 2.25847198e+01]\n", + "[1.73142132e-03 1.00118449e+00 3.30132724e+01 2.25846353e+01]\n", + "[1.73142132e-03 1.00118449e+00 3.30132724e+01 2.25846353e+01]\n", + "[5.19424509e-03 1.00355344e+00 3.30125527e+01 2.25831151e+01]\n", + "[6.92557206e-03 1.00473773e+00 3.30121930e+01 2.25823550e+01]\n", + "[1.55821126e-02 1.01065899e+00 3.30103941e+01 2.25785547e+01]\n", + "[1.71210039e-02 1.01171156e+00 3.30100743e+01 2.25778791e+01]\n", + "[1.90445968e-02 1.01302722e+00 3.30096746e+01 2.25770347e+01]\n", + "[1.90445967e-02 1.01302722e+00 3.30096746e+01 2.25770347e+01]\n", + "[ 0.05366906 1.03670869 33.00248022 22.56183461]\n", + "[ 0.0709728 1.04853149 32.9988877 22.55424032]\n", + "[ 0.15748217 1.10762567 32.98093031 22.51627519]\n", + "[ 0.17285676 1.11812098 32.97774057 22.50952913]\n", + "[ 0.1920728 1.13123555 32.97375461 22.50109801]\n", + "[ 0.19207268 1.1312354 32.97375467 22.50109806]\n", + "[ 0.53794055 1.36725362 32.90201893 22.34935198]\n", + "[ 0.71002798 1.48347208 32.86661851 22.2740486 ]\n", + "[ 1.56961172 2.06268096 32.69008565 21.8981101 ]\n", + "[ 1.72202249 2.16471736 32.6589301 21.83156523]\n", + "[ 1.91221516 2.29168457 32.62015169 21.74857008]\n", + "[ 1.91209642 2.29154006 32.62020716 21.74862124]\n", + "[ 5.33369084 4.57279354 31.92323259 20.25599242]\n", + "[ 6.96224272 5.53728508 31.61886526 19.56292129]\n", + "[15.09589085 10.26332212 30.10068529 16.10854453]\n", + "[16.58349965 11.10802329 29.81353989 15.48441707]\n", + "[18.30975974 11.98466487 29.51585107 14.76238238]\n", + "[18.1851959 11.83636751 29.57264449 14.81424697]\n", + "[28.78292297 17.14523822 27.75142565 10.38996524]\n", + "[33.34754788 18.01598978 27.16714173 8.55928402]\n", + "[57.43383528 22.81811382 23.63632294 -1.06307696]\n", + "[63.88109982 25.53785478 22.21090767 -3.38940228]\n", + "[68.53702635 24.84192589 21.6713683 -5.23857282]\n", + "[64.71098884 20.63407666 23.02550611 -4.11462717]\n", + "[76.99114128 18.43962983 21.5331281 -9.07455788]\n", + "[ 82.23579926 14.36647646 20.89730891 -11.19351941]\n", + "[108.51063942 -5.88306096 17.3514598 -21.61336308]\n", + "[114.09034604 -7.60437154 16.34797643 -23.77375649]\n", + "[119.03596007 -14.83177983 15.58297543 -25.60112824]\n", + "[116.85305402 -19.80074234 16.18332714 -24.74260806]\n", + "[ 0. 1. 22.58539546 33.01363222]\n", + "[1.73142932e-05 1.00002531e+00 2.25853919e+01 3.30136194e+01]\n", + "[3.46285863e-04 1.00050617e+00 2.25853235e+01 3.30133768e+01]\n", + "[5.19427553e-04 1.00075926e+00 2.25852875e+01 3.30132490e+01]\n", + "[1.38513463e-03 1.00202467e+00 2.25851076e+01 3.30126104e+01]\n", + "[1.53903738e-03 1.00224963e+00 2.25850756e+01 3.30124969e+01]\n", + "[1.73141552e-03 1.00253082e+00 2.25850356e+01 3.30123550e+01]\n", + "[1.73141552e-03 1.00253082e+00 2.25850356e+01 3.30123550e+01]\n", + "[5.19421899e-03 1.00759237e+00 2.25843160e+01 3.30098005e+01]\n", + "[6.92549659e-03 1.01012271e+00 2.25839562e+01 3.30085235e+01]\n", + "[1.55817469e-02 1.02277389e+00 2.25821576e+01 3.30021383e+01]\n", + "[1.71205638e-02 1.02502274e+00 2.25818379e+01 3.30010033e+01]\n", + "[1.90440541e-02 1.02783368e+00 2.25814383e+01 3.29995845e+01]\n", + "[1.90440538e-02 1.02783368e+00 2.25814383e+01 3.29995845e+01]\n", + "[ 0.05366657 1.07842961 22.57424531 32.97404738]\n", + "[ 0.07096543 1.10368352 22.57065649 32.96129538]\n", + "[ 0.15744611 1.2299046 22.55272076 32.89755354]\n", + "[ 0.17281345 1.25231873 22.54953653 32.8862311 ]\n", + "[ 0.19201929 1.28032495 22.54555827 32.87208236]\n", + "[ 0.19201901 1.28032434 22.5455584 32.8720826 ]\n", + "[ 0.53769408 1.78432869 22.47396827 32.61744564]\n", + "[ 0.70929677 2.03193868 22.43893326 32.49176873]\n", + "[ 1.56614534 3.26555584 22.26448232 31.86496341]\n", + "[ 1.7179663 3.48276535 22.23380365 31.75428821]\n", + "[ 1.90717089 3.75261673 22.19576829 31.61656487]\n", + "[ 1.90688694 3.75200413 22.19590541 31.61680649]\n", + "[ 5.31002783 8.59958501 21.51286674 29.14129215]\n", + "[ 6.8937821 10.59637825 21.24142428 28.05213113]\n", + "[14.87265803 20.51093765 19.85893236 22.56717428]\n", + "[16.43723553 22.47708158 19.55105005 21.49407015]\n", + "[18.09437471 24.25757866 19.30633285 20.39791913]\n", + "[17.79105872 23.62106401 19.44579925 20.63833413]\n", + "[25.33680253 31.62955879 18.33408858 15.65565667]\n", + "[28.62436297 33.45864445 18.02635933 13.63560557]\n", + "[46.23462431 43.43839709 16.04200928 2.81694909]\n", + "[51.20743433 47.91013643 15.12247676 0.05461775]\n", + "[54.65075842 47.94972075 14.87409034 -2.03372382]\n", + "[51.525659 42.16302125 15.82766613 -0.5671572 ]\n", + "[61.32134549 41.81200967 15.02160031 -6.6034585 ]\n", + "[65.65795854 37.43367771 14.63371352 -9.2621242 ]\n", + "[ 86.88408137 14.82748143 12.19436678 -22.02088303]\n", + "[ 90.96340579 12.21083697 11.29196656 -24.55702921]\n", + "[ 95.14005285 3.53406768 10.66600076 -26.69133723]\n", + "[ 93.95763063 -1.55514893 11.35326653 -25.74420563]\n", + "[104.19557046 -24.77028507 9.85660966 -31.18771107]\n", + "[107.79620921 -41.90019035 9.09272625 -32.35063472]\n", + "[ 123.86300151 -108.69556346 6.78144172 -43.16734207]\n", + "[123.58591208 -89.88003234 8.54126573 -54.71325398]\n", + "[ 124.69269367 -105.04019068 8.64575644 -58.99754981]\n", + "[ 129.63703917 -159.68316995 4.92665121 -40.26411003]\n", + "[100.29180116 -15.91825652 10.42729119 -29.11207966]\n", + "[102.87769278 -25.21367547 9.95450742 -30.22243698]\n", + "[115.06421743 -68.35045385 7.95064608 -36.50327558]\n", + "[116.49427349 -70.43245022 8.03150744 -39.18136908]\n", + "[118.55576542 -81.66912973 7.63680897 -40.13399963]\n", + "[119.32558197 -91.69528395 6.97488292 -37.20570011]\n", + "[ 0. 1. 37.28129695 14.4949956 ]\n", + "[1.73141876e-05 1.00000673e+00 3.72812934e+01 1.44949897e+01]\n", + "[3.46283753e-04 1.00013464e+00 3.72812250e+01 1.44948766e+01]\n", + "[5.19424877e-04 1.00020195e+00 3.72811890e+01 1.44948171e+01]\n", + "[1.38512966e-03 1.00053853e+00 3.72810091e+01 1.44945196e+01]\n", + "[1.53903230e-03 1.00059837e+00 3.72809771e+01 1.44944667e+01]\n", + "[1.73141041e-03 1.00067316e+00 3.72809371e+01 1.44944006e+01]\n", + "[1.73141041e-03 1.00067316e+00 3.72809371e+01 1.44944006e+01]\n", + "[5.19421451e-03 1.00201946e+00 3.72802175e+01 1.44932105e+01]\n", + "[6.92554136e-03 1.00269249e+00 3.72798577e+01 1.44926155e+01]\n", + "[1.55820921e-02 1.00605747e+00 3.72780588e+01 1.44896406e+01]\n", + "[1.71209908e-02 1.00665562e+00 3.72777390e+01 1.44891117e+01]\n", + "[1.90445955e-02 1.00740327e+00 3.72773393e+01 1.44884507e+01]\n", + "[1.90445954e-02 1.00740327e+00 3.72773393e+01 1.44884507e+01]\n", + "[ 0.05366929 1.02086073 37.27014446 14.47655165]\n", + "[ 0.07097413 1.02757703 37.26655084 14.47060559]\n", + "[ 0.15748999 1.06114475 37.24858691 14.44087908]\n", + "[ 0.17286628 1.06710517 37.24539549 14.43559636]\n", + "[ 0.19208471 1.07455255 37.2414072 14.42899382]\n", + "[ 0.19208462 1.07455247 37.24140724 14.42899385]\n", + "[ 0.53799786 1.2085748 37.16962719 14.31015667]\n", + "[ 0.71020442 1.27434418 37.13411434 14.25108105]\n", + "[ 1.57046609 1.60186795 36.9569339 13.95605729]\n", + "[ 1.72302821 1.65942933 36.92562412 13.90378773]\n", + "[ 1.91346588 1.73100197 36.88661488 13.83855659]\n", + "[ 1.91338118 1.73092509 36.88665316 13.83858065]\n", + "[ 5.3395626 3.01630839 36.1853356 12.66520725]\n", + "[ 6.97936945 3.53638891 35.87048843 12.11090227]\n", + "[15.15611188 6.05402799 34.30374001 9.35148481]\n", + "[16.63082391 6.48716654 34.01610456 8.86007548]\n", + "[18.37559866 6.92608215 33.70021577 8.27500626]\n", + "[18.28730319 6.84769637 33.73945957 8.29952276]\n", + "[30.06112794 9.74392315 31.61399799 4.35684552]\n", + "[35.11361932 9.64420678 30.88454857 2.69009923]\n", + "[61.51654854 9.31544017 26.63183025 -5.91835573]\n", + "[68.29462259 10.56371554 25.07106451 -7.85456636]\n", + "[73.37021018 8.96509443 24.37358572 -9.51870886]\n", + "[69.58062775 5.79642504 25.75125407 -8.73203557]\n", + "[ 81.42729034 1.77932053 24.07758858 -12.67292274]\n", + "[ 86.48442035 -2.26882776 23.36199067 -14.3546176 ]\n", + "[111.79914697 -22.41424776 19.57910929 -22.65091948]\n", + "[117.01769495 -24.67303193 18.66939742 -24.32752955]\n", + "[121.78339632 -31.06220743 17.89619078 -25.81595636]\n", + "[119.98737711 -34.52452508 18.31425054 -25.23075186]\n", + "[ 0. 1. 30.59668446 25.76514895]\n", + "[1.73143232e-05 1.00001458e+00 3.05966809e+01 2.57651404e+01]\n", + "[3.46286465e-04 1.00029160e+00 3.05966125e+01 2.57649774e+01]\n", + "[5.19428781e-04 1.00043740e+00 3.05965765e+01 2.57648917e+01]\n", + "[1.38513934e-03 1.00116640e+00 3.05963966e+01 2.57644629e+01]\n", + "[1.53904291e-03 1.00129600e+00 3.05963646e+01 2.57643867e+01]\n", + "[1.73142214e-03 1.00145800e+00 3.05963246e+01 2.57642914e+01]\n", + "[1.73142214e-03 1.00145800e+00 3.05963246e+01 2.57642914e+01]\n", + "[5.19424606e-03 1.00437394e+00 3.05956050e+01 2.57625762e+01]\n", + "[6.92556640e-03 1.00583170e+00 3.05952452e+01 2.57617187e+01]\n", + "[1.55820663e-02 1.01312022e+00 3.05934464e+01 2.57574313e+01]\n", + "[1.71209465e-02 1.01441584e+00 3.05931266e+01 2.57566692e+01]\n", + "[1.90445239e-02 1.01603530e+00 3.05927270e+01 2.57557165e+01]\n", + "[1.90445238e-02 1.01603530e+00 3.05927270e+01 2.57557165e+01]\n", + "[ 0.05366869 1.04518504 30.58553279 25.73856837]\n", + "[ 0.07097161 1.05973808 30.58194096 25.73000166]\n", + "[ 0.15747616 1.13247917 30.56398756 25.68717622]\n", + "[ 0.17284953 1.14539837 30.56079885 25.67956703]\n", + "[ 0.19206384 1.16154178 30.55681432 25.67005741]\n", + "[ 0.19206369 1.16154159 30.55681439 25.67005749]\n", + "[ 0.53789892 1.45206958 30.48510561 25.49890242]\n", + "[ 0.7099035 1.59515435 30.4497731 25.41405492]\n", + "[ 1.56901692 2.3083037 30.27362971 24.99055127]\n", + "[ 1.72132351 2.43396697 30.24256557 24.9156253 ]\n", + "[ 1.91134657 2.59031954 30.20392601 24.82221335]\n", + "[ 1.91120337 2.59011948 30.20399366 24.8222869 ]\n", + "[ 5.32962415 5.39945066 29.50962838 23.1425005 ]\n", + "[ 6.95042448 6.59023746 29.21150578 22.37044246]\n", + "[15.05490396 12.44301603 27.72103023 18.51793143]\n", + "[16.55226362 13.50717467 27.43257738 17.81416491]\n", + "[18.26593143 14.59675584 27.14542195 17.01573002]\n", + "[18.11516567 14.39082402 27.21462803 17.09008219]\n", + "[28.00818184 20.60338218 25.56282842 12.49031513]\n", + "[32.27917305 21.82854916 25.04985196 10.60230216]\n", + "[54.905837 28.52599281 21.90156354 0.61419269]\n", + "[61.056555 31.82462996 20.58201295 -1.85779034]\n", + "[65.44270612 31.44948923 20.11949263 -3.77400289]\n", + "[61.72314805 26.79622602 21.40642764 -2.52260372]\n", + "[73.59951569 25.39667586 20.07639371 -7.8029455 ]\n", + "[ 78.70755312 21.40115282 19.50532852 -10.07440805]\n", + "[104.2520186 1.39823182 16.2286294 -21.21433806]\n", + "[109.66428161 -0.27097769 15.23607163 -23.52596236]\n", + "[114.50888984 -7.70525115 14.50244617 -25.47171296]\n", + "[112.39478235 -12.92357747 15.14231158 -24.54233284]\n", + "[ 0. 1. 29.73110726 26.75932102]\n", + "[1.73143252e-05 1.00001558e+00 2.97311037e+01 2.67593121e+01]\n", + "[3.46286504e-04 1.00031167e+00 2.97310353e+01 2.67591421e+01]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[5.19428813e-04 1.00046751e+00 2.97309993e+01 2.67590526e+01]\n", + "[1.38513931e-03 1.00124668e+00 2.97308194e+01 2.67586054e+01]\n", + "[1.53904285e-03 1.00138519e+00 2.97307874e+01 2.67585258e+01]\n", + "[1.73142204e-03 1.00155834e+00 2.97307474e+01 2.67584264e+01]\n", + "[1.73142204e-03 1.00155834e+00 2.97307474e+01 2.67584264e+01]\n", + "[5.19424517e-03 1.00467497e+00 2.97300278e+01 2.67566373e+01]\n", + "[6.92556244e-03 1.00623305e+00 2.97296680e+01 2.67557428e+01]\n", + "[1.55820441e-02 1.01402319e+00 2.97278692e+01 2.67512705e+01]\n", + "[1.71209195e-02 1.01540797e+00 2.97275495e+01 2.67504754e+01]\n", + "[1.90444902e-02 1.01713888e+00 2.97271498e+01 2.67494817e+01]\n", + "[1.90444901e-02 1.01713888e+00 2.97271498e+01 2.67494817e+01]\n", + "[ 0.05366853 1.04829475 29.71995572 26.73159386]\n", + "[ 0.07097113 1.06384924 29.71636415 26.72265798]\n", + "[ 0.15747373 1.14159584 29.69841229 26.67798742]\n", + "[ 0.17284661 1.15540399 29.69522397 26.67005058]\n", + "[ 0.19206023 1.17265818 29.69123998 26.66013159]\n", + "[ 0.19206007 1.17265796 29.69124005 26.66013167]\n", + "[ 0.53788223 1.48317595 29.6195416 26.48160941]\n", + "[ 0.70985383 1.63609574 29.58423506 26.39314431]\n", + "[ 1.56878035 2.39826038 29.40824026 25.95161598]\n", + "[ 1.72104582 2.53256263 29.37721074 25.87351588]\n", + "[ 1.91100145 2.69965136 29.33862418 25.77616143]\n", + "[ 1.91084815 2.69942676 29.33869683 25.7762449 ]\n", + "[ 5.32800805 5.70165794 28.64532676 24.02563395]\n", + "[ 6.94573441 6.97338767 28.34957616 23.224131 ]\n", + "[15.03888401 13.22998066 26.86938125 19.22255973]\n", + "[16.54046622 14.37505055 26.58011411 18.48813402]\n", + "[18.24920278 15.53897404 26.29689878 17.66147889]\n", + "[18.08757427 15.30753998 26.37121094 17.74576543]\n", + "[27.72742398 21.79440598 24.77919678 13.09212866]\n", + "[31.89265291 23.12408902 24.29042764 11.18656762]\n", + "[53.98796422 30.38368484 21.27486729 1.08598139]\n", + "[60.02374043 33.86101744 19.99541308 -1.43027149]\n", + "[64.31103521 33.57679012 19.55882765 -3.36745741]\n", + "[60.64027984 28.77783973 20.81696917 -2.07804428]\n", + "[72.33493587 27.61042612 19.54581507 -7.45664256]\n", + "[77.3788845 23.62740296 18.99759849 -9.77646608]\n", + "[102.57847791 3.62532708 15.81904668 -21.13998702]\n", + "[107.90315346 1.93739813 14.83359549 -23.49678737]\n", + "[112.69692526 -5.5783491 14.11186745 -25.47792815]\n", + "[110.62966905 -10.84470374 14.76175646 -24.52848536]\n", + "[ 0. 1. 27.17943783 29.34754094]\n", + "[1.73143229e-05 1.00001870e+00 2.71794342e+01 2.93475308e+01]\n", + "[3.46286458e-04 1.00037391e+00 2.71793659e+01 2.93473384e+01]\n", + "[5.19428656e-04 1.00056086e+00 2.71793299e+01 2.93472371e+01]\n", + "[1.38513850e-03 1.00149562e+00 2.71791500e+01 2.93467307e+01]\n", + "[1.53904187e-03 1.00166180e+00 2.71791180e+01 2.93466406e+01]\n", + "[1.73142083e-03 1.00186952e+00 2.71790780e+01 2.93465281e+01]\n", + "[1.73142083e-03 1.00186952e+00 2.71790780e+01 2.93465281e+01]\n", + "[5.19423957e-03 1.00560848e+00 2.71783584e+01 2.93445025e+01]\n", + "[6.92554579e-03 1.00747768e+00 2.71779986e+01 2.93434898e+01]\n", + "[1.55819624e-02 1.01682332e+00 2.71761999e+01 2.93384263e+01]\n", + "[1.71208211e-02 1.01848460e+00 2.71758801e+01 2.93375262e+01]\n", + "[1.90443687e-02 1.02056113e+00 2.71754804e+01 2.93364011e+01]\n", + "[1.90443686e-02 1.02056113e+00 2.71754804e+01 2.93364011e+01]\n", + "[ 0.05366797 1.05793791 27.16828672 29.31614942]\n", + "[ 0.07096946 1.07659727 27.16469599 29.30603391]\n", + "[ 0.1574656 1.16986206 27.14674907 29.25546774]\n", + "[ 0.17283683 1.18642582 27.14356201 29.24648411]\n", + "[ 0.19204815 1.20712306 27.13957978 29.23525724]\n", + "[ 0.19204797 1.20712274 27.13957987 29.23525736]\n", + "[ 0.5378266 1.57960189 27.06791465 29.0331989 ]\n", + "[ 0.70968872 1.76294529 27.03269154 28.93319533]\n", + "[ 1.56799602 2.67667662 26.85717313 28.43419218]\n", + "[ 1.72012654 2.83766867 26.82625359 28.34597729]\n", + "[ 1.9098587 3.03789523 26.78783699 28.23606952]\n", + "[ 1.90967009 3.0375782 26.78792711 28.23619047]\n", + "[ 5.32265327 6.63508101 26.09774655 26.26010234]\n", + "[ 6.93021889 8.15059288 25.80956175 25.36646558]\n", + "[14.98702147 15.62727632 24.3612675 20.89570977]\n", + "[16.50420009 17.02617509 24.06822266 20.06128001]\n", + "[18.19692515 18.407742 23.79735316 19.14715917]\n", + "[17.99722472 18.08008207 23.88941584 19.26882682]\n", + "[26.89011493 25.25294735 22.47131664 14.47693769]\n", + "[30.74268299 26.83261422 22.05063834 12.52577029]\n", + "[51.25404897 35.44466351 19.41529027 2.13365042]\n", + "[56.93113961 39.37356439 18.25893231 -0.4933455 ]\n", + "[60.92214476 39.29178014 17.89450219 -2.48681982]\n", + "[57.41988638 34.09770275 19.05657039 -1.1063698 ]\n", + "[68.509222 33.45388774 17.95675177 -6.74530067]\n", + "[73.3338867 29.440419 17.4725581 -9.1965058]\n", + "[ 97.33704721 9.08106144 14.57569855 -21.14743458]\n", + "[102.33203733 7.22486902 13.61528462 -23.61389105]\n", + "[106.94365866 -0.59156474 12.92831156 -25.68005735]\n", + "[105.07703039 -5.91027439 13.60079902 -24.68761821]\n", + "[ 0. 1. 28.58951267 27.97569955]\n", + "[1.73143255e-05 1.00001694e+00 2.85895091e+01 2.79756901e+01]\n", + "[3.46286511e-04 1.00033885e+00 2.85894407e+01 2.79755104e+01]\n", + "[5.19428786e-04 1.00050828e+00 2.85894047e+01 2.79754159e+01]\n", + "[1.38513907e-03 1.00135539e+00 2.85892248e+01 2.79749431e+01]\n", + "[1.53904255e-03 1.00150599e+00 2.85891928e+01 2.79748590e+01]\n", + "[1.73142166e-03 1.00169423e+00 2.85891528e+01 2.79747539e+01]\n", + "[1.73142166e-03 1.00169423e+00 2.85891528e+01 2.79747539e+01]\n", + "[5.19424318e-03 1.00508263e+00 2.85884332e+01 2.79728628e+01]\n", + "[6.92555588e-03 1.00677658e+00 2.85880734e+01 2.79719172e+01]\n", + "[1.55820106e-02 1.01524601e+00 2.85862747e+01 2.79671898e+01]\n", + "[1.71208789e-02 1.01675154e+00 2.85859549e+01 2.79663494e+01]\n", + "[1.90444400e-02 1.01863338e+00 2.85855552e+01 2.79652990e+01]\n", + "[1.90444398e-02 1.01863338e+00 2.85855552e+01 2.79652990e+01]\n", + "[ 0.0536683 1.05250596 28.57836131 27.94639103]\n", + "[ 0.07097042 1.06941649 28.5747701 27.93694605]\n", + "[ 0.15747029 1.15394068 28.55682037 27.889731 ]\n", + "[ 0.17284246 1.16895242 28.55363259 27.88134236]\n", + "[ 0.1920551 1.18771048 28.54964936 27.87085887]\n", + "[ 0.19205494 1.18771021 28.54964944 27.87085897]\n", + "[ 0.53785861 1.52529213 28.47796529 27.68217802]\n", + "[ 0.70978365 1.69151205 28.44269468 27.58872919]\n", + "[ 1.56844657 2.51994691 28.26690525 27.12237327]\n", + "[ 1.72065435 2.66592328 28.23592332 27.03990268]\n", + "[ 1.91051488 2.84751245 28.19741002 26.93712216]\n", + "[ 1.9103469 2.84725066 28.19748994 26.93722069]\n", + "[ 5.3257288 6.10998419 27.50549502 25.08914263]\n", + "[ 6.93912571 7.48952433 27.21301315 24.24751411]\n", + "[15.01657467 14.2848729 25.74676685 20.04215744]\n", + "[16.52448551 15.54014339 25.45608882 19.26498188]\n", + "[18.22634376 16.80150609 25.1782486 18.4000834 ]\n", + "[18.04891177 16.53138599 25.25995466 18.49941889]\n", + "[27.35466124 23.34655886 23.74615086 13.78045415]\n", + "[31.38014119 24.7983741 23.28840751 11.85350544]\n", + "[52.76972098 32.71717291 20.4448759 1.6158987 ]\n", + "[58.6483974 36.40994885 19.21965961 -0.95335523]\n", + "[62.80395439 36.22811623 18.81611144 -2.91655149]\n", + "[59.20437708 31.24635329 20.033202 -1.58260583]\n", + "[70.63953679 30.34298545 18.83925875 -7.08222709]\n", + "[75.59041204 26.3596555 18.32039806 -9.46256958]\n", + "[100.28554373 6.2682212 15.26977568 -21.10098387]\n", + "[105.4758908 4.52614132 14.29498258 -23.5112757 ]\n", + "[110.19367694 -3.11134565 13.58893583 -25.53402677]\n", + "[108.20426026 -8.41658809 14.25000179 -24.56203642]\n", + "[ 0. 1. 28.57458428 27.99094734]\n", + "[1.73143255e-05 1.00001696e+00 2.85745807e+01 2.79909379e+01]\n", + "[3.46286511e-04 1.00033921e+00 2.85745123e+01 2.79907581e+01]\n", + "[5.19428785e-04 1.00050882e+00 2.85744763e+01 2.79906635e+01]\n", + "[1.38513907e-03 1.00135684e+00 2.85742964e+01 2.79901903e+01]\n", + "[1.53904255e-03 1.00150759e+00 2.85742644e+01 2.79901062e+01]\n", + "[1.73142165e-03 1.00169604e+00 2.85742244e+01 2.79900011e+01]\n", + "[1.73142165e-03 1.00169604e+00 2.85742244e+01 2.79900011e+01]\n", + "[5.19424315e-03 1.00508806e+00 2.85735048e+01 2.79881085e+01]\n", + "[6.92555579e-03 1.00678381e+00 2.85731450e+01 2.79871623e+01]\n", + "[1.55820101e-02 1.01526229e+00 2.85713463e+01 2.79824314e+01]\n", + "[1.71208783e-02 1.01676942e+00 2.85710265e+01 2.79815904e+01]\n", + "[1.90444393e-02 1.01865328e+00 2.85706268e+01 2.79805392e+01]\n", + "[1.90444391e-02 1.01865328e+00 2.85706268e+01 2.79805392e+01]\n", + "[ 0.05366829 1.05256203 28.56343293 27.96161757]\n", + "[ 0.07097041 1.0694906 28.55984172 27.95216574]\n", + "[ 0.15747024 1.15410501 28.54189202 27.90491649]\n", + "[ 0.17284241 1.16913277 28.53870425 27.89652178]\n", + "[ 0.19205503 1.18791084 28.53472103 27.88603069]\n", + "[ 0.19205487 1.18791058 28.53472111 27.88603079]\n", + "[ 0.53785829 1.52585273 28.46303715 27.6972133 ]\n", + "[ 0.70978269 1.69224955 28.42776702 27.60369751]\n", + "[ 1.56844203 2.52156578 28.25198035 27.13700807]\n", + "[ 1.72064902 2.66769737 28.22099906 27.05447879]\n", + "[ 1.91050826 2.84947926 28.18248675 26.95162541]\n", + "[ 1.91034008 2.84921695 28.18256677 26.95172416]\n", + "[ 5.3256978 6.11541268 27.49059035 25.10233749]\n", + "[ 6.93903588 7.49637394 27.19815239 24.26017334]\n", + "[15.01627365 14.29883212 25.73209175 20.05209092]\n", + "[16.52427366 15.55557559 25.44139248 19.27433668]\n", + "[18.22603901 16.81821035 25.16362404 18.40892931]\n", + "[18.04838808 16.5475415 25.24543226 18.50847807]\n", + "[27.34976759 23.3667703 23.73264668 13.7886984 ]\n", + "[31.37341849 24.82006962 23.27530274 11.86148155]\n", + "[52.75373639 32.74689564 20.43399924 1.62215908]\n", + "[58.63032046 36.4423424 19.20950157 -0.94774966]\n", + "[62.78414546 36.26172052 18.80637706 -2.91127581]\n", + "[59.1855462 31.27763345 20.02290927 -1.57678899]\n", + "[70.6171824 30.37740073 18.82997051 -7.07793873]\n", + "[75.56678332 26.39392993 18.3114867 -9.45905198]\n", + "[100.25497557 6.30059846 15.26251978 -21.1009252 ]\n", + "[105.4434266 4.5575866 14.28787307 -23.51187063]\n", + "[110.16015745 -3.08161897 13.58203032 -25.53512799]\n", + "[108.17188179 -8.38719963 14.2432298 -24.56287482]\n", + "[ 0. 1. 28.502722 28.06412013]\n", + "[1.73143255e-05 1.00001705e+00 2.85027184e+01 2.80641106e+01]\n", + "[3.46286510e-04 1.00034096e+00 2.85026500e+01 2.80639302e+01]\n", + "[5.19428781e-04 1.00051143e+00 2.85026140e+01 2.80638352e+01]\n", + "[1.38513904e-03 1.00136381e+00 2.85024341e+01 2.80633604e+01]\n", + "[1.53904252e-03 1.00151535e+00 2.85024021e+01 2.80632760e+01]\n", + "[1.73142162e-03 1.00170476e+00 2.85023622e+01 2.80631705e+01]\n", + "[1.73142162e-03 1.00170476e+00 2.85023622e+01 2.80631705e+01]\n", + "[5.19424300e-03 1.00511422e+00 2.85016425e+01 2.80612713e+01]\n", + "[6.92555533e-03 1.00681870e+00 2.85012828e+01 2.80603218e+01]\n", + "[1.55820078e-02 1.01534077e+00 2.84994840e+01 2.80555744e+01]\n", + "[1.71208756e-02 1.01685565e+00 2.84991642e+01 2.80547305e+01]\n", + "[1.90444359e-02 1.01874919e+00 2.84987646e+01 2.80536756e+01]\n", + "[1.90444357e-02 1.01874919e+00 2.84987646e+01 2.80536756e+01]\n", + "[ 0.05366828 1.05283228 28.49157065 28.03468779]\n", + "[ 0.07097037 1.06984788 28.48797947 28.02520295]\n", + "[ 0.15747001 1.15489721 28.47002991 27.97778869]\n", + "[ 0.17284213 1.17000219 28.46684217 27.96936468]\n", + "[ 0.1920547 1.18887677 28.462859 27.95883699]\n", + "[ 0.19205453 1.1888765 28.46285908 27.95883709]\n", + "[ 0.53785673 1.52855522 28.39117605 27.76936085]\n", + "[ 0.70977808 1.69580484 28.35590826 27.67552207]\n", + "[ 1.56842011 2.52936968 28.18013493 27.20722376]\n", + "[ 1.72062333 2.67624946 28.14915672 27.12441132]\n", + "[ 1.91047633 2.85896038 28.11064915 27.02120651]\n", + "[ 1.91030716 2.85869551 28.11072966 27.02130629]\n", + "[ 5.32554815 6.1415798 27.41884251 25.16560717]\n", + "[ 6.93860221 7.52938687 27.12661638 24.32086042]\n", + "[15.01482114 14.36609635 25.6614507 20.09963326]\n", + "[16.52325288 15.62994326 25.37064812 19.31908572]\n", + "[18.22456992 16.89870115 25.09322578 18.45122526]\n", + "[18.04586037 16.62537407 25.17552789 18.55180707]\n", + "[27.32620346 23.46404436 23.66764227 13.82811801]\n", + "[31.34104917 24.92444791 23.21221879 11.89961423]\n", + "[52.67677093 32.88970568 20.38163347 1.65205824]\n", + "[58.54326969 36.59795727 19.16059832 -0.92098922]\n", + "[62.68875412 36.42311791 18.7595103 -2.88610017]\n", + "[59.09487925 31.42786635 19.97334721 -1.54902303]\n", + "[70.50951025 30.54261031 18.78524174 -7.05751292]\n", + "[75.45295735 26.55841006 18.2685694 -9.44232971]\n", + "[100.10762563 6.45567355 15.22756417 -21.10080682]\n", + "[105.28689891 4.70809374 14.25362419 -23.5148817 ]\n", + "[109.99852853 -2.93943415 13.54876296 -25.54056247]\n", + "[108.01579105 -8.24658339 14.21060105 -24.56705663]\n", + "[ 0. 1. 28.50995626 28.05677092]\n", + "[1.73143255e-05 1.00001704e+00 2.85099527e+01 2.80567614e+01]\n", + "[3.46286510e-04 1.00034078e+00 2.85098843e+01 2.80565811e+01]\n", + "[5.19428781e-04 1.00051117e+00 2.85098483e+01 2.80564861e+01]\n", + "[1.38513905e-03 1.00136311e+00 2.85096684e+01 2.80560115e+01]\n", + "[1.53904252e-03 1.00151456e+00 2.85096364e+01 2.80559271e+01]\n", + "[1.73142162e-03 1.00170388e+00 2.85095964e+01 2.80558216e+01]\n", + "[1.73142162e-03 1.00170388e+00 2.85095964e+01 2.80558216e+01]\n", + "[5.19424301e-03 1.00511159e+00 2.85088768e+01 2.80539231e+01]\n", + "[6.92555537e-03 1.00681518e+00 2.85085170e+01 2.80529740e+01]\n", + "[1.55820080e-02 1.01533286e+00 2.85067182e+01 2.80482282e+01]\n", + "[1.71208759e-02 1.01684696e+00 2.85063985e+01 2.80473846e+01]\n", + "[1.90444363e-02 1.01873953e+00 2.85059988e+01 2.80463301e+01]\n", + "[1.90444361e-02 1.01873953e+00 2.85059988e+01 2.80463301e+01]\n", + "[ 0.05366828 1.05280505 28.49880491 28.02734892]\n", + "[ 0.07097037 1.06981187 28.49521373 28.01786741]\n", + "[ 0.15747003 1.15481737 28.47726415 27.97046979]\n", + "[ 0.17284216 1.16991458 28.47407641 27.96204873]\n", + "[ 0.19205473 1.18877942 28.47009323 27.95152473]\n", + "[ 0.19205456 1.18877916 28.47009331 27.95152483]\n", + "[ 0.53785689 1.52828287 28.39841019 27.76211501]\n", + "[ 0.70977855 1.69544655 28.36314216 27.6683088 ]\n", + "[ 1.56842232 2.52858325 28.18736748 27.2001727 ]\n", + "[ 1.72062592 2.67538763 28.15638897 27.11738881]\n", + "[ 1.91047955 2.85800493 28.11788092 27.01421944]\n", + "[ 1.91031048 2.85774032 28.11796138 27.01431911]\n", + "[ 5.32556325 6.13894292 27.42606523 25.15925644]\n", + "[ 6.93864597 7.52606047 27.13381774 24.31477 ]\n", + "[15.01496762 14.35931989 25.66856187 20.09486786]\n", + "[16.52335571 15.62245074 25.37776978 19.3146021 ]\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[18.22471796 16.89059224 25.10031255 18.44698884]\n", + "[18.04611534 16.61753402 25.18256479 18.54746617]\n", + "[27.32857615 23.45425337 23.67418601 13.82416966]\n", + "[31.34430831 24.91394473 23.21856936 11.89579515]\n", + "[52.68452033 32.87534933 20.38690562 1.64906609]\n", + "[58.55203534 36.58231578 19.16552166 -0.9236664 ]\n", + "[62.69835964 36.40689772 18.76422885 -2.88861806]\n", + "[59.10400795 31.41276833 19.97833766 -1.55180058]\n", + "[70.5203541 30.52601324 18.78974579 -7.05955285]\n", + "[75.46442215 26.54189029 18.2728913 -9.44399732]\n", + "[100.12247413 6.44012103 15.23108513 -21.10080643]\n", + "[105.30267511 4.69300719 14.25707386 -23.51456754]\n", + "[110.01481986 -2.95367919 13.55211386 -25.54000539]\n", + "[108.03152143 -8.26067499 14.21388797 -24.56662471]\n", + "[ 0. 1. 28.5101359 28.05658837]\n", + "[1.73143255e-05 1.00001704e+00 2.85101323e+01 2.80565789e+01]\n", + "[3.46286510e-04 1.00034078e+00 2.85100639e+01 2.80563985e+01]\n", + "[5.19428781e-04 1.00051116e+00 2.85100280e+01 2.80563036e+01]\n", + "[1.38513905e-03 1.00136309e+00 2.85098480e+01 2.80558290e+01]\n", + "[1.53904252e-03 1.00151454e+00 2.85098161e+01 2.80557446e+01]\n", + "[1.73142162e-03 1.00170386e+00 2.85097761e+01 2.80556391e+01]\n", + "[1.73142162e-03 1.00170386e+00 2.85097761e+01 2.80556391e+01]\n", + "[5.19424301e-03 1.00511152e+00 2.85090564e+01 2.80537406e+01]\n", + "[6.92555537e-03 1.00681509e+00 2.85086967e+01 2.80527914e+01]\n", + "[1.55820080e-02 1.01533266e+00 2.85068979e+01 2.80480457e+01]\n", + "[1.71208759e-02 1.01684674e+00 2.85065781e+01 2.80472021e+01]\n", + "[1.90444363e-02 1.01873929e+00 2.85061785e+01 2.80461476e+01]\n", + "[1.90444361e-02 1.01873929e+00 2.85061785e+01 2.80461476e+01]\n", + "[ 0.05366828 1.05280437 28.49898456 28.02716663]\n", + "[ 0.07097037 1.06981098 28.49539338 28.01768519]\n", + "[ 0.15747004 1.15481539 28.4774438 27.97028799]\n", + "[ 0.17284216 1.1699124 28.47425606 27.961867 ]\n", + "[ 0.19205473 1.18877701 28.47027288 27.9513431 ]\n", + "[ 0.19205456 1.18877674 28.47027296 27.9513432 ]\n", + "[ 0.5378569 1.52827611 28.39858984 27.76193502]\n", + "[ 0.70977856 1.69543765 28.3633218 27.66812962]\n", + "[ 1.56842238 2.52856372 28.18754709 27.19999756]\n", + "[ 1.72062599 2.67536623 28.15656856 27.11721437]\n", + "[ 1.91047963 2.8579812 28.11806051 27.01404588]\n", + "[ 1.91031056 2.8577166 28.11814097 27.01414555]\n", + "[ 5.32556363 6.13887745 27.4262446 25.15909868]\n", + "[ 6.93864705 7.52597788 27.13399657 24.3146187 ]\n", + "[15.01497125 14.35915162 25.66873847 20.09474946]\n", + "[16.52335826 15.62226469 25.37794663 19.31449069]\n", + "[18.22472164 16.89039089 25.10048854 18.44688357]\n", + "[18.04612167 16.61733934 25.18273953 18.54735831]\n", + "[27.32863507 23.45401022 23.67434851 13.82407155]\n", + "[31.34438924 24.91368389 23.21872706 11.89570025]\n", + "[52.68471277 32.87499276 20.38703654 1.64899174]\n", + "[58.55225301 36.58192728 19.16564392 -0.92373293]\n", + "[62.69859817 36.40649485 18.76434603 -2.88868063]\n", + "[59.10423464 31.41239333 19.97846158 -1.5518696 ]\n", + "[70.52062338 30.52560099 18.78985763 -7.05960356]\n", + "[75.46470684 26.54147994 18.27299862 -9.44403878]\n", + "[100.12284283 6.43973464 15.23117256 -21.10080646]\n", + "[105.30306683 4.69263236 14.25715952 -23.51455977]\n", + "[110.01522437 -2.95403313 13.55219706 -25.53999158]\n", + "[108.03191202 -8.26102511 14.21396958 -24.56661402]\n", + "[ 0. 1. 28.51029945 28.05642217]\n", + "[1.73143255e-05 1.00001704e+00 2.85102959e+01 2.80564127e+01]\n", + "[3.46286510e-04 1.00034077e+00 2.85102275e+01 2.80562323e+01]\n", + "[5.19428781e-04 1.00051116e+00 2.85101915e+01 2.80561374e+01]\n", + "[1.38513905e-03 1.00136308e+00 2.85100116e+01 2.80556628e+01]\n", + "[1.53904252e-03 1.00151453e+00 2.85099796e+01 2.80555784e+01]\n", + "[1.73142162e-03 1.00170384e+00 2.85099396e+01 2.80554729e+01]\n", + "[1.73142162e-03 1.00170384e+00 2.85099396e+01 2.80554729e+01]\n", + "[5.19424301e-03 1.00511146e+00 2.85092200e+01 2.80535744e+01]\n", + "[6.92555538e-03 1.00681501e+00 2.85088602e+01 2.80526253e+01]\n", + "[1.55820080e-02 1.01533248e+00 2.85070614e+01 2.80478796e+01]\n", + "[1.71208759e-02 1.01684655e+00 2.85067417e+01 2.80470360e+01]\n", + "[1.90444363e-02 1.01873907e+00 2.85063420e+01 2.80459815e+01]\n", + "[1.90444361e-02 1.01873907e+00 2.85063420e+01 2.80459815e+01]\n", + "[ 0.05366828 1.05280376 28.49914811 28.02700067]\n", + "[ 0.07097037 1.06981017 28.49555693 28.01751931]\n", + "[ 0.15747004 1.15481359 28.47760735 27.97012248]\n", + "[ 0.17284216 1.16991042 28.47441961 27.96170156]\n", + "[ 0.19205473 1.18877481 28.47043643 27.95117774]\n", + "[ 0.19205457 1.18877454 28.47043651 27.95117784]\n", + "[ 0.5378569 1.52826995 28.39875339 27.76177117]\n", + "[ 0.70977857 1.69542955 28.36348535 27.6679665 ]\n", + "[ 1.56842243 2.52854594 28.1877106 27.1998381 ]\n", + "[ 1.72062605 2.67534675 28.15673207 27.11705556]\n", + "[ 1.9104797 2.85795961 28.118224 27.01388787]\n", + "[ 1.91031064 2.85769501 28.11830446 27.01398754]\n", + "[ 5.32556397 6.13881784 27.42640788 25.15895506]\n", + "[ 6.93864804 7.52590268 27.13415938 24.31448096]\n", + "[15.01497457 14.35899844 25.66889923 20.09464167]\n", + "[16.52336059 15.62209532 25.37810763 19.31438927]\n", + "[18.22472498 16.89020759 25.10064875 18.44678774]\n", + "[18.04612743 16.61716211 25.18289862 18.54726012]\n", + "[27.32868871 23.45378887 23.67449645 13.82398224]\n", + "[31.34446292 24.91344643 23.21887064 11.89561386]\n", + "[52.68488796 32.87466814 20.38715573 1.64892404]\n", + "[58.55245118 36.5815736 19.16575523 -0.9237935 ]\n", + "[62.69881532 36.40612807 18.7644527 -2.8887376 ]\n", + "[59.10444102 31.41205192 19.9785744 -1.55193244]\n", + "[70.52086852 30.52522567 18.78995946 -7.05964972]\n", + "[75.46496602 26.54110637 18.27309633 -9.44407652]\n", + "[100.12317848 6.43938288 15.23125215 -21.10080648]\n", + "[105.30342344 4.69229112 14.2572375 -23.5145527 ]\n", + "[110.01559262 -2.95435536 13.55227281 -25.53997902]\n", + "[108.0322676 -8.26134386 14.21404389 -24.56660428]\n" + ] + }, + { + "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", + "
values
fun11.04782805563812 meter
status0
successTrue
messageSolution found.
x44.5406
nfev12
\n", + "
" + ], + "text/plain": [ + "fun 11.04782805563812 meter\n", + "status 0\n", + "success True\n", + "message Solution found.\n", + "x 44.5406\n", + "nfev 12\n", + "dtype: object" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "res = max_bounded(height_func, [0, 90], params);" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 25, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
fun11.04782805563812 meter
status0
successTrue
messageSolution found.
x44.5406
nfev12
\n", + "
" + ], + "text/plain": [ + "fun 11.04782805563812 meter\n", + "status 0\n", + "success True\n", + "message Solution found.\n", + "x 44.5406\n", + "nfev 12\n", + "dtype: object" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "# Solution goes here" + "res" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -1002,7 +3520,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 27, "metadata": { "collapsed": true }, @@ -1020,7 +3538,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -1036,7 +3554,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 29, "metadata": {}, "outputs": [], "source": [ @@ -1045,7 +3563,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 30, "metadata": {}, "outputs": [], "source": [ From eac8db81a293e97a7fcf7f0392290f3fd664e28b Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 29 Nov 2018 15:46:21 -0500 Subject: [PATCH 55/61] Create Project 3.ipynb --- code/Project 3.ipynb | 499 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 499 insertions(+) create mode 100644 code/Project 3.ipynb diff --git a/code/Project 3.ipynb b/code/Project 3.ipynb new file mode 100644 index 00000000..46dd633d --- /dev/null +++ b/code/Project 3.ipynb @@ -0,0 +1,499 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "qEb5Fl3ZyVJm" + }, + "source": [ + "# Modeling and Simulation in Python\n", + "Sam Daitzman\n", + "\n", + "Chapter 20" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Y1DkmasdyVJp" + }, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "EBbygIvbyVLj" + }, + "source": [ + "### Exercises\n", + "\n", + "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", + "\n", + "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", + "\n", + "Use `run_ode_solver` to answer this question.\n", + "\n", + "Here are some suggestions about how to proceed:\n", + "\n", + "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", + "\n", + "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", + "\n", + "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", + "\n", + "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", + "\n", + "\n", + "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "XcpC9qV2yVLl" + }, + "outputs": [], + "source": [ + "# units!\n", + "year = UNITS.year\n", + "s = UNITS.second\n", + "N = UNITS.newton\n", + "kg = UNITS.kilogram\n", + "m = UNITS.meter\n", + "AU = UNITS.astronomical_unit;" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Nq0vKaw0yVLn" + }, + "outputs": [], + "source": [ + "x_0 = (0 * AU).to_base_units()\n", + "y_0 = (1 * AU).to_base_units()\n", + "\n", + "vx_0 = 30330 * m / s\n", + "vy_0 = 0 * m / s\n", + "\n", + "init = State(x=x_0,\n", + " y=y_0,\n", + " vx=vx_0,\n", + " vy=vy_0)" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "2mYVqxxmyVLq" + }, + "outputs": [], + "source": [ + "system = System(init=init,\n", + " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", + " m_sun=1.99e30 * kg,\n", + " m_earth=5.972e24 * kg,\n", + " t_end=100e6 * s,\n", + " r_final=695.508e6 * m + 6.371e6 * m)" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "G4ijoX3dyVLt" + }, + "outputs": [], + "source": [ + "def universal_grav(state, system):\n", + " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", + " x, y, vx, vy = state\n", + " unpack(system)\n", + " \n", + " position = Vector(x, y)\n", + " \n", + " mag = G * m_sun * m_earth / position.mag ** 2\n", + " direction = -position.hat()\n", + " \n", + " force = direction * mag\n", + " \n", + " return force\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "0euiUJCfyVL0" + }, + "outputs": [], + "source": [ + "def slope_func(state, t, system):\n", + " x, y, vx, vy = state\n", + " unpack(system)\n", + " \n", + " v = Vector(vx, vy)\n", + " force = universal_grav(state, system)\n", + " a = force / m_earth\n", + " \n", + " return vx, vy, a.x, a.y" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "yxNvIgrGyVL2" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "30330.0 meter / second 0.0 meter / second -0.0 newton / kilogram -0.005934559038759181 newton / kilogram\n" + ] + } + ], + "source": [ + "vx, vy, ax, ay = slope_func(init, 0, system)\n", + "print(vx, vy, ax, ay)" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "BDP2V-W97UdW" + }, + "outputs": [], + "source": [ + "def event_func(state, t, system):\n", + " x, y, vx, vy = state\n", + " position = Vector(x, y)\n", + " return position.mag - system.r_final" + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 333 + }, + "colab_type": "code", + "id": "oDu_ADwk7bMA", + "outputId": "708f4205-baa3-42d5-b2f1-71f5aa3aa126" + }, + "outputs": [ + { + "data": { + "text/html": [ + "148895991691.0 meter" + ], + "text/latex": [ + "$148895991691.0 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 154, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "event_func(init, 0, system)" + ] + }, + { + "cell_type": "code", + "execution_count": 165, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 331 + }, + "colab_type": "code", + "id": "0PSP5uH6yVL4", + "outputId": "2f274108-86fd-4d0f-db33-9fcd9a1879fd" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results, details = run_ode_solver(system, slope_func, method='LSODA')\n", + "results.index /= 60 * 60 * 24\n", + "# results.r *= (0.000621371 / 1000)\n", + "plot(results.x, results.y, 'go-')\n", + "decorate(title='Earth Orbit',\n", + " xlabel='X Position (m)',\n", + " ylabel='Y Position (m)')" + ] + }, + { + "cell_type": "code", + "execution_count": 167, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 297 + }, + "colab_type": "code", + "id": "ZBi2VbR7yVL_", + "outputId": "348bc2da-d0e9-48af-ebee-8515b7a426e6" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(results.vy, 'ro-')\n", + "decorate(title='Earth Velocity',\n", + " xlabel='Time (days)',\n", + " ylabel='Y Velocity (m/s)')" + ] + }, + { + "cell_type": "code", + "execution_count": 168, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Nq0vKaw0yVLn" + }, + "outputs": [], + "source": [ + "x_0 = (0 * AU).to_base_units()\n", + "y_0 = (1 * AU).to_base_units()\n", + "\n", + "vx_0 = 0 * m / s\n", + "vy_0 = 0 * m / s\n", + "\n", + "init = State(x=x_0,\n", + " y=y_0,\n", + " vx=vx_0,\n", + " vy=vy_0)" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "2mYVqxxmyVLq" + }, + "outputs": [], + "source": [ + "system = System(init=init,\n", + " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", + " m_sun=1.99e30 * kg,\n", + " m_earth=5.972e24 * kg,\n", + " t_end=100e6 * s,\n", + " r_final=695.508e6 * m + 6.371e6 * m)" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": {}, + "outputs": [], + "source": [ + "def event_func(state, t, system):\n", + " x, y, vx, vy = state\n", + " position = Vector(x, y)\n", + " return position.mag" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "AwVA_CYZ-O_u" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "results, details = run_ode_solver(system, slope_func, events=event_func, method='RK23')\n", + "results.index /= 60 * 60 * 24\n", + "# results.r *= (0.000621371 / 1000)\n", + "plot(results.y, 'go-')\n", + "decorate(title='Earth Orbit',\n", + " xlabel='Time (days)',\n", + " ylabel='Y Position (m)')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "wNRcyudo-PDq" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "uftDQ7GI-PJG" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "l4LgemZu-PRE" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "k1o3Wo4A-QNK" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "Ax8EsdFJypUT", + "outputId": "57f2e86e-b569-47de-bb1d-38e2e28c8d35" + }, + "outputs": [], + "source": [ + "# # Imports\n", + "# from IPython.display import clear_output\n", + "# import os\n", + "# import time\n", + "\n", + "# # Install Python libraries\n", + "# !pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", + "\n", + "# # Removes code before re-downloading it\n", + "# !rm -rf ./ModSimPy\n", + "# !rm -rf ./modsim.py\n", + "\n", + "# # Grabs ModSimPy\n", + "# !git clone https://github.com/AllenDowney/ModSimPy.git\n", + "# !cp \"ModSimPy/code/modsim.py\" .\n", + "\n", + "# # Resets kernel to flush outdated libraries (especially SciPy)\n", + "# clear_output()\n", + "# print(\"Configured for ModSimPy. Restarting kernel.\")\n", + "# time.sleep(1)\n", + "# os._exit(0)" + ] + } + ], + "metadata": { + "colab": { + "collapsed_sections": [], + "name": "orbit_homework.ipynb", + "provenance": [], + "version": "0.3.2" + }, + "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.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 7a049d1bcb7b19977385682db7a4d566b773e847 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Thu, 29 Nov 2018 16:48:15 -0500 Subject: [PATCH 56/61] working bungee jumping simulation --- code/chap23-mine.ipynb | 106 ++++- code/jump2.ipynb | 951 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 960 insertions(+), 97 deletions(-) diff --git a/code/chap23-mine.ipynb b/code/chap23-mine.ipynb index 5e58fed5..2dbfff04 100644 --- a/code/chap23-mine.ipynb +++ b/code/chap23-mine.ipynb @@ -3520,13 +3520,107 @@ }, { "cell_type": "code", - "execution_count": 27, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0. 1. 7.12757486 7.01410554]\n", + "[1.73131001e-05 1.00001704e+00 7.12757396e+00 7.01408085e+00]\n", + "[3.46262002e-04 1.00034075e+00 7.12755687e+00 7.01361175e+00]\n", + "[5.19392020e-04 1.00051110e+00 7.12754788e+00 7.01336485e+00]\n", + "[1.38504102e-03 1.00136281e+00 7.12750291e+00 7.01213038e+00]\n", + "[1.53893360e-03 1.00151421e+00 7.12749491e+00 7.01191092e+00]\n", + "[1.73129909e-03 1.00170345e+00 7.12748492e+00 7.01163660e+00]\n", + "[1.73129909e-03 1.00170345e+00 7.12748492e+00 7.01163660e+00]\n", + "[5.19387541e-03 1.00510974e+00 7.12730505e+00 7.00669875e+00]\n", + "[6.92506527e-03 1.00681019e+00 7.12721519e+00 7.00423003e+00]\n", + "[0.01558091 1.01530945 7.12676599 6.99188671]\n", + "[0.01711967 1.01681886 7.12668617 6.98969246]\n", + "[0.01904309 1.01870495 7.12658643 6.9869497 ]\n", + "[0.01904309 1.01870495 7.12658643 6.9869497 ]\n", + "[0.05366449 1.05264798 7.12479117 6.93758061]\n", + "[0.07096537 1.06934968 7.12390129 6.91291711]\n", + "[0.15745958 1.1525602 7.11946024 6.78962209]\n", + "[0.17283129 1.16719808 7.11867508 6.76771485]\n", + "[0.19204266 1.18542648 7.11769565 6.74033607]\n", + "[0.19204176 1.18542403 7.11769578 6.74033629]\n", + "[0.53782383 1.51287374 7.10008453 6.24756867]\n", + "[0.70975235 1.64966727 7.09202409 6.00316909]\n", + "[1.56896909 2.30542491 7.05228023 4.78253594]\n", + "[1.72182366 2.40811895 7.0455204 4.56632225]\n", + "[1.9118047 2.52755838 7.03731734 4.29666388]\n", + "[1.91090101 2.52513421 7.03741207 4.29692069]\n", + "[4.64292631 4.19326106 6.92036968 0.4209547 ]\n", + "[ 5.95782172 3.33453008 6.88464698 -1.44325389]\n", + "[ 12.63284771 -2.33084675 6.53514211 -10.796537 ]\n", + "[ 14.05841655 -3.74727822 6.36484306 -12.71957127]\n", + "[ 15.45967613 -6.55736774 6.24534358 -14.63056659]\n", + "[ 15.02261763 -7.37653206 6.38625573 -14.09833631]\n", + "[ 18.10288148 -14.17654095 6.13855704 -18.27832024]\n", + "[ 19.50860766 -19.84467961 5.95967895 -19.989883 ]\n", + "[ 25.91604371 -47.4606039 5.17367721 -28.24187227]\n", + "[ 26.38466498 -50.35328099 5.16724779 -29.87365278]\n", + "[ 27.67758665 -58.56853927 4.96079763 -31.19775662]\n", + "[ 28.55549617 -63.10143409 4.73749807 -30.56257255]\n", + "[ 32.57576993 -89.03704541 4.09148461 -34.7113552 ]\n", + "[ 33.96916887 -105.96562257 3.78591369 -35.45644631]\n", + "[ 40.51394177 -174.9550829 2.76721126 -44.20368703]\n", + "[ 40.97831395 -161.38428662 3.30904748 -54.90473593]\n", + "[ 41.51374216 -176.21269454 3.29700881 -58.50886581]\n", + "[ 42.55384463 -222.02138136 2.08285205 -41.18931824]\n", + "[ 31.18978768 -80.09578935 4.31419661 -33.28106973]\n", + "[ 32.24213398 -90.29354356 4.10819116 -34.0823573 ]\n", + "[ 37.26544951 -137.65620155 3.23254093 -39.14921803]\n", + "[ 37.94071435 -140.17288773 3.26199927 -41.99371234]\n", + "[ 38.76160365 -151.87681493 3.09979299 -42.78224786]\n", + "[ 38.94310274 -162.21511458 2.82350452 -39.27456059]\n", + "[ 40.73230056 -187.10261092 2.45746396 -40.39304883]\n", + "[ 41.3659529 -200.34371793 2.31789111 -40.62581724]\n", + "[ 44.73372744 -263.75732174 1.62519869 -42.92212145]\n", + "[ 45.71145159 -270.42692715 1.48557444 -45.24495734]\n", + "[ 46.19985618 -284.70423593 1.37960086 -45.73414684]\n", + "[ 45.46509942 -292.6818447 1.43184155 -42.37887089]\n", + "[ 46.47807619 -322.66338248 1.20867109 -42.70674246]\n", + "[ 46.8069438 -337.91510347 1.13461442 -42.75653557]\n", + "[ 48.72592752 -413.02806647 0.71272285 -43.50813107]\n", + "[ 49.53331186 -424.44543003 0.54694198 -44.49713527]\n", + "[ 49.80618089 -441.07387168 0.4853796 -44.70334473]\n", + "[ 48.97224466 -444.45148591 0.65035748 -43.20479047]\n", + "[ 49.54175571 -482.28545625 0.52250082 -43.29272367]\n", + "[ 4.97005532e+01 -5.01289069e+02 4.86619869e-01 -4.32981427e+01]\n", + "[ 5.07912235e+01 -5.95803283e+02 2.42227606e-01 -4.35504906e+01]\n", + "[ 5.14723635e+01 -6.11712769e+02 9.15853816e-02 -4.39957373e+01]\n", + "[ 5.16285755e+01 -6.32594082e+02 5.59587544e-02 -4.41092838e+01]\n", + "[ 5.07822415e+01 -6.34192574e+02 2.42708128e-01 -4.33910431e+01]\n", + "[ 5.08556852e+01 -6.47322740e+02 2.26150373e-01 -4.33963576e+01]\n", + "[ 5.08867703e+01 -6.53889633e+02 2.19140188e-01 -4.33982059e+01]\n", + "[ 5.10427581e+01 -6.86721753e+02 1.83966667e-01 -4.34084998e+01]\n", + "[ 5.10747326e+01 -6.92554403e+02 1.76762359e-01 -4.34122051e+01]\n", + "[ 5.11039175e+01 -6.99852024e+02 1.70179780e-01 -4.34137794e+01]\n", + "[ 5.10933742e+01 -6.99859653e+02 1.72547595e-01 -4.34103524e+01]\n" + ] + }, + { + "ename": "TypeError", + "evalue": "max_bounded() missing 1 required positional argument: 'bounds'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mnewParams\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mParams\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvelocity\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mvelocity\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[0mresults\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmax_bounded\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mheight_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mangle\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnewParams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 4\u001b[1;33m \u001b[0merror_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m10\u001b[0m \u001b[1;33m*\u001b[0m \u001b[0mm\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32m\u001b[0m in \u001b[0;36merror_func\u001b[1;34m(velocity, params)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0merror_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mvelocity\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[0mnewParams\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mParams\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparams\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvelocity\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mvelocity\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m \u001b[0mresults\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmax_bounded\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mheight_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mangle\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnewParams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 4\u001b[0m \u001b[0merror_func\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m10\u001b[0m \u001b[1;33m*\u001b[0m \u001b[0mm\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0ms\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mTypeError\u001b[0m: max_bounded() missing 1 required positional argument: 'bounds'" + ] + } + ], "source": [ - "# Solution goes here" + "def error_func(velocity, params):\n", + " newParams = Params(params, velocity=velocity)\n", + " results = max_bounded(height_func(angle, newParams))\n", + "error_func(10 * m / s, params)" ] }, { diff --git a/code/jump2.ipynb b/code/jump2.ipynb index 0b672c79..2113d5fc 100644 --- a/code/jump2.ipynb +++ b/code/jump2.ipynb @@ -77,7 +77,24 @@ "cell_type": "code", "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "newton" + ], + "text/latex": [ + "$newton$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m = UNITS.meter\n", "s = UNITS.second\n", @@ -89,7 +106,90 @@ "cell_type": "code", "execution_count": 3, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
v_init0.0 meter / second
g9.8 meter / second ** 2
M75 kilogram
m_cord75 kilogram
area1 meter ** 2
rho1.2 kilogram / meter ** 3
v_term60.0 meter / second
L25 meter
k40.0 newton / meter
\n", + "
" + ], + "text/plain": [ + "v_init 0.0 meter / second\n", + "g 9.8 meter / second ** 2\n", + "M 75 kilogram\n", + "m_cord 75 kilogram\n", + "area 1 meter ** 2\n", + "rho 1.2 kilogram / meter ** 3\n", + "v_term 60.0 meter / second\n", + "L 25 meter\n", + "k 40.0 newton / meter\n", + "dtype: object" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "params = Params(v_init = 0 * m / s,\n", " g = 9.8 * m/s**2,\n", @@ -150,7 +250,112 @@ "cell_type": "code", "execution_count": 5, "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
v_init0.0 meter / second
g9.8 meter / second ** 2
M75 kilogram
m_cord75 kilogram
area1 meter ** 2
rho1.2 kilogram / meter ** 3
v_term60.0 meter / second
L25 meter
k40.0 newton / meter
C_d0.3402777777777778 dimensionless
mu1.0 dimensionless
inity 0 meter\n", + "v 0.0 meter / secon...
t_end10 second
\n", + "
" + ], + "text/plain": [ + "v_init 0.0 meter / second\n", + "g 9.8 meter / second ** 2\n", + "M 75 kilogram\n", + "m_cord 75 kilogram\n", + "area 1 meter ** 2\n", + "rho 1.2 kilogram / meter ** 3\n", + "v_term 60.0 meter / second\n", + "L 25 meter\n", + "k 40.0 newton / meter\n", + "C_d 0.3402777777777778 dimensionless\n", + "mu 1.0 dimensionless\n", + "init y 0 meter\n", + "v 0.0 meter / secon...\n", + "t_end 10 second\n", + "dtype: object" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system = make_system(params)" ] @@ -191,7 +396,24 @@ "cell_type": "code", "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "-81.66666666666667 kilogram meter/second2" + ], + "text/latex": [ + "$-81.66666666666667 \\frac{kilogram \\cdot meter}{second^{2}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "drag_force(20 * m/s, system)" ] @@ -207,7 +429,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 47, "metadata": {}, "outputs": [], "source": [ @@ -220,18 +442,22 @@ " \n", " returns: acceleration in m/s\n", " \"\"\"\n", - " # Fill this in\n", - " return 0" + " unpack(system)\n", + " \n", + " mu = m_cord / M\n", + " \n", + " \n", + " a = (mu * v **2 / 2) / (mu * (L + y) + 2 * L)\n", + " \n", + " return a" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "# Solution goes here" - ] + "source": [] }, { "cell_type": "markdown", @@ -242,9 +468,26 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "3.6363636363636362 meter/second2" + ], + "text/latex": [ + "$3.6363636363636362 \\frac{meter}{second^{2}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "y = -20 * m\n", "v = -20 * m/s\n", @@ -260,7 +503,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 52, "metadata": {}, "outputs": [], "source": [ @@ -278,7 +521,7 @@ " unpack(system)\n", " \n", " # Fill this in\n", - " dvdt = -g\n", + " dvdt = -(g + cord_acc(y, v, system)) + drag_force(v, system)/M\n", " \n", " return v, dvdt" ] @@ -301,9 +544,20 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(, )" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "slope_func1(system.init, 0, system)" ] @@ -317,7 +571,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 83, "metadata": {}, "outputs": [], "source": [ @@ -335,12 +589,12 @@ " unpack(system)\n", "\n", " # Fill this in\n", - " return 1" + " return L + y" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 84, "metadata": {}, "outputs": [], "source": [ @@ -356,9 +610,26 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [], + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "25 meter" + ], + "text/latex": [ + "$25 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 85, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "event_func(system.init, 0, system)" ] @@ -372,9 +643,20 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], + "execution_count": 86, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'A termination event occurred.'" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "results, details = run_ode_solver(system, slope_func1, \n", " events=event_func, max_step=0.1)\n", @@ -390,9 +672,20 @@ }, { "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.211816442174678" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t_final = get_last_label(results)" ] @@ -406,9 +699,20 @@ }, { "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "def plot_position(results, **options):\n", " plot(results.y, **options)\n", @@ -427,11 +731,22 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 89, "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "def plot_velocity(results):\n", " plot(results.v, color='C1', label='v')\n", @@ -451,9 +766,26 @@ }, { "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [], + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "-23.87566214906311 meter/second" + ], + "text/latex": [ + "$-23.87566214906311 \\frac{meter}{second}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "min(results.v) * m/s" ] @@ -469,7 +801,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 91, "metadata": {}, "outputs": [], "source": [ @@ -488,7 +820,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 92, "metadata": {}, "outputs": [], "source": [ @@ -507,9 +839,20 @@ }, { "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot(sweep)\n", "\n", @@ -535,7 +878,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 94, "metadata": {}, "outputs": [], "source": [ @@ -567,18 +910,52 @@ }, { "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [], + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "0.0 newton" + ], + "text/latex": [ + "$0.0 newton$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "spring_force(-25*m, system)" ] }, { "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "40.0 newton" + ], + "text/latex": [ + "$40.0 newton$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "spring_force(-26*m, system)" ] @@ -592,7 +969,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 97, "metadata": {}, "outputs": [], "source": [ @@ -625,18 +1002,131 @@ }, { "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], + "execution_count": 98, + "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", + "
values
v_init0.0 meter / second
g9.8 meter / second ** 2
M75 kilogram
m_cord75 kilogram
area1 meter ** 2
rho1.2 kilogram / meter ** 3
v_term60.0 meter / second
L25 meter
k40.0 newton / meter
C_d0.3402777777777778 dimensionless
mu1.0 dimensionless
inity 0 meter\n", + "v 0.0 meter / secon...
t_end10 second
\n", + "
" + ], + "text/plain": [ + "v_init 0.0 meter / second\n", + "g 9.8 meter / second ** 2\n", + "M 75 kilogram\n", + "m_cord 75 kilogram\n", + "area 1 meter ** 2\n", + "rho 1.2 kilogram / meter ** 3\n", + "v_term 60.0 meter / second\n", + "L 25 meter\n", + "k 40.0 newton / meter\n", + "C_d 0.3402777777777778 dimensionless\n", + "mu 1.0 dimensionless\n", + "init y 0 meter\n", + "v 0.0 meter / secon...\n", + "t_end 10 second\n", + "dtype: object" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system1 = make_system(params)" ] }, { "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [], + "execution_count": 99, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A termination event occurred.\n" + ] + } + ], "source": [ "event_func.direction=-1\n", "results1, details1 = run_ode_solver(system1, slope_func1, \n", @@ -653,18 +1143,77 @@ }, { "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], + "execution_count": 100, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.211816442174678" + ] + }, + "execution_count": 100, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t_final = get_last_label(results1)" ] }, { "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [], + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
y-25.000000
v-23.875662
\n", + "
" + ], + "text/plain": [ + "y -25.000000\n", + "v -23.875662\n", + "Name: 2.211816442174678, dtype: float64" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "init2 = results1.row[t_final]" ] @@ -678,9 +1227,121 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], + "execution_count": 102, + "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", + "
values
v_init0.0 meter / second
g9.8 meter / second ** 2
M75 kilogram
m_cord75 kilogram
area1 meter ** 2
rho1.2 kilogram / meter ** 3
v_term60.0 meter / second
L25 meter
k40.0 newton / meter
C_d0.3402777777777778 dimensionless
mu1.0 dimensionless
inity -25.000000\n", + "v -23.875662\n", + "Name: 2.21181644...
t_end12.2118
t_02.21182
\n", + "
" + ], + "text/plain": [ + "v_init 0.0 meter / second\n", + "g 9.8 meter / second ** 2\n", + "M 75 kilogram\n", + "m_cord 75 kilogram\n", + "area 1 meter ** 2\n", + "rho 1.2 kilogram / meter ** 3\n", + "v_term 60.0 meter / second\n", + "L 25 meter\n", + "k 40.0 newton / meter\n", + "C_d 0.3402777777777778 dimensionless\n", + "mu 1.0 dimensionless\n", + "init y -25.000000\n", + "v -23.875662\n", + "Name: 2.21181644...\n", + "t_end 12.2118\n", + "t_0 2.21182\n", + "dtype: object" + ] + }, + "execution_count": 102, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system2 = System(system1, t_0=t_final, t_end=t_final+10, init=init2)" ] @@ -694,9 +1355,27 @@ }, { "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A termination event occurred.\n" + ] + }, + { + "data": { + "text/plain": [ + "8.104199118651167" + ] + }, + "execution_count": 103, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "event_func.direction=+1\n", "results2, details2 = run_ode_solver(system2, slope_func2, \n", @@ -714,9 +1393,20 @@ }, { "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [], + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot_position(results1, label='Phase 1')\n", "plot_position(results2, label='Phase 2')" @@ -731,9 +1421,26 @@ }, { "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [], + "execution_count": 105, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "-77.04862516095776 meter" + ], + "text/latex": [ + "$-77.04862516095776 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "min(results2.y) * m" ] @@ -747,7 +1454,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 106, "metadata": {}, "outputs": [], "source": [ @@ -776,7 +1483,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 107, "metadata": {}, "outputs": [], "source": [ @@ -785,16 +1492,27 @@ }, { "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [], + "execution_count": 108, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot_position(results)" ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 109, "metadata": {}, "outputs": [], "source": [ @@ -804,9 +1522,20 @@ }, { "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [], + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "plot_position(results, label='m_cord = 75 kg')\n", "plot_position(results_no_cord, label='m_cord = 1 kg')" @@ -814,18 +1543,46 @@ }, { "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [], + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "-74.63749938066775 meter" + ], + "text/latex": [ + "$-74.63749938066775 meter$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "min(results_no_cord.y) * m" ] }, { "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [], + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-2.411125780290007" + ] + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "diff = min(results.y) - min(results_no_cord.y)" ] @@ -835,6 +1592,18 @@ "metadata": {}, "source": [] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, From 984cf0486f5757a4e844c8234a7bcd0901d82e47 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 4 Dec 2018 16:54:40 -0500 Subject: [PATCH 57/61] Update Project 3.ipynb --- code/Project 3.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/Project 3.ipynb b/code/Project 3.ipynb index 46dd633d..c86bd904 100644 --- a/code/Project 3.ipynb +++ b/code/Project 3.ipynb @@ -7,7 +7,7 @@ "id": "qEb5Fl3ZyVJm" }, "source": [ - "# Modeling and Simulation in Python\n", + "# Bungee Jumping\n", "Sam Daitzman\n", "\n", "Chapter 20" From 687ead3d3ab0831f35f09776d90a841fd5ca144a Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 4 Dec 2018 16:56:07 -0500 Subject: [PATCH 58/61] working Olin zip-line simulation --- code/Project 3.ipynb | 534 ++++++++++++++++++++++++++++++------------- 1 file changed, 374 insertions(+), 160 deletions(-) diff --git a/code/Project 3.ipynb b/code/Project 3.ipynb index c86bd904..932b5e02 100644 --- a/code/Project 3.ipynb +++ b/code/Project 3.ipynb @@ -7,15 +7,14 @@ "id": "qEb5Fl3ZyVJm" }, "source": [ - "# Bungee Jumping\n", - "Sam Daitzman\n", + "# Why Walk When You Can Zipline?\n", "\n", - "Chapter 20" + "Sam Daitzman and Jocelyn Jimenez" ] }, { "cell_type": "code", - "execution_count": 120, + "execution_count": 1, "metadata": { "colab": {}, "colab_type": "code", @@ -40,31 +39,13 @@ "id": "EBbygIvbyVLj" }, "source": [ - "### Exercises\n", - "\n", - "**Exercise:** Here's a question from the web site [Ask an Astronomer](http://curious.astro.cornell.edu/about-us/39-our-solar-system/the-earth/other-catastrophes/57-how-long-would-it-take-the-earth-to-fall-into-the-sun-intermediate):\n", - "\n", - "\"If the Earth suddenly stopped orbiting the Sun, I know eventually it would be pulled in by the Sun's gravity and hit it. How long would it take the Earth to hit the Sun? I imagine it would go slowly at first and then pick up speed.\"\n", - "\n", - "Use `run_ode_solver` to answer this question.\n", - "\n", - "Here are some suggestions about how to proceed:\n", - "\n", - "1. Look up the Law of Universal Gravitation and any constants you need. I suggest you work entirely in SI units: meters, kilograms, and Newtons.\n", - "\n", - "2. When the distance between the Earth and the Sun gets small, this system behaves badly, so you should use an event function to stop when the surface of Earth reaches the surface of the Sun.\n", - "\n", - "3. Express your answer in days, and plot the results as millions of kilometers versus days.\n", - "\n", - "If you read the reply by Dave Rothstein, you will see other ways to solve the problem, and a good discussion of the modeling decisions behind them.\n", - "\n", - "\n", - "You might also be interested to know that [it's actually not that easy to get to the Sun](https://www.theatlantic.com/science/archive/2018/08/parker-solar-probe-launch-nasa/567197/)." + "# Introduction\n", + "Although Olin is a very small campus, it is sometimes very tedious having to walk through various curved paths and flights of stairs. We noticed that there was great potential of a zip line from Olin’s Academic Center to West Hall. Initially there were multiple issues that arose. For instance, where will the landing spot be? In the case of our model, we believe it is best if the zip line ends on the corner room in West Hall on the second floor because it gives us the fastest access to most dorms in West Hall. If we were to ask “Which floor in the AC allows us to get faster to our destination?” the answer would be obvious, the 4th floor; but if you zipline at too steep an angle, you are likely to get injured. As a result, we decided to take into consideration the safety of the individual in order to make it a more useful model. Our model asks what the fastest safe zip line starting mount-point would be to get from the AC to West Hall as fast as (safely) possible." ] }, { "cell_type": "code", - "execution_count": 141, + "execution_count": 2, "metadata": { "colab": {}, "colab_type": "code", @@ -83,7 +64,7 @@ }, { "cell_type": "code", - "execution_count": 145, + "execution_count": 3, "metadata": { "colab": {}, "colab_type": "code", @@ -91,10 +72,10 @@ }, "outputs": [], "source": [ - "x_0 = (0 * AU).to_base_units()\n", - "y_0 = (1 * AU).to_base_units()\n", + "x_0 = (0 * m)\n", + "y_0 = (0 * m)\n", "\n", - "vx_0 = 30330 * m / s\n", + "vx_0 = 0 * m / s\n", "vy_0 = 0 * m / s\n", "\n", "init = State(x=x_0,\n", @@ -105,7 +86,7 @@ }, { "cell_type": "code", - "execution_count": 147, + "execution_count": 4, "metadata": { "colab": {}, "colab_type": "code", @@ -113,86 +94,250 @@ }, "outputs": [], "source": [ + "# TODO: make this a params and a make_system()\n", + "# def make_system(params):\n", + "# \"\"\"Make a system object.\n", + " \n", + "# params: Params object with angle, velocity, x, y,\n", + "# diameter, duration, g, mass, rho, and C_d\n", + " \n", + "# returns: System object\n", + "# \"\"\"\n", + "# unpack(params)\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", + "# return System(params, init=init, area=area)\n", + "\n", + "\n", "system = System(init=init,\n", - " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", - " m_sun=1.99e30 * kg,\n", - " m_earth=5.972e24 * kg,\n", - " t_end=100e6 * s,\n", - " r_final=695.508e6 * m + 6.371e6 * m)" + " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", + " m_sun=1.99e30 * kg,\n", + " m_human=70 * kg,\n", + " grav = Vector(0 * m / s ** 2, -9.81),\n", + " rho = 1.275 * kg / m ** 3, \n", + " area = 0.7 * m ** 2, \n", + " cd = 1.2, # UPDATE THIS \n", + " t_end=100e6 * s,\n", + " z = Vector(100 * m, -25.1)\n", + ")" ] }, { "cell_type": "code", - "execution_count": 151, + "execution_count": null, "metadata": { "colab": {}, "colab_type": "code", - "id": "G4ijoX3dyVLt" + "id": "im99NKd9zS1y" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "r1YjIAFXosZD" }, "outputs": [], "source": [ - "def universal_grav(state, system):\n", - " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", - " x, y, vx, vy = state\n", - " unpack(system)\n", - " \n", - " position = Vector(x, y)\n", - " \n", - " mag = G * m_sun * m_earth / position.mag ** 2\n", - " direction = -position.hat()\n", - " \n", - " force = direction * mag\n", - " \n", - " return force\n", - " " + "def earth_grav(m, g):\n", + " return g * m" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 37 + }, + "colab_type": "code", + "id": "ntH51n1CunMT", + "outputId": "dc13f397-15dd-4e5b-9850-6252df81f495" + }, + "outputs": [ + { + "data": { + "text/html": [ + "[ 0. -981.] kilogram meter/second2" + ], + "text/latex": [ + "$[ 0. -981.] \\frac{kilogram \\cdot meter}{second^{2}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "earth_grav(100*kg, system.grav)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "7U1oJPTqt8EC" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "i6TUycquqNd4" + }, + "outputs": [], + "source": [ + "def drag_force(rho, v, area, cd):\n", + " direction= -v.hat()\n", + " drag = (1/2) * rho * v.mag**2 *area * cd\n", + " return direction * drag" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 37 + }, + "colab_type": "code", + "id": "HzMqrMuYrW3c", + "outputId": "5b54d562-1f45-471f-c500-92afe4e2065e" + }, + "outputs": [ + { + "data": { + "text/html": [ + "[-1200. -1600.] kilogram meter/second2" + ], + "text/latex": [ + "$[-1200. -1600.] \\frac{kilogram \\cdot meter}{second^{2}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "drag_force(20 * kg / m ** 3, Vector(3 * m / s, 4), 10 * m ** 2, 0.8)" ] }, { "cell_type": "code", - "execution_count": 149, + "execution_count": 9, "metadata": { "colab": {}, "colab_type": "code", - "id": "0euiUJCfyVL0" + "id": "G4ijoX3dyVLt" }, "outputs": [], "source": [ - "def slope_func(state, t, system):\n", - " x, y, vx, vy = state\n", - " unpack(system)\n", + "def effective_force(state, system):\n", + " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", + " x, y, vx, vy = state\n", + " unpack(system)\n", " \n", - " v = Vector(vx, vy)\n", - " force = universal_grav(state, system)\n", - " a = force / m_earth\n", - " \n", - " return vx, vy, a.x, a.y" + " grav_f = earth_grav(m_human, grav)\n", + " drag_f = drag_force(rho, Vector(vx, vy), area, cd)\n", + " \n", + " net_force = grav_f + drag_f\n", + " \n", + " effective_force = net_force.proj(z.hat())\n", + "\n", + " return effective_force" ] }, { "cell_type": "code", - "execution_count": 152, + "execution_count": 10, "metadata": { - "colab": {}, + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, "colab_type": "code", - "id": "yxNvIgrGyVL2" + "id": "0euiUJCfyVL0", + "outputId": "fb991386-ff83-4a03-887a-23632a2924c4" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "30330.0 meter / second 0.0 meter / second -0.0 newton / kilogram -0.005934559038759181 newton / kilogram\n" + "0.0 meter / second 0.0 meter / second 2.3163759958833534 meter / second ** 2 -0.5814103749667217 meter / second ** 2\n" ] } ], "source": [ + "def slope_func(state, t, system):\n", + " x, y, vx, vy = state\n", + " \n", + " unpack(system)\n", + " \n", + " # make velocity\n", + " v = Vector(vx, vy)\n", + " \n", + " # calculate force\n", + " force = effective_force(state, system)\n", + " \n", + " # calculate acceleration\n", + " a = force * (1/m_human)\n", + " \n", + " # cast acceleration to modsimvector\n", + " a = Vector(a[0], a[1])\n", + " \n", + " # return velocity and acceleration\n", + " return vx, vy, a.x, a.y\n", + " \n", "vx, vy, ax, ay = slope_func(init, 0, system)\n", "print(vx, vy, ax, ay)" ] }, { "cell_type": "code", - "execution_count": 153, + "execution_count": null, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "yxNvIgrGyVL2" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 11, "metadata": { "colab": {}, "colab_type": "code", @@ -203,35 +348,35 @@ "def event_func(state, t, system):\n", " x, y, vx, vy = state\n", " position = Vector(x, y)\n", - " return position.mag - system.r_final" + " return position.mag - z.mag" ] }, { "cell_type": "code", - "execution_count": 154, + "execution_count": 12, "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 333 + "height": 34 }, "colab_type": "code", "id": "oDu_ADwk7bMA", - "outputId": "708f4205-baa3-42d5-b2f1-71f5aa3aa126" + "outputId": "0553dbe6-b62f-43c8-8d66-6888c11e88bd" }, "outputs": [ { "data": { "text/html": [ - "148895991691.0 meter" + "-103.10193984596022 meter" ], "text/latex": [ - "$148895991691.0 meter$" + "$-103.10193984596022 meter$" ], "text/plain": [ - "" + "" ] }, - "execution_count": 154, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -242,20 +387,20 @@ }, { "cell_type": "code", - "execution_count": 165, + "execution_count": 13, "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 331 + "height": 396 }, "colab_type": "code", "id": "0PSP5uH6yVL4", - "outputId": "2f274108-86fd-4d0f-db33-9fcd9a1879fd" + "outputId": "29317e43-6c4c-495c-cd39-bfcfce3e9a71" }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -265,31 +410,29 @@ } ], "source": [ - "results, details = run_ode_solver(system, slope_func, method='LSODA')\n", - "results.index /= 60 * 60 * 24\n", - "# results.r *= (0.000621371 / 1000)\n", - "plot(results.x, results.y, 'go-')\n", - "decorate(title='Earth Orbit',\n", + "results, details = run_ode_solver(system, slope_func, events=event_func, method='LSODA')\n", + "plot(results.x, results.y - z.y.magnitude, 'go-')\n", + "decorate(title='Zip-lining from AC to West Hall',\n", " xlabel='X Position (m)',\n", " ylabel='Y Position (m)')" ] }, { "cell_type": "code", - "execution_count": 167, + "execution_count": 14, "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 297 + "height": 396 }, "colab_type": "code", - "id": "ZBi2VbR7yVL_", - "outputId": "348bc2da-d0e9-48af-ebee-8515b7a426e6" + "id": "X6_Zo2pfH35S", + "outputId": "c5100dd3-008d-49e5-ea14-90eab0031bd5" }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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lmVZdXV11tVXX20tXbrUOvLII60f//jHVjgczr7Ht771Leuiiy6yFi9ebJ100knW888/3+XPm06nrc9//vPWypUrLcuyrJqaGuuQQw6xVqxYYR1xxBHWYYcdZq1YscJ69NFHrSOPPNJasmRJNgbLsqxkMmktX77c2rhxY5fvP9T+/IXoT+l02gp/ssaqe/ZX1u4//TJ7a/3g71Y6mejXz6qpqbHmzJljzZkzZ7pV4Pd3KUySKCnv6d3879paEsn0gH+Wx+1kybwJHKQKX4dzxBFHcOaZZ3L99ddz3XXX8dxzz/HUU091O03+j3/8Iw899BDTp0/nuuuu49prr+Whhx7iv//7v3nggQf41a9+xezZs1mxYgUXXHABzz77LG+88QZ///vfefbZZwkGg9xwww088MAD3HLLLdn3ra6u5sEHH+SSSy7h7bff7vS5l156KRMmTOCFF14gGo1yxRVXcNttt/GjH/0IgGeffZb77ruPu+66i1/+8pf88Ic/5Pjjj+80cWH16tU0NjZyyCGHZNtaW1v58MMPeemll3jhhRe45pprOPXUU/nb3/7Gq6++ymWXXcaXvvQlKisrcblcHHfccfz+97/n2muvLfj3LMRwZyUTtH74d2I79l7Od7g8hBYcjX/S/kWMbK9SGeIrGas+qhuU5ASQSKZZ9VFdr193zTXXkE6nueiii7j55pt7rHN11llnMW/ePILBIFdffTWvv/46jY2NPPXUU5x77rnMmzcPj8fDBRdcQHl5OS+//DLl5eXs3r2bp59+mtraWm655Za85PRptm7dynvvvccPfvADQqEQY8aM4dvf/jZPPvkk6bT53S5YsIBjjjkGj8fDF77wBerq6rrczeOtt95iwYIFnRLXN7/5TbxeL8uWLSOVSnHuuefi9Xo59thjSaVS7Ny5t+TMokWLukyiQoxUydY9NL7+RF5ycodGU7X8tJJJTiAJqpPFc8bicQ/Or8XjdrJ4zthev87n83Huueey33778dnPfrbHc/fbb7/s4wkTJmBZFnv27KGhoYHJkyfnnTt58mRqa2s54ogjuOGGG/jzn//M5z73OU466SRefPHFguNraGjA6/UyZsyYvPeOx+M0NDQApgeW4XabjnwmeeWqra3tcqeHqqoqAFwuc+G2vLwcINuTtOx1GwBjx46ltra24PiFGK4syyK6bT1Nrz9B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\n", "text/plain": [ "
" ] @@ -299,57 +442,49 @@ } ], "source": [ - "plot(results.vy, 'ro-')\n", - "decorate(title='Earth Velocity',\n", - " xlabel='Time (days)',\n", - " ylabel='Y Velocity (m/s)')" + "plot(results.y, label='Y position (m)')\n", + "plot(results.x, label='X position (m)')\n", + "decorate(title='Position over Time',\n", + " xlabel='Time (s)',\n", + " ylabel='Position (m)',\n", + " legend=True)" ] }, { "cell_type": "code", - "execution_count": 168, + "execution_count": 15, "metadata": { - "colab": {}, + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, "colab_type": "code", - "id": "Nq0vKaw0yVLn" + "id": "ZBi2VbR7yVL_", + "outputId": "3a74ad01-a797-4d5d-a692-881b32f99fc8" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15.73897673293782 meter / second\n" + ] + } + ], "source": [ - "x_0 = (0 * AU).to_base_units()\n", - "y_0 = (1 * AU).to_base_units()\n", - "\n", - "vx_0 = 0 * m / s\n", - "vy_0 = 0 * m / s\n", - "\n", - "init = State(x=x_0,\n", - " y=y_0,\n", - " vx=vx_0,\n", - " vy=vy_0)" + "v_final = Vector(get_last_value(results.vx) * m / s, get_last_value(results.vy))\n", + "print(v_final.mag)" ] }, { "cell_type": "code", - "execution_count": 169, + "execution_count": 16, "metadata": { "colab": {}, "colab_type": "code", - "id": "2mYVqxxmyVLq" + "id": "66BtABnAlUsR" }, "outputs": [], - "source": [ - "system = System(init=init,\n", - " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", - " m_sun=1.99e30 * kg,\n", - " m_earth=5.972e24 * kg,\n", - " t_end=100e6 * s,\n", - " r_final=695.508e6 * m + 6.371e6 * m)" - ] - }, - { - "cell_type": "code", - "execution_count": 174, - "metadata": {}, - "outputs": [], "source": [ "def event_func(state, t, system):\n", " x, y, vx, vy = state\n", @@ -359,22 +494,27 @@ }, { "cell_type": "code", - "execution_count": 197, + "execution_count": 0, "metadata": { - "colab": {}, + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + }, "colab_type": "code", - "id": "AwVA_CYZ-O_u" + "id": "AwVA_CYZ-O_u", + "outputId": "e243e222-9c74-40a5-d844-add9f3553793" }, "outputs": [ { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" + "ename": "NameError", + "evalue": "ignored", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdetails\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrun_ode_solver\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslope_func\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mevents\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mevent_func\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'RK23'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mresults\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m \u001b[0;34m/=\u001b[0m \u001b[0;36m60\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;36m60\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;36m24\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# results.r *= (0.000621371 / 1000)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'go-'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m decorate(title='Earth Orbit',\n", + "\u001b[0;31mNameError\u001b[0m: name 'system' is not defined" + ] } ], "source": [ @@ -389,7 +529,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -400,7 +540,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -411,7 +551,62 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "Z_Xmr95Vn-FW" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "yDxFQFHqn-JD" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "affGjc8fn-O6" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "xMmJI3C3n-SY" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "2mAh4FOWn-NA" + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -422,7 +617,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -433,46 +628,65 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 34 + "height": 35 }, "colab_type": "code", "id": "Ax8EsdFJypUT", - "outputId": "57f2e86e-b569-47de-bb1d-38e2e28c8d35" + "outputId": "3c3527ca-241d-47f6-f589-f59759770048" }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Configured for ModSimPy. Restarting kernel.\n" + ] + } + ], "source": [ - "# # Imports\n", - "# from IPython.display import clear_output\n", - "# import os\n", - "# import time\n", + "# Imports\n", + "from IPython.display import clear_output\n", + "import os\n", + "import time\n", "\n", - "# # Install Python libraries\n", - "# !pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", + "# Install Python libraries\n", + "!pip3 install pandas seaborn sympy beautifulsoup4 lxml pint scipy==1.1.0 numpy\n", "\n", - "# # Removes code before re-downloading it\n", - "# !rm -rf ./ModSimPy\n", - "# !rm -rf ./modsim.py\n", + "# Removes code before re-downloading it\n", + "!rm -rf ./ModSimPy\n", + "!rm -rf ./modsim.py\n", "\n", - "# # Grabs ModSimPy\n", - "# !git clone https://github.com/AllenDowney/ModSimPy.git\n", - "# !cp \"ModSimPy/code/modsim.py\" .\n", + "# Grabs ModSimPy\n", + "!git clone https://github.com/AllenDowney/ModSimPy.git\n", + "!cp \"ModSimPy/code/modsim.py\" .\n", "\n", - "# # Resets kernel to flush outdated libraries (especially SciPy)\n", - "# clear_output()\n", - "# print(\"Configured for ModSimPy. Restarting kernel.\")\n", - "# time.sleep(1)\n", - "# os._exit(0)" + "# Resets kernel to flush outdated libraries (especially SciPy)\n", + "clear_output()\n", + "print(\"Configured for ModSimPy. Restarting kernel.\")\n", + "time.sleep(1)\n", + "os._exit(0)" ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "0zs_2kVjlcpY" + }, + "outputs": [], + "source": [] } ], "metadata": { "colab": { "collapsed_sections": [], - "name": "orbit_homework.ipynb", + "name": "Project 3.ipynb", "provenance": [], "version": "0.3.2" }, @@ -495,5 +709,5 @@ } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 1 } From 555bbd51303bd2e417b38ef1ee2a2cc4677c0c97 Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Sun, 9 Dec 2018 23:33:14 -0500 Subject: [PATCH 59/61] finishes project 3 --- code/Project 3.ipynb | 1642 +++++++++++++++++++++++++++++++++++------ code/notebook.tex | 1162 +++++++++++++++++++++++++++++ code/output_23_0.png | Bin 0 -> 19258 bytes code/output_25_0.png | Bin 0 -> 23062 bytes code/output_31_10.png | Bin 0 -> 47194 bytes code/output_37_0.png | Bin 0 -> 20470 bytes code/output_46_0.png | Bin 0 -> 18948 bytes code/output_47_0.png | Bin 0 -> 20594 bytes code/output_56_0.png | Bin 0 -> 38636 bytes code/output_57_0.png | Bin 0 -> 35082 bytes code/output_61_1.png | Bin 0 -> 22605 bytes code/output_62_0.png | Bin 0 -> 25505 bytes 12 files changed, 2583 insertions(+), 221 deletions(-) create mode 100644 code/notebook.tex create mode 100644 code/output_23_0.png create mode 100644 code/output_25_0.png create mode 100644 code/output_31_10.png create mode 100644 code/output_37_0.png create mode 100644 code/output_46_0.png create mode 100644 code/output_47_0.png create mode 100644 code/output_56_0.png create mode 100644 code/output_57_0.png create mode 100644 code/output_61_1.png create mode 100644 code/output_62_0.png diff --git a/code/Project 3.ipynb b/code/Project 3.ipynb index 932b5e02..0aed6b15 100644 --- a/code/Project 3.ipynb +++ b/code/Project 3.ipynb @@ -9,12 +9,13 @@ "source": [ "# Why Walk When You Can Zipline?\n", "\n", - "Sam Daitzman and Jocelyn Jimenez" + "## Sam Daitzman and Jocelyn Jimenez\n", + "December, 2018" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -26,7 +27,7 @@ "%matplotlib inline\n", "\n", "# Configure Jupyter to display the assigned value after an assignment\n", - "%config InteractiveShell.ast_node_interactivity='last_expr'\n", + "%config InteractiveShell.ast_node_interactivity='last'\n", "\n", "# import functions from the modsim.py module\n", "from modsim import *" @@ -40,12 +41,22 @@ }, "source": [ "# Introduction\n", - "Although Olin is a very small campus, it is sometimes very tedious having to walk through various curved paths and flights of stairs. We noticed that there was great potential of a zip line from Olin’s Academic Center to West Hall. Initially there were multiple issues that arose. For instance, where will the landing spot be? In the case of our model, we believe it is best if the zip line ends on the corner room in West Hall on the second floor because it gives us the fastest access to most dorms in West Hall. If we were to ask “Which floor in the AC allows us to get faster to our destination?” the answer would be obvious, the 4th floor; but if you zipline at too steep an angle, you are likely to get injured. As a result, we decided to take into consideration the safety of the individual in order to make it a more useful model. Our model asks what the fastest safe zip line starting mount-point would be to get from the AC to West Hall as fast as (safely) possible." + "Although Olin is a very small campus, it is sometimes very tedious having to walk through various curved paths and flights of stairs. We noticed that there was great potential of a zip line from Olin’s Academic Center to West Hall. Initially there were multiple issues that arose. For instance, where will the landing spot be? In the case of our model, we believe it is best if the zip line ends on the corner room in West Hall on the second floor because it gives us the fastest access to most dorms in West Hall. If we were to ask “Which floor in the AC allows us to get faster to our destination?” the answer would be obvious, the 4th floor; but if you zipline at too steep an angle, you are likely to get injured. As a result, we decided to take into consideration the safety of the individual in order to make it a more useful model. Our model asks what the fastest safe zip line starting mount-point would be to get from the AC to West Hall as fast as (safely) possible. Stick around to find out where to anchor a zip-line in the Academic Center." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "yZ7TK-tEZvhp" + }, + "source": [ + "# Code Setup" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -58,13 +69,22 @@ "s = UNITS.second\n", "N = UNITS.newton\n", "kg = UNITS.kilogram\n", - "m = UNITS.meter\n", - "AU = UNITS.astronomical_unit;" + "m = UNITS.meter" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "tPBOlVPj-xyi" + }, + "source": [ + "To prove the point that is is a good idea for Olin to have a zip line, we modeled how the change in position will affect the velocity of the individual. We considered important initial/constant variables like the starting position, where (0,0) is at the tallest part of the Academic Center. For the following model, the starting velocity of the person in the x and y dimensions is 0 m/s, which can be seen below. " ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -72,9 +92,11 @@ }, "outputs": [], "source": [ + "#Starting position on the x and y axis\n", "x_0 = (0 * m)\n", "y_0 = (0 * m)\n", "\n", + "#Starting velocity in the x and y dimension\n", "vx_0 = 0 * m / s\n", "vy_0 = 0 * m / s\n", "\n", @@ -84,9 +106,19 @@ " vy=vy_0)" ] }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "bihtyQY7FuEW" + }, + "source": [ + "Other constants include the mass, density, and area of the individual, gravity, drag force, the height of the West Hall window, the maximum landing speed and the end time. These constants are defined as the parameters of the model." + ] + }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -94,59 +126,174 @@ }, "outputs": [], "source": [ - "# TODO: make this a params and a make_system()\n", - "# def make_system(params):\n", - "# \"\"\"Make a system object.\n", - " \n", - "# params: Params object with angle, velocity, x, y,\n", - "# diameter, duration, g, mass, rho, and C_d\n", - " \n", - "# returns: System object\n", - "# \"\"\"\n", - "# unpack(params)\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", - "# return System(params, init=init, area=area)\n", - "\n", - "\n", - "system = System(init=init,\n", - " G=6.674e-11 * N / kg ** 2 * m ** 2,\n", - " m_sun=1.99e30 * kg,\n", + "params = Params(init=init,\n", + " \n", + " # Mass of the individual ziplining\n", " m_human=70 * kg,\n", + " \n", + " #Gravity\n", " grav = Vector(0 * m / s ** 2, -9.81),\n", + " \n", + " #Mass Density of the Fluid\n", " rho = 1.275 * kg / m ** 3, \n", + " \n", + " #Reference Area of individual\n", " area = 0.7 * m ** 2, \n", - " cd = 1.2, # UPDATE THIS \n", + " \n", + " #Drag Coefficent \n", + " cd = 1.2,\n", + " \n", + " #End Time\n", " t_end=100e6 * s,\n", - " z = Vector(100 * m, -25.1)\n", - ")" + " \n", + " #Height of West Hall Window in meters\n", + " WH_window_abs_height = 59.3,\n", + " \n", + " #Maximum Landing Speed\n", + " max_landing_speed = 12 * m / s\n", + ")\n", + "\n", + "#Creates a system containing constants\n", + "def make_system(params, zipline):\n", + " unpack(params)\n", + " \n", + " system = System(params, z=zipline)\n", + " \n", + " return system" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 0, "metadata": { - "colab": {}, + "colab": { + "base_uri": "https://localhost:8080/", + "height": 359 + }, "colab_type": "code", - "id": "im99NKd9zS1y" + "id": "im99NKd9zS1y", + "outputId": "ed0be2ec-2e06-4164-fa98-66e7854719fe" }, - "outputs": [], - "source": [] + "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", + "
values
initx 0 meter\n", + "y 0 me...
m_human70 kilogram
grav[0.0 meter / second ** 2, -9.81 meter / second...
rho1.275 kilogram / meter ** 3
area0.7 meter ** 2
cd1.2
t_end100000000.0 second
WH_window_abs_height59.3
max_landing_speed12.0 meter / second
z[100.0 meter, -25.1 meter]
\n", + "
" + ], + "text/plain": [ + "init x 0 meter\n", + "y 0 me...\n", + "m_human 70 kilogram\n", + "grav [0.0 meter / second ** 2, -9.81 meter / second...\n", + "rho 1.275 kilogram / meter ** 3\n", + "area 0.7 meter ** 2\n", + "cd 1.2\n", + "t_end 100000000.0 second\n", + "WH_window_abs_height 59.3\n", + "max_landing_speed 12.0 meter / second\n", + "z [100.0 meter, -25.1 meter]\n", + "dtype: object" + ] + }, + "execution_count": 5, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "make_system(params, Vector(100 * m, -25.1))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "UkMWPRa9Z0Xl" + }, + "source": [ + "# Force Functions" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "FZT9lm6XG0Cr" + }, + "source": [ + "We decided to calculate the different forces that might affect the zip-liner by including forces like gravity, drag, net and effective force. The cells below demonstrate functions and equations that contribute to the final velocity of the individual. We calculate the force of gravity pulling the zipliner downward and the drag force resisting their motion, and their sum is the net force. Then we calculate the effective force, which is the component of the force in line with the zip-line." + ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -160,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 0, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -168,44 +315,35 @@ }, "colab_type": "code", "id": "ntH51n1CunMT", - "outputId": "dc13f397-15dd-4e5b-9850-6252df81f495" + "outputId": "70d8822b-d431-43c2-c460-71e367881d98" }, "outputs": [ { "data": { "text/html": [ - "[ 0. -981.] kilogram meter/second2" + "\\[\\begin{pmatrix}0.0 & -981.0\\end{pmatrix} kilogram meter/second2\\]" ], "text/latex": [ - "$[ 0. -981.] \\frac{kilogram \\cdot meter}{second^{2}}$" + "$\\begin{pmatrix}0.0 & -981.0\\end{pmatrix}\\ \\frac{\\mathrm{kilogram} \\cdot \\mathrm{meter}}{\\mathrm{second}^{2}}$" ], "text/plain": [ "" ] }, - "execution_count": 6, - "metadata": {}, + "execution_count": 7, + "metadata": { + "tags": [] + }, "output_type": "execute_result" } ], "source": [ - "earth_grav(100*kg, system.grav)" + "earth_grav(100*kg, make_system(params, Vector(100 * m, -25.1)).grav)" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "7U1oJPTqt8EC" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 7, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -214,14 +352,20 @@ "outputs": [], "source": [ "def drag_force(rho, v, area, cd):\n", + " \n", + " #Direction\n", " direction= -v.hat()\n", + " \n", + " #Drag Equation\n", " drag = (1/2) * rho * v.mag**2 *area * cd\n", + " \n", + " #Drag as a Vector\n", " return direction * drag" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 0, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -229,23 +373,25 @@ }, "colab_type": "code", "id": "HzMqrMuYrW3c", - "outputId": "5b54d562-1f45-471f-c500-92afe4e2065e" + "outputId": "0589a094-c9bf-4f0c-8df6-ad0d4d1c9c27" }, "outputs": [ { "data": { "text/html": [ - "[-1200. -1600.] kilogram meter/second2" + "\\[\\begin{pmatrix}-1200.0 & -1600.0\\end{pmatrix} kilogram meter/second2\\]" ], "text/latex": [ - "$[-1200. -1600.] \\frac{kilogram \\cdot meter}{second^{2}}$" + "$\\begin{pmatrix}-1200.0 & -1600.0\\end{pmatrix}\\ \\frac{\\mathrm{kilogram} \\cdot \\mathrm{meter}}{\\mathrm{second}^{2}}$" ], "text/plain": [ "" ] }, - "execution_count": 8, - "metadata": {}, + "execution_count": 9, + "metadata": { + "tags": [] + }, "output_type": "execute_result" } ], @@ -255,7 +401,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -268,19 +414,34 @@ " x, y, vx, vy = state\n", " unpack(system)\n", " \n", + " #Force of Gravity\n", " grav_f = earth_grav(m_human, grav)\n", + " \n", + " #Force of Drag\n", " drag_f = drag_force(rho, Vector(vx, vy), area, cd)\n", " \n", + " #Net Force\n", " net_force = grav_f + drag_f\n", " \n", + " #Effective Force\n", " effective_force = net_force.proj(z.hat())\n", "\n", " return effective_force" ] }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "nm3g-_eMZ8vO" + }, + "source": [ + "# Simulation Setup" + ] + }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 0, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -288,7 +449,7 @@ }, "colab_type": "code", "id": "0euiUJCfyVL0", - "outputId": "fb991386-ff83-4a03-887a-23632a2924c4" + "outputId": "7efdec86-969d-449d-e205-c53fd24955c5" }, "outputs": [ { @@ -320,24 +481,13 @@ " # return velocity and acceleration\n", " return vx, vy, a.x, a.y\n", " \n", - "vx, vy, ax, ay = slope_func(init, 0, system)\n", + "vx, vy, ax, ay = slope_func(init, 0, make_system(params, Vector(100 * m, -25.1)))\n", "print(vx, vy, ax, ay)" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "yxNvIgrGyVL2" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 11, + "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", @@ -353,7 +503,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 0, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -361,7 +511,7 @@ }, "colab_type": "code", "id": "oDu_ADwk7bMA", - "outputId": "0553dbe6-b62f-43c8-8d66-6888c11e88bd" + "outputId": "e201367c-f392-4f5f-c474-f06e2bfcf00c" }, "outputs": [ { @@ -370,24 +520,46 @@ "-103.10193984596022 meter" ], "text/latex": [ - "$-103.10193984596022 meter$" + "$-103.10193984596022\\ \\mathrm{meter}$" ], "text/plain": [ "" ] }, - "execution_count": 12, - "metadata": {}, + "execution_count": 13, + "metadata": { + "tags": [] + }, "output_type": "execute_result" } ], "source": [ - "event_func(init, 0, system)" + "event_func(init, 0, make_system(params, Vector(100 * m, -25.1)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "jD8-QDeAZ4HS" + }, + "source": [ + "# Simulation" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "rDYLM5fGNgSL" + }, + "source": [ + "This simulation shows the zip-liner descending from the AC to West Hall from a particular starting height." ] }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 0, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -395,31 +567,43 @@ }, "colab_type": "code", "id": "0PSP5uH6yVL4", - "outputId": "29317e43-6c4c-495c-cd39-bfcfce3e9a71" + "outputId": "5866e6e0-e4e5-4301-ad24-dd38c60cd0a8" }, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "
" + "" ] }, - "metadata": {}, + "metadata": { + "tags": [] + }, "output_type": "display_data" } ], "source": [ - "results, details = run_ode_solver(system, slope_func, events=event_func, method='LSODA')\n", + "results, details = run_ode_solver(make_system(params, Vector(100 * m, -25.1)), slope_func, events=event_func, method='LSODA')\n", "plot(results.x, results.y - z.y.magnitude, 'go-')\n", "decorate(title='Zip-lining from AC to West Hall',\n", " xlabel='X Position (m)',\n", " ylabel='Y Position (m)')" ] }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "k0eV_kerNmdD" + }, + "source": [ + "This plot shows the position over time. Each point along the line is a different moment in time." + ] + }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 0, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -427,17 +611,19 @@ }, "colab_type": "code", "id": "X6_Zo2pfH35S", - "outputId": "c5100dd3-008d-49e5-ea14-90eab0031bd5" + "outputId": "6429f567-646c-4a8f-c391-bf4a0ab301b6" }, "outputs": [ { "data": { - "image/png": "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lmVZdXV11tVXX20tXbrUOvLII60f//jHVjgczr7Ht771Leuiiy6yFi9ebJ100knW888/3+XPm06nrc9//vPWypUrLcuyrJqaGuuQQw6xVqxYYR1xxBHWYYcdZq1YscJ69NFHrSOPPNJasmRJNgbLsqxkMmktX77c2rhxY5fvP9T+/IXoT+l02gp/ssaqe/ZX1u4//TJ7a/3g71Y6mejXz6qpqbHmzJljzZkzZ7pV4Pd3KUySKCnv6d3879paEsn0gH+Wx+1kybwJHKQKX4dzxBFHcOaZZ3L99ddz3XXX8dxzz/HUU091O03+j3/8Iw899BDTp0/nuuuu49prr+Whhx7iv//7v3nggQf41a9+xezZs1mxYgUXXHABzz77LG+88QZ///vfefbZZwkGg9xwww088MAD3HLLLdn3ra6u5sEHH+SSSy7h7bff7vS5l156KRMmTOCFF14gGo1yxRVXcNttt/GjH/0IgGeffZb77ruPu+66i1/+8pf88Ic/5Pjjj+80cWH16tU0NjZyyCGHZNtaW1v58MMPeemll3jhhRe45pprOPXUU/nb3/7Gq6++ymWXXcaXvvQlKisrcblcHHfccfz+97/n2muvLfj3LMRwZyUTtH74d2I79l7Od7g8hBYcjX/S/kWMbK9SGeIrGas+qhuU5ASQSKZZ9VFdr193zTXXkE6nueiii7j55pt7rHN11llnMW/ePILBIFdffTWvv/46jY2NPPXUU5x77rnMmzcPj8fDBRdcQHl5OS+//DLl5eXs3r2bp59+mtraWm655Za85PRptm7dynvvvccPfvADQqEQY8aM4dvf/jZPPvkk6bT53S5YsIBjjjkGj8fDF77wBerq6rrczeOtt95iwYIFnRLXN7/5TbxeL8uWLSOVSnHuuefi9Xo59thjSaVS7Ny5t+TMokWLukyiQoxUydY9NL7+RF5ycodGU7X8tJJJTiAJqpPFc8bicQ/Or8XjdrJ4zthev87n83Huueey33778dnPfrbHc/fbb7/s4wkTJmBZFnv27KGhoYHJkyfnnTt58mRqa2s54ogjuOGGG/jzn//M5z73OU466SRefPHFguNraGjA6/UyZsyYvPeOx+M0NDQApgeW4XabjnwmeeWqra3tcqeHqqoqAFwuc+G2vLwcINuTtOx1GwBjx46ltra24PiFGK4syyK6bT1Nrz9B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\n", + "image/png": "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\n", "text/plain": [ - "
" + "" ] }, - "metadata": {}, + "metadata": { + "tags": [] + }, "output_type": "display_data" } ], @@ -450,9 +636,19 @@ " legend=True)" ] }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "xdiiE8DdNykd" + }, + "source": [ + "These lines represent the change in X and Y position over time." + ] + }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 0, "metadata": { "colab": { "base_uri": "https://localhost:8080/", @@ -460,7 +656,7 @@ }, "colab_type": "code", "id": "ZBi2VbR7yVL_", - "outputId": "3a74ad01-a797-4d5d-a692-881b32f99fc8" + "outputId": "d9213b34-f445-4026-af41-ac4e17a45781" }, "outputs": [ { @@ -477,19 +673,23 @@ ] }, { - "cell_type": "code", - "execution_count": 16, + "cell_type": "markdown", "metadata": { - "colab": {}, - "colab_type": "code", - "id": "66BtABnAlUsR" + "colab_type": "text", + "id": "fhuHLvXeN3Ui" }, - "outputs": [], "source": [ - "def event_func(state, t, system):\n", - " x, y, vx, vy = state\n", - " position = Vector(x, y)\n", - " return position.mag" + "The cell above shows how we obtain the arrival velocity." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "xpLPAE7GaJaJ" + }, + "source": [ + "# Sweeping Start Height" ] }, { @@ -498,133 +698,1133 @@ "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 235 + "height": 51 }, "colab_type": "code", "id": "AwVA_CYZ-O_u", - "outputId": "e243e222-9c74-40a5-d844-add9f3553793" + "outputId": "153618b3-81e5-4ed6-9d0f-b81619f446ec" }, "outputs": [ { - "ename": "NameError", - "evalue": "ignored", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mresults\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdetails\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrun_ode_solver\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msystem\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mslope_func\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mevents\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mevent_func\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'RK23'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mresults\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m \u001b[0;34m/=\u001b[0m \u001b[0;36m60\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;36m60\u001b[0m \u001b[0;34m*\u001b[0m \u001b[0;36m24\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# results.r *= (0.000621371 / 1000)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresults\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'go-'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m decorate(title='Earth Orbit',\n", - "\u001b[0;31mNameError\u001b[0m: name 'system' is not defined" + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0.7 4.03333333 7.36666667 10.7 14.03333333 17.36666667\n", + " 20.7 24.03333333 27.36666667 30.7 ]\n" ] } ], "source": [ - "results, details = run_ode_solver(system, slope_func, events=event_func, method='RK23')\n", - "results.index /= 60 * 60 * 24\n", - "# results.r *= (0.000621371 / 1000)\n", - "plot(results.y, 'go-')\n", - "decorate(title='Earth Orbit',\n", - " xlabel='Time (days)',\n", - " ylabel='Y Position (m)')" + "thresholds = linspace(60, 90, 10)\n", + "for i,e in enumerate(thresholds):\n", + " thresholds[i] -= params.WH_window_abs_height\n", + "print(thresholds)" ] }, { "cell_type": "code", "execution_count": 0, "metadata": { - "colab": {}, - "colab_type": "code", - "id": "wNRcyudo-PDq" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "uftDQ7GI-PJG" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "Z_Xmr95Vn-FW" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "yDxFQFHqn-JD" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "affGjc8fn-O6" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "xMmJI3C3n-SY" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, - "colab_type": "code", - "id": "2mAh4FOWn-NA" - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 0, - "metadata": { - "colab": {}, + "colab": { + "base_uri": "https://localhost:8080/", + "height": 433 + }, "colab_type": "code", - "id": "l4LgemZu-PRE" + "id": "wNRcyudo-PDq", + "outputId": "aa7fccaf-f11c-44eb-f4b9-1fd582063a97" }, - "outputs": [], - "source": [] - }, - { + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 18, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "for y in thresholds:\n", + " system = make_system(params, Vector(100 * m, -y))\n", + " results, details = run_ode_solver(system, slope_func, events=event_func, method='LSODA')\n", + " plot(results.x, results.y - z.y.magnitude + params.WH_window_abs_height, 'ro-')\n", + " decorate(title='Zip-lining from AC to West Hall (Different Starting Points)',\n", + " xlabel='X Position (m)',\n", + " ylabel='Y Position (m)')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "a1bqJOaBN8N_" + }, + "source": [ + "The plot above shows the process of zip-lining from various starting heights. We obtained the range of height differences using Olin College's blueprints, by comparing the absolute heights of the top of the AC, bottom of the AC, and our destination room in West Hall." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "XY1QeMhNcMZJ" + }, + "source": [ + "# Finding End Velocities" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 68 + }, + "colab_type": "code", + "id": "OMuzJ7xhcRgU", + "outputId": "3e76df37-0f94-4d0b-b26e-257de35e008e" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[60. 62.14285714 64.28571429 66.42857143 68.57142857 70.71428571\n", + " 72.85714286 75. 77.14285714 79.28571429 81.42857143 83.57142857\n", + " 85.71428571 87.85714286 90. ]\n" + ] + } + ], + "source": [ + "thresholds = linspace(60, 90, 15)\n", + "print(thresholds)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "u2CGRQsuA6_w" + }, + "outputs": [], + "source": [ + "def landing_speed(startHeight, params):\n", + " height_y = startHeight - params.WH_window_abs_height\n", + " system = make_system(params, Vector(100 * m, -height_y))\n", + " results, details = run_ode_solver(system, slope_func, events=event_func, method='LSODA')\n", + " v_final = Vector(get_last_value(results.vx) * m / s, get_last_value(results.vy))\n", + " return v_final.mag" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "cFUzfSBtB7o1", + "outputId": "7b051141-0950-4f70-f700-70a8d271d129" + }, + "outputs": [ + { + "data": { + "text/html": [ + "2.651921049001805 meter/second" + ], + "text/latex": [ + "$2.651921049001805\\ \\frac{\\mathrm{meter}}{\\mathrm{second}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "landing_speed(60, params)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 396 + }, + "colab_type": "code", + "id": "tQNjLw1qcRgh", + "outputId": "91e502a8-ae13-4fea-bf7d-f20396b909a2" + }, + "outputs": [ + { + "data": { + "image/png": "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\nDGAuGdWoUYOAgADsdjvTp0/nmWeeITAwEB8fH3r37k1QUFD6TMr58+cpUqQIBQoUoFixYrz//vuM\nHj36pr6XNm3aZFirNXXq1PTzhQoVIjo6mv79++Pl5UWFChVo3rx5+gyiiKdTeBFxIykpiX/+8590\n7949/XLK9Vz9QWqz2fD393e5fHMzAgMDXY4LFy6c5aLPggULUqFChUyfe/LkSSpXrpx+zsvLi3r1\n6t1ULT4+Pi6vf/jwYWrUqOHynKpVq3Lo0KH043LlyuHt7Q2YD0wgyxozM3XqVNq1a0eJEiUA6Nq1\nKydOnMiwpiQ1NfWmvpfM3Mj3c7VChQrRrFkzli9fDsDKlSu57777AAgNDU2vccWKFemzLqdOneLC\nhQu8/PLLLsFi9+7dHDt2DDAzL59//jnh4eG8/fbb1110nJXo6OgM67X69Onj8pxff/2Vhx56iIYN\nG1KvXj1mzJhBUlLSTb+XiBUUXkTceO+997Db7bz22ms39PxrP0gdDgc2m43Y2FiXD6zY2Fi3r5X2\nwX8jrvdcu92Oj4+Py5iX183987/272f1QWez2a77Hlefv57Tp0/z66+/smTJEoKDgwkODqZ9+/ak\npKTwww8/AFCmTBlKlCjB3r17b/TbyNKNfD/XatOmDStXriQhIYH169cTGhoKmPCyYsUKLl68yObN\nm9PDS1qAGzt2rEuw2Lp1K//73/8AePjhh4mOjub555/n9OnTPPXUU4waNeq2v7+rrVmzhldffZUB\nAwYQExPDli1b6N279x19D5HspPAich0LFy5k1qxZjB49+obvFDl8+HD6Y4fDwdGjR6lUqRIhISEu\nH1ghISHZVXYGZcqUcVl343A4MtzOe7OqVKnC7t27Xcb27NlDtWrVbut108yYMYOSJUsyd+5cZs+e\nnf713nvvsWTJEk6dOoXNZiM8PJxJkyaRkJCQ4TU++uij9FDgzq18P23btuX48ePMmjWLcuXKpc+6\nNWvWjMOHDzNv3jwKFy5M48aNAShevDilS5dm586dLq9z5MgRl0thfn5+PPjgg3z44YcMGzaMyZMn\n39D3cKM2b95MpUqV6NWrV/rv9a32KhKxgsKLSBaOHj3K0KFDef3117n77rtv+O+tWLGCdevWkZSU\nxOTJkzl37hwdOnTIxkrda968OWvXriUmJoakpCQ+//xzLl68eFuv2bNnTxYuXMiqVatISUlh1apV\nLFy4MNMFsjfL4XDwww8/0LNnT6pVq0bVqlXTv9LWzKQt3H3ppZfw8vLi8ccfZ9u2bTgcDuLj4/nw\nww/55ptv6NatW6bvUahQIRISEjh69CiXL1/moYceYvPmzcyZM4eUlBS2bt3K9OnTr/v9BAQEEBQU\nxPjx49NnXcCsVapXr176+NWLifv27cvYsWPZunUrqampLF26lK5du7J9+3b+/PNPWrduzYIFC0hN\nTSUhIYGdO3emB6hra75VlStX5tSpU/zxxx+cO3eO//f//h8Oh4OTJ0/ekUtwItlN4UUkC7NmzeLc\nuXMMHz4802Z1s2fPzvTv9ezZk3HjxtG0aVO++OILIiMjqVixYg5X76p79+5ERETw3HPP0bZtW2w2\nG61atbrhSziZCQsL47///S8jRowgJCSE9957jxEjRtCpU6fbrnf16tUcPnw400sZ3t7e9OzZkx9/\n/BGHw0Hp0qWZPn06jRo14m9/+xsNGjSgR48eHDx4kKlTp9K0adNM36NFixbUqFGDsLAwZs6cSf36\n9YmMjGT8+PGEhITwr3/9i2eeeYYBAwZct9Y2bdpw6NAhl/AC5tLRgQMH0i8ZpXnmmWfo2rUrzz77\nLI0bN2b06NGMHDmSOnXqULFiRUaNGsUnn3ySvsD60KFD6ZeNrq35VnXu3JmwsDAefvhhunXrRtmy\nZXnrrbc4d+4cjzzyyC2/rkhOsTnS5ipF5La1b9+evn378tRTT1ldSgaJiYkul74GDhxItWrVPKKD\nrojIzdDMi0g+sHHjRho1asTq1aux2+2sWLGCtWvX0q5dO6tLExG5aVl32hKRPCM4OJjXX3+dN954\ng5MnT1KhQgVee+21DJc0RERygxy5bJScnExkZCQTJkwgOjqaihUrkpqayvvvv8+yZcvw8vKiYcOG\nDB06lKJFi2Z3OSIiIpKL5chlo8GDB1OkSBGXsRkzZrB9+3Z+/vln5s2bR1JSklpTi4iIiFs5ctlo\n8ODBBAcH8+mnn6aP7d69m0aNGuHr6wtA06ZNs9zuPk1CQgJbt2516dopIiIieUtqaionT56kbt26\n6c0dr5Yj4SU4ODjDWPPmzRkzZgyDBg2iUKFCLF26lFatWl33dbZu3Urfvn2zq0wRERHxIN9//z1N\nmjTJMG7Zgt2OHTvy66+/0rJlS3x8fLj33nvdtqcuV64cYL4Zq/tmiIiISPb4888/6du3b/rn/rUs\nCy+TJk3i9OnTxMbG4uPjw/Dhw3n33Xev23Mi7VJRxYoVXTaZExERkbwnqyUilvV5WblyJZ06daJw\n4cIUKFCA8PDwG9qoTkRERPI3y8LLXXfdxbJly0hJSQHgt99+IygoyKpyREREJJfI9stG8fHx9OvX\nL/04IiICb29vJk6cyAcffECXLl3w8vKiWrVqDB8+PLvLERERkVwu28NL2bJliYqKyvRcZGRkdr+9\niIiI5DHa20hERERyFYUXERERyVUUXkRERCRXUXgRERGRXMWyJnUiIiKSS8XGwvz5EBcHlSpBly4Q\nEpJjb6/wIiIiIjcuNha++gouXIACBcBuh7FjzbkcCjAKLyIiIuKe3Q67d8P775s/U1LAZoP69aFE\nCYiKUngRERERizkcsH+/mW1Zvx7On4cdO8x42vnkZPP42LEcK0vhRURERJwcDjh82ASWdevg9GnX\n80WKwKVLUKiQWe9SpowZ9/fPsRIVXkRERMQsvo2NNV8nTmT+HD8/ePhh2LIFihc3l43ShIfnTJ0o\nvIiIiORf8fHOGZYjRzJ/TtGi0KiRWc8SFAReXubvREWZS0X+/ia46G4jERERyRZnz5qwEhsLBw5k\n/pxChaBhQxNI7rkHvL1dz4eE5GhYuZbCi4iISF534QJs3GgCy549zgW3V/PxMXcOhYRA3brm2EMp\nvIiIiORFV66YwLJunblDyG7P+Bxvb6hTB5o0gQYNzIxLLqDwIiIiklckJprFtLGxsHWr6cVyLZsN\natc2MywNG5o1LbmMwouIiEhucm1r/k6dzO3LsbHw+++QlJT537v7bhNYGjc2dw3lYgovIiIiuUVs\nrGnF73CYhbc7d8L06VCjBpQvn/H5VaqYwNKkCZQunfP1ZhOFFxERkdzA4YApU2DfPjh50nWG5cgR\nZ3ipVMkZWCpUsKbWbKbwIiIi4sni4yEmxnxFRWV+p1BqqnNnZ39/1+ZxeZDCi4iIiKe5dMnsJbRm\njZlpSZPWmh+gYEEoV8581a4NPXpYU6sFFF5EREQ8QXKyuVMoJsb8mZqa8Tk1asDx4+YSUYkSzhmW\nLl1ytlaLKbyIiIhYxeGAvXvNDMv69aY3y7W8vEwvlubNTRO533+3tDW/J1B4ERERyWlxcc51LNfu\n2pzmrrugWTOz8LZ4cee4xa35PYHCi4iISE44fx7WrjWB5dChzJ9TtqyZYWnaNM/eKXQnKLyIiIhk\nl8RE2LTJBJbt2zO/U6hoUTO70qwZVK+e5+8UuhMUXkRERO4ku93sJRQTY4JLYmLG5xQoYNavNG9u\n1rMU0MfxzdBPS0RE5HY5HHD4sAksa9eaS0SZqVnTzLA0amRue5ZbovAiIiJyo67dV6hFC7P5YUyM\nGctMpUomsDRtCmXK5Gy9eZTCi4iIyI1I21coJcV0vd240bTrr107475Cfn4mrDRvDpUrax3LHZYj\n4SU5OZnIyEgmTJhAdHQ0FStWBGDdunW8+eabJCQk4O/vz//93/9RQaurRUTE09jtMHGiWcty6pQ5\nTpO2r5CvLwQHm8BSu7bpzyLZIkfCy+DBg6lXr57L2MWLF3nppZf45JNPaNiwIV999RXz5s3jySef\nzImSRERE3DtxAlatMk3klizJeLeQzWba9D/5JDRsaB5Ltsux8BIcHMynn36aPrZo0SLq1KlDw4YN\nAXjmmWdyohQREZHrS0gw3W5XrTLdb9Ncva9QsWKmD0u5cub25mbNrKk1n8qR8BIcHJxhbNeuXZQq\nVYoXXniBvXv3cu+99/K///2P0qVL50RJIiIiTg4H7NkDK1fChg2QlJTxObVqmX2FKlY0vVnShIfn\nXJ0CWLhg9/z586xYsYLvv/8ef39/hg4dyrvvvsuoUaOsKklERPKbU6dg9WrzFR+f8byXF9SrB6Gh\nULeuWaSbz/cV8gSWhZfixYvTokULqlatCkD//v0ZNGiQVeWIiEh+kZRkQsiqVbBrV+Zdb/39TWBp\n1szcOZRG+wp5BMvCi7+/PwcOHEg/9vb2xtvb26pyREQkL3M44I8/TGCJjTXrWq5VpIgJJqGhULWq\nbm/2YJaFl44dO/LRRx+xa9cuatWqxbRp02jRooVV5YiISF509qxpILdqFfz5Z8bzNhvce68JLA0a\ngI9PztcoNy3bw0t8fDz9+vVLP46IiMDb25uJEyfy3nvvMWTIEGw2G0FBQbz99tvZXY6IiOR1KSmw\nebNZfLttW+aXhcqXN4GleXMoVSrna5Tbku3hpWzZskRFRWV6rnPnznTu3Dm7SxARkfzg8GETWNau\ndd7SfLWCBc3uzaGhcPfduiyUi2l7ABERyb0uXDBhZdUq0+k2MzVrQsuWpvutmsjlCQovIiKSO6Rt\ninjsmLmF2c/P7N6cmprxuaVLmxmWFi2gbNmcr1WylcKLiIh4vthYGDPGLLo9ftzZRO7qTRF9fKBR\nIxNaatXSZaE8TOFFREQ8V0qK6ckydCgcOpTx/JEjZtFtaKhZz1K4cM7XKDlO4UVERDzPn3/C8uWm\n8+2lS2Yx7tV8fc3eQpUqwX//a02NYhmFFxER8QzJyWZfoeXLzT5DVytSBC5fNmtZKlUytzfbbFC5\nsjW1iqUUXkRExFpxcSawrFmT+S3OZcpAv36waVPGu4W0KWK+pPAiIiI5LzkZ1q83oWXv3oznvbxM\nx9tWreCee8xxbKw2RRRA4UVERHLSsWPOWZbLlzOeL1PGBJbQUChRwvWcNkWUvyi8iIhI9kpKcs6y\n7NuX8byXFzRs6Jxl0S3O4obCi4iIZI+jR52zLFeuZDxftqxzlsXPL+frk1xL4UVERO6cxETnLMv+\n/RnPe3s7Z1lq19Ysi9wShRcREbl9R444Z1kSEjKeL18e7rvPzLIUL57z9UmeovAiIiK3JjER1q0z\noeWPPzKe9/Y2myG2aqV2/XJHKbyIiIh7aZsixsWZhnElS0J8fNazLK1amU0RNcsi2UDhRUREri82\nFr78Ek6eNOHlwgUzfvWmiAUKmFmW1q0hKEizLJKtFF5ERCRrJ07AqFGwfbvZJPFqR45AvXomsDRv\nDsWKWVOj5DsKLyIi4srhgG3bYOlS2LoVtmwxY2m8vKBcOdPl9q23NMsiOU7hRUREjEuXYNUq+O03\ns54lTZEi5lzhwiawlC8PPj5mU0QFF7GAwouISH53+LAJLDExZs+hq9ls0L49HDhgFuleHVa0KaJY\nROFFRCQ/SkmBjRvNpaHMWvYXKWL6srRpYzrhalNE8SAKLyIi+cnZs6Yvy7JlcP58xvOBgdCunQkm\nvr7OcW2KKB5E4UVEJK9zOGDvXnNpaMMGsNtdz3t5QePGJrRUr651LOLxFF5ERPKqxERYu9aEliNH\nMp4vWdI0k2vVCkqUyPHyRG6VwouISF5z4gRER5s7hy5fzng+KMjMsjRsaFr4i+QyCi8iInnBtb1Z\nruXraxrJtW0LAQE5Xp7InaTwIiKSm2XVmyVN+fImsLRoYe4gEskDFF5ERHIjd71Z6tY1l4buvVcL\ncCXPyZHwkpycTGRkJBMmTCA6OpqKFSu6nB85ciQLFixgyZIlOVGOiEjukraj89Gj5tjXF5KSMj7v\n2t4sInlUjoSXwYMHU69evUzP7dy5k0WLFuVEGSIiuU9sLHz2mdnNOS7OGVqu3tE5q94sInmUV068\nyeDBg3nxxRczjNvtdt58801eeumlnChDRCR3OXYM3nvP3O588KDrbMvRoyasvPwyvP46tGyp4CL5\nRo7MvAQHB2c6PnXqVGrWrEmDBg1yogwREc/ncMDOnfDrr+buoZ07XXd09vWFSpXMHUODBllXp4iF\nLFuwe/LkSSZOnMgPP/zAhQsXrCpDRMQzpKSYGZZffzUzLmnSdnQuXtzs4ly2rFmAW7mydbWKWMyy\n8PLee+/xwgsvUKJECYUXEcm/Ll0yDeWWLs2415DNBh07mktGxYtrR2eRv1gWXpYuXUpMTAwjR44k\nNTWVc+fO0bJlS5YuXYqvrtuKSF53/DgsWgSrV2e81blgQQgNhQ4doFw57egscg3LwsvGjRvTHx85\ncoT+/fvrVmkRydscDtizx1wa2rw54/mSJaF9e7PX0NUN5bSjs4iLbA8v8fHx9OvXL/04IiICb29v\nJk6cSIUKFbL77UVErJeaCuvXm9By6FDG84GB0KmT2dm5gHqHiriT7f9KypYtS1RU1HWfU7lyZc26\niEjec/kyLF8OS5bA2bMZz9evb0JLUJC64IrcBEV8EZE7LT4eFi+GlSshMdH1nI+P2WeoY0fQ7LPI\nLVF4ERG5U/bvN5eGNm507c0C5m6hdu1M6/5ixaypTySPUHgREbkddjts2mRCy/79Gc/7+5tZlqZN\nzayLiNw2hRcRkVuRkGAuCy1eDKdOZTx/771mPcs992g9i8gdpvAiInIzzpwxC3CXLTMB5moFCpgZ\nlk6dzIyLiGQLhRcRkeuJjYX582H3brhwwQSUsmVdn1O0qFnL0q4d+PlZU6dIPqLwIiKSlbVrYdQo\n05vl3DnneO3aUL68uVuoY0do3lw7OovkIIUXEZFrpS3CffVV100S0yQkwAsvQL16Ws8iYgGFFxGR\nNKmpEBNj9hE6fhzi4pznbDYz2xIQYC4N1a9vXZ0i+ZzCi4hIcrK5c2jBAjh92jlepAhcuQKVKkHl\nymbDRNBiXBGLKbyISP6VkADR0aZHy4ULrucKFYJHH4UdOzL2ZwkPz7kaRSQDhRcRyX8uXjT9WX77\nzew/dLXixaFDB2jbFgoXNncbRUWZtS/+/ia4aIdnEUspvIhI/nH2rJllWbYMkpJcz5UqBWFh0LKl\n651DISEKKyIeRuFFRPK+Eydg4UJYtcosyr1a+fJmNqVZM9PDRUQ8nv6likjedfSoueQTG5txo8TK\nlaFLF2jUCLy8rKlPRG7JDYWX1NRUduzYQXx8PABly5blnnvuwdvbO1uLExG5JX/8Ybri/v57xnN3\n3w333w916qhHi0gudd3wcvz4cT755BPmz5/P5cuXKVGiBADnzp2jSJEi3H///bzwwgtUqFAhR4oV\nEcmSwwG7dpnQsnNnxvP33mtmWoKCFFpEcrksw8vixYt57bXXCA8P5/PPPyc4OJgCf10PTklJYePG\njfzyyy88+OCDvPPOO3To0CHHihYRSedwwObN8MsvcOBAxvPBwSa0VK2a46WJSPbIMrx8+umn/PDD\nD1TN5B98gQIFCAkJISQkhCeffJJ//OMfCi8ikrPsdli3zsy0XNvC38vL7O4cHm4azIlInpJleJk6\ndSq+f90umJqamr6+5fDhwwAEBgam/zl58uTsrlNExEhJgdWrzULcv9bhpStQwNzq3Llzxp2fRSTP\nyDK8pAWXOXPmEBUVxWeffcbs2bMZOnQovr6+vPrqq/Tu3dvluSIid1RsrJlZiYuDcuXMLs6HDpl+\nLVcrWBDatDE7PP+1Nk9E8i63dxt9/fXXfPrppwB89tlnjBkzhvr16zNw4MD08CIicsfFxsLYsWam\n5dgxs/dQcjLUrm16s4DZe6hDB2jXDooWtbZeEckxbsOLw+GgSpUqHD58mHPnztGuXbv0cRGRbDNn\nDhw8aHq1pKQ4x48cgRo1zKWhVq3MHkQikq+4DS8pKSlcunSJBQsWEBoaCkBSUhJJ17bWFhG5ExIS\nYMkS+OknM9NytUKFzP5C776bcbNEEck33IaXBx98kNatW2O32/n2228BeOWVV7jvvvuyvTgRyUeS\nksxGiQsWmI0TfX2d4aVIEahSxax7CQxUcBHJ57IMLxcvXqRYsWI8//zzdO7cmRIlSlD2r9X7PXr0\noHnz5jlWpIjkYSkpsHy56dNy/rxzPDDQXDaqWtWElrTGcuHh1tQpIh4jy/DSrl076tSpQ9u2bWnT\npk16cAFo3bp1jhQnInlYaqrZKHHePDhzxvVcmTIwYAB4e5sNFY8dM5eLwsO1w7OIZB1eVq5cyerV\nq4mOjuapp56iQIECtGnThrZt29K0aVN8NG0rIrfCboeYGJg7N2OflpIl4YEHIDTUucNzs2Y5X6OI\neLTr9nlp06YNbdq04Y033mD37t389ttvfPbZZ/z973+nWbNm6bdQi4i45XCYjrg//wzHj7ue8/Mz\nsyqtW2s9i4i4dUO7SgPUrFmTmjVr8swzz3Du3DmWL19+w2+SnJxMZGQkEyZMIDo6mooVKwJmC4Kf\nf/4Zh8PBPffcw9tvv03x4sVv/rsQEc/lcMCmTebW52vb+BctCmFh0LataTQnInID3IaX06dPM3Pm\nTOLi4khNTXU517Vr1xt6k8E/xS8GAAAgAElEQVSDB1OvXj2XsaioKKKiovjxxx8pUqQI//rXvxg7\ndiz/+Mc/bqJ8EfFYDgds22ZueT50yPVcoUKmT0uHDurTIiI3zW14GTx4MImJiQQFBaXvb3SzBg8e\nTHBwsMtlprvvvpv33nuPYsWKARAcHMyaNWtu6fVFxIM4HLBzp5lp2b/f9VzBgiawdOpkbn8WEbkF\nbsPL8ePHWbx4MV5eXrf8JsHBwRnGgoKCXI6XLVtGiO4iEMnd9uwxoWX3btdxHx/Twr9zZ9ClYRG5\nTW7DS40aNbh8+XL6DEl2+Pzzzzl16hQRERHZ9h4iko0OHDCXh7Zvdx0vUMC08O/SRRsmisgd4za8\n/Oc//yEiIoLmzZtT9JqNz4YMGXLbBURGRrJy5UrGjRtHEU0ji+Quhw+bmZbNm13HvbygZUtz23Op\nUtbUJiJ5ltvw8vbbb3PmzBl27drlcunIltbt8jaMGTOGDRs2MGnSpGyd2RGROywuzoSWDRtcx202\naN4cunaFqxpbiojcSW7Dy4EDB1i8eDG+vr539I23bt3K7NmzmT17toKLSG5x4oRpLrd2rVmYm8Zm\ngyZNTGj5qxWCiEh2cRteatWqRXJy8i2Hl/j4ePr165d+HBERgbe3N02aNOHChQv07t07/VxAQADj\nxo27pfcRkTssNhbmzzezLCVKmFuajx83HXKvFhwM3bpBQIA1dYpIvuM2vDRs2JC+ffvSpk2bDDMk\nTz/9tNs3KFu2LFFRUZmeGzFixA2WKSI5KjYWxo6FxESzruXPP01oqV0bypc3z6lbF7p3Nxsniojk\nILfhJSYmhuLFi7PhmmvbNpvthsKLiORCc+bAH3/A0aOuMy1HjpgW/g8+CNWrW1efiORrWYaXixcv\nUqxYMb799lu3L5L2XBHJ5ex2WLbM7D+UmOh6rkQJuOsuUBdsEbFYlp3nevfuzeZrb3/MxNatW+nT\np88dLUpEcpjDYW53fustmDLFuaMzmKZy9epB/fpw773W1Sgi8pcsZ17efvttnn/+eYKDg+natSuN\nGzemTJkyAJw6dYoNGzYwd+5cNmzYwOjRo3OsYBG5ww4fhh9/NC390wQGmsZz1apBuXLmbiIwOz+L\niFgsy/DSpEkToqKiGDt2LB988AFxcXHpvV0cDgeVKlWiW7duvPPOO/j5+eVYwSJyh5w9a7rirl7t\nettzoULw7LPmMtGiRWYnaH9/E1y0hYeIeIDrLtgtXrw4//jHP/jHP/5BXFwc8fHxAJQrV46K6uUg\nkjslJsLCheYrKck57uVlWvl36+bcf6hFC2tqFBG5Drd3G6WpVKkSlSpVys5aRCQ72e1mlmX2bDh/\n3vVc/frw8MOgf+MikgtkGV7q16/vdguA33///Y4XJCLZYMcOs67lyBHX8cqVoXdv079FRCSXyDK8\njB07FjABZeXKlfTs2ZPSpUtz8uRJZs6cSYcOHXKsSBG5RceOmdCybZvreMmSpldL8+bmcpGISC6S\nZXhp2rQpYHZ9/vbbb122BwgPD6dfv34MGDAg+ysUkZt3/rxpNLdihetiXF9fCAuDTp2gYEHr6hMR\nuQ1u17ycPHkyw75GhQoV4vTp09lWlIjcouRk+PVXiIpybTJns0FoqJltKVHCuvpERO4At+Hlrrvu\n4sUXX+Shhx6iRIkSnDt3jp9++okqVarkRH0iciMcDoiJMYtxz5xxPXfPPdCrl1nfIiKSB7gNLyNH\njmTUqFEMGzaMM2fOUKJECZo1a8b777+fE/WJiDu7d5t1LQcPuo5XqmRCS506ziZzIiJ5gNvwUrZs\nWQUVEU90/DjMmAHX3vVXvLjZ7fm++7QYV0TypBvq8zJ79mx+/vlnrly5wuTJk/nll19o1aoVxdMa\nWYlIzrl4EebOheho1x2ffXzMQtywMNMlV0Qkj3IbXr788kvmzZtHr1690neY3rt3L7/99hsffPBB\nthcoIn9JSYElS+CXX+DKFddzzZtDjx5QqpQ1tYmI5CC34WX69OnMnj2bYsWKMWXKFABeeOEFHnjg\ngWwvTkQwi3HXr4dZs+CvLTrS1axp1rVUrWpNbSIiFnAbXry9vSlWrFiGMXfdd0XkNsTGwvz5sGsX\nnDgBxYpB+fLO8xUqQM+epq2//i2KSD7jNrz4+/szadIk+vfvnx5YZsyYoY0ZRbJLbCx8+ins3w8n\nT7qeu+sus3Fi69bg7W1NfSIiFnMbXl577TWefPJJxowZw5UrV2jWrBnFixfnyy+/zIn6RPKX1FQY\nMwY2bDCP03h5mY64I0ZAkSLW1Sci4gHchpegoCAWLVrEunXrOHv2LBUqVKBBgwb4+PjkRH0i+ce+\nffD997BunWtL/3LlzIxLkSIKLiIi3OCt0ikpKZw9e5azZ8/ywAMPcOrUKcqUKZPdtYnkD5cuwcyZ\nZh8iMAHl0iUoWhRq1HC28/f3t65GEREP4ja8bN68maeeeorKlStz6tQp+vbty/Dhw2nRogV9+vTJ\niRpF8iaHA9asMd1xL150jlevbsJLQIDrYtzw8JyvUUTEA7ltvzls2DA+/vhjZs2aRdGiRQF4/fXX\n+f7777O9OJE8Ky4OIiPhm29cg0uDBvDFF/DmmxAYaNa6VK4MgwZBSIhV1YqIeBS3My+XLl2iRYsW\nAOl3G5UvXx771Z09ReTGJCWZJnMLFrh2xy1dGvr0MeEl7VhhRUQkU27Di4+PD4cPHyYwMDB97M8/\n/8RLe6aI3JwtW2DKFDh1yjnm5WVa+j/wgLmbSERE3HIbXgYOHEjv3r3p2rUrZ8+e5f3332f+/PkM\nGTIkJ+oTyf3OnIFp02DjRtfxGjWgb18txBURuUluw0vv3r0pVaoU8+fP55577uHChQu8++67tGzZ\nMifqE8m97HazF9GcOZCY6BwvWtR0xw0NVXdcEZFbcEO3Snfs2JF77rmH8+fPU6JECfz1/xRFrm//\nftOz5cgR1/GWLeHhh027fxERuSVuw8vvv//Ov//9b45c9R/hqlWrEhkZSZ06dW7oTZKTk4mMjGTC\nhAlER0enby3wzTffMG3aNOx2O02aNGHYsGH4+vre4rci4gEuXTIbKC5f7jru728uEdWoYU1dIiJ5\niNtVty+//DKPPvooK1euZOvWraxYsYJevXrxz3/+84bfZPDgwRS5pjPopk2bmDRpEtOmTSMqKooL\nFy7w7bff3vx3IOIJ0nq2DBvmGlx8fc1My9ChCi4iIneI2/CSnJzMoEGDKF26NN7e3pQpU4ZBgwaR\nkpJyw28yePBgXnzxRZexqKgo7r//fvz8/LDZbPTs2ZOoqKib/w5ErBYXB//v/8GECXDhgnO8fn3T\nryUsTJsoiojcQW4vG1WtWpX4+HjKli2bPnb69GmqV69+w28SHBycYezAgQO0b98+/TgwMJD9+/ff\n8GuKWC6tZ8vCha6bKJYqBY895uzZIiIid5Tb8FK3bl169epFWFgYpUqV4tSpUyxZsoT27dvz9ddf\npz/v6aefvqk3vnLlisv6lkKFCnHlypWbeg0Ry2zdanq2xMc7x7y8oGNH6NpVPVtERLKR2/CyadMm\nAgMD2b59e/qYv78/O3fuZOfOnYDpvHuz4aVw4cIkJSWlH1+5ciXDuhgRj3PmDPzwA2zY4Dp+991m\nQW5AgDV1iYjkI27DS3Ytoq1evToHDx5MPz548CA1tKBRPJV6toiIeAy3C3aPHj2aHmAOHDhAREQE\nERER7Nu377beuEuXLsybN4/4+HhSUlKYNGkSDzzwwG29pki22L8f3nkHpk93DS6hofDWW6Z3i4KL\niEiOcTvz8r///Y8OHToAMGLECKpWrco999zDW2+9xaRJk9y+QXx8PP369Us/joiIwNvbm4kTJ/Lk\nk0/St29fHA4HoaGhPPbYY7fxrYjcIbGxMH8+HD5sLhPZ7VCunPN8pUrmElFQkHU1iojkY27Dy9Gj\nR+nbty8XL15k7dq1rFq1imLFijFlypQbeoOyZctmeQt0//796d+//81VLJKdYmPh66/h5Ekz45K2\nLsvhMOtZunY1i3IL3FBzahERyQZu/wvs/Vd/irVr11KnTh2K/dXWPDk5OXsrE7HC7Nmwfbvrzs8A\nycnmElGZMtbUJSIi6dyGl8DAQF599VU2bNjAE088AcDs2bMpd/U0ukhesHEjzJ3rnG0Bc8tzjRpQ\ntqyCi4iIh3C7YPfdd9+ldOnSPP744/Tp0weADRs2MGzYsGwvTiRHJCTAxInwxRfg4+McDwiAJk1M\naNEt0CIiHsPtzEuZMmX4z3/+4zI2fPjwbCtIJEft2WPa+qddJgoMhD/+gFq1oGRJ5/PCw62pT0RE\nMtCqQ8mfUlLgp5/g11/NYtw03bqZu4h++w2OHTO7QYeHQ0iIZaWKiIgrhRfJf44cMbMtR444x4oU\nMbc/N2lijlu1sqY2ERFxS+FF8g+7HRYtMjMuV++Kfs89MHCg62UiERHxWG7Dy+bNm7M8V6pUKQIC\nAvDycrvuV8Rap06Z2ZY9e5xjPj6mtX/btuqQKyKSi7gNL/379ycpKQm73Z4+ZrPZcPy1TsDf35+P\nPvqIevXqZV+VIrfK4YA1a2DqVHNXUZqqVeHJJ6FiRetqExGRW+I2vAwfPpzY2FieeuopKlWqlL7X\nUcuWLQkJCWHmzJm88847TJ06NSfqFblxFy/Cd9+Z/i1pvLzg/vvN118NGEVEJHdxG17Gjx/P7Nmz\n04+rV6/OG2+8waOPPkrHjh154oknmDZtWrYWKXLTtmyBSZPg/HnnWPny8MQTUL26dXWJiMhtcxte\njh8/zoULFyhevHj62OXLlzl+/DgAp06dIuXqxY8iVkpMNLs/L1/uOt6mjVnfUrCgNXWJiMgd4za8\nhIeH89BDD9GxY0dKlSrFxYsXWbhwIU2bNgWgR48ePProo9leqIhb+/fD+PFmU8U0fn4wYADUrWtd\nXSIicke5DS9Dhw5l9uzZrFq1ij179uDn50f//v3p1asXAKNGjaJZs2bZXqhIllJTzZ5E8+e7Npxr\n1Mj0bvlrM1EREckbbmhX6Z49e9KzZ89Mzyu4iKXi4sxsy6FDzrFCheCxx6BZM90CLSKSB7kNL5s2\nbWL06NEcO3aM1NRUl3OLFy/OtsJErsvhgKVLYeZMSE52jtesaRrOaQdoEZE8y214eeWVV7jvvvt4\n+OGHKVBADXnFA5w5Y3aB3rHDOVagAPToAR07arZFRCSPc5tGHA4HQ4cOzYlaRNyLjYXJk+HyZedY\n5cqm4VxAgHV1iYhIjnEbXqpXr87p06cpXbp0TtQjkrlLl2DKFBNe0ths0LkzdO9uZl5ERCRfcPtf\n/ODgYPr160eHDh3w8/NzOff0009nW2Ei6XbsgG++gbNnnWNlypiGc0FBlpUlIiLWcBteli9fTpky\nZdi0aZPLuM1mU3iR7JWUZBbkLl3qOt6yJTzyiLmrSERE8h234eXbb7/NiTpEjNhY069l9244cgRK\nlTJt/cH0a4mIgIYNra1RREQslWV4mT59Or179+brr7/O9LzNZmPQoEHZVpjkQ7Gx8PXXcPgwHDxo\nbof+axsKOnY0weWaS5ciIpL/ZBle1q1bR+/evVm2bFmm5xVe5I776SfYutXcCp3G29usbxk8WLdA\ni4gIcJ3wMnLkSECXjSSHHDsGv/wCV644x/z8oFYt8PFRcBERkXRZhpesLhddTQt25Y7YuBEmTAAv\nL+dYlSpQtaoJLf7+1tUmIiIeJ8vwkna5yOFwsHHjRipXrkypUqWIj48nLi6O0NBQhRe5PQ4HzJsH\nP/9sjgMDYc8eM9tStqzzeeHh1tQnIiIeKcvwkna56O233+bpp5+mTZs26eeWLFnCb7/9lu3FSR6W\nkGBmW66+Bf/ee2HQINiwwVxG8vc3wSUkxLo6RUTE47i9VXr16tX873//cxlr3749o0aNyraiJI87\neRI++8wElDS1a8Mzz0DRovDAA9bVJiIiHs9teElMTGTnzp3Url07fWzXrl0kJCTckQJmzJjBuHHj\ncDgcVKxYkTfeeIO77rrrjry2eKAdO+Crr1z3JurQAXr1cl3zIiIikgW34eXpp5+mV69e1KxZk5Il\nS3L27Fl2797Nf//739t+83379vHBBx8wZ84cKlSowJQpU3jttdeYMmXKbb+2eBiHAxYvhh9/NI/B\n7EfUrx+0aGFtbSIikqu4DS99+vQhNDSUmJgYzpw5Q4kSJQgJCaF69eq3/eb79u2jWrVqVKhQAYDm\nzZsTGRl5268rHiY5Gb77DtascY6VLAnPPw/VqllWloiI5E43tBWvv78/rVu3JjU1NX3s2LFj+N/m\nLawNGjTg0KFD7N69m6CgIBYuXEhoaOhtvaZ4mLNn4fPP4cAB51j16vDcc1CihGVliYhI7uU2vEyd\nOpV3332X5OTk9DGHw4HNZmPHjh239eYVKlTgn//8Jz169KBo0aIULlyY77777rZeUzzIvn3wxRdw\n/rxzrGVLePxxc8lIRETkFrj9BPnss8+IjIykfv36eHt739E33759O59//jmLFi3C39+fn376ieef\nf565c+diU0fV3G3FCpg8GdJm67y8zE7QbduqW66IiNwWt+HFz8+PTp06Zcubr169muDg4PTLT/ff\nfz8vv/wyZ86coXTp0tnynpLNUlPhhx/g6j5ARYvCs8+a5nMiIiK3ye29qS1atGDT1Y3E7qC77rqL\njRs3cuavjfiio6MpV64cpUqVypb3k2x24QKMHu0aXCpXhtdfV3AREZE7xu3My5kzZ3jyyScJCgrC\nz8/P5dyN7H90Pe3bt2fbtm306dMHgGLFijF69GhdMsqNDh82C3NPnXKONW4MAwZAwYLW1SUiInmO\n2/BSrVo1nnzyyWwr4G9/+xt/+9vfsu31JQesWwfffGNuiQazpuXBB01rfwVRERG5w9yGlyFDhmQ6\n/tFHH93xYiSXsdthzhyYP985VqgQPPUU1K9vXV0iIpKnuQ0vCQkJfPvttxw4cAC73Q7A5cuXWbVq\nFX//+9+zvUDxUFeuwLhxsGWLc6x8eRg8GCpVsq4uERHJ89wu2H3ttdeYNWsWDoeDJUuWYLfb2bJl\nizrh5mfHj8N777kGlzp14NVXFVxERCTbuZ152bRpE/Pnz6dgwYJ06dKFkSNHsnnzZn7++Wdat26d\nEzWKJ9m6Fb7+Gq7emDMsDHr00MaKIiKSI9x+2hQuXJiCf90tknbZqH79+qy5ep8ayfscDoiKgk8+\ncQYXHx8YNAgefljBRUREcozbT5wqVarwxhtvkJycTEBAAJMnT2br1q2cPXs2J+oTT5CUBGPHwqxZ\nzh2hS5WCl1+GkBBraxMRkXzH7WWjt956i5EjR+Lj48Nzzz3Hs88+S0JCQpZ3IUkec+qU6d9y+LBz\nLCjIdMwtXty6ukREJN9yG17Kly+fvji3adOmrF69mpSUFIoVK5btxYnFdu+GL7+EixedY23amD2K\ntLGiiIhY5KYXKhQqVIhixYrRs2fP7KhHPIHDYVr8f/ihM7h4e0O/ftoRWkRELHfLn0KXL1++k3WI\nJ4iNhXnzYPlyOHcOAgNN75bixeG556BGDasrFBERufXwov2H8pjYWLO2Zds2OH/ejO3cafq2vP66\nWaArIiLiATT/L8bs2bB5M1y65ByrUMHMvCi4iIiIB8kyvPzyyy/X/YuXrv6Qk9zt4kVYuNAZXGw2\nuOsuCAgw3XRFREQ8SJbhZdSoUdf/i1q0mTdcugSjRzv7t9hsUKuWmXEB8Pe3rjYREZFMZJlAlixZ\nkpN1iBUuX4aPPjI9XAIDYdcuqFnTGVwAwsOtq09ERCQTmj7Jr65cMcHl4EFzXKECdO0Kx46ZL39/\nE1zUQVdERDyMwkt+lJAAH38MBw44x/r1g/vus6wkERGRG6Xd9PKbxEQTXPbvd4717avgIiIiuYbC\nS36SmAhjxsC+fc6xxx6D1q2tq0lEROQmKbzkF0lJ8OmnsGePc+yRR6BtW8tKEhERuRUKL/lBcjJ8\n9pm5myhN797QoYN1NYmIiNwihZe8LjnZtP3fscM59vDD0LGjdTWJiIjcBoWXvCwlBb74wuxXlKZH\nDwgLs64mERGR26TwklelpMCXX8LWrc6xbt2gSxfrahIREbkDFF7yotRU+Pprs9FimgceME3oRERE\ncjmFl7wmNRXGjoVNm5xj4eFm1kVERCQPUHjJS+x2GD8eNmxwjnXubNa52GzW1SUiInIHKbzkFXY7\nfPMNrFvnHOvQwdxZpOAiIiJ5iOXh5fjx4zzxxBO0b9+ebt26ERsba3VJuY/dDhMnQkyMc6xdO9PL\nRcFFRETyGMvDyyuvvELr1q1ZsmQJr7/+Ot99953VJeUuDgd89x2sWeMca9MGHn1UwUVERPIkS3eV\njouLY9u2bXz11VcANG/enObNm1tZUu7icMD338PKlc6xVq3MfkUKLiIikkdZOvOyc+dOKleuTGRk\nJGFhYfTr14/t27dbWVLu4XDAlCmwfLlzLDTU7BCt4CIiInmYpeHl/Pnz7N69myZNmrBgwQK6d+/O\nkCFDSElJsbIsz+dwwLRpEB3tHGveHCIiFFxERCTPszS8FC9enDJlytDxr312evfuzblz5zhw4ICV\nZXk2hwOmT4elS51jTZvCgAHgZfkSJhERkWxn6aedv78/ly5dwm63A2Cz2fDy8sJLH8KZczhg5kxY\nvNg51qQJPPGEgouIiOQbln7i1apVi/LlyzN9+nQA5s+fj5+fH1WqVLGyLM/kcMDs2bBwoXOsUSN4\n6ikFFxERyVcsvdvIZrPx8ccf88orr/DVV19RpkwZPvroIwoUsLQsz/TzzxAV5TwODoZBgxRcREQk\n37E8JdSoUYMff/zR6jI829y5MG+e87h+fRNcvL2tq0lERMQi+r/tnm7+fDPrkqZuXXj2WdDslIiI\n5FMKL55swQKzziXNvffCc88puIiISL6m8OKpFi0ydxalqV0bBg8GHx/rahIREfEACi+eaMkS08sl\nTc2a8MILCi4iIiJ4wIJd+UtsrFnfsn49HD0KgYFQvjwEBcGQIeDra3WFIiIiHkHhxRPExsLYsRAX\nB3v2mLGdO6FyZRNcCha0tj4REREPostGnmD+fDh50hlcAPz8oHRpKFTIurpEREQ8kMKLJzh0CPbu\ndR4XL25uiT5xwrqaREREPJTCiyeIj4fkZPO4UCGoV8/cDu3vb21dIiIiHkjhxWrbtoHN5jwOCnL2\ncQkPt6YmERERD6YFu1ZKTITvvzd3FYHZfLFMGTPjEh4OISHW1iciIuKBFF6sNHcunDplHlerBsOH\nm/UuIiIikiVdNrLK4cOmi26a3r0VXERERG6AwosV7Hb49lvzJ5gOui1aWFuTiIhILqHwYoWlS+Hg\nQfO4QAHo18910a6IiIhkSeElp506BT/95Dx+4AGoUMG6ekRERHIZhZec5HDAlCnmLiMwdxV17mxt\nTSIiIrmMwktOWr8etmwxj202iIhw9nQRERGRG6LwklMuX4Zp05zHbdpA9erW1SMiIpJLKbzklJkz\n4fx587hkSejRw9p6REREcimFl5ywZw8sX+487tMHChe2rh4REZFcTOElu6WkmJ4uaRo2hOBg6+oR\nERHJ5RRestv8+XD8uHlcqJCZdREREZFbpvCSneLiTHhJ89BDUKqUdfWIiIjkAQov2cXhgO++g9RU\nc1y9OrRubW1NIiIieYDCS3ZZsQL27jWPvbzMFgBe+nGLiIjcLn2aZodz52DGDOdxWBgEBFhXj4iI\nSB6i8JIdpk2DK1fM4/Llzf5FIiIickcovNxpmzebbQDS9O0LPj7W1SMiIpLHeER4+e2336hVqxZH\njhyxupTbk5AAkyc7j0NDoXZt6+oRERHJgywPL1euXCEyMpKSJUtaXcrtmzMHzpwxj4sVg169rK1H\nREQkD7I8vIwZM4bu3btTtGhRq0u5PQcOwJIlzuNHHoHc/j2JiIh4IEvDy65du1i1ahUDBw60sozb\nl5pqtgBwOMzxvfdC06bW1iQiIpJHWRZeHA4Hw4YNY+jQofjk9gWtixZB2nodHx+zSNdms7YmERGR\nPMqy8DJt2jRq1KhBkyZNrCrhzjh5En7+2XncvTuULWtdPSIiInmcZeFl8eLFLF68mJYtW9KyZUvi\n4uLo1asXa9assaqkm+dwwPffQ3KyOQ4MhI4dra1JREQkjytg1Rt//fXXLsft27dn0qRJVK5c2aKK\nbsHatbBjh3lss0FEhLYAEBERyWb6pL1VFy/CDz84jzt0gKpVratHREQkn7Bs5uVaS66+zTg3mD7d\nBBiA0qXNWhcRERHJdpp5uRU7dsDVa3P69oWCBa2rR0REJB9ReLlZSUnw3XfO4yZNoG5d6+oRERHJ\nZxRebta8eRAfbx4XKQKPPmptPSIiIvmMwsvNOHIEFi50HvfsCX5+1tUjIiKSDym83Ci73WwBYLeb\n46AgaNnS2ppERETyIYWXGxUdbTZfBChQAPr10xYAIiIiFlB4uRFnzsCsWc7jLl2gYkXr6hEREcnH\nFF7ccThg8mRITDTHlSpBeLi1NYmIiORjCi/ubNwImzc7j/v1M5eNRERExBIKL9dz+TJMneo8bt0a\natSwrh4RERFReLmuWbPg3Dnz2M8PHnrI2npERERE4SVLe/fCsmXO48ceM03pRERExFIKL5lJSXHd\nAqB+fQgOtq4eERERSafwkpkFCyAuzjwuWBAef1w9XURERDyEwsu1jh+HX35xHvfoAaVKWVePiIiI\nuFB4uZrDYbYASEkxx9WqQdu2VlYkIiIi11B4udqqVbBnj3ns5QUREeZPERER8Rj6ZE5z/jz8+KPz\nuFMnqFzZunpEREQkU2oVCxAbCyNGmFmXIkWgXj3o2tXqqkRERCQTmnmJjYX/+z/Yvdusebl0yXz9\n/rvVlYmIiEgmFF7mz4dTp5zHFSqYu4uioqyrSURERLKk8BIXB+XKmc0W/fygenUzfuyYtXWJiIhI\nprTmpVIlsNuhRQtznL/pC64AAA87SURBVNaMzt/fuppEREQkS5p56dLF/GmzuXbRDQ+3ph4RERG5\nLs28hISYP6OizKUif38TXNLGRURExKMovIAJKgorIiIiuYIuG4mIiEiuovAiIiIiuYrCi4iIiOQq\nloeXxYsX8+CDD9KlSxcee+wxdu/ebXVJIiIi4sEsDS/Hjx/nlVdeITIykvnz59O1a1feeOMNK0sS\nERERD2dpeClQoACRkZHUqFEDgMaNG7N3714rSxIREREPZ2l4KVOmDK1bt04/XrZsGQ0aNLCwIhER\nEfF0HtPnZfXq1UycOJGJEydaXYqIiIh4MI8IL4sWLeLtt9/miy++SL+ElJnU1FQA/vzzz5wqTURE\nRHJY2ud82uf+tSwPL6tWreKdd95h/Pjx3H333dd97smTJwHo27dvTpQmIiIiFjp58iRVq1bNMG5z\nOBwOC+oB4MqVK4SHh/Ppp59St25dt89PSEhg69atlCtXDm9v7xyoUERERHJaamoqJ0+epG7duhQq\nVCjDeUvDy9y5c3n11VcJCAhwGf/uu+8oW7asRVWJiIiIJ7M0vIiIiIjcLMs77IqIiIjcDIUXERER\nyVUUXkRERCRXsfxWaauk7at08OBBihYtyhtvvEFISAjffPMN06ZNw26306RJE4YNG4avr6/V5XqE\nzH5mhw8f5p133qFcuXLpz+vXrx/9+vWzsFLPEBUVxejRo13G/vjjD9avX88XX3zBr7/+is1mo1On\nTvzrX/+yqErPktXP7IknnmDWrFmUKlUqffxf//oXnTp1yukSPdKMGTMYN24cDoeDihUr8sYbb1Ct\nWjUiIyP1e5aFzH5mc+fO5bvvvtPvWRZmz57N119/zaVLlwgJCeGdd97Bx8fHmt8zRz41cOBAx/jx\n4x0Oh8OxevVqx4svvujYuHGjo127do5z58457Ha7429/+5tj7NixFlfqOTL7mc2YMcPx3//+1+LK\ncod58+Y5hgwZ4pg7d66jd+/ejsTEREdiYqLjkUceccyfP9/q8jxS2s/s448/dnz88cdWl+OR9u7d\n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\nRU5ErkJggg==\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "landing = SweepSeries()\n", + "\n", + "for y in thresholds:\n", + " landing[y] = landing_speed(y, params)\n", + " \n", + "plot(landing, 'ro-') \n", + "decorate(title='Zip-lining from AC to West Hall',\n", + " xlabel='Starting Height (m)',\n", + " ylabel='Landing speed(m/s)')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "OPeHT5CwPHOf" + }, + "source": [ + "This plot shows the landing speed depending on starting height. By looking at this plot, we can choose a particular start height depending on our desired landing speed." + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 514 + }, + "colab_type": "code", + "id": "5fS8qu0LgBXq", + "outputId": "7f863616-751e-4c22-d595-f471c4ed6f5f" + }, + "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", + "
values
60.0000002.651921049001805 meter / second
62.1428575.343746587591299 meter / second
64.2857147.074894599711499 meter / second
66.4285718.456477911463677 meter / second
68.5714299.63932336233028 meter / second
70.71428610.688617419758609 meter / second
72.85714311.63984596447041 meter / second
75.00000012.514808133787712 meter / second
77.14285713.327981059112659 meter / second
79.28571414.08954798936296 meter / second
81.42857114.806934586049014 meter / second
83.57142915.48581549457082 meter / second
85.71428616.130651554946795 meter / second
87.85714316.745008583241006 meter / second
90.00000017.33179174000917 meter / second
\n", + "
" + ], + "text/plain": [ + "60.000000 2.651921049001805 meter / second\n", + "62.142857 5.343746587591299 meter / second\n", + "64.285714 7.074894599711499 meter / second\n", + "66.428571 8.456477911463677 meter / second\n", + "68.571429 9.63932336233028 meter / second\n", + "70.714286 10.688617419758609 meter / second\n", + "72.857143 11.63984596447041 meter / second\n", + "75.000000 12.514808133787712 meter / second\n", + "77.142857 13.327981059112659 meter / second\n", + "79.285714 14.08954798936296 meter / second\n", + "81.428571 14.806934586049014 meter / second\n", + "83.571429 15.48581549457082 meter / second\n", + "85.714286 16.130651554946795 meter / second\n", + "87.857143 16.745008583241006 meter / second\n", + "90.000000 17.33179174000917 meter / second\n", + "dtype: object" + ] + }, + "execution_count": 23, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "landing" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "PRVw6E_ONKLf" + }, + "source": [ + "# Ideal Starting Height" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "hY-xqOuhPJ3R" + }, + "source": [ + "We wanted to calculate our ideal starting height. We wrote an error function that approaches zero as the ideal starting height is approached. The maximum landing speed is determined based on the maximum safe landing speed of a hang-glider, which exerts analagous forces on a human." + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "yDxFQFHqn-JD" + }, + "outputs": [], + "source": [ + "def error_func(startHeight, params):\n", + " return params.max_landing_speed - landing_speed(startHeight, params)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "eJJGSINuNRN2", + "outputId": "415eb4ea-70c1-4ce0-b112-2dd12b752c7d" + }, + "outputs": [ + { + "data": { + "text/html": [ + "9.348078950998195 meter/second" + ], + "text/latex": [ + "$9.348078950998195\\ \\frac{\\mathrm{meter}}{\\mathrm{second}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "error_func(60, params)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "GP0lsZVsNRSR", + "outputId": "88c4fb91-51ab-4896-ffb1-9f73f57f7f58" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[73.71902744]\n" + ] + } + ], + "source": [ + "res = fsolve(error_func, 75, params)\n", + "print(res)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "UP4b0x9BNRWJ", + "outputId": "6d7a010f-1e46-491f-cf27-aa8291d48b60" + }, + "outputs": [ + { + "data": { + "text/html": [ + "2.1085355683680973e-12 meter/second" + ], + "text/latex": [ + "$2.1085355683680973e-12\\ \\frac{\\mathrm{meter}}{\\mathrm{second}}$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 27, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "error_func(fsolve(error_func, 75, params)[0], params)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 396 + }, + "colab_type": "code", + "id": "OI6SN2NZNRaZ", + "outputId": "6e715769-f1f2-4a7f-fdf5-97f4949aa711" + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAF7CAYAAAAaI2s4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xl4jXf+//HnSYjYUhVLkaBFo/Yl\nsXVKLZVECarR2qalrZoyHZ3226aorZ1iWkMwP61iWoNaopSSWIIoUmJpSYiltYt9CxJBzu+Pe07i\nkEiEc05OzutxXa72fM5J7nfSM857PsvrNpnNZjMiIiIiTsLN0QWIiIiIPAg1LyIiIuJU1LyIiIiI\nU1HzIiIiIk5FzYuIiIg4FTUvIiIi4lTUvIg8hBMnTlC3bl0SEhLy9PXHjx/Hz8+P3bt3AxAYGMi3\n336bq68dNmwYgwYNytN1c2PcuHE0atSIkSNH2uwakj/d/b5s06YNM2bMcHBVIpnUvIjcR926de/5\nU6tWLWrWrAlApUqV2L17N7Vr134k11u5ciWvv/56rl772WefMWXKlEdy3btduXKF//znP4wcOTJf\nNC8ffPABfn5+xMTEZPn8hQsX+Pzzz2nXrh316tWjefPmvP3222zbti3b75mens60adPyVM+BAwfw\n8/Nj+/btVuNLly7Fz8+P+Ph4q/GFCxfSoEEDbty4kafrWeRU85YtW/Dz8+PChQv3PDd69Gj69Onz\nUNcXyS/UvIjcx+7du63+xMbG4uPjw1tvveXo0mwqOTkZs9nMk08+6ehSuHjxIqtWraJjx47Mnz//\nnufPnTvHyy+/zLFjx/j666/57bffWLp0KbVr1+b1119nzZo1WX7fPXv2MHXq1DzVVKNGDSpVqsTG\njRutxjdu3EixYsXYtGnTPeNNmzalSJEiebqexcPULFKQqHkReQAjR46kdOnS/O1vfwOynl6fNm0a\n77zzDg0aNOC5555j+fLluf7+d07Ph4WFMWzYMCZNmsSzzz6Lv78/H3/8Menp6RnPv/322wD88MMP\nBAYGsmrVKgIDA2nQoAF9+vTh9OnTGd972rRpNG3alICAAMaNG8fo0aMzvv5OiYmJBAYGAtCjRw+G\nDRvGDz/8QJs2bfh//+//0bBhQ3bu3AnA4sWL6dSpE/Xr16d169Z8/fXXWEK7J0+ezGuvvcaMGTNo\n3rw5AQEBzJgxgx07dtCpUycaNGjAW2+9xbVr1+77O1myZAk1a9bk7bffJiYmhjNnzlg9P378eDw8\nPJg8eTLVqlXDZDJRtmxZ3n33XQYPHszly5fv+Z5xcXG88sorXL9+nbp16/LTTz8BEBMTw0svvUTD\nhg3505/+xNixY7l582aWdbVq1cqqeTGbzWzevJlu3bpZjaenp/PLL7/QqlUrANLS0hg3bhxt27al\nfv36dO7cmQ0bNmS8fteuXfTo0YPGjRsTEBBA//79SUpKyrbmvNqyZQvdu3encePGtGjRgo8//pjr\n168/1PcUsRc1LyK5tGjRImJiYhg/fjyFChXK9nWzZs2iT58+bN26lQEDBvDBBx9w/PjxPF0zOjoa\nLy8v1q1bx1dffcXixYtZt25dlq89c+YM69atIyIigpUrV3LixAlmzpwJwOrVq5k4cSL//Oc/M2YH\nsmuqatasSVRUFADff/89n332GQCXLl3i0qVLbNmyhQYNGrBhwwZGjBjBhx9+yPbt2/nnP//J119/\nzY8//pjxvfbu3cvt27eJiYnhzTffZMKECfznP//hu+++48cff2Tr1q0sW7bsvr+D+fPn07lzZ55+\n+mn8/PxYtGhRxnPp6emsWrWKPn36ZPnf5M0336Rbt273jAcEBPDpp59SrFgxdu/eTceOHTl48CAD\nBgzgz3/+M1u3bmX69OlERkby9ddfZ1nX888/T3x8PJcuXQJg3759pKSk8Nprr7Fz586Mpmz37t1c\nunQpo3mZMGECsbGxfPvtt2zbto3evXszcODAjEbz//7v/2jatClbtmxh3bp1lCpVinHjxmVZc16l\npqbyzjvvEBQURFxcHIsXL2bbtm15XkYTsTc1LyK58Pvvv/PZZ5/x2WefUalSpfu+9tlnn6V58+Z4\neHjQs2dPSpcuzdq1a/N0XS8vL15//XU8PDzw9/enUqVK/P7771m+9vr16wwePJiSJUtSvnx5mjZt\nmvHamJgYGjduTKtWrShSpAgDBw6kRIkSD1TLtWvXeOONN/Dw8MBkMjF//nzat2/Pc889R6FChQgI\nCCAwMNCqKTKbzRlf07ZtW27evElISAilS5emSpUq1KhRgyNHjmR7zS1btnDixImMD+quXbuycOHC\njNmdCxcucPXq1UeyvLVgwQIaNGhAly5dKFy4MDVr1iQ0NJQVK1Zk+fqmTZvi4eHB5s2bAfj5559p\n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\niILyD2WpScYvAz6kAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "system = make_system(params, Vector(100 * m, -(fsolve(error_func, 75, params)[0] - params.WH_window_abs_height)))\n", + "results, details = run_ode_solver(system, slope_func, events=event_func, method='LSODA')\n", + "plot(results.x, results.y - z.y.magnitude + params.WH_window_abs_height, 'ro-')\n", + "decorate(title='Zip-lining from AC to West Hall',\n", + "xlabel='X Position (m)',\n", + "ylabel='Y Position (m)')" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 396 + }, + "colab_type": "code", + "id": "9vHLDDcAZsn8", + "outputId": "ea5eff68-d786-4a0a-a672-7f11e66d8e46" + }, + "outputs": [ + { + "data": { + "image/png": "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\nd9wugJAAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(results.y - z.y.magnitude + params.WH_window_abs_height, 'ro-')\n", + "decorate(title='Zip-lining from AC to West Hall',\n", + "xlabel='Time (s)',\n", + "ylabel='Y Position (m)')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "bLpoVmBFQJMi" + }, + "source": [ + "This plot represents the ideal descent of a zip-liner from the AC to West Hall." + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + }, + "colab_type": "code", + "id": "4HL9TIJvNRfW", + "outputId": "2432dd16-50b9-41bd-9719-a183122189ce" + }, + "outputs": [ + { + "data": { + "text/html": [ + "11.999999999997891 dimensionless" + ], + "text/latex": [ + "$11.999999999997891\\ dimensionless$" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 30, + "metadata": { + "tags": [] + }, + "output_type": "execute_result" + } + ], + "source": [ + "Vector(get_last_value(results.vx), get_last_value(results.vy)).mag" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "0B2Zop5AQPyA" + }, + "source": [ + "The zip-liner arrives incredibly close to, but slightly below, the maximum safe velocity." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "xiQqkLs5Q8Z_" + }, + "source": [ + "# Conclusions\n", + "In this model, we find that the ideal starting height to arrive as quickly as possible (but at a safe speed) when zip-lining to West Hall would be around the third floor (about 15m above the first floor of the AC). The zip-liner would arrive safely at a speed slightly below 12 m/s. Before attempting this, we would want to conduct more precise modeling and account for the forces we've abstracted out of our model, like the tension in the rope and the changing normal force of the rope against the zip-liner through the handle." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "Ev0RyH1wFUpa" + }, + "source": [ + "# Future Steps: Questioning Assumptions. Straight Zipline?" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "5GpjMG6tQaL7" + }, + "source": [ + "We didn't have time to finish this modeling work, but with more work we might be able to simulate a more accurate zip-line curvature. To simplify our modeling, we assumed the line would be under infinite tension (in other words, perfectly straight) and the wheel would roll perfectly. For the wheel to behave efficiently, it's more likely that the line would have to maintain some slack. To get a more accurate estimate, we would continue this modeling work." + ] + }, + { "cell_type": "code", "execution_count": 0, "metadata": { "colab": {}, "colab_type": "code", - "id": "k1o3Wo4A-QNK" + "id": "h5o7UqC93VAD" }, "outputs": [], - "source": [] + "source": [ + "def calc_parabola_vertex(x1, y1, x2, y2, x3, y3):\n", + "\t\t'''\n", + "\t\tAdapted and modifed to get the unknowns for defining a parabola:\n", + "\t\thttp://stackoverflow.com/questions/717762/how-to-calculate-the-vertex-of-a-parabola-given-three-points\n", + " With thanks to http://chris35wills.github.io/parabola_python/\n", + "\t\t'''\n", + "\n", + "\t\td = (x1-x2) * (x1-x3) * (x2-x3);\n", + "\t\tA = (x3 * (y2-y1) + x2 * (y1-y3) + x1 * (y3-y2)) / d;\n", + "\t\tB = (x3*x3 * (y1-y2) + x2*x2 * (y3-y1) + x1*x1 * (y2-y3)) / d;\n", + "\t\tC = (x2 * x3 * (x2-x3) * y1+x3 * x1 * (x3-x1) * y2+x1 * x2 * (x1-x2) * y3) / d;\n", + "\n", + "\t\treturn A,B,C\n" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "GzXHaLqXyYZU" + }, + "outputs": [], + "source": [ + "range = linrange(60, 90, 5)" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 396 + }, + "colab_type": "code", + "id": "2AO8of_t36_u", + "outputId": "34572636-381d-4c8f-ab4d-3d074fb364a8" + }, + "outputs": [ + { + "data": { + "image/png": "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\nhx9iw4YNOHfuHERRhMlk8np+DtFYwW0jojHiRz/6EX76058iLS0NkyZNwq9+9Svs2rULW7ZsgV6v\n7/Wexx57DI8//jjmzZuHmTNn4te//jW0Wi3+93//F1qtFgCwePFiVFVVISMjAwqFArfeeqtUV+b2\n229Hc3MzHnjgAZhMJiQlJeGVV14ZMJlWpVLhH//4Bx555BGkp6cjLCwMt912G7761a9+6bNZWVko\nLy/Hq6++2usR5HvuuQf33nvvl66vW7cOWVlZ+MlPfgKlUolHHnmkx1Ftb0lLS8MvfvELvPTSS3jk\nkUcQHh6Or3/96/j2t7/d5z0///nPMWXKFGzduhVPPfUU5HI5kpKS8MMf/hA33ngjAMBoNOKnP/0p\nXn75Zbz00ktYsmQJ7rrrrn6PYQOe7+2qVauwfft2PPjggz3+7rnnnsOvfvUrrF27FjKZDNOmTcOr\nr74KtVqN9evXo7i4GPfccw9MJhOCgoKwfPly3HfffSP/JhGNMYLY/X0yEdEYcOutt2LSpEl47LHH\nRnspRDQGcduIiIiIxhUGL0RERDSucNuIiIiIxhW+eSEiIqJxZVydNmpvb8cXX3whlUInIiKiK4/L\n5UJdXR2mTZsm1UzqblwFL1988QX7dBAREV0l3nzzzV6boI6r4CU8PByA54vprBBKREREV5bq6mrc\ncsst0u/9y42r4KVzqygqKqpHMzMiIiK68vSVIsKEXSIiIhpXGLwQERHRuMLghYiIiMYVBi9EREQ0\nrjB4ISIionGFwQsRERGNKwxeiIiIaFzxS52XHTt24LXXXoMoioiKisJjjz2GDz74AG+88QZCQkKk\nzz300ENYtWqVP5ZERERE45TPg5eioiI8++yzeO+99xAZGYl///vfePTRR7Fw4UJs3rwZ9913n6+X\nQERERFcQn28bFRUVITExEZGRkQCA9PR0FBYW+vqxQyKKImotNrTYnaO9FCIiIhqAz4OXmTNnorS0\nFAUFBRBFEZ988gkWLlwIADh06BA2bdqE1atX4+mnn4bdbvf1cnp1vqEVH1+swX8vVKHBOjprICIi\nosHx+bZRZGQkHnzwQWzcuBF6vR5arRZvvPEGCgsLodfrsXnzZrS1teHee+/FK6+8gh/84Ae+XtKX\nWDreuDhcIo5VmbEqKQKCIPh9HURERDQwn795yc/Px5YtW7B7927k5ubioYcewj333IPMzEzceeed\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range:\n", + " xNum = linrange(0, 100)\n", + " x1,y1=[0,i]\n", + " x3,y3=[100,59.3]\n", + "\n", + " x2,y2=[50,y3-(y1-y3)/(2*pi)]\n", + " \n", + " #Calculate the unknowns of the equation y=ax^2+bx+c\n", + " a,b,c=calc_parabola_vertex(x1, y1, x2, y2, x3, y3)\n", + "\n", + " zline = SweepSeries()\n", + " dz = SweepSeries()\n", + "\n", + " for x in xNum:\n", + " zline[x] = a * x ** 2 + b * x + c\n", + " dz[x] = 2 * a * x + b\n", + "\n", + " plot(xNum, zline) \n", + "decorate(title='Parabolic Zip-line Curves',\n", + " xlabel='X (m)',\n", + " ylabel='Y (m)')" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 396 + }, + "colab_type": "code", + "id": "fatXPJpQ2bOY", + "outputId": "8b1aba4e-b97c-479e-ba4e-123202c47f69" + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAF7CAYAAAAaI2s4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xl0W+WdP/73vVfS1b7Z8ibLsRNC\nNrZAgtPSoQ3llEK+UKbMdE5PoS2FtjPMdAp0mcK0wAClFGi60GXoQEvpmWmnLS1D0x7W0kD5kUCA\npARngRDHsuRdu3R1dZfn94dkWVeS7dhxvCSf1zkc8NW9V4+d4PvW83ye5+EYYwyEEEIIIUsEv9AN\nIIQQQgiZCQovhBBCCFlSKLwQQgghZEmh8EIIIYSQJYXCCyGEEEKWFAovhBBCCFlSKLwQssR95Stf\nwWc/+9k5uf6xxx5Dd3f3XDWtxumnn46nn3561tevWrUKTzzxBADgU5/6FO666665atq8eeWVV3D6\n6acjHo/P+b2/+tWv4l/+5V/m/L6ELDamhW4AISeKCy64AENDQ+D54mcCk8mEjo4OfOITn8CHP/zh\nBW7d0bn88stx+eWXz+raiy66CNFo1HBM13WoqornnnsObW1teOONN+aimQCAn/zkJ3N2r2q//e1v\ncdNNN8FisQAABEHAsmXLcOGFF+Lqq6+G0+mc9b03btw4Zz+H/v5+vP7667j00ksBAHfeeeec3JeQ\nxY7CCyFz6MYbb8Q111wDACgUCnj++edxww03wGaz4eKLL17g1h1fTz75pOFrTdNw5ZVXorW1FW1t\nbQvUqtmz2+14/fXXAQCpVAr79u3D9773PWzbtg2/+MUv4Pf7F7iFwFNPPYWdO3eWwwshJwsaNiLk\nOLFYLLjwwgtx4YUXloc6GGO4//77ccEFF2D9+vW46KKL8Lvf/a58zf3334+rrroKt9xyC8466ywM\nDQ2hUCjgjjvuwPnnn4/169fjsssuw/bt22ve79vf/ja6u7vx7ne/G9/85jehaRqAYu/Hgw8+iIsu\nughnnHEGLrroIvz617+u2+bf/va3WL9+ffnrAwcO4KqrrsL69evxvve9Dw888MBRf//f+973MDo6\nittvv718rHLY56qrrsLdd9+Nm266CWeffTa6u7vx8MMPH/X9r7rqqvK977//fnzqU5/CL37xC2ze\nvBnr16/Hddddh0wmUz7/N7/5DS699FKcddZZuOCCC/DQQw8d9Xu53W50d3fjpz/9KURRxLe+9a3y\na4cOHcK1116L7u5unHPOOfj85z+PsbExAMWekVWrVuGXv/wl3v3ud+PHP/4xdu7ciVWrViEWi+Ej\nH/kI7r77bsN7PfbYY9i4cSMKhQJSqRS++MUv4rzzzsP69evxD//wD9izZw8A4Ic//CHuvfdePP/8\n8zj99NMxNDRUHgI8dOgQVq1ahQMHDhju/fGPfxy33XbbtO0Gij1b73//+3HmmWfive99L773ve+B\nFmQniwWFF0KOM03TYDIVOzm3bduGn/3sZ3jooYfw2muv4frrr8fNN9+Mw4cPl88/ePAg2tvbsWvX\nLjQ1NeEnP/kJtm/fjkcffRS7du3C5Zdfjuuvvx7pdLp8zSuvvAKHw4Hnn38e3//+9/HLX/6yHFD+\n93//Fw899BDuvfdevPbaa/jCF76AW2+9Fa+88sqU7ZYkCZ/+9KexceNGvPTSS/jP//xPPPjgg9i2\nbdu03/NLL72En/70p9i6deuUQyyPPvoo3vOe92Dnzp34+te/jm9+85vTtmsyPT096Ovrwx//+Ec8\n+uijeOmll/Db3/4WAPDnP/8Zd911F2655Ra8+uqr2Lp1Kx544IGa3qLpWCwWXHnllXjiiSegaRpk\nWcY111yD1atXY/v27Xj66achyzL+/d//3XDds88+iz/84Q/49Kc/bTi+ZcuWmhqgJ554AhdddBEs\nFgvuvfde9Pf344knnsDOnTtx+umn41//9V8BANdddx0+9KEP4fzzz8cbb7yB5ubm8j1WrFiBNWvW\nGO49NjaGXbt24dJLL5223a+99hq+/e1v4wc/+AH27NmDBx98EI8++mjd0EzIQqDwQshxIssynn76\nafzpT38qd+tfcskleO6559DV1QWO4/DBD34QgiCgp6enfF2hUMAnP/lJmEwmcByHa6+9Fo899hgC\ngQAEQcCWLVuQy+Vw6NCh8jUulwvXXnstRFHE2Wefjc2bN+PPf/4zgGJ4+chHPoIzzjgDJpMJH/jA\nB7Bhwwb84Q9/mLL9f/nLX5BKpfCP//iPsFqtWL16Ne6//36sWLFiyutisRi+9KUv4frrr8fpp58+\n5bmrVq3Cli1bYDabceGFF2LdunV45plnprxmMrIsl4foli9fjtNPP738M/rlL3+Jyy67DBs3boQg\n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\nEC8AAMCUNwWWMbwoIQYjAAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "for i in range:\n", + " xNum = linrange(0, 100)\n", + " x1,y1=[0,i]\n", + " x3,y3=[100,59.3]\n", + "\n", + " x2,y2=[50,y3-(y1-y3)/(2*pi)]\n", + " \n", + " #Calculate the unknowns of the equation y=ax^2+bx+c\n", + " a,b,c=calc_parabola_vertex(x1, y1, x2, y2, x3, y3)\n", + "\n", + " zline = SweepSeries()\n", + " dz = SweepSeries()\n", + "\n", + " for x in xNum:\n", + " zline[x] = a * x ** 2 + b * x + c\n", + " dz[x] = 2 * a * x + b\n", + "\n", + " plot(xNum, dz) \n", + "decorate(title='Parabolic Zip-line Derivatives',\n", + " xlabel='X (m)',\n", + " ylabel='Y (m)')" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "2hlNbgn31u1i" + }, + "outputs": [], + "source": [ + "def effective_parabolic_force(state, system):\n", + " \"\"\"Calculates gravitational force for arbitrary objects\"\"\"\n", + " x, y, vx, vy = state\n", + " unpack(system)\n", + " \n", + " #Force of Gravity\n", + " grav_f = earth_grav(m_human, grav)\n", + " \n", + " #Force of Drag\n", + " drag_f = drag_force(rho, Vector(vx, vy), area, cd)\n", + " \n", + " #Net Force\n", + " net_force = grav_f + drag_f\n", + " \n", + " # Find parabola\n", + " x1,y1=[0,z[0].magnitude] # AC startpoint\n", + " x3,y3=[100,WH_window_abs_height] # WH endpoint\n", + "\n", + " x2,y2=[50,y3-(y1-y3)/(2*pi)] # midpoint\n", + " \n", + " #Calculate the unknowns\n", + " a,b,c=calc_parabola_vertex(x1, y1, x2, y2, x3, y3)\n", + " \n", + " # Find the tangent vector\n", + " tangent_vector = Vector(1, 2 * a * x + b)\n", + " print(tangent_vector)\n", + " \n", + " #Effective Force\n", + " effective_force = net_force.proj(tangent_vector.hat())\n", + "\n", + " return effective_force" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "ty5grWUi2CLF" + }, + "outputs": [], + "source": [ + "def slope_func_parabolic(state, t, system):\n", + " x, y, vx, vy = state\n", + " \n", + " unpack(system)\n", + " \n", + " # make velocity\n", + " v = Vector(vx, vy)\n", + " \n", + " # calculate force\n", + " force = effective_parabolic_force(state, system)\n", + " \n", + " # calculate acceleration\n", + " a = force * (1/m_human)\n", + " \n", + " # cast acceleration to modsimvector\n", + " a = Vector(a[0], a[1])\n", + " \n", + " # return velocity and acceleration\n", + " return vx, vy, a.x, a.y" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": {}, + "colab_type": "code", + "id": "0iQT8xHV_pG5" + }, + "outputs": [], + "source": [ + "def event_func_parabolic(state, t, system):\n", + " x, y, vx, vy = state\n", + " position = Vector(x, y)\n", + " return position.mag - z.mag" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1535 + }, + "colab_type": "code", + "id": "Q_pFqEkUx7o9", + "outputId": "b6396a09-e38d-42bf-da23-f66397bbd1ac" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 1. -1.48010425] dimensionless\n", + "[ 1. -1.48010425] dimensionless\n", + "[ 1. -1.48010425] dimensionless\n", + "[ 1. -1.48010425] dimensionless\n", + "[ 1. -1.48010425] dimensionless\n", + "[ 1. -1.48009196] dimensionless\n", + "[ 1. -1.48009196] dimensionless\n", + "[ 1. -1.48005512] dimensionless\n", + "[ 1. -1.48005512] dimensionless\n", + "[ 1. -1.47999374] dimensionless\n", + "[ 1. -1.47999374] dimensionless\n", + "[ 1. -1.47994324] dimensionless\n", + "[ 1. -1.47994324] dimensionless\n", + "[ 1. -1.47988327] dimensionless\n", + "[ 1. -1.47988327] dimensionless\n", + "[ 1. -1.47981382] dimensionless\n", + "[ 1. -1.47981382] dimensionless\n", + "[ 1. -1.47961671] dimensionless\n", + "[ 1. -1.47961672] dimensionless\n", + "[ 1. -1.47936885] dimensionless\n", + "[ 1. -1.47936885] dimensionless\n", + "[ 1. -1.47907025] dimensionless\n", + "[ 1. -1.47907025] dimensionless\n", + "[ 1. -1.47839559] dimensionless\n", + "[ 1. -1.47839563] dimensionless\n", + "[ 1. -1.47755259] dimensionless\n", + "[ 1. -1.47755265] dimensionless\n", + "[ 1. -1.47654139] dimensionless\n", + "[ 1. -1.47654146] dimensionless\n", + "[ 1. -1.47420988] dimensionless\n", + "[ 1. -1.47421032] dimensionless\n", + "[ 1. -1.47129704] dimensionless\n", + "[ 1. -1.47129773] dimensionless\n", + "[ 1. -1.46780456] dimensionless\n", + "[ 1. -1.46780542] dimensionless\n", + "[ 1. -1.45969223] dimensionless\n", + "[ 1. -1.45969747] dimensionless\n", + "[ 1. -1.44956597] dimensionless\n", + "[ 1. -1.44957438] dimensionless\n", + "[ 1. -1.43744636] dimensionless\n", + "[ 1. -1.4374568] dimensionless\n", + "[ 1. -1.41010184] dimensionless\n", + "[ 1. -1.41012485] dimensionless\n", + "[ 1. -1.37635458] dimensionless\n", + "[ 1. -1.37635986] dimensionless\n", + "[ 1. -1.33635607] dimensionless\n", + "[ 1. -1.33637233] dimensionless\n", + "[ 1. -1.29041791] dimensionless\n", + "[ 1. -1.29043259] dimensionless\n", + "[ 1. -1.22404196] dimensionless\n", + "[ 1. -1.22406891] dimensionless\n", + "[ 1. -1.14923573] dimensionless\n", + "[ 1. -1.14926861] dimensionless\n", + "[ 1. -1.06674115] dimensionless\n", + "[ 1. -1.06677028] dimensionless\n", + "[ 1. -0.977353] dimensionless\n", + "[ 1. -0.97738114] dimensionless\n", + "[ 1. -0.80995055] dimensionless\n", + "[ 1. -0.81009713] dimensionless\n", + "[ 1. -0.62979874] dimensionless\n", + "[ 1. -0.63009574] dimensionless\n", + "[ 1. -0.44292993] dimensionless\n", + "[ 1. -0.4432954] dimensionless\n", + "[ 1. -0.25607017] dimensionless\n", + "[ 1. -0.25646415] dimensionless\n", + "[ 1. -0.00772528] dimensionless\n", + "[ 1. -0.00835732] dimensionless\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "results, details = run_ode_solver(make_system(params, Vector(100 * m, -25.1)), slope_func_parabolic, events=event_func_parabolic, method='LSODA')\n", + "plot(results.x, results.y - z.y.magnitude, 'go-')\n", + "decorate(title='Zip-lining from AC to West Hall',\n", + " xlabel='X Position (m)',\n", + " ylabel='Y Position (m)')" + ] + }, + { + "cell_type": "code", + "execution_count": 0, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 396 + }, + "colab_type": "code", + "id": "p6KBhqwpx7pD", + "outputId": "1735d871-33f4-40e1-e0e4-316d7286c617" + }, + "outputs": [ + { + "data": { + "image/png": "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\nri4KCgo4efLkpz5n165dPPTQQ4yNjV3zPCJydeg+LyJyzWzatInAwEB++tOfGvL9v/GNb7By5Uqe\neuqpz3zepk2biIqK0nBMER+hMy8icl21traSlZWF0+n0/Pebb77J1772NVasWMGLL77Izp07eeCB\nB7j55pt54YUX8ikJ7gAAAtpJREFUPF9bW1vLk08+SWFhIatWreLFF1/81O9z8OBBampqePzxxwGo\nr69nw4YNFBcXc/fdd/NP//RP9PT0APDMM8+wY8eOy2bciIh3UnkREcM1Nzfzv//7v/z85z9n27Zt\n1NTU8Mc//pGXXnqJ//7v/8bpdDIyMsLGjRu544472LNnD3/+85/ZuXMnf/rTnz7xNd98803uuusu\ngoODAdi6dSvLly9n9+7d7N27l9TUVM/Ax4SEBBYuXMju3buv288sIl+eyouIGG7t2rUAZGdnMzEx\nQXFxseex2+2mra2N0tJSXC6X50xKZGQkDz74IG+//fYnvmZZWRm5ubmexzabjQ8//JCDBw8yMjLC\n9773Pc/3BcjNzfUMYRUR76bBjCJiuIiICADM5ul/T308dPHj4XhTU1P09vYyOjrKmjVrPF83Pj6O\n1Wr9xNfs7Oy8ZMjlD37wA15++WU2b95MXV0dd9xxB//6r//q+Xqr1UpnZ+fV/+FE5KpTeRERnxAf\nH09oaCglJSVf6usDAwN56qmneOqpp+js7OT5559n8+bN/OIXv7jKSUXkWtNlIxHxCYsXLyY8PJw3\n3ngDgMnJSbZu3crOnTs/8flxcXGXnEn59re/zaFDhzz7UlNTL3m+0+m85EyNiHgvlRcR8QmBgYH8\n13/9F++88w6FhYWsWbOGlpYWbr311k98fm5uLseOHfM8/ta3vsXmzZspLCykuLiYhoYGvv/973v2\nHzt2jLy8vGv+c4jIV6f7vIjIjHTgwAE2bdrEvn37CAoK+szntre3U1xczFtvvUVSUtJ1SigiX5bO\nvIjIjJSfn09aWhq/+93vrvjc//zP/+TBBx9UcRHxESovIjJjvfDCC7z++uucPn36U59TUlJCbW0t\nP/jBD65jMhH5KnTZSERERHyKzryIiIiIT1F5EREREZ+i8iIiIiI+ReVFREREfIrKi4iIiPgUlRcR\nERHxKf8fiTT0C3zwt6QAAAAASUVORK5CYII=\n", + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(results.y, label='Y position (m)')\n", + "plot(results.x, label='X position (m)')\n", + "decorate(title='Position over Time',\n", + " xlabel='Time (s)',\n", + " ylabel='Position (m)',\n", + " legend=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "colab_type": "text", + "id": "A-LyAxW7bKhu" + }, + "source": [ + "Third floor near the ceiling" + ] }, { "cell_type": "code", @@ -632,11 +1832,11 @@ "metadata": { "colab": { "base_uri": "https://localhost:8080/", - "height": 35 + "height": 34 }, "colab_type": "code", "id": "Ax8EsdFJypUT", - "outputId": "3c3527ca-241d-47f6-f589-f59759770048" + "outputId": "3c86b350-f595-4ba4-8344-bafa2f9848b5" }, "outputs": [ { diff --git a/code/notebook.tex b/code/notebook.tex new file mode 100644 index 00000000..eedb14e4 --- /dev/null +++ b/code/notebook.tex @@ -0,0 +1,1162 @@ + +% Default to the notebook output style + + + + +% Inherit from the specified cell style. + + + + + +\documentclass[11pt]{article} + + + + \usepackage[T1]{fontenc} + % Nicer default font (+ math font) than Computer Modern for most use cases + \usepackage{mathpazo} + + % Basic figure setup, for now with no caption control since it's done + % automatically by Pandoc (which extracts ![](path) syntax from Markdown). + \usepackage{graphicx} + % We will generate all images so they have a width \maxwidth. This means + % that they will get their normal width if they fit onto the page, but + % are scaled down if they would overflow the margins. + \makeatletter + \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth + \else\Gin@nat@width\fi} + \makeatother + \let\Oldincludegraphics\includegraphics + % Set max figure width to be 80% of text width, for now hardcoded. + \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=.8\maxwidth]{#1}} + % Ensure that by default, figures have no caption (until we provide a + % proper Figure object with a Caption API and a way to capture that + % in the conversion process - todo). + \usepackage{caption} + \DeclareCaptionLabelFormat{nolabel}{} + \captionsetup{labelformat=nolabel} + + \usepackage{adjustbox} % Used to constrain images to a maximum size + \usepackage{xcolor} % Allow colors to be defined + \usepackage{enumerate} % Needed for markdown enumerations to work + \usepackage{geometry} % Used to adjust the document margins + \usepackage{amsmath} % Equations + \usepackage{amssymb} % Equations + \usepackage{textcomp} % defines textquotesingle + % Hack from http://tex.stackexchange.com/a/47451/13684: + \AtBeginDocument{% + \def\PYZsq{\textquotesingle}% Upright quotes in Pygmentized code + } + \usepackage{upquote} % Upright quotes for verbatim code + \usepackage{eurosym} % defines \euro + \usepackage[mathletters]{ucs} % Extended unicode (utf-8) support + \usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document + \usepackage{fancyvrb} % verbatim replacement that allows latex + \usepackage{grffile} % extends the file name processing of package graphics + % to support a larger range + % The hyperref package gives us a pdf with properly built + % internal navigation ('pdf bookmarks' for the table of contents, + % internal cross-reference links, web links for URLs, etc.) + \usepackage{hyperref} + \usepackage{longtable} % longtable support required by pandoc >1.10 + \usepackage{booktabs} % table support for pandoc > 1.12.2 + \usepackage[inline]{enumitem} % IRkernel/repr support (it uses the enumerate* environment) + \usepackage[normalem]{ulem} % ulem is needed to support strikethroughs (\sout) + % normalem makes italics be italics, not underlines + + + + + % Colors for the hyperref package + \definecolor{urlcolor}{rgb}{0,.145,.698} + \definecolor{linkcolor}{rgb}{.71,0.21,0.01} + \definecolor{citecolor}{rgb}{.12,.54,.11} + + % ANSI colors + \definecolor{ansi-black}{HTML}{3E424D} + \definecolor{ansi-black-intense}{HTML}{282C36} + \definecolor{ansi-red}{HTML}{E75C58} + \definecolor{ansi-red-intense}{HTML}{B22B31} + \definecolor{ansi-green}{HTML}{00A250} + \definecolor{ansi-green-intense}{HTML}{007427} + \definecolor{ansi-yellow}{HTML}{DDB62B} + \definecolor{ansi-yellow-intense}{HTML}{B27D12} + \definecolor{ansi-blue}{HTML}{208FFB} + \definecolor{ansi-blue-intense}{HTML}{0065CA} + \definecolor{ansi-magenta}{HTML}{D160C4} + \definecolor{ansi-magenta-intense}{HTML}{A03196} + \definecolor{ansi-cyan}{HTML}{60C6C8} + \definecolor{ansi-cyan-intense}{HTML}{258F8F} + \definecolor{ansi-white}{HTML}{C5C1B4} + \definecolor{ansi-white-intense}{HTML}{A1A6B2} + + % commands and environments needed by pandoc snippets + % extracted from the output of `pandoc -s` + \providecommand{\tightlist}{% + \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} + \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} + % Add ',fontsize=\small' for more characters per line + \newenvironment{Shaded}{}{} + \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} + \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}} + \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} + \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}} + \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}} + \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} + \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}} + \newcommand{\RegionMarkerTok}[1]{{#1}} + \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} + \newcommand{\NormalTok}[1]{{#1}} + + % Additional commands for more recent versions of Pandoc + \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{{#1}}} + \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} + \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{{#1}}} + \newcommand{\ImportTok}[1]{{#1}} + \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{{#1}}}} + \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} + \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} + \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{{#1}}} + \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} + \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{{#1}}} + \newcommand{\BuiltInTok}[1]{{#1}} + \newcommand{\ExtensionTok}[1]{{#1}} + \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{{#1}}} + \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{{#1}}} + \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} + \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} + + + % Define a nice break command that doesn't care if a line doesn't already + % exist. + \def\br{\hspace*{\fill} \\* } + % Math Jax compatability definitions + \def\gt{>} + \def\lt{<} + % Document parameters + \title{Project\_3 } + + + + + % Pygments definitions + +\makeatletter +\def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax% + \let\PY@ul=\relax \let\PY@tc=\relax% + \let\PY@bc=\relax \let\PY@ff=\relax} +\def\PY@tok#1{\csname PY@tok@#1\endcsname} +\def\PY@toks#1+{\ifx\relax#1\empty\else% + \PY@tok{#1}\expandafter\PY@toks\fi} +\def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{% + \PY@it{\PY@bf{\PY@ff{#1}}}}}}} +\def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}} + +\expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} +\expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} +\expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} +\expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} +\expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} +\expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} +\expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} +\expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} +\expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} +\expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} +\expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} +\expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} +\expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit} +\expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf} +\expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} +\expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} +\expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} +\expandafter\def\csname PY@tok@err\endcsname{\def\PY@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} +\expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} +\expandafter\def\csname PY@tok@fm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} +\expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@vm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} +\expandafter\def\csname PY@tok@sa\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@dl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} +\expandafter\def\csname PY@tok@mb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} +\expandafter\def\csname PY@tok@ch\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@cpf\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} +\expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} + +\def\PYZbs{\char`\\} +\def\PYZus{\char`\_} +\def\PYZob{\char`\{} +\def\PYZcb{\char`\}} +\def\PYZca{\char`\^} +\def\PYZam{\char`\&} +\def\PYZlt{\char`\<} +\def\PYZgt{\char`\>} +\def\PYZsh{\char`\#} +\def\PYZpc{\char`\%} +\def\PYZdl{\char`\$} +\def\PYZhy{\char`\-} +\def\PYZsq{\char`\'} +\def\PYZdq{\char`\"} +\def\PYZti{\char`\~} +% for compatibility with earlier versions +\def\PYZat{@} +\def\PYZlb{[} +\def\PYZrb{]} +\makeatother + + + % Exact colors from NB + \definecolor{incolor}{rgb}{0.0, 0.0, 0.5} + \definecolor{outcolor}{rgb}{0.545, 0.0, 0.0} + + + + + % Prevent overflowing lines due to hard-to-break entities + \sloppy + % Setup hyperref package + \hypersetup{ + breaklinks=true, % so long urls are correctly broken across lines + colorlinks=true, + urlcolor=urlcolor, + linkcolor=linkcolor, + citecolor=citecolor, + } + % Slightly bigger margins than the latex defaults + + \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} + + + + \begin{document} + + + \maketitle + + + + + \hypertarget{why-walk-when-you-can-zipline}{% +\section{Why Walk When You Can +Zipline?}\label{why-walk-when-you-can-zipline}} + +\hypertarget{sam-daitzman-and-jocelyn-jimenez}{% +\subsection{Sam Daitzman and Jocelyn +Jimenez}\label{sam-daitzman-and-jocelyn-jimenez}} + +December, 2018 + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{c+c1}{\PYZsh{} Configure Jupyter so figures appear in the notebook} + \PY{o}{\PYZpc{}}\PY{k}{matplotlib} inline + + \PY{c+c1}{\PYZsh{} Configure Jupyter to display the assigned value after an assignment} + \PY{o}{\PYZpc{}}\PY{k}{config} InteractiveShell.ast\PYZus{}node\PYZus{}interactivity=\PYZsq{}last\PYZsq{} + + \PY{c+c1}{\PYZsh{} import functions from the modsim.py module} + \PY{k+kn}{from} \PY{n+nn}{modsim} \PY{k}{import} \PY{o}{*} +\end{Verbatim} + + + \hypertarget{introduction}{% +\section{Introduction}\label{introduction}} + +Although Olin is a very small campus, it is sometimes very tedious +having to walk through various curved paths and flights of stairs. We +noticed that there was great potential of a zip line from Olin's +Academic Center to West Hall. Initially there were multiple issues that +arose. For instance, where will the landing spot be? In the case of our +model, we believe it is best if the zip line ends on the corner room in +West Hall on the second floor because it gives us the fastest access to +most dorms in West Hall. If we were to ask ``Which floor in the AC +allows us to get faster to our destination?'' the answer would be +obvious, the 4th floor; but if you zipline at too steep an angle, you +are likely to get injured. As a result, we decided to take into +consideration the safety of the individual in order to make it a more +useful model. Our model asks what the fastest safe zip line starting +mount-point would be to get from the AC to West Hall as fast as (safely) +possible. Stick around to find out where to anchor a zip-line in the +Academic Center. + + \hypertarget{code-setup}{% +\section{Code Setup}\label{code-setup}} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{c+c1}{\PYZsh{} units!} + \PY{n}{year} \PY{o}{=} \PY{n}{UNITS}\PY{o}{.}\PY{n}{year} + \PY{n}{s} \PY{o}{=} \PY{n}{UNITS}\PY{o}{.}\PY{n}{second} + \PY{n}{N} \PY{o}{=} \PY{n}{UNITS}\PY{o}{.}\PY{n}{newton} + \PY{n}{kg} \PY{o}{=} \PY{n}{UNITS}\PY{o}{.}\PY{n}{kilogram} + \PY{n}{m} \PY{o}{=} \PY{n}{UNITS}\PY{o}{.}\PY{n}{meter} +\end{Verbatim} + + + To prove the point that is is a good idea for Olin to have a zip line, +we modeled how the change in position will affect the velocity of the +individual. We considered important initial/constant variables like the +starting position, where (0,0) is at the tallest part of the Academic +Center. For the following model, the starting velocity of the person in +the x and y dimensions is 0 m/s, which can be seen below. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{c+c1}{\PYZsh{}Starting position on the x and y axis} + \PY{n}{x\PYZus{}0} \PY{o}{=} \PY{p}{(}\PY{l+m+mi}{0} \PY{o}{*} \PY{n}{m}\PY{p}{)} + \PY{n}{y\PYZus{}0} \PY{o}{=} \PY{p}{(}\PY{l+m+mi}{0} \PY{o}{*} \PY{n}{m}\PY{p}{)} + + \PY{c+c1}{\PYZsh{}Starting velocity in the x and y dimension} + \PY{n}{vx\PYZus{}0} \PY{o}{=} \PY{l+m+mi}{0} \PY{o}{*} \PY{n}{m} \PY{o}{/} \PY{n}{s} + \PY{n}{vy\PYZus{}0} \PY{o}{=} \PY{l+m+mi}{0} \PY{o}{*} \PY{n}{m} \PY{o}{/} \PY{n}{s} + + \PY{n}{init} \PY{o}{=} \PY{n}{State}\PY{p}{(}\PY{n}{x}\PY{o}{=}\PY{n}{x\PYZus{}0}\PY{p}{,} + \PY{n}{y}\PY{o}{=}\PY{n}{y\PYZus{}0}\PY{p}{,} + \PY{n}{vx}\PY{o}{=}\PY{n}{vx\PYZus{}0}\PY{p}{,} + \PY{n}{vy}\PY{o}{=}\PY{n}{vy\PYZus{}0}\PY{p}{)} +\end{Verbatim} + + + Other constants include the mass, density, and area of the individual, +gravity, drag force, the height of the West Hall window, the maximum +landing speed and the end time. These constants are defined as the +parameters of the model. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{params} \PY{o}{=} \PY{n}{Params}\PY{p}{(}\PY{n}{init}\PY{o}{=}\PY{n}{init}\PY{p}{,} + + \PY{c+c1}{\PYZsh{} Mass of the individual ziplining} + \PY{n}{m\PYZus{}human}\PY{o}{=}\PY{l+m+mi}{70} \PY{o}{*} \PY{n}{kg}\PY{p}{,} + + \PY{c+c1}{\PYZsh{}Gravity} + \PY{n}{grav} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{0} \PY{o}{*} \PY{n}{m} \PY{o}{/} \PY{n}{s} \PY{o}{*}\PY{o}{*} \PY{l+m+mi}{2}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{l+m+mf}{9.81}\PY{p}{)}\PY{p}{,} + + \PY{c+c1}{\PYZsh{}Mass Density of the Fluid} + \PY{n}{rho} \PY{o}{=} \PY{l+m+mf}{1.275} \PY{o}{*} \PY{n}{kg} \PY{o}{/} \PY{n}{m} \PY{o}{*}\PY{o}{*} \PY{l+m+mi}{3}\PY{p}{,} + + \PY{c+c1}{\PYZsh{}Reference Area of individual} + \PY{n}{area} \PY{o}{=} \PY{l+m+mf}{0.7} \PY{o}{*} \PY{n}{m} \PY{o}{*}\PY{o}{*} \PY{l+m+mi}{2}\PY{p}{,} + + \PY{c+c1}{\PYZsh{}Drag Coefficent } + \PY{n}{cd} \PY{o}{=} \PY{l+m+mf}{1.2}\PY{p}{,} + + \PY{c+c1}{\PYZsh{}End Time} + \PY{n}{t\PYZus{}end}\PY{o}{=}\PY{l+m+mf}{100e6} \PY{o}{*} \PY{n}{s}\PY{p}{,} + + \PY{c+c1}{\PYZsh{}Height of West Hall Window in meters} + \PY{n}{WH\PYZus{}window\PYZus{}abs\PYZus{}height} \PY{o}{=} \PY{l+m+mf}{59.3}\PY{p}{,} + + \PY{c+c1}{\PYZsh{}Maximum Landing Speed} + \PY{n}{max\PYZus{}landing\PYZus{}speed} \PY{o}{=} \PY{l+m+mi}{12} \PY{o}{*} \PY{n}{m} \PY{o}{/} \PY{n}{s} + \PY{p}{)} + + \PY{c+c1}{\PYZsh{}Creates a system containing constants} + \PY{k}{def} \PY{n+nf}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{zipline}\PY{p}{)}\PY{p}{:} + \PY{n}{unpack}\PY{p}{(}\PY{n}{params}\PY{p}{)} + + \PY{n}{system} \PY{o}{=} \PY{n}{System}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{z}\PY{o}{=}\PY{n}{zipline}\PY{p}{)} + + \PY{k}{return} \PY{n}{system} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{100} \PY{o}{*} \PY{n}{m}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{l+m+mf}{25.1}\PY{p}{)}\PY{p}{)} +\end{Verbatim} + + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} init x 0 meter + y 0 me{\ldots} + m\_human 70 kilogram + grav [0.0 meter / second ** 2, -9.81 meter / second{\ldots} + rho 1.275 kilogram / meter ** 3 + area 0.7 meter ** 2 + cd 1.2 + t\_end 100000000.0 second + WH\_window\_abs\_height 59.3 + max\_landing\_speed 12.0 meter / second + z [100.0 meter, -25.1 meter] + dtype: object +\end{Verbatim} + + \hypertarget{force-functions}{% +\section{Force Functions}\label{force-functions}} + + We decided to calculate the different forces that might affect the +zip-liner by including forces like gravity, drag, net and effective +force. The cells below demonstrate functions and equations that +contribute to the final velocity of the individual. We calculate the +force of gravity pulling the zipliner downward and the drag force +resisting their motion, and their sum is the net force. Then we +calculate the effective force, which is the component of the force in +line with the zip-line. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{earth\PYZus{}grav}\PY{p}{(}\PY{n}{m}\PY{p}{,} \PY{n}{g}\PY{p}{)}\PY{p}{:} + \PY{k}{return} \PY{n}{g} \PY{o}{*} \PY{n}{m} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{earth\PYZus{}grav}\PY{p}{(}\PY{l+m+mi}{100}\PY{o}{*}\PY{n}{kg}\PY{p}{,} \PY{n}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{100} \PY{o}{*} \PY{n}{m}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{l+m+mf}{25.1}\PY{p}{)}\PY{p}{)}\PY{o}{.}\PY{n}{grav}\PY{p}{)} +\end{Verbatim} + +\texttt{\color{outcolor}Out[{\color{outcolor}0}]:} + + $\begin{pmatrix}0.0 & -981.0\end{pmatrix}\ \frac{\mathrm{kilogram} \cdot \mathrm{meter}}{\mathrm{second}^{2}}$ + + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{drag\PYZus{}force}\PY{p}{(}\PY{n}{rho}\PY{p}{,} \PY{n}{v}\PY{p}{,} \PY{n}{area}\PY{p}{,} \PY{n}{cd}\PY{p}{)}\PY{p}{:} + + \PY{c+c1}{\PYZsh{}Direction} + \PY{n}{direction}\PY{o}{=} \PY{o}{\PYZhy{}}\PY{n}{v}\PY{o}{.}\PY{n}{hat}\PY{p}{(}\PY{p}{)} + + \PY{c+c1}{\PYZsh{}Drag Equation} + \PY{n}{drag} \PY{o}{=} \PY{p}{(}\PY{l+m+mi}{1}\PY{o}{/}\PY{l+m+mi}{2}\PY{p}{)} \PY{o}{*} \PY{n}{rho} \PY{o}{*} \PY{n}{v}\PY{o}{.}\PY{n}{mag}\PY{o}{*}\PY{o}{*}\PY{l+m+mi}{2} \PY{o}{*}\PY{n}{area} \PY{o}{*} \PY{n}{cd} + + \PY{c+c1}{\PYZsh{}Drag as a Vector} + \PY{k}{return} \PY{n}{direction} \PY{o}{*} \PY{n}{drag} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{drag\PYZus{}force}\PY{p}{(}\PY{l+m+mi}{20} \PY{o}{*} \PY{n}{kg} \PY{o}{/} \PY{n}{m} \PY{o}{*}\PY{o}{*} \PY{l+m+mi}{3}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{3} \PY{o}{*} \PY{n}{m} \PY{o}{/} \PY{n}{s}\PY{p}{,} \PY{l+m+mi}{4}\PY{p}{)}\PY{p}{,} \PY{l+m+mi}{10} \PY{o}{*} \PY{n}{m} \PY{o}{*}\PY{o}{*} \PY{l+m+mi}{2}\PY{p}{,} \PY{l+m+mf}{0.8}\PY{p}{)} +\end{Verbatim} + +\texttt{\color{outcolor}Out[{\color{outcolor}0}]:} + + $\begin{pmatrix}-1200.0 & -1600.0\end{pmatrix}\ \frac{\mathrm{kilogram} \cdot \mathrm{meter}}{\mathrm{second}^{2}}$ + + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{effective\PYZus{}force}\PY{p}{(}\PY{n}{state}\PY{p}{,} \PY{n}{system}\PY{p}{)}\PY{p}{:} + \PY{l+s+sd}{\PYZdq{}\PYZdq{}\PYZdq{}Calculates gravitational force for arbitrary objects\PYZdq{}\PYZdq{}\PYZdq{}} + \PY{n}{x}\PY{p}{,} \PY{n}{y}\PY{p}{,} \PY{n}{vx}\PY{p}{,} \PY{n}{vy} \PY{o}{=} \PY{n}{state} + \PY{n}{unpack}\PY{p}{(}\PY{n}{system}\PY{p}{)} + + \PY{c+c1}{\PYZsh{}Force of Gravity} + \PY{n}{grav\PYZus{}f} \PY{o}{=} \PY{n}{earth\PYZus{}grav}\PY{p}{(}\PY{n}{m\PYZus{}human}\PY{p}{,} \PY{n}{grav}\PY{p}{)} + + \PY{c+c1}{\PYZsh{}Force of Drag} + \PY{n}{drag\PYZus{}f} \PY{o}{=} \PY{n}{drag\PYZus{}force}\PY{p}{(}\PY{n}{rho}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{n}{vx}\PY{p}{,} \PY{n}{vy}\PY{p}{)}\PY{p}{,} \PY{n}{area}\PY{p}{,} \PY{n}{cd}\PY{p}{)} + + \PY{c+c1}{\PYZsh{}Net Force} + \PY{n}{net\PYZus{}force} \PY{o}{=} \PY{n}{grav\PYZus{}f} \PY{o}{+} \PY{n}{drag\PYZus{}f} + + \PY{c+c1}{\PYZsh{}Effective Force} + \PY{n}{effective\PYZus{}force} \PY{o}{=} \PY{n}{net\PYZus{}force}\PY{o}{.}\PY{n}{proj}\PY{p}{(}\PY{n}{z}\PY{o}{.}\PY{n}{hat}\PY{p}{(}\PY{p}{)}\PY{p}{)} + + \PY{k}{return} \PY{n}{effective\PYZus{}force} +\end{Verbatim} + + + \hypertarget{simulation-setup}{% +\section{Simulation Setup}\label{simulation-setup}} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{slope\PYZus{}func}\PY{p}{(}\PY{n}{state}\PY{p}{,} \PY{n}{t}\PY{p}{,} \PY{n}{system}\PY{p}{)}\PY{p}{:} + \PY{n}{x}\PY{p}{,} \PY{n}{y}\PY{p}{,} \PY{n}{vx}\PY{p}{,} \PY{n}{vy} \PY{o}{=} \PY{n}{state} + + \PY{n}{unpack}\PY{p}{(}\PY{n}{system}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} make velocity} + \PY{n}{v} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{n}{vx}\PY{p}{,} \PY{n}{vy}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} calculate force} + \PY{n}{force} \PY{o}{=} \PY{n}{effective\PYZus{}force}\PY{p}{(}\PY{n}{state}\PY{p}{,} \PY{n}{system}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} calculate acceleration} + \PY{n}{a} \PY{o}{=} \PY{n}{force} \PY{o}{*} \PY{p}{(}\PY{l+m+mi}{1}\PY{o}{/}\PY{n}{m\PYZus{}human}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} cast acceleration to modsimvector} + \PY{n}{a} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{n}{a}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{,} \PY{n}{a}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} return velocity and acceleration} + \PY{k}{return} \PY{n}{vx}\PY{p}{,} \PY{n}{vy}\PY{p}{,} \PY{n}{a}\PY{o}{.}\PY{n}{x}\PY{p}{,} \PY{n}{a}\PY{o}{.}\PY{n}{y} + + \PY{n}{vx}\PY{p}{,} \PY{n}{vy}\PY{p}{,} \PY{n}{ax}\PY{p}{,} \PY{n}{ay} \PY{o}{=} \PY{n}{slope\PYZus{}func}\PY{p}{(}\PY{n}{init}\PY{p}{,} \PY{l+m+mi}{0}\PY{p}{,} \PY{n}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{100} \PY{o}{*} \PY{n}{m}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{l+m+mf}{25.1}\PY{p}{)}\PY{p}{)}\PY{p}{)} + \PY{n+nb}{print}\PY{p}{(}\PY{n}{vx}\PY{p}{,} \PY{n}{vy}\PY{p}{,} \PY{n}{ax}\PY{p}{,} \PY{n}{ay}\PY{p}{)} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +0.0 meter / second 0.0 meter / second 2.3163759958833534 meter / second ** 2 -0.5814103749667217 meter / second ** 2 + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{event\PYZus{}func}\PY{p}{(}\PY{n}{state}\PY{p}{,} \PY{n}{t}\PY{p}{,} \PY{n}{system}\PY{p}{)}\PY{p}{:} + \PY{n}{x}\PY{p}{,} \PY{n}{y}\PY{p}{,} \PY{n}{vx}\PY{p}{,} \PY{n}{vy} \PY{o}{=} \PY{n}{state} + \PY{n}{position} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{n}{x}\PY{p}{,} \PY{n}{y}\PY{p}{)} + \PY{k}{return} \PY{n}{position}\PY{o}{.}\PY{n}{mag} \PY{o}{\PYZhy{}} \PY{n}{z}\PY{o}{.}\PY{n}{mag} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{event\PYZus{}func}\PY{p}{(}\PY{n}{init}\PY{p}{,} \PY{l+m+mi}{0}\PY{p}{,} \PY{n}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{100} \PY{o}{*} \PY{n}{m}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{l+m+mf}{25.1}\PY{p}{)}\PY{p}{)}\PY{p}{)} +\end{Verbatim} + +\texttt{\color{outcolor}Out[{\color{outcolor}0}]:} + + $-103.10193984596022\ \mathrm{meter}$ + + + + \hypertarget{simulation}{% +\section{Simulation}\label{simulation}} + + This simulation shows the zip-liner descending from the AC to West Hall +from a particular starting height. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{results}\PY{p}{,} \PY{n}{details} \PY{o}{=} \PY{n}{run\PYZus{}ode\PYZus{}solver}\PY{p}{(}\PY{n}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{100} \PY{o}{*} \PY{n}{m}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{l+m+mf}{25.1}\PY{p}{)}\PY{p}{)}\PY{p}{,} \PY{n}{slope\PYZus{}func}\PY{p}{,} \PY{n}{events}\PY{o}{=}\PY{n}{event\PYZus{}func}\PY{p}{,} \PY{n}{method}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{LSODA}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{plot}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{x}\PY{p}{,} \PY{n}{results}\PY{o}{.}\PY{n}{y} \PY{o}{\PYZhy{}} \PY{n}{z}\PY{o}{.}\PY{n}{y}\PY{o}{.}\PY{n}{magnitude}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{go\PYZhy{}}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Zip\PYZhy{}lining from AC to West Hall}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{X Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Y Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_23_0.png} + \end{center} + { \hspace*{\fill} \\} + + This plot shows the position over time. Each point along the line is a +different moment in time. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{plot}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{y}\PY{p}{,} \PY{n}{label}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Y position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{plot}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{x}\PY{p}{,} \PY{n}{label}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{X position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Position over Time}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Time (s)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{legend}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)} +\end{Verbatim} + + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_25_0.png} + \end{center} + { \hspace*{\fill} \\} + + These lines represent the change in X and Y position over time. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{v\PYZus{}final} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{n}{get\PYZus{}last\PYZus{}value}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{vx}\PY{p}{)} \PY{o}{*} \PY{n}{m} \PY{o}{/} \PY{n}{s}\PY{p}{,} \PY{n}{get\PYZus{}last\PYZus{}value}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{vy}\PY{p}{)}\PY{p}{)} + \PY{n+nb}{print}\PY{p}{(}\PY{n}{v\PYZus{}final}\PY{o}{.}\PY{n}{mag}\PY{p}{)} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +15.73897673293782 meter / second + + \end{Verbatim} + + The cell above shows how we obtain the arrival velocity. + + \hypertarget{sweeping-start-height}{% +\section{Sweeping Start Height}\label{sweeping-start-height}} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{thresholds} \PY{o}{=} \PY{n}{linspace}\PY{p}{(}\PY{l+m+mi}{60}\PY{p}{,} \PY{l+m+mi}{90}\PY{p}{,} \PY{l+m+mi}{10}\PY{p}{)} + \PY{k}{for} \PY{n}{i}\PY{p}{,}\PY{n}{e} \PY{o+ow}{in} \PY{n+nb}{enumerate}\PY{p}{(}\PY{n}{thresholds}\PY{p}{)}\PY{p}{:} + \PY{n}{thresholds}\PY{p}{[}\PY{n}{i}\PY{p}{]} \PY{o}{\PYZhy{}}\PY{o}{=} \PY{n}{params}\PY{o}{.}\PY{n}{WH\PYZus{}window\PYZus{}abs\PYZus{}height} + \PY{n+nb}{print}\PY{p}{(}\PY{n}{thresholds}\PY{p}{)} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +[ 0.7 4.03333333 7.36666667 10.7 14.03333333 17.36666667 + 20.7 24.03333333 27.36666667 30.7 ] + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{for} \PY{n}{y} \PY{o+ow}{in} \PY{n}{thresholds}\PY{p}{:} + \PY{n}{system} \PY{o}{=} \PY{n}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{100} \PY{o}{*} \PY{n}{m}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{n}{y}\PY{p}{)}\PY{p}{)} + \PY{n}{results}\PY{p}{,} \PY{n}{details} \PY{o}{=} \PY{n}{run\PYZus{}ode\PYZus{}solver}\PY{p}{(}\PY{n}{system}\PY{p}{,} \PY{n}{slope\PYZus{}func}\PY{p}{,} \PY{n}{events}\PY{o}{=}\PY{n}{event\PYZus{}func}\PY{p}{,} \PY{n}{method}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{LSODA}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{plot}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{x}\PY{p}{,} \PY{n}{results}\PY{o}{.}\PY{n}{y} \PY{o}{\PYZhy{}} \PY{n}{z}\PY{o}{.}\PY{n}{y}\PY{o}{.}\PY{n}{magnitude} \PY{o}{+} \PY{n}{params}\PY{o}{.}\PY{n}{WH\PYZus{}window\PYZus{}abs\PYZus{}height}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ro\PYZhy{}}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Zip\PYZhy{}lining from AC to West Hall (Different Starting Points)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{X Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Y Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} [] +\end{Verbatim} + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_31_10.png} + \end{center} + { \hspace*{\fill} \\} + + The plot above shows the process of zip-lining from various starting +heights. We obtained the range of height differences using Olin +College's blueprints, by comparing the absolute heights of the top of +the AC, bottom of the AC, and our destination room in West Hall. + + \hypertarget{finding-end-velocities}{% +\section{Finding End Velocities}\label{finding-end-velocities}} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{thresholds} \PY{o}{=} \PY{n}{linspace}\PY{p}{(}\PY{l+m+mi}{60}\PY{p}{,} \PY{l+m+mi}{90}\PY{p}{,} \PY{l+m+mi}{15}\PY{p}{)} + \PY{n+nb}{print}\PY{p}{(}\PY{n}{thresholds}\PY{p}{)} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +[60. 62.14285714 64.28571429 66.42857143 68.57142857 70.71428571 + 72.85714286 75. 77.14285714 79.28571429 81.42857143 83.57142857 + 85.71428571 87.85714286 90. ] + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{landing\PYZus{}speed}\PY{p}{(}\PY{n}{startHeight}\PY{p}{,} \PY{n}{params}\PY{p}{)}\PY{p}{:} + \PY{n}{height\PYZus{}y} \PY{o}{=} \PY{n}{startHeight} \PY{o}{\PYZhy{}} \PY{n}{params}\PY{o}{.}\PY{n}{WH\PYZus{}window\PYZus{}abs\PYZus{}height} + \PY{n}{system} \PY{o}{=} \PY{n}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{100} \PY{o}{*} \PY{n}{m}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{n}{height\PYZus{}y}\PY{p}{)}\PY{p}{)} + \PY{n}{results}\PY{p}{,} \PY{n}{details} \PY{o}{=} \PY{n}{run\PYZus{}ode\PYZus{}solver}\PY{p}{(}\PY{n}{system}\PY{p}{,} \PY{n}{slope\PYZus{}func}\PY{p}{,} \PY{n}{events}\PY{o}{=}\PY{n}{event\PYZus{}func}\PY{p}{,} \PY{n}{method}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{LSODA}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{v\PYZus{}final} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{n}{get\PYZus{}last\PYZus{}value}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{vx}\PY{p}{)} \PY{o}{*} \PY{n}{m} \PY{o}{/} \PY{n}{s}\PY{p}{,} \PY{n}{get\PYZus{}last\PYZus{}value}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{vy}\PY{p}{)}\PY{p}{)} + \PY{k}{return} \PY{n}{v\PYZus{}final}\PY{o}{.}\PY{n}{mag} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{landing\PYZus{}speed}\PY{p}{(}\PY{l+m+mi}{60}\PY{p}{,} \PY{n}{params}\PY{p}{)} +\end{Verbatim} + +\texttt{\color{outcolor}Out[{\color{outcolor}0}]:} + + $2.651921049001805\ \frac{\mathrm{meter}}{\mathrm{second}}$ + + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{landing} \PY{o}{=} \PY{n}{SweepSeries}\PY{p}{(}\PY{p}{)} + + \PY{k}{for} \PY{n}{y} \PY{o+ow}{in} \PY{n}{thresholds}\PY{p}{:} + \PY{n}{landing}\PY{p}{[}\PY{n}{y}\PY{p}{]} \PY{o}{=} \PY{n}{landing\PYZus{}speed}\PY{p}{(}\PY{n}{y}\PY{p}{,} \PY{n}{params}\PY{p}{)} + + \PY{n}{plot}\PY{p}{(}\PY{n}{landing}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ro\PYZhy{}}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Zip\PYZhy{}lining from AC to West Hall}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Starting Height (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Landing speed(m/s)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_37_0.png} + \end{center} + { \hspace*{\fill} \\} + + This plot shows the landing speed depending on starting height. By +looking at this plot, we can choose a particular start height depending +on our desired landing speed. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{landing} +\end{Verbatim} + + +\begin{Verbatim}[commandchars=\\\{\}] +{\color{outcolor}Out[{\color{outcolor}0}]:} 60.000000 2.651921049001805 meter / second + 62.142857 5.343746587591299 meter / second + 64.285714 7.074894599711499 meter / second + 66.428571 8.456477911463677 meter / second + 68.571429 9.63932336233028 meter / second + 70.714286 10.688617419758609 meter / second + 72.857143 11.63984596447041 meter / second + 75.000000 12.514808133787712 meter / second + 77.142857 13.327981059112659 meter / second + 79.285714 14.08954798936296 meter / second + 81.428571 14.806934586049014 meter / second + 83.571429 15.48581549457082 meter / second + 85.714286 16.130651554946795 meter / second + 87.857143 16.745008583241006 meter / second + 90.000000 17.33179174000917 meter / second + dtype: object +\end{Verbatim} + + \hypertarget{ideal-starting-height}{% +\section{Ideal Starting Height}\label{ideal-starting-height}} + + We wanted to calculate our ideal starting height. We wrote an error +function that approaches zero as the ideal starting height is +approached. The maximum landing speed is determined based on the maximum +safe landing speed of a hang-glider, which exerts analagous forces on a +human. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{error\PYZus{}func}\PY{p}{(}\PY{n}{startHeight}\PY{p}{,} \PY{n}{params}\PY{p}{)}\PY{p}{:} + \PY{k}{return} \PY{n}{params}\PY{o}{.}\PY{n}{max\PYZus{}landing\PYZus{}speed} \PY{o}{\PYZhy{}} \PY{n}{landing\PYZus{}speed}\PY{p}{(}\PY{n}{startHeight}\PY{p}{,} \PY{n}{params}\PY{p}{)} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{error\PYZus{}func}\PY{p}{(}\PY{l+m+mi}{60}\PY{p}{,} \PY{n}{params}\PY{p}{)} +\end{Verbatim} + +\texttt{\color{outcolor}Out[{\color{outcolor}0}]:} + + $9.348078950998195\ \frac{\mathrm{meter}}{\mathrm{second}}$ + + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{res} \PY{o}{=} \PY{n}{fsolve}\PY{p}{(}\PY{n}{error\PYZus{}func}\PY{p}{,} \PY{l+m+mi}{75}\PY{p}{,} \PY{n}{params}\PY{p}{)} + \PY{n+nb}{print}\PY{p}{(}\PY{n}{res}\PY{p}{)} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +[73.71902744] + + \end{Verbatim} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{error\PYZus{}func}\PY{p}{(}\PY{n}{fsolve}\PY{p}{(}\PY{n}{error\PYZus{}func}\PY{p}{,} \PY{l+m+mi}{75}\PY{p}{,} \PY{n}{params}\PY{p}{)}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{,} \PY{n}{params}\PY{p}{)} +\end{Verbatim} + +\texttt{\color{outcolor}Out[{\color{outcolor}0}]:} + + $2.1085355683680973e-12\ \frac{\mathrm{meter}}{\mathrm{second}}$ + + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{system} \PY{o}{=} \PY{n}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{100} \PY{o}{*} \PY{n}{m}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{p}{(}\PY{n}{fsolve}\PY{p}{(}\PY{n}{error\PYZus{}func}\PY{p}{,} \PY{l+m+mi}{75}\PY{p}{,} \PY{n}{params}\PY{p}{)}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]} \PY{o}{\PYZhy{}} \PY{n}{params}\PY{o}{.}\PY{n}{WH\PYZus{}window\PYZus{}abs\PYZus{}height}\PY{p}{)}\PY{p}{)}\PY{p}{)} + \PY{n}{results}\PY{p}{,} \PY{n}{details} \PY{o}{=} \PY{n}{run\PYZus{}ode\PYZus{}solver}\PY{p}{(}\PY{n}{system}\PY{p}{,} \PY{n}{slope\PYZus{}func}\PY{p}{,} \PY{n}{events}\PY{o}{=}\PY{n}{event\PYZus{}func}\PY{p}{,} \PY{n}{method}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{LSODA}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{plot}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{x}\PY{p}{,} \PY{n}{results}\PY{o}{.}\PY{n}{y} \PY{o}{\PYZhy{}} \PY{n}{z}\PY{o}{.}\PY{n}{y}\PY{o}{.}\PY{n}{magnitude} \PY{o}{+} \PY{n}{params}\PY{o}{.}\PY{n}{WH\PYZus{}window\PYZus{}abs\PYZus{}height}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ro\PYZhy{}}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Zip\PYZhy{}lining from AC to West Hall}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{X Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Y Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_46_0.png} + \end{center} + { \hspace*{\fill} \\} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{plot}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{y} \PY{o}{\PYZhy{}} \PY{n}{z}\PY{o}{.}\PY{n}{y}\PY{o}{.}\PY{n}{magnitude} \PY{o}{+} \PY{n}{params}\PY{o}{.}\PY{n}{WH\PYZus{}window\PYZus{}abs\PYZus{}height}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{ro\PYZhy{}}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Zip\PYZhy{}lining from AC to West Hall}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Time (s)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Y Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_47_0.png} + \end{center} + { \hspace*{\fill} \\} + + This plot represents the ideal descent of a zip-liner from the AC to +West Hall. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{Vector}\PY{p}{(}\PY{n}{get\PYZus{}last\PYZus{}value}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{vx}\PY{p}{)}\PY{p}{,} \PY{n}{get\PYZus{}last\PYZus{}value}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{vy}\PY{p}{)}\PY{p}{)}\PY{o}{.}\PY{n}{mag} +\end{Verbatim} + +\texttt{\color{outcolor}Out[{\color{outcolor}0}]:} + + $11.999999999997891\ dimensionless$ + + + + The zip-liner arrives incredibly close to, but slightly below, the +maximum safe velocity. + + \hypertarget{conclusions}{% +\section{Conclusions}\label{conclusions}} + +In this model, we find that the ideal starting height to arrive as +quickly as possible (but at a safe speed) when zip-lining to West Hall +would be around the third floor (about 15m above the first floor of the +AC). The zip-liner would arrive safely at a speed slightly below 12 m/s. +Before attempting this, we would want to conduct more precise modeling +and account for the forces we've abstracted out of our model, like the +tension in the rope and the changing normal force of the rope against +the zip-liner through the handle. + + \hypertarget{future-steps-questioning-assumptions.-straight-zipline}{% +\section{Future Steps: Questioning Assumptions. Straight +Zipline?}\label{future-steps-questioning-assumptions.-straight-zipline}} + + We didn't have time to finish this modeling work, but with more work we +might be able to simulate a more accurate zip-line curvature. To +simplify our modeling, we assumed the line would be under infinite +tension (in other words, perfectly straight) and the wheel would roll +perfectly. For the wheel to behave efficiently, it's more likely that +the line would have to maintain some slack. To get a more accurate +estimate, we would continue this modeling work. + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{calc\PYZus{}parabola\PYZus{}vertex}\PY{p}{(}\PY{n}{x1}\PY{p}{,} \PY{n}{y1}\PY{p}{,} \PY{n}{x2}\PY{p}{,} \PY{n}{y2}\PY{p}{,} \PY{n}{x3}\PY{p}{,} \PY{n}{y3}\PY{p}{)}\PY{p}{:} + \PY{l+s+sd}{\PYZsq{}\PYZsq{}\PYZsq{}} + \PY{l+s+sd}{ Adapted and modifed to get the unknowns for defining a parabola:} + \PY{l+s+sd}{ http://stackoverflow.com/questions/717762/how\PYZhy{}to\PYZhy{}calculate\PYZhy{}the\PYZhy{}vertex\PYZhy{}of\PYZhy{}a\PYZhy{}parabola\PYZhy{}given\PYZhy{}three\PYZhy{}points} + \PY{l+s+sd}{ With thanks to http://chris35wills.github.io/parabola\PYZus{}python/} + \PY{l+s+sd}{ \PYZsq{}\PYZsq{}\PYZsq{}} + + \PY{n}{d} \PY{o}{=} \PY{p}{(}\PY{n}{x1}\PY{o}{\PYZhy{}}\PY{n}{x2}\PY{p}{)} \PY{o}{*} \PY{p}{(}\PY{n}{x1}\PY{o}{\PYZhy{}}\PY{n}{x3}\PY{p}{)} \PY{o}{*} \PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x3}\PY{p}{)}\PY{p}{;} + \PY{n}{A} \PY{o}{=} \PY{p}{(}\PY{n}{x3} \PY{o}{*} \PY{p}{(}\PY{n}{y2}\PY{o}{\PYZhy{}}\PY{n}{y1}\PY{p}{)} \PY{o}{+} \PY{n}{x2} \PY{o}{*} \PY{p}{(}\PY{n}{y1}\PY{o}{\PYZhy{}}\PY{n}{y3}\PY{p}{)} \PY{o}{+} \PY{n}{x1} \PY{o}{*} \PY{p}{(}\PY{n}{y3}\PY{o}{\PYZhy{}}\PY{n}{y2}\PY{p}{)}\PY{p}{)} \PY{o}{/} \PY{n}{d}\PY{p}{;} + \PY{n}{B} \PY{o}{=} \PY{p}{(}\PY{n}{x3}\PY{o}{*}\PY{n}{x3} \PY{o}{*} \PY{p}{(}\PY{n}{y1}\PY{o}{\PYZhy{}}\PY{n}{y2}\PY{p}{)} \PY{o}{+} \PY{n}{x2}\PY{o}{*}\PY{n}{x2} \PY{o}{*} \PY{p}{(}\PY{n}{y3}\PY{o}{\PYZhy{}}\PY{n}{y1}\PY{p}{)} \PY{o}{+} \PY{n}{x1}\PY{o}{*}\PY{n}{x1} \PY{o}{*} \PY{p}{(}\PY{n}{y2}\PY{o}{\PYZhy{}}\PY{n}{y3}\PY{p}{)}\PY{p}{)} \PY{o}{/} \PY{n}{d}\PY{p}{;} + \PY{n}{C} \PY{o}{=} \PY{p}{(}\PY{n}{x2} \PY{o}{*} \PY{n}{x3} \PY{o}{*} \PY{p}{(}\PY{n}{x2}\PY{o}{\PYZhy{}}\PY{n}{x3}\PY{p}{)} \PY{o}{*} \PY{n}{y1}\PY{o}{+}\PY{n}{x3} \PY{o}{*} \PY{n}{x1} \PY{o}{*} \PY{p}{(}\PY{n}{x3}\PY{o}{\PYZhy{}}\PY{n}{x1}\PY{p}{)} \PY{o}{*} \PY{n}{y2}\PY{o}{+}\PY{n}{x1} \PY{o}{*} \PY{n}{x2} \PY{o}{*} \PY{p}{(}\PY{n}{x1}\PY{o}{\PYZhy{}}\PY{n}{x2}\PY{p}{)} \PY{o}{*} \PY{n}{y3}\PY{p}{)} \PY{o}{/} \PY{n}{d}\PY{p}{;} + + \PY{k}{return} \PY{n}{A}\PY{p}{,}\PY{n}{B}\PY{p}{,}\PY{n}{C} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n+nb}{range} \PY{o}{=} \PY{n}{linrange}\PY{p}{(}\PY{l+m+mi}{60}\PY{p}{,} \PY{l+m+mi}{90}\PY{p}{,} \PY{l+m+mi}{5}\PY{p}{)} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{:} + \PY{n}{xNum} \PY{o}{=} \PY{n}{linrange}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,} \PY{l+m+mi}{100}\PY{p}{)} + \PY{n}{x1}\PY{p}{,}\PY{n}{y1}\PY{o}{=}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{,}\PY{n}{i}\PY{p}{]} + \PY{n}{x3}\PY{p}{,}\PY{n}{y3}\PY{o}{=}\PY{p}{[}\PY{l+m+mi}{100}\PY{p}{,}\PY{l+m+mf}{59.3}\PY{p}{]} + + \PY{n}{x2}\PY{p}{,}\PY{n}{y2}\PY{o}{=}\PY{p}{[}\PY{l+m+mi}{50}\PY{p}{,}\PY{n}{y3}\PY{o}{\PYZhy{}}\PY{p}{(}\PY{n}{y1}\PY{o}{\PYZhy{}}\PY{n}{y3}\PY{p}{)}\PY{o}{/}\PY{p}{(}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{pi}\PY{p}{)}\PY{p}{]} + + \PY{c+c1}{\PYZsh{}Calculate the unknowns of the equation y=ax\PYZca{}2+bx+c} + \PY{n}{a}\PY{p}{,}\PY{n}{b}\PY{p}{,}\PY{n}{c}\PY{o}{=}\PY{n}{calc\PYZus{}parabola\PYZus{}vertex}\PY{p}{(}\PY{n}{x1}\PY{p}{,} \PY{n}{y1}\PY{p}{,} \PY{n}{x2}\PY{p}{,} \PY{n}{y2}\PY{p}{,} \PY{n}{x3}\PY{p}{,} \PY{n}{y3}\PY{p}{)} + + \PY{n}{zline} \PY{o}{=} \PY{n}{SweepSeries}\PY{p}{(}\PY{p}{)} + \PY{n}{dz} \PY{o}{=} \PY{n}{SweepSeries}\PY{p}{(}\PY{p}{)} + + \PY{k}{for} \PY{n}{x} \PY{o+ow}{in} \PY{n}{xNum}\PY{p}{:} + \PY{n}{zline}\PY{p}{[}\PY{n}{x}\PY{p}{]} \PY{o}{=} \PY{n}{a} \PY{o}{*} \PY{n}{x} \PY{o}{*}\PY{o}{*} \PY{l+m+mi}{2} \PY{o}{+} \PY{n}{b} \PY{o}{*} \PY{n}{x} \PY{o}{+} \PY{n}{c} + \PY{n}{dz}\PY{p}{[}\PY{n}{x}\PY{p}{]} \PY{o}{=} \PY{l+m+mi}{2} \PY{o}{*} \PY{n}{a} \PY{o}{*} \PY{n}{x} \PY{o}{+} \PY{n}{b} + + \PY{n}{plot}\PY{p}{(}\PY{n}{xNum}\PY{p}{,} \PY{n}{zline}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Parabolic Zip\PYZhy{}line Curves}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{X (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Y (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_56_0.png} + \end{center} + { \hspace*{\fill} \\} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{for} \PY{n}{i} \PY{o+ow}{in} \PY{n+nb}{range}\PY{p}{:} + \PY{n}{xNum} \PY{o}{=} \PY{n}{linrange}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{,} \PY{l+m+mi}{100}\PY{p}{)} + \PY{n}{x1}\PY{p}{,}\PY{n}{y1}\PY{o}{=}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{,}\PY{n}{i}\PY{p}{]} + \PY{n}{x3}\PY{p}{,}\PY{n}{y3}\PY{o}{=}\PY{p}{[}\PY{l+m+mi}{100}\PY{p}{,}\PY{l+m+mf}{59.3}\PY{p}{]} + + \PY{n}{x2}\PY{p}{,}\PY{n}{y2}\PY{o}{=}\PY{p}{[}\PY{l+m+mi}{50}\PY{p}{,}\PY{n}{y3}\PY{o}{\PYZhy{}}\PY{p}{(}\PY{n}{y1}\PY{o}{\PYZhy{}}\PY{n}{y3}\PY{p}{)}\PY{o}{/}\PY{p}{(}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{pi}\PY{p}{)}\PY{p}{]} + + \PY{c+c1}{\PYZsh{}Calculate the unknowns of the equation y=ax\PYZca{}2+bx+c} + \PY{n}{a}\PY{p}{,}\PY{n}{b}\PY{p}{,}\PY{n}{c}\PY{o}{=}\PY{n}{calc\PYZus{}parabola\PYZus{}vertex}\PY{p}{(}\PY{n}{x1}\PY{p}{,} \PY{n}{y1}\PY{p}{,} \PY{n}{x2}\PY{p}{,} \PY{n}{y2}\PY{p}{,} \PY{n}{x3}\PY{p}{,} \PY{n}{y3}\PY{p}{)} + + \PY{n}{zline} \PY{o}{=} \PY{n}{SweepSeries}\PY{p}{(}\PY{p}{)} + \PY{n}{dz} \PY{o}{=} \PY{n}{SweepSeries}\PY{p}{(}\PY{p}{)} + + \PY{k}{for} \PY{n}{x} \PY{o+ow}{in} \PY{n}{xNum}\PY{p}{:} + \PY{n}{zline}\PY{p}{[}\PY{n}{x}\PY{p}{]} \PY{o}{=} \PY{n}{a} \PY{o}{*} \PY{n}{x} \PY{o}{*}\PY{o}{*} \PY{l+m+mi}{2} \PY{o}{+} \PY{n}{b} \PY{o}{*} \PY{n}{x} \PY{o}{+} \PY{n}{c} + \PY{n}{dz}\PY{p}{[}\PY{n}{x}\PY{p}{]} \PY{o}{=} \PY{l+m+mi}{2} \PY{o}{*} \PY{n}{a} \PY{o}{*} \PY{n}{x} \PY{o}{+} \PY{n}{b} + + \PY{n}{plot}\PY{p}{(}\PY{n}{xNum}\PY{p}{,} \PY{n}{dz}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Parabolic Zip\PYZhy{}line Derivatives}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{X (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Y (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_57_0.png} + \end{center} + { \hspace*{\fill} \\} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{effective\PYZus{}parabolic\PYZus{}force}\PY{p}{(}\PY{n}{state}\PY{p}{,} \PY{n}{system}\PY{p}{)}\PY{p}{:} + \PY{l+s+sd}{\PYZdq{}\PYZdq{}\PYZdq{}Calculates gravitational force for arbitrary objects\PYZdq{}\PYZdq{}\PYZdq{}} + \PY{n}{x}\PY{p}{,} \PY{n}{y}\PY{p}{,} \PY{n}{vx}\PY{p}{,} \PY{n}{vy} \PY{o}{=} \PY{n}{state} + \PY{n}{unpack}\PY{p}{(}\PY{n}{system}\PY{p}{)} + + \PY{c+c1}{\PYZsh{}Force of Gravity} + \PY{n}{grav\PYZus{}f} \PY{o}{=} \PY{n}{earth\PYZus{}grav}\PY{p}{(}\PY{n}{m\PYZus{}human}\PY{p}{,} \PY{n}{grav}\PY{p}{)} + + \PY{c+c1}{\PYZsh{}Force of Drag} + \PY{n}{drag\PYZus{}f} \PY{o}{=} \PY{n}{drag\PYZus{}force}\PY{p}{(}\PY{n}{rho}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{n}{vx}\PY{p}{,} \PY{n}{vy}\PY{p}{)}\PY{p}{,} \PY{n}{area}\PY{p}{,} \PY{n}{cd}\PY{p}{)} + + \PY{c+c1}{\PYZsh{}Net Force} + \PY{n}{net\PYZus{}force} \PY{o}{=} \PY{n}{grav\PYZus{}f} \PY{o}{+} \PY{n}{drag\PYZus{}f} + + \PY{c+c1}{\PYZsh{} Find parabola} + \PY{n}{x1}\PY{p}{,}\PY{n}{y1}\PY{o}{=}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{,}\PY{n}{z}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]}\PY{o}{.}\PY{n}{magnitude}\PY{p}{]} \PY{c+c1}{\PYZsh{} AC startpoint} + \PY{n}{x3}\PY{p}{,}\PY{n}{y3}\PY{o}{=}\PY{p}{[}\PY{l+m+mi}{100}\PY{p}{,}\PY{n}{WH\PYZus{}window\PYZus{}abs\PYZus{}height}\PY{p}{]} \PY{c+c1}{\PYZsh{} WH endpoint} + + \PY{n}{x2}\PY{p}{,}\PY{n}{y2}\PY{o}{=}\PY{p}{[}\PY{l+m+mi}{50}\PY{p}{,}\PY{n}{y3}\PY{o}{\PYZhy{}}\PY{p}{(}\PY{n}{y1}\PY{o}{\PYZhy{}}\PY{n}{y3}\PY{p}{)}\PY{o}{/}\PY{p}{(}\PY{l+m+mi}{2}\PY{o}{*}\PY{n}{pi}\PY{p}{)}\PY{p}{]} \PY{c+c1}{\PYZsh{} midpoint} + + \PY{c+c1}{\PYZsh{}Calculate the unknowns} + \PY{n}{a}\PY{p}{,}\PY{n}{b}\PY{p}{,}\PY{n}{c}\PY{o}{=}\PY{n}{calc\PYZus{}parabola\PYZus{}vertex}\PY{p}{(}\PY{n}{x1}\PY{p}{,} \PY{n}{y1}\PY{p}{,} \PY{n}{x2}\PY{p}{,} \PY{n}{y2}\PY{p}{,} \PY{n}{x3}\PY{p}{,} \PY{n}{y3}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} Find the tangent vector} + \PY{n}{tangent\PYZus{}vector} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{,} \PY{l+m+mi}{2} \PY{o}{*} \PY{n}{a} \PY{o}{*} \PY{n}{x} \PY{o}{+} \PY{n}{b}\PY{p}{)} + \PY{n+nb}{print}\PY{p}{(}\PY{n}{tangent\PYZus{}vector}\PY{p}{)} + + \PY{c+c1}{\PYZsh{}Effective Force} + \PY{n}{effective\PYZus{}force} \PY{o}{=} \PY{n}{net\PYZus{}force}\PY{o}{.}\PY{n}{proj}\PY{p}{(}\PY{n}{tangent\PYZus{}vector}\PY{o}{.}\PY{n}{hat}\PY{p}{(}\PY{p}{)}\PY{p}{)} + + \PY{k}{return} \PY{n}{effective\PYZus{}force} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{slope\PYZus{}func\PYZus{}parabolic}\PY{p}{(}\PY{n}{state}\PY{p}{,} \PY{n}{t}\PY{p}{,} \PY{n}{system}\PY{p}{)}\PY{p}{:} + \PY{n}{x}\PY{p}{,} \PY{n}{y}\PY{p}{,} \PY{n}{vx}\PY{p}{,} \PY{n}{vy} \PY{o}{=} \PY{n}{state} + + \PY{n}{unpack}\PY{p}{(}\PY{n}{system}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} make velocity} + \PY{n}{v} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{n}{vx}\PY{p}{,} \PY{n}{vy}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} calculate force} + \PY{n}{force} \PY{o}{=} \PY{n}{effective\PYZus{}parabolic\PYZus{}force}\PY{p}{(}\PY{n}{state}\PY{p}{,} \PY{n}{system}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} calculate acceleration} + \PY{n}{a} \PY{o}{=} \PY{n}{force} \PY{o}{*} \PY{p}{(}\PY{l+m+mi}{1}\PY{o}{/}\PY{n}{m\PYZus{}human}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} cast acceleration to modsimvector} + \PY{n}{a} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{n}{a}\PY{p}{[}\PY{l+m+mi}{0}\PY{p}{]}\PY{p}{,} \PY{n}{a}\PY{p}{[}\PY{l+m+mi}{1}\PY{p}{]}\PY{p}{)} + + \PY{c+c1}{\PYZsh{} return velocity and acceleration} + \PY{k}{return} \PY{n}{vx}\PY{p}{,} \PY{n}{vy}\PY{p}{,} \PY{n}{a}\PY{o}{.}\PY{n}{x}\PY{p}{,} \PY{n}{a}\PY{o}{.}\PY{n}{y} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{k}{def} \PY{n+nf}{event\PYZus{}func\PYZus{}parabolic}\PY{p}{(}\PY{n}{state}\PY{p}{,} \PY{n}{t}\PY{p}{,} \PY{n}{system}\PY{p}{)}\PY{p}{:} + \PY{n}{x}\PY{p}{,} \PY{n}{y}\PY{p}{,} \PY{n}{vx}\PY{p}{,} \PY{n}{vy} \PY{o}{=} \PY{n}{state} + \PY{n}{position} \PY{o}{=} \PY{n}{Vector}\PY{p}{(}\PY{n}{x}\PY{p}{,} \PY{n}{y}\PY{p}{)} + \PY{k}{return} \PY{n}{position}\PY{o}{.}\PY{n}{mag} \PY{o}{\PYZhy{}} \PY{n}{z}\PY{o}{.}\PY{n}{mag} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{results}\PY{p}{,} \PY{n}{details} \PY{o}{=} \PY{n}{run\PYZus{}ode\PYZus{}solver}\PY{p}{(}\PY{n}{make\PYZus{}system}\PY{p}{(}\PY{n}{params}\PY{p}{,} \PY{n}{Vector}\PY{p}{(}\PY{l+m+mi}{100} \PY{o}{*} \PY{n}{m}\PY{p}{,} \PY{o}{\PYZhy{}}\PY{l+m+mf}{25.1}\PY{p}{)}\PY{p}{)}\PY{p}{,} \PY{n}{slope\PYZus{}func\PYZus{}parabolic}\PY{p}{,} \PY{n}{events}\PY{o}{=}\PY{n}{event\PYZus{}func\PYZus{}parabolic}\PY{p}{,} \PY{n}{method}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{LSODA}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{plot}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{x}\PY{p}{,} \PY{n}{results}\PY{o}{.}\PY{n}{y} \PY{o}{\PYZhy{}} \PY{n}{z}\PY{o}{.}\PY{n}{y}\PY{o}{.}\PY{n}{magnitude}\PY{p}{,} \PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{go\PYZhy{}}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Zip\PYZhy{}lining from AC to West Hall}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{X Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Y Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +[ 1. -1.48010425] dimensionless +[ 1. -1.48010425] dimensionless +[ 1. -1.48010425] dimensionless +[ 1. -1.48010425] dimensionless +[ 1. -1.48010425] dimensionless +[ 1. -1.48009196] dimensionless +[ 1. -1.48009196] dimensionless +[ 1. -1.48005512] dimensionless +[ 1. -1.48005512] dimensionless +[ 1. -1.47999374] dimensionless +[ 1. -1.47999374] dimensionless +[ 1. -1.47994324] dimensionless +[ 1. -1.47994324] dimensionless +[ 1. -1.47988327] dimensionless +[ 1. -1.47988327] dimensionless +[ 1. -1.47981382] dimensionless +[ 1. -1.47981382] dimensionless +[ 1. -1.47961671] dimensionless +[ 1. -1.47961672] dimensionless +[ 1. -1.47936885] dimensionless +[ 1. -1.47936885] dimensionless +[ 1. -1.47907025] dimensionless +[ 1. -1.47907025] dimensionless +[ 1. -1.47839559] dimensionless +[ 1. -1.47839563] dimensionless +[ 1. -1.47755259] dimensionless +[ 1. -1.47755265] dimensionless +[ 1. -1.47654139] dimensionless +[ 1. -1.47654146] dimensionless +[ 1. -1.47420988] dimensionless +[ 1. -1.47421032] dimensionless +[ 1. -1.47129704] dimensionless +[ 1. -1.47129773] dimensionless +[ 1. -1.46780456] dimensionless +[ 1. -1.46780542] dimensionless +[ 1. -1.45969223] dimensionless +[ 1. -1.45969747] dimensionless +[ 1. -1.44956597] dimensionless +[ 1. -1.44957438] dimensionless +[ 1. -1.43744636] dimensionless +[ 1. -1.4374568] dimensionless +[ 1. -1.41010184] dimensionless +[ 1. -1.41012485] dimensionless +[ 1. -1.37635458] dimensionless +[ 1. -1.37635986] dimensionless +[ 1. -1.33635607] dimensionless +[ 1. -1.33637233] dimensionless +[ 1. -1.29041791] dimensionless +[ 1. -1.29043259] dimensionless +[ 1. -1.22404196] dimensionless +[ 1. -1.22406891] dimensionless +[ 1. -1.14923573] dimensionless +[ 1. -1.14926861] dimensionless +[ 1. -1.06674115] dimensionless +[ 1. -1.06677028] dimensionless +[ 1. -0.977353] dimensionless +[ 1. -0.97738114] dimensionless +[ 1. -0.80995055] dimensionless +[ 1. -0.81009713] dimensionless +[ 1. -0.62979874] dimensionless +[ 1. -0.63009574] dimensionless +[ 1. -0.44292993] dimensionless +[ 1. -0.4432954] dimensionless +[ 1. -0.25607017] dimensionless +[ 1. -0.25646415] dimensionless +[ 1. -0.00772528] dimensionless +[ 1. -0.00835732] dimensionless + + \end{Verbatim} + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_61_1.png} + \end{center} + { \hspace*{\fill} \\} + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{n}{plot}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{y}\PY{p}{,} \PY{n}{label}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Y position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{plot}\PY{p}{(}\PY{n}{results}\PY{o}{.}\PY{n}{x}\PY{p}{,} \PY{n}{label}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{X position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{)} + \PY{n}{decorate}\PY{p}{(}\PY{n}{title}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Position over Time}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{xlabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Time (s)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{ylabel}\PY{o}{=}\PY{l+s+s1}{\PYZsq{}}\PY{l+s+s1}{Position (m)}\PY{l+s+s1}{\PYZsq{}}\PY{p}{,} + \PY{n}{legend}\PY{o}{=}\PY{k+kc}{True}\PY{p}{)} +\end{Verbatim} + + + \begin{center} + \adjustimage{max size={0.9\linewidth}{0.9\paperheight}}{output_62_0.png} + \end{center} + { \hspace*{\fill} \\} + + Third floor near the ceiling + + \begin{Verbatim}[commandchars=\\\{\}] +{\color{incolor}In [{\color{incolor}0}]:} \PY{c+c1}{\PYZsh{} Imports} + \PY{k+kn}{from} \PY{n+nn}{IPython}\PY{n+nn}{.}\PY{n+nn}{display} \PY{k}{import} \PY{n}{clear\PYZus{}output} + \PY{k+kn}{import} \PY{n+nn}{os} + \PY{k+kn}{import} \PY{n+nn}{time} + + \PY{c+c1}{\PYZsh{} Install Python libraries} + \PY{o}{!}pip3 install pandas seaborn sympy beautifulsoup4 lxml pint \PY{n+nv}{scipy}\PY{o}{=}\PY{o}{=}\PY{l+m}{1}.1.0 numpy + + \PY{c+c1}{\PYZsh{} Removes code before re\PYZhy{}downloading it} + \PY{o}{!}rm \PYZhy{}rf ./ModSimPy + \PY{o}{!}rm \PYZhy{}rf ./modsim.py + + \PY{c+c1}{\PYZsh{} Grabs ModSimPy} + \PY{o}{!}git clone https://github.com/AllenDowney/ModSimPy.git + \PY{o}{!}cp \PY{l+s+s2}{\PYZdq{}ModSimPy/code/modsim.py\PYZdq{}} . + + \PY{c+c1}{\PYZsh{} Resets kernel to flush outdated libraries (especially SciPy)} + \PY{n}{clear\PYZus{}output}\PY{p}{(}\PY{p}{)} + \PY{n+nb}{print}\PY{p}{(}\PY{l+s+s2}{\PYZdq{}}\PY{l+s+s2}{Configured for ModSimPy. Restarting kernel.}\PY{l+s+s2}{\PYZdq{}}\PY{p}{)} + \PY{n}{time}\PY{o}{.}\PY{n}{sleep}\PY{p}{(}\PY{l+m+mi}{1}\PY{p}{)} + \PY{n}{os}\PY{o}{.}\PY{n}{\PYZus{}exit}\PY{p}{(}\PY{l+m+mi}{0}\PY{p}{)} +\end{Verbatim} + + + \begin{Verbatim}[commandchars=\\\{\}] +Configured for ModSimPy. Restarting kernel. + + \end{Verbatim} + + + % Add a bibliography block to the postdoc + + + + \end{document} diff --git a/code/output_23_0.png b/code/output_23_0.png new file mode 100644 index 0000000000000000000000000000000000000000..5ff6d678a8b6750b85348b74883face6438ccf7d GIT binary patch literal 19258 zcmb7s2RN4h-}WuCw`A`LevPvanWR)nJtlO$YvSmy5${z84 zF2Dct{-5z4&vCqtqoZS{8HLY#lY>RlZ~6F`9o{e z19LZL2PZcNTMJeX>xZtkPL8Y>g+zre3bNjJb90sv7XJ4ELQW6w35yf$cc4(LD0TD| zJ+HLoF>fQi?PJCDL1J0L#ORLS(OK-#%~dJviEOJjhSB3?g0&T+g70nVdGFXszF+!l z8}{_6{qx_^+>~$Fg$#lTBZ+DSDP{37X%j5|bH8|NyBKY}zo5QQwgoK3aE0q%#pA)%a+3PxAN|F^97sCza z|JfKFHF|WsKj#I1dW!Ugi5aEHKi=zZYmK2P^1GIz5%#{}xaP{{Xq5{#e5J~5A+hZs z2pey5aWQ&m$RKu`CE$pHnVGpN;KVeuYYodnqsWloghgkO#A7TDHgO#s@bX9}u<2v$W6mWS9Ex zuC_CGfBxL0Df}rkIr-e9?SB2e&2B}P$wsWI>T2`0$8=II)994G zew>BHkn%eyYdcuz%`>;PjS{=pC08-t5D<|1{JHpjUpwuKVhL>KUTlRCT$)cat-n6q z8*Df}o4Gi)WE${S{CDSbY%(%3VrDto2r`!9%_YS;U;n1yvj%luq66>lM%>HrJ8xoQ zVo>GGrpKSMx3@g}5eubwawK+ibmV-r=d!oI--N+n_vUF|wXu1#H-en=V0VoyOerWu zK%ZSo%HZfYqP4ZPsk@sDC1U;MoS;b^E%Nu>{f$=2ne`muSqZ1{$Mf^|AJd89!bW(_#7f>U zGBTQ3vpPBcJ3sJ_!KOPsHZl_5%G%miuHLSnKlQ~6i@yik^P|;bRu}0U9z56>_g$O% zyE}2!-~ZV1z4uh}*}9`YUwQfXf@*7JNttADP+%#IF~aqc3VsKZ)pO~XXlj8Qu+Otb zQ!3;*Y4X13sd%pU8R!@2NqMd^)_wYfg_@n6HK=~b^~le!r`FTyF@q#&-t||M z83D6jsI{J7Je!`LeuMX%*XB3LgoFg0l}-|BYU;4hNj#X|UaAmWlIG?xA{|}bKj`=B zIfzramwB$4fNPoc7v2()kSN~q{#o$=v$fFca(v`nw>@w-Rnm!B_vTH8vTr3NA_jNw za>&UszLa>-T<>>C&dh8w>-zD-2lz)^hW`OUdmNLpp&@;R!|)l@-u9qrsm(X~M;om) z)8j#lO1HqN$mt=(4OP4HJiTxi7uE6gtFnm+b5>T?fE^#1q+sLqR`_suoTPp5_pxZeU!4kzX(8WiDKVX;UV z7#JWPefaX6q44cnV%OiDO_3BF&R`w<&(YA#z_vxeDZqw3 z*2ZILOuVo{@W{eTOGUvaz#A_qC9vX8@9rHOz@waj@PgbxPraY78w3e;b@hHnF@AnR zTU*;{yzNi|s`Z(8#b{s8hpw(VdU{)Wq)sctAMwDSXchhCw6wIozq>1`_2Lr2)i}n2 zKl^_VcackXrOOkc_P}#`-kT~)$;x7SdMLmxP|S=MAG){%WoL8f@l*RBZCtI}|NYY0 z!y`N@ih%pti%=osnn+(=h{#OKdJWy<0+tU8+ z+c(H9K>7 zlarY)dv6rdUcC~puP7OnCvF>S6Rl}_=$epzkU-@SX6mW~d~Ydwe{bA+zwgZ-e;-rioOO3ZmwU{Cf{4grCs zQdbRr_-p&4UapX0H>UI3w;qVHN5_Y2s6Yt1NT9$*5z}8%OWOd8o;G;~0sS=ud+?h< z{PP3^1ZvvacCr1IxITOO!{mk?l?2mZlCz_WefyrY98%$bcTZ8_dIPD zV#v4}xs<*;%UGx~yMDq8hGmy6EG&!z9^3WL&Uq(SR!VlINr!y+aM7s7jR3;cnRV8> zGzC9;6&01LhqKYNCVf~!oSbM5gO;|o=_G9hEL7dzbPN(m6;JlHfBpVF4ffj(F=4+& zaRSrzN;V>lh-SK9-&93U?;Ko7#P&x{UJVKR0}Jr2rj42QQl|-pw|73i>C%tR$;pX4 z5yU_9)%fKL;f1>uXd|Pvwxygm zZ|oQeKUP#AL9WDS+YaaKS#yZG?gw;>i(gU%N-8VcA+K}Rzh@Y^h2}gPPLpMqlbdV4 zG2LoVcArAVbJb{WP1f(=l8{MV!Cu*b0|#z6t2RG>Ev$yv(($SZ}XW8fJp{?NyJWZc)&A|az?!gEZs zY)gwRQh81UocMLjKGb?8L#_YbB#afm14<4k)i%aFC(JujMQ=G`Mn@T~t*zBGHI>!X z3AnXV0|oSpCmVyXZ}6u;q-~8?JT{o=o`E<9j%@}}X4-^ivZ-2Qb#-<60K-Fthl9h) z$%#{1TAKg%E!xXVN;RH2)_$;fYIUrZ_M#Pj9FuJLmoFO0DJg71Lf46J#CMI}xPJY5 zmFF6><3xSz(b1!$-G&q7&bqq%`6DJH%VMFHqCebOQTF#&2o4D;5-j=&`;jss3H6Y} zcpV+2cg&k>FH0cXmp%A-yS>+*Ue-hKjdn&Hk~WkhNW-+aF_TRpOONpL`2GF;_vW+X zOB{wT@}46UG_7ZZN5H_wW_XQvbg02D>v{8HIy&$n!M8vn!ns2J{e!jU(cVn_{Lf0^ zalc*Tt<^DxnfCary1JAeDwe>7=`u({Kq_%u(SWbAi!XZfMbz=mJ zf28EZBdYiH2X?U^eSCd6q^0k0)S<{onZ~MJugY2F?EHS|WU)2hlPd2kAtx`7WN4%^ zc64;S|Fhyk{m~yyhoO=ya!oSuMLCD9`A(AUW+LH6sH=qQ_t>F041s#ha^XjAM|XGo zug^&gM>XggcB;NZ{;2sV5^!%UEG)0T+k?5xv!c6e6N6G);+Ad1Zje27F3nR?^yBT; zk&9zJ6E;mTfW-1RTL{6I!f&@y2-c~hwLqVsY;6G&d>0c-GmeC1_BBlJ#5-jfo+uaGHo~Y`moH! zD#?s0&F`<^xj4coZVq<#tit<$OA;WJ-+pI!mWGA~g#;K%Dys5N!!o{?s`B~Ha&ezX z(cL{6Dx85QjLhdYBolsTSl;}EO}XX0_A8mN@lU?ksAAKGIOqZ}U=z@$h!PSJmCIlM zltcYyYNFwo;UigBTUZ&9ZoD$w@%IgaS|~$@YTO0R3mG9XqH%DLhC$M?1%f101fkuE zCq~a^`U;h91qC0T9ipiuJCQrmUJZjKwZn1q&|d)WnC#V7Yz4n-QC5QhL(P%_rfc)< zMQ)J`df?4KKeNmkRIWx;Vl?Hs6dH5PKFPfK&ycw$ataD{H6C9Rs3u~%6%L6J4}nyN zV&&k#uCA`0c7-f!?(p`bAlDbuR5DkNO@5Z7E4a_K!Zlt~N^?nfT==GP-y%Pb2dpV8 z!dCu5^3$glQ_W#}6DP+JkXK@sUr5Lj>sGk-F7gRdo*5Fghhq zf7;{tfnFg$+vPx`9oC<8Ut@Ln^s+MRP>029%IYcvf4=-NbFwB2pb1!wf+zmL2Kx(D zHl#6&@j7q%B`Dz9pfeG*>*IwavbFM)2Fda}QvE*tGq>s%H~58ej2nN?e;Z<`q-hM9 z)GZc_AmmT&(0Zbq8XQ7^*VFU{n?Fn=6di#=VH1O`#@&~%d(13PpM5pH_>X9TtVv;( zv)<*Y{Km_3K|{{|*wF&f=8g`ebXICYYO1bDzw^)WyKKIH*&+BPR8xQ^lso)l9W3iY zsi~gwrXFrgEelvhA$0s4NH*+pqMfiI+WGHcnsSZ z#0EkdVibQp!3>Ykne3R{x9%ZqrEb0N_=9n_@L|hD%vCKLVvS_3I)20k0fJZ-T0AToNYES$~^et z{nYNS2`m&mE@EVOFG-zC9!}==!xL)Sv8hkJ?vmnWg_-L^*eq& zJ#VtT-gEK@@T6(Tgf*^TPScdfyF$*Ho(wA%uwIgIUjC87{6N0MZC;mnP0mOzS+Ah5C4u2;$*)ST$ZydpUSJVf zZ85$koEA0?;m>^PLb0x6m;C+WF?z6c9>to+iMNzJkp14zw5rUl>3Oo4U=_qLAAC$q zOWNC4A}7Q9Qm-D-E1I6%sXN1WN%WlLL#IessbJYa$w!>*S#M$^V(GEKpPN?jIEHv= zv0vexLFp3ewm7DK^%Tx7sUt^uVXi`$`9o_$PXVjixtKh^*WT&hTfd%RRxhhhGk*Qk}`oE1NSZ^(-Vi_scd@rxni1|J+J;HUw)Jn>6Q; z&sq(?bIFQAM!r|wNZ%9l$bCcLSIVrq6dO4Ej%eLHo4aIZnMv=ZRRgA16tS@TF5O5R zV6*V*xp~VS19icLmFgP2jFV$&#}oIv%>-bvWg$~4-SVR(mQL2f#d*K-%x0gb4EbBv z4vlD{(N_3g&Ba0UBZUIz$?iO+s=PjVqnQnS>N0>8U|-o$SIuoL2&%P6@dWV3IpAzt z^q3ed(WeZSpH{s)la#sDBQpB4eP-9C-R} zqhk6&-R$=HhZ+xCw(CB~q4TcJTpwp*tamXuy-WJIsn*M%At;uvg{)SLOxgt6Ya_eO^AX4_BJ3IWCo{gSQj4?kU+h=@BCO`Vc2}#{@C-U|*9LBCsE!t5hwu zx<$3-XE4|lDfDL%XH0}kQDHQx@?bwNx)F@7jJ9q!ABO!8vel7 z-OH(5W?}Q5Co1z>T0AcDh{I(KoGuJ!Yf)^zA*@>J$?~JL>k6?M?@t8BU&+XD(DOKD zgoZ_(h3M-25!~koUpP%+0#f(xgiQ4eVEevbQ?b&>Y5T_f@}Q=w>dpPoqFjZbb5`l*fYda7J~ z88=Pv=?sq5IqS*GM_7oXB@Bqd0n&!j&HqXXw&S`+k_j(Mko_!+n+jXJ=J)ZctEFpI zxr=iAfV`QF75DgZ!s$j`lQVw?AL}~ax8VIj)QjA%D_)n1syXiUaRq{uOv+mGuDn<6 zdbE$jH#ov3kQOav@xdNy4c(>AI)m`zEM5Hw}Z z;ZxW*CerJ3t+z_R-A(lpvb`Px#QaydkO#|IbE7nAZf+KF9F^KTJhc3h%%`TNhC)5s z9rIk@-Hph|U^#!mFcf++0DS?*d9O!Qgh zTG6kFdG`ron|to|x`l(o<6A|yo1n8mO)e}%wX~o^!^16pbtIHjRD{F!wnR};(9;*L zxTu{mzU$sP%@!kC|I;g#_BrqpR~id)ZsHS@SxG{0>5mz}XcpamCt}q>zOe)d)oVan zt6b+uN6PJaie+VGXP|)?VUFOm5R?puJS9k1g9AbB+#t~!&1vpfRLSF6R#jECSQ>bT z0KyuYn&x(P{0cUXj&VPJ=o-fq2H2~?ZzxgXabPPY&s zy^i-|K`z?u>0?s&EwF~c=ChNgv-nbB z%S}oO9n0LL^k>lMP6Nz_0hIE4wd+09Wk6V;Bqwt!@bK}e%L#|Szy$--diYZBfuxpZ z%+n{It@etxgoo}9Vm3Seug|6d=`DpX)YgCZ%5!sE0wM&1++ zho2QB*{ZQWcBK07Z}pQT-AW7lyK(5kdW>YKCx%a=p?ok>t7Y9NL!&vx->rEQ5D_Um zItu;%_A;;Z7(=EwSw3i@eEBl6_L)~g5XAdIymD-E4MSV@JG>o}i5QYONfZi-ztN*5 z?u#*EJ-OCM{q}H;h(d>ohiYq{z8@G9K=IfG1&N_6hH~BTlJ(j-&QZRjJ+GP`*3aMX)scIx9~gM_;Su7L;x5F(eZ2d%d&;EJ zY42W5S+9jX{e1yTPD)XAjO63*QF^QM)*5nrP&(4D@n4HgJg9s6z2!y@%^OU2E7>at z88!*o^8qQxXHk(~qm-S|B1rkB>Osd>u?wzc4#7%Qb1L6!`Pb-0YdX?4mX^;yd0tcM z-6%|!dN_mspIo*FmMcd90*#LfT=#wlyPMCOq^jc8@cn}ygB=22lbn?xVo8M4{LnNJxXu+wix?Pqny}Sq>Ep7C)Z*f19$OXx)=0OYq4Ab91lP z+#yH|3=f(LdvOlgvjxR)8oR_HaGab52y*JD2Oduu=N5dv>51WGq#mOCNL6~L6m`5B zK1^Lp#I4HBTW5;zE8x3VyQk<;X%8#O1o+ZPHZ1SVD$5WY<8AHT!QZ7c`bnyTEdtVI zGC!A6mNF_3D?Cz-9kylb$<%Y`glB0fO3 zBv78Sg%Iz2TY2q#qp|ooQy^ZL=jo@o+CyB0K?gab|1!MFY~h;9)wtBRw4)blh$hz@ zQ`uG`%pO&4(62yD+}c9;KqbWJzGQ8Twa*N`Y?xk;#pLI|C9gHl63Y@TXy@E=UB-K^ z#of~a%L>J2B>iPDI;(lgEr;Hl$d0|0uEc$=@|^Oz8rrG~Zap1|H5G#nL#aO_mt3S> z@Z<22N(IjO1hGpDW?gA36ma*0kzMLq^IsqEPVVsC(qOzU^%!X_{uQ9;NMX(M&|@T< z8)s)LG)(akn~RzYd8C{GcqF&R@^S%%jbogd+SrJw1OgOP;8&)uL~6tav*J@~tD|#R zkfU;H98;maM>e7m4+veRqIV3x&5o`hcG!>H%Na6H%$~;|YA3EtJw6xSDOlvlNIQ5C zPBtXcdc1tB5<-JiCi!u2KKj#2px^k_D!(znJWGS`Ie2*RP~U6Z?cLVKnILx3Cwi%C;NF?R{N@wiyE(YR%bivQvB)KruPUsLAqDB(&HO3qODU9N1iJB!dD`Qg*-R z4C+Zn2AQU&=3_=_N~eau63ffWZWjf0Zkj!?iGA*8WAS8@)ggXZ$RsE^E#onDo_=HP zCrPLV^GYM&_V@~RN^}eiXxrkL5L5sF;%R_oBOgCT11(f+R2>YzX$H^_uvKLPgH)k= z+;)^kcWc?d%aYI3#P-gI@2_+@K}>3favzo}i(8#rZ?kd&VF~+-^s@o~5U;s1UeZt4Qq3WDO|)b;iC_(Vh@Nl8fql~?-=ekK1hyVrTW#irHn?cEm!%`F``VY@`; z|3D4k+LYJS(OYhPJKm-%=Gn%z9!-6HWdkHYwE&;Pq%FZk(XTc}Qhi)|{y($;uKTOj z%W-3|P>5Sm-(y=fVT7K%I!x?8IXJOl`IHKiQC4<#sckQ}m6cWIhYz|l(!lKWcnMM1 z#@8^siFiQ97^xU|lD1EVx_p*8@lVo|TWM#XJr#lgU=1i*$nB+mRTjT33g9_60Cikn zWY1Csr*aiJW`#~X6Mz%cjY2^ct=q&OqCc)Xo_LCn_(nw%tG}CSg*A<#5guq2MC*|m z8@dNUiMo1ztaYXCC!`5f;Pf90oG?6dqe>Ur5p&*O7YC#vDi&-zi31A=3=GeRnu^NV z+iwl9^!4>eKl#$2)`1d7C{qsA$K)qR>liZaGN!CIEfcLQ7dwzP-h|Yo#C|99L*wTW z_2uw8$A=F`Ki6`sWP)?udFN|l;v$+RS_QC({s0d09f!i zYJuB*E_&=fssB!g|B6Zicl43KjQeh2{bIoJBVc>*p`ME{8ZQ~^2D0!9AfxLICx72x znb1bxx+%raEGzB#Xm>-(e^V-MR4O?73t=e(H`MA$quf`fGRd8Az!Br^NQ8q~&49bm zE=vH$S+5%KWOuC$1*SW9?yPTZwLq<6Zf(7d{>g5)_;|LBcG#NpKzavElCR1%@LSJI z7w&!HH#OQ}#;y{UR0;lt?)n-)g#&52*C#ppS{V=B zY;0`q4}aha#Pci$YPQIfcASJ9HPk1sJppcx}GK#1UEke92prxWo?^#>)U4K z2@CO%LcIbpyD`Mo8nHOtf|bqsk@YN(o#i`>QqHJnLdHthualxO0kTGHWT@0q^!|6& z6)h8>me^OowE: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 OD0P+V=wc~F{cs$ literal 0 HcmV?d00001 diff --git a/code/output_25_0.png b/code/output_25_0.png new file mode 100644 index 0000000000000000000000000000000000000000..2d14bda3a51be65c6cbfc228c38ec6664bfcfd8c GIT binary patch literal 23062 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 ArvLx| literal 0 HcmV?d00001 diff --git a/code/output_37_0.png b/code/output_37_0.png new file mode 100644 index 0000000000000000000000000000000000000000..3ff6df54f4cff24f1a480fc7b5fee5b8bc6a0773 GIT binary patch literal 20470 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 literal 0 HcmV?d00001 diff --git a/code/output_47_0.png b/code/output_47_0.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9837c1de5b72a628b90ca51a5da339117b10b4 GIT binary patch literal 20594 zcmb5WbyQYg*aZlpB7z{&QVK{nNJ%IH(jX$;(%qc`l7fKJDW%dNof6U@CEeX!QuDn0 zzL{^<%$h&OrAy^~@44rmbDr9JKQ~BT_SL<+5APx&A>ES@7g0b$y1{~kgzR?bHvHrv zr5O+Wb<<8*Lh%m#a=)V=2>(a37FV@HLPCFl_=DU(>3I%6e^B`FoGH+})6w3$D{SDk35>5!@I8Kd!*@C&0$Wwqdx-0-wz(;cCHW&3UvnffK&-t>JHq z^h6!Er#zJF$%%+0FV3s_v9pv;LX$j?TZsbtmOxnef@BfH!$+PX*6+ zUIt9QWY6-tsx_aeV2h%WbF_I&;RxfGzb?{iNg%@#I%i$%_=1wEQlz&rQ5kg?kA5QN zj7hWVvr&o%mu3MepFQon*05TZjkC3upWBQ-lwX~(Eu7OIq|#%A_6 zHz7GZC@Aeswk*jr$51pJ>Ye2juVUjq3VOwF4JEyTohqOV)mLXZ$#;H!u2S!LA+uR(Iz*vfX71!5l;HMVm5SrFGj=5kx#!8_)4j#{ z(qSzW%gI_nn>i6J&r^dRir;eLL8h32E|!otGe6f*BlRyk1e@$sG3(#R%?=c$$6!NfE? z*_m}e-)(KL_eu{8yaQiEa{jlPO~miaDs*{5`H`4=DW{CzUtv+pB}*sqIUq*eTWB{QFZ=j6PyJ1%B%YT0u4ukS zrR}&EH99_HD*WqUYck=f*2A$jQm;&iAA`KGXTO=%wlWdSCNzE$3i+ zIt878dEy`$7HPJfCWVTND>@jDVQ)ZA2)WR(`yrqG%JZQgZ(R=hUY#Bc$W?k?{9{@- z9Vyfe-q9;n8!gmDA${g3-Ix6NbF)?bg;>*vd&q&|;YRSxoF@H#9bXs*$}H6X=4&RL z|AQ~?zz}b0T^-*0`mPS;5WIf<`ukt^axROpW*j;G7l&&@-_^^Rw`=w>i;9Yl50WW* zzV1*&%I+_9zw3^F8VV1=!cw594M&Z$%3=NYQg_1YKsJ_D?IC_dM1+$=FCK%^r)N%< zaE4k=cIV@SyaaQU@~Rfisx%&<>%54lCIB4!iqejxP ztUmte1l0AzU^^1h()uvXnw>`UP!itA?{BjAHp{1rt!IU~tfso=T0*SOdUgKhs{XVX zj}9Pn4NOga1WyoiuA!jtpfj2&UA^40{Cs-BpFk@W?3cR~6&003zwJI8Ww0I^I81Xh zzkCl?2LiSxt4mz=4XI_~MO0J>aj2y$3^d_vA`CN8$cxO|Sm9py|T@Q^A9%1xp|E*mxZpLD@sLr`EQ-&114$5pR|`? zf+H5%>IGT?aO!-+!?Ak#_c6fG-hsbza+n4a-`^7ioUPmRLBBKlW1YuYB!^MYvmY=L1OL_e{>jOSPLWFN zQ#1VT1nz7&mCi0M*d!#<;^N}L^7^G}QC`^+QPdjso=LEKpIEd7C8HT7baWoQ3L}v? zOitjkn1fT$u06OpUT)Nr$lG4~3_RE3-eTvmfwS4s#;D?V1%L2uvzwbTa4J?NDmkR0 z87mjp&4zyX!-ElXnIp{%YkOrHcE{tgXeH{k1Q(eMP&Z%@ePL3MhW|x?K_v3pt-vX7 z2_a}5A5VZyz#$}zortpCofCyk-PzltfLptRF9?13bS+F!3XI1pKIf_3QrE(=hlhtM zEWu>8Q)^R`Z=*l@n`+0+1u~I{P+3^?d%L^4HM_rwf5JUocorQk&nZe(7*Ed5vI*-d zao~n>Hc0|*M~XBahOl^W_4Hn8wpv$^0%z#zQ~wvSpL1Ok^eW^yWxC zqSYmOmn$O*3Ru9=&cTA*(g6?3|8FH7X)sTnyYjcg`rjwVRj?8t!1CC18oY6T>A_wn z^4Q#96<`79P07jm`SHsS6OR2hreGX)1MYd*$*%M*X3;F#vS&w|-@&VbUF%QPxHPx6 zPVd%=XuLqI04x?I9bJ&qvQ7 zZA|*w-8A2Gd3bfaoqZ%~RHS0*7EYW}pHyPhTkL*ntCX)H0e$(#-{Kkxp&{{9x<0bJY#c9OOeC6(%RoV^w^zZ2szB!bzNbk&mx;b zm>Oi_Iq5_TM@r2Iwrh{ckRT-MAUwlCzf_`tTQtP7WR|*TwZJ)q7{H0fP|KY<9I8lKiA=Rq_V&P;-BzOC5xl^)Vr;CZadc^@AF-{lD`_y5?^?BdNMIxs+I8-b{bV?&w6(S2zSOO>Th6i=FGKi3i1FUw zskv*PrW=0Tusu+ ziF1}*N)NaOQh3 z>Wmf}lqWuN%Z5AyHaZK=`e*vL!I4j-sD;e!49#(z&W^Xk0|HPHj;h*e`?qQ7100;D zwg}48r35SE$*M!9?b-EpDGd#h)^Ktfh>hS-OWw6&;xnmYQH~tq9U_lW*Azv)D#aqxn6IwKq9|Ov{oA`u_ap0 zPxmXWXK#>uo$oSn=cpIz{9^JdfajA==8ubiYR2w)?kpBc_#%QrG*QDt(qimq8pIbw z^bq^_P`60sn|8ftRe-hS6G%qOr#%zWUIsiMA?bqiKnVFG9Mh0LD{e4XbwB#}+na1mFh#`Z zFvAGRFZ67B&3Ce-Cxahn3LvW5Nc;?gPjf$6-5X;I4+3c4N`?-lmdo7Jg96rh2dVUqIw zf$ZrnE^Wgra*t*>GtP5CG+X~XL=#)|N)O)#w+Wa*R;^iOKMPr&lLH-hrQ@bra9RQ6 z&e4zt8w8Tti;8UdxoU|NdqZqMq~u(d6XFn}A>_YTl8;>>tVF^9=%P6fMaDcU4xBj?gkQhiO(jW{#A; z0b^m0X>JygO%d#-4Cjxmshs~fL0_{mRvN;rSyfSmfv7CrL$d1g@Tuv<;Fi*CCK#>v zDQo@|_e;2#WPYJN${w=lQ@5*WxNzh{a4;@i@c}uP*{!aEDi`{Zh zrdp}#XWG{{ykX1wAs0NXg0e}xikGQ|>d6x}gAQERqYbnMi0>-pmYRE|h!0(Pm}(HY zu#k`t*_)d%+%pU_w=v-w#m98-AKtFJY+UePSTs z-|;@R(;(5PGuMjYpjqg}dLkw4b0e#}2_+ccAD`(F&&bn5sQdIE%c8T;$R%fZZ=wrP zp3a~Ua@?MqpB;NDF3GODcwmB~g~W)zzr4RJb5`{36BDt1FQz|wQ#2E+9ra)V7E6te zCk-RU*RRrrbgB;^A-Pcd^-4s9YLZbYXOoz3J|r|W16)R~O3~aUDb~)6?|mE;<%0Mb z+j${Ob>kwH4GS`|rLoRV{s#{lhKGNip2U(7%gOBzbavKQDdK*nzjX_}F;mL=g!MBE zmT2(E^qD`w1~Mc9pJ!jqiiwC6fBIRsJ-KF18Bk&Ui%jh@Y2JL8yKG!5=Cl5LDTT<| zi?OF12RDz7VhQ)F0`Ke_jUWF0DF5vf8vkhVud54k`)$m=zCu0!S^@S4)H3YbnMmNc zzU~Mo^ILC`Xw+NgTVb%3ue zGTxO6Z%t&qy4{tCr!E(0QTjUQLDq2-K85Xq_gsriLU}nF-syhAG>m1|5yRa}K&w;V z6VogBy28Z{hrK6}t(I;$Kkn1J_3uUg#H`3@(s@NiM-3c~xoB)`Y=&AgVI(ulM)kLE z5rT!g-DT0a5z5p&@tsNi5kHA+B9fQanJJ~Zda3E3d{Xd@>+6wE9&-+o(ci`Y*=tjz zCgU6w!ZG_BKh|-B)lP42{>@)Kbk$d385mEwP_cw#m<{)=+asy{PERK%m+|2S*#0qY zcqH!YQ=!$HvxOJQOy{^P$?Ox}t1i5r6Bu-(!oe2C^j?<PS`3^69RpGc16j(nMzZ^LF)Rt~zsjn>wP;Aswvb*_JN=#(GT4@0|4Tiw&|$#Uhr)4l zDC^^>*V2wI$4^`$lay3*yMu2;o>jIjjN`XCMDR%OS=Aa)QxGu5+CC@&_kcrJQ;{=% z*pq>0N#-$lUgJ55AvD_9HQQ8ZIoZ8UK#qlq*>F6au#QURZM!J_3GHsNoGfA$ZurM^ z(dVVnu-fTMeqqN-Xcif%pT;22tk4M)fvTZ$Z1vpbWRrUzspNeJzW)37(tr9AiQu~X z{sa>3TnnFRuy7d+KP2R9_*6M`@1Gqf49Rg9Z<5q_*2W3Jj88AzPo=lR9Pi*`N1Tbz ziYiE&wb9YF`$c)2bxbGgxmZo znn6eGtIlXc!LB-wrJ8RXMjOP-qf1>Rg63o)_;I?K9bdXBS^qHZ!U9P6)-f$ynhtf4 zSbd@iUp0U;^q88Jb#e4Hl2LEtkGD&+>*#p&u@cQ*7Y3fMqC7-J7VvSk7B2rCC&m>U zq-hHckP)L-J2jrFB^F= zv-L54pDJqdi;Io@j4GQfWJQLG6;Bqg+cc9F!1)S{99OGZlwY7*%xSUX#d1$p%wh|H zOkkyb`%OaD$21f-F3+?}h_sUU3n__|GQYXZb=(HUQqJYhYcJt9LlQCpu!|dq*a;{&CzXyu3NLa&( zI8xP~;=oRKDOiH_58`T3%~wp`c0ofk^z8cm(XhC{VyORcz0f4eWue>b!{@cZB64wv zesN)qA^MEpWsVN_*aaAee*9_)DRe0rJ=r?3IWy}?;$VnwY)rK`!O=4vWX16p6`>lC zcg8-BddAIZaaSh(xqb#3TLO2&W9o$ZE3RW!KwN_r@la(nwCswK z6K)MN=Ru+3cfDvet5Lo8 zp%zikSkHblYMPQ|O2*yCA;EAvicQP)byjeO<@*Fk58U>|@vbhN@keg8ff47M(CE9w*G(_t|oxf_PTo;8R>hwO9RxL$y=FtDpze&58y20`I^_ zHP1>shJy6ZpFa!hPo$#nE6cnmSZ>o9oHLHKG^rfHvTQ2|{h9AI>#@1F; zZ^(*mW*U%e=jgz==wY z%2WrlJ7{cYEsWZjY-~%F>%+R6Y9$9%l6V{}S@tHwe_=Wjki`9Oo)$I!;K2ju<4Gr8 zK$f8pX&D$8K#V0oPF~Vg^#Wz2ZjyxCdLhuI$MmVic==16R5Ug`22=mYz%~y^(TZIU zO&@ZZ$9~SL$jqI6MKcK5>W#)12wNL|MlJU1ewS%Y8Tnpypa`+PKR}hY&fB#aqVaYRAR6*H< z+vo)GLACcDdZ(nAnc-vGy!)S&?zzv6_F;g?5dhIosOu~9V7W1fxw=%J1WkBdUhZs^ z{3&C~)i7E5)!Y)d%&fsGl^eszR?9}f5+9ZC5LpV&8CDn)P@CZO_9&WX>whVFVz^oC zH|{X0$0L>4W}?yS^vI~yO&pBi((5ZRu2Pv{N7xS_)dW%+^ja#>JT=k#5D8~0Prcht zDTnvX>LA^~yAta(ARNT`jJ@ozjdu3ft9Lzjd{l*#Xu>aebB0J>6qOZAN+i;B=hF03W z%#@_=T4>XiExui0-%cX1^9!}mAml>h2{tzJ;6BBiJ9o0a$DAJ;t5xkS2?@iMl?mQ` zcj?f$wrczDap&rFHS4DM*zM1O{?K?_8kK7{$l4?(6+O}`$LEM4_K|%y)5DEcwZF17 zI8dJzs0^Z@a`1+x)W^)~hO#APN&2-;1ulc%bdMtXkUvpGiqh2t>Wg@K{>e|`eYu*Q z0w%$cdvoV(yU-$G^!xE{Yxe{Zb_Amcj-x1hF~s?N&F+QCA8$7|B_s-6pJI^ZE)G#d zE&>Tt;Y%T!Do5^oW?`pR+FfdvWn{Rcqf&bJ!2=Ct0OO+&Uy16^obBeG{i2+z!sd4N zu``F;>hGQ@!~@P{(dNk!t}3?^T^vPxX1@}nZaX$MR+r+qjq$o#mya!TW3EsuasUJ5 zv^a}gYWDJQtz1h>z!2jz11c$>u}f*7K0Q3_R!>8*R{9y;EB!v zbzt!OucF-LtEk9&=aF=hX|!5MUE_DtTSShgu1?ua-L#g^$C|El4IJ*jGN*ZE@T6o2dsKg4Aa+!NG zYj$O5VMky{0!o*22eZz_pl@rE_1*16L5qAWaxSSH;-~C1%0|6g8}yW=P1n__Ih=y9? z6A`%-1u`yF*neh7dA5b%u^gG3o5)S~b2dg5q}|>8966B%a+s^0QBiFAO~FgTc+Mj7 zwbA=f>lj)4HG0g-+(NVl|3`#(vw=_3941m8ifI)>Z zzY^Jc8^>FVl2 z#QFeuNQv{V9un{*V$ROa!NbAgw-;B@AT)iEC^2d(v&a(Q!uLEu{#!82hC(sNDl0%X z^FQ@`LH%VsKzoS*bYyx_%YG+6kEL}vrhon1tjfHiIE&qzE-Uyz|)Z_$A^cDQ1SQB z!-|v>hZE6ilZBCTZ0_zBILi_~i5yn~?C%a{wqS4HH%Z z&^SCjJrNg^WXeBw-h8T3-ouzyMoMSB6w1pY!4N63K*pQ5YyfZ*r}+r$X%*lqB*2!O z{sS=ZGn4vX2xWnks*LjABjcuR=Zn|YhiBWcIo$0RgV)z^u*;YJ0~zAj4I&HFe;WVV z7%d6<_z}TYbR`QUw32&GAO=V;HP%&n@`di*`_O^{6RbO|`%rP-aol#a_((AqoycWw zzqcR(;MFI0Qov$?=Rp8#_#ys4iS$+2yfgYjNfBnK{uY-ElZ?zzFtp_cja>W@I)P3X zq46IiK8N?jOASGR6Jaf;rD~d*BCeuhV*MEsI7+!HFP=a5&gsOCsNP*p*_m{rTdu>U zMd}qmeaMH8-G5m(yo*FJr}2d$0Z-y>&e*t~UKcjX{!*L^8$=UGq9J}U#Eeel8_BgL zPySTRD>RQAo#-j+QoAk@M4F#6;(vSFS;rFE9fU*Oz^HmdLIPoY?2Opj z^jvz>D(LaZNY?FaZHU#L_WYu}QxXTe6;NL6P! zArS-DGoijUvC}X0Cmr?VUp!Y1USp%q2y0-dJuHsxGnc``H6tm^porn zlI6c76J^InJQV-lB1cX{vTKKD+dDmqt`w{kFUt>~MVdEVDyxv7hV9VvX(i*xiOiCH z8u09WT=RGVIV1?tnrCMTlWxAgnriuh6TFCl5`%Gl%BQ(riiHp~wMQ+vQ+dOVzeb6o zjxz&%qx`EbC3braKYyx$lwI5W>Hg7?-LlR&*FFdT1o+4{&DXslf%={;Ax$r_;#^oG zA`G7*iY_w(jVgWWeb<%xMUe^rOAEY++%y$7=babd6w%z>r4xqk0*>OOm88Hl$A#El zGss-eyP{BkD0A;?A>Fv4Gc8ES-h7T5fx)8LBo-7Dv@uy76B|p21lIK&*n-`I1AAi| zD84^l$FW2nI5|tkJ{M;)SY0h4thQ7?P2Rl^yAJVGZ_Dqo^!4?Hl0J(rEM(Pt_YSf; zEF?hY8+v=gqnXtE%dNEU5-@Lk)`I{nVZGDM5OTET-yYRHL6Cz72i_Mo&8YYDGIfyn zhlsVpKA_i)2eR&wk&%TGa|31JSZFgZ1|V}A{F{*5k_4zX1Vs#_7f*>HY(%!Z3n4$@ z4U|m_s8)0{>Mw0IH7O#0D7tA~9@k&7xgD7Ux9PIa@*e>T_&P9u3x~tn2m%z7Nl~O( zm&_Sy${7Vbtr3Nfs@g>h!Jj$-PO~gsst63Kq2w5#8m8DQ&eeD4TH*vf{&_G-iZrjn zhG{-?Uc@UwXNi3>xWDwP!sb5l`q)1aD%BqXEP_{zPbSJNh(Y5*Lr)*v+}w;?pjxai z0dXdm;d_Nl4YlMzz}5Q3t?Fffy)&7rsZ=5e694;& zg}ml8i}%lNjJEW69LLV6(Vt2VPSXrsDr^Etjv8lIS9a%}8Mi74dwWjcvKGK0!yjMZ zuTvm1--Z0J7%+T(etv`i!xt5cIv}rFNu>EpO^viXojN{PdcM|E8pYm3G*ryz$6GV& z>udC)#TlI3-_b!wF)d&@!D&77{2`}t19)o${RE_w077#BBn_ihO>BzSWgKu&)Ut`r za>r0>Z2wSt+9du&a%8;B(*NpA$ZpU(kVi9KfCVV6ufV7y_~68=v3;GfpC%?#k6?L# z#ic=wg769?t_5)Ak`Nywmpg$fi2{knM7Pm>Y@6I0w{#kiVxJKx6>wQ(%l<0V-5Gqd zvy%Q$?19Z!&ZbUpWR!0pjsVR<>pU|iGl0-Q=6YjOiWQm;0WiqeR=r&(1;p6tUMGvo ztUtld;h_N#nu7(}SNVc|fq_jfZcPJnaDKMye9eX*Jw~p(n!=!TSiLb?Tv;UCBo4+$xM|hr@tSmqA{@9qCl6mxrbGa#8qZ~M_xW;9 z5`w}4UTYb`rTJ*FKa+Zye3mqk;ORnCbzOL1-~cW&1`4Wht?Nhn_@= zW{mFJ0`HORz9#_;0SE__gO}?-h`?zzv%TF5{{@XsV^b4KNXvU5_h3&lf%(+$O(ymJ z^GE)2`|5I=S?B}g{{Wriz4GzdX~MF;;A?Je8vJfZxcWW2OFk-a!pY=A3_P&{Bp=mv zFF@Mle-{ry_VL5y{QUhRKxont&D06Iy80&#MN3O7SF1L@fw&ieHKIDKJ#UYMu@)o- z$}C9%j^ipF_*F`AoP-F?R)@`i2skf9yy`!sc01aboedzDJv@b@%MJ$-*7Vio`Kim* z#W5Y^P~;v5*v}j{8bAdA{M7DlEBW-1-&$Lncs!>`Be)V!+KDS$P*BL)Y{tjcRJ)Ya zGO2S7JbRP=VSVj^%}W!H>FkGEAUZ&`Z0dh+S86wOdK4mAKa>*PWWunNq@JLy!mw-(&YVbyO-|yz;H2WJ0iP)Re=g3HU zdU_+^2I|lE(1Emt=kTdj+85Myol-;)83G7 zz${dL8e;<~`GlJKw)c%&cjZAC1SazmG*n3nwBME?z_ktKuv$C>NZP71nKaoAlU~^o ze4ph^zMGagFz@Sw-hfWi>GxW?swowG;I-?j6jv^2RMvhmkOh0PQm7tLZM&?#6dWl2 zPla)3^MHt`9gfA$V5A@-c8H>Lv}Wo{w8af{c}Ylf;yAT_^yRYXGGoM7 zR;G`f%^=b`zqlw`(I$g0cXH8j^G_T!@Si+tZjK%Jk*B0maX*Ya0N9y?Kq@JY8vgw* zj+(>2>h>#td_c^T?VJxs5|cq1AWn2l*~;RTJ%d;t?4wPN;rc7gY}vTCk}msISz-|w zwB0*QsAowHpX%dkA&n#@%z4F-Xbe4);Z zcy23M;QdK869UEm4yF3U)jad8A(EAp=0p`B6T(d5i*sS8P*sfgI$Q2ecooB}IZ|## zj)sP|F;$BY>68E=Z!}0l5$SO2c4PH+j8_u~UJObvFsTh@E(TQy!~VmK z=-#6@yu=a^ad)q23VwhcL9E|-yVmu^`ro6nH`&tOMWhF`k^ZnVH8nLn;1Gh#>M#GH zTUl8J;60(BxPsG_qx7e`++#YXg6Cw7L8WSN;~pjWL|*g3Y9}i`r!8rar?e+)O|Efi|(h3OkNW|Ew`{In9f6K3~&H&F$G_4QWO=r!{-cp+jguc!f7TWh=c{_;Zi zFQZEJ-=CzsH&Wd7xPCHdj+Gt;@yP#}%>>GuQKb+8d1ktn^+8BoEo_9#?rCWm&R2OO z#qtiA8$0cO9sQGUru^+q>kwWrkI0YN#rbfd+d5Fg$T9$1uqE8|K|bS-bga&imxMU0 zR1PI&+Pha4#x!xVKfKZ{0+_+8MuYZY>L8Zw-G_l-TJYZW%n zMR-MT$ej=X;pN2{z;tYQ^ok9xP3$$DF)V=lJ2>_4NP)}*|_+;t~+CWT)wL#ssPmdA2c2BMZJe_~b4U4hZsPEab{!m=5 zz2)#5Ohe%`Gt{D-%Tl<<0yQlqEp1?##dtC0m(6U8eLYw|lpk7?=Ejf)#$9OVD#dd5 zCQ471=5YPQDgR>X>;mdKNXpRU0Iz0BDOX{H9GF{^J18v7aHhcrs#`z!vvYa2jRVS$ z?fR=8aNpt}b-BE}biX`Z#{CeUv3Dt92-N(agff_juMnx($8_oi~9^#CFAX*+Iu}H3mYYyS$Al6n`T)Z_| z6_*@4TGIW&k$^dt@>Z2ofLf`BW}0|aW~E)an_v4>37e5xi6b~_wY3MC+|0F^01X#~OwPs;%}pi*T| zhtTVQLPw*L9zg-3z;{I|JL1cZ0|S2NPwIOH1~?|Sfjm3*DJY05 z9RKQHDd^B4y>buTm&2$la!n!%SBI)ef}^J9Y^z#2MUWKS9YWKL1PUn;SnvS{Uy#ef z<vWNU&LyPFoX*L{?p9JaazEp@#hn&SgqJ7nr;W@ z3P5Qp{W+D1--4ot*Lg%bf$JVQc?wKeuZR`&-M2AG+M0uK+Eavt(qD!DhNl2sQeT0# z5F?5VvWIV^0Cly}YDU)DM`sG$tDCMvm0xvi!WLH9fDGDJaPdj(X~sDslmbA|ipPf~%q zqa_Jbgaw@S?2uA->!!;Ip8CBEz+^N2^9Zz4jZistgO59z3t>rooe~(xBNc)_Gmr9x z;booskz>d$vG5NgD#Jt6w!WP24#3B@zrTgPQ#Xqd3fcQWorhZhJ~bqY_$20@9|97z zqGJigr8$==H>a^uJPeg67kjtI_?~n^oTs9u&bq^l1VOaPw3IKG7S2P&jE-Aiky`g9 zi_oQUe)`v$0Xd+A0n>MQDj6NKRQS3*@(DtxrJS#U+(i=Gm;UMvfPMi4kgYK57d;mb zR1MNk*tXrJaNoVPF)}+gMkNI|!XV?1)%Lph0{SL-Xq5n2xN5zp063014gl4#mC-Rj zTwZLxx(lhfvi7gFA!a72;(X44kHG{iJvA=-Jf7z~pr^oPRJrfv!WdbY#n51*y0VE+m#IbR7B)=4c zCEeEcx;I=kch+ZPqBd%baQNWje+M)Z%-nga&BVGE*q`F z6ASb6S`rK9QTs7#01{0^T@L{6E<`VO`xSXG^!e*+C_AF>{W}0yrKJ4gkN|@mGh41Y zpShhK?i2%RSDU}`#>TXuqqC8G4SDS^7v~0GftP!ZPMQ1qs2fQ57GT*1q@LDHtoa#* zQ0oH){ITVROoDKM){+Xcw^WQy^BrK>N=qfOqL&m_i4hP`o6L{5;3jMrSciuTn*7i} zxMQ{+Da|mH*$?Xb8aPVj7H7aqk}AhRH%oYbCRlyR=YNBAC7)f7%u7C3y`kagqOwf^ zPoL~{d73arKh0CE0U=HdG$NUU0F?t?WujhmqbJ!vS)e;DoZ|QegnRH^J-MJ!WA{zu z?Y`gtneI9psv`wPe`TD&cG1?tBa-eLxg3N&7Aq@`pmJ3XxAC->OY*HN#!%tKeE?uB zaKZ~eByN3g@Xb-?AfP>ThuU71Wn2io3}l5o;R3f=YW1}xJr;wBgvY9eN*#jKVQn_X z%X{M-z!w|7tz@q`jP|IL0!N%^+#_17rm3D#k*V0!86_v!USTs2MWU^t0IW387kYze z1p;Pss|0Q=!=9TSy=|nDPir9G#zOR@AbjP{%nPHxK(58T_PJq5=b)2XYjJ2w$c>q= zX{V|>=LtIqS%eN4IKnA`fH^n_hvo+XB547w&(4_HeG+r4@uDUYI_ur9kb;!kj-yor z(1Q?UA_RWW;(~}-(DjjcejhM~cT-b4=lk~`np!=xZD!023kJ+*j!R)Oqh|?vYji+w zh^PkOYE-N7P#bIjb`6T2pB;S?5|U1_q}~EC1j3|gz`Nuye8ymed<7Z;Ko1ID34LX{ zUI@}L2SZJGbUaRDq|?2)p;yECFU%Q3AKnsheV(V5pD)Y)O)=mjnb)}uCJ9dih)wZe z)0=I`TwpdmN#hzc)baDT8XJFpR?Qe+#@t(NS+pm5Xil*Z=F}Kil_6>1# zzNV)czlP48MSbn|NQF(8*VYhJvpZ7AZ)13;KC<&z`#g$jcxqeWNeY$5H48BOmyS7m z9vN(GerMlTS=)cCbasSo!10Lj{FJ7-HDP_ndU%M22t>mm#ADRb0zy{4Ftv7b&j3ef zZf>R-E#?a~k?)&EDZq<*1&&ET&z%K9)cjOAW_o9~$z-CUh(i)4;iOaaJc-Y+{pY6Q zT8^@ecTrLVm1^{x#?A&G6q7%x$PmW#VWHij5O42=G-3z3j(E~R+h{|>r1m_5LcWgQ z`F!8O0qX8E+l4?gGn^P(XXl{cU_Gcu+B@?AcIXDy9~q9>9F*G`URRf4%wQ7}GS;j$ zJ2w=+-@s!4)tr1j$wC(zNPIV@x7Y5rhytGjq97>ib(#aQp}Xi0C>29Y#eoE^VO7rPhDtSJff&B|~A zIj9vEAbu=%b5GmbqahAGlzE`s%tF2W=<%;a@miB8v-JnrcFxX-J`CtW$~GCuLbBhQ zh=cwhR_H_dceE)*Hm)rUhwbOdSwgMOU0l{-;DWiQ-sWhi$MAez ztei>hrri>4gFZ4Q77J9FZ0~-vf>0TOlt6zQU|XD8THncXz>FiyNO)7dyh=Wg8MfSw z?g`Zc#=pa;)8Y6C>jK9X3=yT0{?!mZ+W@d zI!?eJU`{CJrfO=St1V4Sz-|0!lNH1?3QP!<5O`D}EUcBk_u`+Hl#7Zqv_)7W=%NP! z2S--<|P4$?G>z>E^?W_Eh26edwnZX@F--l zb1j<|cFT?LZ}I)<`v_bORO68hF>xq3gvM6r=)Oc8xH=Pl*WVX_wCAlj9>du9-&{6S zeroEfd}av(;1;mk<7;YXGhW!%O=K5Ln%8bL)AeSMK;a`K-N8ctJvtMN*l-=RJ^ z%9={i6Uo<~S>U7dAL9NrH?ewV-LUc7Z8dUzEm9E?4+B*gLA_zWrf>Dk5kv5b1h^zk zOPy$p5E;f*4GCQq=48d?8?`*u77d}oL%D9?Utpzd0huf9VFNh z^NaAxQM&i<&=)A6!^KWR%q|}&jHHmRKT>DVCi{1cDkNk_N`RXFDq%=`PT~4K-{~|T zPPwAnE^{Gbva)vEg-){pVk1N>vw`C{v!Io4(4ct|m*hO0Yh$6QdcCOPYG7}ueE-f8 z%yRIuYSUczg~-8wkWMB*eTBZHq2@`sd~} zPSBcMQ4&D*9%^XFvkptm42cepHuLisqO6^rcaM*k0iU6|DA`YK(fb8(IOwPlEua7) z{DwZCwiuR_bScDxB!j-rMcidSe%ztr39TDug+{#AV@*T`d2GzC#TTC5N(pf1fDNXt_ z&={0*f%s?`0yaG`V|pmZaH{i{?@?JRnJ-O>qW5VGXxkn5AwmXnfat!U_BOXU4v1S> z9q6eLUWFS$_EO9-3JMyM$3jUno+ZQT$*)nrRaG?+if|o)94;QrMv%mcCDz3EV@wonNL2*E%%AI-$^QXF^|of3nPoSd%v*LKMs96B z#v+`cjBlwK#G|Ndzg`igVdE^Sf`o)sj(9IXrL;H5r>2gYunJATtee_iduwc`D9V7* zpmIezxACqx$mf_D+T*U*Zz3Xv{9xP4aiKJh12vl2K~qK+T94tRRsZMbj1b}g^-_4^HePICNMS{N7a@^@QX?pa;9%<> zLXe@9%PRGqL*jofFu%?=-X!zax|WW1G2`4MypA_rZ38%3&d8>Jf0keT%i)!MMAz=% zFp2u#SYHBA`Hx8k^DV5#3xAQUto%ksC1OQCGHU$@Ugq7sG&3xW@KuU_h zGhacArU`WaLq{d@473fWiH6`qQpyS*8v1yXUWXyVI_NGYt6uotJ}R5`f*c<5Nx1P7 z2ns+R_NTr;f#%Bg)EB-d05zUMO&rT*@eqJk3V!}Xa0R=QPSd>UBoIq;TlIX5lCR5S zi}BkyG*z13Hvd;bZNE8&=MCUpa8V*=5-TPF;~bf5Yv3R?=}wL*O0O$ zjt&gKtW|>mjK9B5zYVj_g!d*KtPh9hC>OvwM4j_#Yiom4Y3;u*Dm|a0%`^ikxA9~F zR!2sS>ZPix{`UX7SGRxd@Ly&s2hG-py#QNk5f?0bh12V z24|A#`@h-sYRcgPe#k9w=EX+6J)m@s)OK2E!v->P{rc_;VtHyWsvVEkQBZZdVlhY& zlLuslLXGau{O37-^s^fcFr5L7+SU+dv1G1kfnPuqBz2U*>?2cf5{mwhZ0z zzi{M63b07ok(WB~hKD}i4H;S!q~ZL336sF3xC4Vn#IZ5l67uru@)Jk)fTZ~PnN}+b z_~by%bg@6BIdOl`tv3kIkL#^hBc(d4BCh>)hGM-S$m_6JTf>_Iv7x#)TmKhu{mDeG zrKTN4DN}<8LUh+~x}TpHa%HuB`R;2jIgfWe7DgEP*AL(1ReW01aMPO}74RA?U933G zbOd$Vbp&_B89w`3Tog~C74=Ob=!w4i{b(h7nioP7TRr!D|9a_%A9E9GD!l^~C z`+2ShJlIxH@UG$C#*QiDYFNAxpWxFYn_8pMf1_zn81AP`%}W&fbiE(9zo8*>l`=%M znDF{C`^DR+wNJ#p-)wC3HW{c{mrIIdY@}+}f+8w#frSg7@ZpW6o(>jU2Iv;PMe`UM%XZn%-8@f@FQ?mo)bJ$9A~gUffAhaj zmhAa#24uJ|-qkkF?>gUHsHDEQxG**`c_A&00Z^i7E8=<^Rvw-^*#kif3;MKQI=uLq zbFQDN8OITx`u}rkNF$q$h)&Nx#+QXt-K2MxM{Agt~#uQpW@=t!=Ha*=Jx58j>;QdcMF zLzl@h=8VBWPcLj}xb$|DW2O^$;^iWcs3Tql0KMKqKu84w+7TS~L|RS`D^!e9ni{9e zkb}&9=S9uYnAz8NXv>b(y6kbR@J^V%*M1xiKgPm4GU_gl)NyffbpW-12@mx3`2eUs z1Biv+sQGWmWOqSP5)$^LvZjXLFCgG7?+grFUR5>d#}9f)@eU3TXQ6xG!Do3j%8vmp zdOj_BFJxry!EJHx-saFrRwxi8VtbD%8%G|g{?R@lMGX&!Rnw)S>p zBz=AT)Qk)fYkC`a>xwmq6W+n4NHz0)Q&Y@5Uk>*6_7E>IsdoT>=~_z$#eqC6Zd*sk z`xZUy>j}To)1!bFMEHT8;^wVekDoq$s^h67_7Dq+@Zm!QwG#%slGdRhN?nb;qa!q% zPnAQU@&WqpYfg@o4!zCS^mI1pi=W_C)-oV4d`zBYQQw+sZ3nywakvmKa{w!TuA-vyTrU0M3*1IrJkUz@yJF*}Bf2!F z4Wb34wzd|eL6s}CjbNjSii)XKRsZ69F3?UWS!QQv2?+^z)Q6|1$#(`&;1IAr{7B2d zurKrY)>k+~a2r$;6O*s$(s$rxM`8flL3900Bo!bo0eB7Q>5(n^b<@Pcq6PHGueG(q zfBzQC)vhN)bnH9N+Cntz+PCf&GbCm#wC6A4Gf)=lk<6=(#t%h^y+Hj z(a}*J=bh9QV_|sZ!z`e$4S)XJM|z$n|A?0M&Wjg5r?2(O$0Oq7gDWa{ki4}DS|K7^ zA8n|@X_gWfZvcMGqZ3{pfVCpzhqPU3CnF>CEjPCr^m#0NVe-=+$E3l*!Kq3)5lKlO zx3(<54XrU;imB;%&Yg?8y7I{;@%aM*guLTfYBk&Fk31eYY015}zyDfI4McY$eKvmM zMek5I9G`&+!EewezJBw@H#8KZug?#mfeIz!*a36BfduyW_3PL39*a9vGE$-c#i=%Nk56%FxVv~}7jEs!*=AXWW#LmHCbF!n0 z&{`pRgK@&Ej_%#{7q(_!t3Ak{soSBC@Cv5@7%d_`rUIGCZLU3 zC(fUrt|2MdD=Js1xTvrkxGEgDTmIn7l3)M!17|xyEj15+fA`2p$*k<`iBqSxR=?jX z4qQt0)pq;dy|TbAa)aAq$FwxHQ>RY3)ymF3%hrCl5jZKq#Zd6&Mc|VsPaKwCeh6%g zAOC#b{{8ML|AEu%0kN^Y!s>oK?`NwoGCU5fBArS~OCJJ{+HwvI6!h};epq0!0a%p* zC%2fNK7CqXHTT8)_w5H04gkjjHq`&G1FkF(2PPiSQV91u&w*3p8-PRp8dJR(96UWa z-|c)ZH{)#Dm8(~Qi)0whX7e_DSDSqDJemtQzQCTa z`R0ZD_xr`;Dh|GX)}S@@RC#ci(xmx^n+4?L__~i4`JU(J@2eps{|WlLebyo<@Uin-!Szs>_QEilimSijyqBjZKt zcH7!tCM8y~z!Pb>j~qYlJ!L}2F{b`K0vGGsqSm?rD@Z$Fa;v}lZEpEJ$FefBZtjUZ z8$q(CfU5}uLql7qO`8_D9k?zdBR~H*a8;j*kDE(!>t$eN?V_R$X+mx~1a5QTr9Ro8 YJt|p#N3UT5@O(f9Pgg&ebxsLQ0QU?rng9R* literal 0 HcmV?d00001 diff --git a/code/output_56_0.png b/code/output_56_0.png new file mode 100644 index 0000000000000000000000000000000000000000..759acc2156f3b080e8a8cb09dd44b26505f4d633 GIT binary patch literal 38636 zcmaI71yogC)HZtPF6r)&1_9~r1}SMIM7q1XLqtSCN(5_Pga

uG;^_p*qgaI**Ut| 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%0A)Kg2=?qiak(f$n@G$ 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 literal 0 HcmV?d00001 diff --git a/code/output_62_0.png b/code/output_62_0.png new file mode 100644 index 0000000000000000000000000000000000000000..cab5b3780d70fa9596e444305ceefb3e0c41e289 GIT binary patch literal 25505 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 Date: Tue, 24 Dec 2019 13:43:42 -0500 Subject: [PATCH 60/61] works with vs code --- .vscode/settings.json | 3 + code/HIV Model.ipynb | 128 ++-- code/__init__.py | 0 code/conda-meta/history | 3 + environment.yml | 2 +- modsim.py | 1361 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 1427 insertions(+), 70 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 code/__init__.py create mode 100644 code/conda-meta/history create mode 100644 modsim.py diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..e1775b31 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.pythonPath": "/Users/sam/opt/anaconda3/bin/python" +} \ No newline at end of file diff --git a/code/HIV Model.ipynb b/code/HIV Model.ipynb index 43cefb22..8784ff20 100644 --- a/code/HIV Model.ipynb +++ b/code/HIV Model.ipynb @@ -10,7 +10,27 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": "['/private/var/folders/fq/qb7xc4wj6dv8ghkjm1q940zh0000gq/T/ae87943a-e357-4e5e-9795-42ef4dddfad4',\n '/Users/sam/opt/anaconda3/lib/python37.zip',\n '/Users/sam/opt/anaconda3/lib/python3.7',\n '/Users/sam/opt/anaconda3/lib/python3.7/lib-dynload',\n '',\n '/Users/sam/opt/anaconda3/lib/python3.7/site-packages',\n '/Users/sam/opt/anaconda3/lib/python3.7/site-packages/aeosa',\n '/Users/sam/opt/anaconda3/lib/python3.7/site-packages/IPython/extensions',\n '/Users/sam/.ipython',\n '/Users/sam/Documents/GitHub/ModSimPy']" + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import sys,os\n", + "sys.path.append(os.getcwd())\n", + "sys.path" + ] + }, + { + "cell_type": "code", + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -27,63 +47,15 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "

" - ], - "text/plain": [ - "R 1.000000e+03\n", - "L 0.000000e+00\n", - "E 0.000000e+00\n", - "V 4.000000e-07\n", - "dtype: float64" - ] + "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
values
R1.000000e+03
L0.000000e+00
E0.000000e+00
V4.000000e-07
\n
", + "text/plain": "R 1.000000e+03\nL 0.000000e+00\nE 0.000000e+00\nV 4.000000e-07\ndtype: float64" }, - "execution_count": 9, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -99,7 +71,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -120,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -142,7 +114,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -157,25 +129,22 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "" - ] + "text/plain": "" }, - "execution_count": 50, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] + "image/png": "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z89XAwcOVF999ZVyu93q3XffVSkpKcrr9eqqf4899piaNWuWstvtqqioSD322GPq6aefDlj/JGR0Yvv27Wr27NnVlj3xxBPq97//vbr++utVdna2f/mCBQv8PxQPPPCAWrZsmb9t06ZNaujQoY1T9FVYuXKlmjx5shozZoz69NNPlcPhaBb9+89//qOSkpKU2+32L8vLy1MnT55UN998s9qwYYN/+SeffKIeeOABpZRSTz/9tEpPT/e35ebmqr59+6qSkpLGK74OCgoKVI8ePdSqVauUz+dTu3btUgMGDFAHDx5ssv17/fXX1b333qvee++9ar+Er7Y/y5Yt869XadiwYWrjxo0B7kntauuf1+tVU6ZMUbm5uf71/va3v6nhw4crpQLTPzlcphOJiYnMnTvX/7iwsJAdO3bQvn17NE2jW7du/raYmBiysrIAOHjwILGxsdXaTp06RWFhYaPVXleHDx/mzTffZP78+f5lubm5zaJ/u3fvpkePHrz55pvccsstpKSksG7dOsLCwjh9+jRxcXH+dbt3737R/nXt2hWlFLm5uY3dhUtq3bo1P/3pT3nmmWfo06cP48ePZ8aMGURGRjbZ/qWlpbFy5Ur69u3rX1ZcXHzV/anZVvO5ja22/hkMBt5+++1qN8D829/+Ru/evYHA9K/Z3YW5OTh37hxTpkyhf//+9OnTB5PJhKZp/naLxYLL5QLA4XBgsVj8bZU3tqts1wuv18t///d/8+tf/5rIyEj/crvd3iz6V1RUxL///W+SkpJYv3492dnZTJ48mTZt2gBUu+HgpfqnaRomkwmn09m4HbgMn8+HyWQiPT2d22+/nZ07d/LUU08RHh4ONM3+RUVFXbCscv7havpTs61yO8Hqa239q2nJkiWsX7/e/1b3geifjGR0JicnhwkTJtCuXTsWLlyIzWbD7XajqtzH1Ol0YrVager/AeD8L9/Kdr14++236d69O7fffnu15VartVn0z2Qy0aJFC5566ilMJhO9evVi/PjxrFq1CoDS0lL/upfqn1IKt9uNzWZr3A5cxtdff83OnTu5++67MRqNJCUlMW7cuGbTv0qVv0Svpj8126D851VvP6sAHo+HF154gQ8++IA//elP/hFKIPonIaMj27dvZ8KECaSkpLBw4ULMZjPR0dEopThy5Ih/vezsbP9wPi4ujpycnGptkZGR/r8w9eLLL79k7dq1JCYmkpiYSFZWFr/5zW9YunRps+hfTEwMTqcTt9vtX+b1eomIiCAyMpLs7Gz/8pycnIv2Ly8vD6VUg76fR0M4ceJEtb4BhIaG0qZNm2bRv0r1+X7VbIPqP8t6UVJSwiOPPMLu3btZsWKF/1AZBKh/VzmnJBrYjz/+qBISEtT//u//XtA2bdo0NX36dFVSUqL27dunkpOT1TfffKOUUurDDz9Ud955pzpy5Ij/7KtXXnmlscu/YpUT/0o1j/65XC41bNgwNXfuXFVaWqoyMzPVTTfdpL766iv1+9//Xk2cOFHl5+f7z1b66KOPlFJKffPNN+rmm29W+/bt85/NM3369CD35kJZWVmqb9++atmyZcrn86kffvhBDR48WK1bt67J92/Lli3VJv6vtj9nzpxRAwcOVF9++aVyu93qvffeU8OHD1elpaVB6Velmv179NFH1UMPPaQcDscF6waifxIyOjF//nzVo0cPNWDAgGofr7zyiiosLFQzZsxQSUlJaujQoepPf/qT/3ler1e98cYbaujQoSoxMVE9//zzQf+hrouqIdNc+peXl6ceffRRfz/ee+89pVR5AL344osqOTlZDR48WC1YsED5fD7/8z788EP1k5/8RA0cOFA9+eSTqqioKFhduKRvvvlG3XvvvWrgwIHq9ttvV5988olSqun3r+Yv4fr0Z9u2bWrs2LFqwIAB6v7771f79u1r1L7Upmr/9u3bp3r06KH69u1b7ffMLbfc4l+/ofsnb1omhBAiYGRORgghRMBIyAghhAgYCRkhhBABIyEjhBAiYCRkhBBCBIyEjBBCiICRkBFCCBEwEjJCCCECRkJGCCFEwPx/kl91528Q7o8AAAAASUVORK5CYII=\n", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "text/plain": "
" }, "metadata": {}, "output_type": "display_data" @@ -188,7 +157,7 @@ " E=0, # actively infected\n", " V=4e-7 # free virions\n", ")\n", - "run_simulation(system, state, update_func).plot()" + "plt = run_simulation(system, state, update_func).plot()" ] }, { @@ -198,6 +167,27 @@ "outputs": [], "source": [] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, @@ -222,9 +212,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.7.4" } }, "nbformat": 4, - "nbformat_minor": 2 -} + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/code/__init__.py b/code/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/code/conda-meta/history b/code/conda-meta/history new file mode 100644 index 00000000..36ebe8ec --- /dev/null +++ b/code/conda-meta/history @@ -0,0 +1,3 @@ +==> 2019-12-24 12:34:32 <== +# cmd: /usr/local/Caskroom/miniconda/base/bin/conda create --prefix ./code +# conda version: 4.8.0 diff --git a/environment.yml b/environment.yml index f0663176..a7058774 100644 --- a/environment.yml +++ b/environment.yml @@ -135,5 +135,5 @@ dependencies: - zope=1.0=py36_0 - zope.interface=4.5.0=py36h14c3975_0 - pint=0.7.2=py36_2 -prefix: /home/downey/anaconda3/envs/ModSimPy +# prefix: /home/downey/anaconda3/envs/ModSimPy diff --git a/modsim.py b/modsim.py new file mode 100644 index 00000000..a0b411fb --- /dev/null +++ b/modsim.py @@ -0,0 +1,1361 @@ +""" +Code from Modeling and Simulation in Python. + +Copyright 2017 Allen Downey + +License: https://creativecommons.org/licenses/by/4.0) +""" + +import logging +logger = logging.getLogger(name='modsim.py') + +#TODO: Make this Python 3.7 when conda is ready + +# make sure we have Python 3.6 or better +import sys +if sys.version_info < (3, 6): + logger.warn('modsim.py depends on Python 3.6 features.') + +import inspect +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import scipy +import sympy + +import seaborn as sns +sns.set(style='white', font_scale=1.2) + +import pint +UNITS = pint.UnitRegistry() +Quantity = UNITS.Quantity + +# expose some names so we can use them without dot notation +from copy import copy +from numpy import sqrt, log, exp, pi +from pandas import DataFrame, Series +from time import sleep + +from scipy.interpolate import interp1d +from scipy.interpolate import InterpolatedUnivariateSpline +from scipy.integrate import odeint +from scipy.integrate import solve_ivp +from scipy.optimize import leastsq +from scipy.optimize import minimize_scalar + +import scipy.optimize + + +def flip(p=0.5): + """Flips a coin with the given probability. + + p: float 0-1 + + returns: boolean (True or False) + """ + return np.random.random() < p + + +# For all the built-in Python functions that do math, +# let's use the NumPy version instead. + +abs = np.abs +min = np.min +max = np.max +pow = np.power +sum = np.sum +round = np.round + + + +def cart2pol(x, y, z=None): + """Convert Cartesian coordinates to polar. + + x: number or sequence + y: number or sequence + z: number or sequence (optional) + + returns: theta, rho OR theta, rho, z + """ + x = np.asarray(x) + y = np.asarray(y) + + # TODO: use hypot? + rho = np.sqrt(x**2 + y**2) + theta = np.arctan2(y, x) + + if z is None: + return theta, rho + else: + return theta, rho, z + + +def pol2cart(theta, rho, z=None): + """Convert polar coordinates to Cartesian. + + theta: number or sequence + rho: number or sequence + z: number or sequence (optional) + + returns: x, y OR x, y, z + """ + if hasattr(theta, 'units'): + if theta.units == UNITS.degree: + theta = theta.to(UNITS.radian) + if theta.units != UNITS.radian: + msg = """In pol2cart, theta must be either a number or + a Quantity in degrees or radians.""" + raise ValueError(msg) + + x = rho * np.cos(theta) + y = rho * np.sin(theta) + + if z is None: + return x, y + else: + return x, y, z + + +def linspace(start, stop, num=50, **options): + """Returns an array of evenly-spaced values in the interval [start, stop]. + + start: first value + stop: last value + num: number of values + + Also accepts the same keyword arguments as np.linspace. See + https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html + + returns: array or Quantity + """ + underride(options, dtype=np.float64) + + # see if either of the arguments has units + units = getattr(start, 'units', None) + units = getattr(stop, 'units', units) + + array = np.linspace(start, stop, num, **options) + if units: + array = array * units + return array + + +def linrange(start=0, stop=None, step=1, **options): + """Returns an array of evenly-spaced values in the interval [start, stop]. + + This function works best if the space between start and stop + is divisible by step; otherwise the results might be surprising. + + By default, the last value in the array is `stop-step` + (at least approximately). + If you provide the keyword argument `endpoint=True`, + the last value in the array is `stop`. + + start: first value + stop: last value + step: space between values + + returns: array or Quantity + """ + if stop is None: + stop = start + start = 0 + + # TODO: what breaks if we don't make the dtype float? + #underride(options, endpoint=True, dtype=np.float64) + underride(options, endpoint=False) + + # see if any of the arguments has units + units = getattr(start, 'units', None) + units = getattr(stop, 'units', units) + units = getattr(step, 'units', units) + + n = np.round((stop - start) / step) + if options['endpoint']: + n += 1 + + array = np.full(int(n), magnitude(step)) + array[0] = magnitude(start) + array = np.cumsum(array) + + if units: + array = array * units + return array + + +def magnitude(x): + """Returns the magnitude of a Quantity or number. + + x: Quantity or number + + returns: number + """ + return x.magnitude if isinstance(x, Quantity) else x + + +def magnitudes(x): + """Returns the magnitude of a Quantity or number, or sequence. + + x: Quantity or number, or sequence + + returns: number + """ + try: + return [magnitude(elt) for elt in x] + except TypeError: # not iterable + return magnitude(x) + + +def units(x): + """Returns the units of a Quantity or number. + + x: Quantity or number + + returns: Unit object or 1 + """ + return x.units if isinstance(x, Quantity) else 1 + + +def remove_units(series): + """Removes units from the values in a Series. + + Only removes units from top-level values; + does not traverse nested values. + + returns: new Series object + """ + res = copy(series) + print(type(res)) + for label, value in res.iteritems(): + res[label] = magnitude(value) + return res + + +def require_units(x, units): + """Apply units to `x`, if necessary. + + x: Quantity or number + units: Pint Units object + + returns: Quantity + """ + if isinstance(x, Quantity): + return x.to(units) + else: + return Quantity(x, units) + + +def fit_leastsq(error_func, params, *args, **options): + """Find the parameters that yield the best fit for the data. + + `params` can be a sequence, array, or Series + + Whatever arguments are provided are passed along to `error_func` + + error_func: function that computes a sequence of errors + params: initial guess for the best parameters + data: the data to be fit; will be passed to min_fun + options: any other arguments are passed to leastsq + """ + # if any of the params are quantities, strip the units + x0 = [magnitude(x) for x in params] + + # override `full_output` so we get a message if something goes wrong + options['full_output'] = True + + # run leastsq + with units_off(): + best_params, cov_x, infodict, mesg, ier = leastsq(error_func, + x0=x0, args=args, **options) + + details = ModSimSeries(infodict) + details.set(cov_x=cov_x, mesg=mesg, ier=ier) + + # if we got a Params object, we should return a Params object + if isinstance(params, Params): + best_params = Params(Series(best_params, params.index)) + + # return the best parameters and details + return best_params, details + + +def min_bounded(min_func, bounds, *args, **options): + """Finds the input value that minimizes `min_func`. + + Wrapper for https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize_scalar.html + + min_func: computes the function to be minimized + bounds: sequence of two values, lower and upper bounds of the + range to be searched + args: any additional positional arguments are passed to min_func + options: any keyword arguments are passed as options to minimize_scalar + + returns: ModSimSeries object + """ + # try: + # print(bounds[0]) + # min_func(bounds[0], *args) + # except Exception as e: + # msg = """Before running scipy.integrate.min_bounded, I tried + # running the slope function you provided with the + # initial conditions in system and t=0, and I got + # the following error:""" + # logger.error(msg) + # raise(e) + + underride(options, xatol=1e-3) + + # TODO: Do we need to remove units from bounds? + + with units_off(): + res = minimize_scalar(min_func, + bracket=bounds, + bounds=bounds, + args=args, + method='bounded', + options=options) + + if not res.success: + msg = """scipy.optimize.minimize_scalar did not succeed. + The message it returned is %s""" % res.message + raise Exception(msg) + + return ModSimSeries(res) + + +def max_bounded(max_func, bounds, *args, **options): + """Finds the input value that maximizes `max_func`. + + Wrapper for https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize_scalar.html + + min_func: computes the function to be maximized + bounds: sequence of two values, lower and upper bounds of the + range to be searched + args: any additional positional arguments are passed to max_func + options: any keyword arguments are passed as options to minimize_scalar + + returns: ModSimSeries object + """ + def min_func(*args): + return -max_func(*args) + + res = min_bounded(min_func, bounds, *args, **options) + # we have to negate the function value before returning res + res.fun = -res.fun + return res + + +def minimize(min_func, x0, *args, **options): + """Finds the input value that minimizes `min_func`. + + Wrapper for https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html + + min_func: computes the function to be minimized + x0: initial guess + args: any additional positional arguments are passed to min_func + options: any keyword arguments are passed as options to minimize_scalar + + returns: ModSimSeries object + """ + underride(options, tol=1e-3) + + with units_off(): + res = scipy.optimize.minimize(min_func, x0, *args, **options) + + return ModSimSeries(res) + + +def run_odeint(system, slope_func, **options): + """Integrates an ordinary differential equation. + + `system` should contain system parameters and `ts`, which + is an array or Series that specifies the time when the + solution will be computed. + + system: System object + slope_func: function that computes slopes + + returns: TimeFrame + """ + # make sure `system` contains `ts` + if not hasattr(system, 'ts'): + msg = """It looks like `system` does not contain `ts` + as a system variable. `ts` should be an array + or Series that specifies the times when the + solution will be computed:""" + raise ValueError(msg) + + # make sure `system` contains `ts` + if not hasattr(system, 'init'): + msg = """It looks like `system` does not contain `init` + as a system variable. `init` should be a State + object that specifies the initial condition:""" + raise ValueError(msg) + + # make the system parameters available as globals + unpack(system) + + # try running the slope function with the initial conditions + try: + slope_func(init, ts[0], system) + except Exception as e: + msg = """Before running scipy.integrate.odeint, I tried + running the slope function you provided with the + initial conditions in system and t=0, and I got + the following error:""" + logger.error(msg) + raise(e) + + # when odeint calls slope_func, it should pass `system` as + # the third argument. To make that work, we have to make a + # tuple with a single element and pass the tuple to odeint as `args` + args = (system,) + + # now we're ready to run `odeint` with `init` and `ts` from `system` + with units_off(): + array = odeint(slope_func, list(init), ts, args, **options) + + # the return value from odeint is an array, so let's pack it into + # a TimeFrame with appropriate columns and index + frame = TimeFrame(array, columns=init.index, index=ts, dtype=np.float64) + return frame + + +def run_ode_solver(system, slope_func, **options): + """Computes a numerical solution to a differential equation. + + `system` must contain `init` with initial conditions, + `t_0` with the start time, and `t_end` with the end time. + + It can contain any other parameters required by the slope function. + + `options` can be any legal options of `scipy.integrate.solve_ivp` + + system: System object + slope_func: function that computes slopes + + returns: TimeFrame + """ + # make sure `system` contains `init` + if not hasattr(system, 'init'): + msg = """It looks like `system` does not contain `init` + as a system variable. `init` should be a State + object that specifies the initial condition:""" + raise ValueError(msg) + + # make sure `system` contains `t_end` + if not hasattr(system, 't_end'): + msg = """It looks like `system` does not contain `t_end` + as a system variable. `t_end` should be the + final time:""" + raise ValueError(msg) + + # make the system parameters available as globals + unpack(system) + + # the default value for t_0 is 0 + t_0 = getattr(system, 't_0', 0) + + # try running the slope function with the initial conditions + # try: + # slope_func(init, t_0, system) + # except Exception as e: + # msg = """Before running scipy.integrate.solve_ivp, I tried + # running the slope function you provided with the + # initial conditions in `system` and `t=t_0` and I got + # the following error:""" + # logger.error(msg) + # raise(e) + + # wrap the slope function to reverse the arguments and add `system` + f = lambda t, y: slope_func(y, t, system) + + def wrap_event(event): + """Wrap the event functions. + + Make events terminal by default. + """ + wrapped = lambda t, y: event(y, t, system) + wrapped.terminal = getattr(event, 'terminal', True) + wrapped.direction = getattr(event, 'direction', 0) + return wrapped + + # wrap the event functions so they take the right arguments + events = options.pop('events', []) + try: + events = [wrap_event(event) for event in events] + except TypeError: + events = wrap_event(events) + + # remove dimensions from the initial conditions. + # we need this because otherwise `init` gets copied into the + # results array along with its units + y_0 = [magnitude(x) for x in init] + + # run the solver + with units_off(): + bunch = solve_ivp(f, [t_0, t_end], y_0, events=events, **options) + + # separate the results from the details + y = bunch.pop('y') + t = bunch.pop('t') + details = ModSimSeries(bunch) + + # pack the results into a TimeFrame + results = TimeFrame(np.transpose(y), index=t, columns=init.index) + return results, details + + +def fsolve(func, x0, *args, **options): + """Return the roots of the (non-linear) equations + defined by func(x) = 0 given a starting estimate. + + Uses scipy.optimize.fsolve, with extra error-checking. + + func: function to find the roots of + x0: scalar or array, initial guess + args: additional positional arguments are passed along to fsolve, + which passes them along to func + + returns: solution as an array + """ + # make sure we can run the given function with x0 + try: + func(x0, *args) + except Exception as e: + msg = """Before running scipy.optimize.fsolve, I tried + running the error function you provided with the x0 + you provided, and I got the following error:""" + logger.error(msg) + raise(e) + + # make the tolerance more forgiving than the default + underride(options, xtol=1e-6) + + x0 = magnitude(x0) + + # run fsolve + with units_off(): + result = scipy.optimize.fsolve(func, x0, args=args, **options) + + return result + + +def crossings(series, value): + """Find the labels where the series passes through value. + + The labels in series must be increasing numerical values. + + series: Series + value: number + + returns: sequence of labels + """ + interp = InterpolatedUnivariateSpline(series.index, series-value) + return interp.roots() + + +def interpolate(series, **options): + """Creates an interpolation function. + + series: Series object + options: any legal options to scipy.interpolate.interp1d + + returns: function that maps from the index of the series to values + """ + # TODO: add error checking for nonmonotonicity + + if sum(series.index.isnull()): + msg = """The Series you passed to interpolate contains + NaN values in the index, which would result in + undefined behavior. So I'm putting a stop to that.""" + raise ValueError(msg) + + # make the interpolate function extrapolate past the ends of + # the range, unless `options` already specifies a value for `fill_value` + underride(options, fill_value='extrapolate') + + # call interp1d, which returns a new function object + interp_func = interp1d(series.index, series.values, **options) + + units = getattr(series, 'units', None) + if units: + return lambda x: Quantity(interp_func(x), units) + else: + return interp_func + + +def interp_inverse(series, **options): + """Interpolate the inverse function of a Series. + + series: Series object, represents a mapping from `a` to `b` + kind: string, which kind of iterpolation + options: keyword arguments passed to interpolate + + returns: interpolation object, can be used as a function + from `b` to `a` + """ + inverse = Series(series.index, index=series.values) + T = interpolate(inverse, **options) + return T + + +def unpack(series): + """Make the names in `series` available as globals. + + series: Series with variables names in the index + """ + # TODO: Make this a context manager, so the syntax is + # with series: + # and maybe even add an __exit__ that copies changes back + frame = inspect.currentframe() + caller = frame.f_back + caller.f_globals.update(series) + + +def source_code(obj): + """Prints the source code for a given object. + + obj: function or method object + """ + print(inspect.getsource(obj)) + + +def underride(d, **options): + """Add key-value pairs to d only if key is not in d. + + If d is None, create a new dictionary. + + d: dictionary + options: keyword args to add to d + """ + if d is None: + d = {} + + for key, val in options.items(): + d.setdefault(key, val) + + return d + + +def plot(*args, **options): + """Makes line plots. + + args can be: + plot(y) + plot(y, style_string) + plot(x, y) + plot(x, y, style_string) + + options are the same as for pyplot.plot + """ + # TODO: add lines to REPLOT_CACHE + + x, y, style = parse_plot_args(*args, **options) + if isinstance(x, pd.DataFrame) or isinstance(y, pd.DataFrame): + raise ValueError("modsimpy.plot can't handle DataFrames.") + + if x is None: + if isinstance(y, np.ndarray): + x = np.arange(len(y)) + + if isinstance(y, pd.Series): + x = y.index + y = y.values + + x = magnitudes(x) + y = magnitudes(y) + underride(options, linewidth=3, alpha=0.6) + + if style is not None: + lines = plt.plot(x, y, style, **options) + else: + lines = plt.plot(x, y, **options) + return lines + +REPLOT_CACHE = {} + +def replot(*args, **options): + """ + """ + try: + label = options['label'] + except KeyError: + raise ValueError('To use replot, you must provide a label argument.') + + axes = plt.gca() + key = (axes, label) + + if key not in REPLOT_CACHE: + lines = plot(*args, **options) + if len(lines) != 1: + raise ValueError('Replot only works with a single plotted element.') + REPLOT_CACHE[key] = lines[0] + return lines + + line = REPLOT_CACHE[key] + x, y, style = parse_plot_args(*args, **options) + line.set_xdata(x) + line.set_ydata(y) + + +def parse_plot_args(*args, **options): + """Parse the args the same way plt.plot does.""" + x = None + y = None + style = None + + if len(args) == 1: + y = args[0] + elif len(args) == 2: + if isinstance(args[1], str): + y, style = args + else: + x, y = args + elif len(args) == 3: + x, y, style = args + + return x, y, style + + +def contour(df, **options): + """Makes a contour plot from a DataFrame. + + Note: columns and index must be numerical + + df: DataFrame + """ + x = results.columns + y = results.index + X, Y = np.meshgrid(x, y) + cs = plt.contour(X, Y, results, **options) + plt.clabel(cs, inline=1, fontsize=10) + + +def savefig(filename, **options): + """Save the current figure. + + Keyword arguments are passed along to plt.savefig + + https://matplotlib.org/api/_as_gen/matplotlib.pyplot.savefig.html + + filename: string + """ + print('Saving figure to file', filename) + plt.savefig(filename, **options) + + +def decorate(**options): + """Decorate the current axes. + + Call decorate with keyword arguments like + + decorate(title='Title', + xlabel='x', + ylabel='y') + + The keyword arguments can be any of the axis properties + + https://matplotlib.org/api/axes_api.html + + In addition, you can use `legend=False` to suppress the legend. + + And you can use `loc` to indicate the location of the legend + (the default value is 'best') + """ + loc = options.pop('loc', 'best') + if options.pop('legend', True): + legend(loc=loc) + + plt.gca().set(**options) + plt.tight_layout() + + +def legend(**options): + """Draws a legend only if there is at least one labeled item. + + options are passed to plt.legend() + https://matplotlib.org/api/_as_gen/matplotlib.pyplot.legend.html + + """ + underride(options, loc='best') + + ax = plt.gca() + handles, labels = ax.get_legend_handles_labels() + ax.legend(handles, labels, **options) + + +def remove_from_legend(bad_labels): + """Removes some labels from the legend. + + bad_labels: sequence of strings + """ + ax = plt.gca() + handles, labels = ax.get_legend_handles_labels() + handle_list, label_list = [], [] + for handle, label in zip(handles, labels): + if label not in bad_labels: + handle_list.append(handle) + label_list.append(label) + ax.legend(handle_list, label_list) + + +# TODO: Either finish SubPlots or remove it +class SubPlots: + + def __init__(self, fig, axes_seq): + self.fig = fig + self.axes_seq = axes_seq + self.current_axes_index = 0 + + def current_axes(): + return self.axes_seq(self.current_axes_index) + + # TODO: consider making SubPlots iterable + def next_axes(self): + self.current_axes_index += 1 + return current_axes() + + +def subplots(*args, **options): + fig, axes_seq = plt.subplots(*args, **options) + return SubPlots(fig, axes_seq) + + +def subplot(nrows, ncols, plot_number, **options): + figsize = {(2, 1): (8, 8), + (3, 1): (8, 10)} + key = nrows, ncols + default = (8, 5.5) + width, height = figsize.get(key, default) + + plt.subplot(nrows, ncols, plot_number, **options) + fig = plt.gcf() + fig.set_figwidth(width) + fig.set_figheight(height) + + +class ModSimSeries(pd.Series): + """Modified version of a Pandas Series, + with a few changes to make it more suited to our purpose. + + In particular: + + 1. I provide a more consistent __init__ method. + + 2. Series provides two special variables called + `dt` and `T` that cause problems if we try to use those names + as variables. I override them so they can be used variable names. + + 3. Series doesn't provide a good _repr_html, so it doesn't look + good in Jupyter notebooks. + + 4. ModSimSeries provides a set() method that takes keyword arguments. + """ + + def __init__(self, *args, **kwargs): + """Initialize a Series. + + Note: this cleans up a weird Series behavior, which is + that Series() and Series([]) yield different results. + See: https://github.com/pandas-dev/pandas/issues/16737 + """ + if args or kwargs: + underride(kwargs, copy=True) + super().__init__(*args, **kwargs) + else: + super().__init__([], dtype=np.float64) + + def _repr_html_(self): + """Returns an HTML representation of the series. + + Mostly used for Jupyter notebooks. + """ + df = pd.DataFrame(self.values, index=self.index, columns=['values']) + return df._repr_html_() + + def __copy__(self, deep=True): + series = super().copy(deep=deep) + return self.__class__(series) + + copy = __copy__ + + def set(self, **kwargs): + """Uses keyword arguments to update the Series in place. + + Example: series.set(a=1, b=2) + """ + for name, value in kwargs.items(): + self[name] = value + + @property + def dt(self): + """Intercept the Series accessor object so we can use `dt` + as a row label and access it using dot notation. + + https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.html + """ + return self.loc['dt'] + + @property + def T(self): + """Intercept the Series accessor object so we can use `T` + as a row label and access it using dot notation. + + https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.T.html + """ + return self.loc['T'] + + +def get_first_label(series): + """Returns the label of the first element.""" + return series.index[0] + +def get_last_label(series): + """Returns the label of the first element.""" + return series.index[-1] + +def get_index_label(series, i): + """Returns the ith label in the index.""" + return series.index[i] + +def get_first_value(series): + """Returns the value of the first element.""" + return series.values[0] + +def get_last_value(series): + """Returns the value of the first element.""" + return series.values[-1] + +def gradient(series): + """Computes the numerical derivative of a series.""" + a = np.gradient(series, series.index) + return TimeSeries(a, series.index) + + +class TimeSeries(ModSimSeries): + """Represents a mapping from times to values.""" + pass + + +class SweepSeries(ModSimSeries): + """Represents a mapping from parameter values to metrics.""" + pass + + +class System(ModSimSeries): + """Contains system variables and their values. + + Takes keyword arguments and stores them as rows. + """ + + def __init__(self, *args, **kwargs): + """Initialize the series. + + If there are no positional arguments, use kwargs. + + If there is one positional argument, copy it and add + in the kwargs. + + More than one positional argument is an error. + """ + if len(args) == 0: + super().__init__(list(kwargs.values()), index=kwargs) + elif len(args) == 1: + super().__init__(*args, copy=True) + self.set(**kwargs) + else: + msg = '__init__() takes at most one positional argument' + raise TypeError(msg) + + +class State(System): + """Contains state variables and their values. + + Takes keyword arguments and stores them as rows. + """ + pass + + +class Condition(System): + """Represents the condition of a system. + + Condition objects are often used to construct a System object. + """ + pass + + +class Params(System): + """Represents a set of parameters. + """ + pass + + +def compute_abs_diff(seq): + xs = np.asarray(seq) + diff = np.ediff1d(xs, np.nan) + if isinstance(seq, Series): + return Series(diff, seq.index) + else: + return diff + +def compute_rel_diff(seq): + xs = np.asarray(seq) + diff = np.ediff1d(xs, np.nan) + return diff / seq + + +class ModSimDataFrame(pd.DataFrame): + """ModSimDataFrame is a modified version of a Pandas DataFrame, + with a few changes to make it more suited to our purpose. + + In particular: + + 1. DataFrame provides two special variables called + `dt` and `T` that cause problems if we try to use those names + as variables. I override them so they can be used as row labels. + + 2. When you select a row or column from a ModSimDataFrame, you get + back an appropriate subclass of Series: TimeSeries, SweepSeries, + or ModSimSeries. + """ + column_constructor = ModSimSeries + row_constructor = ModSimSeries + + def __init__(self, *args, **options): + # TODO: currently ModSimDataFrame underrides to float64 and + # ModSimSeries does not. Does this inconsistency make sense? + # underride(options, dtype=np.float64) + super().__init__(*args, **options) + + def __getitem__(self, key): + """Intercept the column getter to return the right subclass of Series. + """ + obj = super().__getitem__(key) + if isinstance(obj, Series): + obj = self.column_constructor(obj) + return obj + + @property + def dt(self): + """Intercept the Series accessor object so we can use `dt` + as a column label and access it using dot notation. + + https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dt.html + """ + return self['dt'] + + @property + def T(self): + """Intercept the Series accessor object so we can use `T` + as a column label and access it using dot notation. + + https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.T.html + """ + return self['T'] + + @property + def row(self): + """Gets or sets a row. + + Returns a wrapper for the Pandas LocIndexer, so when we look up a row + we get the right kind of ModSimSeries. + + returns ModSimLocIndexer + """ + li = self.loc + return ModSimLocIndexer(li, self.row_constructor) + + +class ModSimLocIndexer: + """Wraps a Pandas LocIndexer.""" + + def __init__(self, li, constructor): + """Save the LocIndexer and constructor. + """ + self.li = li + self.constructor = constructor + + def __getitem__(self, key): + """Get a row and return the appropriate type of Series. + """ + result = self.li[key] + if isinstance(result, Series): + result = self.constructor(result) + return result + + def __setitem__(self, key, value): + """Setting just passes the request to the wrapped object. + """ + self.li[key] = value + + +class TimeFrame(ModSimDataFrame): + """A DataFrame that maps from time to State. + """ + column_constructor = TimeSeries + row_constructor = State + + +class SweepFrame(ModSimDataFrame): + """A DataFrame that maps from a parameter value to a SweepSeries. + """ + column_constructor = SweepSeries + row_constructor = SweepSeries + + +def Vector(*args, units=None): + """Make a ModSimVector. + + args: can be a single argument or sequence + units: Pint Unit object or Quantity + + If there's only one argument, it should be a sequence. + + Otherwise, the arguments are treated as coordinates. + + returns: ModSimVector + """ + if len(args) == 1: + args = args[0] + + # if it's a series, pull out the values + if isinstance(args, Series): + args = args.values + + # see if any of the arguments have units; if so, save the first one + for elt in args: + found_units = getattr(elt, 'units', None) + if found_units: + break + + if found_units: + # if there are units, remove them + args = [magnitude(elt) for elt in args] + + # if the units keyword is provided, it overrides the units in args + if units is not None: + found_units = units + + return ModSimVector(args, found_units) + + +## Vector functions (should work with any sequence) + +def vector_mag(v): + """Vector magnitude with units. + + returns: number or Quantity + """ + return np.sqrt(np.dot(v, v)) * units(v) + +def vector_mag2(v): + """Vector magnitude squared with units. + + returns: number of Quantity + """ + return np.dot(v, v) * units(v) * units(v) + +def vector_angle(v): + """Angle between v and the positive x axis. + + Only works with 2-D vectors. + + returns: number in radians + """ + assert len(v) == 2 + x, y = v + return np.arctan2(y, x) + +def vector_polar(v): + """Vector magnitude and angle. + + returns: (number or quantity, number in radians) + """ + return vector_mag(v), vector_angle(v) + +def vector_hat(v): + """Unit vector in the direction of v. + + The result should have no units. + + returns: Vector or array + """ + # get the size of the vector + mag = vector_mag(v) + + # check if the magnitude of the Quantity is 0 + if magnitude(mag) == 0: + if isinstance(v, ModSimVector): + return Vector(magnitude(v)) + else: + return magnitude(np.asarray(v)) + else: + return v / mag + +def vector_perp(v): + """Perpendicular Vector (rotated left). + + Only works with 2-D Vectors. + + returns: Vector + """ + assert len(v) == 2 + x, y = v + return Vector(-y, x) + +def vector_dot(v, w): + """Dot product of v and w. + + returns: number or Quantity + """ + return np.dot(v, w) * units(v) * units(w) + +def vector_cross(v, w): + """Cross product of v and w. + + returns: number or Quantity for 2-D, Vector for 3-D + """ + res = np.cross(v, w) + + if len(v)==3 and (isinstance(v, ModSimVector) or + isinstance(w, ModSimVector)): + return ModSimVector(res, units(v) * units(w)) + else: + return res * units(v) * units(w) + +def vector_proj(v, w): + """Projection of v onto w. + + Results has the units of v, but that might not make sense unless + v and w have the same units. + + returns: array or Vector with direction of w and units of v. + """ + w_hat = vector_hat(w) + return vector_dot(v, w_hat) * w_hat + +def scalar_proj(v, w): + """Returns the scalar projection of v onto w. + + Which is the magnitude of the projection of v onto w. + + Results has the units of v, but that might not make sense unless + v and w have the same units. + + returns: scalar with units of v. + """ + return vector_dot(v, vector_hat(w)) + +def vector_dist(v, w): + """Euclidean distance from v to w, with units.""" + if isinstance(v, list): + v = np.asarray(v) + return vector_mag(v-w) + +def vector_diff_angle(v, w): + """Angular difference between two vectors, in radians. + """ + if len(v) == 2: + return vector_angle(v) - vector_angle(w) + else: + #TODO: see http://www.euclideanspace.com/maths/algebra/ + # vectors/angleBetween/ + raise NotImplementedError() + + +class ModSimVector(Quantity): + """Represented as a Pint Quantity with a NumPy array + + x, y, z, mag, mag2, and angle are accessible as attributes. + """ + + @property + def x(self): + """Returns the x component with units.""" + return self[0] + + @property + def y(self): + """Returns the y component with units.""" + return self[1] + + @property + def z(self): + """Returns the z component with units.""" + return self[2] + + @property + def mag(self): + """Returns the magnitude with units.""" + return vector_mag(self) + + @property + def mag2(self): + """Returns the magnitude squared with units.""" + return vector_mag2(self) + + @property + def angle(self): + """Returns the angle between self and the positive x axis.""" + return vector_angle(self) + + # make the vector functions available as methods + polar = vector_polar + hat = vector_hat + perp = vector_perp + dot = vector_dot + cross = vector_cross + proj = vector_proj + comp = scalar_proj + dist = vector_dist + diff_angle = vector_diff_angle + + + +def plot_segment(A, B, **options): + """Plots a line segment between two Vectors. + + For 3-D vectors, the z axis is ignored. + + Additional options are passed along to plot(). + + A: Vector + B: Vector + """ + xs = A.x, B.x + ys = A.y, B.y + plot(xs, ys, **options) + + +@property +def dimensionality(self): + """Unit's dimensionality (e.g. {length: 1, time: -1}) + + This is a simplified version of this method that does no caching. + + returns: dimensionality + """ + dim = self._REGISTRY._get_dimensionality(self._units) + return dim + +# monkey patch Unit and Quantity so they use the non-caching +# version of `dimensionality` +pint.unit._Unit.dimensionality = dimensionality +pint.quantity._Quantity.dimensionality = dimensionality + + +class units_off: + SAVED_PINT_METHOD_STACK = [] + + def __enter__(self): + """Make all quantities behave as if they were dimensionless. + """ + self.SAVED_PINT_METHOD_STACK.append(UNITS._get_dimensionality) + UNITS._get_dimensionality = lambda self: {} + + + def __exit__(self, type, value, traceback): + """Restore the saved behavior of quantities. + """ + UNITS._get_dimensionality = self.SAVED_PINT_METHOD_STACK.pop() From d4bfbe5711ad82206824d96cd5542448d2ddf54a Mon Sep 17 00:00:00 2001 From: Sam Daitzman Date: Tue, 24 Dec 2019 13:52:52 -0500 Subject: [PATCH 61/61] matplotlib vs code demo --- code/VS Code MatPlotLib Test.ipynb | 110 +++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 code/VS Code MatPlotLib Test.ipynb diff --git a/code/VS Code MatPlotLib Test.ipynb b/code/VS Code MatPlotLib Test.ipynb new file mode 100644 index 00000000..371a842d --- /dev/null +++ b/code/VS Code MatPlotLib Test.ipynb @@ -0,0 +1,110 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": { + "language_info": { + "name": "python", + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "version": "3.7.4" + }, + "orig_nbformat": 2, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "npconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": 3 + }, + "cells": [ + { + "cell_type": "markdown", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# This is a Jupyter Notebook in VS Code\n", + "***Sam Daitzman***" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": "
" + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD8CAYAAAB6paOMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAeXUlEQVR4nO3df0wT9/8H8CdUmSbbLIMtJm2xTUQHIZlEAfeHkcTMiol2iVvEuICTVN3ilvgXi/6xof8sS+ZitmUxjUZd5jrnP2CGIRjGogmwM5YfwwG9UrN2oJsBjclcAH19/+BLtUNosb27j9zzkbwSe32X1x0+yYtyHJcBQEBERKaVafQOEBGRsTgIiIhMjoOAiMjkOAiIiEyOg4CIyOQ4CIiITC7hIDhx4gRu3bqFnp6eGdccO3YMwWAQXV1dKC4ujm2vqqrCwMAABgYGUFVVlZ49JkoTZpvoEZmt1q1bJ8XFxdLT0/PE5ysqKqSxsVEASFlZmbS3twsAyc7OllAoJNnZ2WK1WiUUConVap21F4ulZzHbLNZkJXxHcPnyZYyMjMz4vMfjwZkzZwAAHR0dsFqtWLp0KdxuN5qbmzE6Ooo7d+6gubkZmzZtStSOSDfMNtGkBal+AJvNhkgkEnscjUZhs9lm3P4kXq8Xe/bsAQCsXLkS/f39qe4W0YyWLVuGV155JeE6ZpueJcnm+klSHgQZGRnTtonIjNufxOfzwefzAQAURUFJSUmqu0U0I0VRklrHbNOzJNlcP0nKvzUUjUbhcDhij+12O4aGhmbcTvSsYLbJLFIeBA0NDbHfmigrK8Pdu3dx8+ZNNDU1YePGjbBarbBardi4cSOamppS3mEivTDbZBYJfzR09uxZlJeXIzc3F5FIBB9//DEWLlwIADh+/DgaGxuxefNmqKqKf/75B++++y4AYHR0FEeOHIm9XTl8+DBGR0c1PBSiuWG2iR4x/FeXHi9FUQzfB9b8LqMyxmyztKxU8sUri4mITI6DgIjI5DgIiIhMjoOAiMjkOAiIiEyOg4CIyOQ4CIiITI6DgIjI5DgIiIhMjoOAiMjkOAiIiEyOg4CIyOQ4CIiITI6DgIjI5DgIiIhMjoOAiMjkkhoEbrcbfX19CAaDqK2tnfb80aNHEQgEEAgE0N/fH3e3pomJidhz9fX16dtzohQx10SPzH7nmsxMUVVVXC6XLFy4UDo7O6WgoGDG9fv375cTJ07EHt+7d0+3u+ywWMmUoii653qqr9HHzpq/pekdykpLS6GqKsLhMMbHx+H3++HxeGZcv2PHDnz//feJPiyRoZhrokcSDgKbzYZIJBJ7HI1GYbPZnrg2Ly8PLpcLLS0tsW2LFi2Coihoa2ub8QvN6/VCURQoioLc3Ny5HgPRnOmRa4DZpmfDgkQLMjIypm0TkSeuraysxPnz5/Hw4cPYtry8PAwPD8e+kHp6ejA4OBj3Op/PB5/PBwBQFGVOB0D0NPTINcBs07Mh4TuCaDQKh8MRe2y32zE0NPTEtZWVldPePg8PDwMAwuEwWltbUVxcnMr+EqUFc00Ub9aTCBaLRUKhkDidzthJtcLCwmnrVqxYIeFwOG6b1WqVrKwsASA5OTkyMDAw6wk5pHjCg8VKphRF0T3XU32NPnbW/K1U8pXwR0MPHjzA/v370dTUBIvFgpMnT+L69euoq6vD1atXceHCBQCTJ9P8fn/cawsKCnD8+HE8fPgQmZmZ+PTTT/H7778nakmkOeaaKJ7hk+zx4ndNLK3LqIwx2ywtS9NfHyUiovmNg4CIyOQ4CIiITI6DgIjI5DgIiIhMjoOAiMjkOAiIiEyOg4CIyOQ4CIiITI6DgIjI5DgIiIhMjoOAiMjkOAiIiEyOg4CIyOQ4CIiITI6DgIjI5JIaBG63G319fQgGg6itrZ32fHV1Nf766y8EAgEEAgHU1NTEnquqqsLAwAAGBgZQVVWVvj0nSgNmm2jS7HeuycwUVVXF5XLF7u363/uzVldXy5dffjnttdnZ2RIKhSQ7O1usVquEQiGxWq2a3WWHxUqmpjLGbLPmU2l6h7LS0lKoqopwOIzx8XH4/X54PJ5ELwMw+d1Wc3MzRkdHcefOHTQ3N2PTpk1JvZZIa8w20aSEg8BmsyESicQeR6NR2Gy2aeu2bduGrq4u/Pjjj7Db7XN6rdfrhaIoUBQFubm5T3UgRHPFbBNNSjgIMjIypm0TkbjHFy5cgNPpxGuvvYZLly7h9OnTSb8WAHw+H0pKSlBSUoLbt28nvfNEqWC2iSYlHATRaBQOhyP22G63Y2hoKG7NyMgIxsbGAEwGf/Xq1Um/lsgozDbRI7OeRLBYLBIKhcTpdMZOqBUWFsatWbp0aezfb775prS1tQkweUJtcHBQrFarWK1WGRwclOzsbM1OeLBYydRUxpht1nyqVPK1AAk8ePAA+/fvR1NTEywWC06ePInr16+jrq4OV69exYULF/Dhhx9i69atmJiYwMjICHbt2gUAGB0dxZEjR6AoCgDg8OHDGB0dTdSSSBfMNtEjhk+yx4vfNbG0LqMyxmyztCxNf32UiIjmNw4CIiKT4yAgIjI5DgIiIpPjICAiMjkOAiIik+MgICIyOQ4CIiKT4yAgIjI5DgIiIpPjICAiMjkOAiIik+MgICIyOQ4CIiKT4yAgIjK5pAaB2+1GX18fgsEgamtrpz1/4MAB9Pb2oqurC5cuXUJeXl7suYmJCQQCAQQCAdTX16dvz4lSxFwTPTL7DQsyM0VVVXG5XLHb+RUUFMStKS8vl8WLFwsA2bdvn/j9/thz9+7d0+3mCixWMqUoiu65nupr9LGz5m9pemOa0tJSqKqKcDiM8fFx+P1+eDyeuDWtra24f/8+AKC9vR12uz3RhyUyFHNN9EjCQWCz2RCJRGKPo9EobDbbjOtrampw8eLF2ONFixZBURS0tbVN+0Kb4vV6oSgKFEVBbm7uXPaf6KnokWuA2aZnQ8Kb12dkZEzbJiJPXLtz506sWbMG69evj23Ly8vD8PAwXC4XWlpa0NPTg8HBwbjX+Xw++Hw+AIjdDJxIS3rkGmC26dmQ8B1BNBqFw+GIPbbb7RgaGpq2bsOGDTh06BC2bt2KsbGx2Pbh4WEAQDgcRmtrK4qLi9Ox30QpYa6J4s16EsFisUgoFBKn0xk7qVZYWBi3ZtWqVaKqqixfvjxuu9VqlaysLAEgOTk5MjAwMO2E3H+LJ9RYWpeiKLrneqqv0cfOmr+VYr4SL6qoqJD+/n5RVVUOHjwoAKSurk62bNkiAKS5uVlu3rwpgUBAAoGA1NfXCwB5/fXXpbu7Wzo7O6W7u1t2796t9cGwWAlrKmN65vrxviyWFqX5IHiGDobFSlhGZYzZZmlZmv76KBERzW8cBEREJsdBQERkchwEREQmx0FARGRyHARERCbHQUBEZHIcBEREJsdBQERkchwEREQmx0FARGRyHARERCbHQUBEZHIcBEREJsdBQERkchwEREQml9QgcLvd6OvrQzAYRG1t7bTns7Ky4Pf7EQwG0d7ejmXLlsWe++ijjxAMBtHX14eNGzemb8+J0oDZJpo0+51rMjNFVVVxuVyxe7v+9/6s7733nnzzzTcCQLZv3y5+v18ASEFBgXR2dkpWVpY4nU5RVVUyMzM1u8sOi5VMTWWM2WbNp9L0DmWlpaVQVRXhcBjj4+Pw+/3weDxxazweD06fPg0AOH/+PDZs2BDb7vf7MTY2hhs3bkBVVZSWliZqSaQLZpto0oJEC2w2GyKRSOxxNBpFWVnZjGsePHiAu3fvIicnBzabDe3t7XGvtdls03p4vV7s2bMHAFBUVARFUZ7uaFKUm5uL27dvm6avkb2NPOaVK1cCYLbZd371nsr100g4CDIyMqZtE5Gk1iTzWgDw+Xzw+XwAAEVRUFJSkmi3NGFUbx6z/r0BZpt951fvVL7JSPijoWg0CofDEXtst9sxNDQ04xqLxYIlS5ZgZGQkqdcSGYXZJpqUcBAoioL8/Hw4nU4sXLgQlZWVaGhoiFvT0NCA6upqAMBbb72FlpaW2PbKykpkZWXB6XQiPz8fv/76qwaHQTR3zDbRIwnPKFdUVEh/f7+oqioHDx4UAFJXVydbtmwRAPLcc8/JuXPnJBgMSkdHh7hcrthrDx48KKqqSl9fn2zatClhL6/Xa9hZd6N685iN681ss+986Z1K34z//wcREZkUrywmIjI5DgIiIpMzbBCkcmm/1r0PHDiA3t5edHV14dKlS8jLy9Ol75Rt27ZBRLB69Wrd+r799tvo7e3Fb7/9hu+++y4tfZPp7XA40NLSgmvXrqGrqwsVFRVp6XvixAncunULPT09M645duwYgsEgurq6UFxcnJa+gHHZNirXyfSewmynRstc635SI5VL+/XoXV5eLosXLxYAsm/fvrT0TqYvAHn++efll19+kba2Nlm9erUufZcvXy7Xrl0Tq9UqAOTll1/W7XN9/Phx2bdvnwCTf7YhHA6npfe6deukuLhYenp6nvh8RUWFNDY2CgApKyuT9vb2ZzrbRuWa2dY321rl2pB3BKlc2q9H79bWVty/fx8A0N7eDrvdrktfADhy5Ag+++wz/Pvvvyn3TLav1+vF119/jTt37gAA/v77b916iwhefPFFAMCSJUvS9rv4ly9fxsjIyIzPezwenDlzBgDQ0dEBq9WKpUuXptzXqGwbletkewPMdjqyrVWuDRkET7q0/7+X5890ab8evR9XU1ODixcv6tJ31apVcDgc+Omnn1LuN5e+K1aswIoVK3DlyhW0tbXB7Xbr1vuTTz7BO++8g0gkgsbGRnzwwQdp6Z2OfdPq42qRbaNynWxvZlufbD9trhP+iQktpHJpvx69p+zcuRNr1qzB+vXrNe+bkZGBL774Art27Uq511z6AsCCBQuQn5+P8vJy2O12XL58GUVFRbh7967mvXfs2IFTp07h6NGjWLt2Lb799lsUFRWl5f861X3T6uNq0duoXCfTm9nWL9tPmy1D3hGkcmm/Hr0BYMOGDTh06BC2bt2KsbExzfu+8MILKCoqQmtrK8LhMNauXYuGhoaUT6ol+7mur6/HxMQEbty4gf7+fuTn56fUN9neNTU1OHfuHIDJH1csWrQIubm5KfdOx75p9XG1yLZRuU6mN7OtX7ZTyXVaTp7MpSwWi4RCIXE6nbETLYWFhXFr3n///bgTaj/88INuvVetWiWqqsry5ct1PebH6+eff07LCbVk+rrdbjl16pQAkJycHPnjjz/kpZde0qV3Y2OjVFdXCwB59dVX5c8//0zb53zZsmUznlTbvHlz3Em1jo4O3f6ftci2UblOtvfjxWz/T+Y6fYGYS6Vyab/WvZubm+XmzZsSCAQkEAhIfX29Ln0fr3R9sSTb9/PPP5fe3l7p7u6W7du36/a5LigokCtXrkhnZ6cEAgF544030tL37NmzMjQ0JGNjYxKJRGT37t2yd+9e2bt3b2zNV199JaqqSnd3d9o+10Zm26hcM9v6ZVurXPNPTBARmVzCcwSpXMBQVVWFgYEBDAwMoKqqKj17TJQmzDbRI7O+ZXjaCxiys7MlFApJdna2WK1WCYVCsYs6WKz/hWK2WazJSviO4GkvYHC73Whubsbo6Cju3LmD5uZmbNq0KVE7It0w20STUr6OYKYLGOZyYcPj93VduXIl+vv7U90tohktW7YMr7zySsJ1zDY9S5LN9ZOkPAhSvacr8L9zX1cyh2Tv7cps07NE03sWJzLTBQy8pys965htMouUB0FDQ0PstybKyspw9+5d3Lx5E01NTdi4cSOsViusVis2btyIpqamlHeYSC/MNplFwh8NnT17FuXl5cjNzUUkEsHHH3+MhQsXAgCOHz+OxsZGbN68Gaqq4p9//sG7774LABgdHcWRI0dib1cOHz6M0dFRDQ+FaG6YbaJHDP/VpcdLURTD94E1v8uojDHbLC0rlXzxVpVERCbHQUBEZHIcBEREJsdBQERkchwEREQmx0FARGRyHARERCbHQUBEZHIcBEREJsdBQERkchwEREQmx0FARGRyHARERCbHQUBEZHIcBEREJsdBQERkckkNArfbjb6+PgSDQdTW1k57/ujRowgEAggEAujv74+7W9PExETsufr6+vTtOVGKmGuiR2a/c01mpqiqKi6XSxYuXCidnZ1SUFAw4/r9+/fLiRMnYo/v3bun2112WKxkSlEU3XM91dfoY2fN39L0DmWlpaVQVRXhcBjj4+Pw+/3weDwzrt+xYwe+//77RB+WyFDMNdEjCQeBzWZDJBKJPY5Go7DZbE9cm5eXB5fLhZaWlti2RYsWQVEUtLW1zfiF5vV6oSgKFEVBbm7uXI+BaM70yDXAbNOzYUGiBRkZGdO2icgT11ZWVuL8+fN4+PBhbFteXh6Gh4djX0g9PT0YHByMe53P54PP5wMAKIoypwMgehp65BpgtunZkPAdQTQahcPhiD222+0YGhp64trKysppb5+Hh4cBAOFwGK2trSguLk5lf4nSgrkmijfrSQSLxSKhUEicTmfspFphYeG0dStWrJBwOBy3zWq1SlZWlgCQnJwcGRgYmPWEHFI84cFiJVOKouie66m+Rh87a/5WKvlK+KOhBw8eYP/+/WhqaoLFYsHJkydx/fp11NXV4erVq7hw4QKAyZNpfr8/7rUFBQU4fvw4Hj58iMzMTHz66af4/fffE7Uk0hxzTRTP8En2ePG7JpbWZVTGmG2WlqXpr48SEdH8xkFARGRyHARERCbHQUBEZHIcBEREJsdBQERkchwEREQmx0FARGRyHARERCbHQUBEZHIcBEREJsdBQERkchwEREQmx0FARGRyHARERCaX1CBwu93o6+tDMBhEbW3ttOerq6vx119/IRAIIBAIoKamJvZcVVUVBgYGMDAwgKqqqvTtOVEaMNtEk2a/YUFmpqiqKi6XK3ZLv//elq+6ulq+/PLLaa/Nzs6WUCgk2dnZYrVaJRQKidVq1ezmCixWMjWVMWabNZ9K0xvTlJaWQlVVhMNhjI+Pw+/3w+PxJHoZgMnvtpqbmzE6Ooo7d+6gubkZmzZtSuq1RFpjtokmJRwENpsNkUgk9jgajcJms01bt23bNnR1deHHH3+E3W6f02u9Xi8URYGiKMjNzX2qAyGaK2abaFLCQZCRkTFtm4jEPb5w4QKcTidee+01XLp0CadPn076tQDg8/lQUlKCkpIS3L59O+mdJ0oFs000KeEgiEajcDgcscd2ux1DQ0Nxa0ZGRjA2NgZgMvirV69O+rVERmG2iR6Z9SSCxWKRUCgkTqczdkKtsLAwbs3SpUtj/37zzTelra1NgMkTaoODg2K1WsVqtcrg4KBkZ2drdsKDxUqmpjLGbLPmU6WSrwVI4MGDB9i/fz+amppgsVhw8uRJXL9+HXV1dbh69SouXLiADz/8EFu3bsXExARGRkawa9cuAMDo6CiOHDkCRVEAAIcPH8bo6GiilkS6YLaJHjF8kj1e/K6JpXUZlTFmm6Vlafrro0RENL9xEBARmRwHARGRyXEQEBGZHAcBEZHJcRAQEZkcBwERkclxEBARmRwHARGRyXEQEBGZHAcBEZHJcRAQEZkcBwERkclxEBARmRwHARGRyXEQEBGZXFKDwO12o6+vD8FgELW1tdOeP3DgAHp7e9HV1YVLly4hLy8v9tzExAQCgQACgQDq6+vTt+dEKWKuiR6Z/c41mZmiqqq4XK7YfV0LCgri1pSXl8vixYsFgOzbt0/8fn/suXv37ul2lx0WK5lSFEX3XE/1NfrYWfO3NL1DWWlpKVRVRTgcxvj4OPx+PzweT9ya1tZW3L9/HwDQ3t4Ou92e6MMSGYq5Jnok4SCw2WyIRCKxx9FoFDabbcb1NTU1uHjxYuzxokWLoCgK2trapn2hTfF6vVAUBYqiIDc3dy77T/RU9Mg1wGzTs2FBogUZGRnTtonIE9fu3LkTa9aswfr162Pb8vLyMDw8DJfLhZaWFvT09GBwcDDudT6fDz6fDwCgKMqcDoDoaeiRa4DZpmdDwncE0WgUDocj9thut2NoaGjaug0bNuDQoUPYunUrxsbGYtuHh4cBAOFwGK2trSguLk7HfhOlhLkmijfrSQSLxSKhUEicTmfspFphYWHcmlWrVomqqrJ8+fK47VarVbKysgSA5OTkyMDAwLQTcv8tnlBjaV2Kouie66m+Rh87a/5WivlKvKiiokL6+/tFVVU5ePCgAJC6ujrZsmWLAJDm5ma5efOmBAIBCQQCUl9fLwDk9ddfl+7ubuns7JTu7m7ZvXu31gfDYiWsqYzpmevH+7JYWpTmg+AZOhgWK2EZlTFmm6Vlafrro0RENL9xEBARmRwHARGRyXEQEBGZHAcBEZHJcRAQEZkcBwERkclxEBARmRwHARGRyXEQEBGZHAcBEZHJcRAQEZkcBwERkclxEBARmRwHARGRyXEQEBGZXFKDwO12o6+vD8FgELW1tdOez8rKgt/vRzAYRHt7O5YtWxZ77qOPPkIwGERfXx82btyYvj0nSgNmm2jS7HeuycwUVVXF5XLF7u363/uzvvfee/LNN98IANm+fbv4/X4BIAUFBdLZ2SlZWVnidDpFVVXJzMzU7C47LFYyNZUxZps1n0rTO5SVlpZCVVWEw2GMj4/D7/fD4/HErfF4PDh9+jQA4Pz589iwYUNsu9/vx9jYGG7cuAFVVVFaWpqoJZEumG2iSQsSLbDZbIhEIrHH0WgUZWVlM6558OAB7t69i5ycHNhsNrS3t8e91mazTevh9XqxZ88eAEBRUREURXm6o0lRbm4ubt++bZq+RvY28phXrlwJgNlm3/nVeyrXTyPhIMjIyJi2TUSSWpPMawHA5/PB5/MBABRFQUlJSaLd0oRRvXnM+vcGmG32nV+9U/kmI+GPhqLRKBwOR+yx3W7H0NDQjGssFguWLFmCkZGRpF5LZBRmm2hSwkGgKAry8/PhdDqxcOFCVFZWoqGhIW5NQ0MDqqurAQBvvfUWWlpaYtsrKyuRlZUFp9OJ/Px8/PrrrxocBtHcMdtEjyQ8o1xRUSH9/f2iqqocPHhQAEhdXZ1s2bJFAMhzzz0n586dk2AwKB0dHeJyuWKvPXjwoKiqKn19fbJp06aEvbxer2Fn3Y3qzWM2rjezzb7zpXcqfTP+/x9ERGRSvLKYiMjkOAiIiEzOsEGQyqX9Wvc+cOAAent70dXVhUuXLiEvL0+XvlO2bdsGEcHq1at16/v222+jt7cXv/32G7777ru09E2mt8PhQEtLC65du4auri5UVFSkpe+JEydw69Yt9PT0zLjm2LFjCAaD6OrqQnFxcVr6AsZl26hcJ9N7CrOdGi1zrftJjVQu7dejd3l5uSxevFgAyL59+9LSO5m+AOT555+XX375Rdra2mT16tW69F2+fLlcu3ZNrFarAJCXX35Zt8/18ePHZd++fQJM/tmGcDiclt7r1q2T4uJi6enpeeLzFRUV0tjYKACkrKxM2tvbn+lsG5VrZlvfbGuVa0PeEaRyab8evVtbW3H//n0AQHt7O+x2uy59AeDIkSP47LPP8O+//6bcM9m+Xq8XX3/9Ne7cuQMA+Pvvv3XrLSJ48cUXAQBLlixJ2+/iX758GSMjIzM+7/F4cObMGQBAR0cHrFYrli5dmnJfo7JtVK6T7Q0w2+nItla5NmQQPOnS/v9enj/Tpf169H5cTU0NLl68qEvfVatWweFw4Keffkq531z6rlixAitWrMCVK1fQ1tYGt9utW+9PPvkE77zzDiKRCBobG/HBBx+kpXc69k2rj6tFto3KdbK9mW19sv20uU74Jya0kMql/Xr0nrJz506sWbMG69ev17xvRkYGvvjiC+zatSvlXnPpCwALFixAfn4+ysvLYbfbcfnyZRQVFeHu3bua996xYwdOnTqFo0ePYu3atfj2229RVFSUlv/rVPdNq4+rRW+jcp1Mb2Zbv2w/bbYMeUeQyqX9evQGgA0bNuDQoUPYunUrxsbGNO/7wgsvoKioCK2trQiHw1i7di0aGhpSPqmW7Oe6vr4eExMTuHHjBvr7+5Gfn59S32R719TU4Ny5cwAmf1yxaNEi5Obmptw7Hfum1cfVIttG5TqZ3sy2ftlOJddpOXkyl7JYLBIKhcTpdMZOtBQWFsatef/99+NOqP3www+69V61apWoqirLly/X9Zgfr59//jktJ9SS6et2u+XUqVMCQHJycuSPP/6Ql156SZfejY2NUl1dLQDk1VdflT///DNtn/Nly5bNeFJt8+bNcSfVOjo6dPt/1iLbRuU62d6PF7P9P5nr9AViLpXKpf1a925ubpabN29KIBCQQCAg9fX1uvR9vNL1xZJs388//1x6e3ulu7tbtm/frtvnuqCgQK5cuSKdnZ0SCATkjTfeSEvfs2fPytDQkIyNjUkkEpHdu3fL3r17Ze/evbE1X331laiqKt3d3Wn7XBuZbaNyzWzrl22tcs0/MUFEZHK8spiIyOQ4CIiITI6DgIjI5DgIiIhMjoOAiMjkOAiIiEyOg4CIyOT+D+xBC9Quv1PNAAAAAElFTkSuQmCC\n", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "text/plain": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "fig.suptitle('No axes on this figure')\n", + "fig, ax_lst = plt.subplots(2, 2)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "text/plain": "
" + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x = np.linspace(0, 2, 100)\n", + "\n", + "plt.plot(x, x, label='linear')\n", + "plt.plot(x, x**2, label='quadratic')\n", + "plt.plot(x, x**3, label='cubic')\n", + "\n", + "plt.xlabel('x label')\n", + "plt.ylabel('y label')\n", + "\n", + "plt.title(\"Simple Plot\")\n", + "\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ] +} \ No newline at end of file