INDIETRO
 Laboratorio 3
AVANTI

calcoli con veramente tante e tante cifre

Programmi che come Maple o Mathematica usano numeri interi e frazionari con numero di cifre arbitrario possono fornire un numero strabiliante di cifre esatte.

Tuttavia quando il numero di cifre diviene molto alto, sia perchè lo si richieda esplicitamente, sia perchè il problema mal determinato richiede calcoli intermedi con una precisone molto più elevata di quella richiesta per il risultato finale, succede che la velocità di calcolo cala drasticamente.
Peggio ancora, può capitare di trovarsi con memoria insufficiente a terminare il calcolo.

In questi casi l'approccio forza bruta fallisce anche con supercalcolatori; a volte però si possono trovare dei metodi per il calcolo di specifiche cifre del risultato che non richiedano la conoscenza delle cifre precedenti e che possano essere portati a termine con risorse limitate di memoria.

Per esempio è possibile calcolare pi greco con 22,459,157,718,361 cifre in 105 giorni, ma per controllare il risultato si è calcolato indipendentemente l'ultima cifra in 28 ore usando appunto un algoritmo apposito. ( qui la notizia del risultato)

Vediamo nel seguito alcuni esempi di tali algoritmi.

algoritmo del tipo Spigot

Questa pagina di Wikipedia spiega molto bene come funzioni un algoritmo del tipo Spigot.
L'esempio calcola alcune cifre binarie di ln(2).

esercizio:

Calcolare usando matlab la millesima cifra binaria di ln(2) usando la stessa tecnica.

Per controllare l'esattezza del calcolo, usare maple ; per la conversione in binario usare

convert(numero, binary, numero di cifre volute);  


Laboratorio Didattico di Matematica Computazionale - Sergio Steffè - AA 2017/2018 - PISA
INDIETRO
AVANTI