Pi greco con metodo di Archimede
Vedi la discussione
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import math n=6 # Poligoni iniziali = Esagoni Ac =1 # Apotema circoscritto = Raggio = 1 Li =1 # Poligono inscritto Ai =math.sqrt(1-(Li/2)**2) Pi =n*Li PIi=Pi/2 Lc =Li/Ai # Poligono circoscritto Pc =n*Lc PIc=Pc/2 Delta=Ac-Ai # Apotema circ. - apotema inscr. print("%4d - %8.6f %8.6f %8.6f %8.6f - %8.6f %8.6f %8.6f %8.6f" %(n,Li,Ai,Pi,PIi,Lc,Ac,Pc,PIc)) for passo in range(1,10): n=2*n Li =math.sqrt((Li/2)**2+Delta**2) Ai =math.sqrt(1-(Li/2)**2) Pi =n*Li PIi=Pi/2 Lc =Li/Ai Pc =n*Lc PIc=Pc/2 Delta=Ac-Ai print("%4d - %8.6f %8.6f %8.6f %8.6f - %8.6f %8.6f %8.6f %8.6f" %(n,Li,Ai,Pi,PIi,Lc,Ac,Pc,PIc)) |
matplotlib Per numero di lati fino a 96
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import matplotlib.pyplot as plt import math N=[6*2**i for i in range(0,5)] # numero di lati PII=5*[0] PIC=5*[0] n=N[0] Ac=1 # Apotema circoscritto = Raggio = 1 Li=1 # Poligono inscritto Ai=math.sqrt(1-(Li/2)**2) Pi=n*Li PIi=Pi/2; PII[0]=PIi # 1° approssimazione Lc=Li/Ai # Poligono circoscritto Pc=n*Lc PIc=Pc/2; PIC[0]=PIc # 1° approssimazione Delta=Ac-Ai # Apotema circ. - apotema inscr. print("%4d - %8.6f %8.6f %8.6f %8.6f - %8.6f %8.6f %8.6f %8.6f" %(n,Li,Ai,Pi,PIi,Lc,Ac,Pc,PIc)) for passo in range(1,5): n=N[passo] Li=math.sqrt((Li/2)**2+Delta**2) Ai=math.sqrt(1-(Li/2)**2) Pi=n*Li PIi=Pi/2; PII[passo]=PIi Lc=Li/Ai Pc=n*Lc PIc=Pc/2; PIC[passo]=PIc Delta=Ac-Ai print("%4d - %8.6f %8.6f %8.6f %8.6f - %8.6f %8.6f %8.6f %8.6f" %(n,Li,Ai,Pi,PIi,Lc,Ac,Pc,PIc)) plt.grid(which="major") plt.plot(PII) plt.plot(PIC) plt.title("Pi greco - Metodo di Archimede") plt.xticks(range(0,5), N) plt.show() |