Vai al contenuto
🛠️ToolsShed

Calcolatore Frazioni Continue

Converti decimali o frazioni in notazione a frazione continua con convergenti.

Informazioni sullo strumento

Una frazione continua è una rappresentazione matematica che esprime qualsiasi numero reale come una sequenza di divisioni annidate. A differenza della notazione decimale standard, le frazioni continue rivelano la struttura aritmetica sottostante di un numero e forniscono approssimazioni razionali progressivamente migliori. Questo strumento converte il vostro input—sia esso un numero decimale come 3.14159 o una frazione come 355/113—nella sua forma di frazione continua, permettendovi di capire facilmente come i matematici hanno storicamente scoperto approssimazioni razionali notevolmente precise di costanti irrazionali.

Usare questo calcolatore è semplice: inserite il vostro numero decimale o una frazione nella forma numeratore/denominatore, quindi specificate quanti termini desiderate calcolare. Lo strumento visualizza la notazione di frazione continua nella forma [a₀; a₁, a₂, ...] e genera una tabella di convergenti—la sequenza di frazioni che si avvicinano progressivamente al vostro numero originale con precisione sempre crescente. Ogni convergente fornisce la migliore approssimazione razionale possibile rispetto alla dimensione del suo denominatore, una proprietà sfruttata nei sistemi di navigazione, nei calcoli astronomici e nell'accordatura musicale.

Le frazioni continue sono particolarmente preziose in teoria dei numeri e crittografia, dove approssimare numeri irrazionali in modo efficiente può esporre proprietà matematiche sottili. I modelli periodici che emergono per certi numeri irrazionali (come la radice quadrata di 2) rivelano connessioni profonde all'algebra e alla geometria. Che stiate esplorando matematica pura, convalidando approssimazioni ingegneristiche o semplicemente curiosi del perché 355/113 approssimi π così accuratamente, questo strumento trasforma la teoria astratta delle frazioni continue in calcolo visuale e interattivo.

Domande Frequenti

Implementazione del Codice

import math

def continued_fraction(x: float, max_terms: int = 20) -> list[int]:
    """Compute continued fraction representation of x"""
    terms = []
    remaining = x
    for _ in range(max_terms):
        a = int(math.floor(remaining))
        terms.append(a)
        frac = remaining - a
        if abs(frac) < 1e-10:
            break
        remaining = 1 / frac
        if not math.isfinite(remaining):
            break
    return terms

def convergents(terms: list[int]) -> list[tuple[int, int]]:
    """Compute convergents (rational approximations) from continued fraction terms"""
    conv = []
    h_prev, h_curr = 1, terms[0]
    k_prev, k_curr = 0, 1
    conv.append((h_curr, k_curr))

    for i in range(1, len(terms)):
        a = terms[i]
        h_next = a * h_curr + h_prev
        k_next = a * k_curr + k_prev
        h_prev, h_curr = h_curr, h_next
        k_prev, k_curr = k_curr, k_next
        conv.append((h_curr, k_curr))
    return conv

# Example: pi
pi_terms = continued_fraction(math.pi, 10)
print(f"pi = [{pi_terms[0]}; {', '.join(map(str, pi_terms[1:]))}]")

for num, den in convergents(pi_terms):
    approx = num / den
    error = abs(approx - math.pi)
    print(f"  {num}/{den} = {approx:.10f}  (error: {error:.2e})")

# Golden ratio
phi = (1 + math.sqrt(5)) / 2
print(f"phi terms: {continued_fraction(phi, 8)}")  # All ones!

# sqrt(2)
sqrt2_terms = continued_fraction(math.sqrt(2), 8)
print(f"sqrt(2) terms: {sqrt2_terms}")  # [1; 2, 2, 2, ...]

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.