{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# Truncation Error vs Rounding Error"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "In this notebook, we'll investigate two common sources of error: Truncation error and rounding error."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {},
      "outputs": [],
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as pt"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "**Task:** Approximate a function (here: a parabola, by a line)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "(-28.0, 2.2497704315886136)"
            ]
          },
          "execution_count": 4,
          "metadata": {},
          "output_type": "execute_result"
        },
        {
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD8CAYAAAB0IB+mAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3Xd4VFX+x/H3SYGQQEIJHULovYdiQUVBLIhlLYiKiIAoirq2ZXGtP8vq2nDXgsJaAEFFBVFEERurlITeqxBKICQkIT0zc35/THYX3VAnkzuT+byeJ8+TO/fOPd8L+vF67jnnGmstIiJS+YU5XYCIiFQMBb6ISIhQ4IuIhAgFvohIiFDgi4iECAW+iEiIUOCLiIQIBb6ISIhQ4IuIhIgIpws4Wnx8vE1MTHS6DBE5kaIjkJUK7iKIiYfYRmDCna7qpLk8lhKXhxKPB5fbUuL24PZYXB6Ly21xe0p/rMVTQasRGCAszBBuDBHhhvAwQ0RYGBFh3u2IsDAiww0R4WFEhocRZv773ZSUlEPW2ronaiOgAj8xMZHk5GSnyxCRY8nPhK8fhlXToU57uGwSJJ7ldFX/43BeMTsz8tiVkcfujAJSD+eTmpnP3qwCDuQUUuL+bYiHA/HRkdSKqUKdmCrUiq5CXLXI//xUj4ogpmoEMVUiiK4STtXIMKIiw6kaEUaV8DDCwwyR4WEYA8YY/p3Fbo/3Pxguj6XY5fH+uD0UFLvJL3ZTUOIir8jNkUIXuUUl5BS4yCooISu/mMP5xWTmFpOeW0SJ2+ICXEfVXCs6ksa1qtGkZjQpw5N2ncyfS0AFvogEKGthw2fw5YNQkAn97oNzHoTIKAdLsuzLLmRzWg5bD+Sy7WAu29Jz2ZGeR3ZByW+OrR9blaa1ounZrBYN46rRqGYUDWKjqB8bRb3YqsRXr0pkeGD2cFtrySlwkZ5bSFp2EWk5hRzIKWRvVgF7DxewLT33pM+lwBeR48vZB1/cD5u/gIbd4MbZ0LBLhZZQ7PKw5cARNuzLYf2+bDbsz2FT2hGOFP73nje+elVa1YthcJeGNI+PIbFODInxMTSpVY2oyODpbvo9Ywxx0ZHERUfSql6Nso+57+TOpcAXkbJ5PLDiHfjmUXCXwMAnoe8dEO7f2LDWsvNQHit2Z7E6NYs1e7LYuP8IxW4PADFVwmnXMJYhXRvRrmEs7RrUoHW96tSMruLXuioDBb6I/K9D2+Dz8bDrX5DYD4ZMgtot/NJUkcvNmj3ZLNuZScquw6zcfZjD+d4umepVI+jUOJYRZyXSuXEcHRvFklgnhrCjn1jKSVPgi8h/uUvg51fh+2chIgqGvArdbwJTfgFb5HKzcncWv2zPYMmODFamZlHs8t69t6wbw8AO9emRUIsezWrRqm51hXs5UuCLiNe+VTD3TkhbC+0vg0v+BjUa+Hxaj8eyMS2HxVsPsXjbIZbtzKTI5cEY6NQojuF9m9GreW16Jdamdoy6ZfxJgS8S6koK4Ptn4Oe/e8fUX/s+dBji0ymz80v4aVs632/2/hzKLQKgdb3qXN87gbNaxdO7eW3iqkWWxxXISVLgi4SynT/C3PFweCf0GO59MFut5mmdakd6Lt9uPMjCjQdI3nUYt8cSVy2Sc9rU5ZzW8fRrXZcGcc4N4xQFvkhoKsiCb/4CK96DWs3h5s+h+TmndAprLWv2ZLNgfRpfbzjAtoPe8eDtGtRg7LktOL9dPbo1rUW4+uADhgJfJNRs/Nw7rj7vIJw5Hs6bAFWiT+qrHo9lZWoWX67dz/y1+9mXXUh4mKF3Ym1u7JPAgA71aVLr5M4lFU+BLxIqjhyAL++HjXOhfmcYNhMadT/h16y1rN+Xw9zV+5i3eh/7sgupEh5Gv9bx3DuwDQPa16eWHrYGBb8HvjHmIuAVvMtVvG2tfdbfbYrIUayFldPg64lQUggXPOK9sw8//gPT3Rn5fLpyL3NW7WXHoTwiwgzntKnL/YPaMqBDfWKj9MA12Pg18I0x4cA/gIHAHmC5MWautXaDP9sVkVKZO+Dze2DnD5BwpncCVXzrYx6eU1jC56v38emKvSTvOowx0Kd5bUaf04KLOzXQbNYg5+87/N7ANmvtDgBjzEzgckCBL+JPbhcseQ2+e9p7Jz/4JegxAsL+d4Ewj8fy8/YMPkpJ5at1aRS5PLSuV50HL2rLFd0a06hmtYqvX/zC34HfGEg9ansP0MfPbYqEtrS1MPcu2LcS2l4Cl77gXa/+dw7kFPJRciqzklNJzSwgNiqCa5KacE3PpnRpEocpx9m1Ehgcf2hrjBkDjAFISEhwuBqRIFZSCD8+B/96BarVgqv/CR2v/M2yCB6P5adth5i2ZBeLNh3E7bGc0aIO91/YlkEdGwT1qpJyYv4O/L1A06O2m5R+9h/W2snAZICkpKSKebWMSGWz62fvBKqMrdB1GAx6CqJr/2d3Vn4xHyanMn3pbnZl5FMnpgqj+jXn+l4JJMbHOFi4VCR/B/5yoLUxpjneoB8KDPNzmyKhozAHFj4GyVOgZgLc9Cm0PP8/uzfuz+Hdn3/ls1V7KSzx0DuxNn8c2IaLOjWgaoTu5kONXwPfWusyxtwJLMA7LHOqtXa9P9sUCRmb58O8P0JuGvQdB+dPhCoxuD2WRZsOMmXxDpbsyCQqMowruzdm+BmJtG8Y63TV4iC/9+Fba78EvvR3OyIhIzcd5j8I6z+Beh3gumnQpCf5xS4+/uVXpi7eya8Z+TSKi2LCxe24rldTDacUIAAe2orISbIWVs+EBROgOA/6T4Sz7uFQoeW9rzfz3pJdZOWX0K1pTV69sC0Xd2pARIC+p1WcocAXCQaHd8G8e2D7ImjaBy6bRGpEAm99sYVZy1MpcnkY0L4+t53bgqRmtTSkUsqkwBcJZB43LJsM3z7pHV558fNsbXYdr3+3kzmrvyfMwJXdGzPmnJa0qlfd6WolwCnwRQLVwY0w507YmwytBrKl95O8vDyf+Z8tJioinBFnJjKqX3MaxmkmrJwcBb5IoHEVwU8vwk8vQFQsqf0n8fjODiycuoMaVSMYd14rRp7dXK8DlFOmwBcJJKnLvMsipG8iq9WVPF5yE5/OLyQ2KpN7B7RhxFmJei2gnDYFvkggKMqFb5+AZZMpqd6QNxs9w9/WNaNGlIt7B7ThlrMTtRyx+EyBL+K0rQth3j3Y7D0srnUFd6QNxpNTnfHnN+fWfi10Ry/lRoEv4pS8DO+Y+jWzSK/ajHGux1id3pab+yUy9tyW6qOXcqfAF6lo1sLaj7HzH8JTmMWb9g+8euRyrkhqwaQLWtMgLsrpCqWSUuCLVKTsPXg+v4ewbd+wntbcV/QALTr2Zt6gtrSsq3H04l8KfJGK4PFgl7+N+5vHKHG5eL7kJtY3uY5nL+1E94RaTlcnIUKBL+Jv6VvIn30H0WnL+dndmTdq3MXNl57LXzrU1xIIUqEU+CL+4iom/7sXqPLzCxR7qvC0GUfLQaN494xEIrWomThAgS/iB67UZHJmjaV27la+cPdlQ7eHuf/iPlqmWBylwBcpT8V57P30LzTY+E+KbRwv1n2cIdfeyqX1ajhdmYgCX6S8ZKxZgJ17N41d+5kTMYjYwU9zb9eW6qeXgKHAF/FRSW4G26fdTbu0z9lpG/J918kMvuxqoiL1zlgJLAp8kdNlLVu/m0b8TxNp5TnCl7Wup/Owp7m6Xm2nKxMpkwJf5DQcTtvF3ul30OnIYjaZFmwZ9C6XnNnf6bJEjkuBL3IKrMfNis9eoc2a52hlXXzX7E76DnuEalFVnS5N5IQU+CInac+2tWR/eAc9i9ewNrILMVf/g/5tuzhdlshJU+CLnICruIjkmf9Ht+2vE0skv3R+jD5X3k2YJk9JkFHgixzH9jWLsXPG09e9nRUx/Wh64z84o1Ezp8sSOS0KfJEyFBXksvr9P9Fj73SyTCwpfSfRY9BwjamXoKbAF/mdbcvmU+2re+nt2c+SWpfSfvjL9Kxdz+myRHymwBcpVZSbyab37qHrwTnsoT4r+79L33OvcLoskXLjt8A3xjwGjAbSSz/6s7X2S3+1J+KL3f+aRczCP9HJc5jv44fS/ebnaBIb53RZIuXK33f4L1lr/+bnNkROmyt7P7++dwetMhaxhUS2X/g25511gdNlifiFunQkNFlL+o9TqPb9ozT1FDG37mj6DX+cNrExTlcm4jf+Dvw7jTHDgWTgPmvt4d8fYIwZA4wBSEhI8HM5ImAzd5I2/TYaZiwlhfZkD3yBIWef5XRZIn5nrLWn/2VjFgINytg1EVgCHAIs8CTQ0Fo78njnS0pKssnJyaddj8hxuV3k/vgqkT8+Q7EnjI9rj+bimyfQoGa005WJ+MQYk2KtTTrRcT7d4VtrB5xkMW8B83xpS8QnaevI/nAscZlrWeTpScZ5zzCif2+Nq5eQ4s9ROg2ttftLN68E1vmrLZFjKinE9d1fMT+/QomN4ZnqD/KHm+7i/AaxTlcmUuH82Yf/nDGmG94unV+B2/zYlsj/2vULRZ+Oo2rWdma7+/Frz4n8cXBvqkboxSQSmvwW+Nbam/x1bpHjKszBLnwMkzyFdFuXZ8L/wrXDbuYPbeo6XZmIozQsUyqXzV/hmXcvHNnPVNfFLE28naeH9iW+utarF1HgS+WQmw5fPQTrZrPTJPBgyRMMGnQpb5zdgrAwPZgVAQW+BDtrYfVM7IIJeAqP8Krraj6rfi0v3dKb7gm1nK5OJKAo8CV4Ze2Gz++B7d+yvWoHxhZOoGWHnsy5uitx1SKdrk4k4CjwJfh43LBsMnz7JG5rmRQxijdy+/PQpR255axEja0XOQYFvgSXgxth7l2wZzl7489i2P7rcNVoyqyxPejWtKbT1YkENAW+BAdXEfz0Ivz0ArZqDd5vOJFHdnbgvLb1eOnabtSKqeJ0hSIBT4EvgS91mfeuPn0TR9pcxcj9V5L8azj3DWzDuP6tNApH5CQp8CVwFeXCt094++tjG7Pi7De5+adaRIQb3hvZnX6tNZFK5FQo8CUwbV0I8+6B7D14eo1ikrmelxem0aVJDK/f2JPGNas5XaFI0FHgS2DJy4AFE2DNLIhvS+4NXzDup0h+2JLG0F5NeWxIR6IitRaOyOlQ4EtgsBbWzYb5D0FhFpzzIFva3sboGWvZl5XN01d2ZlgfvSBHxBcKfHFe9h744j7Y8hU07glD5jL/YG3uezOZ6lUjmDnmDHo206xZEV8p8MU5Hg8kT4GFj4N1w6Cn8fS6jZcXbWfSohV0T6jJGzf2pH5slNOVilQKCnxxRvoW71DL1CXQ4jy47BVyo5vwxxmr+HrDAa7p2YT/u7KT1q4XKUcKfKlYrmL41yvw43MQGQ2XvwbdhpF6uIBRr/3M1oNHeGRwBy2RIOIHCnypOHtTYM5dcHA9dLwSLn4Oqtdj2c5Mxk5LweX28O7I3hpfL+InCnzxv+I8+O5pWPIaVK8PQz+AdpcA8OHyVCZ+tpamtaJ5++YkWtSt7nCxIpWXAl/8a8f3MHc8ZO2CnrfAwMchKg63x/LXrzYx+ccd9Gsdz9+v70FctJY0FvEnBb74R8FhWPAwrJoGtVvCiC8g8WwA8opc3D1zFQs3HmD4Gc14ZHAHIsLDHC5YpPJT4Ev5shY2zIEvH4D8DDj7j3DugxDpXQohLbuQke8sZ1NaDo9d1oERZzV3uGCR0KHAl/KTsx++vB82zYOGXeHG2dCwy392r9+Xzch3lpNb6GLKzb3o366eg8WKhB4FvvjO44EV78I3j4C7GAY+AX3HQfh///H6btNBxs1YQVy1SD6+/UzaN4x1sGCR0KTAF99kbPc+lN21GBL7wWWvQJ2Wvznk/SW7eHTOOto3jGXqiF6aOSviEAW+nB63C355Fb5/FsKrwmWToMdwOGqylKd0JM6bP+7ggnb1mHR9d2Kq6h85Eafo3z45dftWeZdFSFsD7QbDJX+D2Ia/OaSwxM39H61m3pr93NS3GY8N6Ui43kwl4igFvpy8kgL4/hn4+e8QEw/XvgcdLv+fw7LzSxj9fjLLdmbyp4vbcds5LbRMgkgA8GnwszHmGmPMemOMxxiT9Lt9E4wx24wxm40xg3wrUxy38yd4/UzvOjjdhsG4pWWG/d6sAv7wxs+s2p3FK0O7Mfbclgp7kQDh6x3+OuAq4M2jPzTGdACGAh2BRsBCY0wba63bx/akohVkeUffrHgXaiXC8LnQ4twyD92UlsOIqcvJK3LxzshenNkyvmJrFZHj8inwrbUbgbLu4C4HZlpri4CdxphtQG/gF1/akwq2cZ73xSR5B+HM8XDeBKgSXeahS3ZkMPq9ZKKrhPPR7WfQroGGXYoEGn/14TcGlhy1vaf0s/9hjBkDjAFISNAr7ALCkQMw/wHvjNn6nWHYTGjU/ZiHf7VuP+M/WEVCnWjeHdlbLxgXCVAnDHxjzEKgQRm7Jlpr5/hagLV2MjAZICkpyfp6PvGBtbBqOiyY6H1Ae8Ej3jv78GMvajZ96S7+8tk6ujWtydQRvagZXaUCCxaRU3HCwLfWDjiN8+4Fmh613aT0MwlUmTvh87th5w+QcAYMeRXiWx/zcGstry7axovfbKF/27q8dkNPqlXR26lEApm/unTmAjOMMS/ifWjbGljmp7bEF24XLH0dFj0FYRFw6YveZYzDjj2Ay+OxPP75et79ZRdX9WjMX//QhUitdikS8HwKfGPMlcCrQF3gC2PMKmvtIGvtemPMh8AGwAWM0widAJS2DubeCftWQpuL4dIXIK7MRy3/UeL28MBHq/ls1T5uPbs5Ey9pT5gmVIkEBV9H6XwKfHqMfU8BT/lyfvGTkkL48Xn418sQVROungodr/rNsghlKSh2M27GChZtOsgDg9pyx3kaYy8STDTTNtTs+sW7LELGVuh6PQx6GqJrn/BrOYUljHonmeW7Mnnqyk7c0KdZBRQrIuVJgR8qio7Awsdg+dtQMwFu/ARaXXBSX83MK2b41KVs2n+ESUO7c1nXRv6tVUT8QoEfCrYsgHn3Qs4+6HsH9J8IVU/uZeFp2YXcOGUpqZn5TB7ek/Pb1fdzsSLiLwr8yiw3Hb56CNbNhrrtYdR70CTpxN8rtTsjnxumLCEzt5h3R/amb4s6fixWRPxNgV8ZWQtrZsFXE7xdOef9Gc6+FyJOflLUtoO53Pj2UgpK3MwY3ZeuTWv6sWARqQgK/Momazd8fg9s/xaa9PZOoKrX7pROsXF/DjdNWQrAzDF99TpCkUpCgV9ZeNyw7C349gnv9sXPQa9REHZqs1/X7MnipinLqBYZzvTRfWhZ9+T6+kUk8CnwK4ODG71DLfcsh1YDYPBL3pE4pyhl12FGTF1GXHQkH4zuS9PaZa+MKSLBSYEfzFxF8NOL8NMLULUGXPUWdL7mhBOoyrJ0RwYj31lOvdgopo/qQyOteClS6Sjwg1Xqcu+yCOmbvCF/0bPe1w6ehn9tO8St7y6nSa1oZozqQ73YqHIuVkQCgQI/2BTlwqInYembENsYhn0EbS487dP9uCWd0e8l0zw+hmmj+hBfvWo5FisigUSBH0y2LoR590B2KvQaDQMe9XblnKbvNx9kzPsptKpbnWmj+lA7RmvZi1RmCvxgkJcBCyZ4x9bHt4GRCyChr0+nXLTpAGPfX0Hr+tWZPqqPXlwiEgIU+IHMWu8s2fkPQWEWnPMg9LsPIn3rY/924wFun7aCtg1qMO3WPsRFH/uNViJSeSjwA1X2Hpj3R9i6ABr3hCFzoX5Hn0+7aJM37Ns1rMH7IxX2IqFEgR9oPB5IngILHwfr9i5f3GfsKU+gKst3mw4y9n3vnb3CXiT0KPADSfoW7wSq1CXQ4jy47BWolVgup/5u80Fuez9F3TgiIUyBHwjcJd63T/3wHERGw+WvQbdhpzWBqiw/bknntvdTaNOgusJeJIQp8J22NwXm3AUH10OHK7xr4NQovzXn/7XtEKPfS6ZlXYW9SKhT4DulOA++exqWvAbV68N106H94HJtYsmODG59dzmJdWI09FJEFPiO2PE9zB0PWbug5wgY+ARExZVrEym7Mhn5znKa1opm+mhNqhIRBX7FKjgMCx6GVdOgdksY8QUknl3uzazZk8WIqcupX7oQmpZLEBFQ4FcMa2HDHPjyAcjP8L596tyHILL8V6TcsC+Hm6Yso2ZMJDNGayE0EfkvBb6/5eyHL++HTfOgQRe48WNo2NUvTW07eIQbpywluko4M0b1pWGcljgWkf9S4PuLxwMr3oVvHgF3MQx4HM64E8L980e+KyOPYW8tJTzMMEMvLxGRMijw/SFju/eh7K7FkNjPO4GqTku/Nbc/u4Bhby2lxO1h5pgzaB4f47e2RCR4KfDLk9sFv7wK3z0DEVFw2SToMbzcJlCVJf1IETe8tZScghJmjO5L2wanv1yyiFRuYb582RhzjTFmvTHGY4xJOurzRGNMgTFmVenPG76XGuD2r4a3+sPCx6D1QBi3FHre7Newz84v4aYpS9mfXcjUW3rRuUn5Du0UkcrF1zv8dcBVwJtl7Nture3m4/kDX0kBfP8s/PwqRNeBa9+DDpf7vdm8Ihe3vLOMHel5TBmRRK/E2n5vU0SCm0+Bb63dCGD8eBcb0H5d7O2rz9wO3W+EC/8PqtXye7NFLje3vZ/CqtQsXruhJ/1a1/V7myIS/Hzq0jmB5saYlcaYH4wx/Y51kDFmjDEm2RiTnJ6e7sdyylFhNnx+N7xzqXcJ4+Fz4PJ/VEjYu9wexn+wksXbDvHc1V25qFMDv7cpIpXDCe/wjTELgbJSZaK1ds4xvrYfSLDWZhhjegKfGWM6Wmtzfn+gtXYyMBkgKSnJnnzpDtk4D764D/IOeodZ9p8IVSpmCKTHY/nTJ2tZsP4Aj17Wgat7NqmQdkWkcjhh4FtrB5zqSa21RUBR6e8pxpjtQBsg+ZQrDBRHDsD8B7wzZut3gus/gMY9Kqx5ay1Pf7mRj1P2cPcFrbnlrOYV1raIVA5+GZZpjKkLZFpr3caYFkBrYIc/2vI7a2HVdFgw0fuA9vy/wFl3Q3jFLjP82vfbeXvxTm4+oxn3DGhdoW2LSOXgU+AbY64EXgXqAl8YY1ZZawcB5wBPGGNKAA8w1lqb6XO1FS1zJ8y7x7u6ZcKZMGQSxFd82M5YupvnF2zmim6NePSyjqH7kFxEfOLrKJ1PgU/L+Hw2MNuXczvK44Ylr8Oi/4OwCLj0Reh5C4T58xl32b5at5+HP1vLeW3r8vw1XQkLU9iLyOnRTNvfO7Ae5twJ+1ZAm4vh0hcgrrEjpfyyPYPxH6yia9OavHZDDyLDK/4/OCJSeSjw/62kEH76Gyx+CaJqwtVToeNVfp0pezzr92Uz5r1kmtWJ5p8jehFdRX9VIuIbpQjArl/g8/FwaAt0vR4GPQ3Rzs1cTc3MZ8Q/l1MjKoL3bu2tVxOKSLkI7cAvzIFvH4flb0NcAtwwG1qf8ijUcpWRW8Twqcsodnn44PYztKa9iJSb0A38LQtg3r2Qsw/63A7nPwxVqztaUl6Ri5HvLGdfVgEzRvehVT2tfCki5Sf0Aj/vEMx/CNZ9DHXbw63vQtNeTldFidvDHdNXsHZvNm/elETPZloMTUTKV+gEvrWwZhZ8NQGKjsB5f/a+WzbC+f5xay0TPlnLD1vSeeaqzgzsUN/pkkSkEgqNwM/a7e2+2bYQmvSGIa9CvXZOV/UfLy3cyscpexh/QWuu753gdDkiUklV7sD3uGHZW/DtE97ti5+DXqMgLNzZuo7ywbLdTPp2K9cmNeFeLZkgIn5UeQP/4CaYexfsWQatBsDgl6BmYN09L9p0gIc/W8e5bery1JWdtWSCiPhV5Qt8VzEsfhF+/Jt31M2Vb0KX6xybQHUsa/ZkMW76Sto3rKFZtCJSISpX4O9J9i6LkL4ROl0NFz0L1QPvbVCpmfmMfCeZ2jFVmDqiFzFVK9dfg4gEpsqRNEW53oXOlr4BsY1g2IfQZpDTVZUpO7+EEf9cRrHLzQej+1CvRpTTJYlIiAj+wN+2ED6/F7J3Q6/RcMEjEBXrdFVlKnK5GfN+MqmZBbx3a29a19fEKhGpOMEb+PmZ3jH1a2ZCfBsYuQAS+jpd1TFZa/nT7LUs3ZnJK0O70bdFHadLEpEQE3yBby2sm+2dLVuYBec8AP3uh8jA7hp5aeFWPl25l/sGtuHybs4stywioS24Aj97r/cF4lvmQ6MeMGQONOjkdFUn9HHKHiZ9u5WrezbhzvNbOV2OiISo4Ah8jwdSpsI3j4HHBRc+BX1vD6gJVMfyy/YMJnyyhjNb1uFpjbUXEQcFfuAf2gpzx8Pun6HFeTD4Zajd3OmqTsqO9FzGTkuhWZ0YXr+xJ1UiNNZeRJwTuIHvLoF/vQw/PAeR0XD5a9BtWMBNoDqWw3nFjHxnORFhhn+O6EVctUinSxKREBeYgb93hXdZhAProMMV3jVwagTPCpJFLje3vZ/CvuxCPhjdh6a1o50uSUQkwALfemDBRFjyGlSvD9dNh/aDna7qlFhr+fMn61j2q3f4pda1F5FAEViBn74JftkOPUfAwCcgKs7pik7Z6z9sZ/aKPdwzoLWGX4pIQAmswAcY8QUknu10Faflq3VpPPfVZoZ0bcTdF2ipYxEJLIE1bKRu+6AN+3V7s7l31iq6Na3Jc1d30fBLEQk4gRX4QRqSB3MKGfVuMrWiI5k8vCdRkYE/P0BEQk/gdekEmcISN6PfTyGnsISPx56p1S9FJGD5dIdvjHneGLPJGLPGGPOpMabmUfsmGGO2GWM2G2MCc61iH1lreWj2GlanZvHSdd3o0CgwV+kUEQHfu3S+ATpZa7sAW4AJAMaYDsBQoCNwEfCaMabS9XO89v125qzaxwOD2jKoYwOnyxEROS6fAt9a+7W11lW6uQRoUvr75cBMa22RtXYnsA3o7Utbgebr9Wk8v2Azl3drxB3ntXS6HBGREyrPh7YjgfmlvzcGUo/at6f0s/9hjBljjEk2xiSnp6eXYzn+szntCPfOWkXXJnH89Q8akSMiweGED22NMQuBsvorJlpr55QeMxFwAdNPtQBr7WRgMkBSUpI91e9XtMN5xYx6bzkxVSOYPDxJI3JEJGicMPCttQPFdqYpAAAJ10lEQVSOt98YMwIYDFxgrf13YO8Fmh51WJPSz4JaidvDHdNXcCCniFlj+lI/ViNyRCR4+DpK5yLgQWCItTb/qF1zgaHGmKrGmOZAa2CZL20Fgv+bt4FfdmTw7FWd6Z5Qy+lyREROia/j8P8OVAW+Ke3HXmKtHWutXW+M+RDYgLerZ5y11u1jW46atXw37/6yi9H9mnNVjyYn/oKISIDxKfCttcd8X5+19ingKV/OHyhSdh3m4c/W0a91PA9d1M7pckRETktgLa0QgA7kFDJ2WgoN46rx6vXdiQjXH5mIBCctrXAchSXeF5nkFbmYdmsfakZXcbokEZHTpsA/Bmstj8xZx6rULN64sSdtG9RwuiQREZ+of+IYpi3dzYfJexh/fisu6qRlE0Qk+Cnwy7D810wen7ue/m3rcs+ANk6XIyJSLhT4v5OWXcjt01bQpFY1Xh7anbAwLZsgIpWD+vCPUuRyc/v0FPKLXcwY3Ye4apFOlyQiUm4U+Ed5ct4GVu7O4rUbetCmvh7Sikjloi6dUh8mpzJtyW5uO7cFl3Ru6HQ5IiLlToEPrN2TzcOfreOsVnV44MK2TpcjIuIXIR/4h/OKGTsthfiYKkwaqpm0IlJ5hXQfvttjGT9zJelHivho7BnUqV7V6ZJERPwmpAP/lYVb+GnrIZ65qjNdm9Y88RdERIJYyPZffLvxAJMWbeOank0Y2qvpib8gIhLkQjLwd2fkc++sVXRsFMuTV3TSO2lFJCSEXOAXlngnVwG8fkNPvZNWREJGyPXhPzZ3Pev35TB1RBIJdaKdLkdEpMKE1B3+R8mpzFyeyrj+LTm/XX2nyxERqVAhE/gb9uXw8GfrOLNlHf44UJOrRCT0hETg5xSWcMf0FGpGRzLp+u6EawVMEQlBlb4P31rLQx+vIfVwATPH9CVek6tEJERV+jv8d37+lfnr0nhwUFt6JdZ2uhwREcdU6sBfufswT3+5kQHt6zPmnBZOlyMi4qhKG/iH84q5c8ZK6sdG8cI1XTW5SkRCXqXsw/d4LPd9tJqDRwr5eOyZxEXrzVUiIpXyDv/txTtYtOkgEy9pr0XRRERKVbrAT9mVyV+/2szFnRpw85mJTpcjIhIwfAp8Y8zzxphNxpg1xphPjTE1Sz9PNMYUGGNWlf68UT7lHt/hvGLumrGSxjWr8deru6jfXkTkKL7e4X8DdLLWdgG2ABOO2rfdWtut9Gesj+2ckLWW+z9azaHcYv4xrAexUeq3FxE5mk+Bb6392lrrKt1cAjTxvaTTM2XxTr7ddJA/X9KOzk3inCpDRCRglWcf/khg/lHbzY0xK40xPxhj+h3rS8aYMcaYZGNMcnp6+mk1vCo1i2fnb+LCDvXVby8icgwnHJZpjFkINChj10Rr7ZzSYyYCLmB66b79QIK1NsMY0xP4zBjT0Vqb8/uTWGsnA5MBkpKS7KleQHZBCXfOWEH92Ciev1rj7UVEjuWEgW+tHXC8/caYEcBg4AJrrS39ThFQVPp7ijFmO9AGSPa14N/Vxp9mryEtu5APx56h8fYiIsfh6yidi4AHgSHW2vyjPq9rjAkv/b0F0BrY4UtbZZm+dDfz16Vx/6C29EioVd6nFxGpVHydaft3oCrwTWlXypLSETnnAE8YY0oADzDWWpvpY1u/sXF/Dk/M28A5beoypp/WyRERORGfAt9a2+oYn88GZvty7uPJL3Zx1wcriasWyYvXdiVM69uLiJxQUK6l8/jcDWxPz+X9kX20vr2IyEkKuqUV5q7ex6zkVO44ryVnt453uhwRkaARVIGfmpnPxE/W0iOhJvcMaON0OSIiQSVoAr/E7WH8zJUAvDK0O5HhQVO6iEhACJo+/JcXbmHl7ixevb47TWtHO12OiEjQCYrb5J+3H+K177dzXVJTLuvayOlyRESCUsAH/uG8Yu6dtYrm8TE8OqSD0+WIiAStgA58ay0PzV5DZl4xk4Z2J7pK0PRAiYgEnIAO/A+WpfL1hgM8dFE7OjXWksciIr4I2MDfdvAIT8xbT7/W8Yw8q7nT5YiIBL2ADPwil5vxH6wiukoEL1yjpRNERMpDQHaK/23BZjbsz+Ht4UnUi41yuhwRkUoh4O7wF289xFs/7eSmvs0Y0KG+0+WIiFQaARX4bo/lvo9W0bJuDH++pL3T5YiIVCoB1aWz53ABNfOKmXJzL6pVCXe6HBGRSiWg7vBzCku4/8K2GoIpIuIHpvQ1tAHBGHME2Ox0HX4UDxxyugg/0vUFt8p8fZX52gDaWmtrnOiggOrSATZba5OcLsJfjDHJur7gpesLXpX52sB7fSdzXEB16YiIiP8o8EVEQkSgBf5kpwvwM11fcNP1Ba/KfG1wktcXUA9tRUTEfwLtDl9ERPwkYAPfGHOfMcYaY+KdrqU8GWOeNMasMcasMsZ8bYypVK/wMsY8b4zZVHqNnxpjajpdU3kxxlxjjFlvjPEYYyrNiA9jzEXGmM3GmG3GmD85XU95MsZMNcYcNMasc7oWfzDGNDXGfGeM2VD6z+bdxzs+IAPfGNMUuBDY7XQtfvC8tbaLtbYbMA94xOmCytk3QCdrbRdgCzDB4XrK0zrgKuBHpwspL8aYcOAfwMVAB+B6Y0xlerXcO8BFThfhRy7gPmttB6AvMO54f38BGfjAS8CDQKV7wGCtzTlqM4ZKdo3W2q+tta7SzSVAEyfrKU/W2o3W2so2MbA3sM1au8NaWwzMBC53uKZyY639Ech0ug5/sdbut9auKP39CLARaHys4wNt4hXGmMuBvdba1cZUznXwjTFPAcOBbKC/w+X400hgltNFyHE1BlKP2t4D9HGoFvGBMSYR6A4sPdYxjgS+MWYh0KCMXROBP+Ptzglax7s+a+0ca+1EYKIxZgJwJ/BohRbooxNdX+kxE/H+7+b0iqzNVydzbSKBxhhTHZgN3PO7XoTfcCTwrbUDyvrcGNMZaA78++6+CbDCGNPbWptWgSX65FjXV4bpwJcEWeCf6PqMMSOAwcAFNsjG/Z7C311lsRdoetR2k9LPJEgYYyLxhv10a+0nxzs2oLp0rLVrgXr/3jbG/AokWWsrzaJHxpjW1tqtpZuXA5ucrKe8GWMuwvv85Vxrbb7T9cgJLQdaG2Oa4w36ocAwZ0uSk2W8d8ZTgI3W2hdPdHygPrStzJ41xqwzxqzB23V13GFUQejvQA3gm9Khp284XVB5McZcaYzZA5wBfGGMWeB0Tb4qfcB+J7AA7wO/D621652tqvwYYz4AfgHaGmP2GGNudbqmcnYWcBNwfum/b6uMMZcc62DNtBURCRG6wxcRCREKfBGREKHAFxEJEQp8EZEQocAXEQkRCnwRkRChwBcRCREKfBGREPH/+I9uqp1qb7YAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "center = -1\n",
        "width = 6\n",
        "\n",
        "def f(x):\n",
        "    return - x**2 + 3*x\n",
        "\n",
        "def df(x):\n",
        "    return -2*x + 3\n",
        "\n",
        "grid = np.linspace(center-width/2, center+width/2, 100)\n",
        "\n",
        "fx = f(grid)\n",
        "pt.plot(grid, fx)\n",
        "pt.plot(grid, f(center) + df(center) * (grid-center))\n",
        "\n",
        "pt.xlim([grid[0], grid[-1]])\n",
        "pt.ylim([np.min(fx), np.max(fx)])"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "* What's the error we see?\n",
        "* What if we make `width` smaller?"
      ]
    },
    {
      "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.7.3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 1
}