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

From Vigyanwiki
No edit summary
No edit summary
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{short description|Computational error due to rounding numbers}}
{{short description|Computational error due to rounding numbers}}
{{For|कलाबाजी गतिविधि, राउंडऑफ़|राउंडऑफ़}}
{{For|अक्रोबेटिक गतिविधि, राउंडऑफ़|राउंडऑफ़}}
{{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"
! संकेत पद्धति
! नोटेशन
! निरूपण
! निरूपण
! सन्निकटन
! सन्निकटन
! त्रुटि
! एरर
|-
|-
|1/7 || 0.{{overline|142 857}} || 0.142 857 || 0.000 000 {{overline|142 857}}
|1/7 || 0.{{overline|142 857}} || 0.142 857 || 0.000 000 {{overline|142 857}}
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 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) आता है। यह तब हो सकता है, उदाहरण के लिए, जब सॉफ़्टवेयर एक्स86 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>: परिशुद्धता,
Line 55: Line 55:
=== सामान्यीकृत चल-संख्या प्रणाली ===
=== सामान्यीकृत चल-संख्या प्रणाली ===


* एक चल बिन्दु संख्या प्रणाली को सामान्यीकृत किया जाता है यदि अग्रणी अंक <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> जहाँ
Line 79: Line 79:




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


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


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


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


* चोंप के द्वारा राउंड: आधार-<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
! चोंप के द्वारा राउंड
! राउंड-बाय-चॉप
! राउंडऑफ़ त्रुटि
! राउंडऑफ़ एरर
! राउंड-से-निकटतम
! राउंड-टू-नियरेस्ट
! राउंडऑफ़ त्रुटि
! राउंडऑफ़ एरर
|-
|-
|1.649 || 1.6 || 0.049 || 1.6 || 0.049
|1.649 || 1.6 || 0.049 || 1.6 || 0.049
Line 118: Line 118:




=== आईईईई मानक में राउंडऑफ़ त्रुटि की गणना ===
=== आईईईई मानक में राउंडऑफ़ एरर की गणना ===


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


* उदाहरण: दशमलव संख्या <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> है।


===यंत्र ईपीएसलॉन का उपयोग करके राउंडऑफ़ त्रुटि को मापना ===
===मशीन ईपीएसलॉन का उपयोग करके राउंडऑफ़ एरर को मापना ===


यंत्र ईपीएसलॉन <math>\epsilon_\text{mach}</math> उपरोक्त दो राउंडिंग नियमों का उपयोग करते समय राउंडऑफ़ त्रुटि के स्तर को मापने के लिए इसका उपयोग किया जा सकता है। नीचे सूत्र और संबंधित प्रमाण दिए गए हैं।<ref name="Forrester_2018"/>यंत्र एप्सिलॉन की पहली परिभाषा का उपयोग यहां किया गया है।
मशीन ईपीएसलॉन <math>\epsilon_\text{mach}</math> ऊपर दिए गए दो पूर्णांकन नियमों का उपयोग करते समय राउंडऑफ़ एरर के स्तर को मापने के लिए इसका उपयोग किया जा सकता है। नीचे सूत्र और संबंधित प्रमाण दिए गए हैं।<ref name="Forrester_2018"/>मशीन ईपीएसलॉन की पहली परिभाषा का उपयोग यहां किया गया है।


==== प्रमेय ====
==== प्रमेय ====
# गोल-गोल काटें: <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>




==== प्रमाण ====
==== प्रमाण ====
मान लीजिए कि <math>x=d_{0}.d_{1}d_{2} \ldots d_{p-1}d_{p} \ldots \times \beta^{n} \in \mathbb{R}</math> जहाँ <math>n \in [L, U]</math>, और जाने <math>fl(x)</math> का चल बिन्दु प्रतिनिधित्व हो <math>x</math>.
मान लीजिए कि <math>x=d_{0}.d_{1}d_{2} \ldots d_{p-1}d_{p} \ldots \times \beta^{n} \in \mathbb{R}</math> जहाँ <math>n \in [L, U]</math> और <math>fl(x)</math> का चल बिन्दु प्रतिनिधित्व <math>x</math> है। चूंकि राउंड-बाय-चॉप का उपयोग किया जा रहा है, इसलिए यह है
चूंकि राउंड-बाय-चॉप का उपयोग किया जा रहा है, इसलिए यह है
<math display="block"> \begin{align}
<math display="block"> \begin{align}
\frac{|x-fl(x)|}{|x|} &= \frac{|d_{0}.d_{1}d_{2}\ldots d_{p-1}d_{p}d_{p+1}\ldots \times \beta^{n} - d_{0}.d_{1}d_{2}\ldots d_{p-1} \times \beta^{n}|}{|d_{0}.d_{1}d_{2}\ldots \times \beta^{n}|}\\
\frac{|x-fl(x)|}{|x|} &= \frac{|d_{0}.d_{1}d_{2}\ldots d_{p-1}d_{p}d_{p+1}\ldots \times \beta^{n} - d_{0}.d_{1}d_{2}\ldots d_{p-1} \times \beta^{n}|}{|d_{0}.d_{1}d_{2}\ldots \times \beta^{n}|}\\
Line 146: Line 145:
&= \frac{|d_{p}.d_{p+1}d_{p+2}\ldots|}{|d_{0}.d_{1}d_{2}\ldots|} \times \beta^{-p}
&= \frac{|d_{p}.d_{p+1}d_{p+2}\ldots|}{|d_{0}.d_{1}d_{2}\ldots|} \times \beta^{-p}
\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> है। राउंड-टू-नियरेस्ट का प्रमाण समान है।
राउंड-से-निकटतम का प्रमाण समान है।
* ध्यान दें कि राउंड-टू-नियरेस्ट नियम का उपयोग करते समय मशीन ईपीएसलॉन की पहली परिभाषा दूसरी परिभाषा के बराबर नहीं है, लेकिन यह राउंड-बाय-चॉप के बराबर है।
* ध्यान दें कि राउंड-से-निकटतम नियम का उपयोग करते समय यंत्र एप्सिलॉन की पहली परिभाषा दूसरी परिभाषा के बिल्कुल बराबर नहीं है, परन्तु यह राउंड-बाय-चॉप के बराबर है।


== चल बिन्दु अंकगणित के कारण राउंडऑफ़ त्रुटि ==
== चल बिन्दु अंकगणित के कारण राउंडऑफ़ एरर ==


भले ही कुछ संख्याओं को चल बिन्दु संख्याओं द्वारा सटीक रूप से दर्शाया जा सकता है और ऐसी संख्याओं को यंत्र संख्या कहा जाता है, चल बिन्दु अंकगणित करने से अंतिम परिणाम में राउंडऑफ़ त्रुटि हो सकती है।
भले ही कुछ संख्याओं को चल बिन्दु संख्याओं द्वारा सटीक रूप से दर्शाया जा सकता है और ऐसी संख्याओं को मशीन संख्या कहा जाता है, चल बिन्दु अंकगणित करने से अंतिम परिणाम में राउंडऑफ़ एरर हो सकता है।


=== जोड़ ===
=== जोड़ ===


यंत्र जोड़ में जोड़ी जाने वाली दो संख्याओं के दशमलव बिंदुओं को पंक्तिबद्ध करना, उन्हें जोड़ना और फिर परिणाम को चल बिन्दु संख्या के रूप में संग्रहीत करना सम्मिलित है। जोड़ स्वयं उच्च परिशुद्धता में किया जा सकता है परन्तु परिणाम को निर्दिष्ट परिशुद्धता पर वापस गोल किया जाना चाहिए, जिससे राउंडऑफ़ त्रुटि हो सकती है।<ref name="Forrester_2018"/>
मशीन जोड़ में जोड़ी जाने वाली दो संख्याओं के दशमलव बिंदुओं को पंक्तिबद्ध करना, उन्हें जोड़ना और फिर परिणाम को चल बिन्दु संख्या के रूप में संग्रहीत करना सम्मिलित है। जोड़ स्वयं उच्च परिशुद्धता में किया जा सकता है लेकिन परिणाम को निर्दिष्ट परिशुद्धता के अनुसार पूर्णांकित किया जाना चाहिए, जिससे राउंडऑफ़ एरर हो सकता है।<ref name="Forrester_2018"/>


* उदाहरण के लिए, जोड़ना <math>1</math> को <math>2^{-53}</math> आईईईई में दोहरी परिशुद्धता इस प्रकार है,{{Break}}<math>\begin{align}
* उदाहरण के लिए, <math>1</math> से <math>2^{-53}</math> तक आईईईई में दोहरी परिशुद्धता इस प्रकार है,{{Break}}<math>\begin{align}
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>
ध्यान दें कि दो चल बिन्दु संख्याओं को जोड़ने से राउंडऑफ़ त्रुटि होगी जब उनका योग दोनों में से बड़े से अधिक परिमाण का क्रम होगा।


* उदाहरण के लिए, आधार के साथ एक सामान्यीकृत चल बिन्दु संख्या प्रणाली पर विचार करें <math>10</math> और परिशुद्धता <math>2</math>. तब <math>fl(62)=6.2 \times 10^{1}</math> और <math>fl(41) = 4.1 \times 10^{1}</math>. ध्यान दें कि <math>62+41=103</math> परन्तु <math>fl(103)=1.0 \times 10^{2}</math>. की एक राउंडऑफ़ त्रुटि है <math>103-fl(103)=3</math>.
ध्यान दें कि दो चल बिन्दु संख्याओं