Catastrophic cancellation
In numerical analysis, catastrophic cancellation[1][2] is the phenomenon that subtracting good approximations to two nearby numbers may yield a very bad approximation to the difference of the original numbers.
For example, if there are two studs, one long and the other long, and they are measured with a ruler that is good only to the centimeter, then the approximations could come out to be and . These may be good approximations, in relative error, to the true lengths: the approximations are in error by less than 0.2% of the true lengths, .
However, if the approximate lengths are subtracted, the difference will be , even though the true difference between the lengths is . The difference of the approximations, , is in error by almost 100% of the magnitude of the difference of the true values, .
Catastrophic cancellation is not affected by how large the inputs are—it applies just as much to large and small inputs. It depends only on how large the difference is, and on the error of the inputs. Exactly the same error would arise by subtracting from as approximations to and , or by subtracting from as approximations to and .
Catastrophic cancellation may happen even if the difference is computed exactly, as in the example above—it is not a property of any particular kind of arithmetic like floating-point arithmetic; rather, it is inherent to subtraction, when the inputs are approximations themselves. Indeed, in floating-point arithmetic, when the inputs are close enough, the floating-point difference is computed exactly, by the Sterbenz lemma—there is no rounding error introduced by the floating-point subtraction operation.
Formal analysis
Formally, catastrophic cancellation happens because subtraction is ill-conditioned at nearby inputs: even if approximations and have small relative errors and from true values and , respectively, the relative error of the difference of the approximations from the difference of the true values is inversely proportional to the difference of the true values:
Thus, the relative error of the exact difference of the approximations from the difference of the true values is
which can be arbitrarily large if the true values and are close.
In numerical algorithms
لا يؤدي طرح الأعداد المتقاربة في العمليات الحسابية ذات الفاصلة العائمة دائمًا إلى إلغاء كارثي، أو حتى أي خطأ - فبحسب نظرية ستيربنز ، إذا كانت الأعداد متقاربة بدرجة كافية، يكون الفرق في الفاصلة العائمة دقيقًا. لكن الإلغاء قد يُضخّم الأخطاء في المدخلات الناتجة عن التقريب في عمليات حسابية أخرى ذات فاصلة عائمة.
مثال: الفرق بين مربعين
الأرقام المعطاةو، المحاولة الساذجة لحساب الدالة الرياضية باستخدام الحساب ذي الفاصلة العائمة يخضع للإلغاء الكارثي عندماوتكون القيم متقاربة في المقدار، لأن عملية الطرح قد تكشف أخطاء التقريب في عملية التربيع. التحليل البديل ، يتم تقييمها بواسطة الحساب ذي الفاصلة العائمة [ 2 ] يتجنب الإلغاء الكارثي لأنه يتجنب إدخال خطأ التقريب الذي يؤدي إلى عملية الطرح.
على سبيل المثال، إذا و ثم القيمة الحقيقية للفرق يكون في حساب IEEE 754 الثنائي 64 ، يتم تقييم التحليل البديل يعطي النتيجة الصحيحة تمامًا (بدون تقريب)، ولكن تقييم التعبير البسيط يعطي العدد العشري ، منها أقل من نصف الأرقام صحيحة، والأرقام الأخرى (المسطرة) تعكس الحدود المفقودة، مفقودة بسبب التقريب عند حساب القيم التربيعية الوسيطة.
مثال: دالة الجيب العكسي المركبة
عند حساب دالة الجيب العكسي المركبة ، قد يميل المرء إلى استخدام الصيغة اللوغاريتمية مباشرة:
لكن، لنفترضل. ثمو؛ أطلق على الفرق بينهما اسم— فرق ضئيل للغاية، يكاد يكون معدوماً. إذايتم تقييمها باستخدام الحساب ذي الفاصلة العائمة مما يعطي
مع أي خطأ، أينيشير إلى تقريب الأرقام العشرية، ثم حساب الفرق
من رقمين متجاورين، كلاهما قريب جدًا منقد يؤدي ذلك إلى تضخيم الخطأفي مدخل واحد بمعامل— عامل كبير جداً لأنكانت قريبة من الصفر. قد يؤدي هذا إلى جعل الخطأ النهائي كبيرًا جدًا حتى لو كان الخطأفي مجال الحوسبةصغير جداً.
على سبيل المثال، لنفترضالقيمة الحقيقية لـيبلغ تقريبًالكن باستخدام الصيغة اللوغاريتمية البسيطة في حساب IEEE 754 الثنائي 64 - والتي تحسببالضبط، ولا ينتج عنه سوى خطأ تقريب واحد منفيقد يعطي العدد العشري الأقرب إلى، حيث كانت خمسة أرقام فقط من أصل ستة عشر رقماً صحيحة، أما الباقي (المسطر تحته) فكانت جميعها خاطئة.
في الحالة المذكورة أعلاه لـلباستخدام الهويةيتجنب الإلغاء لأنهلكنلذا فإن عملية الطرح هي في الواقع عملية جمع بنفس الإشارة التي لا تلغي بعضها بعضاً.
مثال: التحويل الجذري
غالبًا ما تُكتب الثوابت العددية في برامج الحاسوب بالنظام العشري، كما هو الحال في جزء لغة C لتعريف وتهيئة متغير ثنائي IEEE 754 باسم . ومع ذلك،doublex=1.000000000000001;xليس عددًا ثنائيًا من نوع الفاصلة العائمة 64 بت؛ أقرب عدد من هذا النوع، والذي xسيتم تهيئته في هذا الجزء، هوعلى الرغم من أن تحويل الأساس من نظام الفاصلة العائمة العشري إلى نظام الفاصلة العائمة الثنائي لا يتسبب إلا في خطأ نسبي صغير، إلا أن الإلغاء الكارثي قد يضخمه إلى خطأ أكبر بكثير:
double x = 1.000000000000001 ; // تُقرّب إلى 1 + 5*2^{-52} double y = 1.000000000000002 ; // تُقرّب إلى 1 + 9*2^{-52} double z = y - x ; // الفرق يساوي بالضبط 4*2^{-52}الفرقيكون. الأخطاء النسبية xمنومنyكلاهما أدناهويتم حساب عملية الطرح ذات الفاصلة العائمة y - xبدقة بواسطة مبرهنة ستيربنز.
لكن على الرغم من أن المدخلات تمثل تقريبات جيدة، وعلى الرغم من أن عملية الطرح تُحسب بدقة، فإن الفرق بين التقريباتيبلغ الخطأ النسبي أكثر منمن الفرقبالنسبة للقيم الأصلية كما هي مكتوبة بالنظام العشري: أدى الإلغاء الكارثي إلى تضخيم خطأ صغير في تحويل الأساس إلى خطأ كبير في الناتج.
إلغاء غير مقصود
يُعدّ الإلغاء مفيدًا ومرغوبًا فيه أحيانًا في الخوارزميات العددية. على سبيل المثال، تعتمد خوارزميتا 2Sum و Fast2Sum على هذا الإلغاء بعد حدوث خطأ في التقريب لحساب الخطأ بدقة في عملية جمع الأعداد العشرية كعدد عشري بحد ذاته.
الوظيفة ، إذا تم تقييمها بشكل ساذج عند النقاط ، سيفقد معظم أرقامفي التقريب ومع ذلك، فإن الوظيفة نفسه مهيأ بشكل جيد عند المدخلات القريبةإعادة كتابتها على النحو التالي: استغلال الإلغاء في لتجنب الخطأ من يتم تقييمها مباشرة. [ 2 ] ينجح هذا بسبب الاختزال في البسط والإلغاء في المقام يتعارضان مع بعضهما البعض؛ الوظيفة مشروطة بشكل جيد بالقرب من الصفر بحيث يعطي تقريبًا جيدًا لـ وبالتالي يعطي تقريبًا جيدًا لـ .
مراجع
- ^ مولر، جان ميشيل. بروني، نيكولاس؛ دي دينشين، فلوران؛ جانرود، كلود بيير؛ جولديس، ميوارا؛ لوفيفر، فنسنت؛ ملكيوند، غيوم؛ ريفول, ناتالي ; توريس، سيرج (2018). دليل حساب النقطة العائمة ( الطبعة الثانية). Gewerbestrasse 11، 6330 شام، سويسرا: بيركهاوسر. ص. 102. دوى : 10.1007/978-3-319-76526-6 . رقم ISBN 978-3-319-76525-9.
{{cite book}}: CS1 maint: location ( link ) - 1 2 3 غولدبيرغ، ديفيد (مارس 1991). "ما يجب أن يعرفه كل عالم حاسوب عن حسابات الفاصلة العائمة" . مجلة ACM Computing Surveys . 23 (1). نيويورك، نيويورك، الولايات المتحدة: جمعية آلات الحوسبة: 5-48 . doi : 10.1145/103162.103163 . ISSN 0360-0300 . S2CID 222008826. تاريخ الاسترجاع: 17 سبتمبر 2020 .
- التحليل العددي
