Modules mathématiques en Python Math et Cmath

Lors de la rédaction de programmes dans notre vie quotidienne, nous rencontrons généralement des situations dans lesquelles nous devons utiliser un peu de calcul pour accomplir notre tâche. Comme d’autres langages de programmation, Python fournit différents opérateurs pour effectuer des calculs de base tels que * pour la multiplication, % pour le module, et // pour division de plancher.

Si vous écrivez un programme pour effectuer des tâches spécifiques, comme l’étude du mouvement périodique ou la simulation de circuits électriques, vous devrez travailler avec des fonctions trigonométriques ainsi que des nombres complexes. Bien que vous ne puissiez pas utiliser ces fonctions directement, vous pouvez y accéder en incluant d’abord deux modules mathématiques. Ces modules sont mathématiques et cmath. 

Le premier vous donne accès à des fonctions hyperboliques, trigonométriques et logarithmiques pour les nombres réels, tandis que le second vous permet de travailler avec des nombres complexes. Dans ce tutoriel, je passerai en revue toutes les fonctions importantes offertes par ces modules. Sauf mention explicite, toutes les valeurs renvoyées sont des flottants.

Fonctions arithmétiques

Ces fonctions effectuent diverses opérations arithmétiques, telles que le calcul du plancher, du plafond ou de la valeur absolue d’un nombre à l’aide des touches étage (x), ceil (x), et fabs (x) fonctions respectivement. La fonction ceil (x) renverra le plus petit entier supérieur ou égal à X. De même, étage (x) renvoie le plus grand entier inférieur ou égal à X. le fabs (x) fonction renvoie la valeur absolue de X.

Vous pouvez également effectuer des opérations non triviales telles que le calcul de la factorielle d’un nombre à l’aide de factorielle (x). Une factorielle est le produit d'un entier et de tous les entiers positifs plus petits que celui-ci. Il est largement utilisé pour les combinaisons et les permutations. Il peut également être utilisé pour calculer la valeur des fonctions sinus et cosinus. 

import maths def getsin (x): multiplicateur = 1 résultat = 0 pour i dans la plage (1,20,2): résultat + = multiplicateur * pow (x, i) /math.factorial (i) multiplicateur * = -1 retour résultat getsin (math.pi / 2) # retourne 1.0 getsin (math.pi / 4) # retourne 0.7071067811865475

Une autre fonction utile dans le math le module est gcd (x, y), qui vous donne le plus grand commun diviseur (GCD) de deux nombres X et y. Quand X et y sont tous deux non nuls, cette fonction retourne le plus grand entier positif qui divise les deux X et y. Vous pouvez l'utiliser indirectement pour calculer le plus petit commun multiple de deux nombres à l'aide de la formule suivante:

gcd (a, b) x lcm (a, b) = a x b

Voici quelques-unes des fonctions arithmétiques offertes par Python:

importer math math.ceil (1.001) # renvoie 2 math.floor (1.001) # renvoie 1 math.factorial (10) # retourne 3628800 math.gcd (10,125) # renvoie 5 math.trunc (1.001) # renvoie 1 math.trunc (1.999) # renvoie 1

Fonctions trigonométriques

Ces fonctions relient les angles d'un triangle à ses côtés. Ils ont de nombreuses applications, notamment l’étude des triangles et la modélisation de phénomènes périodiques tels que les ondes sonores et lumineuses. Gardez à l'esprit que l'angle que vous fournissez est en radians.

Vous pouvez calculer péché (x), cos (x), et bronzage (x) directement en utilisant ce module. Cependant, il n’existe pas de formule directe pour calculer cosec (x), sec (x), et lit bébé (x), mais leur valeur est égale à l'inverse de la valeur renvoyée par péché (x), cos (x), et bronzage (x) respectivement.

Au lieu de calculer la valeur des fonctions trigonométriques à un certain angle, vous pouvez également effectuer l’inverse et calculer l’angle auquel elles ont une valeur donnée en utilisant asin (x), acos (x), et atan (x)

Connaissez-vous le théorème de Pythagore? Il indique que le carré de l'hypoténuse (le côté opposé à l'angle droit) est égal à la somme des carrés des deux autres côtés. L'hypoténuse est également le plus grand côté d'un triangle rectangle. Le module de maths fournit la hypot (a, b) fonction pour calculer la longueur de l'hypoténuse.

importer math math.sin (math.pi / 4) # renvoie 0.7071067811865476 math.cos (math.pi) # renvoie -1.0 math.tan (math.pi / 6) # renvoie 0.5773502691896257 math.hypot (12,5) # renvoie 13.0 math.atan (0.5773502691896257) # renvoie 0.5235987755982988 math.asin (0.7071067811865476) # renvoie 0.7853981633974484

Fonctions hyperboliques

Les fonctions hyperboliques sont des analogues des fonctions trigonométriques basées sur une hyperbole plutôt que sur un cercle. En trigonométrie, les points (cos b, péché b) représentent les points d'un cercle unitaire. Dans le cas de fonctions hyperboliques, les points (cosh b, sinh b) Représentent les points qui forment la moitié droite d'une hyperbole équilatérale. 

Tout comme les fonctions trigonométriques, vous pouvez calculer la valeur de sinh (x), cosh (x), et tanh (x) directement. Le reste des valeurs peut être calculé à l'aide de diverses relations entre ces trois valeurs. Il y a aussi d'autres fonctions comme asinh (x), acosh (x), et atanh (x), qui peut être utilisé pour calculer l'inverse des valeurs hyperboliques correspondantes.

importer math math.sinh (math.pi) # retourne 11.548739357257746 math.cosh (math.pi) # retourne 11.591953275521519 math.cosh (math.pi) # retourne 0,99627207622075 math.asinh (11.548739357257746) # retourne 3.141592658598595 # renvoie 3.141592653589793 math.atanh (0.99627207622075) # renvoie 3.141592653589798

Puisque math.pi est égal à environ 3.141592653589793, lorsque nous avons utilisé asinh () sur la valeur retournée par sinh (math.pi), nous avons récupéré notre π.

Fonctions d'alimentation et logarithmiques

Vous aurez probablement plus souvent affaire à des pouvoirs et à des logarithmes qu'à des fonctions hyperboliques ou trigonométriques. Heureusement, le math module fournit beaucoup de fonctions pour nous aider à calculer les logarithmes.

Vous pouvez utiliser log (x, [base]) calculer le log d'un nombre donné X à la base donnée. Si vous omettez l'argument de base facultatif, le journal de x est calculé à la base e. Ici, e est une constante mathématique dont la valeur est 2.71828182… et on peut y accéder à l'aide de math.e. À propos, Python vous permet également d’accéder à une autre constante π en utilisant math.pi.

Si vous souhaitez calculer les valeurs de logarithme en base 2 ou en base 10, utilisez log2 (x) et log10 (x) retournera des résultats plus précis que log (x, 2) et log (x, 10). Gardez à l'esprit qu'il n'y a pas log3 (x) fonction, vous devrez donc continuer à utiliser log (x, 3) pour calculer les valeurs de logarithme en base 3. La même chose vaut pour toutes les autres bases.

Si la valeur dont vous calculez le logarithme est très proche de 1, vous pouvez utiliser log1p (x). le 1p dans log1p signifie 1 plus. Donc, log1p (x) calcule log (1 + x) où x est proche de zéro. Cependant, les résultats sont plus précis avec log1p (x).

Vous pouvez également calculer la valeur d'un nombre X élevé au pouvoir y en utilisant pow (x, y). Avant de calculer les puissances, cette fonction convertit les deux arguments en type float. Si vous voulez que le résultat final soit calculé avec des puissances entières exactes, vous devez utiliser la fonction intégrée. pow () fonction ou la ** opérateur.

Vous pouvez également calculer la racine carrée d'un nombre donné X en utilisant sqrt (x), mais la même chose peut aussi être accomplie en utilisant pow (x, 0.5).

import math math.exp (5) # retourne 148.4131591025766 math.e ** 5 # renvoie 148.4131591025765 math.log (148.41315910257657) # retourne 5.0 math.log (148.41315910257657, 2) # retourne 7.213475204444817 math.log (148.41315195257477) 2.171472409516258 math.log (1.0000025) # renvoie 2.4999968749105643e-06 math.log1p (0.0000025) # renvoie 2.4999968750052084e-06 math.pow (12.5, 2.8) # renvoie 1178.5500657314767 math.pow (144, 0.5) # retourne 1278 mathqrrt. (144) # renvoie 12,0 

Nombres complexes

Les nombres complexes sont stockés en interne à l'aide de coordonnées rectangulaires ou cartésiennes. Un nombre complexe z sera représenté en coordonnées cartésiennes comme z = x + iy, où X représente la partie réelle et y représente la partie imaginaire. Une autre façon de les représenter est d'utiliser des coordonnées polaires. 

Dans ce cas, le nombre complexe z serait défini comme une combinaison du module r et angle de phase phi. Le module r est la distance entre le nombre complexe z et l'origine. L'angle phi est l'angle dans le sens anti-horaire mesuré en radians de l'axe des x positif au segment de droite se rejoignant. z et l'origine.

Lorsqu’il s’agit de nombres complexes, le cmath module peut être d'une grande aide. Le module d’un nombre complexe peut être calculé à l’aide de la fonction intégrée abdos() fonction, et sa phase peut être calculée en utilisant le phase (z) fonction disponible dans le module cmath. Vous pouvez convertir un nombre complexe sous forme rectangulaire en forme polaire en utilisant polaire (z), qui retournera une paire (r, phi), où r est abs (z) et phi est phase (z)

De même, vous pouvez convertir un nombre complexe sous forme polaire en forme rectangulaire à l'aide de rect (r, phi). Le nombre complexe retourné par cette fonction est r * (math.cos (phi) + math.sin (phi) * 1j).

import cmath cmath.polar (complex (1.0, 1.0)) # renvoie (1.4142135623730951, 0.7853981633974483) cmath.phase (complex (1.0, 1.0)) # retourne 0.7853981633974483 abs (complex (1.0, 1.0)) # retourne 1.4142135623730951

le cmath module nous permet également d’utiliser des fonctions mathématiques régulières avec des nombres complexes. Par exemple, vous pouvez calculer la racine carrée d’un nombre complexe en utilisant sqrt (z) ou son cosinus en utilisant cos (z)

importer cmath.cath.sqrt (complexe (25.0, 25.0)) # retourne (5.49342056733905 + 2.2754493028111367j) cmath.cos (complexe (25.0, 25.0)) # retourne (35685729345.58163 + 4764987221.458499j)

Les nombres complexes ont de nombreuses applications telles que la modélisation de circuits électriques, la dynamique des fluides et l'analyse de signaux. Si vous avez besoin de travailler sur l'une de ces choses, le cmath le module ne vous décevra pas. 

Dernières pensées

Toutes ces fonctions que nous avons discutées ci-dessus ont leurs applications spécifiques. Par exemple, vous pouvez utiliser le factorielle (x) fonction pour résoudre les problèmes de permutation et de combinaison. Vous pouvez utiliser les fonctions trigonométriques pour résoudre un vecteur en coordonnées cartésiennes. Vous pouvez également utiliser des fonctions trigonométriques pour simuler des fonctions périodiques telles que des ondes sonores et lumineuses.. 

De même, la courbe d'une corde suspendue entre deux poteaux peut être déterminée à l'aide d'une fonction hyperbolique. Toutes ces fonctions étant directement disponibles dans le math module, il est très facile de créer de petits programmes qui effectuent toutes ces tâches.

J'espère que vous avez apprécié ce tutoriel. Si vous avez des questions, faites le moi savoir dans les commentaires.