Moduli matematici in Python Math e Cmath

Quando scriviamo programmi nella nostra vita quotidiana, di solito incontriamo situazioni in cui dobbiamo usare un po 'di matematica per portare a termine il compito. Come altri linguaggi di programmazione, Python fornisce vari operatori per eseguire calcoli di base come * per la moltiplicazione, % per modulo, e // per divisione del pavimento.

Se stai scrivendo un programma per eseguire compiti specifici come lo studio del movimento periodico o la simulazione di circuiti elettrici, dovrai lavorare con funzioni trigonometriche e numeri complessi. Anche se non è possibile utilizzare direttamente queste funzioni, è possibile accedervi includendo prima due moduli matematici. Questi moduli sono matematica e cmath. 

Il primo fornisce l'accesso alle funzioni iperboliche, trigonometriche e logaritmiche per i numeri reali, mentre il secondo consente di lavorare con numeri complessi. In questo tutorial, esaminerò tutte le funzioni importanti offerte da questi moduli. Se non esplicitamente menzionato, tutti i valori restituiti sono float.

Funzioni aritmetiche

Queste funzioni eseguono varie operazioni aritmetiche come il calcolo del pavimento, del soffitto o del valore assoluto di un numero usando il piano (x), ceil (x), e fabs (x) funzioni rispettivamente. La funzione ceil (x) restituirà il numero più piccolo che è maggiore o uguale a X. allo stesso modo, piano (x) restituisce il numero intero maggiore minore o uguale a X. Il fabs (x) la funzione restituisce il valore assoluto di X.

Puoi anche eseguire operazioni non banali come calcolare il fattoriale di un numero usando fattoriale (x). Un fattoriale è il prodotto di un intero e di tutti gli interi positivi più piccoli di esso. È usato estensivamente quando si tratta di combinazioni e permutazioni. Può anche essere usato per calcolare il valore delle funzioni seno e coseno. 

import math def getsin (x): moltiplicatore = 1 risultato = 0 per i nell'intervallo (1,20,2): risultato + = moltiplicatore * pow (x, i) /math.factorial (i) moltiplicatore * = -1 ritorno risultato getin (math.pi / 2) # restituisce 1.0 getsin (math.pi / 4) # restituisce 0.7071067811865475

Un'altra funzione utile nel matematica il modulo è gcd (x, y), che ti dà il massimo comun divisore (GCD) di due numeri X e y. quando X e y non sono entrambi zero, questa funzione restituisce il numero intero positivo più grande che divide entrambi X e y. Puoi utilizzarlo indirettamente per calcolare il multiplo comune più basso di due numeri usando la seguente formula:

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

Ecco alcune delle funzioni aritmetiche offerte da Python:

import math math.ceil (1.001) # restituisce 2 math.floor (1.001) # restituisce 1 math.factorial (10) # restituisce 3628800 math.gcd (10.125) # restituisce 5 math.trunc (1.001) # restituisce 1 math.trunc (1.999) # restituisce 1

Funzioni trigonometriche

Queste funzioni mettono in relazione gli angoli di un triangolo ai suoi lati. Hanno un sacco di applicazioni, incluso lo studio dei triangoli e la modellazione di fenomeni periodici come il suono e le onde luminose. Tieni presente che l'angolo che fornisci è in radianti.

Puoi calcolare sin (x), cos (x), e tan (x) direttamente usando questo modulo. Tuttavia, non esiste una formula diretta da calcolare cosec (x), sec (x), e lettino (x), ma il loro valore è uguale al reciproco del valore restituito da sin (x), cos (x), e tan (x) rispettivamente.

Invece di calcolare il valore delle funzioni trigonometriche ad un certo angolo, puoi anche fare l'inverso e calcolare l'angolo con cui hanno un valore dato usando asin (x), acos (x), e atan (x)

Conoscete il teorema di Pitagora? Si afferma che il quadrato dell'ipotenusa (il lato opposto all'angolo retto) è uguale alla somma dei quadrati degli altri due lati. L'ipotenusa è anche il lato più grande di un triangolo rettangolo. Il modulo matematico fornisce il hypot (a, b) funzione per calcolare la lunghezza dell'ipotenusa.

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

Funzioni iperboliche

Le funzioni iperboliche sono analoghe alle funzioni trigonometriche basate su un'iperbole anziché su un cerchio. Nella trigonometria, i punti (cos B, peccato B) rappresentano i punti di un cerchio unitario. Nel caso delle funzioni iperboliche, i punti (cosh B, sinh B) Rappresentano i punti che formano la metà destra di un'iperbole equilatera. 

Proprio come le funzioni trigonometriche, puoi calcolare il valore di sinh (x), cosh (x), e tanh (x) direttamente. Il resto dei valori può essere calcolato utilizzando varie relazioni tra questi tre valori. Ci sono anche altre funzioni come asinh (x), acosh (x), e atanh (x), che può essere usato per calcolare l'inverso dei corrispondenti valori iperbolici.

import math.sinh matematica (math.pi) # restituisce 11.548739357257746 math.cosh (math.pi) # restituisce 11.591953275521519 math.cosh (math.pi) # restituisce 0.99627207622075 math.asinh (11.548739357257746) # restituisce 3.141592653589793 math.acosh (11.591953275521519) # restituisce 3.141592653589793 math.atanh (0.99627207622075) # restituisce 3.141592653589798

Da Math.PI è uguale a circa 3,141592653589793, quando abbiamo usato ASINH () sul valore restituito da sinh (Math.PI), abbiamo riabbassato il nostro π.

Funzioni di potenza e logaritmiche

Probabilmente avrai a che fare con poteri e logaritmi più spesso delle funzioni iperboliche o trigonometriche. Fortunatamente, il matematica modulo fornisce molte funzioni per aiutarci a calcolare i logaritmi.

Puoi usare log (x, [base]) per calcolare il log di un dato numero X alla base indicata. Se si omette l'argomento base opzionale, il registro di x viene calcolato sulla base e. Qui, e è una costante matematica il cui valore è 2.71828182 ... ed è accessibile tramite Math.E. A proposito, Python ti permette anche di accedere a un'altra costante π usando Math.PI.

Se si desidera calcolare i valori del logaritmo in base 2 o in base 10, utilizzando log2 (x) e log10 (x) restituirà risultati più precisi di log (x, 2) e log (x, 10). Tieni presente che non c'è log3 (x) funzione, quindi dovrai continuare a usare log (x, 3) per calcolare i valori del logaritmo in base 3. Lo stesso vale per tutte le altre basi.

Se il valore il cui logaritmo si sta calcolando è molto vicino a 1, è possibile utilizzare log1p (x). Il 1p nel log1p significa 1 più. Perciò, log1p (x) calcola log (1 + x) dove x è vicino a zero. Tuttavia, i risultati sono più accurati con log1p (x).

Puoi anche calcolare il valore di un numero X elevato al potere y usando pow (x, y). Prima di calcolare i poteri, questa funzione converte entrambi gli argomenti in type float. Se si desidera che il risultato finale sia calcolato in poteri interi esatti, è necessario utilizzare il built-in pow () funzione o il ** operatore.

Puoi anche calcolare la radice quadrata di un dato numero X usando sqrt (x), ma la stessa cosa può essere ottenuta usando pow (x, 0.5).

import math.exp (5) # restituisce 148.4131591025766 math.e ** 5 # restituisce 148.4131591025765 math.log (148.41315910257657) # restituisce 5.0 math.log (148.41315910257657, 2) # restituisce 7.213475204444817 math.log (148.41315910257657, 10) # restituzioni 2.171472409516258 math.log (1.0000025) # restituisce 2.4999968749105643e-06 math.log1p (0.0000025) # restituisce 2.4999968750052084e-06 math.pow (12.5, 2.8) # restituisce 1178.5500657314767 math.pow (144, 0.5) # restituisce 12.0 math.sqrt (144) # restituisce 12.0 

Numeri complessi

I numeri complessi sono memorizzati internamente usando coordinate rettangolari o cartesiane. Un numero complesso z sarà rappresentato in coordinate cartesiane come z = x + iy, dove X rappresenta la parte reale e y rappresenta la parte immaginaria. Un altro modo per rappresentarli è usando le coordinate polari. 

In questo caso, il numero complesso z sarebbe definito come una combinazione del modulo r e l'angolo di fase phi. Il modulo r è la distanza tra il numero complesso z e l'origine. L'angolo phi è l'angolo in senso antiorario misurato in radianti dall'asse x positivo alla giunzione del segmento di linea z e l'origine.

Pur trattando con numeri complessi, il cmath il modulo può essere di grande aiuto. Il modulo di un numero complesso può essere calcolato utilizzando il built-in addominali() funzione, e la sua fase può essere calcolata usando il fase (z) funzione disponibile nel modulo cmath. È possibile convertire un numero complesso in forma rettangolare in forma polare usando polare (z), che restituirà una coppia (r, phi), dove r è abs (z) e phi è fase (z)

Allo stesso modo, è possibile convertire un numero complesso in forma polare in forma rettangolare usando rect (r, phi). Il numero complesso restituito da questa funzione è R * (Math.cos (phi) + Math.sin (phi) * 1 undecies).

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

Il cmath il modulo ci consente inoltre di utilizzare funzioni matematiche regolari con numeri complessi. Ad esempio, puoi calcolare la radice quadrata di un numero complesso usando sqrt (z) o il suo coseno usando cos (z)

import cmath.sqrt cmath (complex (25.0, 25.0)) # restituisce (5.49342056733905 + 2.2754493028111367j) cmath.cos (complex (25.0, 25.0)) # returns (35685729345.58163 + 4764987221.458499j)

I numeri complessi hanno un sacco di applicazioni come la modellazione di circuiti elettrici, fluidodinamica e analisi del segnale. Se hai bisogno di lavorare su una di queste cose, il cmath il modulo non ti deluderà. 

Pensieri finali

Tutte queste funzioni che abbiamo discusso sopra hanno le loro applicazioni specifiche. Ad esempio, puoi usare il fattoriale (x) funzione per risolvere permutazione e problemi di combinazione. È possibile utilizzare le funzioni trigonometriche per risolvere un vettore in coordinate cartesiane. Puoi anche utilizzare le funzioni trigonometriche per simulare funzioni periodiche come il suono e le onde luminose. 

Allo stesso modo, la curva di una fune sospesa tra due poli può essere determinata utilizzando una funzione iperbolica. Dal momento che tutte queste funzioni sono direttamente disponibili nel matematica modulo, rende molto facile creare piccoli programmi che eseguono tutte queste attività.

Spero che questo tutorial ti sia piaciuto. Se hai domande, fammelo sapere nei commenti.