Successivo: , Precedente: , Su: Cautela col calcolo in VM   [Contenuti][Indice]


16.4.3 Tentare di aggiungere bit di precisione e arrotondare

Invece dell’aritmetica in virgola mobile con precisione arbitraria, spesso tutto ciò di cui si ha bisogno è un aggiustamento della logica o di un diverso ordine delle operazioni nei calcoli. La stabilità e l’accuratezza del calcolo di pi nel primo esempio possono essere migliorata usando la seguente semplice trasformazione algebrica:

(sqrt(x * x + 1) - 1) / x ≡ x / (sqrt(x * x + 1) + 1)

Dopo aver fatto questo cambiamento, il programma converge verso pi in meno di 30 iterazioni:

$ gawk -f pi2.awk
-| 3.215390309173473
-| 3.159659942097501
-| 3.146086215131436
-| 3.142714599645370
-| 3.141873049979825
…
-| 3.141592653589797
-| 3.141592653589797