Il calcolo "geometrico" di $\pi$

Archimede 225 A. C.

Area delle superfici dei poligoni regolari di $2^n$ lati inscritti in un cerchio di raggio unitario. $p_n = \dfrac{2^n \overline{OA}\overline{BH}}{2} = 2^{n-1}\sin \beta$ dove $\beta = \dfrac{2 \pi}{2^n}$ title

$\sin \beta = \sqrt{\dfrac{1 -\cos(2 \beta)}{2}}=\sqrt{\dfrac{1-\sqrt{1-\sin^2(2 \beta)}}{2}}$, $0 \leq \beta \leq \dfrac{\pi}{4}$

In [1]:
import math
import matplotlib.pyplot as plt
import numpy as np
from tabulate import tabulate
In [2]:
# primo passo il quadrato
archimede = []
seno = math.sqrt(2)/2
b = 4
n = 28
for i in range(1,n):
    p = b*seno
    archimede.append(p)
    seno = math.sqrt((1-math.sqrt(1-seno**2))/2)
    b = 2*b
archimede = np.array(archimede, dtype=np.float64)

Viete 1593

Metà del perimetro dei poligoni di $2^n$ lati inscritti in una circonferenza di raggio unitario. title $p_n = 2^{n-1}a_n$ dove $a_{n+1}=\cos \left( \dfrac{\pi}{2^{n+1}} \right) = \dfrac{a_n}{2}$ $p_{n+1}=2^n a_{n+1}$ e utilizzando $\cos \beta = \sqrt{\dfrac{1+\cos(2 \beta)}{2}}$ si ha:

In [3]:
viete = []
coseno = 0
p = 2
for i in range(1,n):
    coseno = math.sqrt((1+coseno)/2)
    p = p/coseno
    viete.append(p)
viete = np.array(viete, dtype=np.float64)

Poligoni regolari circoscritti

Metà del perimetro del poligono regolare di $2^n$ lati circosritto alla circonferenza unitaria. title $p_n = 2^n \overline{HB} \overline{OH} = 2^n \overline{HB}$ dove $\overline{HB}= \overline{OH} tg(\beta)$

$tg(\beta) = \dfrac{\sqrt{1-tg^2(2 \beta)}-1}{tg(2 \beta)}$

In [4]:
tgb = 1
polext = []
for h in range(1,n):
    p = 2**(h+1)*tgb
    polext.append(p)
    tgb = (math.sqrt(1+tgb**2)-1)/tgb
polext = np.array(polext, dtype=np.float64)

Sintesi

In [5]:
# numerica
rip = np.arange(2,n+1,1)
print(tabulate({"n": rip,"Archimede": archimede,"Viete": viete,"Poligoni circoscritti": polext}, headers="keys"))
# grafica
figura = plt.figure(figsize=(10, 10),dpi=100)
plt.ylim(ymax = 3.3, ymin = 3.0)
plt.plot(rip,archimede,'b-')
plt.plot(rip,viete,'k-')
plt.plot(rip,polext,'r-')
plt.show()
  n    Archimede    Viete    Poligoni circoscritti
---  -----------  -------  -----------------------
  2      2.82843  2.82843                  4
  3      3.06147  3.06147                  3.31371
  4      3.12145  3.12145                  3.1826
  5      3.13655  3.13655                  3.15172
  6      3.14033  3.14033                  3.14412
  7      3.14128  3.14128                  3.14222
  8      3.14151  3.14151                  3.14175
  9      3.14157  3.14157                  3.14163
 10      3.14159  3.14159                  3.1416
 11      3.14159  3.14159                  3.1416
 12      3.14159  3.14159                  3.14159
 13      3.14159  3.14159                  3.14159
 14      3.14159  3.14159                  3.14159
 15      3.14159  3.14159                  3.14159
 16      3.14159  3.14159                  3.14159
 17      3.14159  3.14159                  3.14159
 18      3.14159  3.14159                  3.14159
 19      3.14159  3.14159                  3.14159
 20      3.1416   3.14159                  3.1416
 21      3.1416   3.14159                  3.14159
 22      3.14167  3.14159                  3.14145
 23      3.14183  3.14159                  3.14097
 24      3.14245  3.14159                  3.13398
 25      3.14245  3.14159                  3.11106
 26      3.16228  3.14159                  3.05362
 27      3.16228  3.14159                  2.61984
 28      3.4641   3.14159                  3.05362
In [ ]: