त्रिकोणमितीय तालिकाएँ: Difference between revisions
Line 6: | Line 6: | ||
आधुनिक कंप्यूटर और पॉकेट कैलकुलेटर अब गणितीय कोड के विशेष पुस्तकालयों का उपयोग करके मांग पर त्रिकोणमितीय फलन मान उत्पन्न करते हैं। प्रायः, ये पुस्तकालय आंतरिक रूप से पूर्व-गणना की गई तालिकाओं का उपयोग करते हैं, और उचित [[ प्रक्षेप |प्रक्षेप]] विधि का उपयोग करके आवश्यक मान की गणना करते हैं। त्रिकोणमितीय कार्यों की सरल लुक-अप तालिकाओं का प्रक्षेप अभी भी [[ कंप्यूटर चित्रलेख |कंप्यूटर आरेखों]] में उपयोग की जाती है, जहां मात्र साधारण सटीकता की आवश्यकता हो सकती है और गति प्रायः सर्वोपरि होती है। | आधुनिक कंप्यूटर और पॉकेट कैलकुलेटर अब गणितीय कोड के विशेष पुस्तकालयों का उपयोग करके मांग पर त्रिकोणमितीय फलन मान उत्पन्न करते हैं। प्रायः, ये पुस्तकालय आंतरिक रूप से पूर्व-गणना की गई तालिकाओं का उपयोग करते हैं, और उचित [[ प्रक्षेप |प्रक्षेप]] विधि का उपयोग करके आवश्यक मान की गणना करते हैं। त्रिकोणमितीय कार्यों की सरल लुक-अप तालिकाओं का प्रक्षेप अभी भी [[ कंप्यूटर चित्रलेख |कंप्यूटर आरेखों]] में उपयोग की जाती है, जहां मात्र साधारण सटीकता की आवश्यकता हो सकती है और गति प्रायः सर्वोपरि होती है। | ||
त्रिकोणमितीय तालिकाओं और पीढ़ी योजनाओं का एक अन्य महत्वपूर्ण अनुप्रयोग [[फास्ट फूरियर ट्रांसफॉर्म]] (एफएफटी) कलन-विधि के लिए है, जहां एक ही त्रिकोणमितीय फलन मान का मूल्यांकन किसी दिए गए परिवर्तन में कई बार की जा सकती, विशेष रूप से ऐसे स्थितियों में जहां एक ही आकार के कई परिवर्तनों की गणना की जाती है। इस स्थिति में, प्रत्येक बार सामान्य पुस्तकालय रूटीन को कॉल करना अस्वीकार्य रूप से धीमी होती है। एक विकल्प उन त्रिकोणमितीय मानों की एक तालिका बनाने के लिए पुस्तकालय रूटीन को एक बार कॉल करना है जिनकी आवश्यकता होती है, परंतु तालिका को संग्रहीत करने के लिए महत्वपूर्ण मेमोरी की आवश्यकता होती है। दूसरी संभावना, चूंकि मानों के एक नियमित अनुक्रम की आवश्यकता होती है, तुरंत त्रिकोणमितीय मानों की गणना करने के लिए पुनरावृत्ति सूत्र का उपयोग करना है। एफएफटी की सटीकता को संरक्षित करने के लिए सटीक, स्थिर पुनरावृत्ति योजनाओं को खोजने के लिए महत्वपूर्ण शोध समर्पित किया गया है। | त्रिकोणमितीय तालिकाओं और पीढ़ी योजनाओं का एक अन्य महत्वपूर्ण अनुप्रयोग [[फास्ट फूरियर ट्रांसफॉर्म]] (एफएफटी) कलन-विधि के लिए है, जहां एक ही त्रिकोणमितीय फलन मान का मूल्यांकन किसी दिए गए परिवर्तन में कई बार की जा सकती है, विशेष रूप से ऐसे स्थितियों में जहां एक ही आकार के कई परिवर्तनों की गणना की जाती है। इस स्थिति में, प्रत्येक बार सामान्य पुस्तकालय रूटीन को कॉल करना अस्वीकार्य रूप से धीमी होती है। एक विकल्प उन त्रिकोणमितीय मानों की एक तालिका बनाने के लिए पुस्तकालय रूटीन को एक बार कॉल करना है जिनकी आवश्यकता होती है, परंतु तालिका को संग्रहीत करने के लिए महत्वपूर्ण मेमोरी की आवश्यकता होती है। दूसरी संभावना, चूंकि मानों के एक नियमित अनुक्रम की आवश्यकता होती है, तुरंत त्रिकोणमितीय मानों की गणना करने के लिए पुनरावृत्ति सूत्र का उपयोग करना है। एफएफटी की सटीकता को संरक्षित करने के लिए सटीक, स्थिर पुनरावृत्ति योजनाओं को खोजने के लिए महत्वपूर्ण शोध समर्पित किया गया है। | ||
== मांग पर गणना == | == मांग पर गणना == | ||
Line 33: | Line 33: | ||
इन पहचानों पर कई अन्य क्रमपरिवर्तन संभव हैं: उदाहरण के लिए, कुछ प्रारंभिक त्रिकोणमितीय तालिकाओं में साइन और कोसाइन का नहीं, बल्कि साइन और [[उसका संस्करण]] का उपयोग किया जाता है। | इन पहचानों पर कई अन्य क्रमपरिवर्तन संभव हैं: उदाहरण के लिए, कुछ प्रारंभिक त्रिकोणमितीय तालिकाओं में साइन और कोसाइन का नहीं, बल्कि साइन और [[उसका संस्करण]] का उपयोग किया जाता है। | ||
== एक त्वरित, परंतु | == एक त्वरित, परंतु अशुद्ध, अनुमान == | ||
N के लिए sin(2πn/N) और cos(2πn/N) की N अनुमानित मानों की एक सारणी निर्धारित करने के लिए एक त्वरित, | N के लिए sin(2πn/N) और cos(2πn/N) की N अनुमानित मानों की एक सारणी निर्धारित करने के लिए एक त्वरित, परंतु अशुद्ध, कलन-विधि इस प्रकार हो सकता है: | ||
:''s''<sub>0</sub> = 0 | :''s''<sub>0</sub> = 0 | ||
Line 51: | Line 51: | ||
दुर्भाग्यवश, यह साइन सारणिकाओं की उत्पत्ति के लिए एक उपयोगी कलनविधि नहीं है क्योंकि इसमें 1/N के अनुपात में महत्वपूर्ण त्रुटि होती है। | दुर्भाग्यवश, यह साइन सारणिकाओं की उत्पत्ति के लिए एक उपयोगी कलनविधि नहीं है क्योंकि इसमें 1/N के अनुपात में महत्वपूर्ण त्रुटि होती है। | ||
उदाहरण के लिए, N = 256 के लिए साइन मानों में अधिकतम त्रुटि लगभग 0.061 है। N = 1024 के लिए साइन मानों में अधिकतम त्रुटि लगभग 0.015 है, जो | उदाहरण के लिए, N = 256 के लिए साइन मानों में अधिकतम त्रुटि लगभग 0.061 है। N = 1024 के लिए साइन मानों में अधिकतम त्रुटि लगभग 0.015 है, जो लगभग 4 गुना छोटी है यदि प्राप्त किए गए साइन और कोसाइन मानों को चित्रित किया जाए, तो यह कलन विधि एक लघुगणकीय घुमावदार वृत्त के बदले मे एक लघुगणकीय सर्पिल रेखा बनाएगा। | ||
== एक बेहतर, परंतु | == एक बेहतर, परंतु अभी भी अपूर्ण, पुनरावृत्ति सूत्र == | ||
त्रिकोणमितीय | त्रिकोणमितीय सारणिकाओं की उत्पत्ति के लिए एक सरल पुनरावृत्ति सूत्र यूलर के सूत्र और निम्न संबंध पर आधारित हो सकता है: | ||
:<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> की गणना की जा सके: | ||
: | :c<sub>0</sub> = 1 | ||
: | :s<sub>0</sub> = 0 | ||
: | :c<sub>''n''+1</sub> = ''w<sub>r</sub>'' c<sub>''n''</sub> − ''w<sub>i</sub>'' s<sub>''n''</sub> | ||
: | :s<sub>''n''+1</sub> = ''w<sub>i</sub>'' c<sub>''n''</sub> + ''w<sub>r</sub>'' s<sub>''n''</sub> | ||
n = 0, ..., N − 1 के लिए, जहां | n = 0, ..., N − 1 के लिए, जहां wr = cos(2π/N) और wi = sin(2π/N), यहां दिए गए पुनरावृत्ति का उपयोग किया जाता है: ये दो प्रारंभिक त्रिकोणमितीय मान सामान्यतः उपस्थित पुस्तकालय फलन का उपयोग करके निर्धारित किए जाते हैं। वैकल्पिक रूप से, ये मान zN − 1 की मूलांकन तल में न्यूटन के उपयोग से भी प्राप्त किए जा सकते हैं। | ||
यह विधि | यह विधि निश्चित अंकगणित में एक सटीक सारणी उत्पन्न करेगी, परंतु यह सीमित परिसंख्या अस्थिर-बिन्दु अंकगणित में त्रुटियां पैदा करेगी। वास्तव में, त्रुटियां O(ε N) के रूप में बढ़ती हैं, यहाँ पर ε अस्थिर-बिन्दु परिशुद्धता है। | ||
एक महत्वपूर्ण सुधार उपरोक्त में निम्नलिखित संशोधन का उपयोग करना है, एक ट्रिक (सिंगलटन के कारण)।<ref>{{harvnb|Singleton|1967}}</ref>) अक्सर एफएफटी कार्यान्वयन के लिए त्रिकोणमितीय मान उत्पन्न करने के लिए उपयोग किया जाता है: | एक महत्वपूर्ण सुधार उपरोक्त में निम्नलिखित संशोधन का उपयोग करना है, एक ट्रिक (सिंगलटन के कारण)।<ref>{{harvnb|Singleton|1967}}</ref>) अक्सर एफएफटी कार्यान्वयन के लिए त्रिकोणमितीय मान उत्पन्न करने के लिए उपयोग किया जाता है: | ||
: | :c<sub>0</sub> = 1 | ||
: | :s<sub>0</sub> = 0 | ||
: | : <sub>''cn''+1</sub> = c<sub>''n''</sub>− (α ''c<sub>n</sub>''+ β ''s<sub>n</sub>'') | ||
: | :s<sub>''n''+1</sub> = s<sub>''n''</sub>+ (β ''c<sub>n</sub>''−α s<sub>''n''</sub>) | ||
जहाँ α = 2 sin2(π/N) और β = sin(2π/N) हैं। इस विधि की त्रुटियां औसत में बहुत कम होती हैं, O(ε √N) और अधिकतम स्थितियों में O(ε N), परंतु इसकी मात्रा बड़ी आकार के एफएफटी की सटीकता को अत्यधिक क्षति पहुंचाने के लिए पर्याप्त है। | |||
== यह भी देखें == | == यह भी देखें == |
Revision as of 11:15, 10 July 2023
त्रिकोणमिति |
---|
संदर्भ |
कानून और सिद्धांत |
पथरी |
गणित में, त्रिकोणमितीय फलनो की सारणिका कई क्षेत्रों में उपयोगी होते हैं। पॉकेट कैलकुलेटर के अस्तित्व से पहले, वायुयान-संचालन, विज्ञान और अभियांत्रिकी के लिए त्रिकोणमितीय सारणिकाओं की आवश्यकता थी। गणितीय सारणिकाओं की गणना अध्ययन का एक महत्वपूर्ण अध्ययन क्षेत्र थी, जिससे पहले मैकेनिकल कंप्यूटिंग उपकरणों के विकास की प्रेरणा मिली।
आधुनिक कंप्यूटर और पॉकेट कैलकुलेटर अब गणितीय कोड के विशेष पुस्तकालयों का उपयोग करके मांग पर त्रिकोणमितीय फलन मान उत्पन्न करते हैं। प्रायः, ये पुस्तकालय आंतरिक रूप से पूर्व-गणना की गई तालिकाओं का उपयोग करते हैं, और उचित प्रक्षेप विधि का उपयोग करके आवश्यक मान की गणना करते हैं। त्रिकोणमितीय कार्यों की सरल लुक-अप तालिकाओं का प्रक्षेप अभी भी कंप्यूटर आरेखों में उपयोग की जाती है, जहां मात्र साधारण सटीकता की आवश्यकता हो सकती है और गति प्रायः सर्वोपरि होती है।
त्रिकोणमितीय तालिकाओं और पीढ़ी योजनाओं का एक अन्य महत्वपूर्ण अनुप्रयोग फास्ट फूरियर ट्रांसफॉर्म (एफएफटी) कलन-विधि के लिए है, जहां एक ही त्रिकोणमितीय फलन मान का मूल्यांकन किसी दिए गए परिवर्तन में कई बार की जा सकती है, विशेष रूप से ऐसे स्थितियों में जहां एक ही आकार के कई परिवर्तनों की गणना की जाती है। इस स्थिति में, प्रत्येक बार सामान्य पुस्तकालय रूटीन को कॉल करना अस्वीकार्य रूप से धीमी होती है। एक विकल्प उन त्रिकोणमितीय मानों की एक तालिका बनाने के लिए पुस्तकालय रूटीन को एक बार कॉल करना है जिनकी आवश्यकता होती है, परंतु तालिका को संग्रहीत करने के लिए महत्वपूर्ण मेमोरी की आवश्यकता होती है। दूसरी संभावना, चूंकि मानों के एक नियमित अनुक्रम की आवश्यकता होती है, तुरंत त्रिकोणमितीय मानों की गणना करने के लिए पुनरावृत्ति सूत्र का उपयोग करना है। एफएफटी की सटीकता को संरक्षित करने के लिए सटीक, स्थिर पुनरावृत्ति योजनाओं को खोजने के लिए महत्वपूर्ण शोध समर्पित किया गया है।
मांग पर गणना
आधुनिक कंप्यूटर और कैलकुलेटर यादृच्छिक कोणों की मांग पर त्रिकोणमितीय फलनों के मान प्रदान करने के लिए विभिन्न तकनीकों का उपयोग करते हैं।
एक सामान्य विधि, विशेषकर अस्थिर बिंदु इकाई वाले उच्च-स्तरीय प्रोसेसरों पर, बहुपद या विभाजनशील अनुमापन के साथ सीमा संक्षेप और एक सारणिका खोज का संयोजन करते है, वे पहले छोटी सारणिका में निकटतम कोण देखते हैं, और पुनः सुधार की गणना करने के लिए बहुपद का उपयोग करते हैं। इस प्रकार की अंतर्वलना करते समय मानकता को बनाए रखना कठिन होता है, परंतु गैल की सटीक सारणिकाएँ, कोडी और वेट सीमा संक्षेप,और पेन और हेनेक रेडियन संक्षेप कलन-विधि जैसी विधियाँ इस उद्देश्य के लिए उपयोग में लाई जा सकती हैं। सरल उपकरणों पर जो हार्डवेयर मल्टीप्लायर के अभाव में होते हैं, वहां कॉरडिक नामक एक कलन-विधि होता है जो अधिक कुशल होता है, क्योंकि इसमें केवल स्थानान्तरण और जोड़ का ही उपयोग होता है। ये सभी विधियाँ सामान्यतः प्रदर्शन कारणों से कंप्यूटर हार्डवेयर में लागू की जाती हैं।
त्रिकोणमितीय फलन को अनुमापित करने के लिए उपयोगी विशेष बहुपद पहले ही किसी मिनिमैक्स अनुमापन कलन-विधि के कुछ अनुमापन का उपयोग करके पूर्व में तैयार किया जाता है।
बहुत उच्च सत्यापन की गणनाओं के लिए, जब श्रृंखला-विस्तार संघटन धीमी हो जाती है, तो त्रिकोणमितीय फलनों कोअंकगणित-ज्यामितीय माध्य द्वारा अनुमापित किया जा सकता है, जो स्वयं त्रिकोणमितीय ध्रुवीय अविभाज्य ब्रेंट, 1976 द्वारा त्रिकोणमितीय फलन का अनुमान लगाता है। कोणों के त्रिकोणमितीय फलन जो 2π के परिमेय संख्या गुणज हैं, बीजगणितीय संख्याएँ हैं।यहां a/b·2π के मान डी मोइवरे की तर्कप्रमाण का उपयोग करके प्राप्त किए जा सकते हैं, जहां n = a के लिए एक bवीं ध्रुवीयता एकता के लिए लागू होती है, जो कि बहुपद xb - 1 की भी एक मूल होती है। उदाहरण के लिए, 2π ⋅ 5/37 के कोज्या और ज्या यही हैं। 37वीं ध्रुवीयता की पांचवीं घात जिसकी वास्तविक और काल्पनिक भाग होते हैं जो बहुपद में x37 − 1 की एक मूल हैं, जिसमें cos(2π/37) + sin(2π/37)i पाया जाता है।
इस स्थिति के लिए, न्यूटन का कलनविधि जैसे मूल खोजने की तकनीक पहले उपरोक्त अंकगणितीय-ज्यामितीय मान कलनविधियो की तुलना में बहुत सरल होता है जबकि एक समानांतरी दर के साथ संक्षेपण करता है। यद्यपि, अंतरवाही त्रिकोणमितीय स्थायी मानों के लिए उपरोक्त कलनविधियो का उपयोग आवश्यक होता है।
अर्ध-कोण और कोण-जोड़ सूत्र
ऐतिहासिक रूप से, त्रिकोणमितीय सारणिका की गणना का सबसे प्राचीन तरीका, और शायद सबसे सामान्य तरीका जब तक कंप्यूटरों का आविष्कार नहीं हुआ था, वह था आधा-कोण और कोण-जोड़ने त्रिकोणमितीय तात्कालिकताओं को बार-बार लागू करते हुए एक ज्ञात मान से कि sin(π/2) = 1, cos(π/2) = 0 से प्रारंभ करना था।
इस पद्धति का उपयोग प्राचीन खगोलशास्त्री टॉलेमी द्वारा किया गया था, जिन्होंने उन्हें खगोल विज्ञान पर एक ग्रंथ, अल्मागेस्ट में प्राप्त किया था। आधुनिक रूप में, उनके द्वारा प्राप्त पहचानों को इस प्रकार बताया गया है, जिसमें x के चतुष्पद के आधार पर निर्धारित चिन्ह होते हैं:
इनका उपयोग टॉलेमी की तारों की तालिका के निर्माण के लिए किया गया था, जिसे खगोलीय समस्याओं पर लागू किया गया था।
इन पहचानों पर कई अन्य क्रमपरिवर्तन संभव हैं: उदाहरण के लिए, कुछ प्रारंभिक त्रिकोणमितीय तालिकाओं में साइन और कोसाइन का नहीं, बल्कि साइन और उसका संस्करण का उपयोग किया जाता है।
एक त्वरित, परंतु अशुद्ध, अनुमान
N के लिए sin(2πn/N) और cos(2πn/N) की N अनुमानित मानों की एक सारणी निर्धारित करने के लिए एक त्वरित, परंतु अशुद्ध, कलन-विधि इस प्रकार हो सकता है:
- s0 = 0
- c0 = 1
- sn+1 = sn + d × cn
- cn+1 = cn - d × sn
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 है। N = 1024 के लिए साइन मानों में अधिकतम त्रुटि लगभग 0.015 है, जो लगभग 4 गुना छोटी है यदि प्राप्त किए गए साइन और कोसाइन मानों को चित्रित किया जाए, तो यह कलन विधि एक लघुगणकीय घुमावदार वृत्त के बदले मे एक लघुगणकीय सर्पिल रेखा बनाएगा।
एक बेहतर, परंतु अभी भी अपूर्ण, पुनरावृत्ति सूत्र
त्रिकोणमितीय सारणिकाओं की उत्पत्ति के लिए एक सरल पुनरावृत्ति सूत्र यूलर के सूत्र और निम्न संबंध पर आधारित हो सकता है:
इससे निम्नलिखित पुनरावृत्ति प्राप्त करते हैं ताकि उपरोक्त त्रिकोणमितीय मान snऔर cn की गणना की जा सके:
- c0 = 1
- s0 = 0
- cn+1 = wr cn − wi sn
- sn+1 = wi cn + wr sn
n = 0, ..., N − 1 के लिए, जहां wr = cos(2π/N) और wi = sin(2π/N), यहां दिए गए पुनरावृत्ति का उपयोग किया जाता है: ये दो प्रारंभिक त्रिकोणमितीय मान सामान्यतः उपस्थित पुस्तकालय फलन का उपयोग करके निर्धारित किए जाते हैं। वैकल्पिक रूप से, ये मान zN − 1 की मूलांकन तल में न्यूटन के उपयोग से भी प्राप्त किए जा सकते हैं।
यह विधि निश्चित अंकगणित में एक सटीक सारणी उत्पन्न करेगी, परंतु यह सीमित परिसंख्या अस्थिर-बिन्दु अंकगणित में त्रुटियां पैदा करेगी। वास्तव में, त्रुटियां O(ε N) के रूप में बढ़ती हैं, यहाँ पर ε अस्थिर-बिन्दु परिशुद्धता है।
एक महत्वपूर्ण सुधार उपरोक्त में निम्नलिखित संशोधन का उपयोग करना है, एक ट्रिक (सिंगलटन के कारण)।[1]) अक्सर एफएफटी कार्यान्वयन के लिए त्रिकोणमितीय मान उत्पन्न करने के लिए उपयोग किया जाता है:
- c0 = 1
- s0 = 0
- cn+1 = cn− (α cn+ β sn)
- sn+1 = sn+ (β cn−α sn)
जहाँ α = 2 sin2(π/N) और β = sin(2π/N) हैं। इस विधि की त्रुटियां औसत में बहुत कम होती हैं, O(ε √N) और अधिकतम स्थितियों में O(ε N), परंतु इसकी मात्रा बड़ी आकार के एफएफटी की सटीकता को अत्यधिक क्षति पहुंचाने के लिए पर्याप्त है।
यह भी देखें
- आर्यभट्ट की साइन टेबल
- कॉर्डिक
- सटीक त्रिकोणमितीय मान
- माधव की ज्या तालिका
- संख्यात्मक विश्लेषण
- प्लिम्पटन 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.