Estratto del documento

Cristiano Teodoro

cristianoteodoro@virgilio.it e

Sul calcolo di π e di e con il numero desiderato di cifre decimali

Nella storia della matematica il calcolo di π ha sempre affascinato l’uomo spingendolo nella ricerca di un sempre maggior numero di decimali esatti di questo numero trascendente [1].

Sommario

E’ sufficiente andare su Internet (vedi ad esempio [2]) per accorgersi dell’interesse che tale importante numero suscita. In diversi siti viene dato il valore numerico di π con un numero anche molto grande di cifre decimali, senza tuttavia spiegare come si sono trovate; in altri sono date varie formule, ciascuna costituita da un numero infinito di termini riguardanti il valore teorico di π. E’ difficile però trovare una trattazione esauriente relativa ad un algoritmo efficiente per il calcolo di questo numero con tutti gli esatti decimali desiderati, corredato da una esposizione delle problematiche che nascono per realizzarlo.

Analoghe considerazioni si possono fare nei riguardi di un altro importante numero trascendente, cioè il numero e noto come Numero di Eulero [3] o di Nepero.

Per saperne di più sulla loro storia e sui loro aspetti teorici di questi due importanti numeri si rimanda ai riferimenti.

Questo articolo invece è dedicato per ciascuno dei due numeri a illustrare un algoritmo per il calcolo esatto di tutte le cifre decimali desiderate sino ad un massimo di 50000, con l’esposizione delle diverse problematiche che s’incontrano.

E’ importante sottolineare che nei programmi dedicati alla realizzazione degli algoritmi, risulta necessario ed indispensabile l’uso nell’impostazione dei calcoli di una aritmetica a precisione

G

10

multipla con Base con G da scegliersi tra i valori o 5 o 6 o 7, col vantaggio oltre a quello di ottenere risultati sempre esatti, di accelerarne l’esecuzione, sfruttando naturalmente per i calcoli aritmetici elementari l’aritmetica a doppia precisione disponibile sul PC nel software del linguaggio evoluto adoperato, nel presente caso il Qbasic. All’articolo sono allegati i listati dei programmi uno relativo a π, l’altro al numero di Eulero, ed anche alcuni risultati ottenuti con il loro utilizzo, riportanti l’insieme di tutti i decimali esatti desiderati per ciascuno dei due numeri in questione con il necessario tempo di calcolo. π

Abstract

Abstract: In the history of mathematics the computation has at all times interested the man and has incited him towards the pursuit in the search of larger decimal places of this transcendental

[1], [2]

number. That’s enough to go into the web Internet (for ex) and we notice the interest of this important number. In several websites the value is displayed with a big decimal places set, but without explaining how this set has been found; in the others are showed several formulas concerning the theoretical value. But it is hard to find an exhaustive processing pertinent to an efficient algorithm for its computation with the wanted decimal places and a description of the problems related to its implementation.

e[3].

We can do similar considerations for another important number, the Euler number

For their history and about their theoretical subjects we refer to the end of this paper.

In this paper we explain instead for each number an algorithm concerning the exact computation of the all wanted decimal places several tens or some hundreds and even 50000 places) and we expound the problems arising for its achievement.

We underline that in the programs for the fulfilment of algorithms is absolutely necessary the employment of a Radix multiple-precision arithmetic (G = 5, or 6 or 7).

G

10

We obtain in this way ever-precise results and we also quicken their performance, using naturally the double-precision arithmetic, available on PC with Qbasic language.

We report also, as enclosures, two programs in Qbasic language and, by using these programs, some results highlighting their computation time. 2

Calcolo di π

π [4] sotto forma di serie, cioè come somma

Sono note molte formule che danno il valore di

algebrica di un numero infinito di termini di valore sempre più piccolo, ciascun termine essendo espresso da un numero razionale del tipo

A

con A e B numeri interi.

B

Una serie adatta al nostro scopo deve presentare un rapido grado di convergenza, il che significa che con il minor numero di termini della serie si deve trovare il valore di π con il numero di cifre decimali esatte richieste. Vi sono numerose formule (vedi sempre [4]) con le quali si può calcolare π tramite la funzione arctan.

Una delle più efficienti formule è quella nota come serie di Machin. Tale serie scoperta appunto da Machin nel lontano 1706 è la seguente [1], [5]:

π  

  1

1

= −

⋅  

  arctan (1)

4 arctan

4 239

5  

 .

π

usata da diversi matematici prima dell’avvento dei calcolatori per il calcolo delle cifre di

Questa serie è stata anche utilizzata con successo con l’ausilio del calcolatore soprattutto nei primi anni dell’era computerizzata (vedi ad esempio il suo impiego sull’ENIAC nel 1949 [6]; sul NORC nel 1955 [7]; sull’ IBM 704 [8]), perché si presenta di relativa facile programmazione.

Anche qui useremo questa serie come base per la realizzazione di un programma di calcolo adatto al nostro scopo.

Se si sviluppa la (1) si ha: 16 16

16 16 16 16 16 16 + −

− + − + − + ……… .

π = +………….

−

− ⋅ ⋅

k 1 k

⋅ ⋅ ⋅ ⋅ ⋅ (1

) 5 5

k k

3 5 7 9 11

5 3 5 5 5 7 5 9 5 11 5 4 4

4 4 4 4 − +

− + − + –

+………………. …………

−

− ⋅ ⋅

k 1 k

⋅ ⋅ ⋅ (1

) 239 239

k k

3 5 7

239 3 239 5 239 7 239

∞

→

k

con

che si può scrivere in forma compatta come segue:

 

∞ 16 4

∑  

− −

k

(1

) (2)

π =  

⋅ + ⋅ +

⋅ + ⋅ ⋅ + ⋅

2 k 1 2 k 1

(2 k 1

) 5 (2 k 1

) 239

 

=

k 0

Manipolando un po’ la formula la si può porre sotto la forma seguente:

16 4

( ) ( )

5 239

−

∞ 2 k 2 k

  ( 5 ) ( 239 )

16 4 ∑ − ⋅

− + k

  (1

) (3)

π = ⋅ +

2 k 1

5 239

  =

k 1

Naturalmente in un calcolo effettivo i termini della serie devono essere considerati in numero finito, dipendente da quante cifre decimali esatte di π si vogliono ottenere. Nella formula occorre sostituire quindi il segno di infinito con un numero ben definito, di valore FS il meno elevato possibile, compatibilmente con tutte le cifre esatte che si vogliono ottenere. Pertanto utilizzando sempre la formula (3) si ha: 3

16 4

( ) ( )

5 239

−

2 2

k k

  FS ( 5 ) ( 239 )

16 4 ∑ − ⋅

− + k

  (1

)

π = (4)

⋅ +

2 k 1

5 239

  =

1

k

formula che si presta abbastanza facilmente per la realizzazione di un algoritmo di tipo iterativo da sviluppare e trattare con operazioni aritmetiche non in Base 10 ma in una base più elevata

G

10 con

l’esponente G >1 da scegliersi opportunamente tra i valori 5, 6, 7 per accelerarne l’esecuzione. Dalla formula indicata si può osservare che vengono implicate tutte quante le quattro operazioni aritmetiche elementari, operazioni queste che verranno eseguite con l’aritmetica a doppia precisione disponibile.

Nei riguardi dell’operazione di divisione, si vuole precisare che per essa, pur utilizzando una aritmetica a precisione multipla, non si presentano in questo caso particolari difficoltà di programmazione, purché si mantengano adeguatamente piccoli tutti i valori numerici dei vari divisori.

−

G

10 2.

E ciò lo si può avere sino ad un valore k = 2

Per rispettare l’obiettivo di calcolare tutte le cifre esatte richieste e nel tempo più breve possibile si dovrà realizzare un programma che persegua i seguenti obiettivi:

π

individuare il minimo numero FS di termini della serie in grado di determinare il valore di

1) con tutte e sole le cifre decimali esatte richieste. Si può in effetti dimostrare (vedi il riquadro)

 

+ −

N log 16 log 5 + 1

che è sufficiente un numero di termini pari a FS =, riguardanti

 

⋅

 

2 log 5 π

sostanzialmente la prima sommatoria della (2), dove N è il numero dei decimali esatti di π che si desiderano ottenere. (Nella formula il simbolo log indica il logaritmo in base 10).

π con N = 100 cifre decimali esatte è ridondante considerare

Per avere ad esempio il valore di

1000 od anche 100 termini della serie. Risulterà invece sufficiente un numero di termini pari a FS

 + −

100 log 16 log 5 π con N = 1000 decimali esatti sarà sufficiente

= 72. Per ottenere

= 

 ⋅

2 log 5 

prendere in considerazione un numero di termini pari a FS = 715

( )

1

Dimensionare in modo adeguato i vettori contenenti i valori numerici. A tal fine valgono le seguenti osservazioni: nello sviluppo dei calcoli si eseguono delle divisioni, e generalmente si avrà come risultato un quoziente ed un resto. Per tenere conto del solo quoziente nei calcoli successivi, non considerando pertanto il resto, è necessario che esso risulti trascurabile ai fini della precisione richiesta, cioè del numero di cifre esatte che si vogliono avere nei calcoli. Se

π

ad esempio si vuole calcolare con 100 cifre esatte, ogni resto dovrà essere inferiore per lo

−

100

meno a 10. Per ottenere questa condizione si dovranno pertanto dimensionare i vettori contenenti i valori numerici in modo adeguato.

Così, se si lavorasse in aritmetica tradizionale, cioè in Base 10 ogni vettore dovrebbe essere composto da un numero di elementi o celle superiore a 100, almeno pari a (100 + x) celle dove x è un numero di celle di margine per far sì che nell’evolversi dei calcoli il valore dei vari resti

−

100

che si possono anche accumulare non superino mai il valore di 10.

_____________

(1) Quando si devono trattare e manipolare numeri costituiti da molte cifre, come già detto in altre occasioni, risulta necessario memorizzare i numeri in vettori disponendo opportunamente nei suoi elementi (celle) le cifre del numero ed effettuare su di esse le opportune operazioni aritmetiche, facendo presente che in ogni cella sono disposte G cifre elementari. 4

Utilizzando invece l’aritmetica con Base 10 ogni vettore dovrà essere composto da un numero di

 

100 + x. Un valore di x = 2 risulta di sufficiente margine.

celle o elementi non inferiore a  

 G π G

. Ad esempio per ottenere sicuramente con 100 cifre esatte utilizzando l’aritmetica in base 10

( )

1 (array) impiegato nei calcoli dovrà essere dimensionato con un numero

con G = 5 ogni vettore

di celle non inferiore a (25 + x) con x ≥ 2.

Calcolo del minimo numero FS di termini della serie

per determinare il valore di π con tutti i decimali esatti richiesti

Anteprima
Vedrai una selezione di 4 pagine su 15
Sul calcolo di pi greco e del numero di Nepero Pag. 1 Sul calcolo di pi greco e del numero di Nepero Pag. 2
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Sul calcolo di pi greco e del numero di Nepero Pag. 6
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Sul calcolo di pi greco e del numero di Nepero Pag. 11
1 su 15
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi