"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन में फ़्लोटिंग पॉइंट त्रुटियों को कैसे कम करें?

पायथन में फ़्लोटिंग पॉइंट त्रुटियों को कैसे कम करें?

2024-11-21 को प्रकाशित
ब्राउज़ करें:570

How to Mitigate Floating Point Errors in Python?

पायथन में फ़्लोटिंग पॉइंट त्रुटियों से बचना

प्रोग्रामिंग के दायरे में, फ़्लोटिंग पॉइंट गणनाओं की जटिलताओं को समझना आवश्यक है, क्योंकि वे कर सकते हैं यदि ठीक से प्रबंधन न किया जाए तो अप्रत्याशित त्रुटियां उत्पन्न हो जाती हैं। यह आलेख एक व्यावहारिक उदाहरण का पता लगाता है जो फ़्लोटिंग पॉइंट अंकगणित के नुकसान पर प्रकाश डालता है।

def sqrt(num): जड़ = 0.0 जबकि रूट * रूट इस फ़ंक्शन का उपयोग करते हुए, हमें आश्चर्यजनक परिणाम मिलते हैं:

>>> sqrt(4) 2.000000000000013 >>> वर्ग(9) 3.00999999999998

def sqrt(num):
    root = 0.0
    while root * root 

त्रुटि को समझना

>>> sqrt(4)
2.0000000000000013
>>> sqrt(9)
3.00999999999998
उपरोक्त कोड में, समस्या इस वेतन वृद्धि का उपयोग मूल मूल्य को बढ़ाने के लिए किया जाता है। जबकि हम 0.01 का मान जोड़ने का इरादा रखते हैं, फ़्लोटिंग पॉइंट रजिस्टर में संग्रहीत वास्तविक मान थोड़ा अलग है और 0.01 से अधिक है।

त्रुटि को संबोधित करना

से बचने के लिए फ़्लोटिंग पॉइंट त्रुटियाँ, विभिन्न तरीकों को नियोजित किया जा सकता है:

दशमलव का उपयोग करना मॉड्यूल:

पायथन में दशमलव मॉड्यूल अधिक सटीक दशमलव अंकगणित प्रदान करता है। कोड में फ्लोट को दशमलव से बदलने पर, हमें अधिक सटीक परिणाम मिलते हैं:

  • दशमलव से दशमलव को डी के रूप में आयात करें डीईएफ़ वर्ग(संख्या): जड़ = डी(0) जबकि रूट * रूट अब, फ़ंक्शन सटीक परिणाम देता है, जैसे: ``` >>> वर्ग(4) दशमलव('2.00') >>> वर्ग(9) दशमलव('3.00') ```
from decimal import Decimal as D

def sqrt(num):
    root = D(0)
    while root * root यदि दशमलव मॉड्यूल का उपयोग करना एक विकल्प नहीं है, तो दूसरा तरीका फ़्लोटिंग पॉइंट मानों का उपयोग करना है जो बाइनरी में बिल्कुल प्रस्तुत करने योग्य हैं, जैसे 1/2**जे. इसमें अधिक जटिल कोड शामिल है, लेकिन यह सटीक वृद्धि सुनिश्चित करता है।
>>> sqrt(4)
2.0000000000000013
>>> sqrt(9)
3.00999999999998
    संख्यात्मक विश्लेषण तकनीकों को नियोजित करना:
  • संख्यात्मक विश्लेषण जटिल गणितीय गणनाओं को संभालने के लिए विशेष तरीके प्रदान करता है। न्यूटन की विधि जैसी तकनीकें सटीक वर्गमूल सन्निकटन प्रदान कर सकती हैं।
विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: 1729493718 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3