this प्रश्न से संबंधित है, संख्या स्वरूपण के साथ वास्तव में क्या हो रहा है?गणित आंतरिक संख्या प्रारूप और परिशुद्धता
In[3] := InputForm @ 3.12987*10.^-16
Out[3] := 3.12987`*^-16
In[4] := InputForm @ 3.12987*10.^-17
Out[4] := 3.1298700000000004`*^-17
जबकि *^
, संक्रमण लेता है थोड़ा आगे यद्यपि यह मशीन परिशुद्धता कि शुरू होता है:
In[1] := InputForm @ 3.12987*10^-270
Out[1] := 3.12987`*^-270
In[2] := InputForm @ 3.12987*10^-271
Out[2] := 3.1298700000000003`*^-271
आप गुणक के रूप में *10.^
का उपयोग करते हैं संक्रमण जहां भोलेपन से यह होने की अपेक्षा करेंगे है बाहर flaking:
In[5] := InputForm @ 3.12987*^-308
Out[5] := 3.12987`*^-308
In[6] := InputForm @ 3.12987*10.^-309
Out[6] := 3.12987`15.954589770191008*^-309
आधार शुरू होता है कुछ समय बाद
को तोड़नेIn[7] := InputForm @ 3.12987*^-595
Out[7] := 3.12987`15.954589770191005*^-595
In[8] := InputForm @ 3.12987*^-596
Out[8] := 3.1298699999999999999999999999999999999999`15.954589770191005*^-596
मुझे लगता है कि ये संक्रमण इस प्रारूप से संबंधित हैं जिसमें मैथमैटिका आंतरिक रूप से इसकी संख्या रखती है, लेकिन क्या कोई जानता है, या किसी शिक्षित अनुमान को खतरे में डाल सकता है, कैसे?
+1। –
अंतर्दृष्टि के लिए धन्यवाद। मनमाने ढंग से परिशुद्धता के संक्रमण ने मुझे हमेशा भ्रमित कर दिया है, खासकर जब मुझे फ़ाइल में बड़ी मात्रा में डेटा लिखना पड़ता है और अचानक प्रत्येक संख्या में सटीक डेटा के 16 वर्ण जोड़े जाते हैं! – Timo
@ टिमो 16 अक्षर अत्यधिक लगता है। क्या आपका मतलब है कि आपको जो संख्या मिलती है वह मशीन की तुलना में लगभग 16 बाइट बड़ी होती है? या आप उस छोटी सी घटना को देखते हैं? यदि प्रश्न संख्याएं वास्तव में मशीन युगल की आकार सीमा के भीतर हैं तो मुझे पोस्ट करने या मुझे एक उदाहरण भेजने के लिए स्वतंत्र महसूस करें, क्योंकि यह आपके कोड में या गणित के पुट या निर्यात में किसी भी समस्या का संकेत दे सकता है, जो भी आप उपयोग कर रहे हैं। –