ما هي طريقة التنصيف؟
تُعدّ طريقة التنصيف (Bisection) من أقدم وأوثق الأساليب العددية لإيجاد جذر دالة متصلة \(f(x)\)، أي القيمة \(x\) التي تجعل \(f(x) = 0\). تبدأ الطريقة بفترة \([a, b]\) تتغيّر فيها إشارة الدالة، ثم تُقسَّم الفترة إلى نصفين مرارًا مع الاحتفاظ في كل مرة بالنصف الذي ما زال يحتوي الجذر. وبما أن تغيّر الإشارة محفوظ في كل خطوة، فإن الطريقة مضمونة التقارب ما دامت \(f\) متصلة وكانت إشارتا \(f(a)\) و\(f(b)\) متعاكستين. تعمل هذه الحاسبة مع أي دالة حقيقية عديمة الأبعاد، وتستخدم وحدة الراديان في الدوال المثلثية.
كيفية استخدام الحاسبة
أدخل دالتك في خانة f(x) مستخدمًا \(x\) متغيّرًا (مثل x-cos(x)، أو x^2-2، أو exp(x)-3). حدّد الطرف الأدنى a والطرف الأعلى b بحيث يقع الجذر بينهما، أي يجب أن يكون حاصل الضرب \(f(a)\cdot f(b)\) أصغر من أو يساوي صفرًا. اختر أقصى عدد للتكرارات n وعدد الأرقام التي تريد عرضها. ستُعيد الأداة الجذر التقريبي، وقيمة الدالة عنده (التي يُفترض أن تقترب من الصفر)، وعدد التكرارات التي لزمت فعليًا.
الصيغة الرياضية
في كل خطوة يكون التقدير هو نقطة المنتصف $$x_n = \frac{a_n + b_n}{2}$$ فإذا كانت \(|f(x_n)|\) أقل من قيمة التسامح، تُقبَل \(x_n\) جذرًا. وإلا فإن الخوارزمية تحتفظ بالنصف الذي ما زال يحتوي تغيّر إشارة: إذا كان \(f(a_n)\cdot f(x_n) > 0\) فالجذر يقع إلى اليمين (نضع \(a = x_n\))، وإلا فهو إلى اليسار (نضع \(b = x_n\)). يتقلّص عرض الفترة وفق \((b-a)/2^n\)، أي أن التقارب خطي تقريبًا، بمعدّل خانة ثنائية صحيحة إضافية واحدة في كل خطوة.
مثال محلول
للدالة \(f(x) = x - \cos(x)\) على الفترة \([-10, 10]\): نجد \(f(-10) \approx -10.84\) (سالبة) و\(f(10) \approx 10.84\) (موجبة)، إذًا الجذر محصور بينهما. وبالتنصيف المتكرّر يتقارب الحل إلى \(x \approx 0.7390851332151607\)، وهو ما يُعرف بعدد دوتي (Dottie number) حيث \(x = \cos x\)، وتكون عندها قيمة \(f(x)\) قريبة جدًا من الصفر.
كيفية تطبيق طريقة التنصيف يدويًا
تجد طريقة التنصيف جذر المعادلة \(f(x)=0\) بتقسيم فترة معروفة أنها تحتوي على جذر بشكل متكرر إلى نصين. تعتمد على نظرية القيمة الوسيطة: إذا كانت \(f\) مستمرة على \([a,b]\) وكانت \(f(a)\) و \(f(b)\) لهما إشارات معاكسة، فيجب أن يكون جذر بينهما.
- تحقق من الفترة. أكد أن \(f(a)\cdot f(b)<0\). إذا كان الناتج موجبًا، فالفترة غير مضمونة أن تحتوي على جذر — اختر \([a,b]\) مختلفة.
- احسب نقطة المنتصف. \(m=\dfrac{a+b}{2}\).
- احسب قيمة الدالة. جد \(f(m)\). إذا كانت \(f(m)=0\) (أو ضمن التسامح)، فـ \(m\) هو الجذر وتتوقف.
- استبدل أحد طرفي الفترة حسب الإشارة. إذا كانت \(f(a)\cdot f(m)<0\)، فالجذر في \([a,m]\)، لذا اجعل \(b\leftarrow m\). وإلا فالجذر في \([m,b]\)، لذا اجعل \(a\leftarrow m\).
- كرر الخطوات 2–4 حتى \(|b-a|<\text{تسامح}\) أو \(|f(m)|<\text{تسامح}\)، أو حتى تصل إلى الحد الأقصى لعدد التكرارات.
مثال: \(f(x)=x^{3}-x-2\) على \([1,2]\). تحقق: \(f(1)=-2\)، \(f(2)=4\)، الناتج \(<0\) — الفترة صحيحة.
| التكرار | a | b | m=(a+b)/2 | f(m) | الفترة الجديدة |
|---|---|---|---|---|---|
| 1 | 1.0000 | 2.0000 | 1.5000 | −0.125 | [1.5, 2] |
| 2 | 1.5000 | 2.0000 | 1.7500 | 1.6094 | [1.5, 1.75] |
| 3 | 1.5000 | 1.7500 | 1.6250 | 0.6660 | [1.5, 1.625] |
| 4 | 1.5000 | 1.6250 | 1.5625 | 0.2522 | [1.5, 1.5625] |
| 5 | 1.5000 | 1.5625 | 1.5313 | 0.0591 | [1.5, 1.5313] |
| 6 | 1.5000 | 1.5313 | 1.5156 | −0.0340 | [1.5156, 1.5313] |
بعد المزيد من التكرارات، تتقارب الفترة حول الجذر الحقيقي 1.521380، وهو أيضًا الجذر الحقيقي الوحيد للمعادلة التكعيبية \(x^{3}-x-2=0\) الذي وجده الحل المباشر 1.521380.
التكرارات مقابل التسامح وعرض الفترة
كل خطوة تنصيف تقلل الفترة إلى النصف، لذا بعد \(n\) تكرار يكون عرض الفترة هو \((b-a)/2^{\,n}\). للوصول إلى تسامح \(\text{تسامح}\) على موقع الجذر تحتاج تقريبًا إلى
$$n \approx \log_2\!\left(\frac{b-a}{\text{تسامح}}\right).$$يزداد العدد فقط مع اللوغاريتم للدقة، لذا حتى التسامحات الضيقة جدًا تتطلب خطوات قليلة نسبيًا. الجدول يوضح عدد التكرارات المقرب لأعلى لعدة مجموعات.
| العرض الأولي \(b-a\) | التسامح المستهدف | \(\log_2((b-a)/\text{تسامح})\) | التكرارات المطلوبة |
|---|---|---|---|
| 1 | \(10^{-3}\) | 9.97 | 10 |
| 1 | \(10^{-6}\) | 19.93 | 20 |
| 1 | \(10^{-10}\) | 33.22 | 34 |
| 10 | \(10^{-6}\) | 23.25 | 24 |
| 20 | \(10^{-6}\) | 24.25 | 25 |
| 100 | \(10^{-8}\) | 33.22 | 34 |
| 0.5 | \(10^{-12}\) | 38.86 | 39 |
على سبيل المثال، فترة بعرض 20 تحتاج إلى تحسينها إلى \(10^{-6}\) يتطلب \(\lceil\log_2(20/10^{-6})\rceil=\lceil 24.25\rceil=\) 25 تكرارًا، وفترة بعرض 1 إلى \(10^{-10}\) تحتاج إلى \(\lceil 33.22\rceil=\) 34. تقليل العرض الأولي إلى النصف يوفر بالضبط تكرارًا واحدًا؛ تربيع الدقة (منزلة عشرية إضافية واحدة) يكلف حوالي 3.3 تكرارات.
المصطلحات الرئيسية
- جذر. قيمة \(x^{*}\) حيث تكون الدالة صفر، \(f(x^{*})=0\)؛ تسمى أيضًا صفر أو حل المعادلة.
- فترة / مجال \([a,b]\). زوج من النقاط الطرفية يُعتقد أنها تحيط بجذر. بالنسبة للتنصيف يجب أن تحقق شرط تغيير الإشارة.
- تغيير الإشارة. الشرط \(f(a)\cdot f(b)<0\)، مما يعني أن \(f\) تأخذ إشارات معاكسة عند نقاط النهاية. بالنسبة لـ \(f\) مستمرة هذا يضمن جذرًا واحدًا على الأقل بينهما (نظرية القيمة الوسيطة).
- نقطة المنتصف. مركز الفترة الحالية، \(m=(a+b)/2\)؛ تختبر كل خطوة هذه النقطة وتستبعد النصف الذي لا يمكن أن يحتوي على الجذر.
- التسامح. هدف الدقة الذي يوقف التكرار، يُطبق إما على عرض الفترة \(|b-a|\) أو على الباقي \(|f(m)|\).
- التقارب (خطي). التنصيف يتقارب خطيًا: الخطأ ينقسم تقريبًا إلى نصين كل خطوة (الخطأ \(\le (b-a)/2^{n}\))، مما يعطي تقدمًا ثابتًا وليس متسارعًا — حوالي رقم ثنائي صحيح واحد إضافي لكل تكرار.
- التكرار. دورة كاملة واحدة لحساب نقطة المنتصف وتقييم الدالة وتحديث نقطة طرفية. يُحد عدد التكرارات بإعداد الحد الأقصى للتكرارات.
الأسئلة الشائعة
لماذا تظهر لي رسالة «لا يوجد تغيّر في الإشارة»؟ تتطلّب طريقة التنصيف أن تكون إشارتا \(f(a)\) و\(f(b)\) متعاكستين. عدّل قيمتي \(a\) و\(b\) حتى تحيطا بالجذر.
هل يمكنها إيجاد أكثر من جذر واحد؟ لا، فهي تُعيد جذرًا واحدًا داخل الفترة المحدّدة، ولا تستطيع اكتشاف الجذور التي يلامس فيها المنحنى المحور دون أن يقطعه.
لماذا هي أبطأ من طريقة نيوتن؟ تتقارب طريقة التنصيف خطيًا بكسب خانة ثنائية واحدة تقريبًا في كل خطوة، بينما تتقارب طريقة نيوتن تربيعيًا. ولذلك كثيرًا ما تُستخدم طريقة التنصيف للحصول على نقطة بداية آمنة تُحسّنها بعد ذلك الطرق الأسرع.