A metà agosto del 2021 una scuola professionale Svizzera ha annunciato di aver superato il record mondiale di calcolo dei numeri decimali della costante p greco (il rapporto tra circonferenza e diametro di un cerchio): ma come avranno fatto ?
La notizia
La notizia è stata riportata anche sui quotidiani svizzeri, ecco il link ad un quotidiano in lingua italiana.
L’annuncio della scuola lo potete trovare nelle news del loro sito in tedesco.
Infine esiste anche una pagina dedicata con dettagli sulle specifiche tecniche dei calcolatori utilizzati, l’algoritmo e gli autori del progetto sempre in tedesco.
Nella stessa pagina potete trovare il palmares degli ultimi record mondiali che riporto per semplicità:
2016 Peter Trüb 105 giorni di calcolo per ottenere 22’459’157’718’361 di cifre decimali
2018 Google 121 giorni di calcolo per ottenere 31,415,926,535,897 di cifre decimali
2019 Timothy Mullican 303 giorni di calcolo per ottenere 50’000’000’000’000 di cifre decimali
2021 FH Graubünden 140 giorni di calcolo per ottenere 62’831’853’071’796 di cifre decimali
Notevole l’ordine di grandezza del numero di cifre decimali, decine di migliaia di miliardi 10^13
L’hardware
Interessante che per il calcolo non sono stati utilizzati dei supercomputer ma dei server commerciali; questo mostra la potenza di calcolo che abbiamo oggi a disposizione, tenete presente che nel 2018 ho assistito ad una conferenza sui supercomputer e veniva mostrato come un cellulare di ultima generazione (2018) avesse una potenza di calcolo simile a quella di un supercomputer degli anni ’80, potenza che utilizziamo per far apparire le orecchie da asino ed il naso da porco attorno ai nostri selfie…vuoi mettere !
Comunque la scuola svizzera ha utilizzato un server con due CPU AMD da 32 core l’una ed una RAM da 1TB oltre a svariati TB di spazio disco. Ovviamente non sono potenze disponibili sui nostri laptop di casa ma non siamo lontani.
La formula
Molto interessante è ovviamente la formula implementata nell’algoritmo di calcolo che credo sia la stessa utilizzata in tutti i record suddetti.
Nel 1988, i fratelli Chudnovsky hanno sviluppato il seguente algoritmo per calcolare il numero p greco, qui riporto l’articolo.
{\frac {1}{\pi }}=12\sum _{k=0}^{\infty }{\frac {(-1)^{k}(6k)!(545140134k+13591409)}{(3k)!(k!)^{3}(640320^{3})^{k+1/2}}}Sempre la pagina in tedesco della scuola afferma che la formula permette il calcolo di 14.8 cifre per ogni iterazione in media utilizzando soltanto numeri interi per il calcolo.
Quindi, se ho compreso bene, con uno o due termini dovrei ottenere p greco con almeno 15 decimali esatti e…lo posso fare a mano!
Mi sono messo in testa di provarci e mi sono perso nei calcoli ma alla fine (nel senso che l’ultimo calcolo l’ho fatto con la calcolatrice) ce l’ho fatta.
Da notare che nei miei tentativi bastava un’approssimazione di troppo per sbagliare tutto, al primo tentativo ho ottenuto solo 5 decimali esatti, poi rimandando tutte le approssimazioni all’ultimo calcolo ho ottenuto 15 decimali esatti, evviva!
La pagina della scuola svizzera in effetti mette in guardia:
“…tali errori di arrotondamento hanno già portato a errori spettacolari in passato.”
che per me è stato il presente.
Calculemus
Potete provare anche voi se volete, vi riporto i decimali esatti di p greco da questa pagina che ne riporta un milione, nel caso ci prendeste gusto e voleste continuare un po’…:
3.141592653589793
Allora, siamo d’accordo, solo il termine 0 ed il termine 1:
{\displaystyle {\frac {1}{\pi }}\approx 12({\frac {(-1)^{0}(6\cdot 0)!(545140134\cdot 0+13591409)}{(3\cdot 0)!(0!)^{3}(640320^{3})^{0+1/2}}}}+{\frac {(-1)^{1}(6)!(545140134+13591409)}{(3)!(1!)^{3}(640320^{3})^{1+1/2}}})
il primo termine con quegli zeri che ammazzano il termine mi piacciono, sarà una passeggiata….
{\displaystyle {\frac {1}{\pi }}\approx 12({\frac {13591409}{(640320^{3})^{1/2}}}}+{\frac {-(6)!(545140134+13591409)}{(3)!(640320)^{3+3/2}}})al secondo termine possiamo sommare i numeratori e semplificare i fattoriali. Al denominatore di entrambi i termini possiamo raccogliere qualcosa ed ottenere:
\frac {1}{\pi } \approx \frac{12}{(640320)^{3/2}}(\frac{13591409}{1}-\frac{67’047’785’160}{(640320)^{3}})
se con l’aiuto della calcolatrice fate il conto ottenete:
0.31830988618379
il che è al limite dei decimali di una calcolatrice. Passando al reciproco si ottiene:
\pi \approx 3.141592653589792
che è sbagliato sull’ultimo decimale che dovrebbe essere 3 il che è inaccettabile!
Proviamo a fare meglio
Passiamo al reciproco dell’ultima espressione:
\pi \approx \frac{(640320)^{3/2}}{12}(\frac{(640320)^{3}}{{13591409}(640320)^{3}-{67’047’785’160}})se tenterete di fare i calcoli vi perderete in numeri enormi che nemmeno la calcolatrice è in grado di gestire. Dividiamo numeratore e denominatore per quel cubo e portiamo invece il 12 sotto radice del numeratore tenendo presente la scomposizione in fattori primi
:
640320=2^6 \cdot3\cdot 5 \cdot 23 \cdot 29 \newline
12=2^2 \cdot 3 \newline
\sqrt{\frac{(640320)^3}{12^2}}=\sqrt{2^{6\cdot 3 -2\cdot2 }\cdot 3^{3-2}\cdot (5\cdot 23 \cdot 29)^3}= \newline
\sqrt{2^{14}\cdot 3\cdot(5\cdot 23 \cdot 29)^3}=2^7\sqrt{3\cdot(5\cdot 23 \cdot 29)^3}
\pi \approx 2^7\sqrt{3\cdot(5\cdot 23 \cdot 29)^3}(\frac{1}{{13591409}-\frac{67’047’785’160}{(640320)^{3}}})la frazione che compare a denominatore è ben piccola, a numeratore abbiamo qualche cosa dell’ordine di decine di miliardi mentre a denominatore di qualche centinaio di milione di miliardi. Ho pensato di trascurarlo ma ho ottenuto solo 5 decimali esatti… con la calcolatrice
\pi \approx 2^7\sqrt{3\cdot(5\cdot 23 \cdot 29)^3}(\frac{1}{{13591409}-\frac{67’047’785’160}{(640320)^{3}}})\approx \newline
\approx 2^7\sqrt{3\cdot(5\cdot 23 \cdot 29)^3}(\frac{1}{{13591409}})\approx \newline
3.14159\vert 2653589734evidentemente quanto trascurato non è trascurabile. Si noti comunque che quel 13 milioni a denominatore non si può scomporre più di tanto e nemmeno quel 64 miliardi della frazione a denominatore:
67047785160=2^3\cdot 3 \cdot 5 \cdot (97\cdot 439 \cdot 13121) \newline 13591409=13\cdot 1045493
Possiamo comunque migliorare leggermente la frazione:
\frac{67’047’785’160}{(640320)^{3}}=\frac{2^3\cdot 3 \cdot 5 \cdot (97\cdot 439 \cdot 13121) }{2^{18} \cdot3^3\cdot 5^3 \cdot (23 \cdot 29 )^3}= \newline
=\frac{(97\cdot 439 \cdot 13121)}{2^{15} \cdot3^2\cdot 5^2 \cdot (23 \cdot 29 )^3}= \newline
=\frac{558’731’543}{2’187’811’772’006’400}Facendo l’ultimo calcolo con la calcolatrice otteniamo:
\pi \approx 2^7\sqrt{3\cdot(5\cdot 23 \cdot 29)^3}(\frac{1}{{13591409}-\frac{558’731’543}{2’187’811’772’006’400}})\approx \newline
\approx \frac{2^7\sqrt{111’277’861’125}}{13’591’408.999999744616264}\approx \newline
\approx 3.141592653589793il risultato è esatto fino all’ultimo decimale visibile sulla calcolatrice.
Che calcolatrice hai ?
Dopo aver ottenuto una formula numerica che non permette di memorizzare semplicemente il valore di p greco ci si potrebbe chiedere quale hardware ho utilizzato. A parte il mio modesto cervello ho dovuto usare una tabella di numeri interi decomposti in fattori primi e solo alla fine la calcolatrice del cellulare. Se volete potete provare con il programma calc presente su qualsiasi computer con sistema operativo Windows, permette di avere anche un numero maggiore di decimali.
Concludendo
Quante insidie per il calcolo di due termini di una serie! Spesso penso che una volta ottenuta una formula poi basta ficcarla in un computer e aspettare che il calcolo venga eseguito, ma non considero con la dovuta attenzione le approssimazioni. Infatti normalmente le trascuro ma qui stiamo cercando di calcolare p greco con una precisione di 10^(-15) non possiamo approssimare come facciamo di solito.
Comunque non dimentichiamoci di congratularci con i tipi della scuola svizzera, una bella pubblicità per una scuola professionale d’informatica.
Come avete visto i giornali (non solo quello messo nel link), specificano che tutti quei decimali calcolati non hanno utilità e lo dice anche la scuola ma non è vero. Come tutta la ricerca scientifica quello che conta per gli scienziati è il risultato dell’esperimento, qualche matematico sarà interessato allo studio statistico dei decimali di p greco ma per i non scienziati il risultato è molto più importante. Sono stati testati dei sistemi informatici, sono stati portati al limite delle loro capacità, la scuola ha capito i limiti dei propri sistemi (i backup dice la loro pagina) ed ora si sentono pronti per fare cose utili come le simulazioni di modelli di ogni tipo.
Voglio sottolineare questa ultima cosa: per mettere in piedi gli acceleratori di particelle del CERN a Ginevra si spendono miliardi di euro, servono per progettare e realizzare machine mai fatte prima dall’uomo, servono per studiare nuovi materiali e sviluppare nuovi metodi di calcolo tutte cose che ci ritroviamo nella vita di tutti i giorni. Le pagine html di internet le hanno inventate al CERN, il Teflon per le padelle antiaderenti durante la progettazione del missile Saturn che ha portato l’uomo sulla Luna…non facevano parte del programma di ricerca, non sono particelle ne rocce lunari ma sono il risultato di una ricerca che ha ricadute sulla nostra vita quotidiana. Insomma, nella scienza per quanto riguarda gli investimenti bisogna guardare il dito e non cosa indica.
Tanti decimali a tutti.
Bibliografia
Consulta la pagina a questo link