Matematica In Python
Matematica in Python¶
Obiettivi della Lezione¶
Al termine di questa lezione, sarai in grado di:
- Comprendere come utilizzare gli operatori matematici base in Python.
- Utilizzare il modulo integrato
math
per funzioni matematiche avanzate. - Lavorare con i numeri complessi in Python.
- Gestire numeri decimali con precisione utilizzando il modulo
decimal
. - Operare con frazioni utilizzando il modulo
fractions
.
Introduzione¶
La programmazione è spesso utilizzata per risolvere problemi matematici, eseguire calcoli complessi o analizzare dati numerici. Python, con la sua sintassi semplice e le potenti librerie matematiche, è uno strumento eccellente per queste attività. In questa lezione, esploreremo come Python gestisce le operazioni matematiche, dalle più semplici alle più avanzate, e come utilizzare i moduli integrati per estendere le capacità matematiche del linguaggio.
Spiegazione Teorica¶
Operatori Matematici Base¶
In Python, puoi eseguire operazioni matematiche utilizzando operatori aritmetici standard:
+
: addizione-
: sottrazione*
: moltiplicazione/
: divisione (risultato in float)//
: divisione intera (parte intera del quoziente)%
: modulo (resto della divisione)**
: esponenziazione
Il Modulo math
¶
Il modulo math
fornisce funzioni matematiche avanzate, come funzioni trigonometriche, logaritmi e costanti matematiche come π e e.
Per utilizzare le funzioni di questo modulo, è necessario importarlo:
import math
Numeri Complessi¶
Python supporta i numeri complessi, che hanno una parte reale e una immaginaria. Sono utili in molti campi dell’ingegneria e della fisica.
Modulo decimal
¶
Per calcoli che richiedono un’elevata precisione numerica, il modulo decimal
permette operazioni sui numeri decimali con precisione arbitraria.
Modulo fractions
¶
Il modulo fractions
consente di creare e manipolare numeri razionali rappresentati come frazioni (numeratore e denominatore interi).
# Addizione
a = 10
b = 5
somma = a + b
print("Somma:", somma) # Output: Somma: 15
# Sottrazione
differenza = a - b
print("Differenza:", differenza) # Output: Differenza: 5
# Moltiplicazione
prodotto = a * b
print("Prodotto:", prodotto) # Output: Prodotto: 50
# Divisione
quoziente = a / b
print("Quoziente:", quoziente) # Output: Quoziente: 2.0
# Divisione intera
quoziente_intero = a // b
print("Quoziente intero:", quoziente_intero) # Output: Quoziente intero: 2
# Modulo
resto = a % b
print("Resto:", resto) # Output: Resto: 0
# Esponenziazione
potenza = a ** b
print("Potenza:", potenza) # Output: Potenza: 100000
Somma: 15 Differenza: 5 Prodotto: 50 Quoziente: 2.0 Quoziente intero: 2 Resto: 0 Potenza: 100000
Funzioni del Modulo math
¶
import math
# Costanti matematiche
print("Pi greco:", math.pi) # Output: Pi greco: 3.141592653589793
print("Numero di Eulero:", math.e) # Output: Numero di Eulero: 2.718281828459045
# Funzioni trigonometriche
angolo = math.pi / 4 # 45 gradi in radianti
print("Seno:", math.sin(angolo)) # Output: Seno: 0.7071067811865475
print("Coseno:", math.cos(angolo)) # Output: Coseno: 0.7071067811865476
# Logaritmi
print("Logaritmo naturale di e:", math.log(math.e)) # Output: Logaritmo naturale di e: 1.0
print("Logaritmo in base 10 di 1000:", math.log10(1000)) # Output: Logaritmo in base 10 di 1000: 3.0
# Radice quadrata
print("Radice quadrata di 16:", math.sqrt(16)) # Output: Radice quadrata di 16: 4.0
# Operazioni sul resto
print("Fattoriale di 5:", math.factorial(5)) # Output: Fattoriale di 5: 120
Pi greco: 3.141592653589793 Numero di Eulero: 2.718281828459045 Seno: 0.7071067811865476 Coseno: 0.7071067811865476 Logaritmo naturale di e: 1.0 Logaritmo in base 10 di 1000: 3.0 Radice quadrata di 16: 4.0 Fattoriale di 5: 120
Numeri Complessi¶
# Creazione di un numero complesso
z = 3 + 4j
print("Numero complesso:", z) # Output: Numero complesso: (3+4j)
# Parte reale e immaginaria
print("Parte reale:", z.real) # Output: Parte reale: 3.0
print("Parte immaginaria:", z.imag) # Output: Parte immaginaria: 4.0
# Modulo e argomento
modulo = abs(z)
print("Modulo:", modulo) # Output: Modulo: 5.0
Numero complesso: (3+4j) Parte reale: 3.0 Parte immaginaria: 4.0 Modulo: 5.0
Utilizzo del Modulo decimal
¶
from decimal import Decimal, getcontext
# Impostare la precisione
getcontext().prec = 6
# Operazioni con Decimal
a = Decimal('1.23456789')
b = Decimal('2.34567891')
somma = a + b
print("Somma con Decimal:", somma) # Output: Somma con Decimal: 3.58025
Somma con Decimal: 3.58025
Utilizzo del Modulo fractions
¶
from fractions import Fraction
# Creazione di frazioni
f1 = Fraction(1, 3)
f2 = Fraction(2, 5)
# Operazioni con frazioni
somma = f1 + f2
print("Somma di frazioni:", somma) # Output: Somma di frazioni: 11/15
# Convertire una frazione in float
print("Frazione come float:", float(somma)) # Output: Frazione come float: 0.7333333333333333
Somma di frazioni: 11/15 Frazione come float: 0.7333333333333333
Esercizi Interattivi¶
Calcolo dell’Ipotenusa
Scrivi un programma che, dati i cateti di un triangolo rettangolo, calcoli l’ipotenusa utilizzando il teorema di Pitagora.
import math # Inserisci i valori dei cateti a = float(input("Inserisci il primo cateto: ")) b = float(input("Inserisci il secondo cateto: ")) # Calcola l'ipotenusa # Il tuo codice qui print("L'ipotenusa è:", ipotenusa)
Area di un Cerchio
Utilizzando il modulo
math
, scrivi un programma che calcoli l’area di un cerchio dato il raggio inserito dall’utente.import math # Inserisci il valore del raggio raggio = float(input("Inserisci il raggio del cerchio: ")) # Calcola l'area # Il tuo codice qui print("L'area del cerchio è:", area)
Somma di Frazioni
Chiedi all’utente di inserire due frazioni (numeratore e denominatore) e calcola la loro somma utilizzando il modulo
fractions
.from fractions import Fraction # Inserisci la prima frazione num1 = int(input("Inserisci il numeratore della prima frazione: ")) den1 = int(input("Inserisci il denominatore della prima frazione: ")) # Inserisci la seconda frazione num2 = int(input("Inserisci il numeratore della seconda frazione: ")) den2 = int(input("Inserisci il denominatore della seconda frazione: ")) # Calcola la somma delle frazioni # Il tuo codice qui print("La somma delle frazioni è:", somma)
Buone Pratiche e Consigli¶
Importare Solo Ciò che Serve: se utilizzi solo alcune funzioni di un modulo, puoi importarle direttamente per rendere il codice più pulito.
from math import sqrt, pi
Usare Nomi Significativi: quando lavori con formule matematiche, utilizza nomi di variabili che riflettano il loro significato (es.
raggio
,area
,volume
).Commenta il Codice: per calcoli complessi, aggiungi commenti che spieghino i passaggi matematici.
Gestire l’Arrotondamento: quando lavori con numeri in virgola mobile, sii consapevole delle possibili imprecisioni e utilizza il modulo
decimal
se necessiti di maggiore precisione.Evitare Divisioni per Zero: assicurati sempre che i denominatori non siano zero per evitare errori di runtime.
Conclusione¶
In questa lezione, abbiamo esplorato le capacità matematiche di Python, dalle operazioni aritmetiche di base all’utilizzo di moduli specializzati come math
, decimal
e fractions
. Questi strumenti ti permettono di affrontare una vasta gamma di problemi matematici e di eseguire calcoli con la precisione richiesta dalle tue applicazioni. Sperimenta con questi moduli e incorporali nei tuoi progetti per sfruttare al massimo le potenzialità di Python.
Risorse Aggiuntive¶
Documentazione Ufficiale Python:
Libro Consigliato: Python Crash Course di Eric Matthes
Video Tutorial: Import Math Functions in Python