Davvero non so come cominciare. Ma una rassicurazione prima di tutto: sto bene; e posso smettere quando voglio. Anzi mi sta già passando. Finisco il post e torno quello di sempre.
Ma intanto è meglio se vi racconto tutto.
Recentemente mi sono preso una cotta di quelle toste per quel libro, ne ho parlato diffusamente nell’altro blog, quello più vario e meno serioso, diffusamente ma principalmente qui.
Dal libro sono passato al mio ing. preferito, Archimede e googlando sono capitato sul sito di un prof canadese di Parigi, Ilan Vardi e di lì alle frazioni continue.
Sì, completamente perso; tanto il ritardo è talmente tanto che cambia poco. Ecco le frazioni continue non le avevo mai considerate. Fino a oggi. Per esempio prendi π, si può approssimare così:
E poi scriverlo in questo modo π ~= [3, 7, 15, 1, 292, ...]
. E da questo tornare a calcolare il valore decimale. Adesso lo faccio, mi son detto. Ma c’è Google. E John D. Cook che ha già fatto tutto, ecco il suo post: Rational approximations to e.
John è davvero bravo, con piccolissime modifiche, sostituire pi a e (righe 2, 4 e 26) e il codice è pronto (pijdc.py):
from __future__ import division from math import pi pi_frac = [3, 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2] def display(n, d, exact): print n, d, n/d, n/d - exact def approx(a, exact): # initialize the recurrence n0 = a[0] d0 = 1 n1 = a[0]*a[1] + 1 d1 = a[1] display(n0, d0, exact) display(n1, d1, exact) for x in a[2:]: n = x*n1 + n0 # numerator d = x*d1 + d0 # denominator display(n, d, exact) n1, n0 = n, n1 d1, d0 = d, d1 approx(pi_frac, pi)
Bello vero? Adesso uno la frazione continua potrebbe anche calcolarsela ma c’è il web. Sempre da John ecco OEIS.
Uh, c’è il sorgente per Mathematica: ContinuedFraction[Pi, 98]
, da provare. Il fatto è che Mathematica è onerosa, dovrei fare un salto al Poli, chiedere a una delle mie vittime … ma c’è un modo più semplice: WolframAlpha online.
Cosmico! Se fossi ricco Mathematica sarebbe mia!
Ma aspetta, c’è un clone free, devo riprendere Mathics, appena ho la macchina nuova e smaltisco l’arretrato…