त्रिकोणमितीय टेबल: Difference between revisions
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
गणित में, त्रिकोणमितीय फलनों की तालिकाएँ कई क्षेत्रों में उपयोगी होती हैं। [[जेब कैलकुलेटर|पॉकेट कैलकुलेटर]] के अस्तित्व से पहले, [[ मार्गदर्शन ]], [[विज्ञान]] और [[अभियांत्रिकी]] के लिए त्रिकोणमितीय टेबल आवश्यक थे। [[गणितीय तालिका]]ओं की गणना अध्ययन का एक महत्वपूर्ण क्षेत्र था, जिसके कारण कंप्यूटिंग के इतिहास का विकास हुआ। | गणित में, त्रिकोणमितीय फलनों की तालिकाएँ कई क्षेत्रों में उपयोगी होती हैं। [[जेब कैलकुलेटर|पॉकेट कैलकुलेटर]] के अस्तित्व से पहले, [[ मार्गदर्शन ]], [[विज्ञान]] और [[अभियांत्रिकी]] के लिए त्रिकोणमितीय टेबल आवश्यक थे। [[गणितीय तालिका]]ओं की गणना अध्ययन का एक महत्वपूर्ण क्षेत्र था, जिसके कारण कंप्यूटिंग के इतिहास का विकास हुआ। | ||
आधुनिक कंप्यूटर और पॉकेट कैलकुलेटर अब गणितीय कोड के विशेष पुस्तकालयों का उपयोग करके मांग पर त्रिकोणमितीय फ़ंक्शन मान उत्पन्न करते हैं। अक्सर, ये पुस्तकालय आंतरिक रूप से पूर्व-परिकलित तालिकाओं का उपयोग करते हैं, और उपयुक्त [[प्रक्षेप]] विधि का उपयोग करके आवश्यक मान की गणना करते हैं। त्रिकोणमितीय कार्यों की सरल लुक-अप तालिकाओं का प्रक्षेप अभी भी [[कंप्यूटर चित्रलेख]] में उपयोग किया जाता है, जहां केवल मामूली सटीकता की आवश्यकता हो सकती है और गति अक्सर | आधुनिक कंप्यूटर और पॉकेट कैलकुलेटर अब गणितीय कोड के विशेष पुस्तकालयों का उपयोग करके मांग पर त्रिकोणमितीय फ़ंक्शन मान उत्पन्न करते हैं। अक्सर, ये पुस्तकालय आंतरिक रूप से पूर्व-परिकलित तालिकाओं का उपयोग करते हैं, और उपयुक्त [[प्रक्षेप]] विधि का उपयोग करके आवश्यक मान की गणना करते हैं। त्रिकोणमितीय कार्यों की सरल लुक-अप तालिकाओं का प्रक्षेप अभी भी [[कंप्यूटर चित्रलेख]] में उपयोग किया जाता है, जहां केवल मामूली सटीकता की आवश्यकता हो सकती है और गति अक्सर अधिक होती है। | ||
त्रिकोणमितीय तालिकाओं और पीढ़ी योजनाओं का एक अन्य महत्वपूर्ण अनुप्रयोग तेजी [[फास्ट फूरियर ट्रांसफॉर्म]] (एफएफटी) एल्गोरिदम के लिए है, जहां एक ही त्रिकोणमितीय फ़ंक्शन मान (जिसे 'ट्विडल कारक' कहा जाता है) का मूल्यांकन किसी दिए गए परिवर्तन में कई बार किया जाना चाहिए, विशेष रूप से सामान्य मामले में जहां एक ही आकार के कई रूपांतरों की गणना की जाती है। इस मामले में, जेनेरिक | त्रिकोणमितीय तालिकाओं और पीढ़ी योजनाओं का एक अन्य महत्वपूर्ण अनुप्रयोग तेजी [[फास्ट फूरियर ट्रांसफॉर्म|तेजी से फूरियर रूपांतरण]] (एफएफटी) एल्गोरिदम के लिए है, जहां एक ही त्रिकोणमितीय फ़ंक्शन मान (जिसे 'ट्विडल कारक' कहा जाता है) का मूल्यांकन किसी दिए गए परिवर्तन में कई बार किया जाना चाहिए, विशेष रूप से सामान्य मामले में जहां एक ही आकार के कई रूपांतरों की गणना की जाती है। इस मामले में, जेनेरिक पुस्तकालय दिनचर्या को हर बार बुलाना करना अस्वीकार्य रूप से धीमा है। एक विकल्प यह है कि पुस्तकालय दिनचर्या को एक बार बुलाना करें, उन त्रिकोणमितीय मानों की एक तालिका बनाने के लिए जिनकी आवश्यकता होगी, लेकिन इसके लिए तालिका को संग्रहीत करने के लिए महत्वपूर्ण मेमोरी की आवश्यकता होती है। दूसरी संभावना, चूंकि मूल्यों के नियमित अनुक्रम की आवश्यकता होती है, यह है कि फ्लाई पर त्रिकोणमितीय मानों की गणना करने के लिए पुनरावृत्ति सूत्र का उपयोग किया जाए। एफएफटी (जो त्रिकोणमितीय त्रुटियों के प्रति बहुत संवेदनशील है) की सटीकता को बनाए रखने के लिए सटीक, स्थिर पुनरावृत्ति योजनाओं को खोजने के लिए महत्वपूर्ण शोध समर्पित किया गया है। | ||
== ऑन-डिमांड संगणना == | == ऑन-डिमांड संगणना == | ||
[[File:Bernegger Manuale 137.jpg|thumb|right|200px|गणितीय तालिकाओं की 1619 पुस्तक का एक पृष्ठ।]]आधुनिक कंप्यूटर और कैलकुलेटर मनमाने कोणों के लिए मांग पर त्रिकोणमितीय फ़ंक्शन मान प्रदान करने के लिए कई प्रकार की तकनीकों का उपयोग करते हैं (कंटाबुत्र, 1996)। [[तैरनेवाला स्थल | [[File:Bernegger Manuale 137.jpg|thumb|right|200px|गणितीय तालिकाओं की 1619 पुस्तक का एक पृष्ठ।]]आधुनिक कंप्यूटर और कैलकुलेटर मनमाने कोणों के लिए मांग पर त्रिकोणमितीय फ़ंक्शन मान प्रदान करने के लिए कई प्रकार की तकनीकों का उपयोग करते हैं (कंटाबुत्र, 1996)। [[तैरनेवाला स्थल|फ़्लोटिंग-पॉइंट]] इकाइयों के साथ उच्च-अंत प्रोसेसर पर सामान्य विधि, एक [[बहुपद]] या तर्कसंगत फ़ंक्शन [[सन्निकटन सिद्धांत]] (जैसे चेबीशेव सन्निकटन, सर्वोत्तम वर्दी सन्निकटन, पैड सन्निकटन , और आमतौर पर उच्च या उच्च के लिए) को जोड़ना है। परिवर्ती सटीकता, [[टेलर श्रृंखला]] और [[लॉरेंट श्रृंखला]]) श्रेणी में कमी और एक सारणी अवलोकन के साथ - वे पहले छोटी तालिका में निकटतम कोण को देखते हैं, और फिर सुधार की गणना करने के लिए बहुपद का उपयोग करते हैं। इस तरह के प्रक्षेप को करते समय सटीकता बनाए रखना गैर-तुच्छ है, लेकिन इस उद्देश्य के लिए गैल की सटीक टेबल, कोडी और वाइट रेंज में कमी, और पायने और रेडियन रिडक्शन एल्गोरिदम जैसी विधियों का उपयोग किया जा सकता है। [[हार्डवेयर गुणक]] की कमी वाले सरल उपकरणों पर, [[CORDIC|कॉरडिक]] (साथ ही संबंधित तकनीकों) नामक एक एल्गोरिथ्म है जो अधिक कुशल है, क्योंकि यह केवल [[शिफ्ट ऑपरेटर]] और परिवर्धन का उपयोग करता है। प्रदर्शन कारणों से इन सभी तरीकों को आमतौर पर [[कंप्यूटर हार्डवेयर]] में लागू किया जाता है। | ||
त्रिकोणमितीय फ़ंक्शन का अनुमान लगाने के लिए उपयोग किया जाने वाला विशेष बहुपद एक मिनिमैक्स सन्निकटन एल्गोरिथम के कुछ सन्निकटन का उपयोग करके समय से पहले उत्पन्न होता है। | त्रिकोणमितीय फ़ंक्शन का अनुमान लगाने के लिए उपयोग किया जाने वाला विशेष बहुपद एक मिनिमैक्स सन्निकटन एल्गोरिथम के कुछ सन्निकटन का उपयोग करके समय से पहले उत्पन्न होता है। | ||
[[मनमाना-सटीक अंकगणित]] गणनाओं के लिए, जब श्रृंखला-विस्तार अभिसरण बहुत धीमा हो जाता है, तो त्रिकोणमितीय कार्यों को [[अंकगणित-ज्यामितीय माध्य]] द्वारा अनुमानित किया जा सकता है, जो स्वयं ([[जटिल संख्या]]) [[अण्डाकार अभिन्न]] (ब्रेंट, 1976) द्वारा त्रिकोणमितीय फ़ंक्शन का अनुमान लगाता है। | [[मनमाना-सटीक अंकगणित|बहुत उच्च परिशुद्धता]] गणनाओं के लिए, जब श्रृंखला-विस्तार अभिसरण बहुत धीमा हो जाता है, तो त्रिकोणमितीय कार्यों को [[अंकगणित-ज्यामितीय माध्य|अंकगणितीय-ज्यामितीय औसत]] द्वारा अनुमानित किया जा सकता है, जो स्वयं ([[जटिल संख्या]]) [[अण्डाकार अभिन्न]] (ब्रेंट, 1976) द्वारा त्रिकोणमितीय फ़ंक्शन का अनुमान लगाता है। | ||
कोणों के त्रिकोणमितीय फलन जो 2π के परिमेय संख्या गुणक हैं, [[बीजगणितीय संख्या]]एँ हैं। a/b·2π के मान n = a | कोणों के त्रिकोणमितीय फलन जो 2π के परिमेय संख्या गुणक हैं, [[बीजगणितीय संख्या]]एँ हैं। a/b·2π के मान n = a के लिए डी मोइवर की पहचान को एकता का b<sup>th</sup> मूल लागू करके पाया जा सकता है , जो जटिल तल में बहुपद x<sup>b</sup> - 1 का भी एक मूल है । उदाहरण के लिए, 2π ⋅ 5/37 का कोज्या और ज्या, एकता cos(2π/37) + sin(2π/37)i के 37वें मूल की 5वीं शक्ति का क्रमशः [[वास्तविक भाग]] और [[काल्पनिक भाग]] हैं, जो कि एक है बहुपद -37 बहुपद x<sup>37</sup> − 1 की डिग्री की जड़.| इस मामले के लिए,न्यूटन की विधि जैसे रूट-फाइंडिंग एल्गोरिद्म कि उपरोक्त अंकगणितीय-ज्यामितीय माध्य एल्गोरिथम की तुलना में एक समान स्पर्शोन्मुख दर पर अभिसरण करते समय बहुत सरल है | हालाँकि, ट्रान्सेंडैंटल संख्या त्रिकोणमितीय स्थिरांक के लिए बाद वाले एल्गोरिदम की आवश्यकता होती है। | ||
== अर्ध-कोण और कोण-जोड़ सूत्र == | == अर्ध-कोण और कोण-जोड़ सूत्र == | ||
ऐतिहासिक रूप से, सबसे प्रारंभिक विधि जिसके द्वारा त्रिकोणमितीय तालिकाओं की गणना की गई थी, और शायद कंप्यूटर के आगमन तक सबसे आम, | ऐतिहासिक रूप से, सबसे प्रारंभिक विधि जिसके द्वारा त्रिकोणमितीय तालिकाओं की गणना की गई थी, और शायद कंप्यूटर के आगमन तक सबसे आम,थी | बार-बार अर्ध-कोण और कोण-जोड़ [[त्रिकोणमितीय पहचान]] को ज्ञात मान से लागू करना था (जैसे sin(π/2) ) = 1, cos(π/2) = 0). इस पद्धति का उपयोग प्राचीन खगोलशास्त्री [[टॉलेमी]] द्वारा किया गया था, जिन्होंने उन्हें खगोल विज्ञान पर एक ग्रंथ [[अल्मागेस्ट]] में प्राप्त किया था। आधुनिक रूप में, उन्होंने जो सर्वसमिकाएं निकाली हैं, उन्हें इस प्रकार बताया गया है (चतुर्थांश द्वारा निर्धारित संकेतों के साथ जिसमें x स्थित है): | ||
:<math>\cos\left(\frac{x}{2}\right) = \pm \sqrt{\tfrac{1}{2}(1 + \cos x)}</math> | :<math>\cos\left(\frac{x}{2}\right) = \pm \sqrt{\tfrac{1}{2}(1 + \cos x)}</math> | ||
Line 33: | Line 33: | ||
== एक त्वरित, लेकिन गलत, सन्निकटन == | == एक त्वरित, लेकिन गलत, सन्निकटन == | ||
N सन्निकटन s | [[sine|sin]](2Pi|πn/N) के लिए N सन्निकटन s<sub>''n''</sub> और cos(2πn/N) के लिए c<sub>''n''</sub> की तालिका की गणना करने के लिए एक त्वरित, लेकिन गलत एल्गोरिथम है: | ||
:एस<sub>0</sub> = 0 | :एस<sub>0</sub> = 0 | ||
Line 49: | Line 49: | ||
दुर्भाग्य से, साइन टेबल बनाने के लिए यह एक उपयोगी एल्गोरिथम नहीं है क्योंकि इसमें एक महत्वपूर्ण त्रुटि है, जो 1/N के समानुपाती है। | दुर्भाग्य से, साइन टेबल बनाने के लिए यह एक उपयोगी एल्गोरिथम नहीं है क्योंकि इसमें एक महत्वपूर्ण त्रुटि है, जो 1/N के समानुपाती है। | ||
उदाहरण के लिए, N = 256 के लिए ज्या मानों में अधिकतम त्रुटि ~0.061 (s | उदाहरण के लिए, N = 256 के लिए ज्या मानों में अधिकतम त्रुटि ~0.061 (s<sub>202</sub> = -1.0368 -0.9757 के बजाय ) है। N = 1024 के लिए, ज्या मानों में अधिकतम त्रुटि ~0.015 (s<sub>803</sub> = -0.97832 के बजाय -0.99321), लगभग 4 गुना छोटा। यदि प्राप्त साइन और कोसाइन मूल्यों को प्लॉट किया जाना था, तो यह एल्गोरिथम एक वृत्त के बजाय लॉगरिदमिक सर्पिल खींचेगा। | ||
उदाहरण के लिए, N = 256 के लिए ज्या मानों में अधिकतम त्रुटि ~0.061 (s202 = -1.0368 -0.9757 के बजाय) है। N = 1024 के लिए, ज्या मानों में अधिकतम त्रुटि ~0.015 (s803 = -0.97832 के बजाय -0.99321) है, जो लगभग 4 गुना कम है। यदि प्राप्त साइन और कोसाइन मूल्यों को प्लॉट किया जाना था, तो यह एल्गोरिथम एक वृत्त के बजाय एक लॉगरिदमिक सर्पिल खींचता है । | |||
== एक बेहतर, लेकिन अभी भी अपूर्ण, पुनरावृत्ति सूत्र == | == एक बेहतर, लेकिन अभी भी अपूर्ण, पुनरावृत्ति सूत्र == | ||
Line 55: | Line 57: | ||
:<math>e^{i(\theta + \Delta)} = e^{i\theta} \times e^{i\Delta\theta}</math> | :<math>e^{i(\theta + \Delta)} = e^{i\theta} \times e^{i\Delta\theta}</math> | ||
उपरोक्त के अनुसार त्रिकोणमितीय मानों s<sub>''n''</sub> और c<sub>''n''</sub> की गणना करने के लिए यह निम्नलिखित पुनरावृत्ति की ओर जाता है: | |||
:सी<sub>0</sub> = 1 | :सी<sub>0</sub> = 1 | ||
Line 61: | Line 63: | ||
:सी<sub>''n''+1</sub> = डब्ल्यू<sub>''r''</sub> c<sub>''n''</sub> - डब्ल्यू<sub>''i''</sub> s<sub>''n''</sub> | :सी<sub>''n''+1</sub> = डब्ल्यू<sub>''r''</sub> c<sub>''n''</sub> - डब्ल्यू<sub>''i''</sub> s<sub>''n''</sub> | ||
:एस<sub>''n''+1</sub> = डब्ल्यू<sub>''i''</sub> c<sub>''n''</sub> + डब्ल्यू<sub>''r''</sub> s<sub>''n''</sub> | :एस<sub>''n''+1</sub> = डब्ल्यू<sub>''i''</sub> c<sub>''n''</sub> + डब्ल्यू<sub>''r''</sub> s<sub>''n''</sub> | ||
n = 0 के लिए | n = 0 , N − 1 के लिए, जहाँ w<sub>''r''</sub> = cos(2π/N) और w<sub>''i''</sub> = sin(2π/N)। ये दो शुरुआती त्रिकोणमितीय मान आमतौर पर मौजूदा पुस्तकालय कार्यों का उपयोग करके गणना किए जाते हैं (लेकिन यह भी पाया जा सकता है जैसे z<sup>N− 1</sup> की एकता की आदिम जड़ को हल करने के लिए जटिल विमान में न्यूटन की विधि को नियोजित करके ).| | ||
यह विधि सटीक अंकगणित में सटीक तालिका उत्पन्न करेगी, लेकिन परिमित-परिशुद्धता [[तैरनेवाला स्थल]] अंकगणित में त्रुटियाँ हैं। वास्तव में, त्रुटियां O(ε N) (सबसे खराब और औसत दोनों मामलों में) के रूप में बढ़ती हैं, जहां ε फ़्लोटिंग-पॉइंट परिशुद्धता है। | यह विधि सटीक अंकगणित में सटीक तालिका उत्पन्न करेगी, लेकिन परिमित-परिशुद्धता [[तैरनेवाला स्थल|फ़्लोटिंग-पॉइंट]] अंकगणित में त्रुटियाँ हैं। वास्तव में, त्रुटियां O(ε N) (सबसे खराब और औसत दोनों मामलों में) के रूप में बढ़ती हैं, जहां ε फ़्लोटिंग-पॉइंट परिशुद्धता है। | ||
उपरोक्त में निम्नलिखित संशोधन का उपयोग करने के लिए एक महत्वपूर्ण सुधार है, एक चाल (सिंगलटन<ref>{{harvnb|Singleton|1967}}</ref>) अक्सर एफएफटी कार्यान्वयन के लिए त्रिकोणमितीय मान उत्पन्न करने के लिए उपयोग किया जाता है: | उपरोक्त में निम्नलिखित संशोधन का उपयोग करने के लिए एक महत्वपूर्ण सुधार है, एक चाल (सिंगलटन <ref>{{harvnb|Singleton|1967}}</ref>) अक्सर एफएफटी कार्यान्वयन के लिए त्रिकोणमितीय मान उत्पन्न करने के लिए उपयोग किया जाता है: | ||
:सी<sub>0</sub> = 1 | :सी<sub>0</sub> = 1 | ||
Line 72: | Line 74: | ||
:एस<sub>''n''+1</sub> = एस<sub>''n''</sub>+ (बी सी<sub>''n''</sub>- एक एस<sub>''n''</sub>) | :एस<sub>''n''+1</sub> = एस<sub>''n''</sub>+ (बी सी<sub>''n''</sub>- एक एस<sub>''n''</sub>) | ||
जहां α = 2 | जहां α = 2 sin<sup>2</sup>(π/N) और β = sin(2π/N). इस पद्धति की त्रुटियां बहुत छोटी हैं, O(ε √N) औसतन और सबसे खराब स्थिति में O(ε N), लेकिन यह अभी भी काफी बड़ी है जो बड़े आकार के FFTs की सटीकता को काफी कम कर देती है। | ||
== यह भी देखें == | == यह भी देखें == |
Revision as of 14:56, 20 April 2023
त्रिकोणमिति |
---|
संदर्भ |
कानून और सिद्धांत |
पथरी |
गणित में, त्रिकोणमितीय फलनों की तालिकाएँ कई क्षेत्रों में उपयोगी होती हैं। पॉकेट कैलकुलेटर के अस्तित्व से पहले, मार्गदर्शन , विज्ञान और अभियांत्रिकी के लिए त्रिकोणमितीय टेबल आवश्यक थे। गणितीय तालिकाओं की गणना अध्ययन का एक महत्वपूर्ण क्षेत्र था, जिसके कारण कंप्यूटिंग के इतिहास का विकास हुआ।
आधुनिक कंप्यूटर और पॉकेट कैलकुलेटर अब गणितीय कोड के विशेष पुस्तकालयों का उपयोग करके मांग पर त्रिकोणमितीय फ़ंक्शन मान उत्पन्न करते हैं। अक्सर, ये पुस्तकालय आंतरिक रूप से पूर्व-परिकलित तालिकाओं का उपयोग करते हैं, और उपयुक्त प्रक्षेप विधि का उपयोग करके आवश्यक मान की गणना करते हैं। त्रिकोणमितीय कार्यों की सरल लुक-अप तालिकाओं का प्रक्षेप अभी भी कंप्यूटर चित्रलेख में उपयोग किया जाता है, जहां केवल मामूली सटीकता की आवश्यकता हो सकती है और गति अक्सर अधिक होती है।
त्रिकोणमितीय तालिकाओं और पीढ़ी योजनाओं का एक अन्य महत्वपूर्ण अनुप्रयोग तेजी तेजी से फूरियर रूपांतरण (एफएफटी) एल्गोरिदम के लिए है, जहां एक ही त्रिकोणमितीय फ़ंक्शन मान (जिसे 'ट्विडल कारक' कहा जाता है) का मूल्यांकन किसी दिए गए परिवर्तन में कई बार किया जाना चाहिए, विशेष रूप से सामान्य मामले में जहां एक ही आकार के कई रूपांतरों की गणना की जाती है। इस मामले में, जेनेरिक पुस्तकालय दिनचर्या को हर बार बुलाना करना अस्वीकार्य रूप से धीमा है। एक विकल्प यह है कि पुस्तकालय दिनचर्या को एक बार बुलाना करें, उन त्रिकोणमितीय मानों की एक तालिका बनाने के लिए जिनकी आवश्यकता होगी, लेकिन इसके लिए तालिका को संग्रहीत करने के लिए महत्वपूर्ण मेमोरी की आवश्यकता होती है। दूसरी संभावना, चूंकि मूल्यों के नियमित अनुक्रम की आवश्यकता होती है, यह है कि फ्लाई पर त्रिकोणमितीय मानों की गणना करने के लिए पुनरावृत्ति सूत्र का उपयोग किया जाए। एफएफटी (जो त्रिकोणमितीय त्रुटियों के प्रति बहुत संवेदनशील है) की सटीकता को बनाए रखने के लिए सटीक, स्थिर पुनरावृत्ति योजनाओं को खोजने के लिए महत्वपूर्ण शोध समर्पित किया गया है।
ऑन-डिमांड संगणना
आधुनिक कंप्यूटर और कैलकुलेटर मनमाने कोणों के लिए मांग पर त्रिकोणमितीय फ़ंक्शन मान प्रदान करने के लिए कई प्रकार की तकनीकों का उपयोग करते हैं (कंटाबुत्र, 1996)। फ़्लोटिंग-पॉइंट इकाइयों के साथ उच्च-अंत प्रोसेसर पर सामान्य विधि, एक बहुपद या तर्कसंगत फ़ंक्शन सन्निकटन सिद्धांत (जैसे चेबीशेव सन्निकटन, सर्वोत्तम वर्दी सन्निकटन, पैड सन्निकटन , और आमतौर पर उच्च या उच्च के लिए) को जोड़ना है। परिवर्ती सटीकता, टेलर श्रृंखला और लॉरेंट श्रृंखला) श्रेणी में कमी और एक सारणी अवलोकन के साथ - वे पहले छोटी तालिका में निकटतम कोण को देखते हैं, और फिर सुधार की गणना करने के लिए बहुपद का उपयोग करते हैं। इस तरह के प्रक्षेप को करते समय सटीकता बनाए रखना गैर-तुच्छ है, लेकिन इस उद्देश्य के लिए गैल की सटीक टेबल, कोडी और वाइट रेंज में कमी, और पायने और रेडियन रिडक्शन एल्गोरिदम जैसी विधियों का उपयोग किया जा सकता है। हार्डवेयर गुणक की कमी वाले सरल उपकरणों पर, कॉरडिक (साथ ही संबंधित तकनीकों) नामक एक एल्गोरिथ्म है जो अधिक कुशल है, क्योंकि यह केवल शिफ्ट ऑपरेटर और परिवर्धन का उपयोग करता है। प्रदर्शन कारणों से इन सभी तरीकों को आमतौर पर कंप्यूटर हार्डवेयर में लागू किया जाता है।
त्रिकोणमितीय फ़ंक्शन का अनुमान लगाने के लिए उपयोग किया जाने वाला विशेष बहुपद एक मिनिमैक्स सन्निकटन एल्गोरिथम के कुछ सन्निकटन का उपयोग करके समय से पहले उत्पन्न होता है।
बहुत उच्च परिशुद्धता गणनाओं के लिए, जब श्रृंखला-विस्तार अभिसरण बहुत धीमा हो जाता है, तो त्रिकोणमितीय कार्यों को अंकगणितीय-ज्यामितीय औसत द्वारा अनुमानित किया जा सकता है, जो स्वयं (जटिल संख्या) अण्डाकार अभिन्न (ब्रेंट, 1976) द्वारा त्रिकोणमितीय फ़ंक्शन का अनुमान लगाता है।
कोणों के त्रिकोणमितीय फलन जो 2π के परिमेय संख्या गुणक हैं, बीजगणितीय संख्याएँ हैं। a/b·2π के मान n = a के लिए डी मोइवर की पहचान को एकता का bth मूल लागू करके पाया जा सकता है , जो जटिल तल में बहुपद xb - 1 का भी एक मूल है । उदाहरण के लिए, 2π ⋅ 5/37 का कोज्या और ज्या, एकता cos(2π/37) + sin(2π/37)i के 37वें मूल की 5वीं शक्ति का क्रमशः वास्तविक भाग और काल्पनिक भाग हैं, जो कि एक है बहुपद -37 बहुपद x37 − 1 की डिग्री की जड़.| इस मामले के लिए,न्यूटन की विधि जैसे रूट-फाइंडिंग एल्गोरिद्म कि उपरोक्त अंकगणितीय-ज्यामितीय माध्य एल्गोरिथम की तुलना में एक समान स्पर्शोन्मुख दर पर अभिसरण करते समय बहुत सरल है | हालाँकि, ट्रान्सेंडैंटल संख्या त्रिकोणमितीय स्थिरांक के लिए बाद वाले एल्गोरिदम की आवश्यकता होती है।
अर्ध-कोण और कोण-जोड़ सूत्र
ऐतिहासिक रूप से, सबसे प्रारंभिक विधि जिसके द्वारा त्रिकोणमितीय तालिकाओं की गणना की गई थी, और शायद कंप्यूटर के आगमन तक सबसे आम,थी | बार-बार अर्ध-कोण और कोण-जोड़ त्रिकोणमितीय पहचान को ज्ञात मान से लागू करना था (जैसे sin(π/2) ) = 1, cos(π/2) = 0). इस पद्धति का उपयोग प्राचीन खगोलशास्त्री टॉलेमी द्वारा किया गया था, जिन्होंने उन्हें खगोल विज्ञान पर एक ग्रंथ अल्मागेस्ट में प्राप्त किया था। आधुनिक रूप में, उन्होंने जो सर्वसमिकाएं निकाली हैं, उन्हें इस प्रकार बताया गया है (चतुर्थांश द्वारा निर्धारित संकेतों के साथ जिसमें x स्थित है):
इनका उपयोग टॉलेमी की तारों की तालिका बनाने के लिए किया गया था, जिसे खगोलीय समस्याओं पर लागू किया गया था।
इन सर्वसमिकाओं पर विभिन्न अन्य क्रमपरिवर्तन संभव हैं: उदाहरण के लिए, कुछ प्रारंभिक त्रिकोणमितीय तालिकाओं में साइन और कोसाइन का उपयोग नहीं किया गया था, लेकिन साइन और उसका संस्करण का उपयोग किया गया था।
यह है कि फ्लाई पर त्रिकोणमितीय मानों की गणना करने के लिए पुनरावृत्ति सूत्र का उपयोग किया जाए। एफएफटी (जो त्रिकोणमितीय त्रुटियों के प्रति बहुत संवेदनशील है) की सटीकता को
एक त्वरित, लेकिन गलत, सन्निकटन
sin(2Pi|πn/N) के लिए N सन्निकटन sn और cos(2πn/N) के लिए cn की तालिका की गणना करने के लिए एक त्वरित, लेकिन गलत एल्गोरिथम है:
- एस0 = 0
- सी0 = 1
- एसn+1 = एसn + डी × सीn
- सीn+1 = सीn - डी × एसn
n = 0,...,N − 1 के लिए, जहां d = 2π/N.
यह अंतर समीकरण को एकीकृत करने के लिए केवल संख्यात्मक साधारण अंतर समीकरण#यूलर विधि है:
प्रारंभिक स्थितियों के साथ s(0) = 0 और c(0) = 1, जिसका विश्लेषणात्मक समाधान s = sin(t) और c = cos(t) है।
दुर्भाग्य से, साइन टेबल बनाने के लिए यह एक उपयोगी एल्गोरिथम नहीं है क्योंकि इसमें एक महत्वपूर्ण त्रुटि है, जो 1/N के समानुपाती है।
उदाहरण के लिए, N = 256 के लिए ज्या मानों में अधिकतम त्रुटि ~0.061 (s202 = -1.0368 -0.9757 के बजाय ) है। N = 1024 के लिए, ज्या मानों में अधिकतम त्रुटि ~0.015 (s803 = -0.97832 के बजाय -0.99321), लगभग 4 गुना छोटा। यदि प्राप्त साइन और कोसाइन मूल्यों को प्लॉट किया जाना था, तो यह एल्गोरिथम एक वृत्त के बजाय लॉगरिदमिक सर्पिल खींचेगा।
उदाहरण के लिए, N = 256 के लिए ज्या मानों में अधिकतम त्रुटि ~0.061 (s202 = -1.0368 -0.9757 के बजाय) है। N = 1024 के लिए, ज्या मानों में अधिकतम त्रुटि ~0.015 (s803 = -0.97832 के बजाय -0.99321) है, जो लगभग 4 गुना कम है। यदि प्राप्त साइन और कोसाइन मूल्यों को प्लॉट किया जाना था, तो यह एल्गोरिथम एक वृत्त के बजाय एक लॉगरिदमिक सर्पिल खींचता है ।
एक बेहतर, लेकिन अभी भी अपूर्ण, पुनरावृत्ति सूत्र
त्रिकोणमितीय तालिकाओं को उत्पन्न करने के लिए एक सरल पुनरावृत्ति सूत्र यूलर के सूत्र और संबंध पर आधारित है:
उपरोक्त के अनुसार त्रिकोणमितीय मानों sn और cn की गणना करने के लिए यह निम्नलिखित पुनरावृत्ति की ओर जाता है:
- सी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 = sin(2π/N)। ये दो शुरुआती त्रिकोणमितीय मान आमतौर पर मौजूदा पुस्तकालय कार्यों का उपयोग करके गणना किए जाते हैं (लेकिन यह भी पाया जा सकता है जैसे zN− 1 की एकता की आदिम जड़ को हल करने के लिए जटिल विमान में न्यूटन की विधि को नियोजित करके ).|
यह विधि सटीक अंकगणित में सटीक तालिका उत्पन्न करेगी, लेकिन परिमित-परिशुद्धता फ़्लोटिंग-पॉइंट अंकगणित में त्रुटियाँ हैं। वास्तव में, त्रुटियां O(ε N) (सबसे खराब और औसत दोनों मामलों में) के रूप में बढ़ती हैं, जहां ε फ़्लोटिंग-पॉइंट परिशुद्धता है।
उपरोक्त में निम्नलिखित संशोधन का उपयोग करने के लिए एक महत्वपूर्ण सुधार है, एक चाल (सिंगलटन [1]) अक्सर एफएफटी कार्यान्वयन के लिए त्रिकोणमितीय मान उत्पन्न करने के लिए उपयोग किया जाता है:
- सी0 = 1
- एस0 = 0
- सीn+1 = सीn- (सीn+ बी एसn)
- एसn+1 = एसn+ (बी सीn- एक एसn)
जहां α = 2 sin2(π/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.
- Singleton, Richard C (1967). "On Computing The Fast Fourier Transform". Communications of the ACM. 10 (10): 647–654. doi:10.1145/363717.363771. S2CID 6287781.
- 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.