{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "#  L3 E - S5 2018-19 --- TDO --- séance 3 --- solutions \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Un peu d'analyse et de représentations graphiques"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "L'instruction $pylab ~inline$ permettra l'insertion des graphiques dans la feuille notebook (au lieu de les avoir dans des fenêtres \"surgissantes\")."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "pylab inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On fait appel à la bibliothèque $matplotlib$ pour utiliser les fonctionnalités graphiques de ${\\rm python}$ :"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from matplotlib.pylab import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "os.chdir('.........................')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Exercice 1 \n",
    "\n",
    "Tous les graphiques réalisés sont à sauvegarder dans le répertoire personnel "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "Tracer sur un même dessin et pour $t>0$ les graphes des fonctions $x \\mapsto x^a$ pour $a \\in \\{-1,0,1/2,1,2\\}$~: on distinguera les représentations graphiques en prenant des couleurs différentes et on fera un dessin avec une fenêtre avec $x \\in ]0,3]$ et un autre dessin avec une fenêtre avec $x \\in ]0,10]$.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1122f82b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "from matplotlib.pylab import *\n",
    "\n",
    "def g1(t):\n",
    "    return t**2\n",
    "def g2(t):\n",
    "    return t\n",
    "def g3(t):\n",
    "    return t**(0.5)\n",
    "def g4(t):\n",
    "    return t**0\n",
    "def g5(t):\n",
    "    return t**(-1)\n",
    "    \n",
    "t = linspace(0.01, 10, 200)\n",
    "y1 = g1(t)\n",
    "y2 = g2(t)\n",
    "y3 = g3(t)\n",
    "y4 = g4(t)\n",
    "y5 = g5(t)\n",
    "\n",
    "plot(t, y1, \"g-\")               \n",
    "plot(t, y2, \"b-\") \n",
    "plot(t, y3, \"r-\") \n",
    "plot(t, y4, \"yo\") \n",
    "plot(t, y5, \"mo\")     \n",
    "axis([0, 3, -0.05, 3])   \n",
    "xlabel(\"abscisse t\")\n",
    "ylabel(\"ordonnee y\")\n",
    "legend([\"t**2\", \"t\",\"t**(0.5)\",\"1\",\"1/t\"])\n",
    "title(\"les fonctions puissances\")\n",
    "savefig(\"fonctions-puissances-3.pdf\")\n",
    "\n",
    "plot(t, y1, \"g-\")           \n",
    "plot(t, y2, \"b-\") \n",
    "plot(t, y3, \"r-\") \n",
    "plot(t, y4, \"yo\") \n",
    "plot(t, y5, \"mo\")     \n",
    "axis([0, 10, -0.05, 10])   \n",
    "xlabel(\"abscisse t\")\n",
    "ylabel(\"ordonnee y\")\n",
    "legend([\"t**2\", \"t\",\"t**(0.5)\",\"1\",\"1/t\"])\n",
    "title(\"les fonctions puissances\")\n",
    "savefig(\"fonctions-puissances-10.pdf\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Exercice 2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "On se donne une application de classe $C^1$ sur un intervalle $[a,b]$. Supposant qu'on ne connaît pas sa dérivée, on va la calculer en considérant, pour $h$\n",
    "petit, la fonction suivante, définie pour $x\\in [a+h,b-h]$~:\n",
    "\n",
    "$$x \\mapsto \\frac{f(x+h)-f(x-h)}{2h}$$\n",
    "\n",
    "1. Ecrire une fonction ${\\rm \\texttt{ApproximationDerivee(f,h,t)}}$ qui retourne $\\displaystyle \\frac{f(x+h)-f(x-h)}{2h}$.\n",
    "\n",
    "\n",
    "2. Tester la qualité de cette approximation pour la fonctions $f(t)=t^3-t$, puis pour \n",
    "$g(t)=\\sin(t)$. Chaque fois, on tracera sur un même graphique les graphes de $f$, $f'$\n",
    "et de l'approximation de $f'$. De plus, on fera apparaître les 2 graphiques dans  une même fenêtre. \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEWCAYAAABmE+CbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl8VcX1wL8nIZCEfZclBLSIQAwgm4jIYlkUDLjQFJEC\nsihQBalaFZUUQW3lpwjaUlRwAYuAgmhtoVR2BEwUKVtZrGyyhLCFhECSd35/zE14Ce9lIXl5Web7\n+dzPe2/m3plzlzfnzpkzZ0RVsVgsFoslwN8CWCwWi6V4YBWCxWKxWACrECwWi8XiYBWCxWKxWACr\nECwWi8XiYBWCxWKxWACrECzFHBH5h4gMLaK6BovIyiKqS0XkF9dw3DAR2VBIMhSoLBGZLSIvFIYs\nluJBOX8LYLHkhKre5YtyRaQx8D8gSFXTnLoWAAt8UV9pRFUf9bcMlsLF9hAsPkVE7EtHKUREAv0t\ng6XwsQqhjCIiz4jIARFJFJFdInKvW94wEdkoIm+JyDkR2SMid7rlrxGRV0Rkq4icF5HPRaSGk9fY\nMYeMEJFDwNdOepSI7BSRs87xzZ30G0TktIjc4vyuLyLxItLNra6R2eR6wynnRxG5zUk/LCIn3c1L\nItJXRL53ZDwsIjFul2Cd83lWRC6ISKfsJhSn7G+da/CtiNyW7Rq85MiTKCIrRaRWDtf7KRE5JiI/\ni8jD2fIqiMh0ETkkIiccU0xIHu/jm865nReROBHpksO+NUVkubPvVuCGbPk3ici/nPvxXxH5lVve\n+yLyFxH5SkSSgO5O2lQnf7eI9HPbv5xzHzPu660issm5bz9k3F8nr6qIvOdcn6MiMtUqHD+hqnYr\ngxswEKiPeSmIBpKAek7eMCANeAIIcvLPATWc/DXAUSACqAh8Csx38hoDCnzo5IUANzrl93TKexrY\nD5R3jhkF7AJCgRXAdDc51wAjs8k1HAgEpgKHgLeBCkAvIBGo5OzfDbjZOcdI4AQwIJuc5dzqGgZs\ncL7XAM4AQzCm1UHO75puch1wzi3E+f2ql2vdx6k743p97NT9Cyf/DWC5U2dl4AvgFS9lZcro/H4I\nqOnI+DvgOBDs5diFwCJHhgjnHmacb0XgsHNtywFtgFNACyf/fecZ6Oxcz2AnbaqT/yKwwK2uvsBu\n53sDIAG42zm2p/O7tpO/FPirI0MdYCvwiL//I2Vx87sAdiseG7AN6O98Hwb8DIhb/lZgiPM9S+MH\ntAAuYxrpjIb2erf8F4BFbr8DnMaom1vacuA/wHagglv6GrIqhH1ueTc7ddV1S0sAWns5xxnAG873\nDDm9KYQhwNZsx38DDHOT63m3vLHAP73UOzfb9brRqfsXgGCU5Q1u+Z2A/3kpK1NGL/lngFYe0gOB\nVOAmt7SX3c43Glif7Zi/ApOd7+8DH2bLf58rCuEXGGUc6vxeALzofP898FG2Y1cAQ4G6wCUgxC1v\nELDa3/+JsrhZ+24ZRUR+A0zENIwAlQB3k8dRdf6dDgcxPYoMDmfLC8p2vHt+fWcfAFTVJSKHMW+O\nGbyDUQqjVfVSDqKfcPt+0Skve1olABHpCLyKeRsuj+lFLM6hbHeyyOxwMJvMx92+J2fU66WsuGzl\nZFAb0zOKE5GMNME04LkiIk8CI5w6FKhC1vvgXk85rr5vGYQDHUXkrFtaOeAjt9/ux2ZBVfeLyG7g\nHhH5AojC9DIyyh4oIve4HRIErHbygoBjbucfkFNdFt9hFUIZRETCMQ3wncA3qpouItswDVEGDURE\n3JRCI0yDnUGY2/dGmLfPU27p7srkZ8zbfEb94ux31PldCfP2/h4QIyKfqurpgp0lYEwzbwF3qWqK\niMzgSmOZW5jfnzGNlTuNgH9egxzHuPp6ZXAKo8RaqurR/BTqjBc8jbmPOx1Fe4as9zGDeIy5LQzY\n40GOw8BaVe2ZQ5W5XbO/Yd7uA4BdqrrfreyPVHWUh3Ooh+kh1FLH28viP+ygctmkIubPHQ8gIsMx\nb9Hu1AEeF5EgERkINAe+cst/SERaiEgoMAVYoqrpXupbBPQVkTtFJAhj674EbHLy3wRiVXUk8Hdg\ndoHP0FAZOO0ogw7Ag2558YALuN7LsV8BN4rIg84AaTTGNPblNcixCBjmdr0mZ2SoqgujnN8QkToA\nItJARHrnodzKmEY+HignIi9ieghX4dybzzAKN1REWmBMNhl8iTnfIc49DxKR9uIM/ueRhZhxnDEY\nZZzBfEzPobeIBIpIsIh0E5GGqnoMWAn8n4hUEZEAMY4GXfNRr6WQsAqhDKKqu4D/w9jET2De3jdm\n220L0BTzBjsNeEBVE9zyP8LYkI9jBhgfz6G+/2IGP2c55d0D3KOql0WkP2bQdYyz+0TgFhEZXIBT\nzGAsMEVEEjGDnovcZEp2zmuj4/lyazaZE4B+GOWVgHkT76eqp/IrhKr+A9MD+hozmP51tl1+76Rv\nFpHzwCqgWR6KXoHpsezFmH9SyNnU8luMWes45t7Nc5MxEdOY/xrTOzoO/BFjZssTTuP+DXAb8Ilb\n+mGgP/AcRnkdBp7iSvvzG4xJbxdmDGQJUC+v9VoKD8lqJrZYjHsnZiD3di/5azBeRe8WpVwWi8W3\n2B6CxWKxWIBioBAcm+L3InIttlmLxWKxFBJ+NxmJyESgHVBFVfvltr/FYrFYfINfewgi0hAzo9Ha\noi0Wi8XP+HsewgyM90ZlbzuIyGhgNEDFihXb3nTTTUUkWh74z3/g8uWr08uXh5tvvjrdYnHHT8/P\npUuwYwfUrw/1rC9PmSAuLu6UqtbObT+/KQQnENZJVY1zD3SVHVWdA8wBaNeuncbGxhaRhHlgwQIY\nPRqSkzOTNDQUmTMHBheG16SlVBPgpYOemgo+fM5ffBF27oQtW6BhQ59VYylGiEj2Wfce8afJqDMQ\nJSI/YSa09BCR+X6UJ/8MHgxz5kB4OCrCT1UhLuYRqwwseaNRo/ylFwLp6TBvHvTubZWB5Wr8phBU\n9VlVbaiqjTGTYb5W1Yf8Jc81M3gw/PQT6WmX6RrTiN/Vjsv9GIsFYNo0LpXPFrIoNBSmTfNZlatW\nwZEjMGKEz6qwlGD87nZaWigXUI7xHcez7uA6Yn8uRmYtS7HlYN/bGdHPxZk6VUAEwsNNj9OHPcy/\n/hVq1oR77sl9X0vZo1goBFVdUxpcTkfeMpLK5Svz+jev+1sUSwlgxuYZfNI6kAt7d4DLBT/95FNl\ncPAgfP45jBoFFfIckMJSligWCqG0UKVCFf589nZeGfE3NCAAGjc2A88WSzbOXDzDO9+9w6CIQYRV\nDcv9gELgz382n2PG5Lyfpezib7fT0sWCBTw4aw0BJkq/eSUbPdrk2YFmixtz4uaQlJrE7zr9rkjq\nu3gR3n0XBgzw6Zi1pYRjewiFyaRJBFy8mDUtORkmTfKPPJbix4IFaHg4T3V5huOzgmn17x1FUu3H\nH8Pp0/C415i0FovtIRQuhw7lL91StnDmrUhyMgLUTUgpkh6kKsyaZea63XGHz6qxlAJsD6Ew8YNf\nuaUEMWlSlkmMQJH0IDdsgB9+gMceM85MFos3rEIoTKZNM37kbqQGB/nUr9xSgvBTD3LWLKhe3Q5j\nWXLHKoTCJNvM5eM1KzDx/spc/vVAf0tmKQZomBdvIh/2II8cgc8+MxPRsr2rWCxXYRVCYePMXBaX\ni++/WcpbTU/z8X8+zv04S6lnx4RBJAVlS/TxzOTZs80Uh7FjfVaFpRRhFYIP6fOLPrS+rjWvbHiF\ndJe39ectZYVx1Tbx+19VRxs1KpKZySkppvh77oEmTXxShaWUYRWCDxERnrv9Odqu3ktKw+tMdEs7\nWa1Msu7gOtYfWk+zx/6AHDxYJDOT582D+HiYMMFnVVhKGdbt1Mfc/30K/b4QQlJPmQQ7Wa1M8tK6\nl6hbsS4jbxlZJPWlpcGf/gS33grduhVJlZZSgO0h+JiA518gJDXbMqV2slrZYMECaNwYDQjgncdW\n8e6FHoQEhRRJ1QsXmg7Is89aV1NL3vH7msr5odgtkJMXAgLMzKDsiBizgaV04nHxpBBkzjs+7xm6\nXBAZaR6xH37wvg6PpewgInGq2i63/eyj4mvsZLWyiYdJaJJ8sUh6hl98YVZEe+YZqwws+cM+Lr7G\nw2Q19bGroaUY4KdJaKrwyivGqyg62qdVWUohViH4miyT1eCnqvBtzCg7oFza8VPPcM0as1by009D\nOesyYsknViEUBc5kNVdaGn2mNuPhiqvsvITSzrRppJTP9vcqgp7hyy/DddfBsGE+rcZSSrEKoQgJ\nDAjkD93+wM74nSzaucjf4lh8yJrODXi4n4vzdasX2fKY335r1kyeOBGCg31WjaUUYxVCETOw5UCe\n/qkhd3T9jV1VrZSiqkz6ehLrOjcg6PDRIpmEBjBlClSrBo8+6tNqLKUYa2UsYgI+/hvTFsZTLiXN\nJNiJaqWOr/Z9xabDm/hrv78W2byDDRvgyy/h1VehcuUiqdJSCrE9hKJm0iTKpVzKmmYnqpUOnNXQ\n7mrWjyNvluPhXUVjt1E1Lqb165s1DyyWa8X2EIoau6pa6STbamgNzqTBo2MgINDnPb8vv4SNG+Gv\nf7Uhri0Fw85ULmoaNzZmouyEhxs7s6Vk4qf7mp4OrVvDpUtmMlpQ9vDaFgt2pnLxxcNEtcsVytmJ\naiUdP/X8FiyAHTtg6lSrDCwFx28KQUTCRGS1iOwSkZ0iMt5fshQpbhPVEOFU7YqMukc52Pd2f0tm\nKQDpDRt4zvDhRLRLl+DFF6FtW3jgAZ9VYylD+LOHkAb8TlVbALcC40SkhR/lKTqciWq4XFzct5tF\nrYOY9LUdVC7JfPJgK7+shnbwoAlVYWMWWQoDvz1GqnpMVb9zvicCuwEvr1mll7CqYTxx6xO4Fizg\nUsN6dhGdEsiPZ35keKV/Mf+3d2T2/Hw9Ee3cOWMmuvNO6NnTJ1VYyiDFwstIRBoDbYAtHvJGA6MB\nGpXSCKHPH7kevoAKqcdNgp2bUKL4/arfExQQxD1/+Bu8Xr9I6nzxRUhIgD/+sUiqs5QR/N7RFJFK\nwKfABFU9nz1fVeeoajtVbVe7du2iF7AICJ08ldDUbIl2bkLxxm3xm9dGLeHD5D7Ur1w0yuCHH+Ct\nt8yM5LZti6RKSxnBr26nIhIEfAmsUNXXc9u/VLidesIuolOy8PPiN126wN69Zqte3afVWUoJxd7t\nVEQEeA/YnRdlUKqxi+iULPy4+M2HH8KmTWa9ZKsMLIWNP01GnYEhQA8R2eZsd/tRHv/hYW6CKyTE\nzk0orvhpzsGZM2adg06dYOhQn1ZlKaP4bVBZVTcAdvlvuGJmmDQJPXSIw1VhyUMtmGgHlIsnjRp5\nnpXs4x7d88+bgeSVK62bqcU32MequODMTRCXi7998Qq/qxXHV/u+8rdUFg/8+OSIIp9zEBcHf/kL\njBtnQlVYLL7AKoRiyBOdnmDij9fRqmN/u2ZCMSPdlc6vyn/OUw9UwRUWViRzDi5fhhEjoE4ds+aB\nxeIrisU8BEtWyi9czJ8WnyHwol0zodiwYAFMmkTAoYMsqQI/PzOWgI/fLpKqY2KMq+nnn5sFcCwW\nX2GjnRZHbETU4oVHN9NQxMdLYoLxKOrSxayR/N57Pq3KUorJq9upVQjFETsvoXjhJwV94YIZL0hP\nNz2EKlV8VpWllFPs5yFYcsDOSyhe+MnN9Kmn4Mcf4f33rTKwFA1WIRRHPMxLSA6C+ElP+Emgso0/\nQlv/4x8mmunEidC1q8+qsViyYAeViyNu8xI4dIi0BvUZ1ymeZt+9y+/DX0cOHzaN0bRpdpC5CJhz\nf2N+8/YRKrrHm/Khm+nJk8arKCLCRDTNK6mpqRw5coSUlBSfyGUp/gQHB9OwYUOCrnG1JKsQiiuD\nB2c29uWAQS8No/NLHyAZjZL1PCoSlv93OWOrbaDWUwMYuOB7YybyoTJOTYVf/crMSv7HPyA4OO/H\nHjlyhMqVK9O4cWNMZBhLWUJVSUhI4MiRIzRp0uSayrAmoxJCz3dXZ31DBRsR1Ve4RTJtc+u9PHMw\njP5TPslc1IiffvKZEn76aVi7Ft55B1q1yt+xKSkp1KxZ0yqDMoqIULNmzQL1EHNVCCLymIjYMFp+\nRg4f9pzh44HNMkeGi+nBg4gqYWddTFsYT/mFi31e9fz5MGMGjB8PDz10bWVYZVC2Kej9z0sPoS7w\nrYgsEpE+Yp84/2A9j4oGD5FMAy6m+Lwn9v33MGqUGUB+7TWfVmWxeCVXhaCqzwNNMaGqhwH7RORl\nEbnBx7JZ3PHgeZQeEmwjohY2fnAxPXUK7r0XatWCRYvgGscD/c7Zs2f585//DBh7NkBMTEzmb09p\nBw8e5JZbbqF169a0bNmS2bNneyz7p59+4uOPP/btCVjyNqisqioix4HjQBpQHVgiIv9S1ad9KaDF\nIVtE1KPVAni9X1WmDOxPJf9KVqrQsDDEU+Pvo55YcrJRBsePw/r1Jl5RSSVDIYwdO5YZM2ZQpUoV\nkpKSmDRpEl27dmXnzp1XpXXr1o1vvvmGChUqcOHCBSIiIoiKiqJ+/ayrz2UohAcffNBPZ1c2yMsY\nwngRiQP+BGwEblbVMUBb4H4fy2dxxy0i6oHv/s2JpBOkNLzOzGy2AfAKhYWDIosskunly/DAA7Bx\no1n4pn37Qq+iSHnmmWc4cOAArVu35ueffyY+Pp6ZM2fSp08fevXqxRNPPHFVWvny5alQoQIAly5d\nwuVlJv4zzzzD+vXrad26NW+88UZRnlaZIi89hBrAfaqaZe6+qrpEpJ9vxLLkRteNR+j09yDKX0oy\nCdYN9dpxAtfpoUN0qqJ827MF3XYm+dTFND0dfvMb41o6Z45xNS1MJkyAbdsKt8zWrc2gtzdeffVV\nduzYwbZt23jzzTepVKkSjz/+OP/85z9JSUlh165d1K5dO0taz549OXz4MH379mX//v289tprV/UO\nMsqePn06X375ZeGelCULuSoEVZ2cQ97uwhXHkmcmTaL8pWx+qBluqFYh5B23wHUCND4H4Wv+Bz5c\nH1nVrGvwySdmKcxRo3xSjV95/PHHERFiYmKIiYlBVfnlL395VRpAWFgY27dv5+eff2bAgAE88MAD\n1K1b189nUDaxE9NKKn6Kr1PqyGl9ZB8oBFV47jn461/h2WdNvCJfkNObfFGQ4YyYMYDs7pzoKQ2g\nfv36REREsH79esLCwnjkkUcAmDJlClVsMKciwU5MK6l4GeTUsLAiFqSEU4SK1eUysYlefRUeeaT0\nOYhVrlyZxMTEfB1z5MgRLl68CMCZM2fYsGEDzZo1o2PHjmzbto1t27YRFRV1TWVb8o9VCCUVD26o\nSUGwpXVtM8BsB5rzRGJdL3MuC9mr6NIlePBB8+Y+YQL8+c8mmnlpombNmnTu3JmIiAieymPXZ/fu\n3XTs2JFWrVrRtWtXnnzySW6++ear9ouMjCQwMJBWrVrZQWUfYk1GJZVsbqiX64ax8vpQev0jDtzi\nHV38zWhemgSfVxxMSIjRIRUrms9ataBhQwgLM5+NGsH110O5MvJU/PvHfzPvtjO8+2UgwZfTr2QU\nslfR+fNw333w73+bMYMnnyx9yiCD/M4V6NmzJ9u3b891v6CgIL7++utrFcuSR8rIX7/0oGocitat\ng/XrB7OuwmD2KnAc/nc8nIrZ9g9xJTPh5CT23j2YlBRISoLTp+HwYeP3Hh+fdf/y5aF5cxNps2VL\naNMGOnSAGjWK6gx9jJtHUdOqQv3+9XHNiYHJU33iVXT8ONx9N/znP8a1dMiQQinWYvEJViGUEPbu\nNW3Zxx/D/v0mrVo1s7zi8OHQrBmE338YPCy0ViflEEuWeC43JQWOHjUK4qefYNcu2LHDKBx3a1Oz\nZnDrrdCpkwmv0KxZCXzLzeZR1Ois8uqi0wT0DPHJymerVxu9cu4cfPEF9OlT6FVYLIWKVQjFmHPn\n4IMPTNCzb781DXCPHib4Wdeu5g0+wH0UqFEjz0s95mAPDw6GG24wm6f6v/sOvvkGNm+Gr74y8gDU\nqwfdu5vtl780wxXFHo9xigrfoyg9HaZMgZdeghtvNHMN8hu51GLxCxkxRvyxAX2A/wL7gWdy279t\n27ZaFjh1SvX551WrVlUF1TZtVKdPVz1yJJcD589XDQ01BznbpUA0vWYNVRHV8HCzzzXicqnu3as6\nZ47qr3+tWrfulapuvFH1scdU//531QsXrrkKn+ISyXJtMjeRQqvjyBHVrl1NsUOHqiYmFlrRubJr\n166iq8xSbPH0HACxmpc2OS87+WIDAoEDwPVAeeAHoEVOx5R2hXD8uOrTT6tWqmTuzH33qcbF5bOQ\n+fNNwy+iKdUqa0pgtsYvNLRASsEdl0t1507VGTNU77pLNTjYVFG+vGqvXqpvvqm6f3+hVHXtONfD\nJaJpAV4UQnh4gatJT1d97z3VmjVVK1ZU/eCDgoueX6xCsKiWXIXQCVjh9vtZ4NmcjimtCiEtTXXW\nLNXKlVUDAlQHDVLdsaMQCg4P91kD6InkZNUVK1QnTDA9hozqmjVTnThR9d//Vr10ySdVe8ZDj8mV\n/VoUgoLcskW1QwdT3G23qe7eXUjy5xOrECyqJVchPAC86/Z7CPCWh/1GA7FAbKNGjQrnihUjtm27\n0pj07Km6Z08hFl4EJpKc2LfP9B569jS9BjBK74EHVOfNUz12zMcCeFOIgYGFYkI7flx1xAhT5HXX\nqX70kek1+YvSoBDuuusuPXPmTI77zJs3T8eNG5evcr/99lt97LHHCiJaiaFUKwT3rTT1EJKTVZ96\nyrRNtWurLljgg8bES4OYXqNGplmpoI1iXklMVF26VHXkSNX69a+I06aN6nPPqa5bp5qaWrh1+mrM\nYPdu1VGjVCtUUC1XTvXJJ1XPnSskoQtASVAIqYVwk/OrEAqjzpJEQRSCP2cqHwXc4yw0dNJKPQcO\nGPfN114zLqN79phZrIXuxulhNnNKAKSdP2O8kVSvREn18YzmSpVgwACzVvCRI2aFsJdfNul//CPc\ncYeZ63DPPfDmm8b1VT240OaIsxYyAQFoeDiJlbysNHMNs5BVzVrHUVFmnsZHH8GwYcZN97XXwIba\nMSGq33777czfMTExTJ8+nTVr1tClSxeioqJo0aIFAAMGDKBt27a0bNmSOXPmZB7TuHFjTp06dVXZ\n8+bN48Ybb6RDhw5s3LgxMz0+Pp7777+f9u3b0759+8y8mJgYhgwZQufOnRkyZAhr1qyhX79+uFwu\nGjduzNmzZzPLaNq0KSdOnPBaVlJSEg8//DAdOnSgTZs2fP7554V74YoR/nQ7/RZoKiJNMIrg10Cp\nX/3iyy/NerkBAfD3v5tJSz7DbTZz5qSrcwmUP3sh635FHCVVxIRSbt3aBHg7exZWrbqyZUQ4rlsX\nbr8dbrvNbLfcYibOecRtjgGAHDpE+QBICwqkXOq1zUJ2uWDTJvj0U7MdPgw1a8LkyTB2bPFezGbC\nPyew7Xjhxr9ufV1rZvTxHjUvOjqaCRMmMG7cOAAWLVrEihUrOHDgAN999x07duygSZMmAMydO5ca\nNWpw8eJF2rdvz/3330/NmjU9lnvs2DEmT55MXFwcVatWpXv37rRp0waA8ePH88QTT3D77bdz6NAh\nevfuze7dJgjzrl272LBhAyEhIaxZswaAgIAA+vfvz9KlSxk+fDhbtmwhPDycunXr8uCDD3osa9q0\nafTo0YO5c+dy9uxZOnTowC9/+UsqVsw+DbTk4zeFoKppIvJbYAXG42iuqu70lzy+Jj0dYmJg6lQz\n+/fTT8H5b/iWwYOzNPTBAV46hX6Mklqtmlko5oEHzO+DB02Yh9WrzeIxn35q0oODryiSVq3MdvPN\nppfhaY5BsAuoXs3skIdZyKmpZkbx1q2wZQusWAHHjkGFCtC7t7l3DzxwVafL4tCmTRtOnjyZuThO\n9erVCQsL48CBA3To0CFTGQDMnDmTpUuXAnD48GH27dvnVSFs2bKFbt26Ubt2bcAonr179wKwatUq\ndu3albnv+fPnuXDBvPBERUUREhJyVXnR0dFMmTKF4cOHs3DhQqKjo3Msa+XKlSxfvpzp06cDkJKS\nwqFDh2jevPk1X6viil8npqnqV8BX/pShKEhKgoEDzQSl4cPh7bfBw3NaNHibvBYQYDYfLQiTH8LD\n4eGHzQamUd60ySiHuDj429/Afend666Do8cPebR/6unT/LDqFC6XafBTUyF1NZw5Y0xXR45cmaW9\nbZuZuQ1Qu7YxY91/P/TtW/JMQjm9yfuSgQMHsmTJEo4fP57Z0AJZ3qbXrFnDqlWr+OabbwgNDaVb\nt26kZFz4fOJyudi8eTPBwcFX5Xl7g+/UqRP79+8nPj6eZcuW8fzzz+dYlqry6aef0qxZs2uSsSRh\no536mLNnoVcv87b5l7/Ae+/5URmAx3EFBdOFKcIxhfxQr55pmF9/3djxz5wxDXjsxAWcqdqYn48H\n4PIyAHNQG9GmDbRta0JvdOliZnvff7+Z8T1zppkFHhwMjz5qlM2PP8KJE7BkCQwaVPKUgT+Jjo5m\n4cKFLFmyhIEDB3rc59y5c1SvXp3Q0FD27NnD5s2bcyyzY8eOrF27loSEBFJTU1m8eHFmXq9evZg1\na1bm7215WCZORLj33nuZOHEizZs3z+yZeCurd+/ezJo1K8P5he+//z7XOkoqNnSFDzl50pgadu40\nq2NlmET8SrZxBQ0IQNLTs+5TzFdeE4HwDQsIn31lzKCcKgq4q4X04FASJ0zjsw6m8xMUdGWrUsVE\nea1VqwTGZCrGtGzZksTERBo0aEC9evU87tOnTx9mz55N8+bNadasGbfeemuOZdarV4+YmBg6depE\ntWrVaN26dWbezJkzGTduHJGRkaSlpXHHHXcw27376IXo6Gjat2/P+++/n2tZL7zwAhMmTCAyMhKX\ny0WTJk1K7VKeovl25fAf7dq109jYWH+LkSeOHDExfg4dgs8+K8aBzQICvLvzhIf7dF3hAtG4sWfT\nV2CgGQ0ujjL7mN27d5dKu7Ylf3h6DkQkTlXb5XasNRn5gB9/NN4xx44ZU1GxVQbgfeU1KHLX1Bxx\ncyl1hTchs4WqAAAgAElEQVRCPSkDMMrA5TI2pTKkDCyWwsAqhEImw0x0/jx8/bWxWRdrvIwpXGVF\nSU6GoUP9sxJbhkupo6ACDh32FOXbUMgrnVksZQmrEAqRCxegXz9jLvrySzOQWewZPBjmzDHmIREI\nD79aGWRQlAPPbj0Chg69Omw1XG38L+SVziyWsoZVCIVEair86lfGLfKTT8xEqhLD4MHGxJJhagkP\nz/2Y5GTjplMY6ze7N/6NG5tZX249ArIPemegmkWRMWeONRNZLAXAKoRCQNW0X//4h3EtjYryt0QF\nxIMZyROakJB1nGH4cOO2k5OCyK3xP3gQnT37qh6BR8LDsyoyqwwslgJh3U4LgRdegPffNyENRo/2\ntzSFQPaQFwEBHt/SrzItpaZCQoL5nmFW2rjRLLV26JAJVpSYCJcvX9ln9uyrvJwkL55v1jxksRQ6\ntodQQD77zLRLI0YYhVBqcDcjffCB58lsuZGcjM7+y5W3/4SEK8ogs6B8uD0HBlrzUAkiI7hdXlm+\nfDmvvvqqDyUqPgwbNowl3hY69yNWIRSAffuMlaRDBxOOotROcPI08Owl7kx25FqnuXgaMP7gA2se\nKkyym+/86FaclpZGVFQUzzzzjN9kuFbS0tL8LUKhYRXCNXLxopl5XK4cLFpkAqCVarIPPL/5ZuFF\nefPU+D/6qB0w9iXZXHkLy3Ns2rRp3Hjjjdx+++3897//BeDAgQP06dOHtm3b0qVLF/bs2QOYt+RH\nH32Ujh078vTTT/P+++/z29/+lnPnzhEeHo7L5QJM+OmwsDBSU1O9luUtdHV2pkyZQvv27YmIiGD0\n6NGZ4Si6devG+PHjad26NREREWzduhW4Eka7U6dONG3alHfeeQfAY0jv119/nYiICCIiIpgx40os\nqQ8//JDIyEhatWrFkCFDMtPXrVvHbbfdxvXXX5+lt/Daa6/Rvn17IiMjmexmdpg/fz4dOnSgdevW\nPPLII6R7c7YoCHlZNKG4bMVpgZyHHzZrrXz1lb8l8SNu6zdrzZpXlkVzX4jG0wI12ZewHDOmyBfs\nKY3ka4EcHyyvGhsbqxEREZqUlKTnzp3TG264QV977TXt0aOH7t27V1VVN2/erN27d1dV1aFDh2rf\nvn01LS1NVbMufBMVFaVff/21qqouXLhQR4wYoarqtaxBgwbp+vXrVVX14MGDetNNN3mUMSEhIfP7\nQw89pMuXL1dV1a5du+rIkSNVVXXt2rXasmVLVVWdPHmyRkZGanJyssbHx2vDhg316NGjunr1ag0N\nDdUff/wxy7lfuHBBExMTtUWLFvrdd9/pjh07tGnTphofH5+l/qFDh+oDDzyg6enpunPnTr3hhhtU\nVXXFihU6atQodblcmp6ern379tW1a9fqrl27tF+/fnr58mVVVR0zZox+4GXh7oIskGMHla+BuXPN\n9vzzcNdd/pbGj2QLrc2CBVnXXrj7bmPmcfcYyggkdPp0mQwvUWzwFu68AGHQ169fz7333kuo03OM\niooiJSWFTZs2ZQl0d+nSpczvAwcOJDAw8KqyoqOj+eSTT+jevTsLFy5k7NixXLhwwWtZ3kJXV6pU\nKUu5q1ev5k9/+hPJycmcPn2ali1bcs899wAwaNAgAO644w7Onz+fuYhO//79CQkJISQkhO7du7N1\n61aqVauWJaT3hg0buPfeezMjrN53332sX78eEWHgwIHUqlULgBo1amTKMmDAAAICAmjRogUnTpwA\nYOXKlaxcuTJzvYcLFy6wb98+tm/fTlxcHO3btwfg4sWL1PHBghxWIeST7dth3Di4806zvoHFjewK\nAqBz56xKwiqA4oG3MOiFPNPb5XJRrVo1r1FIvYWojoqK4rnnnuP06dPExcXRo0cPkpKSvJblLXR1\n7969OXHiBO3ateOtt95i7NixxMbGEhYWRkxMTJaw25LNdJnx21t6QRfIqeBmZ1bHdKWqPPvsszzy\nyCNZ9p01axZDhw7llVdeKVCduWHHEPLB5cvwm9+YBV0+/tg4vVhyIfvYg1UGxQNPc00K6Mp7xx13\nsGzZMi5evEhiYiJffPEFoaGhNGnSJDNktaryww8/5FpWpUqVaN++PePHj6dfv34EBgZSpUoVr2V5\nC129YsUKtm3bxrvvvpvZ+NeqVYsLFy5c5eXzySefAOZtv2rVqlStWhWAzz//nJSUFBISElizZk3m\nW7o7Xbp0YdmyZSQnJ5OUlMTSpUvp0qULPXr0YPHixSQ47tinT5/O8bx79+7N3LlzMxf5OXr0KCdP\nnuTOO+9kyZIlnDx5MrOcg97ieRUA20PIB6+8Aj/8AJ9/XryXT7RYcsXT8qoF7L3dcsstREdH06pV\nK+rUqZPZcC5YsIAxY8YwdepUUlNT+fWvf02rVq1yLS86OpqBAwdmLn+ZU1l5CYNdrVo1Ro0aRURE\nBNddd91VDXtwcDBt2rQhNTWVuXPnZqZHRkbSvXt3Tp06xQsvvED9+vUzV2xzP/dhw4bRoUMHAEaO\nHJlp9pk0aRJdu3YlMDCQNm3aZAm5nZ1evXqxe/duOnXqBBjFOH/+fFq0aMHUqVPp1asXLpeLoKAg\n3n77bcLzElUgH9jw13lk2zZo3x6io2H+fL+IYLHkiA1/fe1069aN6dOn065d1gjRMTExVKpUiSef\nfNJPkuUfG/7ax6SmwrBhZoH1mTP9LY3FYrH4BmsyygMvv2xMRcuWmegLFouldOFulnInpox5jtge\nQi788ANMnQoPPgj9+/tbGoslZ0qSCdhS+BT0/luFkAPp6SY0hTUVWUoCwcHBJCQkWKVQRlFVEhIS\nrnK9zQ/WZJQDc+bA99+b9Q3yGLrHYvEbDRs25MiRI8THx/tbFIufCA4OpmHDhtd8vFUIXjh92sxE\n7tYN3CZGWizFlqCgoMyZsxbLteAXk5GIvCYie0Rku4gsFZFq/pAjJ158Ec6eNaaiUhvF1GKxWNzw\n1xjCv4AIVY0E9gLP+kkOj2zfblY+GzsWbr7Z39JYLBZL0eAXhaCqK1U1I4j4ZuDajV6FjCo8/jhU\nrw5/+IO/pbFYLJaioziMITwMfOItU0RGAxkLU14SkR1FIhV+GUiuBZwq8lqLjtJ8fqX53MCeX0mn\nWV528lnoChFZBVznIWuSqn7u7DMJaAfcp3kQRERi8zL9uqRiz6/kUprPDez5lXTyen4+6yGo6i9z\nyheRYUA/4M68KAOLxWKx+Ba/mIxEpA/wNNBVVZNz299isVgsvsdfXkZvAZWBf4nINhGZndsBDnN8\nKFNxwJ5fyaU0nxvY8yvp5On8SlT4a0vZQ0T+ASxU1Q+KoK7BwFBV7VUEdSnQVFX35/O4YcBIVb29\nEGQoUFnOi9xRVX2poLJYigfFwcvIYvGKqvpk1WoRaQz8DwjKcIFW1QXAAl/UVxpR1Uf9LYOlcLHB\n7Sw+RUTsS0cpRETsArKlkBKnEEpC2ItrRUQGishOEXGJiE9d4ETkGRE5ICKJIrJLRO51yxsmIhtF\n5C0ROedc7zvd8teIyCsislVEzovI5yJSw8lrLCIqIiNE5BDwtYj0EZEjInJJRC46xzd39r9BRE6L\nyC3O7/oiEi8i3dzqGplNrjdE5KyI/Cgitznph0XkpIgMdZOzr4h878h4WERi3C7BOufzrIhcEJFO\nTjkb3I6/TUS+da7BtyJyW7Zr8JKInHDuV6KI1Mrhej8lIsdE5GcReThbXgURmS4ih5zyZotISB7v\n45vOuZ0XkTgR6ZLDvjVFZLmz71bghmz5N4nIv5z78V8R+ZWIhInIaud6n3aelSSgu4i8LyJTnWN3\ni0g/t7LKOfcx477eKiKbnHJ+yLi/Tl5VEXnPuT5HRWRqUSgcEQl2nuEfnP9dqZyKKiKBzv/gy1x3\nVtUStQG9gHLO9z8Cf/S3TIV4bs0xE0jWAO18XNdAoD7mpSAaSALqOXnDgDTgCSDIyT8H1HDy1wBH\ngQigIvApMN/Jawwo8KGTVxE4BCQDdwE/ANOB/UB555hRwC4gFFgBTHeTcw3Gzu0u13AgEJjqlP02\nUMF5NhKBSs7+3YCbnXOMBE4AA7LJWc6trmHABud7DeAMMARjWh3k/K7pJtcB4EGgk3P9XvVyrfs4\ndWdcr4+dun/h5L8BLHfqrAx8AbzipaxMGZ3fDwE1HRl/BxwHgr0cuxBY5MgQ4dzDjPOtCBx2rm05\noA1motYdwC3A+84zcAhoCQQ7aVOd418EFrjV1RfY7XxvACQAdzv3oqfzu7aTvxT4qyNDHWAr8EgR\n/N/E7VkJArYAt/q7HfDBeU50nrkvc93X38IW8ETvdX8IS8tGESgED3VuA/o734cBP+M4HThpW4Eh\nbvK96pbXAriMaaQbO43d9U5eJ2AfsMj5/SzwnNMYdXMrYznwH2A7UCHbtXBXCPvc8m526qrrlpYA\ntPZyjjOAN5zvGXJ6UwhDgK3Zjv8GGOYm1/NuZf0M/NNLvXOzXa8bnbp/4TRKScANbvmdgP95KStT\nRi/5Z4BWHtIDgVTgJre0l93ONxpYn+2YvwKTne/vY5T850BPt7QMhfALjDIOdX4vAF50vv8e+Chb\n2SuAoUBd4BIQ4pY3CFhdxM9/KPAd0LEo6y2C82oI/BvoQR4UQkm37+YY9sLiHRH5DebNobGTVAkz\nfT+Do+o8UQ4HMT2KDA5nywvKdnxGfgNMQ3TQ+X0E6OjkN3Db/x2MUhitqpdyEP2E2/eLAKqaPa0S\ngIh0BF7FvA2Xx/QiFudQtjv13WTO4GA2mY+7fXdl1OulrLhs5WRQG9MYxcmVsLqCacBzRUSeBEY4\ndShQhaz3wb2eclx93zIIBzqKyFm3tHLAR26/z2N6XVuyF66q+0VkN3CPiHwBRGF6GRllDxSRe9wO\nCQJWO3lBwDG38w/IJqfPcExTcRiF9raqXnVuJZwZmDlflfOyc7FUCJL3sBdplDCvkLycWxHIEI5p\ngO8EvlHVdBHZhmmIMmggIuKmFBphGuwMwty+N8I0+qfc0t2VSTLmj+9OGKaXgIhUwjy47wExIvKp\nqp6+1vNz42PMnJe7VDVFRGZwpbHMzd/6Zw8yNwL+eQ1yHOPq65XBKYwSa6mqR/NTqDNe8DTmPu5U\nVZeInCHrfcwgHvN/CQP2eJDjMLBWVXt6qa4ccD8wTlXPe9nnb5i3+wBgl15xqT2M6SGM8nAO9TA9\nhFp6JeBlkaGq6UBrMWORS0UkQlWLLF6aL3HGdE6qapz7mE1OFMtBZVX9papGeNgylMEwTNiLwdne\nYos9uZ1bEVER0yDGA4jIcMxbtDt1gMdFJEhEBmLGN75yy39IRFqISCgwBVji/LmycxTT4PUVMzDd\nCLge0whscvZ5E4hV1ZHA34G8TlTMjcrAaUcZdMDY+zOIx7zVX+/l2K+AG0XkQWeANBpjGst9YO5q\nFgHD3K7X5IwMVXVhlPMbIlIHQEQaiEjvPJRbGdPIxwPlRORFTA/hKpx78xlG4YaKSAuMySaDLzHn\nO8S550Ei0l5EmotIENAd2KGqn+Ugz0LMOM4YjDLOYD6m59DbGeAMFpFuItJQVY8BK4H/E5EqIhIg\nxtGgax7Ov9BQ1bOYHkufoqzXx3QGokTkJ8y96SEi83M6oFgqhJyQK2EvotSGvbgmVHUX8H8Ym/gJ\njC1+Y7bdtgBNMW+w04AHVDXBLf8jjA35OGaA8XEv1X2LMbNMBGZhlEdt4B5VvSwi/TF/wjHO/hOB\nW8RMEisoY4EpIpKIGfRclJHhPDvTgI2O58ut7gc659oPM1CbgHnm+qlqviNiquo/MD2grzGD6V9n\n2+X3TvpmETkPrCJv0SlXYHosezHmnxRyNrX8FmPWOo65d/PcZEzENOa/xvSOjmOcNipgem7n8GAq\ncsdp3L8BbsPNlKuqh4H+mLGjeEfGp7jS/vwGY9LbhRkDWQLUy/HMCwERqe30DHC8unpypfdU4lHV\nZ1W1oao2xtzXr1X1oZyOKXEzlUVkP+YhzWicNmspmSAjxvVzFqbBPAtsU9W8vCkWthzDyGEGq4is\nwXgVvZvH8u7GNIiBwFxVnVZIovodEfkbxq5eC6NcJ6vqe34VqhARkduB9ZgBf5eT/JyqfuX9qJKB\niEQCH2CeywCM48MU/0rlGxyT0ZOq2i/H/UqaQrD4nsJWCBaLpWTgd5NRviZNWCwWi8Vn+L2HICIT\nMYvkVMmtO2OxWCwW3+HXHoKINMTMaLSmB4vFYvEz/p6HkOukCXFbU7lixYptb7rppiISzWKxWEoH\ncXFxp1S1dm77+U0h5HXShKrOwVncoV27dhobG1tEElosFkvpQESyz7r3iD9NRvmeNGGxWCwW3+E3\nhXAtkyYsFovF4jv87nZqsVgsluKBvweVAVDVNZhwwhaL5RpJTU3lyJEjpKSk+FsUi58IDg6mYcOG\nBAUFXdPxxUIhWCyWgnPkyBEqV65M48aNcQslbSkjqCoJCQkcOXKEJk2aXFMZ1mRksZQSUlJSqFmz\nplUGZRQRoWbNmgXqIVqFYLGUIqwyKNsU9P5bhWCxWCwWwCoEi8VSjPj+++8ZMWIEAGvWrGHTpk2Z\neW+99RZz5871l2hlAqsQLBZLseHll1/m8cfNWkvZFcLDDz/MrFmz/CVamcB6GVkspZAJE2DbtsIt\ns3VrmDEj530+/PBDpk+fjogQGRnJSy+9xMMPP8ypU6eoXbs28+bNo1GjRixevJg//OEPBAYGUrVq\nVdatW0diYiLbt2+nVatW/PTTT8yePZvAwEDmz5/PrFmz6NKlC40bN2br1q106NChcE/OAliFYLFY\nComdO3cydepUNm3aRK1atTh9+jRDhw7N3ObOncvjjz/OsmXLmDJlCitWrKBBgwacPXsWgNjYWCIi\nzNLejRs35tFHH6VSpUo8+eSTmXW0a9eO9evXW4XgI6xCsFhKIbm9yfuCr7/+moEDB1KrVi0AatSo\nwTfffMNnn30GwJAhQ3j66acB6Ny5M8OGDeNXv/oV9913HwDHjh2jdu2cA3LWqVOHPXtKzbLHxQ47\nhmCxWIqc2bNnM3XqVA4fPkzbtm1JSEggJCQkVx/6lJQUQkJCikjKsodVCBaLpVDo0aMHixcvJiEh\nAYDTp09z2223sXDhQgAWLFhAly5dADhw4AAdO3ZkypQp1K5dm8OHD9O8eXP279+fWV7lypVJTEzM\nUsfevXszzUqWwscqBIvFUii0bNmSSZMm0bVrV1q1asXEiROZNWsW8+bNIzIyko8++og333wTgKee\neoqbb76ZiIgIbrvtNlq1asVNN93EuXPnMpXAPffcw9KlS2ndujXr168HYOPGjfTs2dNv51ja8fua\nyvnBLpBjsXhn9+7dNG/e3N9iFIg33niDypUrM3LkyKvyvv/+e15//XU++ugjP0hWcvD0HIhInKq2\ny+1Y20OwWCzFhjFjxlChQgWPeadOneKll14qYonKFtbLyGKxFBuCg4MZMmSIxzxrKvI9todgsVgs\nFsAqBIvFYrE4WIVgsVgsFsAqBIvFYrE4WIVgsViKDXfffXdmbCNvvP/++/z2t7/NV7mxsbGZUVQt\n3rFeRhaLpchIS0ujXDnvzc5XX33lkzrbtWtHu3a5uuGXeaxCsFhKIRP+OYFtxws3/nXr61ozo4/3\nqHnPPPMMYWFhjBs3DoCYmBgqVapEu3bteOGFF6hevTp79uxh7969DBgwgMOHD5OSksL48eMZPXo0\nYKKcxsbGZgbIy2DevHm88sorVKtWjVatWmXOVYiPj+fRRx/l0KFDAMyYMYPOnTsTExPDgQMH+PHH\nH2nUqBGPPPII06dPZ/ny5Vx//fVs27aNatWqAdC0aVM2bNhAQECAx7KSkpJ47LHH2LFjB6mpqcTE\nxNC/f/9CvbbFBWsyslgshUJ0dDSLFi3K/L1o0SKio6MB+O6773jzzTfZu3cvAHPnziUuLo7Y2Fhm\nzpyZGf/IE8eOHWPy5Mls3LiRDRs2sGvXrsy88ePH88QTT/Dtt9/y6aefZpnhvGvXLlatWsXf/va3\nzLSAgAD69+/P0qVLAdiyZQvh4eHUrVvXa1nTpk2jR48ebN26ldWrV/PUU0+RlJRUCFes+GF7CBZL\nKSSnN3lf0aZNG06ePMnPP/9MfHw81atXJywsjAMHDtChQweaNGmSue/MmTMzG+XDhw+zb98+atas\n6bHcLVu20K1bt8zQ2NHR0ZmKZdWqVVkUxPnz57lw4QIAUVFRHiOjRkdHM2XKFIYPH87ChQszlZa3\nslauXMny5cuZPn06YCKuHjp0qMSHCfGE3xSCiIQBHwJ1AQXmqOqb/pLHYrEUnIEDB7JkyRKOHz+e\n2dACVKxYMfP7mjVrWLVqFd988w2hoaF069Yt17DX3nC5XGzevJng4OCr8tzrdKdTp07s37+f+Ph4\nli1bxvPPP59jWarKp59+SrNmza5JxpKEP01GacDvVLUFcCswTkRa+FEei8VSQKKjo1m4cCFLlixh\n4MCBHvc5d+4c1atXJzQ0lD179rB58+Ycy+zYsSNr164lISGB1NRUFi9enJnXq1evLOssb8vDuqEi\nwr333svEiRNp3rx5Zs/EW1m9e/dm1qxZZAQC/f7773Oto6TiN4WgqsdU9TvneyKwG2jgL3ksFkvB\nadmyJYmJiTRo0IB69ep53KdPnz6kpaXRvHlznnnmGW699dYcy6xXrx4xMTF06tSJzp07ZzHVzJw5\nk9jYWCIjI2nRogWzZ8/Ok5zR0dHMnz8/Sy/GW1kvvPACqampREZG0rJlS1544YU81VESKRbhr0Wk\nMbAOiFDV89nyRgOjARo1atT24MGDRS6fxVISKA3hry0Fp0SHvxaRSsCnwITsygBAVeeoajtVbZfb\neqsWi8ViuXb8qhBEJAijDBao6mf+lMVisVjKOn5TCCIiwHvAblV93V9yWCwWi8Xgzx5CZ2AI0ENE\ntjnb3X6Ux2KxWMo0fpuHoKobAPFX/RaLxWLJit8HlS0Wi8VSPLAKwWIpqyxYAI0bQ0CA+VywoFCL\nj4mJyQz3kBeWL1/Oq6++WqgyFFeGDRvGkiVL/C3GVdhYRhZLWWTBAhg9GpKTze+DB81vgMGDi1yc\ntLQ0oqKiiIqKKvK6C0puIb1LEraHYLGURSZNuqIMMkhONukFYNq0adx4443cfvvt/Pe//wXgwIED\n9OnTh7Zt29KlSxf27NkDmLfkRx99lI4dO/L0009nLnxz7tw5wsPDcblcACQlJREWFkZqaqrXsuLj\n47n//vtp37497du3Z+PGjR7lmzJlCu3btyciIoLRo0dnhqPo1q0b48ePp3Xr1kRERLB161bA9HKG\nDBlCp06daNq0Ke+88w5g4jF16dKFqKgoWrQwEXdef/11IiIiiIiIYMaMK8EFP/zwQyIjI2nVqhVD\nhgzJTF+3bh233XYb119/fZbewmuvvUb79u2JjIxk8uTJmenz58+nQ4cOtG7dmkceeYT09PQC3Ckv\nqGqJ2dq2basWi8Uzu3btyvvOIqpw9SZyzfXHxsZqRESEJiUl6blz5/SGG27Q1157TXv06KF79+5V\nVdXNmzdr9+7dVVV16NCh2rdvX01LS1NV1Xnz5um4ceNUVTUqKkq//vprVVVduHChjhgxQlXVa1mD\nBg3S9evXq6rqwYMH9aabbvIoY0JCQub3hx56SJcvX66qql27dtWRI0eqquratWu1ZcuWqqo6efJk\n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\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1122f8c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "\n",
    "def approximation_derivee(f,h,t):\n",
    "    return (f(t+h)-f(t-h))/(2*h)\n",
    "\n",
    "figure()  # pour faire des figures séparées \n",
    "subplot(2, 1, 1)  ### la 1ère figure\n",
    "\n",
    "\n",
    "def f(t):\n",
    "    return t**3-t\n",
    "\n",
    "def f1(t):\n",
    "    return 3*(t**2)-1 \n",
    "\n",
    "t = linspace(-3, 5, 100)\n",
    "y=f(t)\n",
    "y1=f1(t)\n",
    "y2=approximation_derivee(f,0.1,t)\n",
    "\n",
    "plot(t,y,\"b-\")   \n",
    "plot(t,y1,\"g-\")\n",
    "plot(t,y2,\"ro\")\n",
    "    \n",
    "xlabel(\"t\")\n",
    "ylabel(\"y\")\n",
    "legend([\"t**3-t\",\"vrai derivee\",\"derivee-approchee\"])\n",
    "axis([-2, 4, -2, 4])   # [tmin, tmax, ymin, ymax]\n",
    "title(\"approximation de la derivee\")\n",
    "savefig(\"approximation-derivee_poly.pdf\")\n",
    "\n",
    "subplot(2, 1, 2)   ### la 2ème figure\n",
    "\n",
    "def g(t):\n",
    "    return sin(t)\n",
    "\n",
    "def g1(t):\n",
    "    return cos(t) \n",
    "\n",
    "t = linspace(-6, 6, 60)\n",
    "z=g(t)\n",
    "z1=g1(t)\n",
    "z2=approximation_derivee(g,0.1,t)\n",
    "plot(t,z,\"b-\")  \n",
    "plot(t,z1,\"g-\")\n",
    "plot(t,z2,\"ro\")\n",
    "    \n",
    "xlabel(\"t\")\n",
    "ylabel(\"y\")\n",
    "legend([\"cos(t)\",\"vrai derivee\",\"derivee-approchee\"])\n",
    "axis([-6, 6, -2, 4])   # [tmin, tmax, ymin, ymax]\n",
    "title(\"approximation de la derivee\")\n",
    "savefig(\"approximation-derivee_cos.pdf\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Exercice 3"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "On se donne une fonction strictement convexe. On rappelle que cela signifie\n",
    "que sa courbe repr\\'esentative est toujours en-dessous de ses cordes :\n",
    "\n",
    "\n",
    "\n",
    "1. Ecrire une fonction ${\\rm \\texttt{Pente(f,a,b)}}$ qui retourne  le taux d'accroissement de la fonction $f$ sur le segment $[a,b]$, c'est-à-dire $\\displaystyle \\frac{f(b)-f(a)}{b-a}$.\n",
    "\n",
    "\n",
    "2. Si $f$ est strictement convexe sur $[a,d]$,\n",
    "on sait qu'elle admet un unique minimum. \n",
    "Ecrire une fonction ${\\rm \\texttt{ComparePente(f,a,b,c,d)}}$ qui retourne,\n",
    "parmi les 4 intervalles $[a,b]$, $[a,c]$, $[b,d]$,$[c,d]$,\n",
    "l'intervalle dans lequel se trouve son minimum \n",
    "(voir dessins ci-dessous où on appelle $x_0$  le minimum).\n",
    "\n",
    " \n",
    "3. Ecrire une fonction ${\\rm \\texttt{ApproximationMinimum(f,a,b,$\\epsilon$)}}$ qui, pour une fonction strictement convexe $f$ sur un intervalle  $[a,b]$, retourne  une approximation de son minimum à $\\epsilon$ près.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(-1.0, 3)\n",
      "1.9922926533707415\n",
      "0.0077073466292586455\n"
     ]
    }
   ],
   "source": [
    "def Pente(f,a,b):   ## calcul de la pente de f entre les points d'abscisses a et b\n",
    "    return (f(b)-f(a))/(b-a)\n",
    "\n",
    "def ComparePente(f,a,b,c,d):  ## recherche de l'intervalle où s'annule la dérivée\n",
    "    pab=Pente(f,a,b)\n",
    "    pbc=Pente(f,b,c)\n",
    "    pcd=Pente(f,c,d)\n",
    "    if pab >=0:\n",
    "        return a,b\n",
    "    elif pbc >=0:\n",
    "        return a,c\n",
    "    elif pcd >=0:\n",
    "        return b,d\n",
    "    else:\n",
    "        return c,d\n",
    "\n",
    "def Minimum(f,a,b,epsilon):    ## on cherche le minimum de f convexe sur [a,b]\n",
    "                               ##  on se contene d'une approximation à epsilon/2 près \n",
    "    while b-a > epsilon:\n",
    "        pas=(b-a)/3            ## on coupe [a,b] en 3 sous-intervalles\n",
    "        a1,b1=a+pas,b-pas\n",
    "        a,b=ComparePente(f,a,a1,b1,b)\n",
    "    return (a+b)/2\n",
    "    \n",
    "def f(t):\n",
    "    return (t-2)**2\n",
    "    \n",
    "def g(t):\n",
    "    return t**2\n",
    "\n",
    "\n",
    "print(ComparePente(f,-1.0,2.0,3,6))\n",
    "\n",
    "print(Minimum(f,-4.0,6,0.1))\n",
    "print(Minimum(g,-4.0,6,0.1))\n",
    "    \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "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.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
