{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Représentation graphique en langage Python\n", "\n", "L’objectif de ce complément est d’aborder, à travers des cas concrets rencontrés aux cours des activités expérimentales et numériques du programme, la majeure partie des instructions du langage de programmation Python présentes dans le point numérique du manuel." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "Dans de très nombreuses situations en Physique-Chimie, comme en mécanique pour représenter les positions successives d'un mobile assimilé à un point lors de son mouvement ou en électricité pour tracer la caractéristique tension-courant d'un dipôle, il est utile de tracer la représentation graphique $y = f(x)$ d'une grandeur $y$ en fonction d'une grandeur $x$.\n", "\n", "En langage de programmation Python, une représentation graphique se fait grâce aux fonctions et instructions du module ```pyplot``` de la bibliothèque `matplotlib` habituellement importé sous le préfixe `plt`." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "#!/usr/bin/python \n", "# -*- coding: utf-8 -*-\n", "import matplotlib.pyplot as plt # Importe le module pyplot en plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La représentation graphique de la courbe d'équation $y=f(x)$, se fait grâce à l'instruction `plt.plot(x,y,paramètres)` où `x` et `y` sont des objets contenant les abscisses et les ordonnées des points à représenter et `paramètres` précise l'aspect des points et/ou de la courbe. \n", "\n", "Les objets `x` et `y` peuvent être : \n", "$\\quad$ - soit des listes de nombres de type «liste» ; \n", "$\\quad$ - soit des tableaux de nombres comportant une seule ligne, de type «tableau» («array» en anglais) de la bibliothèque `NumPy`. \n", "\n", "Quel que soit le type des objets `x` et `y`, la seule contrainte de l'instruction `plt.plot(x,y)` est qu'ils aient le même nombre de valeurs, c'est à dire qu'il y ait *autant de valeurs pour les abscisses que de valeurs pour les ordonnées*.\n", "\n", "La suite d'instructions pour tracer la courbe d'équation $y=f(x)$ est la suivante : \n", "$\\qquad$**a.** $\\,$ Définir le domaine des abscisses, c'est à dire la liste ou le tableau `x` des abscisses ; \n", "$\\qquad$**b.** $\\,$ Définir le domaine des ordonnées, c'est à dire la liste ou le tableau `y` des ordonnées ; \n", "$\\qquad$**c.** $\\,$ Définir la figure et l'habillage de la courbe à l'aide des instructions du module `pyplot` ; \n", "$\\qquad$**d.** $\\,$ Tracer les points et préciser leur aspect avec l'instruction `plt.plot(x,y,paramètres)` ; \n", "$\\qquad$**e.** $\\,$ Afficher la figure à l'aide de l'instruction `plt.show()`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exemple 1 : Lancer franc au Basket \n", "\n", "Les coordonnées ($\\,x\\,$,$\\,y\\,$) des positions successives du ballon lors d'un lancer franc au basket ont été obtenues par pointage de la position du centre du ballon sur 12 images de la vidéo du lancer, grâce à un logiciel dédié : \n", "$\\qquad$ - l'intervalle de temps entre chaque image vaut $\\Delta t$ = 66,62 ms ; \n", "$\\qquad$ - l'origine des dates est choisie à l'image immédiatement après que le ballon a quitté les mains du joueur ; \n", "$\\qquad$ - l'origine des axes est choisie à la position du ballon à l'origine des dates. \n", "\n", "### 1. Représentation des positions successives du ballon\n", "\n", "#### 1.1. Définition des listes `x` et `y` des coordonnées des points\n", "Les dates des positions et les coordonnées des points sont définies dans 3 objets `t`, `x` et `y` de type «liste» : \n", "$\\qquad$ - les valeurs sont rangées dans l'ordre entre crochets `[ ]` ; \n", "$\\qquad$ - le point `.` est le séparateur décimal ; \n", "$\\qquad$ - la virgule `,` permet de séparer les valeurs." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "t = [0.00,0.066,0.133,0.199,0.266,0.333,0.399,0.466,0.533,0.599,0.666,0.733]\n", "x = [0.00,0.28,0.55,0.80,1.05,1.31,1.56,1.85,2.11,2.35,2.61,2.87]\n", "y = [0.00,0.36,0.69,0.98,1.21,1.40,1.55,1.67,1.75,1.79,1.77,1.71]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2. Définition et affichage de la figure représentant les points\n", "La figure est initialisée par l'instruction `plt.figure()` qui permet également de définir sa taille (largeur,hauteur). \n", "Si la taille de l'image et les échelles sur les axes ne sont pas précisées, l'affichage s'adapte automatiquement.\n", "\n", "Les `paramètres` de l'habillage des points les plus courants sont : \n", "$\\qquad$ - couleurs : `'r'` rouge, `'b'` bleu, `'c'` cyan, `'g'` vert, `'k'` noir ; \n", "$\\qquad$ - formes : `'o'` point, `'+'` plus, `'x'` croix ; \n", "$\\qquad$ - ligne entre les points : `'-'` ligne continue, `'--'` pointillés, `':'` petits points. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure('Lancer franc',figsize=(10,6)) # Initialise et nomme la figure\n", "plt.title('Positions successives du ballon',fontsize = 14)# Titre du graphe\n", "plt.xlabel('x (en m)',fontsize = 14) # Label de l’axe des abscisses\n", "plt.ylabel('y (en m)',fontsize = 14) # Label de l’axe des ordonnées\n", "plt.axis('equal') # Repère orthonormé\n", "plt.grid() # Affiche une grille\n", "\n", "plt.plot(x,y,'or:',ms=4)# Nuage de points de coordonnées dans x et dans y \n", " # 'o' points 'r' rouges de taille (ms=markersize) 4,\n", " # ':'reliés par des petits points\n", " \n", "plt.show() # Affiche la figure" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Représentation des vecteurs vitesse\n", "#### 2.1. Définition des listes `Vx` et `Vy` des coordonnées des vecteurs vitesse \n", "Le vecteur vitesse $\\overrightarrow{v_{\\mathrm{i}}}$ au point $\\mathrm{M_{i}}$ est assimilable au vecteur vitesse moyenne entre les deux positions successives $\\mathrm{M_{i}}$ et $\\mathrm{M_{i+1}}$ séparées de l'intervalle de temps $\\Delta t = t_{\\mathrm{i+1}}-t_{\\mathrm{i}}$ : \n", "$ \\qquad \\qquad \\overrightarrow{v_{\\mathrm{i}}} = \\dfrac{\\overrightarrow{M_{\\mathrm{i}}M_{\\mathrm{i+1}}}}{t_{\\mathrm{i+1}}-t_{\\mathrm{i}}}$. \n", "Les coordonnées ${v_{x\\,\\mathrm{i}}}$ et ${v_{y\\,\\mathrm{i}}}$ du vecteur vitesse $\\overrightarrow{v_{\\mathrm{i}}}$ s'écrivent donc : $ \\qquad v_{x\\,\\mathrm{i}} = \\dfrac{x_{\\mathrm{i+1}}-x_{\\mathrm{i}}}{t_{\\mathrm{i+1}}-t_{\\mathrm{i}}}\\qquad$ et $\\qquad v_{y\\,\\mathrm{i}} = \\dfrac{y_{\\mathrm{i+1}}-y_{\\mathrm{i}}}{t_{\\mathrm{i+1}}-t_{\\mathrm{i}}}$. \n", "\n", "Ainsi, les listes `Vx` et `Vy` des coordonnées des vecteurs vitesse sont calculées à partir des valeurs contenues dans les listes `t`, `x` et `y`. \n", "\n", "Pour appeler les valeurs des listes `t`, `x` et `y` dans les calculs, on fait appel aux propriétés suivantes : \n", "$\\qquad$ - les valeurs rangées dans une liste `L` sont indexées par leur position `i` dans la liste ; \n", "$\\qquad$ - l'indice de la valeur occupant la première position dans la liste est `0` ; \n", "$\\qquad$ - l'instruction `L[i]` permet d'appeler la valeur rangée à la position d'indice `i`. \n", "\n", "*Remarque : \n", "Les valeurs des listes* `t`, `x` *et* `y` *portent les indices allant de* `0` *pour la première position à* `11` *pour la douzième position.*\n", "\n", "Le caractère répétitif du calcul des coordonnées des vecteurs vitesse pour chaque position `i` de la première à l'avant dernière position impose d'utiliser la boucle `for` que l'on peut par exemple intégrer dans la création de liste \"en compréhension\". Cette méthode de création de liste permet de définir une liste sur une seule ligne entre crochets. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "Vx =[(x[i+1]-x[i])/(t[i+1]-t[i]) for i in range(len(t)-1)]\n", "Vy =[(y[i+1]-y[i])/(t[i+1]-t[i]) for i in range(len(t)-1)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les formules du calcul des coordonnées du vecteur vitesse sont appliquées de la première position d'indice `0` à l'avant dernière position d'indice `10` grâce à la fonction `range(len(t)-1)`, en effet : \n", "$\\qquad$ - `range(n)` génère la liste des premiers entiers de `0` à `n-1` ; \n", "$\\qquad$ - `len(t)` renvoie le nombre d'éléments de la liste `t`. \n", "Donc `range(len(t)-1)` renvoie les entiers de `0` à `(len(t)-1)-1 = (12-1)-1` soit `10`. \n", "\n", "*Remarque : \n", "Il est possible d'utiliser une autre syntaxe de création des listes* `Vx` *et* `Vy` *à l'aide de l'instruction* `list.append(valeur)` *qui insère* `valeur` *en dernière position de la liste* `list`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "Vx_bis,Vy_bis = [],[] # Création de deux listes vides \n", "for i in range(len(t)-1): \n", " Vx_bis.append((x[i+1]-x[i])/(t[i+1]-t[i])) \n", " Vy_bis.append((y[i+1]-y[i])/(t[i+1]-t[i]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.2. Affichage du vecteur vitesse toutes les deux positions\n", "\n", "L'affichage d'une flèche se fait grâce à l'instruction `plt.arrow(x,y,dx,dy,paramètres)` où : \n", "$\\qquad$ - `x,y` sont les coordonnées du point du pied de la flèche ; \n", "$\\qquad$ - `dx,dy` sont les projections orientées de la flèche sur les axes des abscisses et des ordonnées; \n", "$\\qquad$ - `paramètres` permet de préciser l'aspect et les caractéristiques de la flèche.\n", "\n", "Afficher le vecteur vitesse $\\overrightarrow{v_{\\mathrm{i}}}$ au point $\\mathrm{M_{i}}$ revient à tracer une flèche au point de coordonnées `x[i],y[i]` telle que `dx`= `Vx[i]` et `dy`=`Vy[i]`. Cependant, pour visualiser correctement ces vecteurs, il est nécessaire de multiplier leurs coordonnées par un facteur d'échelle `e` à fixer selon la situation : `dx`= `e*Vx[i]` et `dy`=`e*Vy[i]`.\n", "\n", "Pour représenter le vecteur vitesse toutes les `2` positions, on parcourt grâce à une boucle `for` la liste d'entiers définie par la fonction `range(n,m,p)` de `n` inclus à `m` exclu par pas de `p` en prenant pour `n` l'indice de la première position, pour `m` l'indice de la dernière position dont on a calculé les coordonnées du vecteur vitesse et en fixant la valeur de `p` à `2`." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure('Lancer franc',figsize=(10,6)) # Initialise et nomme la figure\n", "plt.title('Positions et vecteurs vitesse',fontsize = 14) # Titre du graphe\n", "plt.xlabel('x (en m)',fontsize = 14) # Label de l’axe des abscisses\n", "plt.ylabel('y (en m)',fontsize = 14) # Label de l’axe des ordonnées\n", "plt.axis('equal') # Repère orthonormé\n", "plt.grid() # Affiche une grille\n", "\n", "plt.plot(x,y,'or',ms=4) # Nuage de points de coordonnées dans x et dans y\n", "\n", "for i in range(0,len(t)-1,2):\n", " plt.arrow(x[i],y[i],0.05*Vx[i],0.05*Vy[i],width=0.01,color='c',\n", " length_includes_head=\"true\",head_length=0.05, head_width=0.04)\n", "\n", "plt.show() # Affiche la figure" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exemple 2 : Caractéristique tension-courant d'un dipôle \n", "\n", "Les valeurs de la tension $U$ (en V) et de l'intensité $I$ (en mA) aux bornes d'un dipôle sont relevées expérimentalement et on souhaite représenter et modéliser la caractéristique tension-courant $U=f(I)$ du dipôle.\n", "\n", "### 1. Représentation de la caractéristique tension-courant $\\,U=f(I)$\n", "\n", "#### 1.1. Définition des tableaux `U` et `I` des données expérimentales\n", "\n", "Pour ranger une collection de nombres les uns à la suite des autres, on peut utiliser des tableaux à une dimension, c’est-à-dire à une seule ligne, de type «tableau» («array» en anglais) de la bibliothèque `NumPy` habituellement importée sous le préfixe `np`." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "#!/usr/bin/python \n", "# -*- coding: utf-8 -*-\n", "import matplotlib.pyplot as plt # Importe le module pyplot en plt\n", "import numpy as np # Importe la bibliothèque numpy en np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "L'instruction `np.array(liste)` convertit la liste de valeurs `liste` définie entre crochets avec la même syntaxe que dans l'exemple 1 en un tableau de nombres à une ligne.\n", "\n", "Les valeurs expérimentales de la tension $U$ (en V) et de l'intensité $I$ (en mA) sont rangées dans l'ordre dans deux tableaux `U` et `I`." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "U = np.array([0.0,1.0,2.0,3.0,4.0,5.0]) # U (en V) expérimental\n", "I = np.array([0.0,1.1,2.0,2.9,4.1,5.3]) # I (en mA) expérimental" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2. Définition et affichage de la figure représentant les points expérimentaux" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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8Atgl5Lt9wfDhw9nk002YYsttuAjH/kIH/3oR/nlL3/ZOv/GG2/kne98JyNGjKCpqYnPf/7zLFmypHV++8OOkydP5qijjuKEE05g3LhxbLzxxhx77LEsX768df5jjz3Gl770JSKidVRo0aJFTJ06lY033pgRI0aw1VZbcdZZZ62y9iuvvJKdd96ZESNGsOWWW3LiiSe21vbggw+yzjrr8JOf/KR1+WuvvZZhw4bxhz/8YaXazzjjDJqamhg9ejSf+tSnePnll1vXyUy++c1vMnHiREaOHMlb3/pWLrzwwtb5CxYsICK4+OKL2WOPPRg5ciRnn3326w47zpo1i9GjR3PNNdfwlre8hVGjRvH+97+fRYsWcemll/KmN72JsWPHMnXq1NVq/7LLLmOvvfZi1KhRbLvttlx33XWt86dMmQLARhttREQwvfaJ6tprr2XXXXdl/fXXZ4MNNmDvvfde6QazK7Y9d+7clfo9Irj00ksBuOCCC1hnnXV44IEHWucff/zxbLHFFvz9739f5fsnSeonMrPIA1gHGNPm51uAfVa1zs4775ydmTdvXqfzeuLFF1/MhF7ZVlemTZuW+++//0rTPvOZz+SGG26YmZkLFy7MUaNG5Sc/+cmcN29eXnnlldnU1JRf+MIXOt3G7rvvnuuuu26edNJJ+eCDD+Yll1ySgwcPzosuuigzM59//vncfPPN8+STT86nnnoqn3rqqczMPProo/Ptb3973nrrrfnoo4/mDTfckD/72c86rf3aa6/NMWPG5LnnnpsPP/xwXn/99fnmN785v/jFL7Yuc/bZZ+eYMWPy4YcfzmeeeSabmppy5syZK9U+evToPOigg/Lee+/Na6+9NjfddNP8zGc+07rMCSeckG9+85vzmmuuyUceeSR/+tOf5qhRo/Kqq67KzMxHH300gZwwYUL+/Oc/z0ceeSQff/zxvOGGGxLIZ599NjMzzzvvvBwyZEi+733vy7lz5+Ytt9ySm266ae655555wAEH5N13353XX399rrfeennmmWf2uP2tt946r7jiinzooYfyYx/7WG6wwQa5ePHiXLZsWV522WUJ5P33359PPfVUvvDCC5mZeemll+all16aDz30UN5999158MEH58SJE/PVV19dadt//OMfV+p7IH/+85+3Pj/kkENyhx12yFdffTVvuOGGHDJkSF5//fWdvneZHf++3HDDDatcR33L/q8v+79+6tL3hf7OA3OzO5moOwv1xgPYCri79rgfOLGrdQZ6+Lr11ltzww03zA996EOZWf3hnzhxYr722muty5x33nk5bNiwfOmllzrcxu67757vete7Vmpnzz33zMMPP7z1+YQJE/Jb3/rWSssceOCBOX369G7Xvuuuu+Zpp5220rRf/OIXuc466+Ty5ctbp33wgx/Md77znbnffvvlP/3TP+WyZctWev1jx47NxYsXt04755xzctiwYdnS0pItLS05YsSIvPHGG1dq55hjjsl99903M/8RUNoGpszsMHwB+cADD7Qu88UvfjEHDRrUusyKmlb0Z0/a/8EPftA6f+HChQnkTTfd1GEtnWlpaclBgwa1rtfd8PXCCy/khAkT8ogjjsjNN988jzvuuFW2k2n46o/s//qy/+vH8JXlzvnKzEeAt5dq73VmzuzwqsbWM3I6O0n7lFN69VYU1157LaNHj2bZsmUsXbqUD3zgA3znO98BqvPY3v3ud690U8z3vve9LFmyhIcffpi3ve1tHW6z/fTNNtuMZ555ZpV1fOpTn+Kggw7ijjvuYK+99uLAAw9k991373T522+/ndtuu41vfOMbrdOWL1/Oyy+/zF//+lc23XRTAH70ox+x9dZbc//993PPPfe87mT6t73tbSudaLnLLruwZMkS/vznP/Pqq6/yyiuvsM8++6x00vzSpUtpbm5eaTuTJnV9p5Lhw4ez9dZbtz5vampik002Ydy4cStNmzdvHgDz5s3rdvtt+3yzzTYD6LLP//znP3PSSSdx66238uyzz7J8+XKWL1/OX/7yly5fS1tjx45l1qxZTJkyhR122IEzzjijR+tLkuprrf1uxx7r5Es1Fy9ezJh11+30RLzetttuu3HOOecwdOhQNttsM4YOHdo6LzM7vVJvVVfwtd3GimVXnPPVmX333ZfHHnuMa665ht/85jfsv//+HHzwwZx33nkdLr98+XJOOeUUDj744NfN22ijjVp/vu+++1qvqnviiSfYcsstV1lH+zagOres/fcQtn+N3bk6dMiQlXfviFhlX/Wk/bbPV7w3XfX5gQceyPjx4zn77LMZP348Q4YMYdttt209b25F6M42++LSpUs73NZNN93E4MGDefrpp3nxxRf7zcUGkqSuNU746idGjRrV6S0ytt12W372s5+xfPny1j/EN998M8OGDWPixImr3eawYcN47bXXXjd93LhxTJ06lalTp7LvvvtyyCGH8IMf/IDhw4e/btmddtqJBx54YJW393jhhRf42Mc+xrHHHsvLL7/M1KlTufvuu1l33XVbl7n33nt56aWXWsPTH//4x9bXt3z5coYPH85jjz3GHnvssdqvd3Vtu+22vdL+sGHDAFbq8+eff5758+fzve99r/WE/DvuuINly5a1LrMixD711FOt0+66667Xbf+2227j9NNP5/LLL+eMM87giCOO4PLLL1/teiVpwDvllHpXsBLDVz9y1FFHcdZZZ3HUUUdxzDHH8Mgjj3D88cdz9NFHt96+YHU0Nzdz0003ceihhzJ8+HDGjRvHySefzE477cR2223HsmXLuPzyy9lqq606DF4AJ598MgcccAATJkzgQx/6EEOGDOG+++7jtttu45vf/CZQ3cds3LhxnHbaaSxfvpzrr7+eT3/601xwwQWt21m2bBmHHXYYJ598Mk8++SQzZ87kiCOOaA1jxx57LMceeyyZyW677UZLSwt/+MMfGDRoEDNmzFjtPuiOMWPG9Er7EyZMICK4+uqrOfDAAxk5ciTrr78+48aN44c//CFbbLEFTzzxBF/60pdWGp0bOXIk73rXu/jGN77BxIkTWbRoEV/5yldW2nZLSwsf/ehHOfLII3n/+9/PNttsw4477siPf/xjDj/88F7tD0kaMPrZN9l4h/t+ZPz48VxzzTXceeed7LDDDhx22GEccsghfPWrX12j7Z522mk8/vjjTJw4sXV0Zfjw4Zx44om8/e1v5z3veQ+LFy/myiuv7HQbe++9N1dffTU33HADu+yyC7vssgtf//rXWw/PXXDBBVxxxRX89Kc/ZejQoQwfPpyLLrqISy+9lIsvvrh1O7vvvjvbbbcdU6ZM4V/+5V/YbbfdWsMbwOmnn87MmTM588wz2W677dhrr7247LLLenT4ck30Rvvjx4/n1FNP5cQTT6SpqYmjjz6aQYMGcckll3DPPfew/fbb8+lPf5rTTz/9dWH33HPPBeAd73gHn/zkJ193PtcxxxzDsGHDWvvsTW96E9/+9rc55phj+NOf/rSGr16SVELRO9z31KRJk7L9PY9WmD9/Pttss80at1H6nK9GNn36dJ577jmuuuqq1mmd3WRVvauj3xdvMllf9n992f/1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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure('Etude d\\'un dipôle',figsize=(10,6))# Initialise la figure\n", "plt.title('Caractéristique Tension-Courant',fontsize = 14)# Titre du graphe\n", "plt.xlabel('I (en mA)',fontsize = 14) # Label de l’axe des abscisses\n", "plt.ylabel('U (en V)', fontsize = 14) # Label de l’axe des ordonnées\n", "\n", "plt.plot(I,U,'r+',ms=14,label='Points expérimentaux') # Points expérimentaux\n", " # d’abscisses dans I et d’ordonnées dans U\n", " # sous forme de points rouges non reliés\n", " # de taille 14, label = nom de la courbe\n", "\n", "plt.grid() # Affiche une grille\n", "plt.legend(fontsize=14) # Affiche la légende\n", "plt.show() # Affiche les courbes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Modélisation de la caractéristique \n", "Modéliser le nuage de points consiste à déterminer l’équation mathématique de la courbe qui se rapproche le plus de celle qu’ils tracent. \n", "\n", "Dans le cas de la caractéristique du dipôle étudié, les points sont alignés sur une droite passant par l'origine.\n", "\n", "En langage de programmation Python, pour déterminer l'équation de cette droite, deux méthodes distinctes sont envisageables : \n", "$\\qquad$ - à l'aide de la fonction `np.polyfit(I,U,1)` de la bibliothèque `NumPy` ; \n", "$\\qquad$ - à l'aide de la fonction `linregress(I,U)` du module `stats` de la bibliothèque `SciPy`. \n", "\n", "#### 2.1. Modélisation à l'aide de la fonction `np.polyfit(I,U,1)`\n", "\n", "**a. Modélisation**\n", "\n", "La fonction `np.polyfit(x,y,1)` modélise le nuage de points d’abscisses dans `x` et d’ordonnées dans `y` par une droite d’équation $y=ax+b$ et renvoie le tableau : `[a b]`.\n", "\n", "Les coefficients de la droite modélisant le nuage de points sont calculés par `np.polyfit(I,U,1)` et sont affectés dans cet ordre aux variables `a` et `b`." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "a,b = np.polyfit(I,U,1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Remarque : \n", "Si* `I` *et* `U` *sont de type «liste» et non de type «tableau», la fonction* `np.polyfit(I,U,1)` *peut être utilisée de la même façon car les fonctions de la bibliothèque* `NumPy` *s’appliquent aussi aux objets ressemblant à des tableaux (de type «array_like») comme les listes de nombres.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**b. Affichage de la modélisation**\n", "\n", "Il s'agit d'ajouter sur la figure la courbe d'équation $U_{modelisation}=f(I)$ où les valeurs de $U_{modelisation}$ sont définies par la modélisation précédente, soit : $U_{modelisation}=a\\times I +b$. \n", "\n", "Pour calculer les valeurs des ordonnées $U_{modelisation}$ de la modélisation, on fait appel à la propriété suivante : \n", "Les opérations mathématiques usuelles appliquées à un objet de type «tableau» s'appliquent séparément à chaque élément du tableau.\n", "\n", "Donc, comme `I` est de type «tableau», sachant que `a` et `b` sont des nombres, l'instruction `a*I+b` renvoie le tableau des résultats du calcul appliqué à chaque valeur du tableau `I`. \n", "\n", "L'affichage de la modélisation se fait alors grâce à l'instruction `plt.plot(I,a*I+b)` qui trace les points d'abscisses dans `I` et d'ordonnées dans `a*I+b`.\n", "\n", "*__Attention__ : Si* `I` *est de type «liste», les opérations mathématiques usuelles ne s'appliquent pas à chaque valeur de la liste.* " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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r6VYsWLUq1ePL7/8MnF/+/btAShXrhzGGPr165dYH61bt6Z06dKUKVOG66+/PtkEswnXXr16dbJ6N8Ywd+5cAGbOnEnx4sXZtm1b4v4nnniCypUr8+eff6b7/RMRye8OHIDu3eHqqyE6GubNg6++gmBOex1actZavz2A3cBGYB2wOqPjmzZtatOyZcuWNPdlxbFjx6yFbLlWRvr27Ws7deqUbNsDDzxgL7roImuttfv27bPFihWzgwcPtlu2bLGffPKJDQsLs4888kia12jbtq0tUaKEffrpp+327dvtnDlzbOHChe27775rrbX2999/t5dccokdNWqUPXjwoD148KC11tqhQ4fahg0b2pUrV9qff/7ZLl261L7//vtpxr5o0SIbGhpqp06dan/88Ue7ZMkSW6tWLTt8+PDEYyZPnmxDQ0Ptjz/+aA8dOmTDwsJsZGRksthDQkJs9+7d7caNG+2iRYvsxRdfbB944IHEY5566ilbq1Ytu3DhQrtr1y47a9YsW6xYMbtgwQJrrbU///yzBWyVKlXsBx98YHft2mX37t1rly5dagF7+PBha62106ZNswEBAfaaa66xq1evtitWrLAXX3yx7dChg+3cubNdv369XbJkiS1VqpSdOHFilsuvXbu2/fjjj+2OHTvsXXfdZcuUKWOjo6NtXFycnTdvngXs5s2b7cGDB+1ff/1lrbV27ty5du7cuXbHjh12/fr1tkePHrZ69er29OnTya79v//9L1ndA/aDDz5IfN2rVy/bqFEje/r0abt06VIbEBBglyxZkub3ztrUf16WLl2a7jmSs1T/3lL9eycn6/7QIWsrVbL22WetPXEiyQ4//Z3PTG6TEI2/k6+ymT0+vydfK1eutBdddJHt2bOntdb94a9evbo9e/Zs4jHTpk2zgYGB9vjx46leo23btvaKK65IVk6HDh3swIEDE19XqVLFTpgwIdkxN910k+3Xr1+mY2/durUdM2ZMsm3z58+3xYsXt/Hx8Ynbunbtalu0aGFvvPFG27JlSxsXF5fs/ZcsWdJGR0cnbpsyZYoNDAy0MTExNiYmxgYHB9tly5YlK2fYsGH2hhtusNb+naAkTZistakmX4Ddtm1b4jHDhw+3hQoVSjwmIaaE+sxK+W+99Vbi/n379lnAfvPNN6nGkpaYmBhbqFChxPMym3z99ddftkqVKnbQ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure('Etude d\\'un dipôle',figsize=(10,6))# Initialise la figure\n", "plt.title('Caractéristique Tension-Courant',fontsize = 14)# Titre du graphe\n", "plt.xlabel('I (en mA)',fontsize = 14) # Label de l’axe des abscisses\n", "plt.ylabel('U (en V)', fontsize = 14) # Label de l’axe des ordonnées\n", "\n", "plt.plot(I,U,'r+',ms=14,label='Points expérimentaux') # Points expérimentaux \n", "\n", "plt.plot(I,a*I+b,'b--',label='Modélisation')# Points d’abscisses dans I et\n", " # d’ordonnées dans a*I+b en bleu\n", " # reliés par des pointillés\n", " \n", "plt.grid() # Affiche une grille\n", "plt.legend(fontsize=14) # Affiche la légende\n", "plt.show() # Affiche les courbes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**c. Equation de la caractéristique** \n", "Les valeurs expérimentales de la tension $U$ et de l'intensité $I$ étant données avec 2 chiffres significatifs, le résultat de la modélisation est donné aussi avec 2 chiffres significatifs. \n", "Les instructions habituelles d'affichage de texte et de formatage des nombres permettent d'afficher l'équation de la caractéristique et la valeur de la résistance. \n", "\n", "*Remarque : \n", "Les valeurs de la tension $U$ et de l'intensité $I$ n'étant pas données dans le jeu d'unités __SI__, il faut en tenir compte pour afficher l'équation de la caractéristique en précisant les unités et pour donner la valeur estimée de la résistance en $\\Omega$.*" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\t Modélisation de la caractéristique de la résistance :\n", "\t U (en V) = 0.96 x I (en mA)\n", "\t La résistance estimée vaut R = 9.6e+02 Ω.\n" ] } ], "source": [ "print('\\t Modélisation de la caractéristique de la résistance :')\n", "print('\\t U (en V) =','{:.2f}'.format(a), 'x I (en mA)') \n", "print('\\t La résistance estimée vaut R =','{:.1e}'.format(1000*a),'Ω.')" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\t a = 0.9582309582309583 (en V/mA) \n", "\t b = 0.040540540540540876 (en V)\n" ] } ], "source": [ "print('\\t a =',a,'(en V/mA) \\n\\t b =',b,'(en V)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Remarque : \n", "Dans l'instruction* `print()`, `\\t` *insère une tabulation et* `\\n`*renvoie à la ligne.* " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2.2. Modélisation à l'aide de la fonction `linregress(I,U)`\n", "\n", "**a. Modélisation**\n", "\n", "La fonction `linregress(x,y)`, importée directement depuis le module `scipy.stats`, fait l'étude statistique du nuage de points d’abscisses dans `x` et d’ordonnées dans `y` en en calculant la régression linéaire et renvoie dans l'ordre cinq valeurs : \n", "$\\qquad$ - la pente ; \n", "$\\qquad$ - l'ordonnée à l'origine ; \n", "$\\qquad$ - le coefficient de corrélation ; \n", "$\\qquad$ - la pvalue ; \n", "$\\qquad$ - l'erreur standard. \n", "\n", "Les valeurs de l'étude statistique du nuage de points sont calculées par `linregress(I,U)` et rangées dans l'objet `Modele`, puis les deux premières valeurs de `Modele` sont affectées dans cet ordre aux variables `m` pour la pente et `p` pour l'ordonnée à l'origine." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "from scipy.stats import linregress\n", "Modele = linregress(I,U)\n", "m,p = Modele[0],Modele[1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">\n", "**b. Affichage de la modélisation**\n", "\n", "Le principe d'affichage est le même que précédemment grâce à l'instruction `plt.plot(I,m*I+p)` qui trace les points d'abscisses dans `I` et d'ordonnées dans `m*I+p`." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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qkVYWBiDBw++pPaXLl1K9+7dCQoKon79+nz55Zep6zt37gxA6dKlMcYwdOjQ1P5o3749V111FSVKlKBHjx7pbjCbcuwNGzak63djDEuWLAFg/vz5BAcH89tvv6WuHzt2LJUqVeKvv/666PdPRKSoOxx1mIGLB7L9uOvf1ld6vMIXt3+Bt3U4WEbWWo89gH3AFuBnYEN227do0cJmZdu2bVmuy42zZ89aC3lyrOwMGTLE9unTJ92yhx56yJYsWdJaa+3BgwdtUFCQHTFihN22bZv99NNPbXh4uH300UezPEbHjh1tsWLF7DPPPGN37NhhFy1aZL29ve17771nrbX25MmTtmLFivZf//qXPXLkiD1y5Ii11toHH3zQNmnSxK5bt87u3bvXrlmzxn744YdZZl+5cqUNDQ217777rt21a5ddvXq1rV27th09enTqNrNmzbKhoaF2165d9tixYzY8PNyOHz8+XfaQkBB700032S1bttiVK1facuXK2Yceeih1myeffNLWrl3brlixwu7Zs8cuXLjQBgUF2eXLl1trrd27d68FbJUqVezixYvtnj177IEDB+yaNWssYI8fP26ttXbOnDnWx8fHdu3a1W7YsMF+//33tly5crZbt262b9++9pdffrGrV6+2xYsXt1OnTs11+3Xq1LHLli2zO3futHfccYctUaKEjYqKsomJiXbp0qUWsL/++qs9cuSIPX36tLXW2iVLltglS5bYnTt32l9++cUOGDDA1qhRw8bFxaU79o8//piu7wG7ePHi1Oe33HKLbdq0qY2Li7Nr1qyxPj4+dvXq1Vl+76zN/OdlzZo1F91H8pf631nqf+fkZ98fiz5mK7xcwX6w5YP0Kzz0ez4ntU1KGk8XX6Vyun1RL77WrVtnS5YsaQcOHGitdf3ir1Gjhk1KSkrdZs6cOdbPz8/GxMRkeoyOHTvaq6++Ol073bp1s3fffXfq8ypVqtgpU6ak26Zfv3526NChOc7evn17O3HixHTLPv74YxscHGyTk5NTl11//fW2devWtnfv3rZNmzY2MTEx3esPCwuzUVFRqctmz55t/fz8bHR0tI2OjrYBAQF27dq16doZOXKk7dWrl7X27wIlbcFkrc20+ALsb7/9lrrN6NGjrZeXV+o2KZlS+jM37b/55pup6w8ePGgB+80332SaJSvR0dHWy8srdb+c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V69elu2uWLHC+vn52aSkpExf75w5cyxgN2zYkG6/S2krr2X287JmzRqPtS8XUv87S/1/eZKSk2zbd9raV75/JfuNMyjKfQ9ssDmobzTy5WEdOnTg559/Th1F6d27d7p5XRs3buTcuXOULl2akJCQ1MfWrVvZvXs3AL/99lvqaFSK1q1bX9BWxYoVCQ8PT32+bds2YmNj6dmzZ7pjz5w5M/XYAwYMIDY2lmrVqnH33XezePFi4uJclweXKFGCoUOH0qNHD/r06cMrr7zCgQMHsnyt27dvp23btumWtWvXjkOHDnH27NnUZY0bN063Tfl9VJEMAAAgAElEQVTy5Tl27NhF+zE7VapUISwsLNNjHj9+nAMHDjBixIh0/TB27NjUfgBYvXo13bt3p2LFioSGhnLjjTcSHx/P0aNHs2zXx8eHpk2bpj7PaVsiIgXd6r2r6TS3E+cSzuFlvFh751oeueYRp2MVSkVqwn3k0MjUr329fdM9D/INSvc8LCCMyKGRREVFAVAqqFS69WVDyqZ7XimsUrrn1a+qfkkZg4KCqFmzJuC6mrFz5848++yzjHd/7lRycjLh4eF88803F+xbrFgxgNTPwMpOcHBwuucpc4w+/fRTKleunG5dyqnPSpUqsWPHDlatWsVXX33F6NGjmTBhAuvWrSM4OJg5c+YwatQoVq5cybJly3jqqaf45JNP6NGjxwXtXyxn2uVpT7umrLvc+VAXO2bK/998803atGmT6f779++nT58+DBs2jIkTJ1KyZEk2bdrELbfcQnx8fJbt+vv7pzsNm5O2REQKAx8vH06eP8mhs4eoVbIWXkbjN5eqSBVfhdG4cePo1asXw4cPp3z58jRv3pw///wTLy8vqlfPvMCrV68e69evT7cs4/PM1K9fH39/f/bv30+XLl2y3C4gIIA+ffrQp08fxo4dS9myZfnuu++49tprAWjSpAlNmjTh8ccfp1evXsybNy/T4qt+/fp8++236ZZ9++23qSNJTgkPD6dChQrs3r073cUEaW3YsIH4+HheffXV1GJq+fLl+dKWiEhBlJScxKiVo6hQrAJj242lQ5UO/HLvLyq68oCKL4d16tSJBg0aMGnSJN544w26detG27Zt6d+/P5MnT6Zu3bocPXqUlStX0q1bN9q3b8/DDz9Mu3btmDJlCtdffz1r167l448/zrat0NBQ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure('Etude d\\'un dipôle',figsize=(10,6))# Initialise la figure\n", "plt.title('Caractéristique Tension-Courant',fontsize = 14)# Titre du graphe\n", "plt.xlabel('I (en mA)',fontsize = 14) # Label de l’axe des abscisses\n", "plt.ylabel('U (en V)', fontsize = 14) # Label de l’axe des ordonnées\n", "\n", "plt.plot(I,U,'r+',ms=14,label='Points expérimentaux') # Points expérimentaux \n", "\n", "plt.plot(I,m*I+p,'g:',label='Régression linéaire')# # Points d’abscisses\n", " # dans I et d’ordonnées dans m*I+p\n", " # en vert reliés par des petits points\n", "\n", "plt.grid() # Affiche une grille\n", "plt.legend(fontsize=14) # Affiche la légende\n", "plt.show() # Affiche les courbes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**c. Equation de la caractéristique** " ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\t Modélisation de la caractéristique de la résistance :\n", "\t U (en V) = 0.96 x I (en mA)\n", "\t La résistance estimée vaut R = 9.6e+02 Ω.\n" ] } ], "source": [ "print('\\t Modélisation de la caractéristique de la résistance :')\n", "print('\\t U (en V) =','{:.2f}'.format(m), 'x I (en mA)') \n", "print('\\t La résistance estimée vaut R =','{:.1e}'.format(1000*m),'Ω.')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\t m = 0.958230958230958 (en V/mA) \n", "\t p = 0.04054054054054124 (en V)\n" ] } ], "source": [ "print('\\t m =',m,'(en V/mA) \\n\\t p =',p,'(en V)')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Remarque : \n", "La comparaison des coefficients* `a` *et* `m`, *d'une part, et* `b` *et* `p`*, d'autre part, montre que les deux méthodes sont équivalentes dans le cas étudié.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exemple 3 : Simulation de la propagation d'une onde sinusoïdale \n", "\n", "La simulation de la propagation d'une onde sinusoïdale de période $T$, de longueur d'onde $\\lambda$ et d'amplitude $A$ consiste à afficher à chaque image la même sinusoïde de longueur d'onde $\\lambda$ et d'amplitude $A$ tout en la décalant dans la direction de propagation de l'onde de la distance dont elle a avancé image après image. \n", "A l'instant de date $t=0\\,$s, on suppose que l'équation de la sinusoïde s'écrit $y_{t=0}(x)=A\\times \\cos\\big(\\dfrac{2\\pi}{\\lambda}x\\big)$. \n", "On admet alors que l'équation de la courbe à afficher à l'image de date $t$ est : $y(x,t)=A\\times \\cos\\big(\\dfrac{2\\pi}{\\lambda}x-\\dfrac{2\\pi}{T}t\\big)$.\n", "\n", "*Remarque : \n", "Sachant que la célérité $v$ de l'onde s'écrit $v=\\frac{\\lambda}{T}$, en factorisant $\\frac{2\\pi}{\\lambda}$, on a : $\\frac{2\\pi}{\\lambda}x-\\frac{2\\pi}{T}t=\\frac{2\\pi}{\\lambda}\\times\\big(x-\\frac{\\lambda}{T}t\\big)=\\frac{2\\pi}{\\lambda}\\times(x-vt)$. \n", "Donc la courbe à afficher à l'image de date $t$ a pour équation $y_{t=0}(x-vt)$ , elle correspond à la translation de $+vt$ sur l'axe des abscisses de celle affichée à la date $t=0\\,$s.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. Visualisation d'une animation\n", "\n", "En langage de programmation Python, il est possible d'animer une figure grâce à la fonction `FuncAnimation` du module `animation` de la bibliothèque `matplotlib` importée directement en insérant en début de programme l'instruction : \n", "```python\n", "from matplotlib.animation import FuncAnimation\n", "```\n", "\n", "Cette fonction permet d'afficher à intervalles de temps réguliers une série de courbes.\n", "\n", "Pour visualiser les animations, il est nécessaire de paramétrer préalablement l'environnement." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.1. Sous Spyder \n", "\n", "Le logiciel doit être paramétré en mode de visualisation *automatique* qui permet de générer la figure dans une fenêtre de visualisation séparée, et non dans la console, à l'exécution du programme. La fenêtre de visualisation est alors interactive. \n", "Pour accéder au mode *automatique*, avant d'exécuter le programme, exécuter **dans la console** la commande 'magique' :\n", "```python\n", "%matplotlib auto\n", "``` \n", "\n", "Le retour à la visualisation de la figure dans la console se fait en exécutant la commande 'magique' `%matplotlib inline` dans la console. \n", "\n", "*Remarque : \n", "Une alternative à l'outil précédent consiste à paramétrer les préférences du logiciel depuis l'onglet Outils > Préférences > Console Ipython > Graphique > Sortie, en sélectionnant* `Automatique` *dans le menu déroulant ; le redémarrage du logiciel est alors nécessaire.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1.2. Dans un calepin IPython \n", "\n", "Pour accéder aux outils de figure interactive et aux animations sous **JupyterLab**, il est nécessaire d'introduire en début de programme la commande 'magique': \n", "```python\n", "%matplotlib widget\n", "```\n", "\n", "après avoir installé l'extension disponible __[ici](https://github.com/matplotlib/jupyter-matplotlib)__ lorsque cette extension n'est pas automatiquement accessible sous la version JupyterLab installée.\n", "\n", "*Remarque : Cette commande magique __ne fonctionne pas__ dans l'environnement __Colaboratory__.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Une alternative à l'outil précédent pour visualiser une animation dans un calepin consiste à introduire en début de programme les 2 lignes d'instructions suivantes :\n", "```python\n", "from matplotlib import rc \n", "rc('animation', html='jshtml')\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Il faudra dans ce cas : \n", "$\\quad$ - retirer les `#` devant ces 2 lignes et mettre un `#` devant la commande magique `%matplotlib widget` ; \n", "$\\quad$ - appeler l'animation par son nom en toute fin de programme (en retirant le `#` devant le nom `animation` de la dernière ligne) ; \n", "$\\quad$ - faire preuve de patience (le temps pour la machine de faire tous les calculs) après l'exécution du programme pour visualiser l'animation.\n", "\n", "*Remarque : Cette deuxième méthode __fonctionne__ dans l'environnement __Colaboratory__.*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Animation d'une sinusoïde pour simuler la propagation d'une onde" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pour utiliser la fonction `FuncAnimation`, il est nécessaire d'initialiser la figure contenant la courbe à animer puis de définir deux fonctions : `init()` pour fixer l'arrière de l'animation et `animate()` pour la mise à jour de la courbe à chaque image." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.1. Le script" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "eb0d162ee24746bfb1e7598d84577ec3", "version_major": 2, "version_minor": 0 }, "text/plain": [ "FigureCanvasNbAgg()" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#!/usr/bin/python \n", "# -*- coding: utf-8 -*-\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from matplotlib.animation import FuncAnimation\n", "from math import pi\n", "\n", "%matplotlib widget\n", "#from matplotlib import rc\n", "#rc('animation', html='jshtml')\n", "\n", "T = 1.0 # Période en s\n", "Lambda = 1.5 # Longueur d'onde en m\n", "A = 1.0 # Amplitude en m\n", "dt = 0.01 # Intervalle de temps en s\n", "\n", "x = np.linspace(0,5,256) # Domaine des abcisses (en m)\n", "\n", "# Initialisation de la figure\n", "fig = plt.figure('Propagation d\\'une onde sinusoïdale')\n", "plt.xlim(0,5)\n", "plt.ylim(-2*A,2*A)\n", "\n", "# Initialisation du graphe nommé `courbe` mis à jour au fur et à mesure\n", "courbe, = plt.plot([],[],'r',lw = 1.5) # Graphe sans point\n", "\n", "# Fonction fixant l'arrière de l'animation présent à chaque image\n", "def init(): # Ne contient pas d'argument\n", " courbe.set_data([],[]) # Met à jour `courbe` avec des données vides\n", " return courbe, # Retourne `courbe` suivi d'une virgule\n", "\n", "# Création de la fonction 'animate' appelée à chaque nouvelle image i\n", "def animate(i): # Un seul argument i associé à l'image i\n", " t = i*dt\n", " y = A*np.cos((2*pi/Lambda)*x - (2*pi/T)*t) # Données de l'image i\n", " courbe.set_data(x, y)# Met à jour `courbe` avec les données de l'image i\n", " return courbe, # Retourne `courbe` suivi d'une virgule\n", "\n", "# Animation de la figure affichant animate(i), à chaque image i, pour i\n", "# entier de 0 à 100 avec un délai entre 2 images égal à interval en ms\n", "# blit=True indique que seuls les éléments modifiés sont redessinés\n", "animation = FuncAnimation(fig, animate, init_func=init, frames=101,\n", " blit=True, interval=dt*1000, repeat=False)\n", "#animation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2.2. Commentaires du script\n", "---\n", "Après l'importation des éléments requis, on définit la période `T`, la longueur d'onde `Lambda`, l'amplitude `A` de l'onde et l'intervalle de temps `dt` permettant de décaler la sinusoïde entre chaque image affichée. \n", "```python\n", "T = 1.0 # Période en s \n", "Lambda = 1.5 # Longueur d'onde en m \n", "A = 1.0 # Amplitude en m \n", "dt = 0.01 # Intervalle de temps en s\n", "```\n", "\n", "*Remarque : \n", "Le nom* `lambda` *est réservé en langage Python, la majuscule L pour définir la longueur d'onde par* `Lambda` *est indispensable.*\n", "\n", "---\n", "Le domaine des abscisses est défini à l'aide de l'instruction `np.linspace(a,b,n)` générant un tableau comportant `n` valeurs régulièrement espacées de `a` inclus à `b` inclus.\n", "```python\n", "x = np.linspace(0,5,256) # Domaine des abcisses (en m)\n", "```\n", "---\n", "La figure est nommée `fig` et les bornes des axes sont fixées.\n", "```python\n", "fig = plt.figure('Propagation d\\'une onde sinusoïdale')\n", "plt.xlim(0,5)\n", "plt.ylim(-2*A,2*A)\n", "```\n", "---\n", "Un graphe sans point nommé `courbe` est introduit dans la figure. C'est le graphe qui sera animé et mis à jour au fur et à mesure. \n", "```python\n", "courbe, = plt.plot([],[],'r',lw = 1.5) # Graphe sans point\n", "```\n", "La `,` est indispensable pour que l'animation soit possible. \n", "\n", "---\n", "La fonction `init()` fixant l'arrière de l'animation présent à chaque image est définie à partir du graphe nommé `courbe` à animer.\n", "```python\n", "def init(): # Ne contient pas d'argument\n", " courbe.set_data([],[]) # Met à jour `courbe` avec des données vides\n", " return courbe, # Retourne `courbe` suivi d'une virgule\n", "```\n", "La `,` est indispensable pour que l'animation soit possible. \n", "\n", "*Remarque : \n", "Définir une fonction* `init()` *est optionnel.*\n", "\n", "---\n", "\n", "La fonction `animate()` appelée à chaque nouvelle image est définie à partir du graphe nommé `courbe` à animer. \n", "```python\n", "def animate(i): # Un seul argument i associé à l'image i\n", " t = i*dt\n", " y = A*np.cos((2*pi/Lambda)*x - (2*pi/T)*t) # Données de l'image i\n", " courbe.set_data(x, y) # Met à jour `courbe` avec les données de l'image i\n", " return courbe, # Retourne `courbe` suivi d'une virgule\n", "```\n", "La `,` est indispensable pour que l'animation soit possible. \n", "\n", "---\n", "La fonction `FuncAnimation` anime la figure `fig` affichant `animate(i)`, à chaque image `i` pour `i` dans `frames` (ici, entiers de 0 à 100) avec un délai entre 2 images égal à `interval` en ms. \n", "`init_func=init` fixe l’arrière plan de l’animation avec la fonction `init()`. \n", "`blit=True` indique que seuls les éléments modifiés sont redessinés ce qui permet un gain de temps dans les calculs effectués par la machine et donc une animation plus fluide.\n", "```python\n", "animation = FuncAnimation(fig, animate, init_func=init, frames=101,\n", " blit=True, interval=dt*1000, repeat=False)\n", "#animation\n", "```\n", "\n", "*Remarque : \n", "Lorsque la fonction* `init()` *n'est pas définie, les arguments* `init_func=init` *et* `blit=True` *sont à supprimer.*" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.1" } }, "nbformat": 4, "nbformat_minor": 2 }