Chapitre 10 : utilisation graphique de pylab (Module contenant numpy et matplotlib.pyplot)

Documents pareils
Cours 7 : Utilisation de modules sous python

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

Calcul intégral élémentaire en plusieurs variables

Calcul Formel et Numérique, Partie I

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

F411 - Courbes Paramétrées, Polaires

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1

Calcul Scientifique avec 3

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

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Optimisation, traitement d image et éclipse de Soleil

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Python - introduction à la programmation et calcul scientifique

Calcul Formel et Numérique, Partie I

Du bon usage de gnuplot

Chapitre 2 : Caractéristiques du mouvement d un solide

Fonctions de deux variables. Mai 2011

Introduction à MATLAB R

Automatique des systèmes linéaires continus

Cours d Analyse. Fonctions de plusieurs variables

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

Limites finies en un point


Michel Henry Nicolas Delorme

Chapitre 0 Introduction à la cinématique

Aide - mémoire gnuplot 4.0

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

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

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

Chapitre 6. Fonction réelle d une variable réelle

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

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

LES GRAPHIQUES SOUS MAPLE

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Traceur de courbes planes

VOS PREMIERS PAS AVEC TRACENPOCHE

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

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

Chapitre 7 - Relativité du mouvement

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

TD1 Signaux, énergie et puissance, signaux aléatoires

Analyse en Composantes Principales

Repérage d un point - Vitesse et

Calculatrice HP Prime

Réalisation de cartes vectorielles avec Word

Continuité et dérivabilité d une fonction

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

C est un mouvement plan dont la trajectoire est un cercle ou une portion de cercle. Le module du vecteur position OM est constant et il est égal au

TP 1 Introduction à Matlab Février 2009

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Chapitre 1 Régime transitoire dans les systèmes physiques

Angles orientés et fonctions circulaires ( En première S )

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

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

BACCALAUREAT GENERAL MATHÉMATIQUES

Chp. 4. Minimisation d une fonction d une variable

Angles orientés et trigonométrie

Les algorithmes de base du graphisme

Guide d utilisation 2012

Dérivation : Résumé de cours et méthodes

Cours Fonctions de deux variables

STAGE IREM 0- Premiers pas en Python

Maple: premiers calculs et premières applications

Fonctions de plusieurs variables

Cercle trigonométrique et mesures d angles

Exercice autour de densité, fonction de répatition, espérance et variance de variables quelconques.

STATIQUE GRAPHIQUE ET STATIQUE ANALYTIQUE

Baccalauréat S Nombres complexes Index des exercices sur les complexes de septembre 1999 à juin 2012 Tapuscrit : DENIS VERGÈS

Tutoriel Mathematica Les graphiques

Débuter avec Asymptote...

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Découverte de Python

TP 1. Prise en main du langage Python

LE PRODUIT SCALAIRE ( En première S )

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

Image d un intervalle par une fonction continue

Présentation du langage et premières fonctions

Premiers pas avec Mathematica

Rappels sur les suites - Algorithme

Glossaire des nombres

Deux disques dans un carré

Mesure d angles et trigonométrie

Initiation à la programmation OEF pour Wims (exercices).

Correction du Baccalauréat S Amérique du Nord mai 2007

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Introduction à NetCDF

Développements limités usuels en 0

Continuité d une fonction de plusieurs variables

NOMBRES COMPLEXES. Exercice 1 :

Initiation aux calculatrices graphiques formelles TI

Mathématiques I Section Architecture, EPFL

Bases de programmation. Cours 5. Structurer les données

OM 1 Outils mathématiques : fonction de plusieurs variables

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Cours de mathématiques

1 Introduction - Qu est-ce que le logiciel R?

Nombres complexes. cours, exercices corrigés, programmation

TP, première séquence d exercices.

Transcription:

Chapitre 10 : utilisation graphique de pylab (Module contenant numpy et matplotlib.pyplot) Table des matières 1 Premiers tracés 1 1.1 Rappel : comment marche plot?............................... 1 1.2 Pour le tracé de fonctions : comment fabriquer le tableau des abscisses........ 2 1.3 Effacement, gestion de plusieurs fenêtres :.......................... 3 1.4 Commandes pour les axes, la couleur, le style........................ 3 1.4.1 Quelques commandes pour les axes......................... 3 1.4.2 Quelques commandes pour les couleurs et les styles................ 3 1.4.3 Remarque générale sur les arguments de plot, et de beaucoup de fonctions Python :........................................ 4 1.5 Deux tracés sur la même figure avec une légende...................... 4 2 Cas particuliers des suites, un plot à un argument! 4 3 Apprentissage des courbes paramétrées 5 3.1 L exemple d un mouvement circulaire uniforme :..................... 6 3.2 Le même tracé en repère orthonormé............................ 6 3.3 Propriétés de symétries des courbes paramétrées...................... 6 3.3.1 Effet de la périodicité (commune) de t x(t) et t y(t)............ 6 3.3.2 Cas d un décalage par périodicité........................... 6 3.4 Effet de la parité/imparité................................... 6 3.5 Exemple des courbes de Lissajous............................... 7 Introduction Les modules numpy et matplotlib qui nous allons utiliser sont regroupés dans un module appelé pylab. Ces modules visent à développer des outils de calculs numériques et d affichage graphique en Python, analogues à ceux fournis par les logiciels de références que sont Matlab et son avatar libre Scilab. Dans ce qui suit j utiliserai donc import pylab as pl. Le but du chapitre étant plutôt les tracés que l utilisation intensive des tableaux numpy, on rappellera simplement au fur et à mesure les notions nécessaires sur ces tableaux. 1 Premiers tracés 1.1 Rappel : comment marche plot? On a déjà vu en T.P. que plot s utilise avec la syntaxe : pl.plot(x,y) où x et y sont ou bien des listes (ou tuple) python, ou bien des tableaux numpy de même taille et qu à partir de ces données, plot trace la ligne brisée qui joint les point M I de coordonnées x[i],y[i] dans l ordre des i croissants. Ainsi : x=[0,1,2] y=[1,2,1] pl.plot(x,y) 1

1.2 Pour le tracé de fonctions : comment fabriquer le tableau des abscisses Admettons qu on veuille tracer le graphe de la fonction x x 2 sur [0, 1]. On va pour cela découper le segment [0, 1] en disons en 11 points espacés régulièrement autrement dit avec un pas p = 0.1 Plusieurs méthodes sont possibles : On peut bien sûr créer à la main une liste python. Comment? La commande linspace de numpy (incluse dans pylab) qui crée un array : L acronyme linspace est pour linear space. x=pl.linspace(0,1,11) D une manière générale, linspace(a,b,n) subdivise le segment [a, b] en n points régulièrement espacés, donc avec un pas (b a)/(n 1). La commande arange de numpy (incluse dans pylab) qui crée un array : Il s agit encore d un acronyme pour array range. Elle s utilise comme le range des listes sauf qu elle crée un array et permet des pas qui sont des flottants. Ainsi pl.arange(a,b,p) crée le tableau des a + kp jusqu au plus grand k tel que a + kp < b. Ainsi pour obtenir la même subdivision de [0, 1] on entrera : x=pl.arange(0,1.1,0.1) 2

Reste ensuite à définir le vecteur y : Les fonctions de numpy (ou pylab) opèrent directement sur les tableaux Ainsi à partir du tableau x (pas d une liste), on peut créer la liste y dont les entrées y[i] sont les x[i]**2 simplement via : y=x**2 Puis enfin faire plot(x,y). 1.3 Effacement, gestion de plusieurs fenêtres : Pour effacer le graphique précédent : pl.clf() # clf pour clear figure Pour afficher dans une autre fenêtre : pl.figure(1) # on crée une figure qu on appelle 1 pl.plot(x,x) pl.figure("ma jolie parabole") # on crée une figure qu on appelle... pl.plot(x,y) 1.4 Commandes pour les axes, la couleur, le style Reprenons à tire d exercice un autre exemple déjà vu : celui du sin sur [0, 2π]. Exercice : Comment faire ce tracé? 1.4.1 Quelques commandes pour les axes Par défaut, le cadrage ne collera pas forcément à ce qu on voudrait. On peut déclarer pl.xlim(0,2*pl.pi) On peut donner faire afficher des étiquettes sur les axes : pl.xlabel(" temps t") pl.ylabel(" tension u(t)") 1.4.2 Quelques commandes pour les couleurs et les styles Les huit couleurs de base : avec leur première lettre. Ainsi plot(x,y,"r--"). Pour des couleurs plus compliquée, on va définir color= " " dans plot, notamment pour : Les couleurs en RGB : même syntaxe qu en HTML : avec trois nombres en hexadécimal : exemple pl.plot(x,y,color= #eeee00 ) donnera la courbe en... 3

1.4.3 Remarque générale sur les arguments de plot, et de beaucoup de fonctions Python : Lorsque vous tapez plot vous voyez : Qu est-ce que cela signifie? Le premier *args signifie que le nombre d arguments de plot n est pas toujours le même. Ainsi, on a utilisé plot(x,y) avec deux arguments, et plot(x,y, r- ) avec trois arguments. On verra même plus tard qu on peut même ne donner qu un argument! Comment fabriquer soi-même des fonctions avec des *arg? Avec un * devant votre nom d argument. Dans ce cas, tous les arguments donnés entre virgule seront stocké dans un tuple, comme expliqué ici : def mafonction(*mesarguments): return mesarguments Le second kwargs signifie key word arguments : ce sont des arguments définis par un mot-clef. Comme color dans notre exemple. Là aussi, on va voir que plot peut en admettre beaucoup. 1.5 Deux tracés sur la même figure avec une légende x=pl.linspace(0,2*pl.pi,100) y1=pl.sin(x) y2=pl.cos(x) pl.clf() pl.plot(x,y1,"r",label="le sinus") pl.plot(x,y2,"b-",label="le cosinus") pl.legend() Avec le résultat : 2 Cas particuliers des suites, un plot à un argument! Les suites n u n sont bien sûr des fonctions particulières, dont la variable n est un entier. On peut bien sûr tracer les par exemple les 1000 premières valeurs de la suite (sin(n)) en faisant : Mais on peut faire la même chose en faisant simplement pl.plot(y) : 4

s il n y a qu un argument, plot prendra par défaut comme tableau des abscisses le tableaux des entiers successifs, à partir de 0, de même longueur que y. Ceci peut paraître une simple curiosité, mais cela peut vous jouer des tours parfois... si vous appliquer votre plot à certaines valeurs de retour d une fonction... Remarque : comment peut-on illustrer la densité de {sin(n), n N} dans [ 1, 1], en dessinant tous ces points sin(n) sur le segment [ 1, 1]? Voici ci-dessous le dessin pour seulement les 100 premières valeurs de n : la densité n est pas évidente, elle le devient pour 1000 : Un autre exemple : une suite géométrique Si on veut tracer les cinquante premières valeurs de (u n ) = (q n ) pour q = 0, 9, on peut bien sûr : (M1) définir la liste (ou le tableau) u à l aide d une boucle. (M2) utiliser le paradigme de numpy qui veut que les fonctions usuelles s appliquent à des tableaux. Ainsi si x et y sont deux tableaux, on peut fabriquer x**y qui est le tableau dont les entrées sont les x[i]**(y[i]). Ici pour notre suite on peut ansi définir : N=50 q=pl.ones(n) # tableau de N fois 1 q=-0.9*q # multiplication du tableau par un scalaire : donne un tableau constant de -0,9 valeurs=pl.arange(0,50,dtype=int) u=q**valeurs pl.plot(u) 3 Apprentissage des courbes paramétrées Définition : Tracer une courbe paramétrée plane est tracer l ensemble des points M(t) = (x(t), y(t)) où t x(t) et t y(t)) sont des fonctions quelconques. L essentiel : la variable t ne se voit pas sur la figure. On peut penser que c est le temps. 5

3.1 L exemple d un mouvement circulaire uniforme : x = cos(3t) Supposons que le mouvement d un mobile M(t) en fonction du temps t est défini par y = sin(3t) mouvement circulaire uniforme. Pour afficher la trajectoire avec plot : : t=pl.linspace(0,2*pl.pi,100) x=pl.cos(3*t) y=pl.sin(3*t) plot(x,y) Problème : on voit un ovale au lieu d un cercle, il nous faut encore améliorer la gestion des axes 3.2 Le même tracé en repère orthonormé Il suffit de rajouter pl.axis( equal ) Un enjeu pour les courbes paramétrées : savoir suivre l évolution du point mobile dans le temps. sur la trajectoire Pour cela, on peut : faire un tableau de variation donnant la monotonie des deux fonctions t x(t) et t y(t). Illustration sur le cas du cercle. On peut aussi marquer le vecteur vitesse, qui est le vecteur v (t) = (x (t), y (t)), et qui est tangent à la courbe, dirigé dans le sens des t croissants. 3.3 Propriétés de symétries des courbes paramétrées 3.3.1 Effet de la périodicité (commune) de t x(t) et t y(t) Si x( ) et y( ) sont T périodiques et si on trace la trajectoire correspondant aux t [0, T ] alors : x(t) = a cos(t), Exemple des mouvement elliptiques : y(t) = b sin(t). 3.3.2 Cas d un décalage par périodicité Si on a un T tel que pour tout t R, x(t + T ) = x(t) + α avec α fixé, et y(t + T ) = y(t) + β avec β fixé, alors à partir du tracé de la trajectoire pour t [0, T ], on obtiendra toute la courbe par Exemple de la cycloïde : x(t) = t sin(t), y(t) = 1 cos(t). Question : Que dire du vecteur vitesse du point sur la cycloïde au temps t = 2kπ avec k Z? Comment connaître alors la tangente à la courbe en ces points? 3.4 Effet de la parité/imparité Dans ce qui suit, on notera M(t) = (x(t), y(t)) le point courant au temps t. a) Si x et y sont paires et si on trace la trajectoire pour t 0 alors pour avoir le reste de la trajectoire, il suffit de? b) Si x et y sont impaires et si on trace la trajectoire pour t 0 alors pour avoir le reste de la trajectoire, il suffit de? 6

c) Si x est impaire et y est paire et si on trace la trajectoire pour t 0 alors pour avoir le reste de la trajectoire, il suffit de? d) Si y est impaire et x est paire et si on trace la trajectoire pour t 0 alors pour avoir le reste de la trajectoire, il suffit de? 3.5 Exemple des courbes de Lissajous x(t) = a sin(pt), On désigne ainsi une famille de courbes paramétrées contenant les courbes de la forme y(t) = b sin(qt + ϕ), où p et q sont des entiers et a, b, ϕ des réels. Question : d une manière générale quelle est, en fonction des entiers p et q, la valeur de T telle qu on ait parcouru une et une seule fois la trajectoire si t [0, T ]. Exercice : Tracer ces courbes pour (p, q) {(1, 2), (3, 2), (3, 4), (5, 4)}, a = b = 1 et ϕ = 0 sans répéter quatre fois les instructions (boucle). Suivre l évolution des points sur le tableau de variation double et expliquer les propriétés de symétries de chaque courbe. 7