علوم وفضاء

خطأ التكميم: متى يفشل حد نصف الخطوة؟

شبكة أرباع من −1 إلى 0.75؛ المدخل 0.9 يقرب إلى 1 ثم يتشبع إلى 0.75 بخطأ −0.15.
خطوة 0.25 وحد نصف الخطوة 0.125؛ التشبع يجعل مقدار خطأ هذا المدخل 0.15.

تختلف قواعد التقريب نحو الأقرب والصفر والسالب. [1] لكن حد الخطأ يتوقف أيضًا على القيم المتاحة. سنحسب شبكة محدودة يظهر عند طرفيها أثر التشبع.

حدد القيم المتاحة وإشارة الخطأ

نسمي تحويل عدد إلى إحدى القيم المحددة تكميمًا في هذا المثال. نختار مجموعة G={m/4: m=−4،−3،…،3}. قيمها −1،−0.75،−0.5،−0.25،0،0.25،0.5،0.75.

المسافة بين قيمتين متتاليتين Δ=1/4. الطرف الأدنى L=−1 والأعلى U=3/4، وعدد القيم ثمانية. الصفر قيمة متاحة، لكن الطرفين غير متناظرين؛ لم نضع +1 ضمن المجموعة.

سنقرب أولًا إلى مضاعف للخطوة على شبكة غير محدودة، ثم نقيّد النتيجة بالمجال [L,U]. هذا تعريف العملية التي نحسبها، وليس إعداد جهاز أو برنامج نفذناه.

إذا سمينا الناتج النهائي Q(x)، فالخطأ الموقّع e=Q(x)−x. النتيجة الأقل من الأصل تعطي خطأ سالبًا، والأعلى تعطي خطأ موجبًا. أما مقدار الخطأ فهو |e|، ولا يحمل إشارة.

الأعداد هنا بلا وحدة فيزيائية. إذا ربطناها لاحقًا بجهد أو طول، نحتاج مقياسًا ووحدة جديدين؛ لا نقرأ 0.25 تلقائيًا على أنه فولت أو متر.

قارن القواعد قبل تقييد المدى

نستخدم الأقرب مع تعادل بعيد عن الصفر، ونحو الصفر، ونحو السالب؛ تقابلها هنا قواعد Round وZero وFloor الموثقة. [1]

خذ x=3/8=0.375. القيمتان المحيطتان 1/4 و 1/2؛ المسافة إلى كل منهما 1/8. للأقرب مع قاعدتنا نختار 1/2، فيكون e=1/8. نحو الصفر ونحو السالب نختار 1/4، فيكون e=−1/8.

للعدد −3/8، نختار −1/2 عند تعادل الأقرب، فيكون e=−1/8. نحو الصفر نختار −1/4، فيكون e=+1/8؛ أما نحو السالب فنختار −1/2. التقريب نحو السالب ليس مرادفًا للتقريب نحو الصفر للأعداد السالبة.

لبرهان حد الأقرب على الشبكة غير المحدودة، اكتب x=mΔ+r، حيث m عدد صحيح و 0≤r<Δ. المسافتان إلى mΔ و(m+1)Δ هما r و Δ−r. أصغرهما لا يزيد على Δ/2، حتى عند التعادل.

نحو السالب تكون النتيجة mΔ، ومن ثم e=−r، أي −Δ<e≤0. نحو الصفر نختار أقرب مضاعف في اتجاه الصفر؛ لذلك يكون |e|<Δ، والخطأ غير موجب للموجب وغير سالب للسالب.

في Δ=1/4، العدد 0.49 يصبح 0.25 نحو الصفر أو السالب، وخطؤه −0.24، وهو أكبر مقدارًا من 0.125. للأقرب يصبح 0.5 بخطأ 0.01. هذا مثال داخل المدى يوضح ضرورة ذكر القاعدة.

لم نفترض توزيعًا احتماليًا للمدخلات. لا نحول حدود الخطأ إلى متوسط صفري أو تباين محدد، ولا ندعي أن الأخطاء مستقلة عن الإشارة.

احسب ما يفعله التشبع عند الطرفين

في معالجة التجاوز بالتشبع، تستخدم قيمة الطرف الأعلى أو الأدنى الممكن تمثيلها. [2] نطبق ذلك بعد التقريب في شبكتنا؛ لا نستخدم الالتفاف إلى طرف آخر.

عرّف C(y)=L إذا y<L، وC(y)=U إذا y>U، وC(y)=y فيما عدا ذلك. للعملية إلى الأقرب يكون Q(x)=C(R(x))، حيث R يقرب على شبكة المضاعفات غير المحدودة مع التعادل بعيدًا عن الصفر.

عند x=9/10=0.9، أقرب مضاعف لربع هو 1. لا تسمح G بهذه القيمة، فيعيدها التشبع إلى 3/4=0.75. الخطأ 3/4−9/10=−3/20=−0.15، ومقداره يتجاوز 1/8.

وعند x=−6/5=−1.2، يقرب الأقرب إلى −5/4=−1.25، ثم يعيده التشبع إلى −1. الخطأ −1−(−1.2)=1/5=0.2. صغر خطأ خطوة التقريب الأولى لا يضمن صغر الفرق النهائي.

داخل [L,U] توجد قيمتان محيطتان أو قيمة طرفية، فيبقى بُعد الأقرب النهائي≤Δ/2. أما إذا x>U فإن Q(x)=U، وخطؤه المطلق x−U؛ وإذا x<L فإن Q(x)=L، وخطؤه المطلق L−x.

إذن شرط |Q(x)−x|≤Δ/2 لهذا الأقرب المشبع هو بالضبط L−Δ/2≤x≤U+Δ/2. في الأرقام المختارة، المجال الموسع هو [−9/8،7/8]=[−1.125،0.875]. الطرفان داخل الشرط لأن الحد غير صارم.

ليس كل خروج عن [L,U] تجاوزًا لحد نصف الخطوة. عند 0.8، النتيجة 0.75 والخطأ −0.05. وعند 0.875، الأقرب غير المحدود هو 1، وبعد التشبع 0.75؛ مقدار الخطأ 0.125 يساوي الحد ولا يتجاوزه.

إذا ابتعد x أكثر فوق U أو تحت L، يزداد خطأ التشبع مع هذا الابتعاد؛ لا يوجد حد نصف خطوة صالح لكل عدد حقيقي على شبكة محدودة.

لا تصغّر الخطوة دون فحص المدى

نغير المجموعة مع إبقاء ثمانية مستويات: G₁={m/8: m=−4،…،3}. أصبحت Δ₁=1/8=0.125، لكن الطرف الأدنى −1/2 والأعلى 3/8. الخطوة نصف السابقة والمدى أصغر.

للعدد 0.9، يقرب الأقرب على شبكة الثمن إلى 0.875، ثم يقصه التشبع إلى 0.375. الخطأ 0.375−0.9=−0.525، وهو أكبر مقدارًا من خطأ الشبكة الأولى 0.15. تقليل الخطوة وحده لم يحسن هذا العدد.

بديل آخر يسمح بستة عشر مستوى: G₂={m/8: m=−8،…،7}. الخطوة 0.125 أيضًا، لكن المجال من −1 إلى 0.875. للعدد 0.9 تكون النتيجة 0.875 بلا تغيير في خطوة التشبع، والخطأ −0.025، وهو أقل من نصف الخطوة الجديدة 0.0625.

المقارنة تثبت حسابات هذه المجموعات الثلاث، ولا تقول إن كل زيادة بتات تحسن كل نظام. حدّدنا القيم المتاحة مباشرة، ولم نحدد ترميز بتات أو موارد جهاز أو ضجيج تحويل تماثلي.

بطاقة الحساب المفيدة تتضمن المجموعة أو طرفيها وخطوتها، وقاعدة التقريب والتعادل، ومعالجة التجاوز، ثم الأصل والناتج والخطأ بإشارته ومقداره. كلمة «دقة أعلى» وحدها لا تكشف هذه الشروط.

لم نشغل MATLAB أو Simulink أو محولًا فعليًا. الصور رسوم حسابية أصلية للمجموعات والأمثلة، وليست نتائج تجربة قياس أو أداء.

ثلاث شبكات للمدخل 0.9: النواتج 0.75 و 0.375 و 0.875، والأخطاء −0.15 و −0.525 و −0.025.
تصغير الخطوة مع ثبات عدد المستويات يصغر المدى هنا؛ زيادة المستويات تعطي مقارنة أخرى.
المدخلالأقرب؛ التعادل بعيدًا عن الصفرنحو الصفرنحو السالب
0.3750.50.250.25
−0.375−0.5−0.25−0.5

للتوسع: كيفية تقريب الأعداد.

المراجع

  1. MathWorks — Rounding Modes
  2. MathWorks — Configure Blocks with Fixed-Point Output

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.