राउंड-ऑफ़ एरर
अभिकलन में, एक राउंडऑफ़ त्रुटि,[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 विस्तारित परिशुद्धता प्रारूप|x86 80-बिट चल बिन्दु में अंकगणित करता है और फिर परिणाम को डबल-परिशुद्धता चल बिन्दु प्रारूप|आईईईई 754 द्विचर64 चल बिन्दु में राउंड करता है।
चल बिन्दु संख्या प्रणाली
चल बिन्दु अंकगणित|चल बिन्दु संख्या प्रणाली की तुलना में, चल बिन्दु अंकगणित|चल बिन्दु संख्या प्रणाली वास्तविक संख्याओं का प्रतिनिधित्व करने में अधिक कुशल है, इसलिए आधुनिक अभिकलकों में इसका व्यापक रूप से उपयोग किया जाता है। जबकि वास्तविक संख्या अनंत और निरंतर हैं, एक चल बिन्दु संख्या प्रणाली परिमित और पृथक है. इस प्रकार, प्रतिनिधित्व त्रुटि, जो राउंडऑफ़ त्रुटि की ओर ले जाती है, चल बिन्दु संख्या प्रणाली के अंतर्गत होती है।
चल बिन्दु संख्या प्रणाली का संकेतन
एक चल बिन्दु संख्या प्रणाली द्वारा चित्रित है पूर्णांक:
- : आधार या मूलांक
- : शुद्धता
- : घातांक सीमा, जहाँ निचली सीमा है और ऊपरी सीमा है
कोई निम्नलिखित रूप है:
जहाँ ऐसा एक पूर्णांक है, और के लिए, एक पूर्णांक है
सामान्यीकृत चल-संख्या प्रणाली
- यदि अग्रणी अंक हो तो चल बिन्दु संख्या प्रणाली सामान्यीकृत हो जाती है जब तक संख्या शून्य न हो, सदैव शून्येतर होती है।[3]चूंकि मंटिसा है , एक सामान्यीकृत प्रणाली में एक गैर-शून्य संख्या का मंटिसा संतुष्ट होता है . इस प्रकार, नॉनज़ेरो आईईईई का सामान्यीकृत रूप चल बिन्दु संख्या है जहाँ . द्विचर में, अग्रणी अंक सदैव होता है इसलिए इसे लिखा नहीं जाता है और इसे अंतर्निहित बिट कहा जाता है। यह अतिरिक्त सटीकता देता है ताकि प्रतिनिधित्व त्रुटि के कारण होने वाली राउंडऑफ़ त्रुटि कम हो जाए।
- चूंकि चल बिन्दु संख्या प्रणाली परिमित और असतत है, यह सभी वास्तविक संख्याओं का प्रतिनिधित्व नहीं कर सकता है जिसका अर्थ है कि अनंत वास्तविक संख्याओं को केवल पूर्णांकन के माध्यम से कुछ सीमित संख्याओं द्वारा अनुमानित किया जा सकता है। किसी दी गई वास्तविक संख्या का चल बिन्दु सन्निकटन द्वारा निरूपित किया जा सकता है.
- सामान्यीकृत चल बिन्दु संख्याओं की कुल संख्या है जहाँ
- धनात्मक या ऋणात्मक होने पर संकेत के चयन की गणना की जाती है
- अग्रणी अंक के चयन की गणना की जाती है
- शेष मंटिसा को गिनता है
- घातांकों के चयन की गणना की जाती है
- संख्या होने पर स्थिति की गणना की जाती है
- सामान्यीकृत चल बिन्दु संख्याओं की कुल संख्या है
आईईईई मानक
आईईईई मानक में आधार द्विचर है, अर्थात , और सामान्यीकरण का उपयोग किया जाता है। आईईईई मानक एक चल बिन्दु शब्द के अलग-अलग क्षेत्रों में संकेत, प्रतिपादक और मंटिसा को संग्रहीत करता है, जिनमें से प्रत्येक की एक निश्चित चौड़ाई (बिट्स की संख्या) होती है। चल बिन्दु संख्याओं के लिए परिशुद्धता के दो सबसे अधिक उपयोग किए जाने वाले स्तर एकल परिशुद्धता और दोहरी परिशुद्धता हैं।
सुव्यतता | संकेत (बिट्स) | प्रतिपादक (बिट्स) | मंटिसा (बिट्स) |
---|---|---|---|
एकल | 1 | 8 | 23 |
दोगुना | 1 | 11 | 52 |
यंत्र ईपीएसलॉन
चल बिन्दु संख्या प्रणाली में राउंडऑफ़ त्रुटि के स्तर को मापने के लिए यंत्र एप्सिलॉन का उपयोग किया जा सकता है। यहां दो अलग-अलग परिभाषाएं दी गई हैं.[3]
- यंत्र एप्सिलॉन, निरूपित , एक गैर-शून्य वास्तविक संख्या का प्रतिनिधित्व करने में अधिकतम संभव सन्निकटन त्रुटि है चल बिन्दु संख्या प्रणाली में।
- यंत्र एप्सिलॉन, निरूपित , सबसे छोटी संख्या है ऐसा है कि . इस प्रकार, जब कभी भी .
विभिन्न राउंडिंग नियमों के अंतर्गत राउंडऑफ़ त्रुटि
गोल करने के दो सामान्य नियम हैं, राउंड-बाय-चॉप और राउंड-टू-नियरेस्ट। IEEE मानक राउंड-टू-नियरेस्ट का उपयोग करता है।
- गोल-दर-काट: आधार- का विस्तार के बाद छोटा कर दिया गया है -वाँ अंक.
- यह पूर्णांकन नियम पक्षपाती है क्योंकि यह परिणाम को सदैव शून्य की ओर ले जाता है।
- राउंड-टू-नियरेस्ट: को निकटतम चल बिन्दु संख्या पर व्यवस्थित किया गया है . जब कोई टाई होती है, तो चल बिन्दु संख्या जिसका अंतिम संग्रहीत अंक सम है (साथ ही, अंतिम अंक, द्विचर रूप में, 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