राउंड-ऑफ़ एरर: Difference between revisions
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=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="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>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>\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_\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>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 | ||
! राउंड | ! चोंप के द्वारा राउंड | ||
! राउंडऑफ़ त्रुटि | ! राउंडऑफ़ त्रुटि | ||
! राउंड-से-निकटतम | ! राउंड-से-निकटतम | ||
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 है और उसके बाद अन्य गैर-शून्य बिट्स आते हैं, राउंड- | * उदाहरण: दशमलव संख्या <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> है। | ||
===यंत्र ईपीएसलॉन का उपयोग करके राउंडऑफ़ त्रुटि को मापना === | ===यंत्र ईपीएसलॉन का उपयोग करके राउंडऑफ़ त्रुटि को मापना === | ||
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> | ||
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> चूंकि आईईईई मानक में राउंड- | \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> | ||
ध्यान दें कि दो चल बिन्दु संख्याओं को जोड़ने से राउंडऑफ़ त्रुटि होगी जब उनका योग दोनों में से बड़े से अधिक परिमाण का क्रम होगा। | ध्यान दें कि दो चल बिन्दु संख्याओं को जोड़ने से राउंडऑफ़ त्रुटि होगी जब उनका योग दोनों में से बड़े से अधिक परिमाण का क्रम होगा। | ||
Line 171: | Line 171: | ||
=== गुणन === | === गुणन === | ||
सामान्य तौर पर, 2-अंकीय | सामान्य तौर पर, 2-अंकीय अपूर्णांश के उत्पाद में 2पी अंक तक होते हैं, इसलिए परिणाम अपूर्णांश में फिट नहीं हो सकता है।<ref name="Forrester_2018"/>इस प्रकार परिणाम में राउंडऑफ़ त्रुटि सम्मिलित होगी। | ||
* उदाहरण के लिए, आधार के साथ एक सामान्यीकृत चल बिन्दु संख्या प्रणाली पर विचार करें <math>\beta=10</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पी-अंकीय | सामान्य तौर पर, 2पी-अंकीय अपूर्णांश के भागफल में P-अंक से अधिक हो सकता है। इस प्रकार परिणाम में राउंडऑफ़ त्रुटि सम्मिलित होगी। | ||
* उदाहरण के लिए, यदि उपरोक्त सामान्यीकृत चल बिन्दु संख्या प्रणाली अभी भी उपयोग की जा रही है, तो <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>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> काट दिया जाता है. | ||
Line 188: | Line 188: | ||
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> इसे इस रूप में सहेजा गया है <math>\underbrace{1.00\ldots 0}_\text{53 bits}\times 2^{0}</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"/> | दो लगभग बराबर संख्याओं को घटाने को घटाव रद्दीकरण कहा जाता है।<ref name="Forrester_2018"/> | ||
Line 203: | Line 203: | ||
== राउंडऑफ़ त्रुटि का संचय == | == राउंडऑफ़ त्रुटि का संचय == | ||
जब सटीक प्रतिनिधित्व के कारण राउंडऑफ त्रुटि के साथ प्रारंभिक | जब सटीक प्रतिनिधित्व के कारण राउंडऑफ त्रुटि के साथ प्रारंभिक निविष्टि पर गणना का अनुक्रम अनुप्रयुक्त किया जाता है तो त्रुटियां बढ़ या संचित हो सकती हैं। | ||
=== अस्थिर कलन विधि === | === अस्थिर कलन विधि === | ||
एक कलन विधि या संख्यात्मक प्रक्रिया को स्थिर कहा जाता है यदि | एक कलन विधि या संख्यात्मक प्रक्रिया को स्थिर कहा जाता है यदि निविष्टि में छोटे परिवर्तन केवल आउटपुट में छोटे परिवर्तन उत्पन्न करते हैं, और यदि आउटपुट में बड़े परिवर्तन उत्पन्न होते हैं तो अस्थिर कहा जाता है।<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"/> | ||
Line 214: | Line 214: | ||
यहां तक कि अगर एक स्थिर कलन विधि का उपयोग किया जाता है, तब भी किसी समस्या का समाधान राउंडऑफ़ त्रुटि के संचय के कारण गलत हो सकता है जब समस्या स्वयं खराब स्थिति में हो। | यहां तक कि अगर एक स्थिर कलन विधि का उपयोग किया जाता है, तब भी किसी समस्या का समाधान राउंडऑफ़ त्रुटि के संचय के कारण गलत हो सकता है जब समस्या स्वयं खराब स्थिति में हो। | ||
किसी समस्या की [[शर्त संख्या]] समाधान में सापेक्ष परिवर्तन और | किसी समस्या की [[शर्त संख्या]] समाधान में सापेक्ष परिवर्तन और निविष्टि में सापेक्ष परिवर्तन का अनुपात है।<ref name="Forrester_2018"/>यदि निविष्टि में छोटे सापेक्ष परिवर्तन के परिणामस्वरूप समाधान में छोटे सापेक्ष परिवर्तन होते हैं तो एक समस्या अच्छी तरह से अनुकूल होती है। अन्यथा, समस्या ख़राब है.<ref name="Forrester_2018"/>दूसरे शब्दों में, यदि समस्या की स्थिति संख्या 1 से बहुत बड़ी है तो कोई समस्या अनुपयुक्त होती है। | ||
शर्त संख्या को राउंडऑफ़ त्रुटियों के माप के रूप में पेश किया गया है जो खराब स्थिति वाली समस्याओं को हल करते समय उत्पन्न हो सकती हैं।<ref name="Chapra_2012"/> | शर्त संख्या को राउंडऑफ़ त्रुटियों के माप के रूप में पेश किया गया है जो खराब स्थिति वाली समस्याओं को हल करते समय उत्पन्न हो सकती हैं।<ref name="Chapra_2012"/> |
Revision as of 23:30, 22 July 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) आती है। यह तब हो सकता है, उदाहरण के लिए, जब सॉफ़्टवेयर x86 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