पायथागॉरियन जोड़

From alpha
Jump to navigation Jump to search

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

कहाँ पे पायथागॉरियन जोड़ ऑपरेशन को दर्शाता है।[1] इस ऑपरेशन का उपयोग कार्टेशियन निर्देशांक को ध्रुवीय निर्देशांक में बदलने में किया जा सकता है। यह कुछ सूत्रों के लिए एक सरल संकेतन और शब्दावली भी प्रदान करता है, जब इसके सारांश जटिल होते हैं; उदाहरण के लिए, भौतिकी में ऊर्जा-संवेग संबंध बन जाता है
यह कई प्रोग्रामिंग पुस्तकालयों में हाइपोट फ़ंक्शन के रूप में लागू किया गया है, एक तरह से कंप्यूटर पर सीमित-सटीक गणनाओं के कारण उत्पन्न होने वाली त्रुटियों से बचने के लिए डिज़ाइन किया गया है। सिग्नल प्रोसेसिंग और माप अनिश्चितता की अनिश्चितता के प्रसार के लिए इसके अनुप्रयोगों में, उसी ऑपरेशन को चतुर्भुज में जोड़ भी कहा जाता है।[2]


अनुप्रयोग

ऑर्थोगोनल वैक्टर के वेक्टर जोड़ का उपयोग करके स्वतंत्र त्रुटियों के पायथागॉरियन जोड़ का उदाहरण

पायथागॉरियन जोड़ (और हाइपोट फ़ंक्शन के रूप में इसका कार्यान्वयन) अक्सर कार्टेशियन समन्वय प्रणाली से परिवर्तित करने के लिए atan2 फ़ंक्शन के साथ प्रयोग किया जाता है ध्रुवीय समन्वय प्रणाली के लिए :[3][4]

यदि माप स्वतंत्र त्रुटियाँ हैं क्रमशः, द्विघात विधि समग्र त्रुटि देती है,
जबकि समग्र त्रुटि की ऊपरी सीमा है
अगर त्रुटियां स्वतंत्र नहीं थीं।[5] यह पाइथागोरस प्रमेय का उपयोग करते हुए, ऑर्थोगोनल वैक्टर को जोड़ने के परिणाम के परिमाण (गणित) #वेक्टर रिक्त स्थान खोजने के बराबर है, प्रत्येक अनिश्चितता के बराबर परिमाण के साथ।

सिग्नल प्रोसेसिंग में, शोर के स्वतंत्र स्रोतों से समग्र शोर को खोजने के लिए चतुर्भुज में जोड़ का उपयोग किया जाता है। उदाहरण के लिए, यदि एक छवि संवेदक शॉट शोर के छह एनालॉग-टू-डिजिटल कन्वर्टर्स, तीन डार्क करंट (भौतिकी) और दो जॉनसन-निक्विस्ट शोर एक विशिष्ट स्थिति के तहत देता है, तो समग्र शोर है

डिजिटल नंबर,[6] शोर के बड़े स्रोतों का प्रभुत्व दिखा रहा है।

गुण

आपरेशन साहचर्य और क्रमविनिमेय है,[7] तथा

इसका मतलब है कि वास्तविक संख्या के तहत एक अर्धसमूह बनाएं।

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

कार्यान्वयन

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

बहुत बड़े या छोटे मानों के वर्ग तथा कंप्यूटर पर गणना करते समय मशीन परिशुद्धता की सीमा से अधिक हो सकती है, जिससे अंकगणितीय अंतर्प्रवाह और/या अंकगणितीय अतिप्रवाह के कारण गलत परिणाम हो सकता है। हाइपोट फ़ंक्शन को इस समस्या के बिना परिणाम की गणना करने के लिए डिज़ाइन किया गया था।[8] यदि हाइपोट का कोई भी इनपुट अनंत है, तो परिणाम अनंत है। क्योंकि यह अन्य इनपुट के सभी संभावित मानों के लिए सत्य है, IEEE 754 फ़्लोटिंग-पॉइंट मानक के लिए यह आवश्यक है कि यह तब भी सही रहे जब अन्य इनपुट संख्या (NaN) न हो।[9] C++17 के बाद से, 3D गणनाओं के लिए एक अतिरिक्त हाइपोट फ़ंक्शन रहा है:[10]


गणना क्रम

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

की गणना जब तक दोनों नहीं बह सकते तथा शून्य हैं। यदि अंडरफ्लो, अंतिम परिणाम के बराबर है , जो गणना की शुद्धता के भीतर सही है। वर्गमूल की गणना 1 और 2 के बीच के मान से की जाती है। अंत में, गुणा करके अंडरफ्लो नहीं हो सकता है, और केवल तभी ओवरफ्लो होता है जब परिणाम प्रतिनिधित्व करने के लिए बहुत बड़ा होता है।[8] इस कार्यान्वयन का नकारात्मक पक्ष यह है कि इसके लिए एक अतिरिक्त फ़्लोटिंग-पॉइंट डिवीजन की आवश्यकता होती है, जो सहज कार्यान्वयन की लागत को दोगुना कर सकता है, क्योंकि गुणा और जोड़ आमतौर पर विभाजन और वर्गमूल की तुलना में बहुत तेज़ होते हैं। आमतौर पर, कार्यान्वयन 2.5 से 3 के कारक से धीमा होता है।[11] अधिक जटिल कार्यान्वयन इनपुट को अधिक मामलों में विभाजित करके इससे बचते हैं:

  • कब से बहुत बड़ा है , , मशीन परिशुद्धता के भीतर।
  • कब अतिप्रवाह, दोनों को गुणा करें तथा एक छोटे स्केलिंग कारक द्वारा (उदाहरण के लिए 2−64 आईईईई एकल परिशुद्धता के लिए), सहज एल्गोरिदम का उपयोग करें जो अब अतिप्रवाह नहीं करेगा, और परिणाम को (बड़े) व्युत्क्रम से गुणा करें (उदाहरण 264).
  • कब अंडरफ्लो, ऊपर के रूप में स्केल करें लेकिन मध्यवर्ती मानों को स्केल करने के लिए स्केलिंग कारकों को उलट दें।
  • अन्यथा, भोली एल्गोरिथ्म उपयोग करने के लिए सुरक्षित है।

हालाँकि, यह कार्यान्वयन बेहद धीमा है जब यह अलग-अलग मामलों के कारण गलत छलांग की भविष्यवाणी करता है। अतिरिक्त तकनीकें परिणाम को अधिक सटीक रूप से गणना करने की अनुमति देती हैं, उदा। अंतिम स्थान पर एक इकाई से कम।[8]


प्रोग्रामिंग भाषा समर्थन

समारोह सहित कई प्रोग्रामिंग भाषाओं और पुस्तकालयों में मौजूद है सीएसएस,[12] सी++11,[13] डी (प्रोग्रामिंग भाषा),[14] जाओ (प्रोग्रामिंग भाषा),[15] जावास्क्रिप्ट (ES2015 के बाद से),[16] जूलिया (प्रोग्रामिंग भाषा),[17] जावा (प्रोग्रामिंग भाषा) (संस्करण 1.5 से),[18] कोटलिन (प्रोग्रामिंग भाषा),[19] मतलब,[20] पीएचपी,[21] पायथन (प्रोग्रामिंग भाषा),[22] रूबी (प्रोग्रामिंग भाषा),[23] जंग (प्रोग्रामिंग भाषा),[24] और स्काला (प्रोग्रामिंग भाषा)।[25]


यह भी देखें

  • यूक्लिडियन दूरी
  • अल्फा मैक्स प्लस बीटा मिन एल्गोरिथम
  • Metafont में पाइथागोरस का जोड़ और घटाव अंतर्निहित संचालन के रूप में, नामों के तहत है ++ तथा +-+ क्रमश।

संदर्भ

  1. Moler, Cleve; Morrison, Donald (1983). "Replacing square roots by Pythagorean sums". IBM Journal of Research and Development. 27 (6): 577–581. CiteSeerX 10.1.1.90.5651. doi:10.1147/rd.276.0577.
  2. Johnson, David L. (2017). "12.2.3 Addition in Quadrature". Statistical Tools for the Comprehensive Practice of Industrial Hygiene and Environmental Health Sciences. John Wiley & Sons. p. 289. ISBN 9781119143017.
  3. "SIN (3M): Trigonometric functions and their inverses". Unix Programmer's Manual: Reference Guide (4.3 Berkeley Software Distribution Virtual VAX-11 Version ed.). Department of Electrical Engineering and Computer Science, University of California, Berkeley. April 1986.
  4. Beebe, Nelson H. F. (2017). The Mathematical-Function Computation Handbook: Programming Using the MathCW Portable Software Library. Springer. p. 70. ISBN 9783319641102.
  5. D.B. Schneider, Error Analysis in Measuring Systems, Proceedings of the 1962 Standards Laboratory Conference, page 94
  6. J.T. Bushberg et al, The Essential Physics of Medical Imaging, section 10.2.7, Wolters Kluwer Health
  7. Falmagne, Jean-Claude (2015). "Deriving meaningful scientific laws from abstract, "gedanken" type, axioms: five examples". Aequationes Mathematicae. 89 (2): 393–435. doi:10.1007/s00010-015-0339-1. MR 3340218. S2CID 121424613.
  8. 8.0 8.1 8.2 Borges, Carlos F. (2021), "Algorithm 1014: An Improved Algorithm for hypot(x, y)", ACM Transactions on Mathematical Software, 47 (1): 9:1–9:12, arXiv:1904.09481, doi:10.1145/3428446
  9. Fog, Agner (2020-04-27). "Floating point exception tracking and NAN propagation" (PDF). p. 6.
  10. Common mathematical functions std::hypot, std::hypotf, std::hypotl
  11. Measured on ARM and x64 (Intel and AMD) for different compilers with maximum optimization for 32 bit and 64 bit floats.
  12. Cimpanu, Catalin. "CSS to get support for trigonometry functions". ZDNet. Retrieved 2019-11-01.
  13. "Hypot - C++ Reference".
  14. "STD.math - D Programming Language".
  15. "Math package - math - PKG.go.dev".
  16. "Math.hypot() - JavaScript | MDN".
  17. "Mathematics · the Julia Language".
  18. "Math (Java 2 Platform SE 5.0)".
  19. "hypot - Kotlin Programming Language". Kotlin. Retrieved 2018-03-19.
  20. "Square root of sum of squares (Hypotenuse) - MATLAB hypot - MathWorks Benelux".
  21. "PHP: Hypot - Manual".
  22. "Math — Mathematical functions — Python 3.9.7 documentation".
  23. "Module: Math (Ruby 3.0.2)".
  24. "F64 - Rust".
  25. "Scala Standard Library 2.13.6 - scala.math".


इस पेज में लापता आंतरिक लिंक की सूची

अग्रिम पठन