{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Approximation au sens des moindres carrés" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Importation d'un nuage de points" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'H:\\\\Enseignement\\\\Formations_Python\\\\Ecole_doctorale\\\\ED-SPI-Python-juin19\\\\19-06-14_Vendredi\\\\2-Apres_midi'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import os\n", "os.getcwd()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from outils_fichiers5 import array_from_file\n", "T = array_from_file(\"data1.txt\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def nuage() :\n", " ax = plt.subplot(1,1,1)\n", " ax.plot(1e3*T[:,2],T[:,1],\"dr\")\n", " ax.set_xlabel(\"Déplacement [mm]\")\n", " ax.set_ylabel(\"Force [N]\")\n", " ax.grid()\n", " return ax\n", "ax = nuage()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Approximation polynomiale" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)\n", "\n", "Least squares polynomial fit.\n", "\n", "Fit a polynomial ``p(x) = p[0] * x**deg + ... + p[deg]`` of degree `deg`\n", "to points `(x, y)`. Returns a vector of coefficients `p` that minimises\n", "the squared error.\n", "\n", "Parameters\n", "----------\n", "x : array_like, shape (M,)\n", " x-coordinates of the M sample points ``(x[i], y[i])``.\n", "y : array_like, shape (M,) or (M, K)\n", " y-coordinates of the sample points. Several data sets of sample\n", " points sharing the same x-coordinates can be fitted at once by\n", " passing in a 2D-array that contains one dataset per column.\n", "deg : int\n", " Degree of the fitting polynomial\n", "rcond : float, optional\n", " Relative condition number of the fit. Singular values smaller than\n", " this relative to the largest singular value will be ignored. The\n", " default value is len(x)*eps, where eps is the relative precision of\n", " the float type, about 2e-16 in most cases.\n", "full : bool, optional\n", " Switch determining nature of return value. When it is False (the\n", " default) just the coefficients are returned, when True diagnostic\n", " information from the singular value decomposition is also returned.\n", "w : array_like, shape (M,), optional\n", " Weights to apply to the y-coordinates of the sample points. For\n", " gaussian uncertainties, use 1/sigma (not 1/sigma**2).\n", "cov : bool, optional\n", " Return the estimate and the covariance matrix of the estimate\n", " If full is True, then cov is not returned.\n", "\n", "Returns\n", "-------\n", "p : ndarray, shape (deg + 1,) or (deg + 1, K)\n", " Polynomial coefficients, highest power first. If `y` was 2-D, the\n", " coefficients for `k`-th data set are in ``p[:,k]``.\n", "\n", "residuals, rank, singular_values, rcond\n", " Present only if `full` = True. Residuals of the least-squares fit,\n", " the effective rank of the scaled Vandermonde coefficient matrix,\n", " its singular values, and the specified value of `rcond`. For more\n", " details, see `linalg.lstsq`.\n", "\n", "V : ndarray, shape (M,M) or (M,M,K)\n", " Present only if `full` = False and `cov`=True. The covariance\n", " matrix of the polynomial coefficient estimates. The diagonal of\n", " this matrix are the variance estimates for each coefficient. If y\n", " is a 2-D array, then the covariance matrix for the `k`-th data set\n", " are in ``V[:,:,k]``\n", "\n", "\n", "Warns\n", "-----\n", "RankWarning\n", " The rank of the coefficient matrix in the least-squares fit is\n", " deficient. The warning is only raised if `full` = False.\n", "\n", " The warnings can be turned off by\n", "\n", " >>> import warnings\n", " >>> warnings.simplefilter('ignore', np.RankWarning)\n", "\n", "See Also\n", "--------\n", "polyval : Compute polynomial values.\n", "linalg.lstsq : Computes a least-squares fit.\n", "scipy.interpolate.UnivariateSpline : Computes spline fits.\n", "\n", "Notes\n", "-----\n", "The solution minimizes the squared error\n", "\n", ".. math ::\n", " E = \\sum_{j=0}^k |p(x_j) - y_j|^2\n", "\n", "in the equations::\n", "\n", " x[0]**n * p[0] + ... + x[0] * p[n-1] + p[n] = y[0]\n", " x[1]**n * p[0] + ... + x[1] * p[n-1] + p[n] = y[1]\n", " ...\n", " x[k]**n * p[0] + ... + x[k] * p[n-1] + p[n] = y[k]\n", "\n", "The coefficient matrix of the coefficients `p` is a Vandermonde matrix.\n", "\n", "`polyfit` issues a `RankWarning` when the least-squares fit is badly\n", "conditioned. This implies that the best fit is not well-defined due\n", "to numerical error. The results may be improved by lowering the polynomial\n", "degree or by replacing `x` by `x` - `x`.mean(). The `rcond` parameter\n", "can also be set to a value smaller than its default, but the resulting\n", "fit may be spurious: including contributions from the small singular\n", "values can add numerical noise to the result.\n", "\n", "Note that fitting polynomial coefficients is inherently badly conditioned\n", "when the degree of the polynomial is large or the interval of sample points\n", "is badly centered. The quality of the fit should always be checked in these\n", "cases. When polynomial fits are not satisfactory, splines may be a good\n", "alternative.\n", "\n", "References\n", "----------\n", ".. [1] Wikipedia, \"Curve fitting\",\n", " http://en.wikipedia.org/wiki/Curve_fitting\n", ".. [2] Wikipedia, \"Polynomial interpolation\",\n", " http://en.wikipedia.org/wiki/Polynomial_interpolation\n", "\n", "Examples\n", "--------\n", ">>> x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])\n", ">>> y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])\n", ">>> z = np.polyfit(x, y, 3)\n", ">>> z\n", "array([ 0.08703704, -0.81349206, 1.69312169, -0.03968254])\n", "\n", "It is convenient to use `poly1d` objects for dealing with polynomials:\n", "\n", ">>> p = np.poly1d(z)\n", ">>> p(0.5)\n", "0.6143849206349179\n", ">>> p(3.5)\n", "-0.34732142857143039\n", ">>> p(10)\n", "22.579365079365115\n", "\n", "High-order polynomials may oscillate wildly:\n", "\n", ">>> p30 = np.poly1d(np.polyfit(x, y, 30))\n", "/... RankWarning: Polyfit may be poorly conditioned...\n", ">>> p30(4)\n", "-0.80000000000000204\n", ">>> p30(5)\n", "-0.99999999999999445\n", ">>> p30(4.5)\n", "-0.10547061179440398\n", "\n", "Illustration:\n", "\n", ">>> import matplotlib.pyplot as plt\n", ">>> xp = np.linspace(-2, 6, 100)\n", ">>> _ = plt.plot(x, y, '.', xp, p(xp), '-', xp, p30(xp), '--')\n", ">>> plt.ylim(-2,2)\n", "(-2, 2)\n", ">>> plt.show()\n" ] } ], "source": [ "np.info(np.polyfit)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([56640.48655751, 88.29625021])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "C = np.polyfit(T[:,2],T[:,1],1)\n", "ax = nuage()\n", "X = np.linspace(T[:,2].min(),T[:,2].max(),300)\n", "ax.plot(X*1e3,np.polyval(C,X))\n", "C" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = nuage()\n", "X = np.linspace(T[:,2].min(),T[:,2].max(),300)\n", "for deg in range(1,6) :\n", " C = np.polyfit(T[:,2],T[:,1],deg)\n", " ax.plot(X*1e3,np.polyval(C,X),label=f\"d°{deg}\")\n", "plt.legend();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Approximation générale" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from numpy.linalg import solve\n", "def approx_MC(X,Y,base) :\n", " \"\"\"X et Y sont des vecteurs. \n", " base est une liste de fonctions vectorisées.\"\"\"\n", " Ft = np.array([ f(X) for f in base ]) # transposée de la matrice F\n", " F = Ft.transpose()\n", " M = Ft.dot(F) # ou np.dot(Ft,F) and Ft@F\n", " B = Ft.dot(Y)\n", " # Vecteur a solution de M a = B\n", " a = solve(M,B)\n", " return a" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([56640.48655751, 88.29625021])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.polyfit(T[:,2],T[:,1],1)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([56640.48655751, 88.29625021])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# def f0(x) : return 1 # fonction non vectorisée\n", "f0 = np.ones_like\n", "def f1(x) : return x\n", "approx_MC(T[:,2],T[:,1],[f1,f0])" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "from numpy.linalg import solve\n", "def approx_MC_plus(X,Y,base) :\n", " \"\"\"X et Y sont des vecteurs. \n", " base est une liste de fonctions vectorisées.\"\"\"\n", " Ft = np.array([ f(X) for f in base ]) # transposée de la matrice F\n", " F = Ft.transpose()\n", " M = Ft.dot(F) # ou np.dot(Ft,F) and Ft@F\n", " B = Ft.dot(Y)\n", " # Vecteur a solution de M a = B\n", " a = solve(M,B)\n", " # calcul de l'erreur\n", " err = np.sqrt(Y.dot(Y-F.dot(a)))\n", " # Définition de la fonction d'approximation\n", " def f_app(v,a=a,base=base) : # Passage de TOUS les paramètres\n", " return a.dot([ f(v) for f in base ])\n", " return a,err,f_app" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "C,err,g = approx_MC_plus(T[:,2],T[:,1],[f1,f0])" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEKCAYAAAAIO8L1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl8VOW9+PHPNxshCRC2hAAhAWQLFFEi+LvettD2ei3W2t5q1Vqthpa2V6u92lbptSxahdpWu9iqKLku1UaqtQXBUqvkWm+VVUQWFzSTnYQlLEnIOt/fH+fERhyywMycmcn3/XrNa+ac85xzvk8C8815nnOeR1QVY4wx5kRxXgdgjDEmMlmCMMYYE5AlCGOMMQFZgjDGGBOQJQhjjDEBWYIwxhgTkCUIY4wxAVmCMMYYE5AlCGOMMQEleB3A6Rg2bJjm5ub2ap+GhgZSU1NDE5CHrF7RJVbrBbFbt1iq19atWw+o6vDuykV1gsjNzWXLli292qe4uJg5c+aEJiAPWb2iS6zWC2K3brFULxEp7Uk5a2IyxhgTkCUIY4wxAVmCMMYYE5AlCGOMMQFZgjDGGBOQJQhjjDEBWYIwxpgoU9/WRn1bW8jPYwnCGGOiRGN7Oz8vL2fcxo38vKIi5OeL6gfljDGmL2hqb2dFdTXLysrY19LC+YMHc8GQISE/b8gThIjEA1uASlX9nIiMBYqAIcA24CpVbRGRfsBjwEzgIHCZqvpCHZ8xxkSqZr+fwupq7iwtpbKlhTnp6azKy+Pj6elhOX84mphuBPZ0Wv4JcK+qTgDqgPnu+vlAnaqeAdzrljPGmD6n1e/n4aoqJm7cyH+++y65ycm8dOaZbJgxI2zJAUKcIERkNHAh8LC7LMCngKfdIo8CX3A/X+wu427/tFveGGP6hDa/n0f37WPypk184513yEpKYv306fz9rLOYO3hw2OMRVQ3dwUWeBpYBA4DvAdcAr7lXCYhINvC8qk4TkZ3ABapa4W57D5itqgdOOOYCYAFAZmbmzKKiol7FVF9fT1pa2mnVKxJZvaJLrNYLYrduoaxXO/ASTht7BTABuBY4FwjFX8lz587dqqr53ZULWR+EiHwOqFXVrSIyp2N1gKLag23/XKG6AlgBkJ+fr70dXTGWRmTszOoVXWK1XhC7dQtFvfyqPL1/P0t8PvY0NjI9NZVf5+Zy8bBhREIDSig7qc8DPi8i84BkYCDwCyBdRBJUtQ0YDVS55SuAbKBCRBKAQcChEMZnjDGeUFX+dOAAi30+3mxoIC8lhVV5eXxp+HDiIiAxdAhZH4SqLlTV0aqaC1wOvKSqVwIbgEvcYl8D/ux+Xu0u425/SUPZ/mWMMWGmqjx34AAzt27lP3btotnv54kpU9hxzjlcmpERUckBvHkO4hagSER+DLwOrHTXrwQeF5G9OFcOl3sQmzHGBJ2q8te6OhaVlLDp2DHGJSfz6OTJfCUjg4S4yH1eOSwJQlWLgWL38/vArABlmoBLwxGPMcaEy0tuYvi/o0fJ6dePhydN4urMTBIjODF0sCepjTEmBP5++DCLfD6KDx9mVFIS90+YQEFWFklRkBg6WIIwxpggevXIERb7fLxQV8eIpCR+dcYZfCMri+T4eK9D6zVLEMYYEwRbjh5lkc/H84cOMTwxkZ+PH8+3R46kfxQmhg6WIIwx5jRsP3aMxT4fqw8eZEhCAsvHjeO6kSNJS4j+r9for4ExxnhgZ309S3w+njlwgPSEBO7IzeWG0aMZGAOJoUPs1MQYY8LgrYYGlpaW8lRtLWnx8SzKyeG/Ro8mPTHR69CCzhKEMcb0QCVw9Z49PFFTQ/+4OBaOGcPN2dkMicHE0MEShDHGdKHk+HF+XFrKI0C//fu5OTub72dnMzwpyevQQs4ShDHGBFDe1MSdpaWs3LePeOCLwH2zZzOiXz+vQwsbSxDGGNNJVXMzy8rKWFFVhQLfzMpiYU4O7776ap9KDmAJwhhjAKhpaWF5WRkPVFXRpkrBiBH8d04OY5KTAXjX4/i8YAnCGNOnHWhp4e7ycu6rrKTF7+fqESO4LSeHcf37ex2a5yxBGGP6pEOtrfy8vJxfVVbS0N7OlZmZLMrJYUJKitehRQxLEMaYPuVIWxv3lpdzb0UFR9vbuWz4cBbn5jIlNdXr0CKOJQhjTJ9wrK2NX1VW8rPycg63tfEfw4axJDeXj8Xg/NnBEso5qZOBl4F+7nmeVtXFIvII8EngiFv0GlXdLs4ErL8E5gGN7vptoYrPGNM3NLS385vKSu4uK+NgWxsXDR3K0txczhowwOvQIl4oryCagU+par2IJAKviMjz7rbvq+rTJ5T/LDDBfc0G7nffjTGm1463t/NAVRXLy8qobW3lgiFDuD03l3MGDvQ6tKgRyjmpVVXr3cVE99XVHNMXA4+5+70GpItIVqjiM8bEpma/n/sqKhi/cSM3vfce09PS+L+zzuL56dPDmxx27YJp05z3aDp2JyGd2khE4kVkO1ALvKCqG91Nd4rIDhG5V0Q6njwZBZR32r3CXWeMMd1q8ft5sKqKMzZu5Dt79zKhf3+KZ8zghTPP5F8GDQpvMA0NMG8e7N4NF17oLEfDsU8gql39UR+kk4ikA88C3wEOAvuAJGAF8J6q3i4ia4FlqvqKu8+LwA9UdesJx1oALADIzMycWVRU1KtY6uvrSYvBTimrV3SJ1XpB+OvWBvwVeBzni2UqcC1wNiBBPE9v6pW3dClD//EP4ltaaE9K4uB557F70aKgxBGMY8+dO3erquZ3W1BVw/ICFgPfO2HdHOA59/ODwBWdtr0NZHV1zJkzZ2pvbdiwodf7RAOrV3SJ1Xqphq9ubX6/PlpdreNffVXZsEHP2bJFnz9wQP1+f0jO1+N6rVypmpqqCv98paQ4609XkI4NbNEefG+HrIlJRIa7Vw6ISH/gM8BbHf0K7l1LXwB2urusBq4Wx7nAEVWtDlV8xpjo5FelqKaGqZs28bW33mJAQgKrp01j49lnc8HQoThfLR5auPCjzT6Njc76SD52AKHsg8gCNojIDmAzTh/Ec8ATIvIm8CYwDPixW34d8D6wF3gI+M8QxmaMiTJ+VZ6urWX65s1csWcPiXFxPDN1KltnzuSiYcO8Twwdli2DEx+6S0mB5csj+9gBhOw2V1XdAZwVYP2nTlJegetCFY8xJjxSSkrg+uvhqadg6tTTPp6qsvrgQRaXlPBGQwOTU1J4Ki+PS4YPJy5SkkJnBQWwfj2sXg1NTZCcDBddBNdeG9nHDiCkdzEZY/qYhgamL1wYlDtsVJV1Bw9yztatfGHnThr8fh6fPJmd55zDlzMyIjM5dCgshIwMEIHMTFi5MjqOfQJLEMaY4CkoILGuzuk+ramB+fN7fQhV5YVDh/iX11/nwjff5FBbG/8zaRJ7zjmHr44YQXwkJ4YOqamwbh3k5cHatR9tForUY5/AEoQxXgrTA09hUVgIa9cS39LiLDc1wZo1zvruuD+H4tdf55Pbt3P+jh1UNjezYuJE3p41i2uyskiIC9PXVbB+J1Onws6dQWlmC+uxO7EEYYxXwvjAU1ic6h02DQ3834038umCAuYeOcJ7jY38ZsIE3p09m2+MHEliuBKDG0tM/U5OkyUIY7xSUAC1tafVHBNRTuEOm41Hj/LvzzzDv952G7tyc/nFAw/w3m9/y3+OGkW/cCaGDrH2OzlNliCM8cCIdeuc9uOmJmdFb5pjIlVBAVx4Ie1JSc5yF3fYbDt2jM/t2MG527axbdAgfnr//bz/la9w41NPkfynP3nzc3CbyGLqd3KaLEEY44FxDz0U+geevOjfKCykdfDgk95hs6O+ni/u3MnMrVv5x9Gj3PX731Ny+eV8b9UqUpqbnUIhfPCrS2F+CC0aWIIwpjsh+KJ9/xvfCO0DT161paemsmPZso/cYbO7oYEv79rFmVu2sKGujqW5ufjOPZeFs2eTFh//4WOE8MGvLoX5IbRoYAnCmK6E6It237x5zvGSk50VwX7gycO29MaxYz+4w+btxkau3L2baZs38/yhQ9yWk0PJueeyKDeXgQkJHzRLhezn0BuRFEuEsARhTFdC+UUbqgeeIqAt/b3jx7lmzx7yNm3iTwcO8IPsbEpmz+aOsWMZnJj40XjD9OBXtyIplghgCcKYkwn1F22oHnjysC29tKmJnwGTNm7kqf37+e7o0ZScey7Lx49nWEfn9YnC+OBXtyIplggQyilHjYluXX3RFhQE5xwdDzwF07JlcMMNH449xG3pFU1N3FVWxsPVzgDM140axa1jxpDVr183e7pC8XM4VZEUi8fsCsKYk4nWTsswtqVXNzdzw7vvMn7jRh6urubrWVk8AfxywoSeJwcTsSxBGHMy0dxpGeK29NqWFm7eu5dxGzfy28pKrh4xgndmzeK3EycyPKhnMl6yJiZjulJY6LRHl5dHV6dlR1v6ZZc5w24HqS39YGsrPy0r49eVlTT5/VyVmcmPcnMZ379/UI5vIoslCGO6EqIv2rAIYlt6XWsr91RU8IuKChra27kiI4PFublMTEkJyvFNZApZghCRZOBloJ97nqdVdbGIjAWKgCHANuAqVW0RkX7AY8BM4CBwmar6QhWfMT3Whzstj7S18cuKCu4pL+dIezuXDh/O4txcpkZTojSnLJRXEM3Ap1S1XkQSgVdE5HngJuBeVS0SkQeA+cD97nudqp4hIpcDPwEuC2F8xpiTqG9r49eVlfy0vJy6tja+MGwYS3NzmZ6W5nVoJoxCOeWoAvXuYqL7UuBTwFfc9Y8CS3ASxMXuZ4CngftERNzjGGPCoLG9nd9WVvKT8nIOtLZy4ZAhLB07lpkDBngdmvGAhPL7V0Tiga3AGcBvgJ8Cr6nqGe72bOB5VZ0mIjuBC1S1wt32HjBbVQ+ccMwFwAKAzMzMmUVFRb2Kqb6+nrQY/CvI6hVdIq1eLcBq4EmgDjgHuAbIO4VjRVrdgiWW6jV37tytqprfXbmQdlKrajswQ0TSgWeBKYGKue+B5hH8SPZS1RXACoD8/HydM2dOr2IqLi6mt/tEA6tXdImUejX7/aysrubO0lKqWlr4VHo6S3Nz+df09FM+ZqTULdhitV5dCctzEKp6GCgGzgXSRaQjMY0GqtzPFUA2gLt9EHAoHPGZGBJLU3iGUKvfz0NVVUzcuJHr3n2Xcf37s+HMM3lxxozTSg4mtoQsQYjIcPfKARHpD3wG2ANsAC5xi30N+LP7ebW7jLv9Jet/ML1i00V2q83v55HqaiZt2sSCd94hKymJv06fzsszZjBn8GCvwzMRJpRNTFnAo24/RBywSlWfE5HdQJGI/Bh4Heh48mgl8LiI7MW5crg8hLGZWBRo5NVe9lHFqnZVfl9Tw9LSUvYeP87MtDTu+9jH+OyQIYgEat01JrR3Me0Azgqw/n1gVoD1TcCloYrHxLiuRl4N1sB6Ucivyh/272eJz8dbjY1MT03lT9Om8fmhQy0xmG7ZWEwmNth0kR+iqvxx/37O3LKFy3fvJg74Q14er+fnc/GwYZYcTI9YgjCxIVpHXg0yVWXNgQPM3LqVL+3aRYvfz5NTprDjnHO4JCODOEsMphdsLCYTGwoKYP16WL3aaV6KppFXg0BVWX/oEIt8PjYfO8b45GQemzyZKzIySIizvwPNqbEEYWJHtI68ehpUlZcOH2ZRSQn/OHqUnH79WDlpEldlZpJoicGcJksQJnZE88irp+Dlw4f5UUkJLx85wuh+/Xhg4kSuHTGCJEsMJkgsQZjY0gdGXn31yBEW+Xz8ra6OrKQkfn3GGXw9K4vk+HivQzMxxhKEMVFi89GjLPL5+MuhQ2QkJnLP+PF8a+RI+ltiMCFiCcKYCPf6sWMs9vlYc/AgQxMS+Mm4cVw3ahSplhhMiFmCMCZCvVlfzxKfjz8eOEB6QgI/HjuWG0aNYkCC/bc14WH/0oyJMG81NLDE52PV/v0MiI9ncU4O/5WdzSBLDCbM7F+cMRHi3cZGbi8t5cmaGlLi4/nhmDHclJ3NkMREr0MzfZQlCGM8VnL8OHeUlvLYvn0kxcXxvexsvp+dzbCkJK9DM32cJQhjPFLW1MSdpaUU7ttHPPCd0aO5dcwYMi0xmAhhCcKYMKtsbuaXwLqNGwH41siRLBwzhpH9+nkbmDEnsARhTJjsa25meVkZD1RV0QZ8fcQIfpiTw5jkZK9DMyagUM4oly0iG0Rkj4jsEpEb3fVLRKRSRLa7r3md9lkoIntF5G0R+fdQxWZMOO1vaeH7773HuI0bua+ykiszM3kceGDSJEsOJqKF8gqiDbhZVbeJyABgq4i84G67V1V/1rmwiOThzCI3FRgJ/E1EJqpqewhjNCZkDrW28rPycn5VUcFxv58rMzP5UU4OE1JSKN63z+vwjOlWKGeUqwaq3c/HRGQPMKqLXS4GilS1GShxpx6dBbwaqhiNCYXDra3cW1HBvRUV1Le3c1lGBotzcpgc44MHmtgjqnryjSJn9+AYrar6ZpcnEckFXgamATcB1wBHgS04Vxl1InIf8Jqq/s7dZyXwvKo+fcKxFgALADIzM2cW9XLO4fr6etLS0nq1TzSwenmvAfgjsAqoBz6B8w99bICy0VSv3orVusVSvebOnbtVVfO7K9fdFcT/ApuBrqahGgvknmyjiKQBzwDfVdWjInI/cAeg7vvPgYKTnOMj2UtVVwArAPLz83XOnDndVOHDiouL6e0+0cDq5Z2G9nbuq6zk7rIyDrW18fmhQ1mam8uMAQNOuk801OtUxWrdYrVeXekuQWxW1U91VUBEXupiWyJOcnhCVf8IoKo1nbY/BDznLlYA2Z12Hw1UdROfMZ5pbG/ngaoqlpeVsb+1lc8OGcLtubnkDxzodWjGBEWXCaK75NBVGXFmRV8J7FHVezqtz3L7JwC+CHQM3r8aeFJE7sHppJ4AbOq2BsaEWVN7Ow9VV3NXWRn7Wlr4t8GDWZqby/8bNMjr0IwJqi4ThIiM6Wq7qpZ1sfk84CrgTRHZ7q77IXCFiMzAaT7yAd90j7VLRFYBu3HugLrO7mAykaTF76ewupo7y8qoaG7mk4MG8VReHp9IT/c6NGNCorsmprU4X+Sd+wcUGA5kACcdkF5VXyFwv8K6Lva5E7izm5iMCatWv5/Hamq4w+ejtLmZfxk4kEcnT2ZuejrOhbIxsam7JqaPdV5270a6BfgMcFfIojImArT5/TxRW8vtPh/vNzUxa8AAHpw0ifMHD7bEYPqEHj0HISITgP8GZuPcdXSDqraGMjBjvNKuylO1tSz1+Xjn+HHOSktjzbRpXDh0qCUG06d0OdSGiEwTkd/j3In0N2Caqj5sycEExa5dMG2a8x4B/Kr8obaW6Zs3c+WePfSLi+OPU6eydeZMPjdsmCUH0+d0dwXxBlCO0xcxC5jV+T+Jqt4QutBMTGtogHnzoLwcLrzQSRIePWmsqvz5wAEW+3zsaGhgSkoKq/Ly+NLw4cRZUjB9WHcJYj4BHlYz5rQVFEBtLahCTQ3Mnw+9fCr+dKkq6w4dYlFJCdvq65nQvz+/mzKFyzMyiLfEYEy3ndSPhCkO05cUFsLatdDU5Cw3NcGaNc76goKQn15VeaGujkUlJWw8doxxyck8MnkyV2ZkkBAXsgGOjYk63fVBLOnuAD0pY8yHLFzoNDF11tjorA+xDXV1fGL7dv59xw6qW1p4aOJE3po1i6+NGGHJwZgTdNfE9HUROdrFdsEZontJ0CIysW/ZMrjhhg8niZQUWL48ZKd85fBhFvl8bDh8mFFJSfx2wgQKsrLoZ0nBmJPqLkE8BJx8xLF/ljGm5woKYP16WL3aaV5KToaLLoJrrw36qV47coRFPh8v1NWRmZjIL884gwVZWSTHn/QZT2OMq7s+iKXhCsT0MYWFkJfn3MWUmQkrVwb18FuPHWNRSQnrDh1iWGIiPxs/nm+PHEmKJQZjeszmpDbeSE2FdevgssvgqaeCdovrG/X1LC4p4c8HDzIkIYFlY8dy/ahRpCXYP3Vjesv+1xjvTJ0KO3d2X64HdjU0sMTn4+n9+xkUH8/tubncOHo0Ay0xGHPK7H+PiWpvNzay1OejqLaWtPh4fpSTw02jR5OemOh1aMZEvZ6OxTQRuB/IVNVpIjId+Lyq/jik0RlzEnsbG7mjtJTf1dTQPy6OW8aM4XvZ2Qy1xGBM0PT0CuIh4PvAgwCqukNEngQsQZiw8h0/zo9LS3lk3z4S4+L4r9Gj+cGYMWQkJXkdmjExp6cJIkVVN50wWFlbVzuISDbwGDAC8AMrVPWXIjIEeApnHmsf8GVVrXNnoPslMA9oBK5R1W29qIuJYeVNTdxVVsbK6mrigOtHjeKWMWPI6tfP69CMiVk9TRAHRGQ87rhMInIJUN31LrQBN6vqNhEZAGwVkReAa4AXVXW5iNwK3Iozx8RncaYZnYAzrPj97rvpww4C33n3XVZUVaHAN7KyWDhmDKOTk70OzZiY19MEcR2wApgsIpVACfDVrnZw552udj8fE5E9wCjgYmCOW+xRoBgnQVwMPKaqCrwmIuknzF9t+pDalhaWl5XxG8BfVcW1I0bw3zk55FhiMCZsepQgVPV94DMikgrEqeqx3pzEnYnuLGAjTkd3R+KoFpEMt9gonKHFO1S46yxB9CEHWlr4aXk591VW0uT3cz7wm1mzGNe/v9ehGdPn9PQupruAu1X1sLs8GKf56LYe7JuGM+HQd1X1aBeTrgTa8JGhxkVkAbAAIDMzk+Li4p5U4QP19fW93icaRHu9jgGrcP6hNAGfBq4GBtfXU7ZxI2VeBhcC0f776kqs1i1W69UlVe32BbweYN22HuyXCKwHbuq07m0gy/2cBbztfn4QuCJQuZO9Zs6cqb21YcOGXu8TDaK1XodbW3VJSYkOfPllZcMG/fLOnbqrvv6D7dFar+7Ear1UY7dusVQvYIv24Lu/p30Q8SLST1WbAUSkP9Dl7SPuXUkrgT2qek+nTauBrwHL3fc/d1p/vYgU4XROH1Hrf4hZx9ra+HVlJT8rL6eurY0vDhvGktxcpqeleR2aMcbV0wTxO+BFEfkfnGafApwO5q6cB1wFvCki2911P8RJDKtEZD5QBlzqbluHc4vrXpzbXIM/tKfxXGN7O7+prOTu8nIOtLbyuaFDWZqby9kDuhs02BgTbj3tpL5bRHYAn8HpK7hDVdd3s88rBO5XAKeJ+cTyinO3lIlBx9vbebCqiuVlZdS0tnLBkCEszc1l1sCBXodmjDmJbhOEiMQD61X1M8BfQh+SiSXNfj8PV1dzV2kpVS0tfDo9nWfGjuW8QYO8Ds0Y041uE4SqtotIo4gMUtUj4QjKRL8Wv59H9u3jx6WllDc38/FBg3gyL49Ppqd7HZoxpod62gfRhNOX8ALwwTyRqnpDSKIyUavN7+fxmhpuLy3F19TEuQMHUjhpEp8ePJgubnE2xkSgniaIte7LmIDaVXnSTQx7jx8nf8AAfjthAhcMGWKJwZgo1dNO6kdFJAmY6K56W1VbQxeWiRZ+VVbV1rK0tJS3Ghs5MzWVP0+bxkVDh1piMCbKxfWkkIjMAd4FfgP8FnhHRD4RwriMF3btgmnTnPdu+FV5Zv9+pm/ezBV79hAPPD11Ktvy8/n8sGGWHIyJAT1tYvo5cL6qvg0fTCD0e2BmqAIzYdbQAPPmQXk5XHihkyQCzBOtqqw5eJDFPh/b6+uZnJJCUV4elw4fTpwlBWNiSo+uIIDEjuQAoKrv4AyjYWJFQQHU1oIq1NTA/Pkf2qyqPH/wILO2bePinTupb2/n8cmT2XnOOVyWkWHJwZgY1NMriC0ishJ43F2+EtgampBM2BUWwtq10NTkLDc1wZo1UFiIXnstL9bVscjn49WjR8lNTqZw0iSuyswkIa6nf18YY6JRTxPEt3Gecr4B5+nol3H6IkwsWLjQaWLqrLGR/33sMRaddRYvHzlCdr9+PDhxIteMGEGSJQZj+oQuE4SIjFHVMneQvnvcl4k1y5bBDTd8kCT+MXUqi77+dV6cMYOs48e5b8IEvp6VRT9LDMb0Kd1dQfwJOBtARJ5R1S+FPiQTdgUFsH49m956i0VXXsn6WbPIaGzk3vHj+ebIkfSPj/c6QmOMB7pLEJ17HseFMhDjndePHWPRrbfy3JEjDD1yhLufeor//MlPSLWB9Izp07pLEHqSzyYG7KivZ4nPx7MHDjA4IYE7U1L4zs03M+Cxx8CSgzF9XncJ4kwROYpzJdHf/Yy7rKpq3yJRaHdDA0t9Plbt38/A+HiW5Oby3dGjGZSQAFvt5jRjjKPLBKGq1vgcQ95pbOR2n48na2tJjY/ntpwcbho9msGJ9kiLMeajQnZbiogUikitiOzstG6JiFSKyHb3Na/TtoUisldE3haRfw9VXH3R+8ePc+1bbzFl0yaePXCAH2RnUzJ7NneMHWvJwRhzUj19DuJUPALcBzx2wvp7VfVnnVeISB5wOTAVGAn8TUQmqmp7COOLeaVNTdxZWsr/7NtHggg3jh7NLWPGkJmU5HVoxpgoELIEoaovi0huD4tfDBS5z1uUiMheYBbwaojCi2mVzc3cVVrKQ9XVCPDtkSO5dcwYRvbr53VoxpgoIs5U0CE6uJMgnlPVae7yEuAa4CiwBbhZVetE5D7gNVX9nVtuJfC8qj4d4JgLgAUAmZmZM4uKinoVU319PWlpaadYo8hVX19PS1oaTwBrcG45m4czJkqGp5Gdnlj+fcVivSB26xZL9Zo7d+5WVc3vrlwom5gCuR+4A+f76w6cUWIL+PDzFh0CZi5VXQGsAMjPz9c5c+b0KoDi4mJ6u0+k29/SwvX/+Adr4uJo8fu5ZsQIbsvJIbd/f69DO22x+PuC2K0XxG7dYrVeXQlrglDVmo7PIvIQ8Jy7WAFkdyo6GqgKY2hR6WBrKz8rL+fXFRUcB746fDg/ysnhjJQUr0MzxsSAsCYIEclS1Wp38YtAxx1Oq4EnReQenE7qCcCmcMYWTQ63tnJPRQW/qKigvr2dyzMyuKC2lqunTPE6NGNMDAlZghCR3wNzgGEiUgEsBuaIyAyc5iMf8E0AVd0lIquA3UAbcJ3dwfRRR9va+GVFBT8vL+fJ/wEQAAAQLUlEQVRIezuXDB/OktxcpqamUlxb63V4xpgYE8q7mK4IsHplF+XvBO4MVTzRrL6tjfsqK/lpeTmH2tq4eOhQlo4dy5kx0mFmjIlM4e6kNr3Q2N7O/VVV/KSsjP2trcwbMoTbx45l5oABXodmjOkDLEFEoKb2dlZUV7OsrIx9LS2cP3gwS3NzOXfQIK9DM8b0IZYgIkiz309hdTV3lpZS2dLCnPR0VuXl8fH0dK9DM8b0QZYgIkCr38+j+/ZxR2kpZc3NnDdwII9PmcLcwYO9Ds0Y04dZgvBQm9/P72pquL20lJKmJmYPGMBDkybxb4MHIxLo2UFjjAkfSxAeaFelqLaWpT4f7x4/ztlpafz6Yx9j3pAhlhiMMRHDEkQY+VV5ev9+lvh87GlsZHpqKs9OncrFw4ZZYjDGRJyQzQdh/klVeXb/fmZs2cJlu3cjwB/y8ng9P58vDB9+eslh1y6YNo2UkpKgxWuMMWBXECGlqqw9eJBFPh+v19czsX9/npgyhcsyMogPxhVDQwPMmwfl5Xxs4UL48pchNfX0j2uMMdgVREioKusPHeLcbdu4aOdOjrS18ejkyew65xy+kpkZnOQAUFAAtbWgSlJdHcyfH5zjGmMMliCC7qW6Oj7++utcsGMHNS0tPDxpEm/NmsXVI0aQEBfEH3dhIaxdC01NAMS3tMCaNc56Y4wJAksQQfL3w4eZu307n37jDXxNTdw/YQLvzJ7N/KwsEoOZGDosXOg0MXXW2OisN8aYILAEcZpePXKEf3vjDT6xfTtvNTbyqzPOYO/s2Xxr1CiSQpEYOixb9tH+hpQUWL48dOc0xvQp1kl9irYcPcoin4/nDx1ieGIiPx8/nm+PHEn/+PjwBFBQAOvXw+rV0NREe1IS8RddBNdeG57zG2NiniWIXtp+7BiLfT5WHzzIkIQElo8bx/WjRpEarsTQWWEh5OVBeTktgwfTf+VJR1M3xpheC1kbiIgUikitiOzstG6IiLwgIu+674Pd9SIivxKRvSKyQ0TODlVcp2pnfT2X7NzJWVu38vKRI9yRm0vJuedyy5gx3iQHcJqY1q2DvDzeDNTkZIwxpyGUfRCPABecsO5W4EVVnQC86C4DfBZnmtEJwALg/hDG1StvNTRwxe7dTN+yhb/W1bEoJ4eS2bO5LTeXgQkRcAE2dSrs3Enj2LFeR2KMiTGhnFHuZRHJPWH1xTjTkAI8ChQDt7jrH1NVBV4TkfQT5q8Ou72NjdxeWsoTNTX0j4tj4Zgx3JydzZDERK9CMsaYsBLnOzlEB3cSxHOqOs1dPqyq6Z2216nqYBF5Dliuqq+4618EblHVLQGOuQDnKoPMzMyZRUVFvYqpvr6etC6m6qwGHgfWA4nAF4DLgUifkaG7ekUrq1f0idW6xVK95s6du1VV87srFwFtJAAEerQ4YOZS1RXACoD8/HydM2dOr05UXFxMoH3Km5q4s7SUlfv2EQ/cMGoUt2RnM6Jfv14d3ysnq1e0s3pFn1itW6zWqyvhThA1HU1HIpIF1LrrK4DsTuVGA1XhCKiquZm7Skt5qLoaBb6ZlcXCnBxGRUliMMaYUAl3glgNfA1Y7r7/udP660WkCJgNHAl1/0NNSwvLy8p4oKqKNlUKRozgv3NyGJOcHMrTGmNM1AhZghCR3+N0SA8TkQpgMU5iWCUi84Ey4FK3+DpgHrAXaARC+rTXH/fv56o9e2j2+7l6xAhuy8lhXP/+oTylMcZEnVDexXTFSTZ9OkBZBa4LVSwnyh8wgEuGD+e2nBwmpKSE67TGGBNVIqWTOqzGJCfz6JQpXodhjDERzQbrM8YYE5AlCGOMMQFZgjDGGBOQJQhjjDEBWYIwxhgTkCUIY4wxAVmCMMYYE5AlCGOMMQFZgjDGGBOQJYhTsWsXTJvmvBtjTIyyBNFbDQ0wbx7s3g0XXugsG2NMDLIE0VsFBVBbC6pQUwPz53sdkTHGhIQliN4oLIS1a6GpyVluaoI1a5z1xhgTYyxB9MbChR9tUmpsdNYbY0yMsQTRG8uWQWrqh9elpMDy5d7EY4wxIeRJghARn4i8KSLbRWSLu26IiLwgIu+674O9iK1LBQVOx3THtKTJyXDRRXBtSCfAM8YYT3h5BTFXVWeoar67fCvwoqpOAF50lyNPYSFkZIAIZGbCypVeR2SMMSERSU1MFwOPup8fBb7gYSwnl5oK69ZBXp7TYX1ik5MxxsQIcaaDDvNJRUqAOkCBB1V1hYgcVtX0TmXqVPUjzUwisgBYAJCZmTmzqKioV+eur68nLS3ttOKPRFav6BKr9YLYrVss1Wvu3LlbO7XenJyqhv0FjHTfM4A3gE8Ah08oU9fdcWbOnKm9tWHDhl7vEw2sXtElVuulGrt1i6V6AVu0B9/VnjQxqWqV+14LPAvMAmpEJAvAfa/1IjZjjDGOsCcIEUkVkQEdn4HzgZ3AauBrbrGvAX8Od2zGGGP+KcGDc2YCz4pIx/mfVNW/iMhmYJWIzAfKgEs9iM0YY4wr7AlCVd8Hzgyw/iDw6XDHY4wxJrBIus3VGGNMBLEEYYwxJiBLEMYYYwKyBGGMMSYgSxDGGGMCsgRhjDEmIEsQxhhjArIEYYwxJiBLEMYYYwKyBGGMMSYgSxDGGGMCsgRhjDEmoL6ZIHbtgmnTnHdjjDEB9bkEEXf8OMybB7t3w4UXQkOD1yEZY0xE6nMJYvLdd0NtLahCTQ3Mn+91SMYYE5EiLkGIyAUi8raI7BWRW4N68MJChr72GjQ1OctNTbBmDRQWBvU0xhgTCyIqQYhIPPAb4LNAHnCFiOQF7QQLFxLfkRw6NDbCwoVBO4UxxsSKiEoQwCxgr6q+r6otQBFwcdCOvmwZ7cnJH16XkgLLlwftFMYYEyu8mJO6K6OA8k7LFcDszgVEZAGwACAzM5Pi4uKeH33cOCbm55O5aRPxLS20JyVxcPZsdo8dC705TgSqr6/v3c8iSli9ok+s1i1W69WVSEsQEmCdfmhBdQWwAiA/P1/nzJnTqxO8/MMfMvJb34LycuKzsshYs4aM1NRTjTdiFBcX09ufRTSwekWfWK1brNarK5HWxFQBZHdaHg1UBfME/v79Yd06yMuDtWshBpKDMcaEQqRdQWwGJojIWKASuBz4StDPMnUq7NwZ9MMaY0wsiagEoaptInI9sB6IBwpV1R53NsYYD0RUggBQ1XXAOq/jMMaYvi7S+iCMMcZECEsQxhhjAhJV7b5UhBKR/UBpL3cbBhwIQThes3pFl1itF8Ru3WKpXjmqOry7QlGdIE6FiGxR1Xyv4wg2q1d0idV6QezWLVbr1RVrYjLGGBOQJQhjjDEB9cUEscLrAELE6hVdYrVeELt1i9V6nVSf64MwxhjTM33xCsIYY0wPWIIwxhgTUJ9KECGdztQjIlIoIrUiElOjD4pItohsEJE9IrJLRG70OqZgEJFkEdkkIm+49VrqdUzBJCLxIvK6iDzndSzBIiI+EXlTRLaLyBav4wmnPtMH4U5n+g7wbzjDim8GrlDV3Z4GdppE5BNAPfCYqk7zOp5gEZEsIEtVt4nIAGAr8IUY+H0JkKqq9SKSCLwC3Kiqr3kcWlCIyE1APjBQVT/ndTzBICI+IF9VY+UhuR7rS1cQoZ3O1COq+jJwyOs4gk1Vq1V1m/v5GLAHZ8bBqKaOencx0X3FxF9pIjIauBB42OtYTHD0pQQRaDrTqP/C6QtEJBc4C9jobSTB4TbDbAdqgRdUNSbqBfwC+AHg9zqQIFPgryKy1Z3yuM/oSwmi2+lMTeQRkTTgGeC7qnrU63iCQVXbVXUGzoyJs0Qk6psGReRzQK2qbvU6lhA4T1XPBj4LXOc26/YJfSlBhHw6UxNcbhv9M8ATqvpHr+MJNlU9DBQDF3gcSjCcB3zeba8vAj4lIr/zNqTgUNUq970WeBanubpP6EsJ4oPpTEUkCWc609Uex2ROwu3MXQnsUdV7vI4nWERkuIiku5/7A58B3vI2qtOnqgtVdbSq5uL833pJVb/qcVinTURS3ZskEJFU4Hwgpu4Y7EqfSRCq2gZ0TGe6B1gVC9OZisjvgVeBSSJSISLzvY4pSM4DrsL5S3S7+5rndVBBkAVsEJEdOH+0vKCqMXNLaAzKBF4RkTeATcBaVf2LxzGFTZ+5zdUYY0zv9JkrCGOMMb1jCcIYY0xAliCMMcYEZAnCGGNMQJYgjDHGBGQJwkQ9EblSRMZ4HYcxscYShIlYItLuPv+wyx0e+yYRiTuhzHxguKqW9eB4PhEZFrKAg0REckXkKyfZNkdEjojIuhCde4OI1ItIfiiOb6JLgtcBGNOF4+6YRYhIBvAkMAhY3FFAVVd6FFso5QJfwalvIH8P1VDaqjpXRIpDcWwTfewKwkQFdxycBcD14ogXkZ+KyGYR2SEi34QP/sJ+WUSeFZHdIvLAiVcdbrk/uaNz7uo8Qqc7qdQ294rlRXddqjsx02Z3MpyL3fXXuMdZIyIlInK9e5Xzuoi8JiJD3HLjReQv7vn+LiKT3fWPiMivROQfIvK+iFzihrEc+Lh79fRfXf1c3Pr+r4isEpF3RGS52+S2yZ3kZnync93vXiG8LyKfdOu0R0QeOc1fj4lVqmove0XkC6gPsK4OZ/iDBcBt7rp+wBZgLDAHaALGAfHAC8AlbjkfMMz9PMR9748zts5QYDjOkPBjTyhzF/BV93M6zsRTqcA1wF5ggLvvEeBbbrl7cUagBXgRmOB+no0zThHAI8AfcP5Qy8OZrwS3Ds+d5GfyoW3u8mGcITz6AZXAUnfbjcAvOp2rCGdU44uBo8DH3HNvBWZ0OmYxzgQ5nv8bsJe3L2tiMtGmY9j284Hpnf7qHgRMAFqATar6PnwwVtW/Ak+fcJwbROSL7udsd9/hwMuqWgKgqh0TMZ2PM1Lp99zlZKCjU3yDOhMaHRORI8Aad/2bbnxpwL8Af3DGHwScL/IOf1JVP7BbRDJ796P4wGZVrXbr+x7w104xzO1Ubo2qqoi8CdSo6pvuPrtwmrW2n+L5TYyyBGGihoiMA9pxJtoR4Duquv6EMnP46DwfGqDMZ4D/p6qNbpt7snvMQIOTCfAlVX37hOPMBpo7rfJ3Wvbj/P+KAw6r25cSQOf9A81Z0hPdxXBiOX+Afey7wHyE9UGYqCAiw4EHgPtUVXFG5f22O2cEIjLRHY4ZnEl4xrp9D5fhzPvc2SCgzk0Ok4Fz3fWvAp8UkbHuMYe469cD3xH3EkBEzupp3OpMclQiIpe6+4qInNnNbsdwmq2M8ZQlCBPJ+nfc5gr8DafpZKm77WFgN7BNRHYCD/LPv4Jfxeno3QmU4Ezy0tlfgARxhty+A3gNQFX34/Rt/FGc4Z2fcsvfgTN39A73XHf0sh5XAvPdY+6i+7nQdwBtbkd5l53UxoSSDfdtYorbfPQ9DdFtoF4LR/3cJrfvqeqWUJ3DRAe7gjAmurQA00L5oBzOHWCtoTi+iS52BWGMMSYgu4IwxhgTkCUIY4wxAVmCMMYYE5AlCGOMMQFZgjDGGBPQ/weydQWNqZIDWQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = nuage()\n", "plt.plot(X*1e3,g(X),\"c\");" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def r(t) : return (t>0)*t\n", "def f2(t) : return r(t-2.8e-3)\n", "C,err,h = approx_MC_plus(T[:,2],T[:,1],[r,f2])" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 119767.49567358, -119376.74846122])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ax = nuage()\n", "plt.plot(X*1e3,h(X),\"c\");" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }