फ़्लोटिंग-पॉइंट अंकगणित वास्तविक गणित से काफी अलग है। विशेष रूप से, फ़्लोटिंग-पॉइंट अंकगणित सहयोगी या वितरक नहीं है। इसलिए परिमित-परिशुद्धता फ्लोटिंग-पॉइंट अंकगणित के साथ मूल्यांकन किए जाने पर गणितीय रूप से समकक्ष अभिव्यक्ति आवश्यक नहीं होती हैं। यह तब भी मामला है जब व्यक्तिगत संचालन, जैसे जोड़, घटाव, गुणा, विभाजन, और वर्ग रूट IEEE-754 floating-point standard द्वारा आवश्यक अनुसार सही ढंग से गोल किए गए परिणाम उत्पन्न करते हैं।
इस मामले में g()
औसत पर f()
से अधिक सटीक होगा, और x = 500
के विशिष्ट मामले के लिए भी अधिक सटीक होगा। कारण यह है कि f()
घटिया रद्दीकरण से पीड़ित है। यह दो फ़्लोटिंग-पॉइंट संख्याओं के प्रभावी घटाव के दौरान होता है जो लगभग परिमाण में समान होते हैं। प्रमुख अंक घटाव के दौरान रद्द करते हैं, जो बाद के गणना में प्रवेश करने वाले कुछ शेष पीछे वाले अंक छोड़ते हैं। साथ ही, घटाए जा रहे मूल संचालन के पिछड़े अंकों में जमा की गई किसी भी गोल त्रुटि को बाद की गणना द्वारा बढ़ाया जा सकता है। उदाहरण के साथ एक विस्तारित स्पष्टीकरण this Wikipedia article में पाया जा सकता है।
इस मामले में, sqrt(x+1)
और sqrt(x)
लगभग समान परिमाण हैं, विशेष रूप से x
की परिमाण के रूप में। x = 500
के उदाहरण का उपयोग और IEEE-754 एकल परिशुद्धता गणित को रोजगार, हम पाते हैं:
x = 500 f(x) = 0x1.659ae0p+3 (11.175156) reference = 0x1.659798p+3 (11.174755)
x = 500 g(x) = 0x1.659798p+3 (11.174755) reference = 0x1.659798p+3 (11.174755)
त्रुटि f(500)
में 420 ulps है, जबकि g(500)
बचाता है सही ढंग से एकल परिशुद्धता परिणाम गोल।
SO के लिए Waaayay ऑफ-विषय, इसके बजाय [math.stackexchange] (http://math.stackexchange.com/) आज़माएं। –
हैलो क्लेयर, स्टैक एक्सचेंज को विभिन्न विषयों पर केंद्रित करने, एकाधिक पृष्ठों में विभाजित किया गया है। उनमें से एक है [गणित] (http://math.stackexchange.com/)। आपको वहां अपने प्रश्न पूछना चाहिए। – Stefan
धन्यवाद दोस्तों, मैं बस इतना करूंगा कि –