Tabele trigonometrice

De la testwiki
Versiunea din 8 august 2023 06:28, autor: imported>Turbojet (wl)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Sari la navigare Sari la căutare

Tabelele trigonometrice sunt tabele matematice care conțin valori calculate ale funcțiilor trigonometrice. Înainte de existența calculatoarelor de buzunar, aceste tabele erau esențiale pentru navigație, știință și inginerie. Calculul acestor tabele a fost un domeniu important de studiu, care a condus la dezvoltarea primelor dispozitive de calcul mecanice.

Calculatoarele moderne și cele de buzunar generează acum valori ale funcțiilor trigonometrice la cerere, folosind biblioteci speciale de cod matematic. Adesea, aceste biblioteci folosesc intern tabele precalculate și calculează valoarea necesară folosind o metodă de Format:Ill-wd adecvată. Interpolarea tabelelor simple de căutare a funcțiilor trigonometrice este încă folosită în grafica pe calculator, unde poate fi necesară doar o precizie modestă, însă viteza este adesea primordială.

O altă aplicație importantă a tabelelor trigonometrice și a metodelor de generare a lor este la algoritmul pentru calculul Format:Ill-wd (FFT), în care aceleași valori ale funcției trigonometrice (numite „factori Twiddle”[1]) trebuie evaluate de mai multe ori la o transformare dată, în special în cazul uzual în care sunt calculate multe transformări de aceeași dimensiune. În acest caz, apelarea de fiecare dată a rutinelor bibliotecii generice este inacceptabil de lentă. O opțiune este ca rutinele bibliotecii să fie apelate o singură dată, pentru a construi un tabel cu acele valori trigonometrice care vor fi necesare, dar această metodă necesită o memorie semnificativă pentru a stoca tabelul. Cealaltă posibilitate, deoarece este necesară o succesiune obișnuită de valori, este de a folosi o formulă de recurență pentru a calcula valorile trigonometrice din mers. Au fost făcute cercetări importante pentru a găsi relații de recurență precise și stabile pentru a păstra acuratețea FFT (care este foarte sensibilă la erorile trigonometrice).[2]

Calculul la cerere

O pagină de tabele matematice din 1619

Calculatoarele moderne folosesc tehnici variate pentru a furniza la cerere valori ale funcțiilor trigonometrice pentru unghiuri arbitrare.[3] O metodă comună, în special pe procesoarele de ultimă generație care lucrează în virgulă mobilă, este combinarea unui polinom sau a unei funcții raționale de aproximare (cum ar fi funcția Cebîșev, cea mai bună aproximare uniformă, aproximarea Padé și, de obicei, pentru precizii mai mari sau variabile, serii Taylor și Format:Ill-wd) cu reducerea intervalului și o căutare în tabel — se caută mai întâi unghiul cel mai apropiat într-un tabel mic și apoi se folosește polinomul pentru a calcula corecția.[4] Menținerea preciziei în timpul efectuării unei astfel de interpolări este netrivială. În același scop sunt folosite și alte metode, precum Format:Ill-wd[5] și algoritmii de reducere a intervalului Cody și Waite sau a radianilor Payne și Hanek.[6] Pe dispozitivele mai simple, cărora le lipsește o unitate hardware de înmulțire, există un algoritm numit Format:Ill-wd (precum și tehnicile aferente) care este eficient, deoarece folosește doar deplasări și adunări. De obicei, din motive de performanță, astfel de metode sunt implementate în hardware.

Polinomul particular utilizat pentru aproximarea unei funcții trigonometrice este generat din timp folosind un algoritm de aproximare minimmax.

Pentru calculele cu precizie foarte mare, când convergența dezvoltării în serie devine prea lentă, funcțiile trigonometrice pot fi aproximate prin Format:Ill-wd, care ea însăși aproximează funcția trigonometrică printr-o integrală eliptică (complexă).[7]

Funcțiile trigonometrice ale unghiurilor care sunt multipli raționali ai Format:Math sunt numere algebrice. Valorile pentru Format:Math pot fi găsite cu formula lui Moivre de la Format:Mvar până la a Format:Mvar-a rădăcină a unității, care este și o rădăcină a polinomului Format:Math în planul complex. De exemplu, cosinusul și sinusul lui Format:Math sunt partea reală, respectiv partea imaginară ale puterii a 5-a a celei de a 37-a rădăcini a unității, cos(2π/37)+sin(2π/37)i, care este o rădăcină a polinomului de gradul 37 x371. În acest caz, un algoritm de găsire a rădăcinilor, cum ar fi metoda tangentei, este mult mai simplu decât algoritmii de medie aritmetico-geometrică de mai sus, în timp ce convergența asimptotică este similară. Aceștia din urmă algoritmi sunt totuși necesari pentru constantele trigonometrice transcendente.

Generarea folosind formulele pentru suma și jumătatea unghiurilor

Istoric, cea mai veche metodă prin care au fost calculate tabelele trigonometrice, și probabil cea mai comună până la apariția computerelor, a fost aplicarea în mod repetat a identităților trigonometrice pentru adunarea sau înjumătățirea unghiurilor pornind de la o valoare cunoscută (cum ar fi sin(π/2)=1, cos(π/2)=0). Această metodă a fost folosită de astronomul antic Ptolemeu, care le-a prezentat în tratatul de astronomie Almagest.[8] În forma modernă, identitățile pe care le-a obținut sunt enunțate după cum urmează (cu semnele determinate de cadranul în care se află Format:Mvar):

sin(x±y)=sin(x)cos(y)±cos(x)sin(y)
cos(x±y)=cos(x)cos(y)sin(x)sin(y)
cos(x2)=±1+cosx2,
sin(x2)=±1cosx2.

Acestea au fost folosite pentru a construi Format:Ill-wd, care a fost utilizat în astronomie.

Sunt posibile diverse alte variante ale acestor identități: de exemplu la unele tabele trigonometrice vechi nu s-a folosit sinus și cosinus, ci sinus și versinus.

O aproximare rapidă, dar imprecisă

Un algoritm pentru calculul unui tabel aproximativ cu Format:Mvar valori Format:Mvar pentru Format:Math și Format:Mvar pentru Format:Math este:

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

pentru n=0,,N1, unde Format:Math.

Aceasta este chiar metoda Euler pentru integrarea ecuațiilor diferențiale:

ds/dt=c
dc/dt=s

cu condițiile inițiale Format:Math și Format:Math, ale căror soluții analitice sunt Format:Math și Format:Math.

Din păcate, acesta nu este un algoritm util pentru generarea tabelelor de sinusuri deoarece are o eroare semnificativă, proporțională cu Format:Math. De exemplu, pentru Format:Math eroarea maximă în valorile sinusului este de ≈0,061 (Format:Math = −1,0368 în loc de −0,9757). Pentru Format:Math, eroarea maximă în valorile sinusului este de ≈0,015 (Format:Math = −0,99321 în loc de −0,97832), eroare de aproximativ 4 ori mai mică. Dacă valorile sinus și cosinus obținute ar fi reprezentate grafic, acest algoritm ar desena o Format:Ill-wd în loc de un cerc.

Note

  1. Format:En icon Manfred Tasche, Hansmartin Zeuner (2002) "Improved roundoff error analysis for precomputed twiddle factors", Journal for Computational Analysis and Applications 4(1): 1–18
  2. Format:En icon James C. Schatzman (1996) "Accuracy of the discrete Fourier transform and the fast Fourier transform", SIAM Journal on Scientific Computing 17(5): 1150–1166
  3. Format:En icon Vitit Kantabutra (1996) "On hardware for computing exponential and trigonometric functions," IEEE Transactions on Computers 45(3): 328–339
  4. Format:En icon William J. Cody Jr., William Waite, Software Manual for the Elementary Functions, Prentice-Hall, 1980, Format:ISBN
  5. Format:En icon Gal, Shmuel; Bachelis, Boris (1991) "An accurate elementary mathematical library for the IEEE floating point standard", ACM Transactions on Mathematical Software
  6. Format:En icon Mary H. Payne, Robert N. Hanek, Radian reduction for trigonometric functions, ACM SIGNUM Newsletter 18: 19-24, 1983
  7. Format:En icon Richard Peirce Brent (1976) "Fast Multiple-Precision Evaluation of Elementary Functions", Journal of the Association for Computing Machinery 23: 242–251.
  8. Format:En icon Carl B. Boyer (1991) A History of Mathematics, 2nd edition, John Wiley & Sons

Vezi și

Legături externe

Format:Portal

Format:Control de autoritate