L’algoritmo basato sulla formula di Chudnovsky rappresenta un metodo efficace e preciso per il calcolo delle cifre di π. Grazie alla sua rapida convergenza, la formula è ampiamente utilizzata per ottenere livelli elevati di precisione nel calcolo di π.
Strategia dell’Algoritmo
La formula di Chudnovsky si esprime come segue:
Ogni termine della serie contribuisce significativamente alla precisione del valore di π, con circa 14 cifre esatte per termine.
Caratteristiche Chiave
- Precisione Arbitraria: Utilizzo del tipo
Decimal
per calcoli ad alta precisione. - Calcolo Iterativo: Iterazione attraverso i termini della serie per la somma.
- Ottimizzazione: Gestione efficiente dei calcoli di fattoriali e potenze.
- Stima dei Termini: Determinazione del numero di termini necessari basata sulla precisione desiderata.
Implementazione
L’approccio alla formula di Chudnovsky prevede il calcolo sequenziale di ogni termine, con un’attenzione particolare alla gestione della precisione attraverso il tipo Decimal
di Python. Ciò assicura che il calcolo mantenga l’accuratezza richiesta anche a livelli elevati di cifre decimali.
Uso in Python
Ecco un esempio di implementazione in Python:
from math import factorial
from decimal import Decimal, getcontext
# Funzione per calcolare pi utilizzando la formula di Chudnovsky
def calc_pi(terms, digits):
extra_prec = 5
getcontext().prec = digits + extra_prec
result = Decimal(0)
for q in range(terms):
n = (-1)**q*factorial(6*q)*(545140134*q+13591409)
dev = factorial(3*q)*factorial(q)**3*640320**(3*q)
result += Decimal(n)/Decimal(dev)
result *= Decimal(12)/Decimal(640320**Decimal(1.5))
pi = Decimal(1/result)
getcontext().prec -= extra_prec
return pi
# Esempio di utilizzo
digits = 100 # Numero di cifre decimali desiderate di pi
terms = int(digits/13) + 1
pi = calc_pi(terms, digits)
print(pi)
Questo codice calcola π con un livello di precisione specificato, dimostrando l’efficacia dell’algoritmo di Chudnovsky nella pratica computazionale.