Tavola trigonometrica

Da Wikipedia, l'enciclopedia libera.

In matematica la tavola trigonometrica è una tabella che elenca il valore di una funzione trigonometrica per un certo numero di possibili valori angolari. Una tavola trigonometrica è principalmente caratterizzata da due aspetti:

  • dettaglio: indica la differenza tra due angoli consecutivi di cui la tabella riporta i valori; maggiore è il dettaglio, minore è la differenza;
  • precisione: indica con quale approssimazione sono arrotondati i valori della funzione trigonometrica riportati nella tavola.

Il dettaglio può non essere costante per meglio mappare funzioni che abbiano asintoti verticali o orizzontali, che implicano significative variazioni del valore delle funzione in prossimità di alcuni valori angolari.

Storia[modifica | modifica wikitesto]

Origini[modifica | modifica wikitesto]

La prima tavola trigonometrica di cui si ha testimonianza risale al II secolo a.C. ed è quella predisposta da Ipparco di Nicea allo scopo di risolvere, ovvero individuare tutti gli angoli e le lunghezze dei lati nota una parte di essi, ogni possibile triangolo.[1]

Secondo alcune interpretazioni della tavoletta d'argilla di origine babilonese nota con il nome di Plimpton 322 (risalente al 1800 a.C.) potrebbe essere una rudimentale tavola trigonometrica.[2]

Claudio Tolomeo, attorno al 150, nella sua opera Almagesto spiega come costruire una tavola delle corde utile per i calcoli astronomici.

È curioso notare come le prime tavole trigonometriche non mappassero le funzioni seno e coseno, come normalmente accade oggi, quanto le funzioni seno e senoverso.

Impieghi storici[modifica | modifica wikitesto]

Prima dell'introduzione delle calcolatrici tascabili, le tavole trigonometiche erano essenziali per i calcoli richiesti in numerose aree della scienza e delle applicazioni pratiche, si veda ad esempio l'importanza dell'algoritmo di prostaferesi per la navigazione e l'astronomia.

Il calcolo delle tabelle matematiche era un'area di studio molto importante che portò all'invenzione dei primi dispositivi automatici di calcolo.

Tra i matematici che si ricordano per aver contribuito a definire tavole sempre più accurate, vanno citati:

Impieghi moderni[modifica | modifica wikitesto]

Oggi ogni calcolatrice è in grado di fornire i valori delle funzioni trigonometriche per qualsiasi angolo. I metodi usati dalle calcolatrici per ottenere questo risultato comprendono:

L'interpolazione, anche di tabelle non molto dettagliate, trova ancora oggi impiego nella computer graphic, dove la precisione di calcolo non deve essere necessariamente essere elevata e si vuole prediligere la velocità di calcolo.

Un'altra importante applicazione delle tabelle trigonometriche è negli algoritmi per il calcolo della trasformata di Fourier veloce (FFT), dove gli stessi valori delle funzioni trigonometriche (i cosiddetti fattori twiddle o di rotazione) devono essere calcolati più volte all'interno della stessa trasformata, soprattutto nel caso non raro in cui si eseguono più trasformazioni dello stesso ordine. In questo caso non sarebbe accettabile chiamare ripetutamente la routine generica di calcolo poiché il tempo complessivo sarebbe eccessivo. Una possibilità è quella di chiamare la routine un'unica volta per ciascun valore twiddle e storicizzarne il risultato in una tabella da consultare durante l'algoritmo. Seppure efficace, la soluzione non risulta efficiente in termine di quantità di memoria usata.

Metodi per l'ottenimento delle tavole[modifica | modifica wikitesto]

Formule di addizione e bisezione di angoli[modifica | modifica wikitesto]

Storicamente, il metodo più antico, e probabilmente quello più comunemente usato fino all'avvento dei calcolatori elettronici, per ottenere e ampliare con sistematicità una tavola trigonometrica è stato quello di applicare ripetutamente le identità trigonometriche notevoli note come formule di bisezione e formule di addizione e sottrazione partendo da valori noti quali sin(\pi/2)=1 oppure cos(\pi/2)=0:

\cos\left(\frac{x}{2}\right) =  \pm\, \sqrt{\frac{1 + \cos(x)}{2}}
\sin\left(\frac{x}{2}\right) =  \pm\, \sqrt{\frac{1 - \cos(x)}{2}}
\sin(x \pm y) = \sin(x) \cos(y) \pm \cos(x) \sin(y)
\cos(x \pm y) = \cos(x) \cos(y) \mp \sin(x) \sin(y)

L'impiego più remoto, di cui ci sia pervenuta una testimonianza scritta, risale a Tolomeo.

Equazioni differenziali[modifica | modifica wikitesto]

È un metodo rapido, ma impreciso, per ottenere una tabella di dimensione N nell'intervallo [0,2\pi]

Posto s_n = sin(2\pi n/N) e c_n = cos(2\pi n/N), si usano le seguenti formule:

s0 = 0
c0 = 1
sn+1 = sn + d × cn
cn+1 = cnd × sn

per n = 0,...,N-1, dove d = 2π/N.

Queste formule si ottengono applicando il metodo di Eulero per l'integrazione del seguente sistema di equazioni differenziali ordinarie:

\frac{ds(t)}{dt} = c(t)
\frac{dc(t)}{dt} = -s(t)

con le condizioni al contorno s(0) = 0 e c(0) = 1, la cui soluzione analitica è s = sin(t) e c = cos(t).

L'errore che si commette con l'uso di questo algoritmo è inversamente proporzionale ad N. In particolare per il seno il massimo dell'approssimazione è circa 15/N, mentre per il coseno è 20/N. Ad esempio, per N = 256 l'errore massimo che si commette nel calcolo del seno è circa ~0.061 (s201 = -1.0368 invece di -0.9757). Per N = 1024, l'errore massimo che si commette nel calcolo del seno è circa ~0.015 (s802 = -0.99321 invece di -0.97832), all'incirca 4 (=1024/256) volte inferiore.

L'andamento dell'ampiezza dell'errore non è lineare ma oscillante e divergente, per cui se si volesse tracciare la curva definita anche da coppie (s,c) ottenute per valori superiori a N, si otterrebbe una spirale logaritmica anziché un cerchio.

Formule ricorsive di Eulero[modifica | modifica wikitesto]

Una semplice formula ricorsiva per la generazione delle tabelle trigonometriche è basata sulla Formula di Eulero e sulla seguente relazione:

e^{i(\theta + \Delta\theta)} = e^{i\theta} \times e^{i\Delta\theta}

Possiamo così calcolare i valori trigonometrici sn e cn come segue:

c0 = 1
s0 = 0
cn+1 = wr cnwi sn
sn+1 = wi cn + wr sn

per n = 0, ..., N - 1, dove w_r = cos(2\pi/N) e w_i = sin(2\pi/N). I due valori iniziali sono generalmente calcolati avvalendosi di funzioni di libreria esistenti (ad esempio utilizzando semplicemente con il metodo di Newton nel piano complesso per il calcolo delle radici dell'unità di zN − 1).

Questo metodo in teoria (cioè in aritmetica esatta) dovrebbe fornire una tavola di valori esatta, tuttavia gli errori dovuti all'aritmetica finita (virgola mobile) fanno sì che l'errore commesso sia un ON) (nel peggiore dei casi ma anche mediamente), dove ε è la precisione della rappresentazione in virgola mobile.

Un significativo miglioramento si ottiene utilizzando la seguente modifica, uno strategemma (ideato da Richard C. Singleton) sovente utilizzato per ottenere i valori trigonometrici nelle implementazioni della FFT:

c0 = 1
s0 = 0
cn+1 = cn − (αcn + β sn)
sn+1 = sn + (β cn − α sn)

dove α = 2 sin2(π/N) e β = sin(2π/N). Gli errori di questo metodo sono molto più piccoli, O(ε √N) in media e O(ε N) nel peggiore dei casi, che è comunque in grado di inficiare significativamente la precisione per FFT di grandi dimensioni.

Tavola con valori[modifica | modifica wikitesto]

Gradi ° Radianti Seno Coseno Tangente Cotangente
<0° -sin (-x) cos (-x) -tg(-x) -ctg(-x)
0 0 1 0 Non definita
π/180 0,0175 0,9998 0,0175 57,2900
π/90 0,0349 0,9994 0,0349 28,6363
π/60 0,0523 0,9986 0,0524 19,0811
π/45 0,0698 0,9976 0,0699 14,3007
π/36 0,0872 0,9962 0,0875 11,4301
π/30 0,1045 0,9945 0,1051 9,5144
7π/180 0,1219 0,9925 0,1228 8,1443
2π/45 0,1392 0,9903 0,1405 7,1154
π/20 0,1564 0,9877 0,1584 6,3138
10° π/18 0,1736 0,9848 0,1763 5,6713
11° 11π/180 0,1908 0,9816 0,1944 5,1446
12° π/15 0,2079 0,9781 0,2126 4,7046
13° 13π/180 0,2250 0,9744 0,2309 4,3315
14° 7π/90 0,2419 0,9703 0,2493 4,0108
15° π/12 0,2588 0,9659 0,2679 3,7321
16° 4π/45 0,2756 0,9613 0,2867 3,4874
17° 17π/180 0,2924 0,9563 0,3057 3,2709
18° π/10 0,3090 0,9511 0,3249 3,0777
19° 19π/180 0,3256 0,9455 0,3443 2,9042
20° π/9 0,3420 0,9397 0,3640 2,7475
21° 7π/60 0,3584 0,9336 0,3839 2,6051
22° 11π/90 0,3746 0,9272 0,4040 2,4751
23° 23π/180 0,3907 0,9205 0,4245 2,3559
24° 2π/15 0,4067 0,9135 0,4452 2,2460
25° 5π/36 0,4226 0,9063 0,4663 2,1445
26° 13π/90 0,4384 0,8988 0,4877 2,0503
27° 3π/20 0,4540 0,8910 0,5095 1,9626
28° 7π/45 0,4695 0,8829 0,5317 1,8807
29° 29π/180 0,4848 0,8746 0,5543 1,8040
30° π/6 0,5000[3] 0,8660[4] 0,57735[5] 1,7321[6]
31° 31π/180 0,5150 0,8572 0,6009 1,6643
32° 8π/45 0,5299 0,8480 0,6249 1,6003
33° 11π/60 0,5446 0,8387 0,6494 1,5399
34° 17π/90 0,5592 0,8290 0,6745 1,4826
35° 7π/36 0,5736 0,8192 0,7002 1,4281
36° π/5 0,5878 0,8090 0,7265 1,3764
37° 37π/180 0,6018 0,7986 0,7536 1,3270
38° 19π/90 0,6157 0,7880 0,7813 1,2799
39° 13π/60 0,6293 0,7771 0,8098 1,2349
40° 2π/9 0,6428 0,7660 0,8391 1,1918
41° 41π/180 0,6561 0,7547 0,8693 1,1504
42° 7π/30 0,6691 0,7431 0,9004 1,1106
43° 43π/180 0,6820 0,7314 0,9325 1,0724
44° 11π/45 0,6947 0,7193 0,9657 1,0355
45° π/4 0,7071[7] 0,7071[7] 1 1
45°↔90° π/4↔π/2 cos(90°-x) sin(90°-x) ctg(90°-x) tg(90°-x)
60° π/3 0,8660[4] 0,5000[3] 1,7321[6] 0,5774[5]
90° π/2 1 0 Non definita 0
90°↔180° π/2↔π sin(180°-x) -cos(180°-x) -tg(180°-x) -ctg(180°-x)
180° π 0 -1 0 Non definita
180°↔360° π↔2π -sin(x-180°) -cos(x-180°) tg(x-180°) ctg(x-180°)
360° 0 1 0 Non definita
>360° >2π sin(x-360°) cos(x-360°) tg(x-360°) ctg(x-360°)

Note[modifica | modifica wikitesto]

  1. ^ Toomer, "The Chord Table of Hipparchus" (1973).
  2. ^ (EN) Joyce, David E., Plimpton 322, 1995.
  3. ^ a b \mathbb e1/2
  4. ^ a b \sqrt{3}/2
  5. ^ a b 1/\sqrt{3}
  6. ^ a b \sqrt{3}
  7. ^ a b \sqrt{2}/2

Bibliografia[modifica | modifica wikitesto]

  • Carl B. Boyer, A History of Mathematics, 2nd ed. (Wiley, New York, 1991).
  • Manfred Tasche and Hansmartin Zeuner, "Improved roundoff error analysis for precomputed twiddle factors," J. Computational Analysis and Applications 4 (1), 1-18 (2002).
  • James C. Schatzman, "Accuracy of the discrete Fourier transform and the fast Fourier transform," SIAM J. Sci. Comput. 17 (5), 1150-1166 (1996).
matematica Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica