{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Homework 7\n", "====\n", "#### CHE 116: Numerical Methods and Statistics\n", "Prof. Andrew White\n", "\n", "Version 1.0 (2/22/2016)\n", "\n", "----" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. System of Equations (5 Points)\n", "====\n", "\n", "Solve this system of equations using the `linalg` package. Answer in Python.\n", "\n", "$$\\begin{array}{ll}\n", "6 x + 4 y &= z^2\\\\\n", "x - y &= 6 \\\\\n", "2x - 2y &= z^2 - 4 \\\\\n", "\\end{array}$$" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4.0 -2.0 4.0\n" ] } ], "source": [ "import numpy as np\n", "from numpy import linalg\n", "\n", "#note z^2 doesn't affect our answer\n", "a_matrix = [[6, 4,-1],\\\n", " [1, -1, 0],\\\n", " [2, -2, -1]]\n", "b_matrix = [0, 6, -4]\n", "\n", "#convert them to numpy arrays/matrices\n", "np_a_matrix = np.array(a_matrix)\n", "np_b_matrix = np.array(b_matrix).transpose()\n", "\n", "#Solve the problem\n", "np_a_inv = linalg.inv(np_a_matrix)\n", "np_x_matrix = np_a_inv.dot(np_b_matrix)\n", "\n", "#print the solution, making sure to use z\n", "print(np_x_matrix[0], np_x_matrix[1], np.sqrt(np_x_matrix[2]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Chemical Reaction (6 Points)\n", "===\n", "\n", "A set of frist-order chemical reactions can be described by the following system of differential equations:\n", "\n", "$$\\begin{array}{lr}\n", "\\cfrac{dC_1(t)}{dt} = & -2 C_1(t) + C_2(t) + C_3(t)\\\\\n", "\\cfrac{dC_2(t)}{dt} = & 2 C_1(t) - 4 C_2(t)\\\\\n", "\\cfrac{dC_3(t)}{dt} = & 3 C_2(t) - C_3(t)\\\\\n", "\\end{array}$$\n", "\n", "Answer the following questions:\n", "\n", "1. [1] Write down this system of ODEs using a matrix notation\n", "2. [2] Mass is conserved in these equations. How can you tell from the matrix?\n", "3. [1] Find the eigenvalues and eigenvectors for the coefficient matrix. It is *not* Hermitian. Use `linalg`.\n", "4. [2] One of the eigenvalues is special. Make an argument, using math and python, for why this is significant with respect to equilibrium." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.1 Answer\n", "\n", "$$\\left[\\begin{array}{lcr}\n", "-2 & 1 & 1\\\\\n", "2 & -4 & 0\\\\\n", "0 & 3 & -1\\\\\n", "\\end{array}\\right]\n", "\\left[\\begin{array}{c}\n", "C_1(t)\\\\\n", "C_2(t)\\\\\n", "C_3(t)\\\\\n", "\\end{array}\\right] = \n", "\\left[\\begin{array}{c}\n", "\\cfrac{d\\,C_1(t)}{dt}\\\\\n", "\\cfrac{d\\,C_2(t)}{dt}\\\\\n", "\\cfrac{d\\,C_3(t)}{dt}\\\\\n", "\\end{array}\\right]$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.2 Answer\n", "\n", "The amount of $C_1$ leaving has to equal the amount of $C_1$ coming in. This is guaranteed by the columns summing to 0. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.3 Answer" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "c_mat = np.array([[-2, 1,1], [2, -4, 0], [0, 3, -1]])\n", "e_l, e_v = linalg.eig(c_mat)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-4.0 [ 5.45747210e-16 7.07106781e-01 -7.07106781e-01]\n", "-3.0 [-0.26726124 -0.53452248 0.80178373]\n", "-3.84352614539e-16 [ 0.53452248 0.26726124 0.80178373]\n" ] } ], "source": [ "for i in range(3):\n", " print(e_l[i], e_v[:, i])" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "#### 2.4 Answer\n", "\n", "That eigenvector results in all derivatives being $0$, meaning the concentrations do not change" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[ 1.22124533e-15 -6.66133815e-16 -5.55111512e-16]\n" ] } ], "source": [ "print(c_mat.dot(e_v[:,2]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Python Practice (20 Points)\n", "====\n", "\n", "All your functions must have docstrings for full credit.\n", "\n", "1. [4] Create a button and text input, where the value of the text box is printed out. Make it so that the output area is cleared each time the button is pressed.\n", "\n", "2. [4] Create a button that prints a random integer from 0 to 10 using the `random.randint` function.\n", "\n", "3. [4] Make a list of strings. Using your button from part 2, now have it print a random string from your list. \n", "\n", "4. [8] Take the following matrix: `[[3, 2, -6], [2, 6, 4], [3, 4, 0]]` and use an interaction widget to display its eigenvalues and eigenvectors. Your slider should go from 0 to 2 and each value should result in a latex display showing the eigenvalue and eigenvector. Note that Python eats `{}` in strings, so you'll have to use `{{}}`. This is called escaping. Python also eats many things that have a backslash. For example, `\\b` means backspace to python. And `\\\\` means `\\` in python. So you'll have to write `\\\\` when you want LaTeX to see `\\` and in general use some trial in error about backslashes. You can never have too many though! For example, write `\\\\begin{{array}}` to start your matrix. Use three `''' for example'''` to have a string that spans multiple lines. [Summary comic](http://xkcd.com/1638/). Practice getting the LaTeX correct before putting it all together." ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3\n" ] } ], "source": [ "#3.1 Answer\n", "\n", "from ipywidgets import widgets\n", "from IPython import display \n", "\n", "button = widgets.Button(description=\"Print\")\n", "text = widgets.Text('')\n", "\n", "def clear_and_print(b):\n", " display.clear_output()\n", " print(text.value)\n", "\n", "button.on_click(clear_and_print)\n", "\n", "display.display(text)\n", "display.display(button)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#3.2 Answer\n", "\n", "import random\n", "\n", "def randint(b):\n", " display.clear_output()\n", " print(random.randint(0,10))\n", "\n", "button = widgets.Button(description='random')\n", "button.on_click(randint)\n", "display.display(button)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(⊙ᗜ⊙)\n" ] } ], "source": [ "#3.3 Answer\n", "\n", "my_strings = ['(⊙ᗜ⊙)', '╚═╏ ⇀ ͜ر ↼ ╏═╝', 'ლ(́◉◞౪◟◉‵ლ)', 'ლ(ʘ̆〰ʘ̆)ლ']\n", "\n", "def rand_string(b):\n", " display.clear_output()\n", " print(my_strings[random.randint(0,len(my_strings))])\n", "\n", "button = widgets.Button(description='Raise your donger!')\n", "button.on_click(rand_string)\n", "display.display(button)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "\n", " $$\\left[\\begin{array}{c}\n", " 0.32447\\\\\n", " -0.55236\\\\\n", " -0.76787\\\n", " \\end{array}\\right]\n", " $$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#3.4 Answer\n", "\n", "mat = np.array([[3, 2, -6], [2, 6, 4], [3, 4, 0]])\n", "e_l, e_v = linalg.eigh(mat)\n", "def print_eig(i):\n", " display.display(display.Latex('''\n", " $$\\\\left[\\\\begin{{array}}{{c}}\n", " {0:0.5}\\\\\\\\\n", " {1:0.5}\\\\\\\\\n", " {2:0.5}\\\\\n", " \\end{{array}}\\\\right]\n", " $$'''.format(e_v[i, 0], e_v[i, 1], e_v[i, 2])))\n", "widgets.interact(print_eig, i=(0,2,1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. Integration (12 Points)\n", "====\n", "\n", "Compute the following integrals using `scipy`. Report all your answers using `display.Latex` and only three decimal places.\n", "\n", "1. $$\\int_0^1 \\sin^2(x)\\, dx$$\n", "\n", "2. $$\\int_0^\\infty x^{-2}\\, dx$$\n", "\n", "3. Integrate the normal distribution with $\\sigma = 2$, $\\mu = -4$ from $-2$ to $2$. Do not use `scipy.stats`\n", "\n", "4. Repeat part 1 but use the trapezoidal rule instead of `scipy`\n" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$\\int_0^1 \\sin^2(x)\\, dx = 0.273$$" ], "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#4.1 Answer\n", "\n", "from scipy.integrate import quad\n", "\n", "def fxn(x):\n", " return np.sin(x)**2\n", "\n", "ans, err = quad(fxn, 0, 1)\n", "\n", "display.Latex('$$\\int_0^1 \\sin^2(x)\\, dx = {0:.3}$$'.format(ans))" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\Andrew\\Anaconda3\\lib\\site-packages\\scipy\\integrate\\quadpack.py:352: IntegrationWarning: The integral is probably divergent, or slowly convergent.\n", " warnings.warn(msg, IntegrationWarning)\n" ] }, { "data": { "text/latex": [ "$$\\int_0^\\infty x^{-2}\\, dx = -1.0$$" ], "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#4.2 Answer\n", "\n", "ans,_ = quad(lambda x: x**-2, 0, np.infty)\n", "\n", "display.Latex('$$\\int_0^\\infty x^{{-2}}\\, dx = {:.3}$$'.format(ans))" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/latex": [ "$$\\int_{-2}^{-2} \\frac{1}{\\sigma\\sqrt{2\\pi^2}} e^{\\cfrac{(x - \\mu)^2}{2\\sigma^2}} = 0.157$$" ], "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#4.3 Answer\n", "\n", "def pdf(x, mu=-4, sig=2):\n", " return 1 / np.sqrt(sig**2 * 2 * np.pi) * np.exp(- (x - mu)**2 / (2 * sig**2))\n", "\n", "ans,_ = quad(pdf, -2, 2)\n", "\n", "display.Latex('$$\\int_{{-2}}^{{-2}} \\\\frac{{1}}{{\\\\sigma\\\\sqrt{{2\\\\pi^2}}}} e^{{\\cfrac{{(x - \\\\mu)^2}}{{2\\\\sigma^2}}}} = {:.3}$$'.format(ans))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "5. Numerical Integration/Differentiation (12 Points)\n", "===\n", "\n", "1. Compute and plot the numerical derivatives of the data given in the next cell. Use a for loop and the central difference rule\n", "2. Repeat part 1 using numpy arrays.\n", "2. Compute the integral of the numerical data using the trapezoidal rule. Use a for loop.\n", "3. Repeat part 3 with numpy" ] }, { "cell_type": "code", "execution_count": 87, "metadata": { "collapsed": true }, "outputs": [], "source": [ "data_5_x = [0.0, 0.2857, 0.5714, 0.8571, 1.1429, 1.4286, 1.7143, 2.0, 2.2857, 2.5714, 2.8571, 3.1429, 3.4286, 3.7143, 4.0, 4.2857, 4.5714, 4.8571, 5.1429, 5.4286, 5.7143, 6.0, 6.2857, 6.5714, 6.8571, 7.1429, 7.4286, 7.7143, 8.0, 8.2857, 8.5714, 8.8571, 9.1429, 9.4286, 9.7143, 10.0, 10.2857, 10.5714, 10.8571, 11.1429, 11.4286, 11.7143, 12.0, 12.2857, 12.5714, 12.8571, 13.1429, 13.4286, 13.7143, 14.0]\n", "data_5_y = [67.9925, 67.5912, 67.4439, 66.7896, 66.4346, 66.3176, 65.7527, 65.1487, 65.7247, 65.1831, 64.5981, 64.5213, 63.6746, 63.9106, 62.6127, 63.3892, 62.6511, 62.601, 61.9718, 60.5553, 61.5862, 61.3173, 60.5913, 59.7061, 59.6535, 58.9301, 59.346, 59.2083, 60.3429, 58.752, 57.6269, 57.5139, 59.0293, 56.7979, 56.2996, 56.4188, 57.1257, 56.1569, 56.3077, 55.893, 55.4356, 56.7985, 55.6536, 55.8353, 54.4404, 54.2872, 53.9584, 53.3222, 53.2458, 53.7111]" ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nDYsXL87sbAmCIIgJgSHj1NfXh56enqS/09jYqCl8kGUZ9fX1ePjhh7FmzZr0z5QgCIKYMBgK68Vl\n4emwc+dOiKKIyZMnp/X3BEEQxMTDkOdklEOHDuGJJ57Aueeei5qaGuzZswe33XYbfD4f/vznP1PR\nHUEQBGEISwURbrcbr732Gh566CEMDw9j2rRpWL16NW6++WYyTARBEIRhLPWcCIIgCMIKctZb7+GH\nH8aSJUvQ0NCAlStXYtu2bbk6FUu47777sGrVKjQ1NaG5uRmXX345du/enevTspT77rsPfr8fN998\nc65PJWM6Ojpw7bXXorm5GQ0NDTjttNOwdevWXJ9WRoiiiG9/+9uJ79WSJUuwYcMGSJKU61Mzxdat\nW7F27VosWLAAfr8fjz/+OPc7GzduRGtrK6ZMmYLzzz8fe/bsycGZmiPZdUWjUdx+++0444wzMG3a\nNMyfPx/r1q3DsWPHcnjGqTHyWcW54YYb4Pf78eMf/9jQa+fEOD3zzDO49dZbcdNNN2HLli1Yvnw5\nLr30UrS1teXidCxh69atWLduHV566SVs3rwZLpcLa9asQTAYzPWpWcJbb72FX/3qV1i0aFGuTyVj\n+vv7sXr1agiCgKeeegrbt2/H3Xffjfr6+lyfWkbce++9+OUvf4l77rkHb731Fu6++2488sgjuO++\n+3J9aqYYHh7GwoULcdddd8Hn83E//8EPfoCf/OQnuOeee/DKK6+gvr4eF154IYaHh3NwtsZJdl0j\nIyPYsWMHbr75ZvzlL3/B448/jmPHjuHSSy/N681Fqs8qzrPPPot33nkHU6dONfzaOQnrfeYzn8FJ\nJ52E73//+4nnli1bhjVr1uC2227L9unYwvDwMJqamvDYY49h9erVuT6djOjv78fKlSvxox/9CHfd\ndRcWLFiA733ve7k+rbT59re/jW3btuGFF17I9alYyuc//3nU1tbiwQcfTDx37bXXoq+vD7/+9a9z\neGbp09jYiHvuuQdr165NPDd//nxcc801+MY3vgEAGB0dRUtLCzZs2ICrrroqV6dqCq3rYtm7dy9W\nrFiBrVu3orW1NYtnlx5613TkyBGcd955+N3vfoeLL74YX/nKV/C1r30t5etl3XOKRCJ47733sHLl\nStXzq1atwptvvpnt07GNwcFBSJKE6urqXJ9Kxtxwww248MILceaZZ+b6VCzhD3/4A5YtW4arr74a\nLS0tOOuss/Czn/0s16eVMeeccw62bNmCQCAAANizZw+2bNlS8JsjJYcOHUJHRwc+9alPJZ7zer04\n/fTTi2r9AICBgQEIglDQa4goili3bh3+/d//HS0tLab+1pbGr8no6emBKIqYNGmS6vn6+nq89tpr\n2T4d27jllluwZMkSLF++PNenkhG/+tWvcOjQITzyyCO5PhXLiF/Pddddh2984xuJcIogCAU93uXL\nX/4yjh8/juXLl8PlckEURdx444340pe+lOtTs4zOzk4IgsCFYOvr69He3p6js7KeSCSCb33rWzjv\nvPMwZcqUXJ9O2nz3u99FXV0dvvjFL5r+26wbp4nAN7/5TWzfvh0vvvhiQUvo9+3bh+985zv43//9\nXzgcxTOXUpIkLFu2LBFCPumkk7B//348/PDDBW2c/vM//xOPPvoofvGLX2DevHnYsWMH1q9fjxkz\nZuCKK67I9ekRBol7G4ODg/jNb36T69NJmy1btuDxxx/H66+/ntbfZ33Fqa2thdPpRGdnp+r5rq4u\nzpsqRG699Vb89re/xebNm9HU1JTr08mI7du3o7e3F6eeeirq6upQV1eHN954Aw8//DDq6+sRiURy\nfYppMXnyZMydO1f13Ny5c/NeGZWK++67D//2b/+GNWvWoLW1FZdddhmuv/56VW630Jk0aRJkWUZX\nV5fq+WJZP0RRxNVXX43du3fjueeeK+iQ3htvvIGOjg7MnTs3sX4cPXoUt99+uyFhVdY9J7fbjaVL\nl+LVV1/F5z73ucTzr7zySsH33lu/fj2effZZPP/885gzZ06uTydjzj//fJxyyimq56677jo0Nzfj\nxhtvhNud/YF1VrBixYpEXiZOIBDA9OnTc3RG1iBJEufhOhyOvFZ7mWXmzJmYPHkyXnnlFSxduhRA\nTBCxbds2bNiwIcdnlxnRaBRf+tKXsHfvXvz+978v+Jl469at49b0iy66CJdccokh4UpOwnrXX389\nvvrVr+Lkk0/GihUr8Mgjj6CjoyOtuGS+cNNNN+GJJ57Ao48+isrKyoRnWFZWhrKyshyfXXpUVlai\nsrJS9ZzP50N1dTXmzZuXo7PKnOuuuw6rV6/Gpk2bcNFFF+H999/HT3/6U9xxxx25PrWM+OxnP4sf\n/OAHaGpqwvz58/H+++/jwQcfxBe+8IVcn5ophoeHceDAAciyDEmScOzYMezYsQN+vx+NjY249tpr\ncd9996G5uRlz5szBvffei/Lyclx88cW5PvWkJLuuKVOm4Morr8T777+Pxx9/HLIsJ9aQysrKvJ0m\nnuqzqq2tVf2+y+XCpEmTDG3ec9Yh4uc//znuv/9+dHR0oLW1FRs3bsSKFStycSqW4Pf7NfNL69ev\nx/r163NwRvZwwQUXoLW1taCl5ADwxz/+EXfeeSf279+PxsZGfOUrX8G6detyfVoZMTIygo0bN+K5\n555DV1cXJk+ejIsvvhg333wzPB5Prk/PMK+//jouuOAC7vu0du1aPPDAAwCAu+++G7/85S8RDAax\nbNky3HvvvZg/f34uTtcwya5r/fr1WLJkieYa8sADDySVnOcSI5+VkiVLlmDdunWGpOTUvoggCILI\nO4pHgkUQBEEUDWScCIIgiLyDjBNBEASRd5BxIgiCIPIOMk4EQRBE3kHGiSAIgsg7yDgRBEEQeQcZ\nJ4IgCCLvIONEEARB5B3/H4xdHiktriOXAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#5.1 Answer\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')\n", "\n", "deriv = []\n", "\n", "for i in range(1, len(data_5_x) - 1):\n", " forward = (data_5_y[i + 1] - data_5_y[i]) / (data_5_x[i + 1] - data_5_x[i])\n", " backward = (data_5_y[i] - data_5_y[i - 1]) / (data_5_x[i] - data_5_x[i - 1])\n", " deriv.append((forward + backward) / 2)\n", "\n", "plt.plot(data_5_x[1:-1], deriv)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nDYsXL87sbAmCIIgJgSHj1NfXh56enqS/09jYqCl8kGUZ9fX1ePjhh7FmzZr0z5QgCIKYMBgK68Vl\n4emwc+dOiKKIyZMnp/X3BEEQxMTDkOdklEOHDuGJJ57Aueeei5qaGuzZswe33XYbfD4f/vznP1PR\nHUEQBGEISwURbrcbr732Gh566CEMDw9j2rRpWL16NW6++WYyTARBEIRhLPWcCIIgCMIKctZb7+GH\nH8aSJUvQ0NCAlStXYtu2bbk6FUu47777sGrVKjQ1NaG5uRmXX345du/enevTspT77rsPfr8fN998\nc65PJWM6Ojpw7bXXorm5GQ0NDTjttNOwdevWXJ9WRoiiiG9/+9uJ79WSJUuwYcMGSJKU61Mzxdat\nW7F27VosWLAAfr8fjz/+OPc7GzduRGtrK6ZMmYLzzz8fe/bsycGZmiPZdUWjUdx+++0444wzMG3a\nNMyfPx/r1q3DsWPHcnjGqTHyWcW54YYb4Pf78eMf/9jQa+fEOD3zzDO49dZbcdNNN2HLli1Yvnw5\nLr30UrS1teXidCxh69atWLduHV566SVs3rwZLpcLa9asQTAYzPWpWcJbb72FX/3qV1i0aFGuTyVj\n+vv7sXr1agiCgKeeegrbt2/H3Xffjfr6+lyfWkbce++9+OUvf4l77rkHb731Fu6++2488sgjuO++\n+3J9aqYYHh7GwoULcdddd8Hn83E//8EPfoCf/OQnuOeee/DKK6+gvr4eF154IYaHh3NwtsZJdl0j\nIyPYsWMHbr75ZvzlL3/B448/jmPHjuHSSy/N681Fqs8qzrPPPot33nkHU6dONfzaOQnrfeYzn8FJ\nJ52E73//+4nnli1bhjVr1uC2227L9unYwvDwMJqamvDYY49h9erVuT6djOjv78fKlSvxox/9CHfd\ndRcWLFiA733ve7k+rbT59re/jW3btuGFF17I9alYyuc//3nU1tbiwQcfTDx37bXXoq+vD7/+9a9z\neGbp09jYiHvuuQdr165NPDd//nxcc801+MY3vgEAGB0dRUtLCzZs2ICrrroqV6dqCq3rYtm7dy9W\nrFiBrVu3orW1NYtnlx5613TkyBGcd955+N3vfoeLL74YX/nKV/C1r30t5etl3XOKRCJ47733sHLl\nStXzq1atwptvvpnt07GNwcFBSJKE6urqXJ9Kxtxwww248MILceaZZ+b6VCzhD3/4A5YtW4arr74a\nLS0tOOuss/Czn/0s16eVMeeccw62bNmCQCAAANizZw+2bNlS8JsjJYcOHUJHRwc+9alPJZ7zer04\n/fTTi2r9AICBgQEIglDQa4goili3bh3+/d//HS0tLab+1pbGr8no6emBKIqYNGmS6vn6+nq89tpr\n2T4d27jllluwZMkSLF++PNenkhG/+tWvcOjQITzyyCO5PhXLiF/Pddddh2984xuJcIogCAU93uXL\nX/4yjh8/juXLl8PlckEURdx444340pe+lOtTs4zOzk4IgsCFYOvr69He3p6js7KeSCSCb33rWzjv\nvPMwZcqUXJ9O2nz3u99FXV0dvvjFL5r+26wbp4nAN7/5TWzfvh0vvvhiQUvo9+3bh+985zv43//9\nXzgcxTOXUpIkLFu2LBFCPumkk7B//348/PDDBW2c/vM//xOPPvoofvGLX2DevHnYsWMH1q9fjxkz\nZuCKK67I9ekRBol7G4ODg/jNb36T69NJmy1btuDxxx/H66+/ntbfZ33Fqa2thdPpRGdnp+r5rq4u\nzpsqRG699Vb89re/xebNm9HU1JTr08mI7du3o7e3F6eeeirq6upQV1eHN954Aw8//DDq6+sRiURy\nfYppMXnyZMydO1f13Ny5c/NeGZWK++67D//2b/+GNWvWoLW1FZdddhmuv/56VW630Jk0aRJkWUZX\nV5fq+WJZP0RRxNVXX43du3fjueeeK+iQ3htvvIGOjg7MnTs3sX4cPXoUt99+uyFhVdY9J7fbjaVL\nl+LVV1/F5z73ucTzr7zySsH33lu/fj2effZZPP/885gzZ06uTydjzj//fJxyyimq56677jo0Nzfj\nxhtvhNud/YF1VrBixYpEXiZOIBDA9OnTc3RG1iBJEufhOhyOvFZ7mWXmzJmYPHkyXnnlFSxduhRA\nTBCxbds2bNiwIcdnlxnRaBRf+tKXsHfvXvz+978v+Jl469at49b0iy66CJdccokh4UpOwnrXX389\nvvrVr+Lkk0/GihUr8Mgjj6CjoyOtuGS+cNNNN+GJJ57Ao48+isrKyoRnWFZWhrKyshyfXXpUVlai\nsrJS9ZzP50N1dTXmzZuXo7PKnOuuuw6rV6/Gpk2bcNFFF+H999/HT3/6U9xxxx25PrWM+OxnP4sf\n/OAHaGpqwvz58/H+++/jwQcfxBe+8IVcn5ophoeHceDAAciyDEmScOzYMezYsQN+vx+NjY249tpr\ncd9996G5uRlz5szBvffei/Lyclx88cW5PvWkJLuuKVOm4Morr8T777+Pxx9/HLIsJ9aQysrKvJ0m\nnuqzqq2tVf2+y+XCpEmTDG3ec9Yh4uc//znuv/9+dHR0oLW1FRs3bsSKFStycSqW4Pf7NfNL69ev\nx/r163NwRvZwwQUXoLW1taCl5ADwxz/+EXfeeSf279+PxsZGfOUrX8G6detyfVoZMTIygo0bN+K5\n555DV1cXJk+ejIsvvhg333wzPB5Prk/PMK+//jouuOAC7vu0du1aPPDAAwCAu+++G7/85S8RDAax\nbNky3HvvvZg/f34uTtcwya5r/fr1WLJkieYa8sADDySVnOcSI5+VkiVLlmDdunWGpOTUvoggCILI\nO4pHgkUQBEEUDWScCIIgiLyDjBNBEASRd5BxIgiCIPIOMk4EQRBE3kHGiSAIgsg7yDgRBEEQeQcZ\nJ4IgCCLvIONEEARB5B3/H4xdHiktriOXAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#5.2 Answer\n", "\n", "x = np.array(data_5_x)\n", "y = np.array(data_5_y)\n", "\n", "forward = (y[1:] - y[:-1]) / (x[1:] - x[:-1])\n", "backward = forward\n", "dervi = (forward[:-1] + backward[1:]) / 2.\n", "\n", "plt.plot(x[1:-1], deriv)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 103, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "842.6582772749996\n" ] } ], "source": [ "#5.3 Answer\n", "\n", "area = 0\n", "for i in range(len(data_5_x) - 1):\n", " width = data_5_x[i + 1] - data_5_x[i]\n", " area += 0.5 * width * (data_5_y[i + 1] + data_5_y[i])\n", "print(area)" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "842.658277275\n" ] } ], "source": [ "#5.4 Answer\n", "\n", "area = 0.5 * np.sum( (x[1:] - x[:-1]) * (y[1:] + y[:-1]) )\n", "\n", "print(area)" ] } ], "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.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }