द्वारा आइए निरूपित (मैं विभाजन ऑपरेटर की परिक्रमा संस्करण प्राप्त करने की कोशिश आलसी था) फ्लोटिंग प्वाइंट सटीक गुणा (के अनुरूप ), इसके अलावा ( (), और घटाव ) क्रमशः। हम मान लेंगे (IEEE-754) कि उन सभी के लिए
जहाँ मशीन कारण सापेक्ष त्रुटि पर एक ऊपरी बाउंड देने वाली मशीन है। हम निम्नलिखित लेम्मा (सभी को ग्रहण करते हुए भी उपयोग करेंगे , और बहुत बड़ी नहीं है) जिसे आसानी से सिद्ध किया जा सकता है:
× + - [ एक्स ⊕ y ] = ( x + y ) ( 1 + δ ⊕ ) ,⊗,⊕,⊖×+−ε हूँ एक सी एच | δ i | ≤ ε मीटर एक ग ज मी मी Π मैं = 1 ( 1 + δ मैं ) = 1 + θ ( मीटर ) ,
[x⊕y]=(x+y)(1+δ⊕),|δ⊕|≤ϵmach,
εm a c h| δमैं| ≤ εm a c hमΠमैं = १म( 1 + δ)मैं) = 1 + θ ( मीटर ) ,| θ(मीटर) | ≤ मीटर εm a c h1 - एम ϵm a c h
चलो परिभाषित सच समारोह कि वास्तविक संख्या पर चल रही है के रूप मेंx , y , zचएक्स , वाई, ज़ेड
च( एक्स , वाई, ज़ेड) = ( x × z)) - ( y× z)
और IEEE- संगत फ्लोटिंग-पॉइंट अंकगणित में फ़ंक्शन कार्यान्वयन के दो संस्करण जैसे कि और जो फ़्लोटिंग-पॉइंट अभ्यावेदन , इस प्रकार है: ~ च 2 ~ एक्स =एक्स(1+δएक्स), ~ y , ~ zच1~च2~एक्स~= एक्स ( 1 + δ)एक्स) , y~, ज़ेड~
च1~( x)~, वाई~, ज़ेड~) = ( एक्स )~⊗ z~) ⊖ ( y~⊗ z~) ,
च2~( x)~, वाई~, ज़ेड~) = ( एक्स )~⊖ य~) ⊗ z~।
लिए त्रुटि विश्लेषण :च1~
च1~= ( ( एक्स ( 1 + δएक्स) × z( 1 + δ)z) ) ( 1 + δ⊗x z)( x)~⊗ z~)- ( y( 1 + δ)y) × z( 1 + δ)z) ) ( 1 + δ⊗yz)( y~⊗ z~)) ( 1 )+ δ⊖)= एक्स जेड( 1 + δ)एक्स) ( 1 + δz) ( 1 + δ⊗x z) ( 1 + δ⊖) - वाईz( 1 + δ)y) ( 1 + δz) ( 1 + δ⊗yz) ( 1 + δ⊖)= एक्स जेड( 1 + θ)x z, १) - वाईz( 1 + θ)yz, १) का है ।
यहाँ, ।
| θx z, १| , | θyz, १| ≤ 4 εm a c h1 - 4 ϵm a c h
इसी तरह,
यहां,। ।च2~
च2~= ( ( ( एक्स ( 1 + δएक्स) - वाई( 1 + δ)y) ( 1+δ⊖x य) ) × ( z )( 1 + δ)z) ) ) ( 1 + δ⊗)= एक्स जेड( 1 + δ)एक्स) ( 1 + δz) ( 1 + δ⊖x य) ( 1 + δ⊗) - वाईz( 1 + δ)y) ( 1 + δz) ( 1 + δ⊖x य) ( 1 + δ⊗)= एक्स जेड( 1 + θ)x , २) - वाईz( 1 + θ)y, २) का है ।
| θx , २| , | θy, २| ≤ 4 εm a c h1 - 4 ϵm a c h
इसलिए, दोनों और हमें एक ही प्रकार के भाव मिले, इस प्रकार मैं यह नहीं देखता कि एक संख्यात्मक दृष्टिकोण से दूसरे कार्यान्वयन को क्यों पसंद किया जाएगा (इस तथ्य को छोड़कर कि " ) की तुलना में केवल 2 फ़्लोटिंग-पॉइंट ऑपरेशन करता है ।च1~च2~च2~च1~
सापेक्ष त्रुटि की गणना करने से पता चलेगा, कि समस्या इस तथ्य से आती है कि और बहुत करीब ( रद्द ) हो सकते हैं।xy
|f1~−f||f|=|xz+xzθxz,1−yz−yzθyz,1−(xz−yz)||xz−yz|=|xθxz,1−yθyz,1||x−y|≤|x|+|y||x−y|4ϵmach1−4ϵmach,
|f2~−f||f|=|xz+xzθx,2−yz−yzθy,2−(xz−yz)||xz−yz|=|xθx,2−yθy,2||x−y|≤|x|+|y||x−y|4ϵmach1−4ϵmach.
आधार पर दो कार्यान्वयनों में से थोड़ा अंतर मामूली रूप से बेहतर या बदतर बना सकता है । हालांकि, मुझे संदेह है कि इसका कोई महत्व हो सकता है। परिणाम पूरी तरह से समझ में आता है, क्योंकि कोई फर्क नहीं पड़ता है, अगर आपको गणना करना है , जब और मानों में काफी करीब हैं (आपके द्वारा काम करने वाले परिशुद्धता के लिए) फ्लोटिंग-पॉइंट अंकगणित का उपयोग करके, कोई स्केलिंग आपकी मदद नहीं करेगी: आप पहले से ही परेशानी में हैं।x , y , z ( x - y ) x yθx,y,z(x−y)xy
नायब: उपरोक्त सभी चर्चाओं में कोई अतिप्रवाह या अंतर्प्रवाह नहीं है, अर्थात , सभी सामान्य फ्लोटिंग-पॉइंट नंबरों का सेट है।एफ 0x,y,z,f(x,y,z)∈F0F0