{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Numerical Calculus" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Throughout this section and the next ones, we shall cover the topic of numerical calculus. Calculus has been identified since ancient times as a powerful toolkit for analysing and handling geometrical problems. Since differential calculus was developed by Newton and Leibniz (in its actual notation), many different applications have been found, at the point that most of the current science is founded on it (e.g. differential and integral equations). Due to the ever increasing complexity of analytical expressions used in physics and astronomy, their usage becomes more and more impractical, and numerical approaches are more than necessary when one wants to go deeper. This issue has been identified since long ago and many numerical techniques have been developed. We shall cover only the most basic schemes, but also providing a basis for more formal approaches." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- - -\n", "- [Numerical Differentiation](#Numerical-Differentiation) \n", " - [Example 1](#Example-1)\n", " - [(n+1)-point formula](#n+1-point-formula)\n", " - [Endpoint formulas](#Endpoint-formulas)\n", " - [Midpoint formulas](#Midpoint-formulas)\n", "- [Numerical Integration](#Numerical-Integration)\n", " - [Numerical quadrature](#Numerical-quadrature)\n", " - [Trapezoidal rule](#Trapezoidal-rule)\n", " - [Simpson's rule](#Simpson's-rule)\n", "- [Composite Numerical Integration](#Composite-Numerical-Integration)\n", " - [Composite trapezoidal rule](#Composite-trapezoidal-rule)\n", " - [Composite Simpson's rule](#Composite-Simpson's-rule)\n", "- [Adaptive Quadrature Methods](#Adaptive-Quadrature-Methods)\n", " - [Simpson's adaptive quadrature](#Simpson's-adaptive-quadrature)\n", " - [Steps Simpson's adaptive quadrature](#Steps-Simpson's-adaptive-quadrature)\n", "- [Improper Integrals](#Improper-Integrals)\n", " - [Left endpoint singularity](#Left-endpoint-singularity)\n", " - [Right endpoint singularity](#Right-endpoint-singularity)\n", " - [Infinite singularity](#Infinite-singularity)\n", " \n", "- - -" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING: pylab import has clobbered these variables: ['interp']\n", "`%pylab --no-import-all` prevents importing * from pylab and numpy\n" ] } ], "source": [ "import numpy as np\n", "%pylab inline\n", "import matplotlib.pyplot as plt\n", "# JSAnimation import available at https://github.com/jakevdp/JSAnimation\n", "from JSAnimation import IPython_display\n", "from matplotlib import animation\n", "#Interpolation add-on\n", "import scipy.interpolate as interp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- - - " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Numerical Differentiation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "According to the formal definition of differentiation, given a function $f(x)$ such that $f(x)\\in C^1[a,b]$, the first order derivative is given by\n", "\n", "$$\\frac{d}{dx}f(x) = f'(x) = \\lim_{h\\rightarrow 0} \\frac{f(x+h)-f(x)}{h}$$\n", "\n", "However, when $f(x)$ exhibits a complex form or is a numerical function (only a discrete set of points are known), this expression becomes unfeasible. In spite of this, this formula gives us a very first rough way to calculate numerical derivatives by taking a finite interval $h$, i.e.\n", "\n", "$$f'(x) \\approx \\frac{f(x+h)-f(x)}{h}$$\n", "\n", "where the function must be known at least in $x_0$ and $x_1 = x_0+h$, and $h$ should be small enough." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Evaluate the first derivative of the next function using the previous numerical scheme at the point $x_0=2.0$ and using $h=0.5,\\ 0.1,\\ 0.05$\n", "\n", "$f(x) = \\sqrt{1+\\cos^2(x)}$\n", "\n", "Compare with the real function and plot the tangent line using the found values of the slope." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Function to evaluate\n", "def function(x):\n", " return np.sqrt( 1+np.cos(x)**2 )\n", "\n", "#X value\n", "x0 = 2\n", "xmin = 1.8\n", "xmax = 2.2\n", "#h step\n", "hs = [0.5,0.1,0.05]\n", "\n", "#Calculating derivatives\n", "dfs = []\n", "for h in hs:\n", " dfs.append( (function(x0+h)-function(x0))/h )\n", " \n", "#Plotting\n", "plt.figure( figsize=(10,8) )\n", "#X array\n", "X = np.linspace( xmin, xmax, 100 )\n", "Y = function(X)\n", "plt.plot( X, Y, color=\"black\", label=\"function\", linewidth=3, zorder=10 )\n", "#Slopes\n", "Xslp = [1,x0,3]\n", "Yslp = [0,0,0]\n", "for df, h in zip(dfs, hs):\n", " #First point\n", " Yslp[0] = function(x0)+df*(Xslp[0]-Xslp[1])\n", " #Second point\n", " Yslp[1] = function(x0)\n", " #Third point\n", " Yslp[2] = function(x0)+df*(Xslp[2]-Xslp[1])\n", " #Plotting this slope\n", " plt.plot( Xslp, Yslp, linewidth = 2, label=\"slope$=%1.2f$ for $h=%1.2f$\"%(df,h) )\n", "\n", "#Format\n", "plt.grid()\n", "plt.xlabel(\"x\")\n", "plt.ylabel(\"y\")\n", "plt.xlim( xmin, xmax )\n", "plt.ylim( 1, 1.15 )\n", "plt.legend( loc = \"upper left\" )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## n+1-point formula" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A generalization of the previous formula is given by the (n+1)-point formula, where first-order derivatives are calculated using more than one point, what makes it a much better approximation for many problems.\n", "\n", "**Theorem**\n", "\n", "For a function $f(x)$ such that $f(x)\\in C^{n+1}[a,b]$, the next expression is always satisfied\n", "\n", "$$f(x) = P(x) + \\frac{f^{(n+1)}(\\xi(x))}{(n+1)!}(x-x_0)(x-x_1)\\cdots(x-x_n)$$\n", "\n", "where $\\{x_i\\}_i$ is a set of point where the function is mapped, $\\xi(x)$ is some function of $x$ such that $\\xi\\in[a,b]$, and $P(x)$ is the associated Lagrange interpolant polynomial.\n", "\n", "As $n$ becomes higher, the approximation should be better as the error term becomes neglectable." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Taking the previous expression, and differenciating, we obtain\n", "\n", "$$f(x) = \\sum_{k=0}^n f(x_k)L_{n,k}(x) + \\frac{(x-x_0)(x-x_1)\\cdots(x-x_n)}{(n+1)!}f^{(n+1)}(\\xi(x))$$\n", "\n", "$$f'(x_j) = \\sum_{k=0}^n f(x_k)L'_{n,k}(x_j) + \\frac{f^{(n+1)}(\\xi(x_j))}{(n+1)!} \\prod_{k=0,k\\neq j}^{n}(x_j-x_k)$$\n", "\n", "where $L_{n,k}$ is the $k$-th Lagrange basis functions for $n$ points, $L'_{n,k}$ is its first derivative.\n", "\n", "Note that the last expressions is evaluated in $x_j$ rather than a general $x$ value, the cause of this is because this expression is not longer valid for another value not within the set $\\{x_i\\}_i$, however this is not an inconvenient when handling real applications.\n", "\n", "This formula constitutes the **(n+1)-point approximation** and it comprises a generalization of almost all the existing schemes to differentiate numerically. Next, we shall derive some very used formulas.\n", "\n", "For example, the form that takes this derivative polynomial for 3 points $(x_i,y_i)$ is the following\n", "\n", "$$f'(x_j) = f(x_0)\\left[ \\frac{2x_j-x_1-x_2}{(x_0-x_1)(x_0-x_2)}\\right] + \n", "f(x_1)\\left[ \\frac{2x_j-x_0-x_2}{(x_1-x_0)(x_1-x_2)}\\right] +\n", "f(x_2)\\left[ \\frac{2x_j-x_0-x_1}{(x_2-x_0)(x_2-x_1)}\\right] $$ \n", "$$\\hspace{2cm} + \\frac{1}{6} f^{(3)}(\\epsilon_j) \\prod_{k=0,k\\neq j}^{n}(x_j-x_k)$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Endpoint formulas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Endpoint formulas are based on evaluating the derivative at the first of a set of points, i.e., if we want to evaluate $f'(x)$ at $x_i$, we then need $(x_i$, $x_{i+1}=x_i+h$, $x_{i+2}=x_i+2h$, $\\cdots)$. For the sake of simplicity, it is usually assumed that the set $\\{x_i\\}_i$ is equally spaced such that $x_k = x_0+k\\cdot h$.\n", "\n", "**Three-point Endpoint Formula**\n", "\n", "$$f'(x_i) = \\frac{1}{2h}[-3f(x_i)+4f(x_i+h)-f(x_i+2h)] + \\frac{h^2}{3}f^{(3)}(\\xi)$$\n", "\n", "with $\\xi\\in[x_i,x_i+2h]$\n", "\n", "**Five-point Endpoint Formula**\n", "\n", "$$f'(x_i) = \\frac{1}{12h}[-25f(x_i)+48f(x_i+h)-36f(x_i+2h)+16f(x_i+3h)-3f(x_i+4h)] + \\frac{h^4}{5}f^{(5)}(\\xi)$$\n", "\n", "with $\\xi\\in[x_i,x_i+4h]$\n", "\n", "\n", "Endpoint formulas are especially useful near to the end of a set of points, where no further points exist." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Midpoint formulas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On the other hand, Midpoint formulas are based on evaluating the derivative at the middle of a set of points, i.e., if we want to evaluate $f'(x)$ at $x_i$, we then need $(\\cdots$, $x_{i-2} = x_i - 2h$, $x_{i-1} = x_i - h$, $x_i$, $x_{i+1}=x_i+h$, $x_{i+2}=x_i+2h$, $\\cdots)$.\n", "\n", "**Three-point Midpoint Formula**\n", "\n", "$$f'(x_i) = \\frac{1}{2h}[f(x_i+h)-f(x_i-h)] + \\frac{h^2}{6}f^{(3)}(\\xi)$$\n", "\n", "with $\\xi\\in[x_i-h,x_i+h]$\n", "\n", "**Five-point Midpoint Formula**\n", "\n", "$$f'(x_i) = \\frac{1}{12h}[f(x_i-2h)-8f(x_i-h)+8f(x_i+h)-f(x_i+2h)] + \\frac{h^4}{30}f^{(5)}(\\xi)$$\n", "\n", "with $\\xi\\in[x_i-2h,x_i+2h]$\n", "\n", "\n", "As Midpoint formulas required one iteration less than Endpoint ones, they are more often used for numerical applications. Furthermore, the round-off error is smaller as well. However, near to the end of a set of points, they are no longer useful as no further points exists, and Endpoint formulas are preferable." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Derivative three end point \n", "\n", "def TEP( Yn,i, h=0.01,right=0 ):\n", " suma = -3*Yn[i]+4*Yn[i+(-1)**right*1]-Yn[i+(-1)**right*2]\n", " return suma/(2*h*(-1)**right)\n", "\n", "#Derivative mid point \n", "def TMP( Ynh,Ynmh, h = 0.01 ): \n", " return (Ynh-Ynmh)/(2*h)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Heat transfer in a 1D bar " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Fourier's Law of thermal conduction describes the diffusion of heat. Situations in which there are gradients of heat, a flux that tends to homogenise the temperature arises as a consequence of collisions of particles within a body. The Fourier's Law is giving by \n", "\n", "$$ q = -k\\nabla T = -k\\left( \\frac{dT}{dx}\\hat{i} + \\frac{dT}{dy}\\hat{j} + \\frac{dT}{dz}\\hat{k}\\right)$$\n", "\n", "where T is the temperature, $\\nabla T$ its gradient and k is the material's conductivity. In the next example it is shown the magnitud of the heat flux in a 1D bar(wire)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhEAAAHFCAYAAABM2au2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVXX+x/HXVcklcUuFEhUVHMMwaKFlsiA3ZNIsjcQS\nSZ3KplGzRv1VbtW41UyjGZnmlppmi2ujqTPimFNoFlnjRo6kIpJmmDsK5/fHGW4iXpcr5567vJ+P\nx33Iuevnfrx6P5zP53yPwzAMAxEREZHLVMHuAERERMQ3qYgQERERt6iIEBEREbeoiBARERG3qIgQ\nERERt6iIEBEREbeoiBCxWHBwMDk5OeX2fBUqVOC///3veW+Lj49n2rRp5fZal+PEiRN06tSJWrVq\nkZyczKxZs2jdurUtsVhp4cKFNGzYkODgYL755psrfr5+/frxyiuvlENk5eNCny+Rc6mIEL9WoUIF\nQkJCKCoqcl53+vRp6tevT4UKnvn4HzlyhPDwcADS0tIYNmyYZa/lcDhwOBzl/rwZGRk0bNjwgvf5\n8MMP+fHHHzl06BALFizAqiVoZs6caWtx8txzz5Gens6RI0e48cYbr/j53nrrLV588UW3HrtgwQLu\nvPNOrr76ahISEkrdlpOTQ4UKFQgODiY4OJjQ0FA6derE6tWrrzhmkRIqIsTv1alTh+XLlzu3ly9f\nTp06dSz5sg1kP/zwA82bN/dYcXYhxcXFljyvYRjs3r2bqKgotx5/djFbHq655hoGDRrE0KFDXd7n\n8OHDHDlyhM2bN9OuXTseeOABZs2aVa5xnM+ZM2csfw2xn/3/2kUs1rNnT959913n9rvvvktqamqp\n35RnzJhBVFQUNWrUoFmzZkyZMqXUc4wfP57rrruOsLAw3nnnnVK7fNPS0vjDH/7AfffdR40aNbj9\n9ttL7Q6uUKECO3fuZMqUKbz33nuMHz+e4OBg7r//fuftZ9//3L0Vr776qvO1p0+fftH3m5OTw113\n3UWNGjXo0KEDP/30k/O2L774gjvvvJPatWsTExPD2rVrL5qDY8eO0bFjR/bt20dwcDA1atRg//79\npV5zxIgRvPzyy7z//vsEBwczffr0UkVayW/FZ3+5n9166devH926dXPeNmTIENq2bVvmvW3dupV+\n/frx+eefExwcTJ06dZw569evH0lJSVSvXp2MjAw++eQTYmNjqVmzJo0aNWLUqFFl4nn33Xdp3Lgx\n9erVY/To0c7bN2zYwC233ELNmjUJDQ3lueeeo7CwkODgYIqKirjxxhuJjIwEYN++fXTt2pX69evT\ntGlT3njjDefzjBw5km7dutGzZ09q1qx53i/vs/++MzIyCAsL469//SshISFcd911zJw5s8xjSrRp\n04Zu3bpx7bXXurxPifr169O/f39GjhzJkCFDLnjfTz75hGbNmlGvXj0GDx7s/Leyc+dO7r33XurW\nrUu9evV49NFHOXz4sPNx4eHhjB8/nlatWhEcHGxZMSdexBDxYw6Hw/juu++MkJAQ4/Dhw8ahQ4eM\nkJAQ47vvvjMcDofzfp988onx3//+1zAMw1i7dq1RrVo146uvvjIMwzCWL19uhIaGGlu2bDGOHz9u\nPPLII4bD4TB27txpGIZh9OrVy7jmmmuMjRs3GmfOnDEeeeQRo3v37qViKLlvWlqaMWzYsDIxltx+\n7n2WL19uhISEGP/5z3+MY8eOGSkpKWXuf7Z77rnHaNasmZGdnW2cOHHCiI+PN4YOHWoYhmHs3bvX\nuOaaa4zly5cbhmEYq1atMq655hrj4MGDF81BRkaGERYWdsFcjxw50ujZs6dze8aMGcZdd91lGIZh\n7Nq1y3A4HEZRUZHz9vj4eGPatGmGYRjG8ePHjebNmxszZ840/vWvfxl169Y1cnNzz/s6M2fOdD5v\niV69ehk1a9Y0/v3vfxuGYRgnT540MjIyjO+++84wDMPYvHmzERISYixatKhUPI8//rhx8uRJ45tv\nvjEqV65sbNu2zTAMw7j99tuNOXPmGIZhGMeOHTO++OIL52udnf+ioiLjpptuMl5++WXj9OnTxn//\n+1+jadOmxqeffmoYhmGMGDHCCAoKMhYvXmwYhmGcOHGizPs5++97zZo1RqVKlYwRI0YYZ86cMf7+\n978b1apVMwoKCi6Y+6lTpxrx8fGlrjtfzg3DMHbu3Gk4HA7nez2Xw+Ew7r33XuPnn382du/ebTRv\n3tx45513DMMwjO+//95YvXq1UVhYaBw4cMC4++67jYEDBzof27hxYyM2NtbYu3evcfLkyQvGLP5B\neyLE71WpUoVOnToxf/583n//fe6//36qVKlS6j5JSUk0adIEgLvvvpv27duzbt06wOw79+7dm+uv\nv56qVauW+o0WzDmEBx98kFtuuYWKFSvyyCOPkJWV5TIe4zJmBUpeOyoqimrVqpV57XM5HA569+5N\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Temperature profile \n", "def Temp(x):\n", " return x**3 + 3*x-1\n", "\n", "# Points where function is known\n", "Xn = np.linspace(0,10,100)\n", "Tn = Temp(Xn)\n", "#Magnitude of heat flux array\n", "Q = np.zeros(len(Xn))\n", "#Left end derivative\n", "Q[0] = TEP(Tn,0)\n", "\n", "#Mid point derivatives\n", "index = len(Xn)-1\n", "for i in xrange( 1,index ): \n", " Q[i] = TMP( Tn[i+1],Tn[i-1] )\n", "\n", "#Right end derivative \n", "Q[-1] = TEP( Tn,index,right=1 ) \n", "\n", "#Plotting \n", "plt.figure( figsize=(8,7) )\n", "plt.plot(Xn,Q)\n", "\n", "plt.grid()\n", "plt.xlabel( \"x\",fontsize =15 )\n", "plt.ylabel( \"$\\\\frac{dT}{dx}$\",fontsize =20 )\n", "plt.title( \" Magnitud heat flux transfer in 1D bar\" )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Construct a density map of the magnitud of the heat flux of a 2D bar. Consider the temperature profile as \n", "$$ T(x,y) = x^3 + 3x-1+y^2 $$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "The Poisson's equation relates the matter content of a body with the gravitational potential through the next equation\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "$$\\nabla^2 \\phi = 4\\pi G \\rho$$\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "$$\\frac{1}{r^2}\\frac{d}{dr}\\left(r^2\\frac{d\\phi}{dr}\\right)= 4\\pi G \\rho$$\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "where $\\phi$ is the potential, $\\rho$ the density and $G$ the gravitational constant.\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "Taking [these data](https://raw.githubusercontent.com/sbustamante/ComputationalMethods/master/data/M1.00-STRUC.dat) and using the three-point Midpoint formula, find the density field from the potential (seventh column in the file) and plot it against the radial coordinate. (**Tip:** Use $G=1$)\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The radar stations A and B, separated by the distance a = 500 m, track the plane\n", "C by recording the angles $\\alpha$ and $\\beta$ at 1-second intervals. The successive readings are \n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "calculate the speed v using the 3 point approximantion at t = 10 ,12 and 14 s. Calculate the x component of the acceleration of the plane at = 12 s. The coordinates of the plane can be shown to be\n", "\n", "\\begin{equation}\n", "x = a\\frac{\\tan \\beta}{\\tan \\beta- \\tan \\alpha}\\\\\n", "y = a\\frac{\\tan \\alpha\\tan \\beta}{\\tan \\beta- \\tan \\alpha}\n", "\\end{equation}\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- - -" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Numerical Integration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Integration is the second fundamental concept of calculus (along with differentiation). Numerical approaches are generally more useful here than in differentiation as the antiderivative procedure (analytically) is often much more complex, or even not possible. In this section we will cover some basic schemes, including numerical quadratures.\n", "\n", "Geometrically, integration can be understood as the area below a funtion within a given interval. Formally, given a function $f(x)$ such that $f\\in C^{1}[a,b]$, the antiderivative is defined as\n", "\n", "$$F(x) = \\int f(x) dx$$\n", "\n", "valid for all $x$ in $[a,b]$. However, a more useful expression is a definite integral, where the antiderivative is evaluated within some interval, i.e.\n", "\n", "$$F(x_1) - F(x_0) = \\int_{x_0}^{x_1} f(x) dx$$\n", "\n", "This procedure can be formally thought as a generalization of discrete weighted summation. This idea will be exploited below and will lead us to some first approximations to integration." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Numerical quadrature" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given a well-behaved function $f(x)$, a previous theorem guarantees that\n", "\n", "$$f(x) = \\sum_{k=0}^n f(x_k)L_{n,k}(x) + \\frac{(x-x_0)(x-x_1)\\cdots(x-x_n)}{(n+1)!}f^{(n+1)}(\\xi(x))$$\n", "\n", "with $L_{n,k}(x)$ the lagrange basis functions. Integrating $f(x)$ over $[a,b]$, we obtain the next expression:\n", "\n", "$$\\int_a^b f(x)dx = \\int_a^b\\sum_{k=0}^n f(x_k)L_{n,k}(x)dx + \\int_a^b\\frac{(x-x_0)(x-x_1)\\cdots(x-x_n)}{(n+1)!}f^{(n+1)}(\\xi(x))dx$$\n", "\n", "It is worth mentioning this expression is a number, unlike differentiation where we obtained a function.\n", "\n", "We can readily convert this expression in a weighted summation as\n", "\n", "$$\\int_a^b f(x)dx = \\sum_{k=0}^n a_if(x_k) + \\frac{1}{(n+1)!}\\int_a^bf^{(n+1)}(\\xi(x)) \\prod_{k=0}^{n}(x-x_k)dx$$\n", "\n", "where each coefficient is defined as:\n", "\n", "$$a_i = \\int_a^b L_{n,k}(x) dx = \\int_a^b\\prod_{j=0,\\ j\\neq k}^{n}\\frac{(x-x_j)}{(x_k-x_j)}dx$$\n", "\n", "Finally, the quadrature formula or **Newton-Cotes formula** is given by the next expression:\n", "\n", "$$\\int_a^b f(x) dx = \\sum a_i f(x_i) + E[f]$$\n", "\n", "where the estimated error is \n", "\n", "$$E[f] = \\frac{1}{(n+1)!}\\int_a^bf^{(n+1)}(\\xi(x)) \\prod_{k=0}^{n}(x-x_k)dx $$\n", "\n", "Asumming besides intervals equally spaced such that $x_i = x_0 + i\\times h$, the error formula becomes:\n", "\n", "$$E[f] = \\frac{h^{n+3}f^{n+2}(\\xi)}{(n+1)!}\\int_0^nt^2(t-1)\\cdots(t-n) $$\n", "\n", "if $n$ is even and\n", "\n", "$$E[f] = \\frac{h^{n+2}f^{n+1}(\\xi)}{(n+1)!}\\int_0^nt(t-1)\\cdots(t-n) $$\n", "\n", "if $n$ is odd." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Quadrature method\n", "def Quadrature( f, X, xmin, xmax, ymin=0, ymax=1, fig=None, leg=True ):\n", " #f(x_i) values\n", " Y = f( X )\n", " \n", " #X array\n", " Xarray = np.linspace( xmin, xmax, 1000 )\n", " #X area\n", " Xarea = np.linspace( X[0], X[-1], 1000 )\n", " #F array\n", " Yarray = f( Xarray )\n", " \n", " #Lagrange polynomial\n", " Ln = interp.lagrange( X, Y )\n", " #Interpolated array\n", " Parray = Ln( Xarray )\n", " #Interpolated array for area\n", " Parea = Ln( Xarea )\n", " \n", " #Plotting\n", " if fig==None:\n", " fig = plt.figure( figsize = (8,8) )\n", " ax = fig.add_subplot(111)\n", " #Function\n", " ax.plot( Xarray, Yarray, linewidth = 3, color = \"blue\", label=\"$f(x)$\" )\n", " #Points\n", " ax.plot( X, Y, \"o\", color=\"red\", label=\"points\", zorder = 10 )\n", " #Interpolator\n", " ax.plot( Xarray, Parray, linewidth = 2, color = \"black\", label=\"$P_{%d}(x)$\"%(len(X)-1) )\n", " #Area\n", " ax.fill_between( Xarea, Parea, color=\"green\", alpha=0.5 )\n", " \n", " #Format\n", " ax.set_title( \"%d-point Quadrature\"%(len(X)), fontsize=16 )\n", " ax.set_xlim( (xmin, xmax) )\n", " ax.set_ylim( (0, 4) )\n", " ax.set_xlabel( \"$x$\" )\n", " ax.set_ylabel( \"$y$\" )\n", " if leg:\n", " ax.legend( loc=\"upper left\", fontsize=16 )\n", " ax.grid(1)\n", " \n", " return ax" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Trapezoidal rule" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the previous formula, it is easily to derivate a set of low-order approximations for integration. Asumming a function $f(x)$ and an interval $[x_0,x_1]$, the associated quadrature formula is that obtained from a first-order Lagrange polynomial $P_1(x)$ given by:\n", "\n", "$$P_1(x) = \\frac{(x-x_1)}{x_0-x_1}f(x_0) + \\frac{(x-x_0)}{(x_1-x_0)}f(x_1)$$\n", "\n", "Using this, it is readible to obtain the integrate:\n", "\n", "$$\\int_{x_0}^{x_1}f(x)dx = \\frac{h}{2}[ f(x_0) + f(x_1) ]-\\frac{h^3}{12}f^{''}(\\xi)$$\n", "\n", "with $\\xi \\in [x_0, x_1]$ and $h = x_1-x_0$." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Function\n", "def f(x):\n", " return 1+np.cos(x)**2+x\n", "\n", "#Quadrature with 2 points (Trapezoidal rule)\n", "X = np.array([-0.5,1.5])\n", "Quadrature( f, X, xmin=-1, xmax=2, ymin=0, ymax=4 )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simpson's rule" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A slightly better approximation to integration is the Simpson's rule. For this, assume a function $f(x)$ and an interval $[x_0,x_2]$, with a intermediate point $x_1$. The associate second-order Lagrange polynomial is given by:\n", "\n", "$$P_2(x) = \\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}f(x_0) + \\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}f(x_1) + \\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}f(x_2)$$\n", "\n", "The final expression is then:\n", "\n", "$$\\int_{x_0}^{x_2} f(x)dx = \\frac{h}{3}[ f(x_0)+4f(x_1)+f(x_2) ]-\\frac{h^5}{90}f^{(4)}(\\xi)$$" ] }, { "cell_type": "code", "execution_count": 184, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 184, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\naMD3339P/fr1S9zXsGFDAOrVq0fv3r3ZvHmz3w/2S3mBJH9n0quaNWueu92tWzfuvfdeDh06xGWX\nXea2On2BXlNm9HoqcvbsWfr27cvgwYOJj48/7/4LfU35xKH40nIYkwvg+Lu4uDgWLlwIwMKFC0t8\nUZw8eZJjx44BcOLECd59990yP9HrL3SBJHMmvcrJyTn33+LmzZuxLKtC/hIuj15TZvR6slmWxV13\n3cXVV1/N/fffX+KeC35NXbrP9l1ab7/9ttW4cWOratWqVkhIiNW1a1fLsiwrOzvbio2NPbcvLS3N\natmypRUaGmolJyd7qlyPOXjwoHXbbbdZYWFhVkxMjHX48GHLsor3adeuXVZERIQVERFhtW7dukL1\nqaTXx9y5c625c+ee2zNmzBgrNDTUuvbaa0s9A6MiKK9Xs2bNslq3bm1FRERYN910k/WPf/zDk+V6\nTGJiotWwYUMrKCjIaty4sTV//ny9pkpQXp/0erJt3LjRcrlcVkREhBUZGWlFRkZaaWlpF/Wa0gVq\nRERE/IhPHIoXERERMxrsIiIifkSDXURExI9osIuIiPgRDXYRERE/osEuIiLiRzTYRURE/IgGu4iI\niB/RYBcREfEjHv0SGBHxXvn5+Sxbtozdu3fTpEkTNm/ezIQJE2jevLmnSxORMugdu4iUaNu2bfTt\n25fmzZtTUFBAQkLCuW8JFBHvpcEuIiVq27YtVapU4R//+AfR0dFER0dTrVo1T5clIuXQYBeREv3z\nn//kwIEDfP3111x11VV88sknni5JRAwoYxeREq1fv56QkBA6duzIqlWrqF+/vqdLEhED+tpWERER\nP6JD8SIiIn5Eg11ERMSPaLCLiIj4EQ12ERERP6LBLiIi4kc02EVERPyIBruIiIgf+f+P5H++Fxp/\nmQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Function\n", "def f(x):\n", " return 1+np.cos(x)**2+x\n", "\n", "#Quadrature with 3 points (Simpson's rule)\n", "X = np.array([-0.5,0.5,1.5])\n", "Quadrature( f, X, xmin=-1, xmax=2, ymin=0, ymax=4 )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "- Using the trapezoidal and the Simpson's rules, determine the value of the integral (4.24565)\n", "\n", "$$ \\int_{-0.5}^{1.5}(1+\\cos^2x + x)dx $$\n", "\n", "- Take the previous routine Quadrature and the above function and explore high-order quadratures. What happends when you increase the number of points?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "\n", "Approximate the following integrals using formulas Trapezoidal and Simpson rules. Are the accuracies of\n", "the approximations consistent with the error formulas? \n", "\n", "\\begin{eqnarray*}\n", "&\\int_{0}^{0.1}&\\sqrt{1+ x}dx \\\\\n", "&\\int_{0}^{\\pi/2}&(\\sin x)^2dx\\\\ \n", "&\\int_{1.1}^{1.5}&e^xdx \n", "\\end{eqnarray*}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Composite Numerical Integration" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although above-described methods are good enough when we want to integrate along small intervals, larger intervals would require more sampling points, where the resulting Lagrange interpolant will be a high-order polynomial. These interpolant polynomials exihibit usually an oscillatory behaviour (best known as [Runge's phenomenon](http://en.wikipedia.org/wiki/Runge%27s_phenomenon)), being more inaccurate as we increase $n$.\n", "\n", "An elegant and computationally inexpensive solution to this problem is a *piecewise* approach, where low-order Newton-Cotes formula (like trapezoidal and Simpson's rules) are applied over subdivided intervals." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Composite Quadrature method\n", "def CompositeQuadrature( f, a, b, N, n, xmin, xmax, ymin=0, ymax=1 ):\n", " #X array\n", " X = np.linspace( a, b, N )\n", " \n", " #Plotting\n", " fig = plt.figure( figsize = (8,8) )\n", " for i in xrange(0,N-n,n):\n", " Xi = X[i:i+n+1]\n", " ax = Quadrature( f, Xi, X[i], X[i+n], fig=fig, leg=False )\n", " \n", " #X array\n", " Xarray = np.linspace( xmin, xmax, 1000 )\n", " #F array\n", " Yarray = f( Xarray )\n", " #Function\n", " ax.plot( Xarray, Yarray, linewidth = 3, color = \"blue\", label=\"$f(x)$\", zorder=0 )\n", " \n", " #Format\n", " plt.xlim( (xmin, xmax) )\n", " plt.ylim( (ymin, ymax) )\n", " \n", " return None" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Composite trapezoidal rule" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This formula is obtained when we subdivide the integration interval $[a,b]$ within sets of two points, such that we can apply the previous Trapezoidal rule to each one.\n", "\n", "Let $f(x)$ be a well behaved function ($f\\in C^2[a,b]$), defining the interval space as $h = (b-a)/N$, where N is the number of intervals we take, the **Composite Trapezoidal rule** is given by:\n", "\n", "$$ \\int_a^b f(x) dx = \\frac{h}{2}\\left[ f(a) + 2\\sum_{j=1}^{N-1}f(x_j) + f(b) \\right] - \\frac{b-a}{12}h^2 f^{''}(\\mu)$$\n", "\n", "for some value $\\mu$ in $(a,b)$." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Function\n", "def f(x):\n", " return 1+np.cos(x)**2+x\n", "\n", "#Quadrature with 3 points (Simpson's rule)\n", "CompositeQuadrature( f, a=-0.5, b=1.5, N=5, n=1, xmin=-1, xmax=2, ymin=0, ymax=4 )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Composite Simpson's rule" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, if we instead divide the integration interval in sets of three points, we can apply Simpson's rule to each one, obtaining:\n", "\n", "$$ \\int_a^bf(x)dx = \\frac{h}{3}\\left[ f(a) +2 \\sum_{j=1}^{(n/2)-1}f(x_{2j})+4\\sum_{j=1}^{n/2}f(x_{2j-1})+f(b) \\right] - \\frac{b-a}{180}h^4f^{(4)}(\\mu)$$\n", "\n", "for some value $\\mu$ in $(a,b)$." ] }, { "cell_type": "code", "execution_count": 186, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAH6CAYAAAD1KW7HAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcjXX/x/HXObMvGLusY0khDEK2jK0pe+m2hAzpRkVp\nuetXd6VVuiuhlCLVrehOiRhFZShLorQQoSb7ljGMYbZz/f44ZsY0gy8z15wzZ97Px2Mezfec61zz\nmc993T5zrvc513FYlmUhIiIiPsHp6QJERESk8Giwi4iI+BANdhERER+iwS4iIuJDNNhFRER8iAa7\niIiID9FglxLp888/p3Pnzlx22WUEBwdTo0YNBgwYwK+//uqRemJjY6ldu/YlPXbChAmsWLHioh6z\nbNkybrjhBipUqEBISAhXXHEFDz30EMeOHbukGgoqISEBp9PJO++8U2j7TEpKYsKECfzwww+Ftk+R\n4kCDXUqkxMREWrZsyauvvsry5cuZOHEimzdv5pprrmH37t1FXs9jjz3GJ598ckmPffLJJy9qsD/7\n7LNcf/31hIaGMmvWLJYtW8bo0aN5++23admyJXv27LmkOgqDw+EotH0lJiby5JNParBLiePv6QJE\nPGHgwIEMHDgwe92hQwdatWrFlVdeyfz58xk/fnyR1lOnTp0CPd70OlMrVqzg0UcfZfz48bz44ovZ\nt3fo0IEbb7yRFi1aMGzYML788ssC1WOXtLQ0AgMDL+oxhX0NrtTUVIKCggp1nyKFSc/YRc4oV64c\nAH5+fhfcNjY2lho1arBmzRpatmxJSEgItWvX5pVXXsmz7fr16+natSulSpUiPDycrl278t133+XZ\n39mn4rNOTb/xxhs89thjVK1albJly9K7d2/27t2bvZ3T6f6/8DPPPIPT6cTpdPLkk0+es+7nn3+e\n8uXLM3HixDz3RUZG8tBDD7FixYrs+s51ijw+Ph6n08mqVauyb1u2bBndu3enatWqhIWF0bhxY156\n6SVcLleux6akpHDHHXdQvnx5SpUqRZ8+ffI9S5DV47Vr19K2bVtCQ0N58MEHAZg3bx6dO3emUqVK\nlCpViubNm/Puu+/m6l/WH0u33357dm+ytomMjGT48OF5fqbT6eSJJ57IXk+YMAGn08nmzZuJiYmh\nVKlSDBgwIPv3ePDBB6lduzZBQUHUqVOHZ599ttD/kBC5WBrsUqJlZmaSlpbG9u3bGTVqFJUrV871\nTP58jh8/zsCBAxk+fDgLFy4kOjqacePG5RqCP/30Ex07diQpKYl33nmHd999l+PHj9OxY0d++umn\nXPvL7zT0xIkT+f3335k9ezZTpkxh7dq1DBkyJPv+tWvXAjB8+HDWrVvHunXrGDlyZL71ZmRksHLl\nSrp163bOZ729evUCyHNq3+QU+R9//EHnzp2ZOXMmcXFxDBs2jAkTJvDII4/k2m7UqFHMmjWL+++/\nnwULFnDFFVdwyy235LvPpKQkBg0axODBg/nss8+yt/v999+56aabmDNnDgsXLqRXr16MHDmSGTNm\nAFC1alU+/vhjAB5++OHs3vTo0SP79znX75Tf7X369KFTp058+umn3HvvvWRmZhITE8OsWbMYP348\nn332GSNHjuSpp57igQceuGCvRGxliZRgLVq0sBwOh+VwOKzIyEhr8+bNRo8bNmyY5XA4rA8++CDX\n7d26dbNq1aqVve7Xr59VtmxZKykpKfu248ePW+XKlbNuuummXPuLjIzMXv/xxx+Ww+GwOnXqlGv/\nL7zwguVwOKz9+/dn3+ZwOKxHH330gjUfOHDAcjgc1sMPP3zObU6dOmU5HA7rzjvvzFXHO++8k2u7\nFStWWA6Hw1q5cmW++3G5XFZ6err19NNPW2XLls2+fevWrZafn581adKkXNuPGTMmz8/J6vGiRYvO\n+3tlZmZa6enp1siRI62mTZtm355V+6xZs/I8JjIy0ho+fHie2x0Oh/XEE09krx9//HHL4XBYU6dO\nzbXdu+++azkcDuvrr7/OdfszzzxjBQYGWocOHTpvzSJ20jN2KdHmzJnDt99+y/vvv0/58uWJiYnh\nzz//zL4/IyMj19fZ/P396devX67bBgwYwK5du9i3bx8Aq1atomfPnpQuXTp7m1KlStG7d29Wrlx5\nwfq6d++ea33VVVcBsGvXrov7RS+Sv//Fv/xm//79jBo1ilq1ahEUFERgYCCPPvooSUlJHDp0CIBv\nv/0Wl8tF//79cz32XGdJAgMD6dmzZ57bt2/fzqBBg6hevTqBgYEEBgYya9Ysfvvtt4uu28SNN96Y\na/3ZZ59Rq1Yt2rRpk+v46NatG+np6axbt86WOkRM6MVzUqJdeeWVALRs2ZIbbriByMhInnvuOV57\n7bVcOW2WhIQEatasCUBERESePL5y5coA7N27l6pVq5KYmMhll12W5+dWrlyZxMTEC9aXlftnyXrR\n1unTpw1/wxzly5cnJCSEhISEc26TdV/16tUvat8ul4vevXtz4MABJkyYwJVXXklISAgLFizgmWee\nya53//79QE6fslSqVCnf/VasWDHPqfHk5GS6detGeHg4kyZNom7dugQGBjJ9+nTeeuuti6rb1N//\nNzx06BB//vknAQEBebZ1OBwcPXrUljpETGiwi5xRpkwZ6taty86dOwGoVq0aGzZsyLXN2f/AJyYm\nkpmZmWu4Hzx4MPux4B7MWcPsbAcOHMgztO3m7+/Ptddey7Jly875yu5FixYBcN111wEQHBwMuF+N\nfra//vor13rnzp1s3LiROXPm5MrLFy5cmGu7rP4dPHiQyMjI7Nuz+mZi7dq17Nq1i2+++Ya2bdtm\n356enm68j+Dg4Av+Tmf7+x8XFSpUoHbt2nz44Yf5bl+rVi3jWkQKm07Fi5xx8OBBtm7dSt26dQEI\nCAigefPmub7OfoaWmZnJ/Pnzc+1j3rx51KpVi6pVqwLQsWNH4uLiSE5Ozt7mxIkTfPrpp0RHR+d6\n7KW+hzswMJBTp04ZbfvAAw/w119/8fDDD+e5748//mDSpElER0fTpEkTwP3MOigoiJ9//jnXtkuW\nLMm1TklJAXKfwk9PT+e9997L9Xu1bt0ap9PJBx98kOvx8+bNy7fe/HqS389KTExk4cKFubbP+sMl\nv97UqlXrgr/T+Vx//fXs3r2bsLCwPMdI8+bNKV++vPG+RAqbnrFLiZT1nu3GjRtTunRpfvvtNyZP\nnkxgYCD33Xef0T5KlSrFv/71L44cOUK9evWYO3cuX375Za5XxT/66KMsXryYLl26ZL9Va9KkSZw+\nfZrHHnss1/6sS3ybVMOGDVm8eDExMTFERERQrVq1fE//A3Tu3JknnniCxx9/nISEBIYOHUrZsmX5\n/vvvee655yhTpgzvv/9+9vYOh4MBAwYwa9Ys6tevT/369VmyZEme1wc0bNiQWrVq8cgjj+Dn54e/\nvz+TJ0/G4XDk+r2yXgH/2GOP4XK5uPrqq1m2bBlLly7Nt978etKuXTtKly7NnXfeyRNPPEFycjJP\nP/00FStW5Pjx49nbVa5cmfLlyzN37lwaN25MaGgoderUoVy5cgwcOJARI0Zw77330qNHD3788ceL\nuurd4MGDmT17Nl26dOG+++6jSZMmpKWlsXPnTj799FM++eQTQkJCjPcnUqg8/OI9EY+YNGmS1aJF\nCysiIsIKDQ21rrjiCmv06NHWn3/+afT4YcOGWdWrV7fWrl1rtWzZ0goODrYiIyOtadOm5dn222+/\ntbp27WqFh4dbYWFhVteuXa3vvvsu1zaxsbFW7dq1s9fnekX3ihUrLKfTmevV6KtXr7ZatGhhBQcH\n53lV97l89tlnVkxMjFW2bNnsdwW0a9fOSk5OzrPtsWPHrKFDh1oVKlSwypUrZ40ZM8ZasmRJnjo2\nbdpktW/f3goNDbVq1KhhPf7449bMmTMtp9OZq68pKSnWmDFjrHLlylnh4eFWnz59rNWrV+d5VXxs\nbKxVo0aNfOv/6quvrGbNmlkhISFWvXr1rGnTplkTJkywnE5nru0++eQTq2HDhlZAQIDldDqz9+9y\nuawnn3zSqlWrlhUaGmpdf/311s6dO/P0L2ufmZmZeWo4ffq0NWHCBOvKK6+0goKCrHLlylmtWrWy\nnnjiCSsjI+OC/xuI2MVhWfZfTSEzM5Orr76a6tWr8+mnn+a5f9y4cSxdupTQ0FDefvttmjVrZndJ\nIgUSGxvLV199Zfur04vK0KFD+eCDD1iyZAndunXzdDkiUgBFkrFPmTKFhg0b5puXxcXFsWPHDrZv\n384bb7zBmDFjiqIkkQIrgr+Ji8xbb71Fu3bt6N+/P1u2bPF0OSJSALYP9j179hAXF8fIkSPz/Ydw\n0aJFDBs2DHC/sObYsWMX9QpZEU8435XLiqOAgABWrFhBYmIiDRs29HQ5IlIAtg/28ePH85///Cf7\nmtZ/t3fvXmrUqJG9rl69ukc/XUrExOzZs33mNLyI+BZbXxW/ePFiKlWqRLNmzYiPjz/ndn9/Jp/f\nM6Fq1aplX81LRETE19WtW5cdO3Zc9ONsfca+Zs0aFi1aRO3atRk0aBBfffUVt956a65tqlWrluvz\nr/fs2ZN9cY+z7du3D8uy9HWBr8cff9zjNRSXL/VKfVKv1Cdv/sq6WNbFsnWwP/vss+zevZs//vgj\n+2MWz/5oRYDevXtn37Zu3ToiIiLyXG5SzJ3vcqGSm3plRn0yp16ZUZ/sVaQXqMk6xZ710YqjRo2i\ne/fuxMXFUa9ePcLCwpg9e3ZRliQiIuJTiuR97IXh71ewkvzFx8fnuVSp5E+9MqM+mVOvzKhPZi51\n7mmwi4iIeKFLnXv6EBgfc753H0hu6pUZ9cmcemVGfbKXBruIiIgP0al4ERERL6RT8SIiIqLB7muU\nXZlTr8yoT+bUKzPqk7002EVERHyIMnYREREvpIxdRERENNh9jbIrc+qVGfXJnHplRn2ylwa7iIiI\nD1HGLiIi4oWUsYuIiIgGu69RdmVOvTKjPplTr8yoT/bSYBcREfEhythFRES8kDJ2ERER0WD3Ncqu\nzKlXZtQnc+qVGfXJXhrsIiIiPkQZu4iIiBdSxi4iIiIa7L5G2ZU59cqM+mROvTKjPtlLg11ERMSH\nKGMXERHxQsrYRURERIPd1yi7MqdemVGfzKlXZtQne2mwi4iI+BBl7CIiIl5IGbuIiIhosPsaZVfm\n1Csz6pM59cqM+mQvDXYREREfooxdRETECyljFxEREQ12X6Psypx6ZUZ9MqdemVGf7KXBLiIi4kOU\nsYuIiHghZewiIiKiwe5rlF2ZU6/MqE/m1Csz6pO9NNhFRER8iDJ2ERERL6SMXURERDTYfY2yK3Pq\nlRn1yZx6ZUZ9spcGu4iIiA9Rxi4iIuKFlLGLiIiIBruvUXZlTr0yoz6ZU6/MqE/20mAXERHxIbZn\n7KdPn6Zjx46kpqaSlpZGnz59mDhxYq5t4uPj6dOnD3Xq1AGgX79+/Pvf/85dqDJ2EREpQS517vnb\nUEsuwcHBrFixgtDQUDIyMmjfvj3ffPMN7du3z7Vdx44dWbRokd3liIiI+LQiORUfGhoKQFpaGpmZ\nmZQrVy7PNno2XjiUXZlTr8yoT+bUKzPqk72KZLC7XC6ioqKoXLkynTp1omHDhrnudzgcrFmzhqZN\nm9K9e3e2bNlSFGWJiIj4HNtPxQM4nU42bdpEUlISMTExxMfHEx0dnX1/8+bN2b17N6GhoSxdupS+\nffvy22+/5dlPbGwskZGRAERERBAVFZW9n6y/ALXW+mLWWbylHm9cR0dHe1U9Whf/ddZt3lKPt6yz\nvk9ISKAgivwCNU899RQhISHcf//959ymdu3abNy4Mdcpe714TkREShKvvUDNkSNHOHbsGACnTp1i\n+fLlNGvWLNc2Bw8ezC5+/fr1WJaVbw4vF3b2X35yfuqVGfXJnHplRn2yl+2n4vfv38+wYcNwuVy4\nXC6GDh1Kly5dmDFjBgCjRo1i/vz5vPbaa/j7+xMaGsq8efPsLktERMQn6VrxIiIiXshrT8WLiIhI\n0dFg9zHKrsypV2bUJ3PqlRn1yV4a7CIiIj5EGbuIiIgXUsYuIiIiGuy+RtmVOfXKjPpkTr0yoz7Z\nS4NdRETEhyhjFxER8ULK2EVERESD3dcouzKnXplRn8ypV2bUJ3tpsIuIiPgQZewiIiJeSBm7iIiI\naLD7GmVX5tQrM+qTOfXKjPpkLw12ERERH6KMXURExAspYxcRERENdl+j7MqcemVGfTKnXplRn+yl\nwS4iIuJDlLGLiIh4IWXsIiIiosHua5RdmVOvzKhP5tQrM+qTvTTYRUREfIgydhERES+kjF1EREQ0\n2H2Nsitz6pUZ9cmcemVGfbKXBruIiIgPUcYuIiLihZSxi4iIiAa7r1F2ZU69MqM+mVOvzKhPF5aa\neumP1WAXERHxMvfee+mPVcYuIiLiRebOhVtuAbi0uafBLiIi4iU2b4ZWrSAlBS51sOtUvI9RdmVO\nvTKjPplTr8yoT/k7fhz69csa6pdOg11ERMTDLAtuuw22bXOvQ0MvfV86FS8iIuJhL70E992Xs37v\nPRg8WBm7iIhIsfP119CpE2Rmutd33QXTpukCNXKGsitz6pUZ9cmcemVGfcqxfz/0758z1K+5Bl58\nsWD71GAXERHxgPR0GDAADhxwrytUgA8/hMDAgu1Xp+JFREQ84IEH4IUX3N87nbBsGXTpknO/TsWL\niIgUEx99lDPUAZ56KvdQLwgNdh+j7MqcemVGfTKnXpkp6X36+WcYNixn3asXPPRQ4e1fg11ERKSI\nHD0KffvCyZPudd268M477lPxhUUZu4iISBHIyIDu3WH5cvc6PBzWrYNGjfLfXhm7iIiIF3vooZyh\nDvDf/557qBeEBruPKenZ1cVQr8yoT+bUKzMlsU/vvZf7/emPP+4+JW8HDXYREREbbdwII0fmrPv0\ngcces+/n2Zqxnz59mo4dO5KamkpaWhp9+vRh4sSJebYbN24cS5cuJTQ0lLfffptmzZrlLVQZu4iI\nFDOHDsHVV8Pu3e51gwbuXL106Qs/9lLnnv9FP+IiBAcHs2LFCkJDQ8nIyKB9+/Z88803tG/fPnub\nuLg4duzYwfbt2/n2228ZM2YM69ats7MsERER26Wnwz/+kTPUy5SBTz4xG+oFYfup+NAznz2XlpZG\nZmYm5cqVy3X/okWLGHbmDX2tW7fm2LFjHDx40O6yfFZJzK4ulXplRn0yp16ZKQl9siy44w5Ytcq9\ndjhg7lyoX9/+n237YHe5XERFRVG5cmU6depEw4YNc92/d+9eatSokb2uXr06e/bssbssERER20ye\nDDNn5qyffRZuuKFofratp+IBnE4nmzZtIikpiZiYGOLj44mOjs61zd8zBIfDke++YmNjiYyMBCAi\nIoKoqKjsfWX9Bai11hezzuIt9XjjOjo62qvq0br4r7Nu85Z6Cns9cWI8Dz8M4F536xZP69Y563M9\nPuv7hIQECqJIL1Dz1FNPERISwv3335992+jRo4mOjmbgwIEAXHnllaxcuZLKlSvnLlQvnhMRES/3\n00/Qrh0kJ7vX7drBl19CUNDF78srL1Bz5MgRjh07BsCpU6dYvnx5nle89+7dm3fffReAdevWERER\nkWeoi7mz//KT81OvzKhP5tQrM77ap4MH3dd9zxrqkZGwYMGlDfWCsPVU/P79+xk2bBgulwuXy8XQ\noUPp0qULM2bMAGDUqFF0796duLg46tWrR1hYGLNnz7azJBERkUJ36pT7gjO7drnXpUrB4sVQsWLR\n16JrxYuIiBSAZcHgwe5XvYP7A12WLIHrry/Yfr3yVLyIiIivmzAhZ6iD+xXxBR3qBaHB7mN8Nbuy\ng3plRn0yp16Z8aU+zZoFTz6Zsx4zBsaO9Vw9oMEuIiJySZYuhVGjctYxMTBlivtiNJ6kjF1EROQi\nff89XHstnDzpXjdrBitXul80V1gude5psIuIiFyEhAS45hr329sAatWCtWvhsssK9+foxXMC+FZ2\nZTf1yoz6ZE69MlOc+3T0qPvSsFlDPSLCfUq+sId6QWiwi4iIGDh92v1Z6lu3uteBgbBwofujWL2J\nTsWLiIhcQGYmDBwI8+fn3DZvHgwYYN/P1Kl4ERERG1iW+21sZw/1F16wd6gXhAa7jynO2VVRU6/M\nqE/m1Cszxa1PjzwCb76Zs777brj3Xs/VcyEa7CIiIufw4oswcWLOeuhQeOklz79X/XyUsYuIiORj\n9mwYMSJn3asXfPQRBAQUzc/X+9hFREQKySefQL9+4HK51x06wOefQ0hI0dWgF88JUPyyK09Sr8yo\nT+bUKzPe3qevvnK/Aj5rqEdFwaefFu1QLwgNdhERkTO+/tp9yj011b2uVw8++wzKlPFsXRdDp+JF\nRESAdeugWzdITnavq1aF1ashMtIz9ehUvIiIyCXauNH9GepZQ71yZfcpeU8N9YLQYPcx3p5deRP1\nyoz6ZE69MuNtffrxR7juOkhKcq8rVIAvv4QrrvBsXZdKg11EREqsLVuga1f3h7sAlC0LX3wBjRp5\ntq6CUMYuIiIl0tat0KkTHDjgXpcp436m3qKFZ+vKooxdRETE0C+/QMeOOUM9PNz96ndvGeoFocHu\nY7wtu/Jm6pUZ9cmcemXG033atAmio+HQIfc6LAzi4uCaazxaVqHRYBcRkRJjwwbo3Bn++su9LlXK\nfUW5Dh08W1dhUsYuIiIlwtq17re0HT/uXkdEuId6q1aeretclLGLiIicw9dfu9/SljXUy5Vzv1DO\nW4d6QWiw+xhPZ1fFiXplRn0yp16ZKeo+ff557ovPVKwIK1ZA8+ZFWkaR0WAXERGfNW+e+9rvKSnu\ndZUqEB8PTZp4tCxbKWMXERGf9OqrMHYsZI2OmjVh+XKoX9+zdZlSxi4iIoJ7kE+YAHfdlTPUGzZ0\nf6BLcRnqBaHB7mOU8ZlTr8yoT+bUKzN29snlcj9Lf+KJnNtat4ZVq6B6ddt+rFfx93QBIiIiheHU\nKbj1Vpg/P+e2666Djz5yX1mupFDGLiIixd7hw9C7t/sz1bMMGADvvguBgZ6rqyCUsYuISIm0bZv7\ncrBnD/Vx4+C994rvUC8IDXYfo4zPnHplRn0yp16ZKcw+rVoFbdrA77+71w4HvPwyTJkCfn6F9mOK\nFWXsIiJSLL33HowYAWlp7nVICMydC336eLYuT1PGLiIixUpmJjzyCEyalHNbpUqweDG0bOm5ugrb\npc49PWMXEZFi49gxuOUWWLo057YGDdwfuxoZ6bGyvIoydh+jjM+cemVGfTKnXpm51D5t3ep+T/rZ\nQ717d/entmmo59BgFxERrxcX5x7qv/2Wc9v//R8sWgRlyniuLm+kjF1ERLxWZiY8+SQ89VTO5WFD\nQuCtt2DgQM/WZjdl7CIi4lMOHoTBg92fm56lRg345BPf/cjVwqBT8T5GGZ859cqM+mROvTJj0qdV\nq6BZs9xDvVMn2LBBQ/1CNNhFRMRruFzut7F17gz797tvczjg0UfdH7laqZJn6ysOlLGLiIhX2LfP\nfcGZzz/Pua1CBZgzB2JiPFeXpyhjFxGRYmvBArj9dvjrr5zb2raFDz4oOR+3Wlh0Kt7HKOMzp16Z\nUZ/MqVdmzu7TiRNw221w0005Q93hgAcegPh4DfVLoWfsIiLiEWvXwtChsHNnzm3Vq7s/arVTJ8/V\nVdzZnrHv3r2bW2+9lUOHDuFwOPjnP//JuHHjcm0THx9Pnz59qFOnDgD9+vXj3//+d+5ClbGLiBRr\nq5YsYdnUqThSUvl1VxCf7xpHMj2y7x84EKZPh7JlPVikF/HajD0gIIDJkycTFRVFcnIyLVq0oFu3\nbjRo0CDXdh07dmTRokV2lyMiIh6waskSPr/7bp456+n5AHYSBzhL92D6dPc14B0Oz9XoK2zP2KtU\nqUJUVBQA4eHhNGjQgH379uXZTs/GC4cyPnPqlRn1yZx6dW4LJ03NNdQBPmAn7cpP46ef3Bei0VAv\nHEX64rmEhAR++OEHWrdunet2h8PBmjVraNq0Kd27d2fLli1FWZaIiNgkM9Pippu+YuPX3+V7f+tG\np6lVq4iL8nFF9uK55ORkbr75ZqZMmUJ4eHiu+5o3b87u3bsJDQ1l6dKl9O3bl9/OvtL/GbGxsUSe\n+QifiIgIoqKiiI6OBnL+UtZa64tZZ/GWerxxHR0d7VX1aF081mlpaSxdupup0ybjytzM1eTPFRLs\nFfV6wzrr+4SEBAqiSC5Qk56eTs+ePbnhhhu45557Lrh97dq12bhxI+XKlcu+TS+eExHxfvv37+e5\nSa/w6quvk5lx9MytVQinC935hg/4M3vbh+vW5fopU7i2R4/8d1bCXercs/1UvGVZ3HbbbTRs2PCc\nQ/3gwYPZxa9fvx7LsnINdTF39l9+cn7qlRn1yVxJ7tXGjRvpP2gg1arXZOqUZ88M9ebAf4EEwpqP\nI+D/OtKnWVVuu7IOj8bEaKjbxPZT8atXr2bOnDk0adKEZs2aAfDss8+ya9cuAEaNGsX8+fN57bXX\n8Pf3JzQ0lHnz5tldloiIFNCpU6f43//+x7Tp09i4fuOZW51AP+AeoB2BFXfT8+53aNxuH1CbhFbd\naJjSmPtuuc9jdfs6XSteREQuyrZt25j+2nTefvttjicdP3NrGeB24E4gEkdwEs3/sZzusb/gPOvc\ncMKxBIY0GULXOl2LvvBixmvfxy4iIsVfWloan3zyCVNfncrqVavPuqclMBoYCISCM51aHeK5+d7V\nhJdO90yxJZyuFe9jSnLGd7HUKzPqkzlf7NWWLVu4/4H7qVq9KgMGDHAPdUcwMBLYAKwHRgDBlL9q\nI7e/OY3YCfHnHeo/rvuxaIovofSMXUREcklMTGTu3Lm8+dabbNq4Kft2R2A9rLTxYA3GferdrVSd\nzfS46yuuaPZXPnuToqaMXUREyMjIYPny5bz51pssXrSY9DT3M26/wGDw70Nmyt3ANUDO5eFCq+/g\nulFf0bR93quJnosydnPK2EVE5KJYlsWGDRt47/33eH/e+xw+cNh9hwPCKjUh5cQYMk8Ng7SQXI8L\nrbWVbiNbmderAAAgAElEQVRWEXWt+UCXoqOM3cf4YsZnF/XKjPpkrrj0avPmzTz8yMNE1omkVatW\nTHl5CocPHCasQllK1bgd/LZx8tCPWKdGA1lD3UWZy3/m5knTeeDteQUa6srY7aVn7CIiJcDvv//O\n3Llz+e/7/2Xblm3Zt4dEhFLqsms5dvg2Th7px9mn2gHwS6Vy003EjPiW2o2OIt5PGbuIiA+yLIuf\nf/6Zjz7+iA8/+pBff/k1+77A8EAq12/B8eODSUoYBhnheR7vDE2kXvS3XB/7A2UrphZaXcrYzSlj\nFxEp4TIzM1m7di0fffQRH33yEbsTdmffFxASQOUrriI1rT9HEmLZ/X2VfPZgEVpjBy16bqTjTdvw\n89eTqeJIg93HxMfHZ39ikJyfemVGfTLniV4dP36cL774goWLF7L408UcPZJzujy4dDAV6zXjVFpv\njiYMZs+mGvnuwxGaSM1WP9D5lk3UvPx4vtsUph/X/ahn7DbSYBcRKUYsy+KXX35hyZIlLFqyiPXr\n1pOZkZl9f1jFUpS+rC0pJ28maU8/dn9fNv8d+aVStv5WWvbaROvrEnD66dm5r1DGLiLi5Q4fPkx8\nfDxxn8Wx9LOlHNx3MPs+h8NB6WqROAM6kXy8H+lHu4EVkP+OnOmUrrONhtG/cG3fHYSEZRTRb5BD\nGbs5ZewiIj7i2LFjrFy5ki+++oLlXyzP9Sp2gIDQUgSUvob01J6kHxtA0p7K595ZQAoRdbbToMNv\ntOu1nbDSaTZXL56mwe5jlIeaU6/MqE/mLrVXhw8fZu3ataxctZLlXy1n84+bcblc2fc7nAE4Q5ri\nSu+GlXYz6SlRpKec+zIkfqUPUeWq32jc8TeaR+8mINC7znYqY7eXBruISBHKzMxky5YtrFmzhq9X\nf803q7/hz9///NtW/uBsBa7rgM5YrmvIPBl0zn06QhOJiPyDOs3/4OquCVSpdcLW30G8mzJ2EZEC\nWrVkCcumTsU/NZWMoCCuGzeOa3v0wLIstm//gyVLvid+5Xds+mk9+3ZvICMj+W97CAVaAW2AaKAd\nEHaOn+bCP+IgEbX2UOuqvTS5NoGa9Y/Z98sVMmXs5pSxi4jYIDUVEhPh2DH3fxMT4fBhOHLE/fXb\nxiWUWXM3b53cmf2Ygcu+pSc1OMEeIL+hWxNoe9ZXEyCfF7w5MvErdYTwKoeoUm8/dZvtoWGr/YTp\nc87lPDTYfYzyUHPq1flNnzCBla+8QsDp06QHB9Pxrru4Y8KEc26fmQm7d8OuXbBvn3voHT0KSUnu\nr+PHITkZUlLcwzItDdLTISMj91dmpvvLssDlcv83S9b3lpX/7X+/L7//nv2V321/vz+vdGAHsBnY\nwtVM5zsO5tpiHkm0JIkNAFQCWpz5aga0Bqrl3qUzHb/wg4SUT6Rs1cNUqXuIWg0PUrfxXwSHZuJr\nlLHbS4NdRPKYPmECPz3zDB9knHk71MmT3P7kM3SeDxnlJnD4sPsZ7MmT7iGdnn6+QVgcnQb+AHbi\nHuI7z/o+AfdwdzvXCfMwGgGfA1Uh4BR+IScILHWCkIiDlCq/g3LVEqkceZRq9RK5rNYJ/Pxs/HWk\nRFHGLlLCpafDt9/C8uUnWbv2T3buPEjt33vzBX/PgaELZfiK74AqQKkir7XgLOAkcAjYC+w5x9f+\nM9ueg7MajoDL8QusS4vUlaxL25Fnkx51G1H5XyOpVD2Z4NCif7+4t1LGbk4Zu4hc0ObNp3jzzV9Z\nuXIzf/zxCyeSd+DK3I37Wejh7O0an+PxpUgC6p9ZhQGXARWAsme+InA4yuLnVw5//3IEBEQQEBBK\ncHAoQUGhhIaGEBoaSmhoKCEhIYSEBBIQ4EdwsJOgIAdBQRAY6P7y9wc/P3A4XFhWOi5XOpaVTmZm\nGpBORsZp0tNPkJp6grS0nK/U1BOkph7n5KkjnDhxkOTkIySfPMLJ5COknEwkI/3CH2jicDoIK1+G\niKplqVijLBWqV6BctXKUq1aOspeVJSA4Jw/fv7YlY175i9f2JWbfNrpqWarf1oTLitGL2sR3aLD7\nGOXG5ny9V3v2nOTFFzeydOk6EnatJfXUz7hPL7vO8YhA3C/qqsoJ1nL26eYsyTjxC6qIK/0olusk\n7lPTuZ+tWlZOXn769MXV7HQ6cTgd7v86HGRmZJKZWbgZs1+gH8GlgylVoRSlK5amTKUyRFSKoEzF\nMpSuWJrSFUsTXj4cP3+zc+OXtanPfmDQgvVYR5NxlAun9I2tuKxN/Qs+tqRSxm4vDXYRH/Hzz0d5\n+ul4VsR/wZEjq7Fcm4G/D0U/oAHQ6MxXfSAS/CsTEOFHqSp/Ua7qXyQensHIHz9h5lkXSRnp56Ds\n4Pb8e3gnLMsi9WQqJ/46wanjpzidfJpTJ05x+sRpUk6kkHIiJfv2tNQ0MlIzSE9NJ+O0+7+ZaZmk\nn07HlekCCyyX+3Sjy+UCF2T+rW6nvxOnn9P93zPf+wX4ERgSSGCo+ysoJIig0CCCw4IJCg0itHQo\nYRFhhJYJzfUVEByAw/G3zxwvoMva1OeyNvVJ2JRAZFRkoe5b5GIpYxcpppKT03n88VV8+OFn7N33\nJa7MTeTOhf1wn1S/BvcrsZsD9Qgod4zSVfdTud5+ajY4TL0mhylfJSXP/jfPXkHKgnUEp2eQFhhE\ncN+WNBreybbfx7IsLJeV679OP/cQL+xBLJ6jjN2cMnaREmDr1uPce+9SVq76mJSTnwNJZ90biPsC\nJ12AjsDVOMNTiKj1J9Ua7KV+i7Vc0WwhAUFmp7YbDe/Ezj412XF0BzH1Ygr9d/k7h8OBw08DXKSg\nNNh9jK/nxoWpuPTqhx9OMHbsAtZ/9x7paSvInX03BHoAXYF2+JdNomK9P6nTfBdNOrxKpWonC/zz\nk7YlQb0C76ZE0Kl4M8rY7aXBLuKF9u1L55///JzlX/yXtNRPgVNn7nECHYA+QB8cQVUoW3cH9Vru\n4OrrXqVi1byn1EWkZNFg9zHF4Rmot/C2XmVmwqOP7mD6a6+TdOxdzn77GbQHBgP98I/IpFrUFlpc\n9wWNWh3E6Wfva0/KXFHG1v37Ej1bN9P0mqaeLsGnabCLeNimTWkMH/4JP/44A8v66qx7GuIe5rcQ\nUN6f2q220KbX+0Q2SDzHnkRE3Of1xIfEx8d7uoRiw5O9crlg0qS/iIh4imbNarFp04AzQz0EiAXW\n4giLp3aX1gx7bQEPz5/JoH+t8chQT9qWdOGNBHBn7HJhP6770dMl+DQ9YxcpQidPwsiR2/lw/ktk\nZrxDTnbeCBgF/v2o1HgPbW/8kcbtPsOpP71F5CJpsPsYb8uNvVlR9mrPHhg06Du+Wf0MWIvIeb/5\nDcB9+Je/nMYxG+g66C1Cw73ruuLK2M0pYzejjN1eGuwiNtq6Ffr3X8/PP08Alp65NRAYAo6xlL8q\nk+hbNnDVNV97rkgR8Sk60edjlLGbs7NXv/0GjRuvp0GDHvz8c2vcQz0M+BcEbqF2l0HcNfcz7pr6\nKVdds9+2OgqDMnZzytjNKGO3l56xixSiP/6Am276lU2bHgQ+PXNrGHAXjrDhNL7hN24YPlcf4yki\nttFg9zHK2M0VZq8SE+Gmm/YTH/84MAv3J6iFAWNxlhpCq/6/0HXgPPz8i9/nHShjN6eM3Ywydntp\nsIsUQHo6jBp1grff/g+W9SKQgvvDV8bgDL+D1gO20HXQfNsvIiMikkUZu49Rxm6uoL2aNs0iLOy/\nzJ5dH8t6CvdQ74sj9GtaDevCwws+4rohW4r9UFfGbk4Zuxll7PbSM3aRi7RhA/Tq9RMHDtwFZL2a\nvRX4P02jXqn0Gb2cgEDX+XYhImIbDXYfo4zd3MX26uRJuOmmYyxb9igwHXeOXhEcz1K9zeX84741\nlC6XakOlnqWM3ZwydjPK2O2lwS5iYOpUi3vv+4DMjLuBQ7hTrLGUqtOff/zfd9Sot8LDFYqIuClj\n9zHK2M2Z9OrPP6FOnT3cfXcfMjMG4R7q7XGGfUHMg824d9YX1Kjn2xm0MnZzytjNKGO3l56xi5zD\nww+7eO65N7CsB4HjQGlwTOTymDrcfM/XBAYpRxcR76PB7mOUsZs7V6+2boUuXXawb99IYOWZW/sQ\nWuNubnn8B6rVXVdUJXoFZezmlLGbUcZuLw12kbM89JDFpElvAPfifvtaJfD/D9fEBnDdLStxODxc\noIjIBShj9zHK2M2d3av9+6FOnQNMmtQLGI17qA+izOX/4645+4kZvK3EDnVl7OaUsZtRxm4v2wf7\n7t276dSpE40aNeKqq65i6tSp+W43btw4Lr/8cpo2bcoPP/xgd1ki2WbOhOrVP+aPPxoDS4AICJhF\nx7t6cs8bKyhf+dSFdiEi4jVsPxUfEBDA5MmTiYqKIjk5mRYtWtCtWzcaNGiQvU1cXBw7duxg+/bt\nfPvtt4wZM4Z160pWjllYlLGba9Mmmo4dT7Jq1Vhg9plbu1Kq9r8Y/txGylY67cnyvIYydnPK2M0o\nY7eX7YO9SpUqVKlSBYDw8HAaNGjAvn37cg32RYsWMWzYMABat27NsWPHOHjwIJUrV7a7PCmBVi1Z\nwodPTWXLd0dJcf1KOCdJJhicz9Dilhr0GLG6xJ52F5Hir0gz9oSEBH744Qdat26d6/a9e/dSo0aN\n7HX16tXZs2dPUZbmM5Sxn9+qJUuYd+vdTPt2GV+6NvAdJ+lOAGXCHiZ2upOet23WUP8bZezmlLGb\nUcZurws+Y4+NjaVixYq0a9eONm3aXPKz6OTkZG6++WamTJlCeHh4nvstK/cHZTj0r6sUsrQ0eGrw\nZJYn7cx1+wekM6DBu9S6YrCHKhMRKTwXHOxvv/02v/76K+vWreOxxx5j48aN9O/fn/vvvx+n0+wJ\nf3p6Ov369WPIkCH07ds3z/3VqlVj9+7d2es9e/ZQrVq1PNvFxsYSGRkJQEREBFFRUdmZctYzVa21\nzm89e3Y8d931By1TVpMfR+IJEjYlZGekWc+8Svqamu6M3Vvq0do31uD+/6i3/PvgLeus7xMSEigI\nh/X3p8p/s27dOizLok2bNgB8+OGHNG3alFWrVjFy5MgL/gDLshg2bBjly5dn8uTJ+W4TFxfHK6+8\nQlxcHOvWreOee+7J8+I5h8OR51m9iIm33oKRt/8PyzWCqznJd/lsM6hlXa54fkiR1+btdh7dyY6j\nO4ipF+PpUsRHJBxLYEiTIXSt09XTpXi9S517F3zG/sUXXxAQEMDLL79MaGgoNWvWpEKFCsan5Fev\nXs2cOXNo0qQJzZo1A+DZZ59l165dAIwaNYru3bsTFxdHvXr1CAsLY/bs2efbpZzH2X8FC4wYkcns\n2f8H/AeArUQzOGgb76Xuz95mdNWylL6xlYcq9H5J25KgnqerKB7OPusj5/bjuh812G10wcHet29f\nUlJSePDBB7NvmzlzZq4Xu51P+/btcbkufE3tV155xWh/IiZOn4bWrf/ip58GAcsBP3A+R4s7qhBe\nNY5BC9ZjHU3GUS6c0je24rI29T1dsohIobjgqXhvoVPxYmrnTmje/EeOH78R+AOoiDPsdYb8Zxe1\nGxzzdHnFik7FS2HTqXhzlzr3dElZ8SlLl8IVVyzg+PG2uIf61YTWmMc9c7ZqqItIiaDB7mNK8vvY\nX3zRonv3F8jM7If7Wu9DqdnhGe6b/TWlItLybK/3HJvR+9jN6Zgyo/ex20uf7iY+4fbb05k58w5g\npvsGx5NcM6I+MUPWeLQuEZGipsHuY0raK+JdLrj22kRWr/4H8CUQDAGvc+Pjp2nS7tfzPlavXjaj\na8Wb0zFlRteKt5cGuxRbJ09Co0a/8+efPYCtQGWcYbMZPuVXqtc97unyREQ8Qhm7jykpGfu+fVCt\n2vf8+Wcb3EO9MUGV/se4dzYZD3XloWaUsZvTMWVGGbu9NNil2Nm6FerUWUZSUkfgENCNsldM5953\nVlKmfKqnyxMR8SgNdh/j6xn72rVw1VXvkZraE0gGbqFmhwe4a/oXBAZnXtS+lIeaUcZuTseUGWXs\n9lLGLsVGXBz07PkilnX/mVvGc9VN19JvbP4f7CIiUhLpGbuP8dWMffZsFz163H/WUH+ea25rTb+x\nmy55n8pDzShjN6djyowydnvpGbt4vSlTMrnnntuB2YA/ON6ky3gn7Xud/+1sIiIlkZ6x+xhfy9if\nfjqde+4Zgnuoh4DffHo/nkH7Xr8XeN/KQ80oYzenY8qMMnZ76Rm7eK1///s0zzwzAFgElIKADxkw\ncSdXtjjk6dJERLyWnrH7GF/J2P/1rxSeeaY37qFeFoIWMPTlrYU61JWHmlHGbk7HlBll7PbSM3bx\nOmPHHueVV3oCXwOVcATPJ3bKBmrW14AREbkQDXYfU9wz9tGjjzFjxnXAd0A1HCHzGTFtjS2XiFUe\nakYZuzkdU2aUsdtLp+LFa4wZc/ZQr40zdCEjp6/Wdd9FRC6CBruPKa4Z+7hxSbz+egzuoV4HZ9jH\n/PP1FVSNPGHbz1QeakYZuzkdU2aUsdtLp+LF4x588DjTpsUA64HaOMM/ZNRrX1CperKnSxMRKXY0\n2H1MccvYH3/8OM8/fz3wLRCJI2w+t7/6JZWqn7T9ZysPNaOM3ZyOKTPK2O2lU/HiMc89d4Inn7wB\nWAvUxBGygJHTVlClpv1DXUTEV2mw+5jikrG/8koK//d/PYA1QA0IWkTsyyuoWtu+TP3vlIeaUcZu\nTseUGWXs9tJglyL33nupjB17I+73qVeHwMXc+tJKvU9dRKQQaLD7GG/P2JcuzWDIkFuAZUBFCFjE\nLZO+pnbDo0Vei/JQM8rYzemYMqOM3V4a7FJk1q930aPHSOBjoAz4LaLfE99yedRhT5cmIuIzNNh9\njLdm7Dt2WLRtew+W9Q4QCs6F9Hj4F65qc8BjNSkPNaOM3ZyOKTPK2O2lwS62O3wYGjZ6jMzMaUAg\n8BGdxu7i6s57PF2aiIjP0WD3Md6WsZ88CZGRL5Ce9jTgB8yj5bBkru2709OlKQ81pIzdnI4pM8rY\n7aXBLrbJyIDIyP+SkvLAmVveokHvYLrH/uLRukREfJkGu4/xpoy9YaNlHDky4sxqMjU7RNJ//Lce\nrelsykPNKGM3p2PKjDJ2e2mwiy06d/6e7b/1AzKA+6nQpAPDJnzl6bJERHyeBruP8YaMffTo31mx\nojuQDAwmrFYso15YgtPLjjbloWaUsZvTMWVGGbu9vOyfWinuXn75MDNmXA8cBLoQUH4Cd7yyAP8A\nl6dLExEpETTYfYwnM/bFi08yfnwPYDsQhSN0JrdP/ZjQ8AyP1XQ+ykPNKGM3p2PKjDJ2e2mwS6HY\nsiWD3r0HAN8BkeA/nyHPL6Ji1RQPVyYiUrJosPsYT2Tsx45BVLPxWNYSoBw4FtPz/+Kp06jor/9+\nMZSHmlHGbk7HlBll7PbSYJcCycyEOnWmkZ72Cu6ryi2k7W2badF5t6dLExEpkTTYfUxRZ+xNmy4h\nMfGeM6tZ1L8hhW6DtxRpDZdKeagZZezmdEyZUcZuLw12uWSDBv3E5s0DARfwGBWbXsGA+9d4uiwR\nkRJNg93HFFXGPnnyAebN64n7veoDCa46mNufX+p171U/H+WhZpSxm9MxZUYZu72K0T/D4i1Wrkzh\n3nt7AbuBNjjDJzFq6kcEBOq96iIinqbB7mPsztj373fRucutwAbcb2t7n8HPLSCifKqtP9cOykPN\nKGM3p2PKjDJ2e2mwi7GMDKh/xZO4Mj8CSgOLiLkvnjqNEj1dmoiInKHB7mPszNgbN1lA8oknAAcw\njyY3J3DN9Qm2/Ty7KQ81o4zdnI4pM8rY7aXBLkaGDv2Frb/eemY1iSpXl+XGOzd6tCYREclLg93H\n2JGxz5x5lDlz+uB+Bfwggqv25bZnlxX6zylqykPNKGM3p2PKjDJ2e9k+2EeMGEHlypVp3LhxvvfH\nx8dTpkwZmjVrRrNmzXj66aftLkkuwubNGdz+z/7A70BzHGHPMWrKR/q0NhERL+Vv9w8YPnw4Y8eO\n5dZbbz3nNh07dmTRokV2l1IiFGbGfvo0tLj6AbC+BCqB31wGPbOQiAqnC+1neJLyUDPK2M3pmDKj\njN1etj9j79ChA2XLlj3vNpZl2V2GXIIGDd4h9fTLQAAwnw6jvuPypn95uiwRETkPj2fsDoeDNWvW\n0LRpU7p3786WLcXjOuPeqrAy9v79N5CQMOrMahq1otPp/I/thbJvb6E81IwydnM6pswoY7eX7afi\nL6R58+bs3r2b0NBQli5dSt++ffntt9/y3TY2NpbIyEgAIiIiiIqKyj71nDXQSvo6S0H2N3PmX3z4\nYQ8gFRhFWK2OXNvzORI25ZxqzPoHrDivD+w44FX1eOOamnhVPd6+zuIt9XjreseWHcTHx3v830tv\nW2d9n5CQQEE4rCI4D56QkECvXr34+eefL7ht7dq12bhxI+XKlct1u8Ph0Cn7IvDrr5k0bNQdrGVA\naxxhH3H3u+9Splzxu7KcFNzOozvZcXQHMfViPF2K+IiEYwkMaTKErnW6eroUr3epc8/jp+IPHjyY\nXfj69euxLCvPUJeikZYGzZs/eWaolwfnHAY+vUBDXUSkGLF9sA8aNIi2bduybds2atSowVtvvcWM\nGTOYMWMGAPPnz6dx48ZERUVxzz33MG/ePLtL8mkFydibRsVx+vRTuK8sN5f2t2+gftSRwirN6ygP\nNaOM3ZyOKTPK2O1le8Y+d+7c895/5513cuedd9pdhlzAHXcksPXXIYAFPE2NDkF0GbjV02WJiMhF\n8vipeClcl/I+9s8+O81rr90MJAI9CK52M7c+uqKwS/M6es+xGb2P3ZyOKTN6H7u9NNhLuMRE6Nlz\nHLARqA0h07j9xQX4B+iFiiIixZEGu4+52Iy9QcO3ycx8EwgCPqDP/y2jXGXfuLLchSgPNaOM3ZyO\nKTPK2O2lwV6C9eu3hYMHsl7f8CqNbjxIVIf9Hq1JREQKRoPdx5hm7O+9d4qPPx4ApABDKVO/JTfd\ntcHO0ryO8lAzytjN6Zgyo4zdXhrsJdDu3XDrrXcDvwD1cYY/wcjnF+PU0SAiUuzpn3Ifc6GM3eWC\npk3n4nKdydWd7zHgqSWEl0krkvq8ifJQM8rYzemYMqOM3V4a7CVMTMwOEhOzPtxlMq2G/unTF6ER\nESlpNNh9zPky9tdfT+WLLwYAJ4CbqRjVghtiL3z9fl+lPNSMMnZzOqbMKGO3lwZ7CZGQAHfc8S/g\ne6A2/hFPcNuzn3u4KhERKWwa7D4mv4zd5YLmzRdgWVOBAPB7h8ETlxEUklnk9XkT5aFmlLGb0zFl\nRhm7vTTYS4C+ffeQmHjbmdVztL1tL5FXHvNoTSIiYg8Ndh/z94x97lwXn356K+7rwHenYrO2dBuk\nD3cB5aGmlLGb0zFlRhm7vTTYfdiBAzBkyAvACqASfqUnMuLpLzxdloiI2EiD3cecnbFfffX3uFz/\ndi+cbzDwqZUEh2Z4pjAvpDzUjDJ2czqmzChjt5cGu48aMSKFvXsHA+nAnbS4JZN6Tf7ydFkiImIz\nDXYfEx0dTVwczJ59H7AVaEDEFUPoedtPni7N6ygPNaOM3ZyOKTPK2O2lwe5jEhOhb99PgdeBQJyh\nr3LbpK88XZaIiBQRDXYfsWrJEv4dE8PAKo1omt6PcADHU9z02LYSeR14E8pDzShjN6djyowydnv5\ne7oAKbhVS5bw+d1388zOndm3DSCEza2TadQ6xYOViYhIUdMzdh+wbOrUXEMd4ANOcVXm+x6qqHhQ\nHmpGGbs5HVNmlLHbS4PdB/idTs339uA0vbVNRKSk0WD3ATsOBOV7e2qgkpbzUR5qRhm7OR1TZpSx\n20uDvZj7/ntYsnMcA6ib6/bRVctS+sZWHqpKREQ8RU/pirGTJ+GWWyApswdxQJcyL1Ox2s84wsIp\nfWMrLmtT39MlejXloWaUsZvTMWVGGbu9NNiLsfHjYds29/dWWA8mr4vm5W1jqVmmpmcLExERj9Gp\n+GLq44/hzTdz1q+8AnXrwP6f93uuqGJGeagZZezmdEyZUcZuLw32YmjPHhg5Mmfdvz8MG+a5ekRE\nxHtosBczmZlw663uS8cC1KwJr78ODod7fVnjyzxXXDGjPNSMMnZzOqbMKGO3lwZ7MfOf/8CKFe7v\nnU6YMwfKlvVsTSIi4j002IuRDRvg0Udz1g8/DB065N5GGbs55aFmlLGb0zFlRhm7vTTYi4mUFBgy\nBDLOXEzummvgscc8W5OIiHgfDfZi4sEHc97aFh7uPgUfEJB3O2Xs5pSHmlHGbk7HlBll7PbSYC8G\nli1zv50ty8svQ926595eRERKLg12L3f0KAwfnrPu3RtGjDj39srYzSkPNaOM3ZyOKTPK2O2lwe7F\nLAvGjIF9+9zrihXdF6XJemubiIjI32mwe7G5c+F//8tZv/kmVKp0/scoYzenPNSMMnZzOqbMKGO3\nlwa7l9q9G+64I2d9223Qp4/n6hERkeJBg90LuVzuXD3pTLRZuzZMnmz2WGXs5pSHmlHGbk7HlBll\n7PbSYPdC06bBl1+6v3c64b//hVKlPFuTiIgUDxrsXmbLFvd71rM8+CC0a2f+eGXs5pSHmlHGbk7H\nlBll7PbSYPciaWnuq8ulprrXUVEwYYJHSxIRkWJGg92LPPEE/PCD+/ugIPfV5QIDL24fytjNKQ81\no4zdnI4pM8rY7aXB7iXWrIHnnstZT5wIjRp5rh4RESmeNNi9QHIyDB3qfjU8QKdOcPfdl7YvZezm\nlIeaUcZuTseUGWXs9tJg9wL33Qe//+7+vkwZePtt96vhRURELpbGh4ctWwZvvJGzfvVVqFnz0ven\njN2c8lAzytjN6Zgyo4zdXrYP9hEjRlC5cmUaN258zm3GjRvH5ZdfTtOmTfkh69VjJUBSkvuKcllu\nugluucVz9YiISPFn+2AfPnw4n3322Tnvj4uLY8eOHWzfvp033niDMWPG2F2S17jvPtizx/19hQrw\n2nvOF+YAABT8SURBVGsF/4AXZezmlIeaUcZuTseUGWXs9rJ9sHfo0IGyZcue8/5FixYxbNgwAFq3\nbs2xY8c4ePCg3WV53NKlMGtWznr69At/wIuIiMiFeDxj37t3LzVq1MheV69enT1ZT2N9VGIijByZ\ns+7fH/7xj8LZtzJ2c8pDzShjN6djyowydnv5e7oAAMuycq0d5zgfHRsbS2RkJAARERFERUURHR0N\nQHx8PECxWI8fD/v2udeVKkXz6quFs/9T6afIkvUPTNapQa3zrg/sOOBV9XjjmjMv5PSWerx9ncVb\n6vHW9Y4tO4iPj/eKf4+9aZ31fUJCAgXhsP4+VW2QkJBAr169+Pnnn/PcN3r0aKKjoxk4cCAAV155\nJStXrqRy5cq5C3U48vwBUBx9+in07p2z/vhjuPHGwtn3ybSTjF06lpplCvCyepGz7Dy6kx1HdxBT\nL8bTpYiPSDiWwJAmQ+hap6unS/F6lzr3PH4qvnfv3rz77rsArFu3joiIiDxD3VccPQr//GfO+pZb\nCm+oi4iIQBEM9kGDBtG2bVu2bdtGjRo1eOutt5gxYwYzZswAoHv37tSpU4d69eoxatQopk+fbndJ\nHjNuHBw44P6+ShWYOrXwf4YydnPKQ80oYzenY8qMMnZ72Z6xz50794LbvPLKK3aX4XELFsB77+Ws\nZ8yA8uU9V4+IiPgmj5+KLwmOHIHRo3PWt96aO2cvTHofuzm959iM3sduTseUGb2P3V4a7EXgrrvg\n0CH391Wrwssve7YeERHxXRrsNps/Hz74IGf95ptwnuv1FJgydnPKQ80oYzenY8qMMnZ7abDb6NAh\nOPsKucOHQ/funqtHRER8nwa7TSwL7rjDna8DVK8OL71k/89Vxm5OeagZZezmdEyZUcZuLw12m/zv\nf/DRRznrmTMhIsJz9YiISMmgwW6DAwfcz9az3H47xBTRhbuUsZtTHmpGGbs5HVNmlLHbS4O9kFmW\n+61tR4+61zVrwgsveLYmEREpOTTYC9n778PChTnrWbOgdOmi+/nK2M0pDzWjjN2cjikzytjtpcFe\niPbtg7Fjc9ZjxkBXfc6BiIgUIQ32QmJZMGqU+7PWASIj4fnni74OZezmlIeaUcZuTseUGWXs9tJg\nLyTvvguLF+esZ8+G8HDP1SMiIiWTBnsh2LsX7r47Zz12LERHe6YWZezmlIeaUcZuTseUGWXs9tJg\nLyDLcr+dLenM2cq6dWHiRM/WJCIiJZcGewHNng1Ll7q/dzjc67Awz9WjjN2c8lAzytjN6Zgyo4zd\nXhrsBbBrF4wfn7O++27o0MFz9YiIiGiwXyLLgpEj4fhx9/ryy+GZZzxbEyhjvxjKQ80oYzenY8qM\nMnZ7abBfojffhOXL3d87HPD22xAa6tGSRERENNgvRUIC3Hdfzvq++6BtW4+Vk4sydnPKQ80oYzen\nY8qMMnZ7abBfJJcLbrsNkpPd6yuvhCef9GxNIiIiWTTYL9Lrr8NXX7m/dzrdp+BDQjxaUi7K2M0p\nDzWjjN2cjikzytjtpcF+EX7/HR54IGf9r39B69aeq0dEROTvNNgNuVwwfDikpLjXDRvChAkeLSlf\nytjNKQ81o4zdnI4pM8rY7aXBbujVV2HVKvf3fn7uU/BBQR4tSUREJA8NdgM7dsCDD+asH3oIWrb0\nXD3no4zdnPJQM8rYzemYMqOM3V4a7BeQmQmxsXDqlHvduDE8+qhHSxIRETknDfYLmDoVVq92f+/v\n7/2n4JWxm1MeakYZuzkdU2aUsdtLg/08tm2Dhx/OWT/yCDRv7rl6RERELkSD/RyyTsGfPu1eR0Xl\nHvLeShm7OeWhZpSxm9MxZUYZu7002M/hpZdg3Tr39wEB7lPwgYEeLUlEROSCNNjzsWVL7hfIPfYY\nNC0mf2AqYzenPNSMMnZzOqbMKGO3lwb73/x/e/cfW1V9/3H8dYUORBzIJqWjmEJ/rKWF2zKUGUas\n0YrtQlODTLK54WSTKcwQnZItWeLkZ7O5TdNtRYYGlkyJDoXE0qiLnT8Ay4CZmKK0SLNSoV8B2fhp\nS/l8/zhAvWtL35WenntPn4+/zod+bvv2+KZv7nnde+7Zs94l+M8+89bf+EbsW90AAIhnDPb/8etf\nSzt2eMdf+pJ3CT4pKdCSeoWM3Y481IaM3Y6esiFj9xeD/XPefz/2NrGPPSbl5QVVDQAAvcdgP6+t\nzbsE39rqra+/PvYDXxIFGbsdeagNGbsdPWVDxu4vBvt55eXSzp3e8ZAh3iX4wYMDLQkAgF5jsEt6\n7z3p8cc71kuXep/elojI2O3IQ23I2O3oKRsydn8N+MHe2updgm9r89bf/Kb00EOBlgQAwBc24Af7\nihXSv/7lHQ8d6l2CHzQo0JIuCxm7HXmoDRm7HT1lQ8burwE92HftkpYv71ivWCF9/evB1QMAwOUa\nsIP9s8+kefO8G9JI0vTp0oMPBltTXyBjtyMPtSFjt6OnbMjY/TVgB/vjj3vvW5ekK69M/EvwAABI\nA3Sw19ZKq1Z1rMvLpYyM4OrpS2TsduShNmTsdvSUDRm7vwbcYD9zxrsEf+6cty4slBYuDLQkAAD6\nzIAb7L/8pfTBB97x8OHSM89IV4ToLJCx25GH2pCx29FTNmTs/grRSOvZ1q3SE090rH/zG2n8+ODq\nAQCgrw2YwX7qlHcjGue8dVGRdN99gZbkCzJ2O/JQGzJ2O3rKhozdX/0y2Kurq5Wdna3MzEyVl5d3\n+npNTY1GjBihgoICFRQUaNmyZX1ew89/LtXXe8df/rK0dq0UifT5jwEAIFC+f8xJe3u7Fi1apNdf\nf11jx47V9ddfr9LSUuXk5MTsu+mmm7R582ZfavjHP6SnnupY/+530rhxvvyowJGx25GH2pCx29FT\nNmTs/vL9GXttba0yMjKUlpampKQkzZ07V5s2beq0z124Rt7HTpyQfvjDjnVJSewaAIAw8X2wNzc3\na9znnh6npqaqubk5Zk8kEtHWrVsVjUZVUlKiurq6Pvv5jz4q7d/vHY8cKa1ZE+5L8GTsduShNmTs\ndvSUDRm7v3y/FB8xTNEpU6aoqalJw4YN05YtW1RWVqa9e/d22nfPPfcoLS1NkjRy5Ejl5+ersLBQ\nkpfTS4pZ79wp/elPhecfXaMHHpC+9rXu9yf6+nTbaV1w4RfMhUuDrDuvDzUciqt64nGt6xRX9cT7\n+oJ4qSde1w11DaqpqYmr35/xsL5w3NjYqMsRcX5dAz9v+/bteuyxx1RdXS1JWrlypa644gotWbKk\n28eMHz9eO3fu1KhRozoKjUR6dbn+v/+V8vKkpiZvXVYmbdwY7mfrJ1tP6qdbfqrrRlwXdCkIiX1H\n96nhaINmZswMuhSEROOxRt09+W7dOuHWoEuJe72dexf4fil+6tSpqq+vV2Njo1pbW7VhwwaVlpbG\n7GlpablYfG1trZxzMUP9i3jooY6h/pWvSJWV4R7qAABI/TDYBw8erIqKCs2cOVMTJ07UXXfdpZyc\nHK1evVqrV6+WJL344ouaNGmS8vPztXjxYj3//POX9TO3bPHeznbBH/8oJSdf1rdMGGTsduShNmTs\ndvSUDRm7v3zP2CWpuLhYxcXFMX+2YMGCi8cLFy7Uwj66Yfunn0o/+lHHes4c6Tvf6ZNvDQBA3Avd\nnecWL5Y+/tg7Hj3ae7Y+kPA+djvec2zD+9jt6Ckb3sfur1AN9s2bpfXrO9aVldJXvxpcPQAA9LfQ\nDPbDh2Pv/f6970l33BFcPUEhY7cjD7UhY7ejp2zI2P0VisHunPSTn0gtLd46JSX2FrIAAAwUoRjs\nf/2r9Le/dazXrJEu891yCYuM3Y481IaM3Y6esiFj91fCD/amJunzL6i/7z7p298Orh4AAIKU0IP9\n3DnvA13+cz4CnDBBeuKJYGsKGhm7HXmoDRm7HT1lQ8bur4Qe7H/4g/T3v3vHkYi0bp00fHiwNQEA\nEKSEHewffOB9ctsFjz4qfetbwdUTL8jY7chDbcjY7egpGzJ2fyXkYG9rk37wA+nMGW89aZL0q18F\nWxMAAPEgIQf7ypXSjh3ecVKS9Je/SEOGBFtTvCBjtyMPtSFjt6OnbMjY/ZVwg/2f/5SWLu1YL10q\nRbmqAwCApAQb7KdPS9//vnT2rLeePl362c+CrSnekLHbkYfakLHb0VM2ZOz+SqjB/otfeC+ak6Sr\nrvJeBT9oULA1AQAQTxJqsP/+9x3Hv/2tlJ4eXC3xiozdjjzUhozdjp6yIWP3V0IN9gtKSqQf/zjo\nKgAAiD8JN9hHjZL+/GfvhjTojIzdjjzUhozdjp6yIWP3V8IN9spK79PbAABAZwk12L/7XWnOnKCr\niG9k7HbkoTZk7Hb0lA0Zu78SarBXVARdAQAA8S2hBvs11wRdQfwjY7cjD7UhY7ejp2zI2P2VUIMd\nAABcGoM9ZMjY7chDbcjY7egpGzJ2fzHYAQAIEQZ7yJCx25GH2pCx29FTNmTs/mKwAwAQIgz2kCFj\ntyMPtSFjt6OnbMjY/cVgBwAgRBjsIUPGbkceakPGbkdP2ZCx+4vBDgBAiDDYQ4aM3Y481IaM3Y6e\nsiFj9xeDHQCAEGGwhwwZux15qA0Zux09ZUPG7i8GOwAAIcJgDxkydjvyUBsydjt6yoaM3V8MdgAA\nQoTBHjJk7HbkoTZk7Hb0lA0Zu78Y7AAAhAiDPWTI2O3IQ23I2O3oKRsydn8x2AEACBEGe8iQsduR\nh9qQsdvRUzZk7P5isAMAECIM9pAhY7cjD7UhY7ejp2zI2P3FYAcAIEQY7CFDxm5HHmpDxm5HT9mQ\nsfuLwQ4AQIgw2EOGjN2OPNSGjN2OnrIhY/eX74O9urpa2dnZyszMVHl5eZd7HnzwQWVmZioajWr3\n7t1+lxRqR/YfCbqEhHGo4VDQJSSEk/8+GXQJCYOesmmoawi6hFDzdbC3t7dr0aJFqq6uVl1dnZ57\n7jnt2bMnZk9VVZUaGhpUX1+vp59+Wvfff7+fJYVe28m2oEtIGGdOnAm6hITQfro96BISBj1lc/I4\n/1j0k6+Dvba2VhkZGUpLS1NSUpLmzp2rTZs2xezZvHmz5s2bJ0maNm2ajh07ppaWFj/LAgAgtAb7\n+c2bm5s1bty4i+vU1FS9++67Pe45cOCAkpOT/SwtlCKRiI7/33E1/acp6FISQvO/mzlXPTh86rBO\nf3Ka82RET/Xs6OmjOnOAKxt+8nWwRyIR0z7nXI+PS09PN3+/gW7fG/uCLiFhNLxB1mfxTNkzQZeQ\nMOgpG36f9yw9Pf0LPc7XwT527Fg1NXX867WpqUmpqamX3HPgwAGNHTu20/dqaOAvCwAAPfE1Y586\ndarq6+vV2Nio1tZWbdiwQaWlpTF7SktLtX79eknS9u3bNXLkSC7DAwDwBfn6jH3w4MGqqKjQzJkz\n1d7ervnz5ysnJ0erV6+WJC1YsEAlJSWqqqpSRkaGrrrqKj377LN+lgQAQKhF3P8G3AAAIGHF7Z3n\nXnjhBeXm5mrQoEHatWtXt/ssN8AJs6NHj6qoqEhZWVm67bbbdOzYsS73paWlafLkySooKNANN9zQ\nz1UGhxsk2fV0rmpqajRixAgVFBSooKBAy5YtC6DK4N17771KTk7WpEmTut1DT/V8nugnT1NTk26+\n+Wbl5uYqLy9PTz31VJf7etVTLk7t2bPHffjhh66wsNDt3Lmzyz1nz5516enpbv/+/a61tdVFo1FX\nV1fXz5UG65FHHnHl5eXOOedWrVrllixZ0uW+tLQ0d+TIkf4sLXCW/njllVdccXGxc8657du3u2nT\npgVRauAs5+qNN95ws2bNCqjC+PHmm2+6Xbt2uby8vC6/Tk95ejpP9JPn4MGDbvfu3c45544fP+6y\nsrIu+/dU3D5jz87OVlZW1iX3WG6AE3afv8HPvHnz9PLLL3e71w2w1IUbJNlZ/y4NtB7qyowZM3TN\nNdd0+3V6ytPTeZLoJ0kaM2aM8vPzJUnDhw9XTk6OPv7445g9ve2puB3sFl3d3Ka5uTnAivpfS0vL\nxXcRJCcnd/s/OxKJ6NZbb9XUqVO1Zs2a/iwxMJb+6O4GSQON5VxFIhFt3bpV0WhUJSUlqqur6+8y\nEwI9ZUM/ddbY2Kjdu3dr2rRpMX/e257y9VXxPSkqKtKhQ50/NGHFihWaNWtWj48fKDc46O48LV++\nPGYdiUS6PSfvvPOOUlJS9Mknn6ioqEjZ2dmaMWOGL/XGi768QVLYWf6bp0yZoqamJg0bNkxbtmxR\nWVmZ9u7d2w/VJR56qmf0U6wTJ07ozjvv1JNPPqnhw4d3+npveirQwf7aa69d1uMtN8AJg0udp+Tk\nZB06dEhjxozRwYMHNXr06C73paSkSJKuvfZa3XHHHaqtrQ39YO/LGySFneVcXX311RePi4uL9cAD\nD+jo0aMaNWpUv9WZCOgpG/qpQ1tbm2bPnq27775bZWVlnb7e255KiEvx3eUwlhvghF1paanWrVsn\nSVq3bl2XTXHq1CkdP35cknTy5Em9+uqrl3xFb1hwgyQ7y7lqaWm5+HextrZWzrkB+Uu4J/SUDf3k\ncc5p/vz5mjhxohYvXtzlnl73VN+9tq9vbdy40aWmprqhQ4e65ORkd/vttzvnnGtubnYlJSUX91VV\nVbmsrCyXnp7uVqxYEVS5gTly5Ii75ZZbXGZmpisqKnKffvqpcy72PO3bt89Fo1EXjUZdbm7ugDpP\nXfVHZWWlq6ysvLhn4cKFLj093U2ePLnbd2AMBD2dq4qKCpebm+ui0ai78cYb3bZt24IsNzBz5851\nKSkpLikpyaWmprq1a9fSU13o6TzRT5633nrLRSIRF41GXX5+vsvPz3dVVVWX1VPcoAYAgBBJiEvx\nAADAhsEOAECIMNgBAAgRBjsAACHCYAcAIEQY7AAAhAiDHQCAEGGwAwAQIgx2AABCJNAPgQEQv9rb\n27VhwwZ99NFHGjdunGpra/Xwww9rwoQJQZcG4BJ4xg6gS++9955mz56tCRMm6Ny5c5ozZ87FTwkE\nEL8Y7AC6NGXKFA0ZMkTbtm1TYWGhCgsLdeWVVwZdFoAeMNgBdGnHjh06fPiw3n//fY0fP15vv/12\n0CUBMCBjB9Cl6upqJScna/r06XrppZc0evTooEsCYMDHtgIAECJcigcAIEQY7AAAhAiDHQCAEGGw\nAwAQIgx2AABChMEOAECIMNgBAAiR/wdJvS3a8gK4wwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Function\n", "def f(x):\n", " return 1+np.cos(x)**2+x\n", "\n", "#Quadrature with 3 points (Simpson's rule)\n", "CompositeQuadrature( f, a=-0.5, b=1.5, N=5, n=2, xmin=-1, xmax=2, ymin=0, ymax=4 )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "- Using the Composite trapezoidal and Simpson's rules, determine the value of the integral (4.24565)\n", "\n", "$$ \\int_{-0.5}^{1.5}(1+\\cos^2x + x)dx $$\n", "\n", "- Take the previous routine CompositeQuadrature and the above function and explore high-order composites quadratures. What happens when you increase the number of points?\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "\n", "An experiment has measured $dN(t)/dt$, the number of particles entering a counter, per unit time, as a function of time. Your problem is to integrate this spectrum to obtain the number of particles $N(1)$ that entered the counter\n", "in the first second\n", "\n", "$$ N(1) = \\int_0^1 \\frac{dN}{dt} dt$$\n", "\n", "For the problem it is assumed exponential decay so that there actually is an analytic answer. \n", "\n", "$$ \\frac{dN}{dt} = e^{-t} $$\n", "\n", "Compare the relative error for the composite trapezoid and Simpson rules. Try different values of N. Make a logarithmic plot of N vs Error." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- - -" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Adaptive Quadrature Methods" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculating the integrate of the function $f(x) = e^{-3x}\\sin(4x)$ within the interval $[0,4]$, we obtain:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Function\n", "def f(x):\n", " return np.exp(-3*x)*np.sin(4*x)\n", "\n", "#Plotting\n", "X = np.linspace( 0, 4, 200 )\n", "Y = f(X)\n", "plt.figure( figsize=(14,7) )\n", "plt.plot( X, Y, color=\"blue\", lw=3 )\n", "plt.fill_between( X, Y, color=\"blue\", alpha=0.5 )\n", "plt.xlim( 0,4 )\n", "plt.grid()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using composite numerical integration is not completely adequate for this problem as the function exhibits different behaviours for differente intervals. For the interval $[0,2]$ the function varies noticeably, requiring a rather small integration interval $h$. However, for the interval $[2,4]$ variations are not considerable and low-order composite integration is enough. This lays a pathological situation where simple composite methods are not efficient. In order to remedy this, we introduce an adaptive quadrature methods, where the integration step $h$ can vary according to the interval. The main advantage of this is a controlable precision of the result." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simpson's adaptive quadrature" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although adaptive quadrature can be readily applied to any quadrature method, we shall cover only the Simpson's adaptive quadrature as it is more than enough for most problems.\n", "\n", "Let's assume a function $f(x)$. We want to compute the integral within the interval $[a,b]$. Using a simple Simpson's quadrature, we obtain:\n", "\n", "$$\\int_a^bf(x)dx = S(a,b) - \\frac{h^5}{90}f^{(4)}(\\xi)$$\n", "\n", "where we introduce the notation:\n", "\n", "$$S(a,b) = \\frac{h}{3}\\left[ f(a) + 4f(a+h) + f(b) \\right]$$\n", "\n", "and $h$ is simply $h = (b-a)/2$.\n", "\n", "![](https://raw.githubusercontent.com/sbustamante/ComputationalMethods/bb0f137366b3d2bbfdd33425ad78be4003716703/material/figures/adaptive_quadrature.png)\n", "\n", "Now, instead of using an unique Simpson's quadrature, we implement two, yielding:\n", "\n", "$$\\int_a^bf(x)dx = S\\left(a,\\frac{a+b}{2}\\right) + S\\left(\\frac{a+b}{2},b\\right) - \\frac{1}{16}\\left(\\frac{h^5}{90}\\right)f^{(4)}(\\xi)$$\n", "\n", "For this expression, we reasonably assume an equal fourth-order derivative $f^{(4)}(\\xi) = f^{(4)}(\\xi_1) = f^{(4)}(\\xi_2) $, where $\\xi_1$ is the estimative for the first subtinterval (i.e. $\\xi_1\\in[a,(a+b)/2]$), and $\\xi_2$ for the second one (i.e. $\\xi_1\\in[(a+b)/2, b]$).\n", "\n", "As both expressions can approximate the real value of the integrate, we can equal them, obtaining:\n", "\n", "$$\\int_a^bf(x)dx = S(a,b) - \\frac{h^5}{90}f^{(4)}(\\xi) = S\\left(a,\\frac{a+b}{2}\\right) + S\\left(\\frac{a+b}{2},b\\right) - \\frac{1}{16}\\left(\\frac{h^5}{90}\\right)f^{(4)}(\\xi)$$\n", "\n", "which leads us to a simple way to estimate the error without knowing the fourth-order derivative, i.e.\n", "\n", "$$\\frac{h^5}{90}f^{(4)}(\\xi) = \\frac{16}{15}\\left| S(a,b) - S\\left(a,\\frac{a+b}{2}\\right) - S\\left(\\frac{a+b}{2},b\\right) \\right|$$\n", "\n", "If we fix a precision $\\epsilon$, such that the obtained error for the second iteration is smaller\n", "\n", "$$\\frac{1}{16}\\frac{h^5}{90}f^{(4)}(\\xi) < \\epsilon $$\n", "\n", "it implies:\n", "\n", "$$\\left| S(a,b) - S\\left(a,\\frac{a+b}{2}\\right) - S\\left(\\frac{a+b}{2},b\\right) \\right|< 15 \\epsilon$$\n", "\n", "and \n", "\n", "$$\\left| \\int_a^bf(x) dx- S\\left(a,\\frac{a+b}{2}\\right) - S\\left(\\frac{a+b}{2},b\\right) \\right|< \\epsilon$$\n", "\n", "The second iteration is then $15$ times more precise than the first one." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Steps Simpson's adaptive quadrature" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**1.** Give the function $f(x)$ to be integrated, the inverval $[a,b]$ and set a desired precision $\\epsilon$.\n", "\n", "**2.** Compute the next Simpsons's quadratures:\n", "\n", "$$ S(a,b),\\ S\\left(a,\\frac{a+b}{2}\\right),\\ S\\left(\\frac{a+b}{2},b\\right) $$\n", "\n", "**3.** If \n", "\n", "$$\\frac{1}{15}\\left| S(a,b) - S\\left(a,\\frac{a+b}{2}\\right) - S\\left(\\frac{a+b}{2},b\\right) \\right|<\\epsilon$$\n", "\n", "then the integration is ready and is given by:\n", "\n", "$$\\int_a^bf(x) dx \\approx S\\left(a,\\frac{a+b}{2}\\right) + S\\left(\\frac{a+b}{2},b\\right) $$\n", "\n", "within the given precision.\n", "\n", "**4.** If the previous step is not fulfilled, repeat from step **2** using as new intervals $[a,(a+b)/2]$ and $[(a+b)/2,b]$ and a new precision $\\epsilon_1 = \\epsilon/2$. Repeating until step 3 is fulfilled for all the subintervals." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Models of Universe\n", "\n", "From the Friedmann equations can be found the dynamics of the Universe, i.e., the evolution of the expansion with time that depends on the content of matter and energy of the Universe. Before introducing the general expression, there are several quatities that need to be defined. \n", "\n", "It is convenient to express the density in terms of a critical density $\\rho_c$ given by\n", "\n", "\\begin{equation}\n", "\\rho_c = 3H_0^2/8\\pi G\n", "\\end{equation}\n", "\n", "where $H_o$ is the Hubble constant. The critical density is the density needed in order the Universe to be flat. To obtained it, it is neccesary to make the curvature of the universe $\\kappa = 0$. The critical density is one value per\n", "time and the geometry of the universe depends on this value, or equally on $\\kappa$. For a universe with $\\kappa<0$ it would ocurre a big crunch(closed universe) and for a $\\kappa>0$ there would be an open universe. \n", "\n", "Now, it can also be defined a density parameter, $\\Omega$, a normalized density\n", "\n", "\\begin{equation}\n", "\\Omega_{i,0} = \\rho_{i,0}/\\rho_{crit}\n", "\\end{equation}\n", "\n", "where $\\rho_{i,0}$ is the actual density($z=0$) for the component $i$. Then, it can be found the next expression \n", "\n", "\\begin{equation}\n", "\\frac{H^2(t)}{H_{0}^{2}} = (1-\\Omega_0)(1+z)^2 + \\Omega_{m,0}(1+z^3)+ \\Omega_{r,0}(1+z)^4 + \\Omega_{\\Lambda,0}\n", "\\end{equation}\n", "\n", "where $\\Omega_{m,0}$, $\\Omega_{r,0}$ and $\\Omega_{\\Lambda,0}$ are the matter, radiation and vacuum density parameters. And $\\Omega_0$ is the total density including the vacuum energy. \n", "\n", "This expression can also be written in terms of the expansion or scale factor($a$) rather than the redshift($z$) due to the expression $1+z = 1/a$ and it can be simplified in several ways. \n", "\n", "For the next universe models, plot time($H_{0}^{-1}$ units) vs the scale factor:\n", "\n", "-Einstein-de Sitter Universe: Flat space, null vacuum energy and dominated by matter\n", "\n", "\\begin{equation}\n", "t = H_0^{-1} \\int_0^{a'} a^{1/2}da\n", "\\end{equation}\n", " \n", "-Radiation dominated universe: All other components are not contributing \n", "\n", "$$\n", "t = H_0^{-1} \\int_0^{a'} \\frac{a}{[\\Omega_{r,0}+a^2(1-\\Omega_{r,0})]^{1/2}}da\n", "$$\n", "\n", "-WMAP9 Universe \n", "\n", "\\begin{equation}\n", "t = H_0^{-1} \\int_0^{a'} \\left[(1-\\Omega_{0})+ \\Omega_{m,0}a^{-1} + \\Omega_{r,0}a^{-2} +\\Omega_{\\Lambda,0}a^2\\right]^{-1/2} da\n", "\\end{equation}\n", "\n", "\n", "You can take the cosmological parameters from the link \n", "\n", "http://lambda.gsfc.nasa.gov/product/map/dr5/params/lcdm_wmap9.cfm or use these ones: $\\Omega_M$ = 0.266,\n", "$\\Omega_R = 8.24e-5$ and $\\Omega_L = 0.734$. \n", "\n", "Use composite simpson rule to integrate and compare it with the analitical expression in case you can get it. \n", "The superior limit in the integral corresponds to the actual redshift $z=0$. What is happening to our universe? \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "- Using the Simpson's adaptive quadrature determine the value of the next integral with a precision of float32.\n", "\n", "$$\\int_0^4 e^{-3x}\\sin(4x)dx$$\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "Fresnel integrals are commonly used in the study of light difraction at a rectangular aperture, they are given by:\n", "\n", "$$c(t) = \\int_0^t\\cos\\left(\\frac{\\pi}{2}\\omega^2\\right)d\\omega$$\n", "\n", "$$s(t) = \\int_0^t\\sin\\left(\\frac{\\pi}{2}\\omega^2\\right)d\\omega$$\n", "\n", "These integrals cannot be solved using analitical methods. Using the previous routine for adaptive quadrature, compute the integrals with a precision of $\\epsilon=10^{-4}$ for values of $t=0.1,0.2,0.3,\\cdots 1.0$. Create two arrays with those values and then make a plot of $c(t)$ vs $s(t)$. The resulting figure is called Euler spiral, that is a member of a family of curves called [Clothoid loops](http://en.wikipedia.org/wiki/Vertical_loop).\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- - -" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Improper Integrals" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Although the previous integration methods can be applied in almost every situation, improper integrals pose a challenger to numerical methods as they involve indeterminations and infinite intervals. Next, we shall cover some tricks to rewrite improper integrals in terms of simple ones." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Left endpoint singularity" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assuming a function $f(x)$ such that it can be rewritten as\n", "\n", "$$ f(x) = \\frac{g(x)}{(x-a)^p} $$\n", "\n", "the integral over an interval $[a,b]$ converges only and only if $0 **Activity** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " \n", "Error function is a special and non-elementary function that is widely used in probability, statistics and diffussion processes.\n", "It is defined through the integral:\n", "\n", "$$\\mbox{erf}(x) = \\frac{2}{\\sqrt{\\pi}}\\int_0^x e^{-t^2}dt$$\n", "\n", "Using the substitution $u=t^2$ it is possible to use the previous methods for impropers integrals in order to evaluate the error function. Create a routine called `ErrorFunction` that, given a value of $x$, return the respective value of the integral.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- - -" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }