Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
Même sans importer de modules, on peut déjà faire de nombreux traitements mathématiques via Python.
Mais avec différents modules tels fractions & math mais aussi avec l'extension de Python matplotlib on peut aller beaucoup plus loin ...
Vous pouvez manipuler des fractions sous Python grâce au module fractions.
Un seul exemple, il est plus logique d'utiliser la fraction "1/3" que le flottant correspondant qui n'est qu'une valeur approchée de ce
nombre irrationnel.
Il y avait dans le passé un taux de TVA dit majoré qui était égal à 1/3 du hors taxes.
Il s'appliquait entre autres au matériel HIFI et aux voitures neuves.
Voyons comment il fallait alors calculer la TVA par rapport au prix hors taxes de l'article.
La TVA sur l'article qui vaut 1000 HT est calculé en appliquant le taux sous forme d'une fraction.
Dans la même commande le résultat est arrondi à deux décimales. J'ai donc imbriqué les fonctions round & float.
Vous allez dire : "on a déjà vu ! " Non, on a seulement survolé. Dans ce chapitre nous allons approfondir en présentant d'autres fonctions de ce module.
Testons avec la console interactive certaines de ces fonctions.
Qui doivent être ici préfixées, compte tenu de la syntaxe utilisée pour l'importation du module.
Concernant l'objet factorial(), rappelez vous, dans un chapitre précédent nous nous sommes fatigués à produire (de deux façons) une fonction retournant la factorielle d'un nombre. Donc nous avons travaillé pour rien ? Pas vraiment, car nous avons ainsi découvert à cette occasion une notion importante en algorithmique : la récursivité.
Le module math comprend également toutes les fonctions relatives à la trigonomètrie :
Le radian est une unité de mesure pour mesurer les angles, comme le degré. Un angle d'un radian est un angle qui délimite un arc de cercle
d'une longueur égale au rayon du cercle.
Un cercle complet (360°) représente un angle de 2π radians. Donc un angle plat c'est π radian et un angle droit c'est π/2 radian.
La trigonométrie est une branche des mathématiques qui traite des relations entre distances et angles dans un triangle rectangle. Sinus, cosinus et tangente sont des rapports entre deux côtés du triangle rectangle. Mais à partir du sinus (ou cosinus ou tangente) on peut déterminer l'angle correspondant.
Vérifions tout cela dans l'interpréteur :
math.pi retourne 3.1416... environ.
L'équivalent de 360° en radians est 6,28 radians.
L'équivalent de 2 ∏ radians = 360°
La fonction radians(angle en degrés) convertit les degrés en radians.
La fonction degrees(angle en radians) convertit les radians en degrés.
La fonction sin(angle en radians) retourne la valeur du sinus. Donc si vous voulez partir d'un angle en degrés il faut imbriquer
la fonction radians(angle en degrés) dans sin()
Il existe aussi les fonctions : cos(), tan()
Après avoir calculé le sinus ou cosinus ou tangente d'un angle, il fallait rechercher ensuite dans les tables trigonométriques l'angle correspondant.
J'emploie le passé car désormais la recherche d'une valeur d'angle se fait avec une calculette scientifique OU avec Python.
Un triangle rectangle a des côtés de l'angle droit qui mesurent respectivement 3 et 4.
Calculez l’hypoténuse, et les deux angles (autres que l'angle droit) en degrés.
Résolvons ce problème via l'interpréteur Python
Le carré de l’hypoténuse est égal à la somme des carrés des côtés de l'angle droit.
Donc l'hypothénuse est ici égale à 5
Donc le sinus du premier angle = 3/5 soit un angle de 36,87°
Et le sinus du deuxième angle = 4/5 soit un angle de 53,13°
Contrôle : la somme des deux angles est égale à 90°
La fonction asin(sinus) donne l'angle en radians à partir de la valeur du sinus ; il faut ensuite le convertir en degrés avec
la fonction degrees()
Il existe aussi les fonctions acos(), atan() qui donnent respectivement l'angle en radians à partir du cosinus ou tangente.
Voyez que souvent on est obligé d'imbriquer dans une commande deux fonctions.
Grâce à cet outil vous allez pouvoir représenter graphiquement des fonctions mathématiques telles f(x) = ax + b(fonction affine) ou des paraboles (f(x) = a x2) voire des hyperboles (f(x) = 1/x), etc.
Matplotlib est donc une bibliothèque pour le traçage de courbes. J'ai bien écrit "bibliothèque" (et non pas module). Donc pour disposer des modules de ce pack il faut éventuellement installer cette extension de Python.
L'installation éventuelle (avec l'utilitaire pip) d'une extension de Python sera évoquée dans le chapitre 16.
Dons pour le moment, supposons que le pack est installé.
Si l'extension est installée il suffit d'importer le module pyplot de cette extension.
Commandes à tester dans l'interpréteur :
Nous devons importer le module pyplot du package matplotlib.
La fonction plot() permet de définir les couples de points et demande en arguments deux séries de valeurs :
la série des abscisses et la série des ordonnées.
Ces deux arguments peuvent être des variables qui contiennent des séries de type "range" ou "list".
La fonction show() permet d'afficher le graphique.
Après la dernière commande pyp.show() une fenêtre légendée "figure1" et contenant le graphique s'affiche.
Le graphique :
Il s'agit d'une droite puisque les couples (x,y) correspondent à la fonction y = 2x (une fonction linéaire)
La fonction show() est utilisée sans arguments et est bloquante ; tant que la fenêtre n'a pas été fermée, la suite du code ne s'éxécute pas.
Pour le premier tracé nous n'avions que trois couples (x,y) mais c'était suffisant, puisqu'il s'agissait d'une fonction linéaire.
Pour tracer, par exemple, une parabole il faut beaucoup plus de points ; nous allons donc utiliser toute la puissance
de la fonction range(start,stop,step) pour produire un grand nombre de couples.
Commandes à saisir dans l'interpréteur:
Notez une autre syntaxe pour importer le module pyplot de matplotlib (nomLibrairie.nomModule). Il est d'usage de donner l'alias "plt" à ce module.
plt.grid() : on rajoute une grille dans le repère orthogonal.
Les couples x,y sont créées grâce à la fonction range(start,stop,step).
Une superbe parabole apparait dans la fenêtre "figure1".
Il est possible d'enregistrer le graphique au format PNG en cliquant sur la commande "enregistrer" de la fenêtre graphique.
Pour sauvegarder nos commandes nous allons les stocker dans des programmes.
Les histogrammes sont utilisés pour représenter des séries statistiques.
Thème : distribution des notes à un partiel dans un groupe de travaux dirigés.
Le code :
Le programme demande l'affichage d'une grille dans le repère orthogonal.
x contient la liste des abscisses (notes possibles)
y contient la liste des ordonnées (effectif de chaque note)
Pour produire un histogramme, il faut utiliser la fonction bar(série des x, série des y, largeur de chaque barre)
Le graphique :
Il faut utiliser la fonction pie(série de valeurs, légendes, couleurs)
Le graphique :
Le code :
Pour produire un nuage de points il faut utiliser la fonction scatter(abscisses, ordonnées)
Le graphique :
On note une corrélation linéaire presque parfaite : les points sont pratiquement alignés sur une droite.
On ne pourrait pas construire la droite de régression exprimant la relation entre les x et les y ???
Un tuto très complet sur le module pyplot de la libraire matplotlib