राउंड-ऑफ़ एरर: Difference between revisions
No edit summary |
No edit summary |
||
(7 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 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> यहां दशमलव निरूपण में रिप्रजेंटेशन एरर के कुछ उदाहरण यहां दिए गए हैं: | ||
{| 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="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>F</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>d_{i}</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>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 | ||
|} | |} | ||
== | == मशीन ईपीएसलॉन == | ||
चल बिन्दु संख्या प्रणाली में राउंडऑफ़ | चल बिन्दु संख्या प्रणाली में राउंडऑफ़ एरर के स्तर को मापने के लिए मशीन ईपीएसलॉन का उपयोग किया जा सकता है। यहां दो अलग-अलग परिभाषाएं हैं।<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>\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>fl(x)</math> को निकटतम चल बिन्दु संख्या | * राउंड-टू-नियरेस्ट: <math>fl(x)</math> को निकटतम चल बिन्दु संख्या <math>x</math> पर व्यवस्थित किया गया है। जब कोई टाई होती है, तो चल बिन्दु संख्या जिसका अंतिम संग्रहीत अंक सम है (साथ ही, अंतिम अंक, द्विचर रूप में, 0 के बराबर है) का उपयोग किया जाता है। | ||
** आईईईई मानक के लिए जहां आधार <math>\beta</math> | ** आईईईई मानक के लिए, जहां आधार <math>\beta</math>, <math>2</math> है, इसका अर्थ है कि जब कोई टाई होता है तो इसे पूर्णांकित किया जाता है ताकि अंतिम अंक <math>0</math> के बराबर हो। | ||
** यह पूर्णांकन नियम अधिक सटीक है परन्तु अभिकलनीयतः अधिक | ** यह पूर्णांकन नियम अधिक सटीक है परन्तु अभिकलनीयतः अधिक बहुमूल्य है। | ||
** | ** पूर्णांकन ताकि अंतिम संग्रहीत अंक एक समान हो जब कोई टाई हो, यह सुनिश्चित करता है कि इसे व्यवस्थित रूप से ऊपर या नीचे पूर्णांकित नहीं किया गया है। इसका उद्देश्य केवल अभिनत पूर्णांकन के कारण लंबी गणनाओं में अवांछित धीमे विस्थापन की संभावना से बचना है। | ||
* निम्नलिखित उदाहरण दो | * निम्नलिखित उदाहरण दो पूर्णांकन नियमों के अंतर्गत राउंडऑफ़ एरर के स्तर को दर्शाता है।<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 है और उसके बाद अन्य गैर-शून्य बिट्स आते हैं, राउंड-टू-नियरेस्ट नियम के लिए | * उदाहरण: दशमलव संख्या <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 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>\epsilon_\text{mach}</math> ऊपर दिए गए दो पूर्णांकन नियमों का उपयोग करते समय राउंडऑफ़ एरर के स्तर को मापने के लिए इसका उपयोग किया जा सकता है। नीचे सूत्र और संबंधित प्रमाण दिए गए हैं।<ref name="Forrester_2018"/>मशीन ईपीएसलॉन की पहली परिभाषा का उपयोग यहां किया गया है। | |||
==== प्रमेय ==== | ==== प्रमेय ==== | ||
# | # राउंड-बाय-चॉप: <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>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>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"/> | |||
* उदाहरण के लिए, | * उदाहरण के लिए, <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}}इसे इस रूप | \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> | ||
ध्यान दें कि दो चल बिन्दु संख्याओं को जोड़ने से राउंडऑफ़ एरर होगा जब उनका योग दोनों में से बड़े से अधिक परिमाण का क्रम होगा। | |||
इस प्रकार | * उदाहरण के लिए, आधार <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> है। | ||
इस प्रकार का एरर एकल संचालन में समावेश एरर के साथ हो सकता है। | |||
=== गुणन === | === गुणन === | ||
सामान्य तौर पर, 2-अंकीय | सामान्य तौर पर, 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> होगा। | ||
=== | === विभाजन === | ||
सामान्य तौर पर, 2पी-अंकीय | सामान्य तौर पर, 2पी-अंकीय अपूर्णांश के भागफल में P-अंक से अधिक हो सकता है। इस प्रकार परिणाम में राउंडऑफ़ एरर सम्मिलित होगा। | ||
* उदाहरण के लिए, यदि उपरोक्त सामान्यीकृत चल बिन्दु संख्या प्रणाली अभी भी उपयोग की जा रही है, तो <math>1/3=0.333 \ldots</math> | * उदाहरण के लिए, यदि उपरोक्त सामान्यीकृत चल बिन्दु संख्या प्रणाली अभी भी उपयोग की जा रही है, तो <math>1/3=0.333 \ldots</math> यदि <math>fl(1/3)=fl(0.333 \ldots)=3.3 \times 10^{-1}</math> है। तो, पश्चभाग<math>0.333 \ldots - 3.3 \times 10^{-1}=0.00333 \ldots </math> कट गया है। | ||
=== घटाव === | === घटाव === | ||
समावेश घटाव पर भी अनुप्रयुक्त होता है। | |||
* उदाहरण के लिए, | * उदाहरण के लिए, <math>2^{-60}</math> से <math>1</math> तक आईईईई में दोहरी परिशुद्धता इस प्रकार है, <math display="block">\begin{align} | ||
1.00\ldots 0 \times 2^{0} - 1.00\ldots 0 \times 2^{-60} &= \underbrace{1.00\ldots 0}_\text{60 bits} \times 2^{0} - \underbrace{0.00\ldots 01}_\text{60 bits} \times 2^{0}\\ | 1.00\ldots 0 \times 2^{0} - 1.00\ldots 0 \times 2^{-60} &= \underbrace{1.00\ldots 0}_\text{60 bits} \times 2^{0} - \underbrace{0.00\ldots 01}_\text{60 bits} \times 2^{0}\\ | ||
&= \underbrace{0.11\ldots 1}_\text{60 bits}\times 2^{0}. | &= \underbrace{0.11\ldots 1}_\text{60 bits}\times 2^{0}. | ||
\end{align}</math> इसे इस रूप | \end{align}</math> इसे इस रूप, <math>\underbrace{1.00\ldots 0}_\text{53 bits}\times 2^{0}</math> में सहेजा गया है। चूंकि आईईईई मानक में राउंड-टू-नियरेस्ट का उपयोग किया जाता है। इसलिए, <math>1-2^{-60}</math> के बराबर <math>1</math> है। आईईईई में दोहरी परिशुद्धता और राउंडऑफ़ एरर <math>-2^{-60}</math> है। | ||
दो लगभग बराबर संख्याओं को घटाने को घटाव | दो लगभग बराबर संख्याओं को घटाने को घटाव निरस्तीकरण कहा जाता है।<ref name="Forrester_2018"/> जब अग्रणी अंकों को निरसित कर दिया जाता है, तो परिणाम सटीक रूप से प्रस्तुत करने के लिए बहुत छोटा हो सकता है और इसे केवल <math>0</math> के रूप में दर्शाया जाएगा। | ||
जब अग्रणी अंकों को | |||
* उदाहरण के लिए, | * उदाहरण के लिए, मान लीजिए कि <math>|\epsilon| < \epsilon_\text{mach}</math> और मशीन ईपीएसलॉन की दूसरी परिभाषा का उपयोग यहां किया गया है। <math>(1+\epsilon) - (1-\epsilon)</math> का हल क्या है?{{Break}} यह ज्ञात है कि <math>1+\epsilon</math> और <math>1-\epsilon</math> लगभग समान संख्याएँ हैं, और <math>(1+\epsilon) - (1-\epsilon)=1+\epsilon-1+\epsilon=2\epsilon</math> है। हालाँकि, चल बिन्दु संख्या प्रणाली में, <math>fl((1+\epsilon) - (1-\epsilon))=fl(1+\epsilon)-fl(1-\epsilon)=1-1=0</math> है। यद्यपि <math>2\epsilon</math> सरलता से इतना बड़ा है कि दोनों उदाहरणों, <math>\epsilon</math> को <math>0</math> देकर दूर कर दिया गया है। | ||
कुछ हद तक बड़े | कुछ हद तक बड़े <math>\epsilon</math> के साथ भी, सामान्य स्थितियों में परिणाम अभी भी काफी अविश्वसनीय है। मान की सटीकता में बहुत अधिक विश्वास नहीं है क्योंकि किसी भी चल बिन्दु संख्या में सबसे अधिक अनिश्चितता सबसे दाईं ओर के अंक हैं। | ||
* उदाहरण के लिए, <math>1.99999 \times 10 ^{2}- 1.99998 \times 10^{2} = 0.00001\times10^{2} =1 \times 10^{-5}\times 10^{2}=1\times10^{-3}</math> | * उदाहरण के लिए, <math>1.99999 \times 10 ^{2}- 1.99998 \times 10^{2} = 0.00001\times10^{2} =1 \times 10^{-5}\times 10^{2}=1\times10^{-3}</math> है। परिणाम <math>1\times10^{-3}</math> स्पष्ट रूप से प्रस्तुत करने योग्य है, परन्तु इसमें बहुत अधिक विश्वास नहीं है। | ||
यह | यह आपत्तिजनक निरस्तीकरण की घटना से निकटता से संबंधित है, जिसमें दो संख्याओं को सन्निकटन के रूप में जाना जाता है। | ||
== राउंडऑफ़ | == राउंडऑफ़ एरर का संचय == | ||
जब सटीक प्रतिनिधित्व के कारण राउंडऑफ | जब सटीक प्रतिनिधित्व के कारण राउंडऑफ एरर के साथ प्रारंभिक इनपुट पर गणना का अनुक्रम अनुप्रयुक्त किया जाता है तो एरर बढ़ या संचित हो सकता हैं। | ||
=== अस्थिर कलन विधि === | === अस्थिर कलन विधि === | ||
एक कलन विधि या संख्यात्मक प्रक्रिया को स्थिर कहा जाता है यदि इनपुट में छोटे परिवर्तन केवल | एक कलन विधि या संख्यात्मक प्रक्रिया को स्थिर कहा जाता है यदि इनपुट में छोटे परिवर्तन केवल बहिर्वेश में छोटे परिवर्तन उत्पन्न करते हैं और यदि बहिर्वेश में बड़े परिवर्तन उत्पन्न होते हैं तो अस्थिर कहा जाता है।<ref name="Collins_2005">{{cite web |author-last=Collins |author-first=Charles |title=स्थिति एवं स्थिरता|url=https://www.math.utk.edu/~ccollins/M577/Handouts/cond_stab.pdf |website=Department of Mathematics in University of Tennessee |date=2005 |access-date=2018-10-28}}</ref> उदाहरण के लिए, <math>f(x) = \sqrt{1 + x} - 1</math> की गणना, "स्पष्ट" विधि का उपयोग करना निकट <math>x = 0</math> में अस्थिर है। दो समान मात्राओं को घटाने में हुई बड़ी एरर के कारण, जबकि समतुल्य अभिव्यक्ति <math>\textstyle{f(x) = \frac{x}{\sqrt{1+x} + 1}}</math> स्थिर है।<ref name="Collins_2005"/> | ||
=== | === कुगठित समस्याएँ === | ||
यहां तक कि | यहां तक कि यदि एक स्थिर कलन विधि का उपयोग किया जाता है, तब भी किसी समस्या का समाधान राउंडऑफ़ एरर के संचय के कारण गलत हो सकता है जब समस्या स्वयं खराब स्थिति में हो। | ||
किसी समस्या की [[शर्त संख्या]] समाधान में सापेक्ष परिवर्तन और इनपुट में सापेक्ष परिवर्तन का अनुपात है।<ref name="Forrester_2018"/>यदि इनपुट में छोटे सापेक्ष परिवर्तन के परिणामस्वरूप समाधान में छोटे सापेक्ष परिवर्तन होते हैं तो एक समस्या अच्छी तरह से अनुकूल होती है। अन्यथा, समस्या | किसी समस्या की [[शर्त संख्या|प्रतिबंधी संख्या]] समाधान में सापेक्ष परिवर्तन और इनपुट में सापेक्ष परिवर्तन का अनुपात है।<ref name="Forrester_2018"/>यदि इनपुट में छोटे सापेक्ष परिवर्तन के परिणामस्वरूप समाधान में छोटे सापेक्ष परिवर्तन होते हैं तो एक समस्या अच्छी तरह से अनुकूल होती है। अन्यथा, समस्या कुगठित है।<ref name="Forrester_2018"/>दूसरे शब्दों में, यदि समस्या की स्थिति संख्या 1 से बहुत बड़ी है तो कोई समस्या अनुपयुक्त होती है। | ||
प्रतिबंधी संख्या को राउंडऑफ़ एररों के माप के रूप में प्रस्तुत किया गया है जो कुगठित समस्याओं को हल करते समय उत्पन्न हो सकती हैं।<ref name="Chapra_2012"/> | |||
== यह भी देखें == | == यह भी देखें == | ||
* [[परिशुद्धता (अंकगणित)]] | * [[परिशुद्धता (अंकगणित)]] | ||
* | * ट्रंक्शन | ||
* | * राउंडिंग | ||
* [[महत्व की हानि]] | * [[महत्व की हानि|आपत्तिजनक निरस्तीकरण]] | ||
* [[तैरनेवाला स्थल]] | * [[तैरनेवाला स्थल|चल बिन्दु]] | ||
* [[कहन योग एल्गोरिथ्म]] | * [[कहन योग एल्गोरिथ्म|कहन योग कलन विधि]] | ||
* | * मशीन ईपीएसलॉन | ||
* विल्किंसन | * विल्किंसन बहुपदीय | ||
==संदर्भ== | ==संदर्भ== | ||
Line 244: | Line 242: | ||
{{Authority control}} | {{Authority control}} | ||
{{DEFAULTSORT:RoundOff Error}} | {{DEFAULTSORT:RoundOff Error}} | ||
[[sv:Avrundningsfel]] | [[sv:Avrundningsfel]] | ||
[[Category:Articles with hatnote templates targeting a nonexistent page|RoundOff Error]] | |||
[[Category:Created On 21/07/2023|RoundOff Error]] | |||
[[Category: | [[Category:Lua-based templates|RoundOff Error]] | ||
[[Category:Created On 21/07/2023]] | [[Category:Machine Translated Page|RoundOff Error]] | ||
[[Category:Pages with script errors|RoundOff Error]] | |||
[[Category:Short description with empty Wikidata description|RoundOff Error]] | |||
[[Category:Templates Vigyan Ready|RoundOff Error]] | |||
[[Category:Templates that add a tracking category|RoundOff Error]] | |||
[[Category:Templates that generate short descriptions|RoundOff Error]] | |||
[[Category:Templates using TemplateData|RoundOff Error]] | |||
[[Category:Use dmy dates from August 2019|RoundOff Error]] | |||
[[Category:संख्यात्मक विश्लेषण|RoundOff Error]] |
Latest revision as of 14:06, 2 August 2023
कंप्यूटिंग में, एक राउंडऑफ़ एरर,[1] जिसे राउंडिंग एरर भी कहा जाता है,[2] सटीक अंकगणित का उपयोग करके दिए गए एल्गोरिथम द्वारा उत्पादित परिणाम और परिमित-सटीक, राउंडेड अंकगणित का उपयोग करके उसी एल्गोरिथम द्वारा उत्पादित परिणाम के मध्य का अंतर है।[3] राउंडिंग एरर वास्तविक संख्याओं के निरूपण और उनके साथ की गई अंकगणितीय संक्रियाओं में अशुद्धि के कारण होती हैं। यह क्वान्टिजेशन एरर का एक रूप है। सन्निकटन समीकरणों या कलन विधियों का उपयोग करते समय, विशेष रूप से वास्तविक संख्याओं (जिनमें सिद्धांत रूप में अनंत रूप से कई अंक होते हैं) का प्रतिनिधित्व करने के लिए सीमित कई अंकों का उपयोग करते समय, संख्यात्मक विश्लेषण का एक लक्ष्य गणना एररों का अनुमान लगाना है। कम्प्यूटेशन एरर, जिन्हें न्यूमेरिकल एरर भी कहा जाता है, जिनमें ट्रंक्शन एरर और राउंडऑफ़ एरर दोनों सम्मिलित हैं।
जब किसी राउंडऑफ एरर वाले इनपुट के साथ गणना का क्रम बनाया जाता है,तो एरर संचित हो सकता हैं, जो कभी-कभी गणना पर बाध्यकारी हो जाता हैं। कुगठित वाली समस्याओं में, महत्वपूर्ण एरर संचित हो सकता है।
संक्षेप में, संख्यात्मक गणना में सम्मिलित राउंडऑफ़ एररों के दो प्रमुख दृष्टिकोण हैं:[4]
- संख्याओं के परिमाण और सटीकता दोनों का प्रतिनिधित्व करने की गणक क्षमता स्वाभाविक रूप से सीमित है।
- कुछ संख्यात्मक प्रकलन राउंडऑफ़ एररों के प्रति अत्यधिक संवेदनशील होते हैं। यह गणितीय विचारों के साथ-साथ गणक द्वारा अंकगणितीय संचालन करने के तरीके दोनों के परिणामस्वरूप हो सकता है।
रिप्रजेंटेशन एरर
अंकों की एक सीमित श्रृंखला का उपयोग करके किसी संख्या का प्रतिनिधित्व करने का प्रयास करने से उत्पन्न एरर राउंडऑफ़ एरर का एक रूप है जिसे रिप्रजेंटेशन एरर कहा जाता है।[5] यहां दशमलव निरूपण में रिप्रजेंटेशन एरर के कुछ उदाहरण यहां दिए गए हैं:
नोटेशन | निरूपण | सन्निकटन | एरर |
---|---|---|---|
1/7 | 0.142 857 | 0.142 857 | 0.000 000 142 857 |
ln 2 | 0.693 147 180 559 945 309 41... | 0.693 147 | 0.000 000 180 559 945 309 41... |
log10 2 | 0.301 029 995 663 981 195 21... | 0.3010 | 0.000 029 995 663 981 195 21... |
3√2 | 1.259 921 049 894 873 164 76... | 1.25992 | 0.000 001 049 894 873 164 76... |
√2 | 1.414 213 562 373 095 048 80... | 1.41421 | 0.000 003 562 373 095 048 80... |
e | 2.718 281 828 459 045 235 36... | 2.718 281 828 459 045 | 0.000 000 000 000 000 235 36... |
π | 3.141 592 653 589 793 238 46... | 3.141 592 653 589 793 | 0.000 000 000 000 000 238 46... |
किसी प्रतिनिधित्व में अनुमत अंकों की संख्या बढ़ाने से संभावित राउंडऑफ़ एररों की आपत्तिजनकता कम हो जाती है, परन्तु सीमित संख्या में कई अंकों तक सीमित कोई भी प्रतिनिधित्व अभी भी अनगिनत वास्तविक संख्याओं के लिए कुछ हद तक राउंडऑफ एरर का कारण बनेगा। गणना के मध्यवर्ती चरणों के लिए उपयोग किए जाने वाले अतिरिक्त अंकों को गार्ड अंक के रूप में जाना जाता है।[6]
कई बार पूर्णांकन करने से एरर संचित हो सकता है।[7] उदाहरण के लिए, यदि 9.945309 को दो दशमलव स्थानों (9.95) तक पूर्णांकित किया जाता है, फिर एक दशमलव स्थान (10.0) तक पूर्णांकित किया जाता है, तो कुल एरर 0.054691 होता है। एक चरण में 9.945309 को एक दशमलव स्थान (9.9) तक पूर्णांकित करने पर कम एरर (0.045309) आता है। यह तब हो सकता है, उदाहरण के लिए, जब सॉफ़्टवेयर एक्स86 80-बिट चल बिन्दु में अंकगणित करता है और फिर परिणाम को आईईईई 754 द्विचर 64 चल बिन्दु पर राउंड करता है।
चल बिन्दु संख्या प्रणाली
चल बिन्दु संख्या प्रणाली की तुलना में, चल बिन्दु संख्या प्रणाली वास्तविक संख्याओं का प्रतिनिधित्व करने में अधिक कुशल है, इसलिए आधुनिक कंप्यूटरों में इसका व्यापक रूप से उपयोग किया जाता है। जबकि वास्तविक संख्या अनंत और सतत हैं, एक चल बिन्दु संख्या प्रणाली परिमित और असतत है। इस प्रकार, रिप्रजेंटेशन एरर, जो राउंडऑफ़ एरर की ओर ले जाती है, चल बिन्दु संख्या प्रणाली के अंतर्गत होती है।
चल बिन्दु संख्या प्रणाली की नोटेशन
एक चल बिन्दु संख्या प्रणाली द्वारा पूर्णांक चित्रित है:
- : आधार या मूलांक,
- : परिशुद्धता,
- : घातांक सीमा, जहाँ निचली सीमा है और ऊपरी सीमा है।
कोई का निम्नलिखित रूप है:
सामान्यीकृत चल-संख्या प्रणाली
- एक चल बिन्दु संख्या प्रणाली को सामान्यीकृत किया जाता है यदि अग्रणी अंक जब तक संख्या शून्य न हो, तब तक सदैव शून्येतर होता है।[3]चूंकि अपूर्णांश है, एक सामान्यीकृत प्रणाली में एक गैर-शून्य संख्या का अपूर्णांश संतुष्ट होता है। इस प्रकार, एक गैर-शून्य आईईईई चल बिन्दु संख्या का सामान्यीकृत रूप है, जहाँ है। द्विचर में, अग्रणी अंक सदैव होता है इसलिए इसे लिखा नहीं जाता है और इसे अंतर्निहित बिट कहा जाता है। यह अतिरिक्त सटीकता देता है ताकि रिप्रजेंटेशन एरर के कारण होने वाली राउंडऑफ़ एरर कम हो जाए।
- चूंकि चल बिन्दु संख्या प्रणाली परिमित और असतत है, यह सभी वास्तविक संख्याओं का प्रतिनिधित्व नहीं कर सकता है जिसका अर्थ है कि अनंत वास्तविक संख्याओं को केवल पूर्णांकन नियमों के माध्यम से कुछ सीमित संख्याओं द्वारा अनुमानित किया जा सकता है। किसी दी गई वास्तविक संख्या का चल बिन्दु सन्निकटन द्वारा को निरूपित किया जा सकता है।
- सामान्यीकृत चल बिन्दु संख्याओं की कुल संख्या है; जहाँ
- धनात्मक या ऋणात्मक होने पर संकेत के चयन की गणना की जाती है।
- अग्रणी अंक के चयन की गणना की जाती है।
- शेष अपूर्णांश की गणना की जाती है।
- घातांकों के चयन की गणना की जाती है।
- संख्या होने पर स्थिति की गणना की जाती है।
- सामान्यीकृत चल बिन्दु संख्याओं की कुल संख्या है;
आईईईई मानक
आईईईई मानक में आधार द्विचर है, अर्थात , और सामान्यीकरण का उपयोग किया जाता है। आईईईई मानक एक चल बिन्दु शब्द के अलग-अलग क्षेत्रों में संकेत, प्रतिपादक और अपूर्णांश को संग्रहीत करता है, जिनमें से प्रत्येक की एक निश्चित चौड़ाई (बिट्स की संख्या) होती है। चल बिन्दु संख्याओं के लिए परिशुद्धता के दो सबसे अधिक उपयोग किए जाने वाले स्तर एकल परिशुद्धता और दोहरी परिशुद्धता हैं।
परिशुद्धता | संकेत (बिट्स) | प्रतिपादक (बिट्स) | अपूर्णांश (बिट्स) |
---|---|---|---|
एकल | 1 | 8 | 23 |
दोहरी | 1 | 11 | 52 |
मशीन ईपीएसलॉन
चल बिन्दु संख्या प्रणाली में राउंडऑफ़ एरर के स्तर को मापने के लिए मशीन ईपीएसलॉन का उपयोग किया जा सकता है। यहां दो अलग-अलग परिभाषाएं हैं।[3]
- मशीन ईपीएसलॉन, निरूपित , चल बिन्दु संख्या प्रणाली में एक गैर-शून्य वास्तविक संख्या प्रतिनिधित्व करने में अधिकतम संभव पूर्ण सापेक्ष एरर है।
- मशीन ईपीएसलॉन, निरूपित , सबसे छोटी संख्या है जैसे कि है। इस प्रकार, जब भी है।
विभिन्न पूर्णांकन नियमों के अंतर्गत राउंडऑफ़ एरर
पूर्णांकन के दो सामान्य नियम: राउंड-बाय-चॉप और राउंड-टू-नियरेस्ट हैं। आईईईई मानक राउंड-टू-नियरेस्ट का उपयोग करता है।
- राउंड-बाय-चॉप: आधार- का विस्तार के बाद -वाँ अंक छोटा कर दिया गया है।
- यह पूर्णांकन नियम अभिनत है क्योंकि यह परिणाम को सदैव शून्य की ओर ले जाता है।
- राउंड-टू-नियरेस्ट: को निकटतम चल बिन्दु संख्या पर व्यवस्थित किया गया है। जब कोई टाई होती है, तो चल बिन्दु संख्या जिसका अंतिम संग्रहीत अंक सम है (साथ ही, अंतिम अंक, द्विचर रूप में, 0 के बराबर है) का उपयोग किया जाता है।
- आईईईई मानक के लिए, जहां आधार , है, इसका अर्थ है कि जब कोई टाई होता है तो इसे पूर्णांकित किया जाता है ताकि अंतिम अंक के बराबर हो।
- यह पूर्णांकन नियम अधिक सटीक है परन्तु अभिकलनीयतः अधिक बहुमूल्य है।
- पूर्णांकन ताकि अंतिम संग्रहीत अंक एक समान हो जब कोई टाई हो, यह सुनिश्चित करता है कि इसे व्यवस्थित रूप से ऊपर या नीचे पूर्णांकित नहीं किया गया है। इसका उद्देश्य केवल अभिनत पूर्णांकन के कारण लंबी गणनाओं में अवांछित धीमे विस्थापन की संभावना से बचना है।
- निम्नलिखित उदाहरण दो पूर्णांकन नियमों के अंतर्गत राउंडऑफ़ एरर के स्तर को दर्शाता है।[3]पूर्णांकन नियम, राउंड-टू-नियरेस्ट, सामान्य तौर पर राउंडऑफ़ एरर को कम करता है।
x | राउंड-बाय-चॉप | राउंडऑफ़ एरर | राउंड-टू-नियरेस्ट | राउंडऑफ़ एरर |
---|---|---|---|---|
1.649 | 1.6 | 0.049 | 1.6 | 0.049 |
1.650 | 1.6 | 0.050 | 1.6 | 0.050 |
1.651 | 1.6 | 0.051 | 1.7 | -0.049 |
1.699 | 1.6 | 0.099 | 1.7 | -0.001 |
1.749 | 1.7 | 0.049 | 1.7 | 0.049 |
1.750 | 1.7 | 0.050 | 1.8 | -0.050 |
आईईईई मानक में राउंडऑफ़ एरर की गणना
मान लीजिए कि राउंड-टू-नियरेस्ट और आईईईई दोहरी परिशुद्धता का उपयोग किया जाता है।
- उदाहरण: दशमलव संख्या में पुनर्व्यवस्थित किया जा सकता है: चूँकि द्विचर बिंदु के दाईं ओर 53-वां बिट 1 है और उसके बाद अन्य गैर-शून्य बिट्स आते हैं, राउंड-टू-नियरेस्ट नियम के लिए एकत्र करने की आवश्यकता होती है, अर्थात 52-वें बिट में 1 बिट जोड़ें। इस प्रकार, आईईईई मानक 9.4 में सामान्यीकृत चल बिन्दु प्रतिनिधित्व है:
- अब प्रतिनिधित्व करते समय राउंडऑफ़ एरर के साथ की गणना की जा सकती है।
यह निरूपण अनंत पश्चभाग को त्यागकर प्राप्त किया गया है:
- तब है।
- इस प्रकार, राउंडऑफ़ एरर है।
मशीन ईपीएसलॉन का उपयोग करके राउंडऑफ़ एरर को मापना
मशीन ईपीएसलॉन ऊपर दिए गए दो पूर्णांकन नियमों का उपयोग करते समय राउंडऑफ़ एरर के स्तर को मापने के लिए इसका उपयोग किया जा सकता है। नीचे सूत्र और संबंधित प्रमाण दिए गए हैं।[3]मशीन ईपीएसलॉन की पहली परिभाषा का उपयोग यहां किया गया है।
प्रमेय
- राउंड-बाय-चॉप:
- राउंड-टू-नियरेस्ट:
प्रमाण
मान लीजिए कि जहाँ और का चल बिन्दु प्रतिनिधित्व है। चूंकि राउंड-बाय-चॉप का उपयोग किया जा रहा है, इसलिए यह है
- ध्यान दें कि राउंड-टू-नियरेस्ट नियम का उपयोग करते समय मशीन ईपीएसलॉन की पहली परिभाषा दूसरी परिभाषा के बराबर नहीं है, लेकिन यह राउंड-बाय-चॉप के बराबर है।
चल बिन्दु अंकगणित के कारण राउंडऑफ़ एरर
भले ही कुछ संख्याओं को चल बिन्दु संख्याओं द्वारा सटीक रूप से दर्शाया जा सकता है और ऐसी संख्याओं को मशीन संख्या कहा जाता है, चल बिन्दु अंकगणित करने से अंतिम परिणाम में राउंडऑफ़ एरर हो सकता है।
जोड़
मशीन जोड़ में जोड़ी जाने वाली दो संख्याओं के दशमलव बिंदुओं को पंक्तिबद्ध करना, उन्हें जोड़ना और फिर परिणाम को चल बिन्दु संख्या के रूप में संग्रहीत करना सम्मिलित है। जोड़ स्वयं उच्च परिशुद्धता में किया जा सकता है लेकिन परिणाम को निर्दिष्ट परिशुद्धता के अनुसार पूर्णांकित किया जाना चाहिए, जिससे राउंडऑफ़ एरर हो सकता है।[3]
- उदाहरण के लिए, से तक आईईईई में दोहरी परिशुद्धता इस प्रकार है,
इसे इस रूप, में सहेजा गया है चूंकि आईईईई मानक में राउंड-टू-नियरेस्ट का उपयोग किया जाता है। इसलिए, के बराबर है। आईईईई में दोहरी परिशुद्धता और राउंडऑफ़ एरर है।
यह उदाहरण दर्शाता है कि बड़ी संख्या और छोटी संख्या को जोड़ने पर राउंडऑफ़ एरर उत्पन्न हो सकता है। घातांकों का मिलान करने के लिए अपूर्णांश में दशमलव बिंदुओं को स्थानांतरित करने से कुछ कम महत्वपूर्ण अंकों की हानि होती है। परिशुद्धता की हानि को समावेश के रूप में वर्णित किया जा सकता है।[8]
ध्यान दें कि दो चल बिन्दु संख्याओं को जोड़ने से राउंडऑफ़ एरर होगा जब उनका योग दोनों में से बड़े से अधिक परिमाण का क्रम होगा।
- उदाहरण के लिए, आधार और परिशुद्धता के साथ एक सामान्यीकृत चल बिन्दु संख्या प्रणाली पर विचार करें। तब और है। ध्यान दें कि , यदि है। राउंडऑफ़ एरर है।
इस प्रकार का एरर एकल संचालन में समावेश एरर के साथ हो सकता है।
गुणन
सामान्य तौर पर, 2-अंकीय अपूर्णांश के उत्पाद में 2पी अंक तक होते हैं, इसलिए परिणाम अपूर्णांश में उपयुक्त नहीं हो सकता है।[3]इस प्रकार परिणाम में राउंडऑफ़ एरर सम्मिलित होगा।
- उदाहरण के लिए, आधार अपूर्णांश अंक अधिकतम के साथ एक सामान्यीकृत चल बिन्दु संख्या प्रणाली पर विचार करें। तब और है। ध्यान दें कि , यदि है। चूंकि वहां अधिकतम अपूर्णांश अंक होते हैं। राउंडऑफ़ एरर होगा।
विभाजन
सामान्य तौर पर, 2पी-अंकीय अपूर्णांश के भागफल में P-अंक से अधिक हो सकता है। इस प्रकार परिणाम में राउंडऑफ़ एरर सम्मिलित होगा।
- उदाहरण के लिए, यदि उपरोक्त सामान्यीकृत चल बिन्दु संख्या प्रणाली अभी भी उपयोग की जा रही है, तो यदि है। तो, पश्चभाग कट गया है।
घटाव
समावेश घटाव पर भी अनुप्रयुक्त होता है।
- उदाहरण के लिए, से तक आईईईई में दोहरी परिशुद्धता इस प्रकार है, इसे इस रूप, में सहेजा गया है। चूंकि आईईईई मानक में राउंड-टू-नियरेस्ट का उपयोग किया जाता है। इसलिए, के बराबर है। आईईईई में दोहरी परिशुद्धता और राउंडऑफ़ एरर है।
दो लगभग बराबर संख्याओं को घटाने को घटाव निरस्तीकरण कहा जाता है।[3] जब अग्रणी अंकों को निरसित कर दिया जाता है, तो परिणाम सटीक रूप से प्रस्तुत करने के लिए बहुत छोटा हो सकता है और इसे केवल के रूप में दर्शाया जाएगा।
- उदाहरण के लिए, मान लीजिए कि और मशीन ईपीएसलॉन की दूसरी परिभाषा का उपयोग यहां किया गया है। का हल क्या है?
यह ज्ञात है कि और लगभग समान संख्याएँ हैं, और है। हालाँकि, चल बिन्दु संख्या प्रणाली में, है। यद्यपि सरलता से इतना बड़ा है कि दोनों उदाहरणों, को देकर दूर कर दिया गया है।
कुछ हद तक बड़े के साथ भी, सामान्य स्थितियों में परिणाम अभी भी काफी अविश्वसनीय है। मान की सटीकता में बहुत अधिक विश्वास नहीं है क्योंकि किसी भी चल बिन्दु संख्या में सबसे अधिक अनिश्चितता सबसे दाईं ओर के अंक हैं।
- उदाहरण के लिए, है। परिणाम स्पष्ट रूप से प्रस्तुत करने योग्य है, परन्तु इसमें बहुत अधिक विश्वास नहीं है।
यह आपत्तिजनक निरस्तीकरण की घटना से निकटता से संबंधित है, जिसमें दो संख्याओं को सन्निकटन के रूप में जाना जाता है।
राउंडऑफ़ एरर का संचय
जब सटीक प्रतिनिधित्व के कारण राउंडऑफ एरर के साथ प्रारंभिक इनपुट पर गणना का अनुक्रम अनुप्रयुक्त किया जाता है तो एरर बढ़ या संचित हो सकता हैं।
अस्थिर कलन विधि
एक कलन विधि या संख्यात्मक प्रक्रिया को स्थिर कहा जाता है यदि इनपुट में छोटे परिवर्तन केवल बहिर्वेश में छोटे परिवर्तन उत्पन्न करते हैं और यदि बहिर्वेश में बड़े परिवर्तन उत्पन्न होते हैं तो अस्थिर कहा जाता है।[9] उदाहरण के लिए, की गणना, "स्पष्ट" विधि का उपयोग करना निकट में अस्थिर है। दो समान मात्राओं को घटाने में हुई बड़ी एरर के कारण, जबकि समतुल्य अभिव्यक्ति स्थिर है।[9]
कुगठित समस्याएँ
यहां तक कि यदि एक स्थिर कलन विधि का उपयोग किया जाता है, तब भी किसी समस्या का समाधान राउंडऑफ़ एरर के संचय के कारण गलत हो सकता है जब समस्या स्वयं खराब स्थिति में हो।
किसी समस्या की प्रतिबंधी संख्या समाधान में सापेक्ष परिवर्तन और इनपुट में सापेक्ष परिवर्तन का अनुपात है।[3]यदि इनपुट में छोटे सापेक्ष परिवर्तन के परिणामस्वरूप समाधान में छोटे सापेक्ष परिवर्तन होते हैं तो एक समस्या अच्छी तरह से अनुकूल होती है। अन्यथा, समस्या कुगठित है।[3]दूसरे शब्दों में, यदि समस्या की स्थिति संख्या 1 से बहुत बड़ी है तो कोई समस्या अनुपयुक्त होती है।
प्रतिबंधी संख्या को राउंडऑफ़ एररों के माप के रूप में प्रस्तुत किया गया है जो कुगठित समस्याओं को हल करते समय उत्पन्न हो सकती हैं।[4]
यह भी देखें
- परिशुद्धता (अंकगणित)
- ट्रंक्शन
- राउंडिंग
- आपत्तिजनक निरस्तीकरण
- चल बिन्दु
- कहन योग कलन विधि
- मशीन ईपीएसलॉन
- विल्किंसन बहुपदीय
संदर्भ
- ↑ Butt, Rizwan (2009), Introduction to Numerical Analysis Using MATLAB, Jones & Bartlett Learning, pp. 11–18, ISBN 978-0-76377376-2
- ↑ Ueberhuber, Christoph W. (1997), Numerical Computation 1: Methods, Software, and Analysis, Springer, pp. 139–146, ISBN 978-3-54062058-7
- ↑ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 Forrester, Dick (2018). गणित/Comp241 संख्यात्मक विधियाँ (व्याख्यान नोट्स). Dickinson College.
- ↑ 4.0 4.1 Chapra, Steven (2012). इंजीनियरों और वैज्ञानिकों के लिए MATLAB के साथ संख्यात्मक पद्धतियाँ लागू की गईं (3rd ed.). McGraw-Hill. ISBN 9780073401102.
- ↑ Laplante, Philip A. (2000). कंप्यूटर विज्ञान, इंजीनियरिंग और प्रौद्योगिकी का शब्दकोश. CRC Press. p. 420. ISBN 978-0-84932691-2.
- ↑ Higham, Nicholas John (2002). संख्यात्मक एल्गोरिदम की सटीकता और स्थिरता (2 ed.). Society for Industrial and Applied Mathematics (SIAM). pp. 43–44. ISBN 978-0-89871521-7.
- ↑ Volkov, E. A. (1990). संख्यात्मक तरीके. Taylor & Francis. p. 24. ISBN 978-1-56032011-1.
- ↑ Biran, Adrian B.; Breiner, Moshe (2010). "5". प्रत्येक इंजीनियर को MATLAB और सिमुलिंक के बारे में क्या पता होना चाहिए. Boca Raton, Florida: CRC Press. pp. 193–194. ISBN 978-1-4398-1023-1.
- ↑ 9.0 9.1 Collins, Charles (2005). "स्थिति एवं स्थिरता" (PDF). Department of Mathematics in University of Tennessee. Retrieved 2018-10-28.
अग्रिम पठन
- Matt Parker (2021). Humble Pi: When Math Goes Wrong in the Real World. Riverhead Books. ISBN 978-0593084694.
बाहरी संबंध
- Roundoff Error at MathWorld.
- Goldberg, David (March 1991). "What Every Computer Scientist Should Know About Floating-Point Arithmetic" (PDF). ACM Computing Surveys. 23 (1): 5–48. doi:10.1145/103162.103163. S2CID 222008826. Retrieved 2016-01-20. ([1], [2])
- 20 Famous Software Disasters