≡ Menu

Calcolo di π con la Formula di Chudnovsky

Screenshot 2024-02-03 alle 20.06.59.png

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:

1π=12k=0(1)k(6k)!(545140134k+13591409)(3k)!(k!)36403203k+3/2

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.

{ 0 comments… add one }

Rispondi

Previous post: