त्रिकोणमितीय तालिकाएँ

गणित में, त्रिकोणमितीय फलनों की तालिकाएँ कई क्षेत्रों में उपयोगी होती हैं। जेब कैलकुलेटर  के अस्तित्व से पहले,  मार्गदर्शन, विज्ञान और  अभियांत्रिकी  के लिए त्रिकोणमितीय तालिकाएँ आवश्यक थीं। गणितीय तालिकाओं की गणना अध्ययन का एक महत्वपूर्ण क्षेत्र था, जिससे कंप्यूटिंग के इतिहास का विकास हुआ।

आधुनिक कंप्यूटर और पॉकेट कैलकुलेटर अब गणितीय कोड के विशेष पुस्तकालयों का उपयोग करके मांग पर त्रिकोणमितीय फ़ंक्शन मान उत्पन्न करते हैं। अक्सर, ये पुस्तकालय आंतरिक रूप से पूर्व-गणना की गई तालिकाओं का उपयोग करते हैं, और उचित प्रक्षेप  विधि का उपयोग करके आवश्यक मान की गणना करते हैं। त्रिकोणमितीय कार्यों की सरल लुक-अप तालिकाओं का इंटरपोलेशन अभी भी  कंप्यूटर चित्रलेख  में उपयोग किया जाता है, जहां केवल मामूली सटीकता की आवश्यकता हो सकती है और गति अक्सर सर्वोपरि होती है।

त्रिकोणमितीय तालिकाओं और पीढ़ी योजनाओं का एक अन्य महत्वपूर्ण अनुप्रयोग फास्ट फूरियर ट्रांसफॉर्म (एफएफटी) एल्गोरिदम के लिए है, जहां एक ही त्रिकोणमितीय फ़ंक्शन मान (जिसे ट्विडल कारक कहा जाता है) का मूल्यांकन किसी दिए गए परिवर्तन में कई बार किया जाना चाहिए, खासकर सामान्य मामले में जहां एक ही आकार के कई परिवर्तनों की गणना की जाती है। इस मामले में, हर बार सामान्य लाइब्रेरी रूटीन को कॉल करना अस्वीकार्य रूप से धीमा है। एक विकल्प उन त्रिकोणमितीय मानों की एक तालिका बनाने के लिए लाइब्रेरी रूटीन को एक बार कॉल करना है जिनकी आवश्यकता होगी, लेकिन तालिका को संग्रहीत करने के लिए महत्वपूर्ण मेमोरी की आवश्यकता होती है। दूसरी संभावना, चूंकि मानों के एक नियमित अनुक्रम की आवश्यकता होती है, तुरंत त्रिकोणमितीय मानों की गणना करने के लिए पुनरावृत्ति सूत्र का उपयोग करना है। एफएफटी (जो त्रिकोणमितीय त्रुटियों के प्रति बहुत संवेदनशील है) की सटीकता को संरक्षित करने के लिए सटीक, स्थिर पुनरावृत्ति योजनाओं को खोजने के लिए महत्वपूर्ण शोध समर्पित किया गया है।

ऑन-डिमांड गणना
आधुनिक कंप्यूटर और कैलकुलेटर मनमाने कोणों की मांग पर त्रिकोणमितीय फ़ंक्शन मान प्रदान करने के लिए विभिन्न तकनीकों का उपयोग करते हैं (कांतबुत्रा, 1996)। एक सामान्य विधि, विशेष रूप से तैरनेवाला स्थल | फ़्लोटिंग-पॉइंट इकाइयों के साथ उच्च-अंत प्रोसेसर पर, एक बहुपद या तर्कसंगत फ़ंक्शन सन्निकटन सिद्धांत को संयोजित करना है (जैसे कि चेबीशेव सन्निकटन, सर्वोत्तम वर्दी सन्निकटन, पैड सन्निकटन | पैड सन्निकटन, और आमतौर पर उच्च या परिवर्तनीय सटीकता, टेलर श्रृंखला और लॉरेंट श्रृंखला) सीमा में कमी और एक तालिका लुकअप के साथ - वे पहले एक छोटी तालिका में निकटतम कोण को देखते हैं, और फिर सुधार की गणना करने के लिए बहुपद का उपयोग करते हैं। इस तरह के इंटरपोलेशन को निष्पादित करते समय सटीकता बनाए रखना गैर-तुच्छ है, लेकिन गैल की सटीक तालिकाओं, कोडी और वाइट रेंज में कमी, और पायने और हनेक रेडियन रिडक्शन एल्गोरिदम जैसी विधियों का उपयोग इस उद्देश्य के लिए किया जा सकता है। जिन सरल उपकरणों में हार्डवेयर गुणक की कमी होती है, वहां CORDIC (साथ ही संबंधित तकनीक) नामक एक एल्गोरिदम होता है जो अधिक कुशल होता है, क्योंकि यह केवल शिफ्ट ऑपरेटरों और अतिरिक्त का उपयोग करता है। ये सभी विधियाँ आमतौर पर प्रदर्शन कारणों से कंप्यूटर हार्डवेयर में लागू की जाती हैं।

त्रिकोणमितीय फ़ंक्शन का अनुमान लगाने के लिए उपयोग किया जाने वाला विशेष बहुपद मिनिमैक्स सन्निकटन एल्गोरिथ्म के कुछ सन्निकटन का उपयोग करके समय से पहले उत्पन्न होता है।

मनमानी-सटीक अंकगणितीय गणनाओं के लिए, जब श्रृंखला-विस्तार अभिसरण बहुत धीमा हो जाता है, तो त्रिकोणमितीय कार्यों को अंकगणित-ज्यामितीय माध्य द्वारा अनुमानित किया जा सकता है, जो स्वयं (जटिल संख्या) अण्डाकार अभिन्न (ब्रेंट, 1976) द्वारा त्रिकोणमितीय फ़ंक्शन का अनुमान लगाता है।

कोणों के त्रिकोणमितीय फलन जो 2π के परिमेय संख्या गुणज हैं, बीजगणितीय संख्याएँ हैं। a/b·2π का मान n = a से a b के लिए डी मोइवर की पहचान लागू करके पाया जा सकता हैएकता का मूल, जो बहुपद x का भी मूल है बी- 1 जटिल तल में। उदाहरण के लिए, 2π⋅5/37 की कोज्या और ज्या क्रमशः वास्तविक भाग और काल्पनिक भाग हैं, एकता की 37वीं जड़ की 5वीं घात cos(2π/37) + syn(2π/37)i, जो है एक बहुपद-37 बहुपद x की घात का मूल37 - 1. इस मामले के लिए, न्यूटन की विधि जैसा रूट-फाइंडिंग एल्गोरिदम एक समान स्पर्शोन्मुख दर पर अभिसरण करते हुए उपरोक्त अंकगणित-ज्यामितीय माध्य एल्गोरिदम की तुलना में बहुत सरल है। हालाँकि, बाद वाले एल्गोरिदम ट्रान्सेंडैंटल संख्या त्रिकोणमितीय स्थिरांक के लिए आवश्यक हैं।

अर्ध-कोण और कोण-जोड़ सूत्र
ऐतिहासिक रूप से, सबसे प्रारंभिक तरीका जिसके द्वारा त्रिकोणमितीय तालिकाओं की गणना की गई थी, और संभवतः कंप्यूटर के आगमन तक सबसे आम, एक ज्ञात मान से शुरू होने वाले अर्ध-कोण और कोण-जोड़ त्रिकोणमितीय पहचान को बार-बार लागू करना था (जैसे कि पाप (π/2) )=1, cos(π/2)=0). इस पद्धति का उपयोग प्राचीन खगोलशास्त्री टॉलेमी द्वारा किया गया था, जिन्होंने उन्हें खगोल विज्ञान पर एक ग्रंथ, अल्मागेस्ट में प्राप्त किया था। आधुनिक रूप में, उनके द्वारा प्राप्त पहचानों को इस प्रकार बताया गया है (चतुर्थांश द्वारा निर्धारित संकेतों के साथ जिसमें x स्थित है):


 * $$\cos\left(\frac{x}{2}\right) = \pm \sqrt{\tfrac{1}{2}(1 + \cos x)}$$
 * $$\sin\left(\frac{x}{2}\right) = \pm \sqrt{\tfrac{1}{2}(1 - \cos x)}$$
 * $$\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)\,$$

इनका उपयोग टॉलेमी की तारों की तालिका के निर्माण के लिए किया गया था, जिसे खगोलीय समस्याओं पर लागू किया गया था।

इन पहचानों पर कई अन्य क्रमपरिवर्तन संभव हैं: उदाहरण के लिए, कुछ प्रारंभिक त्रिकोणमितीय तालिकाओं में साइन और कोसाइन का नहीं, बल्कि साइन और उसका संस्करण का उपयोग किया जाता है।

एक त्वरित, लेकिन गलत, अनुमान
एन सन्निकटनों की तालिका की गणना के लिए एक त्वरित, लेकिन गलत, एल्गोरिदमn sine(2Pi|πn/N) और c के लिएn कोज्या  के लिए (2πn/N) है:


 * एस0 = 0
 * सी0 = 1
 * एसn+1 = एसn + डी × सीn
 * सीn+1 = सीn - डी × एसn

n = 0,...,N − 1 के लिए, जहां d = 2π/N.

यह केवल अंतर समीकरण को एकीकृत करने के लिए संख्यात्मक साधारण अंतर समीकरण#यूलर विधि है:


 * $$ds/dt = c$$
 * $$dc/dt = -s$$

प्रारंभिक शर्तों s(0) = 0 और c(0) = 1 के साथ, जिसका विश्लेषणात्मक समाधान s = पाप(t) और c = cos(t) है।

दुर्भाग्यवश, यह साइन टेबल उत्पन्न करने के लिए एक उपयोगी एल्गोरिदम नहीं है क्योंकि इसमें 1/एन के आनुपातिक एक महत्वपूर्ण त्रुटि है।

उदाहरण के लिए, N = 256 के लिए साइन मान में अधिकतम त्रुटि ~0.061 (s) है202 = −0.9757 के बजाय −1.0368)। एन = 1024 के लिए, साइन मान में अधिकतम त्रुटि ~0.015 (एस) है803 = −0.97832 के बजाय −0.99321), लगभग 4 गुना छोटा। यदि प्राप्त साइन और कोसाइन मानों को प्लॉट किया जाना था, तो यह एल्गोरिदम एक वृत्त के बजाय एक लघुगणकीय सर्पिल खींचेगा।

एक बेहतर, लेकिन अभी भी अपूर्ण, पुनरावृत्ति सूत्र
त्रिकोणमितीय तालिकाएँ उत्पन्न करने के लिए एक सरल पुनरावृत्ति सूत्र यूलर के सूत्र और संबंध पर आधारित है:


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

इससे त्रिकोणमितीय मानों की गणना करने के लिए निम्नलिखित पुनरावृत्ति होती हैn और सीn ऊपरोक्त अनुसार:


 * सी0 = 1
 * एस0 = 0
 * सीn+1 = डब्ल्यूr cn − डब्ल्यूi sn
 * एसn+1 = डब्ल्यूi cn + डब्ल्यूr sn

n = 0, ..., N − 1 के लिए, जहां wr = cos(2π/N) और wi = पाप(2π/एन). इन दो प्रारंभिक त्रिकोणमितीय मानों की गणना आम तौर पर मौजूदा लाइब्रेरी फ़ंक्शंस का उपयोग करके की जाती है (लेकिन इसे z की एकता की आदिम जड़ को हल करने के लिए जटिल विमान में न्यूटन की विधि को नियोजित करके भी पाया जा सकता है)एन - 1).

यह विधि सटीक अंकगणित में एक सटीक तालिका तैयार करेगी, लेकिन परिमित-सटीक तैरनेवाला स्थल अंकगणित में त्रुटियां हैं। वास्तव में, त्रुटियां O(ε N) (सबसे खराब और औसत दोनों मामलों में) के रूप में बढ़ती हैं, जहां ε फ़्लोटिंग-पॉइंट परिशुद्धता है।

एक महत्वपूर्ण सुधार उपरोक्त में निम्नलिखित संशोधन का उपयोग करना है, एक ट्रिक (सिंगलटन के कारण)। ) अक्सर एफएफटी कार्यान्वयन के लिए त्रिकोणमितीय मान उत्पन्न करने के लिए उपयोग किया जाता है:


 * सी0 = 1
 * एस0 = 0
 * सीn+1 = सीn− (ए सीn+ बी एसn)
 * एसn+1 = एसn+ (बी सीn− ए एसn)

जहां α = 2 पाप2(π/N) और β = पाप(2π/N)। इस पद्धति की त्रुटियां बहुत छोटी हैं, औसतन O(ε √N) और सबसे खराब स्थिति में O(ε N), लेकिन यह अभी भी इतनी बड़ी है कि बड़े आकार के FFT की सटीकता को काफी हद तक कम कर सकती है।

यह भी देखें

 * आर्यभट्ट की साइन टेबल
 * कॉर्डिक
 * सटीक त्रिकोणमितीय मान
 * माधव की ज्या तालिका
 * संख्यात्मक विश्लेषण
 * प्लिम्पटन 322
 * प्रोस्टैफ़ेरेसिस

संदर्भ

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