TP Tracé de courbes : module Pylab



Documents pareils
Cours 7 : Utilisation de modules sous python

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Aide - mémoire gnuplot 4.0

STAGE IREM 0- Premiers pas en Python

La fonction exponentielle

TP 1. Prise en main du langage Python

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Chapitre 2 Le problème de l unicité des solutions

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Dérivation : cours. Dérivation dans R

pyensae StockPrices September 1, Manipulation de séries financières avec la classe StockPrices

Calcul Formel et Numérique, Partie I

Développements limités, équivalents et calculs de limites

YAPBA M. Logiciel libre de suivi de vos comptes

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Introduction à MATLAB R

Présentation du langage et premières fonctions

Continuité et dérivabilité d une fonction

Python - introduction à la programmation et calcul scientifique

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

Premiers pas avec Mathematica

Nombre dérivé et tangente


INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite.

Initiation à la programmation en Python

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Développements limités. Notion de développement limité

Régler les paramètres de mesure en choisissant un intervalle de mesure 10µs et 200 mesures.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Oscillations libres des systèmes à deux degrés de liberté

Corrigé des TD 1 à 5

Introduction à la présentation graphique avec xmgrace

DURÉE DU JOUR EN FONCTION DE LA DATE ET DE LA LATITUDE

Lecture graphique. Table des matières

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Opérations de base sur ImageJ

TSTI 2D CH X : Exemples de lois à densité 1

Chapitre 0 Introduction à la cinématique

SEANCE 4 : MECANIQUE THEOREMES FONDAMENTAUX

Didier Pietquin. Timbre et fréquence : fondamentale et harmoniques

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

315 et 495 sont dans la table de 5. 5 est un diviseur commun. Leur PGCD n est pas 1. Il ne sont pas premiers entre eux

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Statistiques à une variable

Calcul intégral élémentaire en plusieurs variables

2.4 Représentation graphique, tableau de Karnaugh

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )


Note de cours. Introduction à Excel 2007

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

F7n COUP DE BOURSE, NOMBRE DÉRIVÉ

Préparation à l agrégation de Sciences-Physiques ENS Physique. Outils informatiques

Les suites numériques

TP : Suivi d'une réaction par spectrophotométrie

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Caractéristiques des ondes

SUJET ZÉRO Epreuve d'informatique et modélisation de systèmes physiques

Introduction : L accès à Estra et à votre propre espace Connexion Votre espace personnel... 5

SPHINX Logiciel de dépouillement d enquêtes

TP 7 : oscillateur de torsion

Licence Sciences et Technologies Examen janvier 2010

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

AWS avancé. Surveiller votre utilisation d EC2

MESURE ET PRECISION. Il est clair que si le voltmètre mesure bien la tension U aux bornes de R, l ampèremètre, lui, mesure. R mes. mes. .

Initiation à la programmation OEF pour Wims (exercices).

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Insérer des images dans Base

SUIVI CINETIQUE PAR SPECTROPHOTOMETRIE (CORRECTION)

TP 03 B : Mesure d une vitesse par effet Doppler

Correction du baccalauréat ES/L Métropole 20 juin 2014

A chaque couleur dans l'air correspond une longueur d'onde.

Optimisation, traitement d image et éclipse de Soleil

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

QUICK START RF Monitor 4.3-1

Mini_guide_Isis_v6.doc le 10/02/2005 Page 1/15

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

Trucs et Astuces Outlook 2010 SIFA Faculté d Administration

Comment suivre l évolution d une transformation chimique? + S 2 O 8 = I SO 4

Initiation à LabView : Les exemples d applications :

MetaTrader 4/5 pour Android. Guide de l utilisateur

Comment faire des étiquettes

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Annexe commune aux séries ES, L et S : boîtes et quantiles

Leçon n 4. Analyse graphique Techniques de construction de barres et styles de. Fenêtres d analyse graphique. Leçon n 4

NOTICE DOUBLE DIPLÔME

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Créer un tableau avec LibreOffice / Calc

L analyse boursière avec Scilab

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

DMX MASTER I. Notice d utilisation. Lisez soigneusement la notice d utilisation avant d utiliser l appareil! Version 1.

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Transcription:

TP Tracé de courbes : module Pylab But de ce TP : Découvrir le module Pylab permettant de tracer des courbes : les représentations graphiques sont souvent utiles lorsque l on étudie un problème de physique, ou de chimie, ou de SI. 1. Introduction Rappel : pour importer une fonction d un module, on peut procéder ainsi : >>> from math import exp >>> from math import * >>> exp(0) >>> exp(0) >>> import math >>> math.exp(0) Nous privilégierons la version pour prévenir d éventuelles confusions de fonctions. Cependant, pour éviter d avoir à taper l intégralité du nom du module lors de l appel à une fonction, on peut définir un nom abrégé pour le module : >>>import math as m >>>m.sin(3) Nous ferons de même pour : - numpy abrégé en np ; - matplotlib.pyplot abrégé en plt ; - pylab, abrégé en pl. Ce sont les abréviations «standards» de ces modules, nous n en changerons pas. Nous utiliserons le module pylab qui contient les fonctions de base des modules math, matplotlib.pyplot et numpy. Rq : numpy est un module permettant de construire des tableaux, d accéder à de nombreuses fonctions mathématiques (comme le module math), de travailler sur des problèmes d algèbre linéaire, de réaliser des transformées de Fourier (= extension du développement en série de Fourier) matplotlib.pyplot est un module permettant de réaliser des représentations graphiques. A partir du module pylab, on peut par exemple faire appel aux fonctions linspace (dont l origine première est le module numpy) et plot (dont l origine première est le module matplotlib.pyplot) : >>> import pylab as pl >>> X=pl.linspace(5,7,10) >>> pl.plot(x,x) Dans ce TP, nous préciserons, entre autres, le rôle de ces deux fonctions. TP_info_courbes 1

2. Tracer une courbe de la forme y = f(x) Comme lorsque l on trace un graphique «à la main», un ordinateur place dans un repère un certain nombre de points (x 1, y 1 ), (x 2, y 2 ), (x n, y n ) puis relie ces points entre eux. a) Tracer la courbe représentative de la fonction f(t) = A.cos(ω.t+φ). Taper le boc d instructions suivant dans l éditeur : import pylab as pl A = 2 w = 100 phi = 1 abs=pl.linspace(0,2*pl.pi/w,100) ord=a*pl.cos(w*abs+phi) pl.plot(abs,ord,"g") Commentaires : L instruction de la 5 e ligne (fonction linspace) permet de créer un tableau d abscisses t i comprises entre 0 et 2π/ω, régulièrement espacées : on discrétise donc l intervalle [0,2π/ω] avec 100 points. Justifier le choix des valeurs extrémales de l intervalle des abscisses. L instruction de la 6 e ligne (affectation de ord) permet de créer un tableau d ordonnées telles que : y i = A.cos(ω.t i +φ). Cf b) pour le cas d une fonction définie par morceaux «à la main». La fonction plot de la 7 e ligne a pour argument abs (le tableau d abscisses), ord (le tableau d ordonnées) et «g» (qui signifie «green» : il s agit de la couleur de la courbe). Si on n écrit pas la 8 e ligne, Python a simplement tracé «mentalement» la courbe ord = f(abs). Pour visualiser à l écran le graphique, il faut écrire la 8 e ligne qui fait appel à la fonction show(). Taper F6 et cocher «Exécuter dans un nouvel interpréteur Python dédié» puis «Interagir avec l interpréteur Python après exécution». Taper enfin F5 pour exécuter le programme. Vous procèderez ainsi pour chacun de vos fichiers. Une nouvelle fenêtre apparaît alors, elle contient la courbe représentative de la fonction. Plusieurs icônes sont disponibles au-dessus du graphique, tester et noter leurs effets. NB : Si vous changez les lignes de code pour modifier le graphique, fermer la fenêtre graphique, avant d exécuter à nouveau, sans quoi elle ne sera pas modifiée! On peut ajouter un titre au graphique précédent grâce à la fonction suivante : Dans le programme précédent, rajouter la ligne de code suivante avant la dernière ligne : pl.title("evolution du degré de liberté d un oscillateur harmonique") D autres options sont disponibles : épaissir ou affiner le trait (linewidth) ; faire un tracé avec des pointillés (linestyle) Pour cela, aller dans l aide pour plot en tapant dans l interpréteur help(pl.plot) ou sur l aide en ligne de matplotlib.pyplot. Quelles sont les caractéristiques du graphique en donnant les instructions suivantes : pl.plot(abs,ord,"--g") pl.plot(abs,ord,"*r") pl.plot(abs,ord,"-c",linewidth=5) Voici d autres fonctions possibles que l on insère avant : pl.xlabel("t (s)") pl.ylabel("x(t) (cm)") pl.axis([-0.008,0.07,-2.2,2.2]) La courbe obtenue est donnée ci-contre. Indiquer l effet de chaque option. TP_info_courbes 2

b) Tracer la courbe représentative d une fonction définie par morceaux Nous allons traiter ce point sur l exemple de la fonction triangle cicontre qui représente la déformation liée à une onde se déplaçant le long d une corde : On définit cette fonction de la façon suivante: def triangle(x): if x<mini: return(0) elif mini <x<=inter: return((1/(inter- mini))*(x- mini)) elif inter<x<maxi: return((1/(inter- maxi))*(x- maxi)) else: return(0) Les variables mini, inter et maxi seront affectées avant le tracé de la fonction. Le graphe ci-dessus est donné pour mini = 0, inter = 2 et maxi = 20. Ouvrir un nouveau fichier texte. Importer pylab, taper la définition de la fonction et affecter les variables min, inter et max. Si l on écrit (ne pas écrire!) : X=pl.linspace(-5,30,2000) Y=triangle(X) L=pl.plot(X,Y) La console Pyhton renvoie un message d erreur : File " ", line, in <module> Y=triangle(X) File " ", line, in triangle if x<min: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() X est un tableau d abscisses et ceci n est pas compatible avec la fonction qui nécessite de comparer son paramètre à min, à inter et/ou à max. Il faut donc construire la liste des ordonnées «à la main» : X=pl.linspace(-5,30,2000) Y=[triangle(x) for x in X] A l aide des données du a), taper les dernières lignes de code permettant d obtenir le graphe donné précédemment (affichage d une grille, titre du graphique, noms des axes, courbe en rouge, épaisseur du trait = 4, extrema des coordonnées). c) Tracer une série de données en fonction d une autre Pour obtenir la courbe représentative d une fonction, on voit qu il est nécessaire de construire un tableau d abscisses et un tableau d ordonnées. Si à l issue d une expérience, on dispose de deux séries de données X et Y, il suffit donc de construire deux listes (ou deux tableaux) X et Y sous Python pour pouvoir tracer Y = f(x). Ex : on réalise une expérience permettant d étudier l évolution temporelle de la réaction suivante : (CH 3 ) 3 CBr + H 2 O (CH 3 ) 3 COH + HBr A 25 C, on obtient les résultats suivants : t (h) 0 2 4 8 12 20 30 40 [(CH 3 ) 3 CBr] (mol.l -1 ) 0,1 0,09 0,08 0,07 0,05 0,03 0,02 0,01 Ouvrir un nouveau fichier texte, importer pylab et construire deux listes T et C qui contiennent respectivement les 8 dates et les 8 concentrations mesurées lors de l expérience. Taper les instructions nécessaires pour obtenir le graphique «embelli» représentant l évolution de la concentration en fonction du temps. TP_info_courbes 3

3. Tracer plusieurs courbes (y 1, y 2 ) = f(x) a) Courbes superposées dans un même graphique On suppose que la réaction chimique étudiée au 2.c) admet un ordre et on peut montrer que la vitesse de réaction peut se mettre sous la forme : v = k. [(CH 3 ) 3 CBr] p. On se propose de déterminer l ordre p par la méthode intégrale. Rappeler les coordonnées des courbes à tracer pour tester les ordres 0, 1 et 2. On décide de tracer ces trois courbes dans le même graphique (on aura remarqué que l abscisse des 3 courbes est commune!). Ouvrir un nouveau fichier texte et importer pylab. Construire la liste des abscisses abs et les 3 listes d ordonnées ord0, ord1, ord2 : pour gagner du temps, vous pouvez faire des copier/coller à partir du fichier précédent. Soyez vigilant sur les types d objets manipulés, pour la création d au moins une des listes d ordonnées, une boucle est nécessaire Taper en les complétant les instructions ci-après pour obtenir dans un même graphique «embelli» les trois courbes. pl.plot(abs,ord0,"ks") pl.plot(abs, ord1,"ko") pl.plot(abs,ord2,"kd") pl.xlabel(" ") pl.legend([" "," "," "],loc="best") La fonction pl.legend(["a","b","c"],loc="best")permet de légender le graphique. Un encadré est créé avec le symbole et le nom (a, b ou c) de chaque courbe. L argument loc="best" permet de positionner au mieux cet encadré dans la fenêtre graphique. On peut aussi utiliser la fonction plot() en une ligne : Mettre les 3 lignes commençant par pl.plot(,, ) en commentaire (ajouter # devant ces 3 lignes) et écrire la ligne suivante : pl.plot(abs,ord0,"ks",abs,ord1,"ko",abs,ord2,"kd") Bilan sur ce : La superposition de courbes dans un même graphique peut convenir dans les cas où les valeurs extrémales des différentes ordonnées sont proches. Mais ici ce n est pas le cas et cela pose problème pour conclure sur l ordre de la réaction avec la méthode intégrale. Expliquer brièvement pourquoi. Les paragraphes suivants donnent deux solutions pour remédier à ce problème. b) Courbes tracées dans des fenêtres différentes Pour obtenir chaque courbe dans une fenêtre différente, il faut faire plusieurs fois appel à la fonction. Ouvrir un nouveau fichier texte et copier/coller le code du précédent fichier. Après la définition de la liste des abscisses et des 3 listes d ordonnées, taper le bloc d instructions : pl.figure(1) pl.plot(abs,ord0,"ks") pl.xlabel("temps (h)") pl.ylabel("c (mol/l)") Puis à la suite, taper un bloc d instructions similaire pour le 2 e graphique puis pour le 3 e graphique. TP_info_courbes 4

c) Courbes tracées dans des sous-fenêtres différentes On divise ici une fenêtre en plusieurs sous-fenêtres graphiques : les 3 courbes ne seront donc pas superposées mais elles apparaîtront dans la même fenêtre. Pour cela, il faut faire appel à la fonction pl.subplot(a1,a2,a3) qui a trois arguments indispensables : a1 est le nombre de lignes ; a2 est le nombre de colonnes que l on veut créer pour diviser la fenêtre et a3 est la position choisie pour une courbe. Dans un programme, a1 et a2 sont identiques à chaque appel de la fonction pl.subplot() mais a3 change afin de placer une courbe par sous-fenêtre. Ex : pl.subplot(2,1,1) pl.plot(x,y1,"ks") pl.subplot(2,1,2) pl.plot(x,y2,"ks") Ici, on divise la fenêtre en 2 lignes et 1 colonne et on place la courbe y1 = f(x) dans la 1 e sous-fenêtre (en haut) et la courbe y2 = f(x) se trouve dans la 2 e sous-fenêtre (en bas). Ouvrir un nouveau fichier texte et taper les instructions nécessaires pour que les 3 graphiques apparaissent dans des sous-fenêtres différentes d une même page. Pour gagner du temps, faites des copier/coller du fichier précédent. Une fois la fenêtre affichée, vous pouvez modifier la disposition des graphiques avec l une des icônes présentes en haut de la fenêtre graphique. 4. Tracer une courbe paramétrée {x(t), y(t)} En mécanique, la résolution de l équation du mouvement donne le plus souvent accès aux lois horaires du mouvement sous la forme : (x(t),y(t)) avec x une coordonnée horizontale, y la coordonnée verticale et t le temps. Pour visualiser la trajectoire du mobile, il faut tracer y en fonction de x. Voyons comment procéder sur un exemple : Soit un point M en chute libre lancé avec une vitesse initiale v 0 = v 0x u x + v 0y u y depuis le point O(0,0). Au Ch.P13, on montrera que M suit les lois horaires suivantes : (x(t) = v 0x t, y(t) = g t2 2 + v 0y t) avec g l intensité du champ de pesanteur g = 9,8 m. s 2 v 0x = 5 m. s 1 et v 0y = 6 m. s 1. Tracé de la trajectoire sous Python : import pylab as pl g = 9.8 v0x = 5 v0y = 6 t=pl.linspace(0,1.5,100) X=v0x*t Y=-g*t*t/2+v0y*t pl.plot(x,y,"-r") pl.xlabel("x (m)") pl.ylabel("y (m)") pl.axis([-0.5,8,-2.5,2]) pl.title("tir") 2 e exemple : Après l avoir tracée, préciser la nature de la trajectoire d un mobile dont les équations horaires sont les suivantes : x(t) = a. cos (ωt) y(t) = b. sin (ωt) Avec ω, a et b trois constantes dont vous choisirez les valeurs. Quelle est la nature de la trajectoire du mobile si a = b? Pour vous en assurer, rechercher la commande permettant d avoir un repère orthonormé. TP_info_courbes 5