राउंड-ऑफ़ एरर: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 3: Line 3:
{{Use dmy dates|date=August 2019|cs1-dates=y}}
{{Use dmy dates|date=August 2019|cs1-dates=y}}


[[ कम्प्यूटिंग |अभिकलन]] में, एक राउंडऑफ़ त्रुटि,<ref>{{citation |title=Introduction to Numerical Analysis Using MATLAB |author-first=Rizwan |author-last=Butt |publisher=Jones & Bartlett Learning |date=2009 |isbn=978-0-76377376-2 |pages=11–18 |url=https://books.google.com/books?id=QWub-UVGxqkC&pg=PA11}}</ref> इसे पूर्णांकन त्रुटि भी कहा जाता है,<ref>{{citation |title=Numerical Computation 1: Methods, Software, and Analysis |author-first=Christoph W. |author-last=Ueberhuber |publisher=Springer |date=1997 |isbn=978-3-54062058-7 |url=https://books.google.com/books?id=JH9I7EJh3JUC&pg=PA139 |pages=139–146}}</ref> सटीक [[अंकगणित]] का उपयोग करके किसी दिए गए [[कलन विधि]] द्वारा उत्पादित परिणाम और परिमित-परिशुद्धता, [[ गोलाई ]] अंकगणित का उपयोग करके समान कलन विधि द्वारा उत्पादित परिणाम के बीच का अंतर है।<ref name="Forrester_2018">{{cite book |title= गणित/Comp241 संख्यात्मक विधियाँ (व्याख्यान नोट्स)|author-first=Dick |author-last=Forrester |publisher=[[Dickinson College]] |date=2018}}</ref> पूर्णांकन त्रुटियाँ [[वास्तविक संख्या]]ओं के निरूपण और उनके साथ किए गए अंकगणितीय संक्रियाओं में अशुद्धि के कारण होती हैं। यह [[परिमाणीकरण त्रुटि]] का एक रूप है। सन्निकटन [[समीकरण]]ों या कलन विधि का उपयोग करते समय, विशेष रूप से वास्तविक संख्याओं (जिनमें सिद्धांत रूप में अनंत रूप से कई अंक होते हैं) का प्रतिनिधित्व करने के लिए सीमित कई अंकों का उपयोग करते समय, [[संख्यात्मक विश्लेषण]] का एक लक्ष्य गणना त्रुटियों का [[त्रुटि विश्लेषण (गणित)]] करना है। संगणना त्रुटियाँ, जिन्हें [[संख्यात्मक त्रुटि]]याँ भी कहा जाता है, में ट्रंकेशन त्रुटियाँ और राउंडऑफ़ त्रुटियाँ दोनों सम्मिलित हैं।
[[ कम्प्यूटिंग |अभिकलन]] में, एक राउंडऑफ़ त्रुटि,<ref>{{citation |title=Introduction to Numerical Analysis Using MATLAB |author-first=Rizwan |author-last=Butt |publisher=Jones & Bartlett Learning |date=2009 |isbn=978-0-76377376-2 |pages=11–18 |url=https://books.google.com/books?id=QWub-UVGxqkC&pg=PA11}}</ref> जिसे राउंडिंग त्रुटि भी कहा जाता है,<ref>{{citation |title=Numerical Computation 1: Methods, Software, and Analysis |author-first=Christoph W. |author-last=Ueberhuber |publisher=Springer |date=1997 |isbn=978-3-54062058-7 |url=https://books.google.com/books?id=JH9I7EJh3JUC&pg=PA139 |pages=139–146}}</ref> सटीक [[अंकगणित]] का उपयोग करके दिए गए [[कलन विधि]] द्वारा उत्पादित परिणाम और परिमित-सटीक, गोलाकार अंकगणित का उपयोग करके उसी कलन विधि द्वारा उत्पादित परिणाम के मध्य का अंतर है।<ref name="Forrester_2018">{{cite book |title= गणित/Comp241 संख्यात्मक विधियाँ (व्याख्यान नोट्स)|author-first=Dick |author-last=Forrester |publisher=[[Dickinson College]] |date=2018}}</ref> राउंडिंग त्रुटियाँ [[वास्तविक संख्या|वास्तविक संख्याओं]] के निरूपण और उनके साथ किए गए अंकगणितीय संक्रियाओं में अशुद्धि के कारण होती हैं। यह [[परिमाणीकरण त्रुटि]] का एक रूप है। सन्निकटन [[समीकरण|समीकरणों]] या कलन विधियों का उपयोग करते समय, विशेष रूप से वास्तविक संख्याओं (जिनमें सिद्धांत रूप में अनंत रूप से कई अंक होते हैं) का प्रतिनिधित्व करने के लिए सीमित कई अंकों का उपयोग करते समय, [[संख्यात्मक विश्लेषण]] का एक लक्ष्य गणना त्रुटियों का [[त्रुटि विश्लेषण (गणित)|अनुमान]] लगाना है। संगणना त्रुटियाँ, जिन्हें [[संख्यात्मक त्रुटि|संख्यात्मक त्रुटियाँ]] भी कहा जाता है, जिनमें छिन्नन त्रुटियाँ और राउंडऑफ़ त्रुटियाँ दोनों सम्मिलित हैं।


जब किसी राउंडऑफ त्रुटि वाले इनपुट के साथ गणना का क्रम बनाया जाता है, तो त्रुटियां जमा हो सकती हैं, जो कभी-कभी गणना पर प्रभावी हो जाती हैं। खराब स्थिति वाली समस्याओं में, महत्वपूर्ण त्रुटि जमा हो सकती है।
जब किसी राउंडऑफ त्रुटि वाले निविष्टि के साथ गणना का क्रम बनाया जाता है, तो त्रुटियां संचित हो सकती हैं, जो कभी-कभी गणना पर प्रभावी हो जाती हैं। खराब स्थिति वाली समस्याओं में, महत्वपूर्ण त्रुटि संचित हो सकती है।


संक्षेप में, संख्यात्मक गणना में सम्मिलित राउंडऑफ़ त्रुटियों के दो प्रमुख दृष्टिकोण हैं:<ref name="Chapra_2012">{{cite book |author-last=Chapra |author-first=Steven |title=इंजीनियरों और वैज्ञानिकों के लिए MATLAB के साथ संख्यात्मक पद्धतियाँ लागू की गईं|publisher=[[McGraw Hill Education|McGraw-Hill]] |date=2012 |isbn=9780073401102 |edition=3rd}}</ref>
संक्षेप में, संख्यात्मक गणना में सम्मिलित राउंडऑफ़ त्रुटियों के दो प्रमुख दृष्टिकोण हैं:<ref name="Chapra_2012">{{cite book |author-last=Chapra |author-first=Steven |title=इंजीनियरों और वैज्ञानिकों के लिए MATLAB के साथ संख्यात्मक पद्धतियाँ लागू की गईं|publisher=[[McGraw Hill Education|McGraw-Hill]] |date=2012 |isbn=9780073401102 |edition=3rd}}</ref>
# संख्याओं के परिमाण और सटीकता दोनों को दर्शाने की अभिकलक की क्षमता स्वाभाविक रूप से सीमित है।
# संख्याओं के परिमाण और सटीकता दोनों का प्रतिनिधित्व करने की अभिकलक की क्षमता स्वाभाविक रूप से सीमित है।
# कुछ संख्यात्मक जोड़-तोड़ राउंडऑफ़ त्रुटियों के प्रति अत्यधिक संवेदनशील होते हैं। यह गणितीय विचारों के साथ-साथ अभिकलक द्वारा अंकगणितीय संचालन करने के तरीके दोनों के परिणामस्वरूप हो सकता है।
# कुछ संख्यात्मक प्रकलन राउंडऑफ़ त्रुटियों के प्रति अत्यधिक संवेदनशील होते हैं। यह गणितीय विचारों के साथ-साथ अभिकलक द्वारा अंकगणितीय संचालन करने के तरीके दोनों के परिणामस्वरूप हो सकता है।


== प्रतिनिधित्व त्रुटि ==
== प्रतिनिधित्व त्रुटि ==


अंकों की एक सीमित श्रृंखला का उपयोग करके किसी संख्या का प्रतिनिधित्व करने का प्रयास करने से उत्पन्न त्रुटि राउंडऑफ़ त्रुटि का एक रूप है जिसे प्रतिनिधित्व त्रुटि कहा जाता है।<ref name="Laplante_2000">{{cite book |title=कंप्यूटर विज्ञान, इंजीनियरिंग और प्रौद्योगिकी का शब्दकोश|first=Philip A. |last=Laplante |publisher=[[CRC Press]] |date=2000 |isbn=978-0-84932691-2 |page=420 |url=https://books.google.com/books?id=U1M3clUwCfEC&pg=PA420}}</ref> यहां दशमलव निरूपण में निरूपण त्रुटि के कुछ उदाहरण दिए गए हैं:
अंकों की एक सीमित श्रृंखला का उपयोग करके किसी संख्या का प्रतिनिधित्व करने का प्रयास करने से उत्पन्न त्रुटि राउंडऑफ़ त्रुटि का एक रूप है जिसे प्रतिनिधित्व त्रुटि कहा जाता है।<ref name="Laplante_2000">{{cite book |title=कंप्यूटर विज्ञान, इंजीनियरिंग और प्रौद्योगिकी का शब्दकोश|first=Philip A. |last=Laplante |publisher=[[CRC Press]] |date=2000 |isbn=978-0-84932691-2 |page=420 |url=https://books.google.com/books?id=U1M3clUwCfEC&pg=PA420}}</ref> यहां दशमलव निरूपण में निरूपण त्रुटि के कुछ उदाहरण यहां दिए गए हैं:


{| class="wikitable" style="margin:1em auto"
{| class="wikitable" style="margin:1em auto"
Line 35: Line 35:
|[[Pi|''π'']] || 3.141 592 653 589 793 238 46...  || 3.141 592 653 589 793 || 0.000 000 000 000 000 238 46...
|[[Pi|''π'']] || 3.141 592 653 589 793 238 46...  || 3.141 592 653 589 793 || 0.000 000 000 000 000 238 46...
|}
|}
किसी प्रतिनिधित्व में अनुमत अंकों की संख्या बढ़ाने से संभावित राउंडऑफ़ त्रुटियों की भयावहता कम हो जाती है, परन्तु कई अंकों तक सीमित कोई भी प्रतिनिधित्व अभी भी [[गणनीय]] वास्तविक संख्याओं के लिए कुछ हद तक राउंडऑफ़ त्रुटि का कारण बनेगा। गणना के मध्यवर्ती चरणों के लिए उपयोग किए जाने वाले अतिरिक्त अंकों को गार्ड अंक के रूप में जाना जाता है।<ref name="Higham_2002">{{cite book |title=संख्यात्मक एल्गोरिदम की सटीकता और स्थिरता|edition=2 |author-first=Nicholas John |author-link=Nicholas Higham |author-last=Higham |publisher=[[Society for Industrial and Applied Mathematics]] (SIAM) |date=2002 |isbn=978-0-89871521-7 |pages=43–44 |url=https://books.google.com/books?id=epilvM5MMxwC&pg=PA43}}</ref>
किसी प्रतिनिधित्व में अनुमत अंकों की संख्या बढ़ाने से संभावित राउंडऑफ़ त्रुटियों की भयावहता कम हो जाती है, परन्तु सीमित संख्या में कई अंकों तक सीमित कोई भी प्रतिनिधित्व अभी भी अनगिनत वास्तविक संख्याओं के लिए कुछ हद तक राउंडऑफ त्रुटि का कारण बनेगा। गणना के मध्यवर्ती चरणों के लिए उपयोग किए जाने वाले अतिरिक्त अंकों को गार्ड अंक के रूप में जाना जाता है।<ref name="Higham_2002">{{cite book |title=संख्यात्मक एल्गोरिदम की सटीकता और स्थिरता|edition=2 |author-first=Nicholas John |author-link=Nicholas Higham |author-last=Higham |publisher=[[Society for Industrial and Applied Mathematics]] (SIAM) |date=2002 |isbn=978-0-89871521-7 |pages=43–44 |url=https://books.google.com/books?id=epilvM5MMxwC&pg=PA43}}</ref>


कई बार पूर्णांकन करने से त्रुटि जमा हो सकती है।<ref name="Volkov_1990">{{cite book |title=संख्यात्मक तरीके|author-first=E. A. |author-last=Volkov |publisher=[[Taylor & Francis]] |date=1990 |isbn=978-1-56032011-1 |page=24 |url=https://books.google.com/books?id=ubfrNN8GGOIC&pg=PA24}}</ref> उदाहरण के लिए, यदि 9.945309 को दो दशमलव स्थानों (9.95) तक पूर्णांकित किया जाता है, फिर एक दशमलव स्थान (10.0) तक पूर्णांकित किया जाता है, तो कुल त्रुटि 0.054691 होती है। एक चरण में 9.945309 को एक दशमलव स्थान (9.9) तक पूर्णांकित करने पर कम त्रुटि (0.045309) आती है। यह तब हो सकता है, उदाहरण के लिए, जब सॉफ़्टवेयर विस्तारित परिशुद्धता#x86 विस्तारित परिशुद्धता प्रारूप|x86 80-बिट चल बिन्दु में अंकगणित करता है और फिर परिणाम को [[डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप|डबल-परिशुद्धता चल बिन्दु प्रारूप]]|आईईईई 754 द्विचर64 चल बिन्दु में राउंड करता है।
कई बार पूर्णांकन करने से त्रुटि संचित हो सकती है।<ref name="Volkov_1990">{{cite book |title=संख्यात्मक तरीके|author-first=E. A. |author-last=Volkov |publisher=[[Taylor & Francis]] |date=1990 |isbn=978-1-56032011-1 |page=24 |url=https://books.google.com/books?id=ubfrNN8GGOIC&pg=PA24}}</ref> उदाहरण के लिए, यदि 9.945309 को दो दशमलव स्थानों (9.95) तक पूर्णांकित किया जाता है, फिर एक दशमलव स्थान (10.0) तक पूर्णांकित किया जाता है, तो कुल त्रुटि 0.054691 होती है। एक चरण में 9.945309 को एक दशमलव स्थान (9.9) तक पूर्णांकित करने पर कम त्रुटि (0.045309) आती है। यह तब हो सकता है, उदाहरण के लिए, जब सॉफ़्टवेयर x86 80-बिट चल बिन्दु में अंकगणित करता है और फिर परिणाम को [[डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप|आईईईई]] 754 द्विचर 64 चल बिन्दु में राउंड करता है।


== चल बिन्दु संख्या प्रणाली ==
== चल बिन्दु संख्या प्रणाली ==


[[निश्चित-बिंदु अंकगणित|चल बिन्दु अंकगणित]]|चल बिन्दु संख्या प्रणाली की तुलना में, चल बिन्दु अंकगणित|चल बिन्दु संख्या प्रणाली वास्तविक संख्याओं का प्रतिनिधित्व करने में अधिक कुशल है, इसलिए आधुनिक अभिकलकों में इसका व्यापक रूप से उपयोग किया जाता है। जबकि वास्तविक संख्या <math>\mathbb{R}</math> अनंत और निरंतर हैं, एक चल बिन्दु संख्या प्रणाली <math>F</math> परिमित और पृथक है. इस प्रकार, प्रतिनिधित्व त्रुटि, जो राउंडऑफ़ त्रुटि की ओर ले जाती है, चल बिन्दु संख्या प्रणाली के अंतर्गत होती है।
[[निश्चित-बिंदु अंकगणित|चल बिन्दु]] संख्या प्रणाली की तुलना में, चल बिन्दु संख्या प्रणाली वास्तविक संख्याओं का प्रतिनिधित्व करने में अधिक कुशल है, इसलिए आधुनिक अभिकलकों में इसका व्यापक रूप से उपयोग किया जाता है। जबकि वास्तविक संख्या <math>\mathbb{R}</math> अनंत और सतत हैं, एक चल बिन्दु संख्या प्रणाली <math>F</math> परिमित और असतत है। इस प्रकार, प्रतिनिधित्व त्रुटि, जो राउंडऑफ़ त्रुटि की ओर ले जाती है, चल बिन्दु संख्या प्रणाली के अंतर्गत होती है।


=== चल बिन्दु संख्या प्रणाली का संकेतन ===
=== चल बिन्दु संख्या प्रणाली की संकेत पद्धति ===
एक चल बिन्दु संख्या प्रणाली <math>F</math> द्वारा चित्रित है <math>4</math> पूर्णांक:
एक चल बिन्दु संख्या प्रणाली <math>F</math> द्वारा <math>4</math> पूर्णांक चित्रित है:
*<math> \beta </math>: आधार या मूलांक
*<math> \beta </math>: आधार या मूलांक,
*<math>p</math>: शुद्धता
*<math>p</math>: परिशुद्धता,
*<math> [L, U] </math>: घातांक सीमा, जहाँ <math>L</math> निचली सीमा है और <math>U</math> ऊपरी सीमा है
*<math> [L, U] </math>: घातांक सीमा, जहाँ <math>L</math> निचली सीमा है और <math>U</math> ऊपरी सीमा है।


कोई <math>x \in F</math> निम्नलिखित रूप है:
कोई <math>x \in F</math> का निम्नलिखित रूप है:
<math display="block"> x = \pm (\underbrace{d_{0}.d_{1}d_{2}\ldots d_{p-1}}_\text{mantissa})_{\beta}  \times \beta ^{\overbrace{E}^\text{exponent}} = \pm d_{0}\times \beta ^{E}+d_{1}\times \beta ^{E-1}+\ldots+ d_{p-1}\times \beta ^{E-(p-1)}</math>
<math display="block"> x = \pm (\underbrace{d_{0}.d_{1}d_{2}\ldots d_{p-1}}_\text{mantissa})_{\beta}  \times \beta ^{\overbrace{E}^\text{exponent}} = \pm d_{0}\times \beta ^{E}+d_{1}\times \beta ^{E-1}+\ldots+ d_{p-1}\times \beta ^{E-(p-1)}</math>
जहाँ <math>d_{i}</math> ऐसा एक पूर्णांक <math>0 \leq d_{i} \leq \beta-1</math> है, <math>i = 0, 1, \ldots, p-1</math> और <math>E</math> के लिए, एक पूर्णांक <math>L \leq E \leq U</math> है
जहाँ <math>d_{i}</math> एक पूर्णांक ऐसा <math>0 \leq d_{i} \leq \beta-1</math> है, <math>i = 0, 1, \ldots, p-1</math> और <math>E</math> के लिए, एक पूर्णांक <math>L \leq E \leq U</math> है।


=== सामान्यीकृत चल-संख्या प्रणाली ===
=== सामान्यीकृत चल-संख्या प्रणाली ===


* यदि अग्रणी अंक हो तो चल बिन्दु संख्या प्रणाली सामान्यीकृत हो जाती है <math>d_{0}</math> जब तक संख्या शून्य न हो, सदैव शून्येतर होती है।<ref name="Forrester_2018"/>चूंकि मंटिसा है <math>d_{0}.d_{1}d_{2}\ldots d_{p-1}</math>, एक सामान्यीकृत प्रणाली में एक गैर-शून्य संख्या का मंटिसा संतुष्ट होता है <math>1 \leq \text{mantissa} < \beta</math>. इस प्रकार, नॉनज़ेरो [[इंस्टीट्यूट ऑफ़ इलेक्ट्रिकल एंड इलेक्ट्रॉनिक्स इंजीनियर्स|आईईईई]] का सामान्यीकृत रूप चल बिन्दु संख्या <math>\pm 1.bb \ldots b \times 2^{E}</math> है जहाँ <math>b \in {0, 1}</math>. द्विचर में, अग्रणी अंक सदैव होता है <math>1</math> इसलिए इसे लिखा नहीं जाता है और इसे अंतर्निहित बिट कहा जाता है। यह अतिरिक्त सटीकता देता है ताकि प्रतिनिधित्व त्रुटि के कारण होने वाली राउंडऑफ़ त्रुटि कम हो जाए।
* एक चल बिन्दु संख्या प्रणाली को सामान्यीकृत किया जाता है यदि अग्रणी अंक <math>d_{0}</math> जब तक संख्या शून्य न हो, तब तक सदैव शून्येतर होता है।<ref name="Forrester_2018"/>चूंकि अपूर्णांश <math>d_{0}.d_{1}d_{2}\ldots d_{p-1}</math> है, एक सामान्यीकृत प्रणाली में एक गैर-शून्य संख्या का अपूर्णांश <math>1 \leq \text{mantissa} < \beta</math> संतुष्ट होता है। इस प्रकार, एक गैर-शून्य [[इंस्टीट्यूट ऑफ़ इलेक्ट्रिकल एंड इलेक्ट्रॉनिक्स इंजीनियर्स|आईईईई]] चल बिन्दु संख्या <math>\pm 1.bb \ldots b \times 2^{E}</math> का सामान्यीकृत रूप है, जहाँ <math>b \in {0, 1}</math> है। द्विचर में, अग्रणी अंक सदैव <math>1</math> होता है इसलिए इसे लिखा नहीं जाता है और इसे अंतर्निहित बिट कहा जाता है। यह अतिरिक्त सटीकता देता है ताकि प्रतिनिधित्व त्रुटि के कारण होने वाली राउंडऑफ़ त्रुटि कम हो जाए।
* चूंकि चल बिन्दु संख्या प्रणाली <math>F</math> परिमित और असतत है, यह सभी वास्तविक संख्याओं का प्रतिनिधित्व नहीं कर सकता है जिसका अर्थ है कि अनंत वास्तविक संख्याओं को केवल पूर्णांकन के माध्यम से कुछ सीमित संख्याओं द्वारा अनुमानित किया जा सकता है। किसी दी गई वास्तविक संख्या का चल बिन्दु सन्निकटन <math>x</math> द्वारा <math>fl(x)</math> निरूपित किया जा सकता है.
* चूंकि चल बिन्दु संख्या प्रणाली <math>F</math> परिमित और असतत है, यह सभी वास्तविक संख्याओं का प्रतिनिधित्व नहीं कर सकता है जिसका अर्थ है कि अनंत वास्तविक संख्याओं को केवल पूर्णांकन नियमों के माध्यम से कुछ सीमित संख्याओं द्वारा अनुमानित किया जा सकता है। किसी दी गई वास्तविक संख्या का चल बिन्दु सन्निकटन <math>x</math> द्वारा <math>fl(x)</math> को निरूपित किया जा सकता है।
** सामान्यीकृत चल बिन्दु संख्याओं की कुल संख्या है <math display="block">2(\beta -1)\beta^{p-1} (U-L+1)+1,</math> जहाँ
** सामान्यीकृत चल बिन्दु संख्याओं की कुल संख्या है; <math display="block">2(\beta -1)\beta^{p-1} (U-L+1)+1,</math> जहाँ
*** <math>2</math> धनात्मक या ऋणात्मक होने पर संकेत के चयन की गणना की जाती है
*** <math>2</math> धनात्मक या ऋणात्मक होने पर संकेत के चयन की गणना की जाती है।
*** <math>(\beta -1)</math> अग्रणी अंक के चयन की गणना की जाती है
*** <math>(\beta -1)</math> अग्रणी अंक के चयन की गणना की जाती है।
*** <math>\beta^{p-1}</math> शेष मंटिसा को गिनता है
*** <math>\beta^{p-1}</math> शेष अपूर्णांश की गणना की जाती है।
*** <math>U-L+1</math> घातांकों के चयन की गणना की जाती है
*** <math>U-L+1</math> घातांकों के चयन की गणना की जाती है।
*** <math>1</math> संख्या होने पर स्थिति <math>0</math> की गणना की जाती है
*** <math>1</math> संख्या होने पर स्थिति <math>0</math> की गणना की जाती है।


=== आईईईई मानक ===
=== आईईईई मानक ===


आईईईई मानक में आधार द्विचर है, अर्थात <math>\beta = 2</math>, और सामान्यीकरण का उपयोग किया जाता है। आईईईई मानक एक चल बिन्दु शब्द के अलग-अलग क्षेत्रों में संकेत, प्रतिपादक और मंटिसा को संग्रहीत करता है, जिनमें से प्रत्येक की एक निश्चित चौड़ाई (बिट्स की संख्या) होती है। चल बिन्दु संख्याओं के लिए परिशुद्धता के दो सबसे अधिक उपयोग किए जाने वाले स्तर एकल परिशुद्धता और दोहरी परिशुद्धता हैं।
आईईईई मानक में आधार द्विचर है, अर्थात <math>\beta = 2</math>, और सामान्यीकरण का उपयोग किया जाता है। आईईईई मानक एक चल बिन्दु शब्द के अलग-अलग क्षेत्रों में संकेत, प्रतिपादक और अपूर्णांश को संग्रहीत करता है, जिनमें से प्रत्येक की एक निश्चित चौड़ाई (बिट्स की संख्या) होती है। चल बिन्दु संख्याओं के लिए परिशुद्धता के दो सबसे अधिक उपयोग किए जाने वाले स्तर एकल परिशुद्धता और दोहरी परिशुद्धता हैं।
  {| class="wikitable" style="margin:1em auto"
  {| class="wikitable" style="margin:1em auto"
! सुव्यतता
! परिशुद्धता
! संकेत (बिट्स)
! संकेत (बिट्स)
! प्रतिपादक (बिट्स)
! प्रतिपादक (बिट्स)
! मंटिसा (बिट्स)
! अपूर्णांश (बिट्स)
|-
|-
|एकल || 1 || 8 || 23  
|एकल || 1 || 8 || 23  
|-
|-
|दोगुना || 1 || 11 || 52
|दोहरी || 1 || 11 || 52
|}
|}




== [[मशीन ईपीएसलॉन|यंत्र ईपीएसलॉन]] ==
== यंत्र ईपीएसलॉन ==


चल बिन्दु संख्या प्रणाली में राउंडऑफ़ त्रुटि के स्तर को मापने के लिए यंत्र एप्सिलॉन का उपयोग किया जा सकता है। यहां दो अलग-अलग परिभाषाएं दी गई हैं.<ref name="Forrester_2018"/>
चल बिन्दु संख्या प्रणाली में राउंडऑफ़ त्रुटि के स्तर को मापने के लिए यंत्र एप्सिलॉन का उपयोग किया जा सकता है। यहां दो अलग-अलग परिभाषाएं हैं।<ref name="Forrester_2018"/>


* यंत्र एप्सिलॉन, निरूपित <math>\epsilon_\text{mach}</math>, एक गैर-शून्य वास्तविक संख्या का प्रतिनिधित्व करने में अधिकतम संभव [[सन्निकटन त्रुटि]] है <math>x</math> चल बिन्दु संख्या प्रणाली में। <math display="block">\epsilon_\text{mach} = \max_{x} \frac{|x-fl(x)|}{|x|}</math>
* यंत्र एप्सिलॉन, निरूपित <math>\epsilon_\text{mach}</math>, चल बिन्दु संख्या प्रणाली में एक गैर-शून्य वास्तविक संख्या <math>x</math> प्रतिनिधित्व करने में अधिकतम संभव पूर्ण सापेक्ष त्रुटि है।<math display="block">\epsilon_\text{mach} = \max_{x} \frac{|x-fl(x)|}{|x|}</math>
* यंत्र एप्सिलॉन, निरूपित <math>\epsilon_\text{mach}</math>, सबसे छोटी संख्या है <math>\epsilon</math> ऐसा है कि <math>fl(1+\epsilon) > 1</math>. इस प्रकार, <math>fl(1+\delta)=fl(1)=1</math> जब कभी भी <math>|\delta| < \epsilon_\text{mach}</math>.
* यंत्र एप्सिलॉन, निरूपित <math>\epsilon_\text{mach}</math>, सबसे छोटी संख्या <math>\epsilon</math> ऐसे कि <math>fl(1+\epsilon) > 1</math> है। इस प्रकार, <math>fl(1+\delta)=fl(1)=1</math> जब भी <math>|\delta| < \epsilon_\text{mach}</math> है।


== विभिन्न राउंडिंग नियमों के अंतर्गत राउंडऑफ़ त्रुटि ==
== विभिन्न पूर्णांकन नियमों के अंतर्गत राउंडऑफ़ त्रुटि ==


गोल करने के दो सामान्य नियम हैं, राउंड-बाय-चॉप और राउंड-टू-नियरेस्ट। IEEE मानक राउंड-टू-नियरेस्ट का उपयोग करता है।
पूर्णांकन के दो सामान्य नियम: चोंप के द्वारा राउंड और राउंड-से-निकटतम हैं। आईईईई मानक राउंड-से-निकटतम का उपयोग करता है।


* गोल-दर-काट: आधार-<math>\beta</math> का विस्तार <math>x</math> के बाद छोटा कर दिया गया है <math>(p-1)</math>-वाँ अंक.
* चोंप के द्वारा राउंड: आधार-<math>\beta</math> का विस्तार <math>x</math> के बाद <math>(p-1)</math>-वाँ अंक छोटा कर दिया गया है।
** यह पूर्णांकन नियम पक्षपाती है क्योंकि यह परिणाम को सदैव शून्य की ओर ले जाता है।
** यह पूर्णांकन नियम पक्षपाती है क्योंकि यह परिणाम को सदैव शून्य की ओर ले जाता है।
* राउंड-टू-नियरेस्ट: <math>fl(x)</math> को निकटतम चल बिन्दु संख्या पर व्यवस्थित किया गया है <math>x</math>. जब कोई टाई होती है, तो चल बिन्दु संख्या जिसका अंतिम संग्रहीत अंक सम है (साथ ही, अंतिम अंक, द्विचर रूप में, 0 के बराबर है) का उपयोग किया जाता है।
* राउंड-से-निकटतम: <math>fl(x)</math> को निकटतम चल बिन्दु संख्या <math>x</math> पर व्यवस्थित किया गया है। जब कोई टाई होती है, तो चल बिन्दु संख्या जिसका अंतिम संग्रहीत अंक सम है (साथ ही, अंतिम अंक, द्विचर रूप में, 0 के बराबर है) का उपयोग किया जाता है।
** आईईईई मानक के लिए जहां आधार <math>\beta</math> है <math>2</math>, इसका अर्थ है कि जब कोई टाई होता है तो इसे गोल किया जाता है ताकि अंतिम अंक बराबर हो <math>0</math>.
** आईईईई मानक के लिए, जहां आधार <math>\beta</math>, <math>2</math> है, इसका अर्थ है कि जब कोई टाई होता है तो इसे गोल किया जाता है ताकि अंतिम अंक <math>0</math> के बराबर हो।
** यह पूर्णांकन नियम अधिक सटीक है परन्तु अभिकलनीयतः अधिक महंगा है।
** यह पूर्णांकन नियम अधिक सटीक है परन्तु अभिकलनीयतः अधिक बहुमूल्य है।
** राउंडिंग ताकि अंतिम संग्रहीत अंक एक समान हो जब कोई टाई हो, यह सुनिश्चित करता है कि इसे व्यवस्थित रूप से ऊपर या नीचे गोल नहीं किया गया है। इसका उद्देश्य केवल पक्षपाती पूर्णांकन के कारण लंबी गणनाओं में अवांछित धीमी बहाव की संभावना से बचना है।
** पूर्णांकन ताकि अंतिम संग्रहीत अंक एक समान हो जब कोई टाई हो, यह सुनिश्चित करता है कि इसे व्यवस्थित रूप से ऊपर या नीचे गोल नहीं किया गया है। इसका उद्देश्य केवल पक्षपाती पूर्णांकन के कारण लंबी गणनाओं में अवांछित धीमे विस्थापन की संभावना से बचना है।
* निम्नलिखित उदाहरण दो राउंडिंग नियमों के अंतर्गत राउंडऑफ़ त्रुटि के स्तर को दर्शाता है।<ref name="Forrester_2018"/>राउंडिंग नियम, राउंड-से-निकटतम, सामान्य तौर पर राउंडऑफ़ त्रुटि को कम करता है।
* निम्नलिखित उदाहरण दो पूर्णांकन नियमों के अंतर्गत राउंडऑफ़ त्रुटि के स्तर को दर्शाता है।<ref name="Forrester_2018"/>पूर्णांकन नियम, राउंड-से-निकटतम, सामान्य तौर पर राउंडऑफ़ त्रुटि को कम करता है।
  {| class="wikitable" style="margin:1em auto"
  {| class="wikitable" style="margin:1em auto"
! x
! x
! राउंड-से-चोंप
! चोंप के द्वारा राउंड
! राउंडऑफ़ त्रुटि
! राउंडऑफ़ त्रुटि
! राउंड-से-निकटतम
! राउंड-से-निकटतम
Line 120: Line 120:
=== आईईईई मानक में राउंडऑफ़ त्रुटि की गणना ===
=== आईईईई मानक में राउंडऑफ़ त्रुटि की गणना ===


मान लीजिए कि राउंड-से-निकटतम और आईईईई डबल प्रिसिजन का उपयोग किया जाता है।
मान लीजिए कि राउंड-से-निकटतम और आईईईई दोहरी परिशुद्धता का उपयोग किया जाता है।


* उदाहरण: दशमलव संख्या <math>(9.4)_{10}=(1001.{\overline{0110}})_{2}</math> में पुनर्व्यवस्थित किया जा सकता है <math display="block">+1.\underbrace{0010110011001100110011001100110011001100110011001100}_\text{52 bits}110 \ldots \times 2^{3}</math> चूँकि द्विचर बिंदु के दाईं ओर 53-वां बिट 1 है और उसके बाद अन्य गैर-शून्य बिट्स आते हैं, राउंड-टू-नियरेस्ट नियम के लिए राउंड अप की आवश्यकता होती है, अर्थात 52-वें बिट में 1 बिट जोड़ें। इस प्रकार, आईईईई मानक 9.4 में सामान्यीकृत चल बिन्दु प्रतिनिधित्व है
* उदाहरण: दशमलव संख्या <math>(9.4)_{10}=(1001.{\overline{0110}})_{2}</math> में पुनर्व्यवस्थित किया जा सकता है: <math display="block">+1.\underbrace{0010110011001100110011001100110011001100110011001100}_\text{52 bits}110 \ldots \times 2^{3}</math> चूँकि द्विचर बिंदु के दाईं ओर 53-वां बिट 1 है और उसके बाद अन्य गैर-शून्य बिट्स आते हैं, राउंड-से-निकटतम नियम के लिए एकत्र करने की आवश्यकता होती है, अर्थात 52-वें बिट में 1 बिट जोड़ें। इस प्रकार, आईईईई मानक 9.4 में सामान्यीकृत चल बिन्दु प्रतिनिधित्व है:
<math display="block">fl(9.4)=1.0010110011001100110011001100110011001100110011001101 \times 2^{3}.</math>
<math display="block">fl(9.4)=1.0010110011001100110011001100110011001100110011001101 \times 2^{3}.</math>
* अब प्रतिनिधित्व करते समय राउंडऑफ़ त्रुटि की गणना की जा सकती है <math>9.4</math> साथ <math>fl(9.4)</math>.
* अब प्रतिनिधित्व करते समय राउंडऑफ़ त्रुटि <math>9.4</math> के साथ <math>fl(9.4)</math> की गणना की जा सकती है।
यह निरूपण अनंत पूँछ को त्यागकर प्राप्त किया गया है <math display="block">0.{\overline{1100}} \times 2^{-52}\times 2^{3} = 0.{\overline{0110}} \times 2^{-51} \times 2^{3}=0.4 \times 2^{-48}</math> दाहिनी पूँछ से और फिर जोड़ा गया <math>1 \times 2^{-52} \times 2^{3}=2^{-49}</math> गोलाकार चरण में.
यह निरूपण अनंत पश्चभाग को त्यागकर प्राप्त किया गया है: <math display="block">0.{\overline{1100}} \times 2^{-52}\times 2^{3} = 0.{\overline{0110}} \times 2^{-51} \times 2^{3}=0.4 \times 2^{-48}</math> पूर्णांकित चरण में,दाहिने पश्चभाग से और फिर <math>1 \times 2^{-52} \times 2^{3}=2^{-49}</math> जोड़ा गया है।
:तब <math>fl(9.4) = 9.4-0.4 \times 2^{-48} + 2^{-49} = 9.4+(0.2)_{10} \times 2^{-49}</math>.
:तब <math>fl(9.4) = 9.4-0.4 \times 2^{-48} + 2^{-49} = 9.4+(0.2)_{10} \times 2^{-49}</math>,
:इस प्रकार, राउंडऑफ़ त्रुटि है <math>(0.2 \times 2^{-49})_{10}</math>.
:इस प्रकार, राउंडऑफ़ त्रुटि <math>(0.2 \times 2^{-49})_{10}</math> है।


===यंत्र ईपीएसलॉन का उपयोग करके राउंडऑफ़ त्रुटि को मापना ===
===यंत्र ईपीएसलॉन का उपयोग करके राउंडऑफ़ त्रुटि को मापना ===
Line 135: Line 135:
==== प्रमेय ====
==== प्रमेय ====
# गोल-गोल काटें: <math>\epsilon_\text{mach} = \beta^{1-p}</math>
# गोल-गोल काटें: <math>\epsilon_\text{mach} = \beta^{1-p}</math>
# राउंड-टू-नियरेस्ट: <math>\epsilon_\text{mach} = \frac{1}{2}\beta^{1-p}</math>
# राउंड-से-निकटतम: <math>\epsilon_\text{mach} = \frac{1}{2}\beta^{1-p}</math>




Line 147: Line 147:
\end{align}</math>
\end{align}</math>
इस मात्रा का अधिकतम निर्धारण करने के लिए, अंश का अधिकतम और हर का न्यूनतम ज्ञात करने की आवश्यकता है। तब से <math>d_{0}\neq 0</math> (सामान्यीकृत प्रणाली), हर का न्यूनतम मान है <math>1</math>. अंश ऊपर से घिरा हुआ है <math>(\beta-1).(\beta-1){\overline{(\beta-1)}}=\beta </math>. इस प्रकार, <math>\frac{|x-fl(x)|}{|x|} \leq \frac{\beta}{1} \times \beta^{-p} = \beta^{1-p}</math>. इसलिए, <math>\epsilon=\beta^{1-p}</math> गोल-गोल काटने के लिए।
इस मात्रा का अधिकतम निर्धारण करने के लिए, अंश का अधिकतम और हर का न्यूनतम ज्ञात करने की आवश्यकता है। तब से <math>d_{0}\neq 0</math> (सामान्यीकृत प्रणाली), हर का न्यूनतम मान है <math>1</math>. अंश ऊपर से घिरा हुआ है <math>(\beta-1).(\beta-1){\overline{(\beta-1)}}=\beta </math>. इस प्रकार, <math>\frac{|x-fl(x)|}{|x|} \leq \frac{\beta}{1} \times \beta^{-p} = \beta^{1-p}</math>. इसलिए, <math>\epsilon=\beta^{1-p}</math> गोल-गोल काटने के लिए।
राउंड-टू-नियरेस्ट का प्रमाण समान है।
राउंड-से-निकटतम का प्रमाण समान है।
* ध्यान दें कि राउंड-टू-नियरेस्ट नियम का उपयोग करते समय यंत्र एप्सिलॉन की पहली परिभाषा दूसरी परिभाषा के बिल्कुल बराबर नहीं है, परन्तु यह राउंड-बाय-चॉप के बराबर है।
* ध्यान दें कि राउंड-से-निकटतम नियम का उपयोग करते समय यंत्र एप्सिलॉन की पहली परिभाषा दूसरी परिभाषा के बिल्कुल बराबर नहीं है, परन्तु यह राउंड-बाय-चॉप के बराबर है।


== चल बिन्दु अंकगणित के कारण राउंडऑफ़ त्रुटि ==
== चल बिन्दु अंकगणित के कारण राउंडऑफ़ त्रुटि ==
Line 161: Line 161:
1.00\ldots 0 \times 2^{0} + 1.00\ldots 0 \times 2^{-53} &= 1.\underbrace{00\ldots 0}_\text{52 bits} \times 2^{0} + 0.\underbrace{00\ldots 0}_\text{52 bits}1 \times 2^{0}\\
1.00\ldots 0 \times 2^{0} + 1.00\ldots 0 \times 2^{-53} &= 1.\underbrace{00\ldots 0}_\text{52 bits} \times 2^{0} + 0.\underbrace{00\ldots 0}_\text{52 bits}1 \times 2^{0}\\
&= 1.\underbrace{00\ldots 0}_\text{52 bits}1\times 2^{0}.
&= 1.\underbrace{00\ldots 0}_\text{52 bits}1\times 2^{0}.
\end{align}</math>{{Break}}इसे इस रूप में सहेजा गया है <math>1.\underbrace{00\ldots 0}_\text{52 bits}\times 2^{0}</math> चूंकि आईईईई मानक में राउंड-टू-नियरेस्ट का उपयोग किया जाता है। इसलिए, <math>1+2^{-53}</math> के बराबर है <math>1</math> आईईईई में दोहरी परिशुद्धता और राउंडऑफ़ त्रुटि है <math>2^{-53}</math>.
\end{align}</math>{{Break}}इसे इस रूप में सहेजा गया है <math>1.\underbrace{00\ldots 0}_\text{52 bits}\times 2^{0}</math> चूंकि आईईईई मानक में राउंड-से-निकटतम का उपयोग किया जाता है। इसलिए, <math>1+2^{-53}</math> के बराबर है <math>1</math> आईईईई में दोहरी परिशुद्धता और राउंडऑफ़ त्रुटि है <math>2^{-53}</math>.


यह उदाहरण दर्शाता है कि बड़ी संख्या और छोटी संख्या को जोड़ने पर राउंडऑफ़ त्रुटि उत्पन्न हो सकती है। घातांकों का मिलान करने के लिए मंटिसा में दशमलव बिंदुओं को स्थानांतरित करने से कुछ कम महत्वपूर्ण अंकों की हानि होता है। परिशुद्धता की हानि को अवशोषण के रूप में वर्णित किया जा सकता है।<ref>{{cite book |last1=Biran |first1=Adrian B. |last2=Breiner |first2=Moshe |title=प्रत्येक इंजीनियर को MATLAB और सिमुलिंक के बारे में क्या पता होना चाहिए|date=2010 |publisher=[[CRC Press]] |publication-place=[[Boca Raton]], [[Florida]] |isbn=978-1-4398-1023-1 |pages=193–194 |chapter=5}}</ref>
यह उदाहरण दर्शाता है कि बड़ी संख्या और छोटी संख्या को जोड़ने पर राउंडऑफ़ त्रुटि उत्पन्न हो सकती है। घातांकों का मिलान करने के लिए अपूर्णांश में दशमलव बिंदुओं को स्थानांतरित करने से कुछ कम महत्वपूर्ण अंकों की हानि होता है। परिशुद्धता की हानि को अवशोषण के रूप में वर्णित किया जा सकता है।<ref>{{cite book |last1=Biran |first1=Adrian B. |last2=Breiner |first2=Moshe |title=प्रत्येक इंजीनियर को MATLAB और सिमुलिंक के बारे में क्या पता होना चाहिए|date=2010 |publisher=[[CRC Press]] |publication-place=[[Boca Raton]], [[Florida]] |isbn=978-1-4398-1023-1 |pages=193–194 |chapter=5}}</ref>
ध्यान दें कि दो चल बिन्दु संख्याओं को जोड़ने से राउंडऑफ़ त्रुटि होगी जब उनका योग दोनों में से बड़े से अधिक परिमाण का क्रम होगा।
ध्यान दें कि दो चल बिन्दु संख्याओं को जोड़ने से राउंडऑफ़ त्रुटि होगी जब उनका योग दोनों में से बड़े से अधिक परिमाण का क्रम होगा।


Line 171: Line 171:


=== गुणन ===
=== गुणन ===
सामान्य तौर पर, 2-अंकीय मंटिसा के उत्पाद में 2पी अंक तक होते हैं, इसलिए परिणाम मंटिसा में फिट नहीं हो सकता है।<ref name="Forrester_2018"/>इस प्रकार परिणाम में राउंडऑफ़ त्रुटि सम्मिलित होगी।
सामान्य तौर पर, 2-अंकीय अपूर्णांश के उत्पाद में 2पी अंक तक होते हैं, इसलिए परिणाम अपूर्णांश में फिट नहीं हो सकता है।<ref name="Forrester_2018"/>इस प्रकार परिणाम में राउंडऑफ़ त्रुटि सम्मिलित होगी।


* उदाहरण के लिए, आधार के साथ एक सामान्यीकृत चल बिन्दु संख्या प्रणाली पर विचार करें <math>\beta=10</math> और मंटिसा अंक अधिकतम हैं <math>2</math>. तब <math>fl(77) = 7.7 \times 10^{1}</math> और <math>fl(88) = 8.8 \times 10^{1}</math>. ध्यान दें कि <math>77 \times 88=6776</math> परन्तु <math>fl(6776) = 6.7 \times 10^{3}</math> चूंकि वहां अधिक से अधिक <math>2</math> मंटिसा अंक. राउंडऑफ़ त्रुटि होगी <math>6776 - fl(6776)  = 6776 - 6.7 \times 10^{3}=76</math>.
* उदाहरण के लिए, आधार के साथ एक सामान्यीकृत चल बिन्दु संख्या प्रणाली पर विचार करें <math>\beta=10</math> और अपूर्णांश अंक अधिकतम हैं <math>2</math>. तब <math>fl(77) = 7.7 \times 10^{1}</math> और <math>fl(88) = 8.8 \times 10^{1}</math>. ध्यान दें कि <math>77 \times 88=6776</math> परन्तु <math>fl(6776) = 6.7 \times 10^{3}</math> चूंकि वहां अधिक से अधिक <math>2</math> अपूर्णांश अंक. राउंडऑफ़ त्रुटि होगी <math>6776 - fl(6776)  = 6776 - 6.7 \times 10^{3}=76</math>.


=== प्रभाग ===
=== प्रभाग ===


सामान्य तौर पर, 2पी-अंकीय मंटिसा के भागफल में P-अंक से अधिक हो सकता है। इस प्रकार परि