{
"cells": [
{
"cell_type": "markdown",
"id": "03adb8b5-2e3f-4266-870d-9a299fb70bf2",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"# 2025-08-22 Welcome\n",
"\n",
"## CSCI 3656 Numerical Computation\n",
"\n",
"Prof [Jeremy L Thompson](https://jeremylt.org>) (he/they)\n",
"\n",
"* Contact: jeremy.thompson@colorado.edu\n",
"\n",
"* Course Website: https://jeremylt.github.io/csci-3656-fall-2025\n",
"\n",
"* Course Textbook: https://tobydriscoll.net/fnc-julia\n",
"\n",
"* Course Zulip: https://csci-2656-fall-2025.zulipchat.com/join/kq2jysp7fp74ldcgt23ge4c3"
]
},
{
"cell_type": "markdown",
"id": "449aad62-5905-494b-96b1-283f2ff12b37",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## About Me\n",
"\n",
"* Jeremy L Thompson (he/they)\n",
"\n",
"* Currently Assistant Research Professor & Research Software Engineer\n",
"\n",
"* Formerly Weapons Test Analyst (USAFA), Professor (USAFA)\n",
"\n",
"* [libCEED](https://github.com/CEED/libCEED), [Ratel](https://gitlab.com/micromorph/ratel), and more"
]
},
{
"cell_type": "markdown",
"id": "5c68c6c3-2d2e-4a2c-b10c-1d38d0aacc4c",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Prereqs\n",
"\n",
"### Calculus\n",
"\n",
"* Fundamental Theorem of Calculus\n",
"\n",
"* Differentiation & integration of polynomials\n",
"\n",
"* Taylor series\n",
"\n",
"* Gradients (ToDo for us)\n",
"\n",
"Don't need any fancy 'tricks'"
]
},
{
"cell_type": "markdown",
"id": "2f60b216-adaf-4e47-b32f-859326e02b98",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"### Linear Algebra\n",
"\n",
"* Vector spaces\n",
"\n",
"* Orthogonality\n",
"\n",
"* QR factorization\n",
"\n",
"* Projections, reflectors, rotations (ToDo for us)\n",
"\n",
"Also don't need any hand matrix manipulation"
]
},
{
"cell_type": "markdown",
"id": "b84f36ef-20a0-4ac7-a6aa-04b7331b5ef6",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## What is Numerical Computation?\n",
"\n",
"[Trefethen (1992)](https://people.maths.ox.ac.uk/trefethen/publication/PDF/1992_55.pdf) \n",
"\n",
"> Here is the wrong answer:\n",
"> > Numerical analysis is the study of rounding errors.\n",
"\n",
"> I propose the following alternative definition\n",
"> > Numerical analysis is the study of algorithms for the problems of continuous mathematics"
]
},
{
"cell_type": "markdown",
"id": "316456ee-09c5-4ad3-86b2-bf8adaaf8c7d",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Continuous Mathematics ?!?\n",
"\n",
"* Finite representations of continuous objects\n",
" - real and complex numbers $x \\in \\mathcal{R}$\n",
" - vectors $\\bf{x} \\in \\mathcal{R}^n$\n",
" - matrices $\\bf{A} \\in \\mathcal{R}^{m \\times n}$\n",
"\n",
"* Infinite representations of continuous objects\n",
" - functions $f: \\mathcal{R} \\rightarrow \\mathcal{R}$\n",
" - high order functions $g \\left( f \\right)$\n",
"\n",
"TLDR: Real or complex numbers involved"
]
},
{
"cell_type": "markdown",
"id": "c51a1f00-3874-4537-822b-cefc3148025f",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Rootfinding\n",
"\n",
"Given $f \\left( x \\right)$, find $x$ such that $f \\left( x \\right) = 0$\n",
"\n",
"* Convergence - how many steps to I have to take to find the root?\n",
"\n",
"* Cost - how much work does each step require?\n",
"\n",
"* Robustness - can the algorithm fail?"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "39f96982-5ea4-4834-a5b8-08f6d48ba4bd",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3dd3wUdf4/8PfMlvRCCmmUEFoSmtRQQodIElBQ8DyQoqj4Fet5onhUG96BgIiC4A+9AzzhLEgAITSJQEAElBZaSCgphPSe3Sm/PybZnQRIIdtm9/V88MfuZGb3k8K89tMZURQJAADAUbHWLgAAAIA1IQgBAMChIQgBAMChIQgBAMChIQgBAMChIQgBAMChIQgBAMChIQgBAMChIQgBAMChIQgBAMChKSMIr1y58vnnn1u7FGBb9Hq9tYsAtoXjOKwZCXVwHNfgOcoIwosXL+7atcvapQDbUllZae0igG3R6XSCIFi7FGBDBEGoqqpq8DRlBCEAAICZIAgBAMChIQgBAMChIQgBAMChIQgBAMChIQgBAMChIQgBAMA+VfGka8SEGgQhAADYoUNZYsi3/MUipsEzEYQAAGCHFp/iCxqeTE+EIAQAALt0raSxZ6rNWQwrW7NmzbJly6xdCsfFsuzKlSvj4+OtXRAAcES3Kxq78Kw9B+GlS5emTJkyY8YMaxfEQb377rupqanWLgUAOKIiHVXyjT3ZnoOQiHx9fcPCwqxdCgfl5eVl7SIAgINqfHWQ0EcIAAD253ZFE05GEAIAgL3JaUqN0LxNo3q9/tChQ0TUt2/fOg1llZWVO3bsuHjxopeXV1xcXPv27c1aEgAAcBzZtlMj/PDDD0ePHj169OgLFy7Ij9+8ebNnz56TJk1avXr13//+94iIiLVr15q1JAAA4DhspY/w3LlzH374Yffu3e/+0lNPPXXt2rVdu3ZlZ2dnZWUNGjTopZdeOnnypPkKAwAAjsMm+gh5nn/mmWfGjRs3bty4Ol86fvx4UlLSjBkzYmNjicjHx2fNmjU8zy9fvtxMhQEAAIdiE02jy5Ytu3z58ieffHL3l/bs2UNEjz76qOFIeHh4eHj47t27zVQYAABwKE0aLGOWILx06dLixYuXLl0aEhJy91dTUlKIKDIyUn4wMjIyPz//9u3b5igPAAA4lKzyJpxs+lGjgiA8++yz/fr1e/bZZ+95Qn5+PhH5+vrKD0pP8/PzAwIC7r5Ep9NlZ2dv3bpVesowzPDhw318fOoviSg24ROB40hLS0tKSpo+fXpzXmTNmjVPPPFEnV/i3URRFIRGbILyQARBMN+LgxJJfxIM0/BuA2D3ciqtOn1i1apVJ06cOH369P3+HDmOIyKtVis/6OTkRER6vf6el+Tm5mZkZHz77beGIz4+PlFRUfWXRHojpcjKyjp79uzAgQNv3Lhx586dIUOGmOP/c35+/qJFi9avX9/M13nqqadmz569fv166Rd3Pzqdrry8KR/MmqKiokKlUpnpxUGJysvLeZ7HXwUU65kKrjpiGvNx2cRBmJaWNm/evIULF0ZERNzvHHd3dyLKz88PCgoyHJSqiR4eHve8JDg4uHfv3j/88EOTCqPRaJp0vhVdu3YtLS0tOjp61KhRn3766ZIlSwIDAzt37mzyN/rHP/4xf/78Op9CHoCHh8eLL764ZMmSRYsW1XOak5OT9Os2B1EUzffioEQsyzo5OSEIIaNIJKquCLFswz2AJu4jTEpKKisrW7t2bfsan332GRFNnDixffv2hYWFRBQaGkpE2dnZ8gszMzM1Gk2rVq1MWx6luH379siRI6uqqnQ6Xe/evb/++mtzpODvv/9eWFjYoUMHk7xa//79jxw5kp6ebpJXAwAwlZymDBklkwdhp06dnn/++TFjxoyq0a5dOyLq27fvqFGjpCragAEDiCgxMdFwVWlpaXJycu/evRVUhzMt6Wdy5MiRYcOGEVFgYKA53mX16tXN7Bqs48knn2x+KysAgGlllTdtgIiJm0YHDBgg3dMN5s2bd/r06bfeestwPD4+3tfXd8OGDS+//LKrqysRrVu3rqqqyrT3aFuWkZFx7NgxrVYbGxurVquJ6NatWyEhIfv374+Ojiaio0ePDhw4UH5JVlbW0aNHVSrVmDFjnJ2dpYOiKB4/fjw1NbVbt251Fi5IS0s7fvy4t7f3qFGjpLcQBOHnn3++54SWrKyspKSkjh079urVS368oqJi3759zs7Oo0aNKi8v37lzZ9u2beVds9HR0StXrvzggw9M83MBADCFJk0iJKtsw+Th4bFixYrp06f369dv0qRJqampmzdvHjRo0DPPPGO+N63kaf7v/I6boq7RO1Q1k4ql6ADmn/1U/s7Ggzqd7o033vDy8nrttdcKCgrefvttaevgMWPG/Pjjj1L7cEpKiny8qyAICxYsqKiomDNnTkFBweTJk6W+0itXrrz++uuzZs0aP378ypUr//e//7333nvSJStXrtRqtVOmTMnLy3vnnXf+9a9/EVFqaqq/v//dWyOtWbPm999//+ijj3799ddVq1ap1eovv/ySiG7fvr1hw4bnnntuy5YtP//8s6en54wZM2JiYj777LPRo0dL13bq1OnmzZslJSX369wFALC8Jq2vRhYIwq5du06aNKnOOPupU6f6+vouX778iy++8PHxmTNnzrx585o/gqMeTyfx36Zaeqj9lSLxTL7426Nqtmb458SJE4OCgt5//30i8vPzKygokI5/9913d+7c+fbbb5OSktRq9aBBgwwv8sILL+h0uq+//pqIVq1atX//fo7jMjMzo6Ojd+zY0bdvXyKaM2eOh4fHlClTwsPDs7Ozv/rqqz///JOI9u7dm5CQIAVhZmamv79/nRJu2rTps88+O336tEajeeyxx95++23DpJfPP/98wYIFKpWqW7dur7zyyvXr1/V6fWhoqNTWLWEYxtfX9+rVqz179jTHDxAA4AFkN3GsutmD8Mknn3zyySfvPh4XFxcXF2fud5fkVdHWa9aZcHYyVzx+RxzQkiGin376aefOnVevXq2qqrp48eKWLVsMrcHh4eHSg6FDh8ovT0xMXL9+vWHJ8pdffnn69OlqtfqFF17o3bu3lIJExHEcx3F//vmnFIQXLlx49913R48ePXbsWGkdOyLKyspq0aKF/MXLyspee+21efPmSV2zFRUVN27cGDFihPTV2NhYafRdSkpK165dpXFM8p5dSYsWLaQxUAAANsLmaoS2oIoXBevNra+omc343//+t3379nv37nV3dw8JCVm4cGH9k/CIaO3atX369DHMRQkMDAwMDExPT9+9e/fmzZsNp128eJHneWmFgR49evzf//3fkiVLFi5cGBkZeejQITc3NyKqqqqqMzFx+/bteXl5EydOlJ4mJye7uroa6nb9+/eXHhw6dGj48OH3KyHLspjVDgA2pal9hA6xMW+wKzMwwDqLTYS4Gd/69u3bUVFRzz///OTJk4cOHdpgChJRSkpKnz596hy8dOmSKIoPPfSQ4cgPP/zg6+s7ePBgnudzcnJWrVpVXFx84MCBysrKjRs3Sud4enoaWmIl58+fDwoKMkxZOXjwYHR0tEqlKi4ulp/2yy+/DBkyRHpcWlpapzD5+fne3t4NfiMAABYjD0IvTcPVIIcIQiLaMkI1LMjSWdjNh0mIUTnXzO4NDQ1t2bKl/AQpq+p5hYCAgDrrte7bt09q4TQEWFVV1ddff71kyRJnZ+d33nlHGj6q0WiGDx8eHx9vWLUgLCwsNzdX/lKurq7y2Yp79uwZPHiwKIrffPNNTk7Ohg0biOjcuXNZWVm9e/cmIlEU7x50mpubi02VAcB2iLVX3G7pXM+51RyiaZSIWrkxB+PVRTrKq7JQI6mnhvGr/QuYPXv2iy++yHGcWq0WBGHjxo1qtdowF+KeXn311XXr1omiyDAMz/P//ve/XVxcRo4cOWTIkMOHD8fGxup0umeffXbmzJnPPfccEWk0GinAiCg9PT0jI+Pxxx+XnkZERGRkZJSXl0tTVohowoQJ//nPf3ieZ1lWqkSGhoYePHiwX79+n3322VdffTVt2rTvv/8+KChIGse0fv36v/71r/LiXb16NSAgADVCALAduZWkr+mu8daSSyNSzlGCUOKlJS+t1Rbk7dOnz8cff7xs2bKAgIDKysrY2FhpkZ16TJgwQavVfvzxx35+fhUVFfHx8W3atCGinTt3rl69Oi0traCg4JVXXjGMmpk/f/7XX3+9atUqFxcXlmW/+eYbwxoFWq122LBhJ06cMIzHiYiIWLVq1YoVK1xcXCZNmjRs2LBvv/22Z8+eI0aM8Pf312g0a9eu/ctf/vLII4+sX78+ODh4yJAhYWFh8uL9+uuvY8eONe1PCQCgOeQjZQJcGnXDd6wgtLrBgwcPHjy4SZfEx8fHx8fXOeju7v7222/ffbKTk9OsWbPu91IvvPDC5s2b5QNTY2JiYmJipMfBwcE9evSQHrdu3XrevHmG0+43O2LLli0rVqxo3PcBAGAJ8g2YAl0a1QToKH2EQESjR48uLi421aaPJ0+eDA8Pr2d1dQAAy8uW1QgDXRtVI0QQOpalS5e+/fbbzZ/wUFlZuXTp0nfffdckpQIAMBV5jTDIpVGXIAgdS+vWrV9++eWvvvqqma+zevXqjz76yNPT0ySlAgAwFfQRQsN69erV/BXR3njjDewDDgA2SL6+WqBroy5BjdARNT/DkIIAYJvkezAFoY8QAAAcTZZsWZlAZ4waBQAAByOvETZy1Cj6CC1ty5YtWVlZgiB06dLl4YcftnZxAADsRyVPRbrqxxqWfJ2oqr5VLKshCC1K2uFv4cKFRPTee+8dPXp08eLF1i4UAICdyJZVB1u6MGzjBjMgCC3nxo0bK1euzMzMlJ6++eabgYGBTz/9dIMLrQEAQGNkNn0SITlUEHJ52ZUXfhN1jagnmwKjUjt1fEgTYlycMyEhoU2bNu7u7tJTZ2fnoKCghISEl19+2TJFAgCwbw8wZJQcJwgrzhzJ//cSkecaPtWEGMZr3EyPEdU73/7222+GnR8knp6eJ06csGiRAADsl3wnwqDGTSIkBxk1KvJcwZZPLJ2CRCSKRTs28IXVuwDm5uZKm8UbuLu719kjEAAAHljtGmFjr3KIIOSL8oSy4obPMwdB0GelSw9LS0sNmyJJnJycioqKLF8oAAC7JK8RNnJ9NXKQIFR5+rDObg2fZw4Mo25ZvZW8l5dXWVmZ/IslJSVYrhMAwFQyZTXCYNQI5Ri1xmvCLLLGqmAeI59Q+wZKj/38/EpKSuRfLSkp8fX1tXypAADsknzriWAMlqnDLSpGG9K+4vwxUVdlmXdkWJVTpx5OHR8yHOndu/fBgwfl5xQXFxs2lwcAgGbKfKA+QkcJQiLStGqvadXeigV47LHH3nzzzaKiIi8vLyIqLi7Ozs4eN26cFYsEAGA3OIFya+bHMdV9hFhr1MYEBQXNnTv3gw8+EEVRFMUPPvjg7bffDgsLa/hKAABoyO0KUagJPj9n0jQ63xyoRmgL5s+f//PPPy9fvpxhmOjoaFQHAQBMRb7vROM7CAlBaHmxsbGxsbHWLgUAgL3JLHuQDkJC0ygAANiHrFrLyjShRoggBAAAe/Bgy8oQghAAAOyDfBIhaoQAAOBwaq243eg9mAhBCAAA9kE+WCbEDTVCAABwMJm11ldrwoUIQgAAUDxepJzK6hoh05StJwhBCAAAdiCngjih+rGfMzmpmnAtghAAABSv9gZMTdtrCEEIAACKVysIm7j/LIIQAAAUL/OBdiKU2PlaowkJCVlZWdYuhYM6cuRI+/bW3PcKABzHAy8rQ/YdhFOmTDlw4IC1S+G4Jk2ahOXFAcAy5DXCoKYMGSX7DsK+ffti/3cAAEfQnBoh+ggBAEDxmtNHiCAEAADFuyVbX60VRo0CAIBD0QuUW1n9mGWatqwMIQgBAEDpsspFoaZCGOBC6iYmG4IQAACULUPWQRjSxA5CQhACAIDSyTdgCm7KBkwSBCEAAChbZq0aYZMvRxACAICyZdaaRIgaIQAAOJiMMuPjkCbOnSAEIQAAKF1WhaxG2MS5E4QgBAAApUONEAAAHFrtZWVQIwQAAEdSrKcSffVjFzX5ODX5FRCEAACgYBmy6uADzKYnBCEAACjareZ1EBKCEAAAFA01QgAAcGjyhUabugGTBEEIAAAKVqtG2PQho4QgBAAARcto3kKjhCAEAABFa+bWE4QgBAAARbtVa7DMg7wCghAAAJRKJ1BOZfVjFUPBGDUKAAAOJaNMFGoqhIGujPqBMg1BCAAASlVrue0HahclBCEAAChXM5fbliAIAQBAqW41ezY9IQgBAEC5mj+bnhCEAACgXPIVt1EjBAAAh4M+QgAAcGgmGTWqNklR6sjKyjp06ND169c9PDzCw8OHDh2qUqnqnFNZWblr166UlBQvL6+4uLiwsDBzlAQAAOwVL1JWRXWNkGlGH6Hpg3DixIk//vijIAiGI126dNm+fbs86m7evBkTE3Px4sWAgICCgoK//e1vn3766axZs0xeGAAAsFdZ5SJXEzX+LuRct8LVWKZvGs3MzJw7d+7p06crKioKCgoWLFhw/vz5SZMmyc956qmnrl27tmvXruzs7KysrEGDBs2ePfvkyZMmLwwAANirm7VGyjxgdZDMUSNMSkpSq6tf1tnZefHixUePHt23b9/Vq1c7dOhARMePH09KSnruuediY2OJyMfHZ82aNREREcuXL9+8ebPJywMAAHbpZqlxpEzrZgSh6WuEhhQ06NSpExGVlpZKT/fs2UNE48ePN5wQHh4eHh6+e/dukxcGAADslUnmTpAFRo3q9fp9+/Z5e3tHRERIR1JSUogoMjJSflpkZGR+fv7t27fNXR4AALAP8rkTzakRmmXUqNw777xz+fLltWvXOjk5SUfy8/OJyNfXV36a9DQ/Pz8gIODuF9HpdLm5uXv37jUc6dmzp4+PjxnLDTZPEAT5mCwA6U+CYR78hgjKcqNUvhOhePcNoZG3CPMG4aZNmz7++OOxY8c+//zzhoMcxxGRVquVnynFpE6nu+fr5ObmpqamLlmyRHrKsuzcuXOjoqLMVW5QgoqKirun5YAjKy8v53kefxWO40aJxtCu6a+uKi+/RxA25oORGYPwu+++e/rpp4cOHbp161Z5Udzd3YkoPz8/KCjIcFCqJnp6et7zpYKDg6Oionbs2GG+0oLiiKIo/S0BSFiWdXJyQhA6jsxKjqi6UtjRz8XdvW7mCYJQUVHR4OuYq49w+/btkydPjoqKSkhIcHFxkX8pNDSUiLKzs+UHMzMzNRpNSEiImcoDAAD2hBMou9w4m/7B9qaXmCUI9+zZ85e//KVbt24JCQl3f2bv378/ESUmJhqOlJaWJicn9+rVq057KQAAwD1llIt8TRdhQDNm05M5gnDv3r3jx48PDw/fu3dvixYt7j5h7NixPj4+GzZsKC+v3khq3bp1VVVV06dPN3lhAADALt0sNT5ufVejaJOYvo9wypQplZWVZWVlMTEx8uMrV66Mjo4mIg8Pj5UrV06fPr1fv36TJk1KTU3dvHnzoEGDZs6cafLCAACAXbphorkTZI4gjI+PLysru/u4q6txYfCpU6f6+vp+/PHHa9eu9fHxmTNnzrx589AuCgAAjSSvEbZp3rA50wfhV1991ZjT4uLi4uLiTP7uAADgCG6arkaI/QgBAEB5btTqI2zWSyEIAQBAeeQ1wjaoEQIAgKOptfUEaoQAAOBQyjnKq6p+rGEpwAU1QgAAcCTydtFWboyqeQutIwgBAEBhrptu7gQhCAEAQHHkGzC1bd6yMoQgBAAAxZGPlEGNEAAAHM4N2fJlzZxNTwhCAABQnBu1aoQIQgAAcDA3MFgGAAAclkh0y3QLjRKCEAAAlOV2BVXy1Y99nMhD09wXRBACAICSXC8xZQchIQgBAEBZrpt0EiEhCAEAQFnky8q0bfZIGUIQAgCAsqBGCAAADq12EJrgBRGEAACgJLWaRj1QIwQAAAdj2hW3CUEIAAAKUqijIl31Yxc1+Tmb4DURhAAAoBh1RsqYoD6IIAQAAAVJl82mDzXFSBlCEAIAgIKklxgfm6SDkBCEAACgILWaRk0xZJQQhAAAoCDpsrkTaBoFAACHI68RhqJGCAAAjqb2YBkEIQAAOJISPeVXVT92UlGAi2leFkEIAADKkF57J0LWNBVCBCEAAChEmhkmERKCEAAAlCJNNomwnYlGyhCCEAAAlCJNNmQUQQgAAA4nvVaN0GQviyAEAABlSDPD3AlCEAIAgFLIR42iaRQAABxLXhUV66sfu6nJ30STCAlBCAAAilBrTRkP0+xEKEEQAgCAAlwzzyRCQhACAIAiXCs2Pg7zNGGFEEEIAABKkGaekTKEIAQAAEWQN42GmW4SISEIAQBAEeTrq4WhRggAAA6FF+mGGbbklSAIAQDA1t0qE3VC9WN/Z/LQmPLFEYQAAGDrarWLmnTIKCEIAQDA9plvyCghCAEAwPalFhuDsIOniV8cQQgAALbumtmGjBKCEAAAbJ+8RoggBAAAhyOfTd8eTaMAAOBQivWUW1n92FlFwa6oEQIAgCORt4u282BYE+cgghAAAGzbtWJzrTIqQRACAIBNSzXnbHpCEAIAgI27WmsSIYIQAAAczNUi+ZBRBCEAADgYedOoyZeVIQQhAADYsiqebpVV1whZhkLdUSMEAABHcq1EFGpaRlu7MU4q078FghAAAGxXarHxsTnaRQlBCAAAtkw+ZNQcI2UIQQgAALbsipnnThCCEAAAbNkV2dyJjl5meQsEIQAA2K6rtfoIzVIjVJvjRQEUrVhPZXoq48QiHZXoqVRPFbxIRGV60glERCV64gQiokKdKBKJIhXqiIg4gUr0REQ6gco4Uf6a7mpGwxIRuajJWUVEpGXJTUNEpGLIU1P937uFE3lryceJaeFEPk7Uwonx1lrkewawSTqBbpRW/1diiNqbeidCCYIQ7Fapnop0YpGeinTSP7FIRwVVVMaJZRyV6qlQR2V6sYyjEj0V6aiME8v0VKw3U3HEhk+5F4aqE7GFEwW6MG3dqZUb09qd2rgxbdwpyLU6XwHs0rVika/5r9PKjXExT2QhCEEZyjljmBXpqUgnZhWpqlihSCcW1466Ih0V6MQiHQkPGD22RSTKq6K8KrHmWS0qhgJdmbbu1NqN6eRFXVow4d5MuJdZ5loBWN5V88+dIAQhWEVBFZXoxRI9Sf8KdWKxjor1xiSTUq1QR4U18aYX7n4ZDRFv+cLbFF6kjDIxo4zkGaliKMyT6eLNhHtTdx+mnz9jpkHnAOYmHzLa0ctcf8YIQnhApXqq5KlYL5bqqYKTIk0sr2lmLNIZc65YLxZWUc1TscRcbY8m46Ehdw25qRkvLXloyE1NrmqGZN17bmrSqoiIPDWMiiEi8nYihohlyEtLRKRmyENT6z9tiV6UOg3LOariiYiqeCrniIg4kUr0IhEJIhVUUYGO8ivFAh0VVFF+1YP8uHiRrhSJV4pEul59xM+Z+vkz/fzZfv5Mv5aMr9OD/FgALO9yEYIQTEonUJmeKnmq4EXpdlzGkY6vvkdLbYkFVSQSFepEXqBiPZVzVMlToU4s56iCq+5Iq+DM15FmSm5q8tIynlry0pKXhry0TAsn8tKSu4ZxU5OHhry05KZm3DTkqSFPDbnVhJ95POD/YU6gAh3lV4n5VXSrTLxZSjfKxJuldLNMvFUmZpU36kVyK2nXTXHXzeoKdAdPZkggMyKYGRHMBrk+WLkALKHW3An7axqtqqratWtXSkqKl5dXXFxcu3btrFUSM6ngqLJ2u52hTmBQWGVszyrVV7f+CURFOvHuFynUkSgSUXWSEVVHlxRvhtc3DFyUXpAXqVgvGg4ql7OKvLTkpWW8tOSlpRZaxpXR+7lpDEc8NdVfbeFEXlrGS0NquxhFombJ35n8naUcrZum0nrEt8ootUS8WCieLxBTCim9RKy/e/RqsXi1WNxwmYj4SG9mRDAzpjU7IshcIxEAHtjlIuNj89UIGbGB/zJmcevWrZiYmJSUFH9//6KiIlEUP/3001mzZt3v/ISEhP/73SWw57AHezvDYPfm0AtUyt33Z6XjqYxr7ls4Dm8teWgYDw15aMlDQy201Y+9NMao89Yy3k7GI3eP/igpKfHw8LBG8W1dOUcphWJKoXiuQDxxR/z9jtiYGryrmkaHsGPbMGPbsIEu5i+lGZSXlzs5OalUGClkJ8o5cv9aL912VQyVzdA0dRSYIAgVFRVubm71n2adT4BPPfVUamrqzp074+Li8vPzH3vssdmzZ/fp06d37973u6TUo9XJXLsYBWgv3NTkoiZPDeOuIRc1eWjIQ8M4q8hDQy2cyFPKOY3UAlnd2eahIQ8t46mxdtHtnauaevsxvf2qPz4LIl0sEn/LEX+7Ix6/I57NF+818ojKOfrpuvDTdWIZvp8/82QY+0QYGk7Bmq4WGytqbd3NOBbaCkF4/PjxQ4cOPffcc3FxcUTk4+OzZs2ayMjI5cuXb9682fLlcRxqljw0pGXJTc04qchVXT36w03NaFly15CGJU8NqVjy1jIsQ95aclGTi4q8tYx0stSp5qImhJmCsAxFejOR3syMTkREFRwdzREPZAoHMsXfc8W7G0sEkY7liMdy+DeO80ODmL+2Zx8LZX0wvgYszgKLq0msEIR79uwhovHjxxuOREREhIeH79692/KFMR/DCEMDw9oiBl5aYmsavV3V1a1/DJG3tvqos4oM3TaGk6UkIyIPDanZ6ngzvL5h4KLhBVtoGcNBABc1jQxmRgariKhYT4eyhD23xB03xOuldVtceJEOZIoHMvnZR/gJoexz4eyIYAbzMMBiLssmEXYyWwchWSUIU1JSiCgyMlJ+MDIy8uLFizk5OS1btrznVV9c/UdUu+AHe0eWedARezIMQ6r7v4o0dN42Sd1DOVYuhenxPF+B3qBmiyKKIlpAVMFVz9q8d2/3FdLtpYMq8nNmfJ3INpezEQSBYRgGYW0vRpaKuyqrH7e+zeQcfZAXcZn0Krl1qP8cKwRhfn4+Efn6+m/wdrIAACAASURBVMoPSk/z8vLuGYQ6nS6IL1ZnlVmmhPfj6JO3bQ9+IyakIvIl8m3wvFISiXQWKBA4vGAiY+2n4gH/6px1lQ2eY4XPdRzHEZFWW6upzsnJiYj0+nsPbsvNza2qqrJA2QAAwJ4IQsNzBqwQhO7u7lRTLzSQnt5vNHxwcHCD418BAADqYNmGY84KTaOhoaFElJ2dHRQUZDiYlZWl0WhCQkLud9WG2+znn6y0QPFAKcrLy11dMbrfcop1tOuW8EOaeK3kHhOZgl2ZKR2Y8W1ZK673XVlZqdVqG3PjA9t3Ok987tfq3o/OXszm4Q/yhyUIAufp3+BpVgjC/v37r1q1au/evT179pSOlJaWJicn9+rVq057qVy2jtG27mipMoICVJWUaDGh3oL8iKa1p2lD6XC2+M8z/I4bteLwrEh7rlBIJrOgJzuzM1vPyDLz4crLNZhQby/OlAlnXaqDsGtrVtv6AYOQr6ho8DQrfHQaO3asj4/Phg0bysur10lct25dZWXl9OnTLV8YAGiq6EAmIUZ9/FH14+3YOoOlM8rEWYf5h37gdt7E8hfQLJdkkwg7m3PuBFmlRujh4bFixYrp06dHRUVNmjQpNTV106ZNAwcOnDlzpuULAwAPpp8/891I1bUS9pNzwpeXhHLZpItzBeLYPdyAlsy/+qmiAzGZAR7ExUJjEIZ7m/e9rNOYPm3atB07dvj7+69Zs+a333578803ExMT62kXBQDbFObBfDJAlfYXzd+7sXVWkEjOEYfs4P5ygE8tRu0QmuySbLltO6wRSuLj4+Pj46317gBgQi1daGmU6uUu7PyTwqarglATfCLR1mvCtnThb93Y+T1VrtjdAhqniqe0mjFZLGPeZWXIWjVCALA/bdyZfw9VnZqgfrhVrduWTqCP/hS6fM8l3Gj2LjDgGK4Wi3zNx6lWboy5P0IhCAHAlHr4MLvHqPfFqQ3bX0jSS8RHEvkJe/kbdy1qClCHfKRMuDmX25YgCAHA9EYGMyfGqzcPV7V2qxWH264LXb/nvrgoIAyhHrU6CL3NPt4KQQgAZsEQTW7PXpiofqMbq5bdaUr09MJhPuZn7u79LgAktYaMmrmDkBCEAGBW7hpaFqU6OV49KKDW7WxfhtgNVUO4j5RacycQhACgfN19mF/HqddGqzxkWzpLVcNxe7ichpf+AAci1q4RRiAIAcA+MESzwtmzj6tHhdS6r+28Kfb4QZ+YgZohVLtZKpbUbETUwomCzL+iMIIQACynrTuTGKv+IlrlKasaZlfQmJ+5V5P5KuwwCUTnC4yPu7SwxMpECEIAsCiG6Plw9szjavnqayLRqvNCdAJG0ECtDkILtIsSghAArKKtO/NLvHphr1r7VPyeK/b+kdtzC1no0C7IgjASQQgAdkzF0KJeqiPj1GEexptdXhXF7ubePsFjOKnDulAgC0I0jQKA3YtqyZycoJ4QarwXiUT//FMYl8gVVFmxXGA1tZtGLfGOCEIAsDJvLX0/SrWyv0ojuyHtuin2+4mT3xPBEWSUiYW66seeGmrlhhohADgGhujVrmxirDrAxXjwarE4KIHbh5kVjiSl0Pg4ogVjmd0sEYQAYCuGBTGnJqgHytagKaii2D3c5xewbYWjsPxIGUIQAoBNCXZlDsSpZ3Qy3po4gWYf5V8+yvOoGToA+UgZy8ydIAQhANgaJxV9NUS1NEoln1mx+oIwcR9fwVmvWGARtWqEFhkySghCALBNf+/Gbhutlq9Nuu26MOpnLg9DSe3aeVmNsItFhowSghAAbNbYNszRR9Rt3I3VgqO3xUHbufQSNJLap4wyMb/mg46Hhtp6oEYIAA6vawvm6DhVdx/jDfFSkThgO3cmH1loh87KVhntaqkho4QgBAAbF+LGJI1Vjwg23hWzK2jYTu54DrLQ3pyVfb7p5mOxHEQQAoDN89LSz2PUk9sb71cFVTRyF7cXUwztC4IQAOC+tCxtGq56ravxllXG0SOJ3I4byEL7cU42UqarpYaMEoIQAJSCIVrRX7Wwl/GuVcnTY/u4rdcw3d4e8GKtVUZRIwQAuLdFvVSfDjTOMNQLNPkgv+kqslDxrhSJlTU7Mwe5kq+T5d5abbm3AgAwhZciWU8NzfyV5wQiIl6kGYd4hmhCsLVLBs1wVtYu2s2C7aKEGiEAKNG0jux/hqrUNTcwXqQZSfx31y169wTTOmelkTKEIAQAhfpre/a/w41ZyAn0zFH1N6kYO6NUZ/KNjxGEAACNMrEdu7F2vfCZw+K26+gvVCRrDRklBCEAKNqT7WtlISfQkwf4RMwvVJpSPV2rWTlPxVhuAyYJghAAlE3KQsNA0iqeHtvLHc5GFirJmXxRqPmNdfJiXCw7jhNBCACK92R79quhKrYmC8s4it/D/Z6LLFSM03nGX1ZPX0sPekIQAoA9mNqBXdabNzwt1lPsbk6+uR3Ysj9lQ0Z7IAgBAB7MrE7Ce72M99DcSor5mb9RiixUgD9lNcIelh0ySghCALAnc3swb/Uw3tYyysQxu/l87OVr23ix1mz6h1AjBABojo/6ql6MNN7ZUgrFRxK5Cs6KJYIGXC4SDb+gQBcKcLF0ARCEAGBvVg9UTe1gvLkduS0+cYDjML3QVtUaKeNnheWBEIQAYG8Yoi+HqEaHGG+pO26Is4/y9VwCViTvIHzI4h2EhCAEALukZel/I9XdZXfVdReF90+jVmiL5ENGuyMIAQBMxUtLP49RtXU33lgXnMSGTbboDzSNAgCYSbAr8/MYlU/NznYi0XO/8kduY0KFDckoE29XVD92VVMHTwQhAIBJRXgzP41WO6mqn1byNGEvZ1jWEqzuZG6tGYQqa2ylhSAEADsXHcj8Z6jxBnunkuL38AWYXGgb5Cvh9fG3zo6SCEIAsH9PhLELehlvdxcLxQn7OB26C22AvEbY2xodhIQgBAAHsbCXanJ74x3vUJb4EiZU2IBTsiDsZfE1ZSQIQgBwCAzRhiGqQQHGW+36i8JnF1ArtKaMMjFbNlImwrLbEBogCAHAUTipaNtodXvZuMTXj/EHszBwxmrk7aIP+TJqKyUSghAAHIifM+2IUXlpq5/qBZq4j0stRhZaR62RMlbqICQEIQA4mnBv5tsRasMo0vwqGpfIF+utWiZHZQsjZQhBCAAOaEwrZnFvleFpSqE4/RdeQLXQ4k4hCAEArOWdh9gnwow3wG3XhQ/+wMAZi6ozUibcSiNlCEEIAI6JIfpqiEq+B+yiU/yeW6gVWs7xO7VGylhlTRkJghAAHJSrmraNVrWs2QZWEGnKQe56KbLQQn6TBWGUldaUkSAIAcBxtXVntoxQG0bt51XR+L08trO3jGM5siBsiSAEALCSYUHMB32MA2f+yBNfPYYVZ8yOF2sNGUWNEADAmt7szk5sZ7wZrr8obLiMgTPmdb5ALK2ZstLShUI9EIQAANYjrb4mX99r9hFeXl8Bkzsubxf1t3ISIQgBAMhDQz+OVnloqp9W8vT4Pj4PWzWZjXzIqHU7CAlBCAAg6ezFrIs2dhZeLxWn/8Jhlr2Z1K4RIggBAGzDk+3Zl7sY74o7b4qYZW8OpXpKKawOQpax2n68BghCAACjZVGqgQG1ZtkfyESt0MRO5Ip8zQ+1sxfjra33bPNDEAIAGGlZ2jpCFVB7lv3tinqvgSY6etuGOggJQQgAUEeIG/PNcOP2FNkVNBWdhSZ15LaxwVm+VbK1IAgBAOoaEczM62m8Pe7NEJf8ic5C0xDEWjXCaAQhAIBtWtBTNSrEeI9eeBKdhaZxrkAs0lU/9nOmztbbdMIAQQgAcA8sQ5uGqQNrOgt5kaYf4nMrrVomu3BEVh0cGMBaPwYRhAAA9xPgQpuHqw236ltl4rRDHGqFzSQPQlvoICQEIQBAPUYEM3O6G++TP98UPz6LzsJmOZyNIAQAUJT3equiA43367knePlYD2iSzHLRsOOjk4p6+yEIAQBsnpqlb4arfJ2qn3ICTfmFL8AypA9EXh3s7cc4q+o513IQhAAADWjtxnw11DCxkNJLxOcPY8/CB3Eo27YmTkjU5njR7OzspKSk69evu7u7h4eHDxkyRKWqm/tVVVW7du1KSUnx8vKKi4tr166dOUoCAGAS49qwr3cTl9d0EH6XJnx5iXm2M+oSTfOLbArK0CBb+emZPggnTZr0ww8/CIKxP7lr164//fRTWFiY4citW7diYmJSUlL8/PyKi4tff/311atXP//88yYvDACAqSzpq/o1WzxRs3/Qa8l8dAATbgPT4JQip8K41raaJXnPq3WZPpBv3br11ltvnTp1qry8PC8vb968eefOnXviiSfk5zz11FOpqak7duy4c+dOZmbmgAEDXnzxxVOnTpm8MAAApqJl6b/DVZ41exaWcfTEAb4STaSN9kuWcaG6Xr6M4SdpdaYPwl9//fXDDz/s2bOni4uLj4/Pe++9N3LkyJMnT6ampkonHD9+/NChQ9OnT4+PjyciX1/ftWvX8jz/8ccfm7wwAAAm1N6TWTXQ2NFzNl+c9zuSsLHkHYTDgmylOkjmCEK1um5za+fOnYmopKREerpnzx4iGj9+vOGEiIiI8PDw3bt3m7wwAACmNb0jO7m98c65/Kyw8yZmUzSKbXYQkgVGjer1+n379nl7e4eHh0tHUlJSiCgyMlJ+WmRkZH5+fk5OjrnLAwDQTJ8PUrXzqK7QiETPJHHZ2KepIXcqjR2EKsZWptJLzDJqVO4f//jH5cuX165d6+zsLB3Jz88nIl9fX/lp0tO8vLyWLVve/SI6nS43N3fv3r2GI7169WrRooUZyw02TxAE+ZgsAOlPgmHMfof1UNM3w5ghO0W9QESUU0EzftHvfFhlQ7d223MwUzR2EPoxHmpL/Pdt5Hs0KggvXrz4z3/+s54T/Pz8li5devfxzZs3L1u2bOzYsc8995zhIMdxRKTV1tqT2MnJiYh0Oh3dS25ubmpq6pIlS6SnLMu+/fbb/fv3b0zhwV5VVFTcPS0HHFl5eTnP85b5q+jqRm91Ub9/tvq99mTQx6erXuyM/sL72ntDTVT94xroy5WXcxZ400Z+MGpUEBYVFR05cqSeE1q1anX3we+//37GjBlDhw7dunUryxrbYN3d3YkoPz8/KCjIcFCqJnp6et7z9YODg6Oionbs2NGY0oKDEEVR+lsCkLAs6+TkZLGPR4v6UdIdLqlmAMjCM+qH2zn38EG18N4O3eGIqn9WY0Kd3N2dLfCmgiBUVDTcbN2oIIyKirp8+XKT3j4hIWHy5Mn9+vVLSEhwcXGRfyk0NJSIsrOz5UGYlZWlVqtDQkKa9C4AANaiYmjzcFWPH7j8KiKiSp4mH+BPjFe7mr3HSXmul4pXiqpTUMvSYJuZQSgxy2CZxMTEJ554omvXrjt27Lj7M7vUpCnv8CstLU1OTu7du3ed9lIAAFvWyo1ZP9hYAb1QKL5xHK2j95B4q9aOE2429lnB9EG4b9++Rx99NDw8fO/evfcczzJ27FgfH58NGzaUl5dLR9avX19ZWTl9+nSTFwYAwKweC2VnyhZaW5sibL2GMVx17ZNNnBjdyoYmTkhMn8tTpkyprKwsKyuLiYmRH1+5cmV0dDQReXh4rFixYvr06VFRUU888URqauqmTZsGDBgwc+ZMkxcGAMDcPhmgOnJbvFgzN2DWYb5/S6aNu221/lmRINLBTOOHg9EhNveTMX0QxsXFlZWV3X3c1dXV8HjatGk+Pj7Lli377LPPvL2933jjjfnz56NdFACUyE1Nm4epBiZwVTwRUaGOZhzi98UZt7Z3cKfzxDuV1Y99nKinr839XEwfhF999VVjThs7duzYsWNN/u4AAJbXy495v4/qzZoOwoNZ4tIzwls9bK4N0Cp2yzoIRwSzNjjdEr8nAAAT+FtXdpSs0W/+Sf54DpZeIyLaddPYLvpwK9uLQQQhAIBJsAz9e6jKr2Z2nF6gp37hS/RWLZMNyK8iwwcChigWQQgAYMeCXWvNprhaLP7tmKPPpthzS+BrKsbdfZgQNwQhAIBdG9+WfT7ceF/98pKwxbFnU/ws25ojrrUtpiAhCAEATGtFf5V82/oXDvM3Sh20s1AQaU+G8XNAbGsbTRwbLRYAgEK5qumb4Sptzc1Vmk0hOGQU/nZHzKlZ6bOFEw1oiRohAIBj6OnLfNjX2Fl4MEv81xlHbCDddt34XceEsGpbDRxbLRcAgJK9jtkURNvSjd/y+LY2Wh0kBCEAgDmwDG0apg6o2XqHE2iKg82mSCkUL9XsOKFhaYytdhASghAAwEwCXGjDELWhHpRaLL7uSLMptl2XLyjDeNvwGpoIQgAAc4lrzchnU/y/S8J3aY7SWbhd1kH4aFubzhqbLhwAgNIt76+KkM2meO5XPq3E/jsLM8vF3+4YF5R5pI3tdhASghAAwKyk2RTONWNIC3U0+SCvt/dq4XdpomHGSL+WNrqgjAGCEADAvB7yZf7Vzzib4liOOP+knXcWytfTeaKdrQeNrZcPAMAOvNyFnRBqvN/+609hxw27bSC9VSYm3za2iz7ezqarg4QgBACwjA1DVKEe1ZEgEs38lcsqt26JzGXrNdEQ8gMDmLbuCEIAACDy1tKmYSrD6io5FTTtEGeXS6/9TzYydqLNt4sSghAAwGIGBTCLehk7C/dliB/9aW/DZq4UiYY1dFiGJtl8uyghCAEALGluD3ZksDEbFp7ij962q1rhxqvGWu7gQFsfLypBEAIAWA7L0Obh6kDZ0mtPHuDzqqxaJtMRiTZfNeb6tI7KiBhllBIAwG4EuNDXQ9VsTU3pZpk44xBnH7XCpCzxWs1yAS5qejxUGRGjjFICANiTh1sxb3Qz3n533BA/v2APnYUbrxq/i/FtWS8bXl9UDkEIAGAFH/RRRck2qn3jOH9M4fs0lehpq2we/dQOiskXxRQUAMCeaFj673CVoc5UxdPE/fztinqvsW3/TRUM+0y1cmNGhyhgmIwEQQgAYB3tPJj/N1hliIuMMvGJ/ZxylyFdd9FY9Gc6MTa7H/3dlFNSAAC783g7dk4P4304KVuc85silyH9M188mWucPvhMZyWFi5LKCgBgfz7oo5K3Iq48J3yTqrxa4erzxjLHtlLAsmpyCEIAAGtSMfTNcLU8OZ77lf8zX0kDZ3IrabMsvOV7ESuCwooLAGB//JzppxiVq7r6aTlHjybyuZVWLVNTrE0RKrjqx23dmfg2CksWhRUXAMAu9fBhvog2LkN6vVScfJDjlVAt1Av0hWyYzCtdWJWSmkWJEIQAADbiqQ7si5HGe/LeDHHRKQUMnNlyTbhVVp3YHhqaqahhMhLllRgAwF6t6K8aGGCsT31wWth+3aYHzohE8g00ZnRSzGoycghCAABboWXpfyNVQa7VT0WiaYf4S0W220K6LV04X1BdPDVLr3VVZKYostAAAPYq2JXZOkKtqbk3F+kofg9/x1YHznz4h7E6+GQYG+ahtO5BIkIQAgDYmuhAZnl/48CZ1GLxkUTOMCzTduy8Kf4um0Q/9yGlBopSyw0AYMdeimSf6WS8Px/LEace4gVbaiLlRZp7wjiWZ0IoG+mtyOogIQgBAGzT2mjVKNmKM9+nCW/a0uprG68IZ/ON1cEFPRWcJgouOgCAHdOw9N1IddcWxixcflZYbRvbFlbytOCksSRPdWC7+yi1OkgIQgAAm+WlpV1jVMGuxox5NZnfdNX6WfjJOeFmzdxBZxW921vZUaLs0gMA2LfWbsyOh1XumuqngkhPJ/E/pFszC6+Xiu+dNjbSzo5klbXE9t0QhAAANq2nL7N1hFpbc7fmBPrrAf7nm1YbOfPyUaGsZgirjxO985Cq3tMVAEEIAGDrYlsz345QGba61Qn0+H7uYJYVsvD7NCHhhrE++q9+Kh8ny5fCxBCEAAAKMCGU/X+DVWxNG2QFR48kcocsm4W5lfRKsjEFBwcyytqA937s4XsAAHAE0zqynw00bu1Qqqcxu7ltllqMVCR6OonLLK+OXi1La6MVt8/EvSEIAQAU44UIdlmUsU+ukqdJ+/mvLlsiC1edE3bcMFZA5z6k4Bn0dSAIAQCU5G/d2KVRxqoYJ9DMJH7pGfNm4bEc8S3ZOjKDAph5yh8jY4AgBABQmL93YzcMMY6dEYnm/Ma/kszrzZOG0mKnVTU52MKJNg83vrsdsKNvBQDAYczoxH43UuUsq5V9el4YtpMz7JFrKnlVFCfb/oIhWh+tUvrEwToQhAAAivRoW3ZPrFq+Ee7R22LPH7ndt0yWhTkVNGoXd1m2IeKCXuzj7ewtOOzt+wEAcBxDAplf4tXy+lluJcXv4RadMkEz6c0yccgO7o88YwpO68gu7GU/XYMGCEIAAAV7yJc5NUEd19qYhYJIi08JfbZxv9158KrhwSwx6ifukqwuODKYWT/YTuZL1IEgBABQNh8n2vGw+v0+KnlMnckXB2znph/ir5c2LQ4reVp4kh+9i8sqNx6Mbc0kxBiXebMzdvptAQA4EoboHw+xibHqABfjQUGk/1wROv+Pm5nEy1s474cX6b+pQsR33LunBV52+qR27LbRahe1GcptG+z3OwMAcDAjgpmzj2veOMZvlG3VVMXThsvChstCLz9mfFt2VAjTw4dxld37K3k6mSv+fFP4+oqYUXvQKcvQvIfYBb1U9tkkWgNBCABgP/yd6T/DVNM6sq8f488V1Eq1U7niqVx+wUlSMdTKjWnhRAxRXhVllYv3HFkT6EKbhqtHBtt1BhIRghAAwP6MCmH+fEy98aqw+JSQVlK3UZQX6XqpeL30vpdrWXoxkp3f0x52lmgMBCEAgB1iGZrekX2qA5twQ/jsgnAwU+QbMWjGXUN/CWPf6s529LL/iqABghAAwG6pGBrflh3flr1TSduvC3szxJO5YmqxWCcTwzyYAQHMqGBmYjvWXWOdoloRghAAwP75O9PMzuzMzkRE5RxlV4iFVSQSeWspwIVxwPCTQxACADgWVzWFeTDkYe1y2AzMIwQAAIemjCC8dOnSuXPnrF0KsC1Dhw7lOM7apQAbMm/evL1791q7FGBDjhw58re//a3B05QRhEVFRZWVlQ2fB44kJSUFQQhyWVlZOTk51i4F2JDc3NysrKwGT1NGEAIAAJgJghAAAByaMkaNCoKg1+tPnjxp7YKADREE4fTp01qttuFTwTEUFBSkp6fjRgEGqampVVVVDZ6mjCBs2bIlx3GzZs2ydkHAhri5ub300ksM40DrX0D9bt++ff369e3bt1u7IGArysvLQ0JCGjyNEeuuMAAAAOBA0EcIAAAODUEIAAAODUEIAAAODUEIAAAODUEIAAAODUEIAAAOzUbnEep0un379v34449nz57Nzc1t3br1gAED/v73v/v4+NRz1fz58y9dulTn4Jo1a3x9fc1ZWDCLW7duLV68+PDhw4Ig9O3bd+HChR07dqz/kvT09MWLFx87dkwUxaioqEWLFrVr184ypQVzS09P//777/fv35+WlqbVajt16vTMM8/ExsbWc8mZM2fef//9OgdHjBjxwgsvmLOkYCF37tyZPXt2nYMRERGLFy+u/8Jvvvlm3bp1N27caNmy5ZQpU2bPnm2j8wj3798/atQoX1/fXr16tW7d+uzZsydOnAgNDU1OTg4MDLzfVYMGDTp9+nRkZKT84M6dOwMCAsxfZDCljIyMvn37lpSUTJs2TavVbty4kef55OTk8PDw+12Snp7er18/nU43depUhmE2btyoVquPHz8eFhZmyZKDmQwZMuTw4cPdu3ePjIwUBGH37t1FRUUfffTRW2+9db9L9u7dGxMTExYW1qJFC8PBRx99dP78+RYpMphXenp6u3btgoODg4KCDAd79uy5fv36eq56//3358+fHxUVNXLkyFOnTu3evfuZZ54h0SadOXPmyy+/rKioMBxZuHAhEb366qv1XDVw4MAuXbqYv3RgdlKYJSUlSU/PnTvn5OT08MMP13PJxIkTVSrV8ePHpacnT55Uq9UTJkwwe1nBIj799NNz584ZnmZkZAQHB2s0muzs7PtdkpiYSERbtmyxSAHB0tLS0qRga/wlqampGo1m+PDher1eOvL000+TzfYRduvWbebMmc7OzoYjb775Jsuyv/32mxVLBZZRVlb23Xff9erVa/DgwdKRLl26jB49OjExMSMj456XFBQU/PTTTwMGDOjXr590pFevXkOGDElISMjLy7NQucGcXnrppS5duhieBgcHT506Va/X//HHH1YsFSjL5s2b9Xr9Sy+9pFZXdwu+9tprZLNBeDcpwL28vOo/TRCE8+fP79u37+LFi6JNtvpCg06fPl1RURETEyM/KFUHjx07ds9LTpw4odfrH3744TqXcBx3/PhxM5YVrEen0xGRp6dn/acVFhb++uuvhw8fLiwstEi5wKLKy8uPHj2alJSUnZ3d4MnJyckMw8jvLd27dw8KClJMEC5btkwUxb/+9a/1n5aSktK1a9fRo0dHRESEhYVt27bNMsUDE5JaPOTt/oan0pcaeUlwcHA9l4CiZWdnb9q0qWPHjn369Kn/zFmzZg0ZMmTw4MF+fn7Tpk1DHNqZDz/8cNCgQUOHDg0K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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"
"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using Plots\n",
"default(\n",
" linewidth=4,\n",
" markersize=5,\n",
" legendfontsize=12,\n",
" xtickfontsize=12,\n",
" ytickfontsize=12,\n",
")\n",
"\n",
"a = 1\n",
"f(x) = exp(x) * cos(a * x) + 1\n",
"plot([f, x -> 0], xlims=[-2.5, 5], label=[\"\\$e^x cos(a x)\\$\" \"\\$0\\$\"])"
]
},
{
"cell_type": "markdown",
"id": "fdab46b0-e0ff-436f-886d-ec3363e8a727",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Linear Algebra\n",
"\n",
"Matrix factorizations are broadly useful\n",
"\n",
"* Finite algorithms\n",
" - $Q R = A$ such that $Q^T Q = I$ and $R$ is upper right triangular\n",
" - $L U = A$ such that $L$ and $U$ are lower and upper triangular\n",
"\n",
"* Infinite algorithms\n",
" - $X \\Lambda X^{-1} = A$ where $\\Lambda$ is diagonal\n",
" - $U \\Sigma V^T = A$ such that $U^T U = I$, $V^T V = I$ and $\\Sigma$ is diagonal with non-negative entries\n",
" - Solving $A x = b$ with Krylov basis $\\lbrace b, A b, A^2 b, ... \\rbrace$"
]
},
{
"cell_type": "markdown",
"id": "6b35afdb-ded7-4af9-bd37-6d741c90e080",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Key Ideas\n",
"\n",
"* Cost estimates\n",
"\n",
"* Stability of algorithms (forward and backward)\n",
"\n",
"* Conditioning\n",
"\n",
"* Orthogonality, null spaces, projections\n",
"\n",
"* Connection between the algorithms and applications"
]
},
{
"cell_type": "markdown",
"id": "cedcf281-13c7-4e7e-89ff-fe9fb027ae99",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Function Approximation\n",
"\n",
"* Interpolation (exact)\n",
" - Given $\\left( x_0, f \\left( x_0 \\right) \\right), \\left( x_1, f \\left( x_1 \\right) \\right), ... $, find easy to compute $g \\left( x \\right)$ that exactly matches given data and is reasonable between datapoints\n",
"\n",
"* Regression (inexact)\n",
" - Given noisy data $\\left( x_0, y_0 \\right), \\left( x_1, y_1 \\right), ...$, find easy to compute $g \\left( x \\right)$ that explains the data"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "5577a5ae-b03c-4da4-9a27-e7d0ab9f1e5a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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/nLqWmekPVQkzj0qPNWk2r9JyLPnJCQkpKenP/bYY926dZszZ06PHj0eeOAB+bCsrKwjR46UlpbWqlWrffv2cq/aoqKi3NxcIjp//nxOTg4RRUZGSlPTiaK4f//+48ePW63WBg0atG7d+qrTsQIAhAT/za9GCEJv849W7xLvq6zrCcJKjEbjp59+escdd3z++edSENpstvT09GPHjsnH1KtX74cffmjdujURzZo165VXXiGiZ555Rnr1ySefnDVrVnZ2dqdOnc6dOye/q3nz5suWLcMErQBQA/B+m1+NcGvU27qz1VugZFueaPHFQk+tWrWqVavW1q1beZ4nIlEU+/Xrt2PHjtLSUrvdvmbNGiIaNGiQdC90zJgxixYtIqKMjAzpLutHH30kneepp57av3+/3W4vLS1dtGjRP//888gjj/igPgAApVV4RujrW6MIwjIegc7ZqheEgkinrb5Z3Cs1NdXhcEhrrEdEREyfPr1Vq1ZGo1Gn03Xv3n369OmnTp3auHEjEel0OmkhlYiIiJiYmJiYGIPBQESNGjV66623mjZtKh0wZMiQ1157bevWrcePH/dJhQAACsIzwkDgRRKqH2ru6veXqZL0ME+6IpQ21q1bd+jQodzcXFEU8/PziSg7O7tr165XOInD4VizZk12dvaFCxek44koKysLc9cBQKjDM8JA0HIUp6N8R/XeVTui2qMJq3T27FmVSiX1ozGbzffdd9/27dsbNmxYv379mJgYq9VKF5e4upxjx4517979+PHjt9xyS61atWJiYqQxi3a73ScVAgAoiPfb/GqEIPTWMZldeqIal3jNYphYX0wxc/z48ePHj99xxx1qtZqIpk6dumPHjp9//rlnz57SAdu2bVu9evWVTzJx4sS8vLydO3e2bNlSavnmm282b97sg/oAAJQm+G0NJsIzQm8PNqje5d2DDXzwpyeK4qRJk0RRHD58uNTy999/161bV05BItqxY4f3W6ShFPJ9VPldd9xxh5yCl74LACBECQ6b6C4bOc2oNYy26vmrrxuCsNzgNPa22GvNwkQ9vdjshv70eJ7ftm1b3759Fy1adPfdd8tj6lNSUvLy8s6cOSPtnj59etq0ad5vrF27NhEdPnzYuzElJSUrK0u6iUpE+/btmzlz5o2UBwAQJCo8IIyK9fn5EYTlWIa+7cKZrmE9KI6heZ1U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avXs2dPjKb/APX78eKV1eps0aXLp25s1a+a9K4XikSNH5P+/7bbbvA+Qdo8ePVrlk8LVq1f/61//2rt3r8vlkhvNZvPlir/UkSNH6tevLz0BlWi12iZNmlRaUrhRo0beu3FxcVf4IwKAGoa3lHe298cgQgqTIGRUatPA0YXfzZC7HgVM5L1DVHHJl3tVra5iSUPx8kW6XC5RFE0mU6XEatWqlVar9W4xGo2Xvl2v11+663a7iUiK1UoHSNeU0gGV7Nixo0+fPq1bt164cGGjRo1MJpPT6bz11lsFQbhc8Zfieb7SJxJRRESEx+MRRVG+UK70p8T4oc8YAAStileECMIbENG2u6Z2Q/uBbaLr8isN+hTDctrGt2lvanH9Z7jkJ77BYIiNjdXr9VOnTr2OE548edJ798SJE3SxD450YXry5Mnbb79dPkAawigdUMm3337L8/yPP/6YkpIitRw8ePDKxV8qJSUlKytLEATvZ5A5OTm1atVC2gGAxN/TylD4BCERqes0VNdpqHQV1RAXF0dElcbg9+3bNyMjY9OmTZUWLLwWS5Ys+fDDD+WLsIyMDJZlu3TpQkRdunRhGGbevHkDBw6UXuV5/quvvoqMjGzbtu2lp3K73QzDyI/uiGju3LmXFl9UVFT5nV66du2amZm5fPly+UM3b96clZV16VKLABC2AvCMMCw6y4So9PR0jUbz3nvvLVy4cPHixfv27SOid955Jy4ubuDAgZ999tn+/fuPHTu2bt26cePGvfXWW1c9ocfj6du3b2Zm5tGjRydOnLhkyZJhw4alpaURUePGjR955JEVK1Y899xz+/bty8zMvP/++48cOTJx4sQq77J26tRJFMWnnnrqyJEjR44cefPNN7/++mvvA+Li4tLS0jIyMmbPnr148eI//vjj0pO88MIL8fHxI0eOXLhw4bFjx5YsWTJ48GCDwXDtKxgDQI0XgF6jYXRFGHJq1649Z86cf//736NGjXI6na+++qo03P7PP/989tlnn3/+efnIBg0aeI+duJyJEydu27ZNvsJ74IEHvvzyS/nVWbNm6XS6mTNnfv7550Sk1+vfeust7y6d3h544IGxY8d+/PHHixYtIqKGDRsuW7asXbt23sdkZGRMmDBh3LhxVqu1S5cu69atq3SS5OTktWvXDh8+XO4Ee9NNNy1evBhjBAGgjCAItot9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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"
"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using Polynomials\n",
"using Plots\n",
"\n",
"a = 1\n",
"xi = range(-2.5, 5, length=10)\n",
"yi = @. exp(xi) * cos(a * xi) - 1\n",
"p = fit(xi, yi)\n",
"scatter(xi, yi, markerstrokewidth=0, label=\"Data\")\n",
"plot!(p, extrema(xi)..., label=\"Interpolation\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "dd052b29-5e68-40cd-9bf1-a36b72767ba5",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"
"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"using CurveFit\n",
"using Polynomials\n",
"using Plots\n",
"\n",
"a = 1\n",
"xi = range(-2.5, 5, length=40)\n",
"yi = @. exp(xi) * cos(a * xi) - 1\n",
"yi = @. yi + 10 * (rand() - 0.5) # added noise\n",
"p = Polynomial(poly_fit(xi, yi, 9))\n",
"scatter(xi, yi, markerstrokewidth=0, label=\"Data\")\n",
"plot!(p, extrema(xi)..., label=\"Regression\")"
]
},
{
"cell_type": "markdown",
"id": "d0e2255c-ea4e-4f6a-9841-9dd582246d1d",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Calculus\n",
"\n",
"* Differentiation: Given $f \\left( x \\right)$, find $g \\left( x \\right) \\approx f' \\left( x \\right)$\n",
" - Numerical approximation\n",
" - Automatic differentiation\n",
"\n",
"* Integration: Given $f \\left( x \\right)$, compute a reasonable approximation to $\\int_a^b f \\left( x \\right) dx$\n",
" - Related to function approximation"
]
},
{
"cell_type": "markdown",
"id": "e62b927a-fb3a-4310-a30a-53ddcd1c93de",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Optimization\n",
"\n",
"Given a function $f \\left( x \\right)$ (and often also $f ' \\left( x \\right)$), find\n",
"\n",
"$$ x_* = \\text{argmin}_x f \\left( x \\right) $$"
]
},
{
"cell_type": "markdown",
"id": "46bb29d2-aac5-4b8e-b891-f73fa87564f7",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Differential Equations\n",
"\n",
"Given\n",
"\n",
"$$ \\frac{\\partial u \\left( t \\right)}{\\partial t} = f \\left( u \\left( t \\right) \\right) $$\n",
"\n",
"and initial condition $u \\left( 0 \\right) = u_0$\n",
"\n",
"approximate $u \\left( t \\right)$ for any $t$"
]
},
{
"cell_type": "markdown",
"id": "f0b2df61-44e1-4dbb-b76d-0110a1c18ace",
"metadata": {},
"source": [
"## Considerations\n",
"\n",
"For each topic, we'll cover\n",
"\n",
"* Mathematical basis\n",
"\n",
"* Algorithmic cost\n",
"\n",
"* Limitations\n",
"\n",
"* Pitfalls\n",
"\n",
"* Verification/Validation"
]
},
{
"cell_type": "markdown",
"id": "c12af566-f629-48f6-9bfb-885f92131621",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Ungrading\n",
"\n",
"* What?\n",
"\n",
"* Why?\n",
"\n",
"* How?"
]
},
{
"cell_type": "markdown",
"id": "be2fb075-edcc-4e8b-8817-d4b1d703bce8",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"## But I Need *A* Grade ?!?\n",
"\n",
"* Create SMART goals and update them\n",
"\n",
"* Journal about your course goals and progress\n",
"\n",
"* Collect a portfolio of your best work over the semester\n",
"\n",
"* Especially include any detours you take\n",
"\n",
"* We discuss at the end of the semester and you propose a grade to me"
]
},
{
"cell_type": "markdown",
"id": "5c2865c0-b42a-43e4-8f46-0a146e9b6e6e",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Flow\n",
"\n",
"* Lecture periods M, W, F (bring questions)\n",
"\n",
"* Home activities and quizzes on alternating Fridays\n",
"\n",
"* Written feedback returned on these activities\n",
"\n",
"* Update your goals and journals every week\n",
"\n",
"* Ask questions on the class Zulip"
]
},
{
"cell_type": "markdown",
"id": "cf4e7e52-237f-4a95-a63e-f2b7e46327f6",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": "slide"
},
"tags": []
},
"source": [
"## Project\n",
"\n",
"* Two parts, solo and team\n",
"\n",
"* Solo part investigates a community software package\n",
"\n",
"* Team part studies or contributes to a community software package"
]
},
{
"cell_type": "markdown",
"id": "0d08fb00-7838-44ca-bfac-246d5967d279",
"metadata": {},
"source": [
"## Floating Point Arithmatic\n",
"\n",
"How and why does floating point arithmatic give answers that are inconsistent with continuous mathematics?"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "7197ec5e-2fe3-449d-9665-569119fc38b3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.30000000000000004"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# What decimal values will not exhibit this behavior?\n",
"0.1 + 0.2"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "7fee0477-23fe-41b8-a044-4dd137bb9311",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"
"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"GKS: Possible loss of precision in routine SET_WINDOW\n"
]
}
],
"source": [
"a = 1e-15\n",
"plot(x -> 1 + x, xlim=(-a, a), legend=:none)"
]
},
{
"cell_type": "markdown",
"id": "255fd9b6-cb0f-4317-8de3-324a40a532d4",
"metadata": {},
"source": [
"## Machine precision\n",
"\n",
"Floating point numbers do not exactly represent continuous values.\n",
"\n",
"There exists $\\epsilon_\\text{machine}$ such that\n",
"\n",
"$$ 1 \\oplus x = 1 $$ for all $$ \\lvert x \\rvert < \\epsilon_\\text{machine} $$\n",
"\n",
"Note: $\\oplus, \\ominus, \\otimes, \\oslash$ are the floating point arithmatic versions of $+, -, \\times, /$"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "ca8218cd-b0c2-4998-8a21-7c791ea92621",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ϵ = 1.1102230246251565e-16\n"
]
}
],
"source": [
"# Lets find ϵ\n",
"ϵ = 1\n",
"# will this be the biggest possible ϵ?\n",
"while 1 + ϵ != 1\n",
" ϵ = ϵ / 2\n",
"end\n",
"\n",
"@show ϵ;"
]
},
{
"cell_type": "markdown",
"id": "664f679c-18c5-41b2-b2a1-8eea19bab201",
"metadata": {},
"source": [
"### Remember Taylor Series?\n",
"\n",
"$$ log \\left( 1 + x \\right) = x - \\frac{x^2}{2} + \\frac{x^3}{3} - \\frac{x^4}{4} + \\cdots $$\n",
"\n",
"Which is more accurate for computing $log \\left( 1 + x \\right)$?\n",
"\n",
"Note: This issue shows up in Ratel!"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "75ffa76e-0c8a-430e-beef-e22e6d54d59a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"image/svg+xml": [
"\n",
"\n"
],
"text/html": [
"
"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# But why do we care?\n",
"f1(x) = log(1 + x)\n",
"f2(x) = x - x^2 / 2 + x^3 / 3\n",
"\n",
"plot([f1, f2], xlims=[-5 * ϵ, 5 * ϵ], label=[\"\\$log(1+x)\\$\" \"Taylor series\"])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "4fa49e66-4336-47d9-a59a-68cc716a17d4",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"absolute error: -6.07747099184471e-17\n",
"relative error: -6.077471022232065e-9\n"
]
}
],
"source": [
"# How to measure the error?\n",
"y1 = f1(1e-8)\n",
"y2 = f2(1e-8)\n",
"\n",
"# Absolute\n",
"println(\"absolute error: $(y1 - y2)\")\n",
"\n",
"# Relative\n",
"println(\"relative error: $((y1 - y2) / y2)\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.11.6",
"language": "julia",
"name": "julia-1.11"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}