Originariamente inviato da AleX ZeTa
un po' di basi matematiche... per ottenere PiGreco senza ricorrere a funzioni note già disponibili nelle librerie math.h (arctan prima di tutto) è consigliabile utilizzare qualche metodo di approssimazione serio. Cito i moti più semplici per ottenere un'approssimazione:
1) dato che 'arctan 1 = pi/4' possiamo scrivere 'pi = 4 * L(arctan x, 1)' dove con L(f(x), c) intendiamo lo sviluppo in serie di MacLaurin della funzione f(x) calcolata in x = c. L(arctan x, 1) = sum[j = 0..n]{(d^j/dx^j(arctan x)|x=0)/ j! * x^j}.
L'errore, approssimato per eccesso, che si commette (dato un numero 'n' di iterazioni) si ottiene come resto di Lagrange:
E = (d^(j+1)/dx^(j+1)(arctan x)|x=0)/ (j+1)! * x^(j+1).
2) dato che 'arctan 1 = pi/4', e dato che 'int[0,1](1/(1+x^2) dx) = arctan 1' allora 'pi = 4*S(1/(1+x^2), 0, 1, n)'. Con S(f(x), a, b) si intende l'approssimazione dell'Integrale da 'a' a 'b' di f(x)dx calcolata col metodo di Simpson dopo 'n' iterazioni. L'errore, approssimato per eccesso, lo si ottiene come:
E = |S(f(x), a, b, n) - S(f(x), a, b, 2n)|