त्रिकोणमितीय टेबल

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

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

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

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

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

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

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

अर्ध-कोण और कोण-जोड़ सूत्र
ऐतिहासिक रूप से, सबसे प्रारंभिक विधि जिसके द्वारा त्रिकोणमितीय तालिकाओं की गणना की गई थी, और शायद कंप्यूटर के आगमन तक सबसे आम, ज्ञात मूल्य से शुरू होने वाले अर्ध-कोण और कोण-जोड़ त्रिकोणमितीय पहचान को बार-बार लागू करना था (जैसे sin(π/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 सन्निकटन s की तालिका की गणना करने के लिए एक त्वरित, लेकिन गलत एल्गोरिथम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 = sin(t) और c = cos(t) है।

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

उदाहरण के लिए, N = 256 के लिए ज्या मानों में अधिकतम त्रुटि ~0.061 (s) है202 = -0.9757 के बजाय -1.0368)। N = 1024 के लिए, ज्या मानों में अधिकतम त्रुटि ~0.015 (s803 = -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π/एन) और डब्ल्यूi = पाप (2π/एन)। ये दो शुरुआती त्रिकोणमितीय मान आमतौर पर मौजूदा पुस्तकालय कार्यों का उपयोग करके गणना किए जाते हैं (लेकिन यह भी पाया जा सकता है जैसे z की एकता की आदिम जड़ को हल करने के लिए जटिल विमान में न्यूटन की विधि को नियोजित करकेएन − 1).

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

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


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

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

यह भी देखें

 * आर्यभट्ट की साइन टेबल
 * कॉर्डिक
 * सटीक त्रिकोणमितीय मान
 * माधव की ज्या तालिका
 * संख्यात्मक विश्लेषण
 * प्लिमपटन 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.