त्रिकोणमितीय टेबल: Difference between revisions

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


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


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


== ऑन-डिमांड संगणना ==
== ऑन-डिमांड संगणना ==
[[File:Bernegger Manuale 137.jpg|thumb|right|200px|गणितीय तालिकाओं की 1619 पुस्तक का एक पृष्ठ।]]आधुनिक कंप्यूटर और कैलकुलेटर मनमाने कोणों के लिए मांग पर त्रिकोणमितीय फ़ंक्शन मान प्रदान करने के लिए कई प्रकार की तकनीकों का उपयोग करते हैं (कंटाबुत्र, 1996)। [[तैरनेवाला स्थल|फ़्लोटिंग-पॉइंट]]  इकाइयों के साथ उच्च-अंत प्रोसेसर पर  सामान्य विधि, एक [[बहुपद]] या तर्कसंगत फ़ंक्शन [[सन्निकटन सिद्धांत]] (जैसे चेबीशेव सन्निकटन, सर्वोत्तम वर्दी सन्निकटन, पैड सन्निकटन , और आमतौर पर उच्च या उच्च के लिए) को जोड़ना है। परिवर्ती सटीकता, [[टेलर श्रृंखला]] और [[लॉरेंट श्रृंखला]]) श्रेणी में कमी और एक सारणी अवलोकन के साथ - वे पहले  छोटी तालिका में निकटतम कोण को देखते हैं, और फिर सुधार की गणना करने के लिए बहुपद का उपयोग करते हैं। इस तरह के प्रक्षेप को करते समय सटीकता बनाए रखना गैर-तुच्छ है, लेकिन इस उद्देश्य के लिए गैल की सटीक टेबल, कोडी और वाइट रेंज में कमी, और पायने और  रेडियन रिडक्शन एल्गोरिदम जैसी विधियों का उपयोग किया जा सकता है। [[हार्डवेयर गुणक]] की कमी वाले सरल उपकरणों पर, [[CORDIC|कॉरडिक]] (साथ ही संबंधित तकनीकों) नामक एक एल्गोरिथ्म है जो अधिक कुशल है, क्योंकि यह केवल [[शिफ्ट ऑपरेटर]] और परिवर्धन का उपयोग करता है। प्रदर्शन कारणों से इन सभी तरीकों को आमतौर पर [[कंप्यूटर हार्डवेयर]] में लागू किया जाता है।
[[File:Bernegger Manuale 137.jpg|thumb|right|200px|गणितीय तालिकाओं की 1619 पुस्तक का एक पृष्ठ।]]आधुनिक कंप्यूटर और कैलकुलेटर इच्छानुसार कोणों के लिए मांग पर त्रिकोणमितीय फलन मान प्रदान करने के लिए कई प्रकार की विधियों का उपयोग करते हैं (कंटाबुत्र, 1996)। [[तैरनेवाला स्थल|फ़्लोटिंग-पॉइंट]]  इकाइयों के साथ उच्च-अंत प्रोसेसर पर  सामान्य विधि, एक [[बहुपद]] या तर्कसंगत फलन [[सन्निकटन सिद्धांत]] (जैसे चेबीशेव सन्निकटन, सर्वोत्तम वर्दी सन्निकटन, पैड सन्निकटन , और सामान्यतः उच्च या उच्च के लिए) को जोड़ना है। परिवर्ती स्पष्ट, [[टेलर श्रृंखला]] और [[लॉरेंट श्रृंखला]]) श्रेणी में कमी और एक सारणी अवलोकन के साथ - वे पहले  छोटी तालिका में निकटतम कोण को देखते हैं, और फिर सुधार की गणना करने के लिए बहुपद का उपयोग करते हैं। इस तरह के प्रक्षेप को करते समय स्पष्ट बनाए रखना गैर-तुच्छ है, किन्तु इस उद्देश्य के लिए गैल की स्पष्ट टेबल, कोडी और वाइट रेंज में कमी, और पायने और  रेडियन रिडक्शन एल्गोरिदम जैसी विधियों का उपयोग किया जा सकता है। [[हार्डवेयर गुणक]] की कमी वाले सरल उपकरणों पर, [[CORDIC|कॉरडिक]] (साथ ही संबंधित विधियों) नामक एक एल्गोरिथ्म है जो अधिक उत्तम है, क्योंकि यह केवल [[शिफ्ट ऑपरेटर]] और परिवर्धन का उपयोग करता है। प्रदर्शन कारणों से इन सभी विधियों को सामान्यतः [[कंप्यूटर हार्डवेयर]] में प्रयुक्त किया जाता है।


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


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


कोणों के त्रिकोणमितीय फलन जो 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 की डिग्री की जड़.| इस मामले के लिए,न्यूटन की विधि जैसे रूट-फाइंडिंग एल्गोरिद्म  कि  उपरोक्त अंकगणितीय-ज्यामितीय माध्य एल्गोरिथम की तुलना में एक समान स्पर्शोन्मुख दर पर अभिसरण करते समय बहुत सरल है | हालाँकि, ट्रान्सेंडैंटल संख्या त्रिकोणमितीय स्थिरांक के लिए बाद वाले एल्गोरिदम की आवश्यकता होती है।
कोणों के त्रिकोणमितीय फलन जो 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 स्थित है):
ऐतिहासिक रूप से, सबसे प्रारंभिक विधि जिसके द्वारा त्रिकोणमितीय तालिकाओं की गणना की गई थी, और शायद कंप्यूटर के आगमन तक सबसे सामान्य,थी | बार-बार अर्ध-कोण और कोण-जोड़ [[त्रिकोणमितीय पहचान]] को ज्ञात मान से प्रयुक्त करना था (जैसे 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 25: Line 25:
:<math>\sin(x \pm y) = \sin(x) \cos(y) \pm \cos(x) \sin(y)\,</math>
:<math>\sin(x \pm y) = \sin(x) \cos(y) \pm \cos(x) \sin(y)\,</math>
:<math>\cos(x \pm y) = \cos(x) \cos(y) \mp \sin(x) \sin(y)\,</math>
:<math>\cos(x \pm y) = \cos(x) \cos(y) \mp \sin(x) \sin(y)\,</math>
इनका उपयोग टॉलेमी की तारों की तालिका बनाने के लिए किया गया था, जिसे खगोलीय समस्याओं पर लागू किया गया था।
इनका उपयोग टॉलेमी की तारों की तालिका बनाने के लिए किया गया था, जिसे खगोलीय समस्याओं पर प्रयुक्त किया गया था।


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


'''यह है कि फ्लाई पर त्रिकोणमितीय मानों की गणना करने के लिए पुनरावृत्ति सूत्र का उपयोग किया जाए। एफएफटी (जो त्रिकोणमितीय त्रुटियों के प्रति बहुत संवेदनशील है) की सटीकता को'''  
'''यह है कि फ्लाई पर त्रिकोणमितीय मानों की गणना करने के लिए पुनरावृत्ति सूत्र का उपयोग किया जाए। एफएफटी (जो त्रिकोणमितीय त्रुटियों के प्रति बहुत संवेदनशील है) की स्पष्ट को'''  


== एक त्वरित, लेकिन गलत, सन्निकटन ==
== एक त्वरित, किन्तु गलत, सन्निकटन ==


[[sine|sin]](2Pi|πn/N) के लिए N सन्निकटन s<sub>''n''</sub> और cos(2πn/N) के लिए c<sub>''n''</sub>  की तालिका की गणना करने के लिए एक त्वरित, लेकिन गलत एल्गोरिथम  है:
[[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 41: Line 41:
n = 0,...,N − 1 के लिए, जहां d = 2π/N.
n = 0,...,N − 1 के लिए, जहां d = 2π/N.


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


:<math>ds/dt = c</math>
:<math>ds/dt = c</math>
Line 47: Line 47:
प्रारंभिक स्थितियों के साथ s(0) = 0 और c(0) = 1, जिसका विश्लेषणात्मक समाधान s = sin(t) और c = cos(t) है।
प्रारंभिक स्थितियों के साथ s(0) = 0 और c(0) = 1, जिसका विश्लेषणात्मक समाधान s = sin(t) और c = cos(t) है।


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


उदाहरण के लिए, 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 (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 63: Line 61:
:सी<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 − 1 के लिए, जहाँ w<sub>''r''</sub> = cos(2π/N) और  w<sub>''i''</sub> =  sin(2π/N)। ये दो शुरुआती त्रिकोणमितीय मान आमतौर पर मौजूदा पुस्तकालय कार्यों का उपयोग करके गणना किए जाते हैं (लेकिन यह भी पाया जा सकता है जैसे z<sup>N− 1</sup> की एकता की आदिम जड़ को हल करने के लिए जटिल विमान में न्यूटन की विधि को नियोजित करके ).|
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 74: Line 72:
:एस<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 sin<sup>2</sup>(π/N) और β = sin(2π/N). इस पद्धति की त्रुटियां बहुत छोटी हैं,  O(ε √N) औसतन और सबसे खराब स्थिति में O(ε N), लेकिन यह अभी भी काफी बड़ी है जो बड़े आकार के FFTs की सटीकता को काफी  कम कर देती है।
जहां α = 2 sin<sup>2</sup>(π/N) और β = sin(2π/N). इस पद्धति की त्रुटियां बहुत छोटी हैं,  O(ε √N) औसतन और सबसे खराब स्थिति में O(ε N), किन्तु यह अभी भी अधिक बड़ी है जो बड़े आकार के एफएफटी की स्पष्ट को   कम कर देती है।


== यह भी देखें ==
== यह भी देखें ==
* आर्यभट्ट की साइन टेबल
* आर्यभट्ट की साइन टेबल
* कॉर्डिक
* कॉर्डिक
* [[सटीक त्रिकोणमितीय मान]]
* [[सटीक त्रिकोणमितीय मान|स्पष्ट त्रिकोणमितीय मान]]
* माधव की ज्या तालिका
* माधव की ज्या तालिका
*[[संख्यात्मक विश्लेषण]]
*[[संख्यात्मक विश्लेषण]]

Revision as of 15:15, 20 April 2023

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

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

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

ऑन-डिमांड संगणना

गणितीय तालिकाओं की 1619 पुस्तक का एक पृष्ठ।

आधुनिक कंप्यूटर और कैलकुलेटर इच्छानुसार कोणों के लिए मांग पर त्रिकोणमितीय फलन मान प्रदान करने के लिए कई प्रकार की विधियों का उपयोग करते हैं (कंटाबुत्र, 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 गुना छोटा। यदि प्राप्त साइन और कोसाइन मूल्यों को प्लॉट किया जाना था, तो यह एल्गोरिथम एक वृत्त के बजाय लॉगरिदमिक सर्पिल खींचेगा।

एक बेहतर, किन्तु अभी भी अपूर्ण, पुनरावृत्ति सूत्र

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

उपरोक्त के अनुसार त्रिकोणमितीय मानों 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), किन्तु यह अभी भी अधिक बड़ी है जो बड़े आकार के एफएफटी की स्पष्ट को कम कर देती है।

यह भी देखें

संदर्भ

  • 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.