خوارزميات الجذر التربيعي
تحسب خوارزميات الجذر التربيعي الجذر التربيعي غير السالبعدد حقيقي موجببما أن جميع الجذور التربيعية للأعداد الطبيعية ، باستثناء المربعات الكاملة ، هي أعداد غير نسبية ، [ 1 ] فإن الجذور التربيعية عادة ما يمكن حسابها بدقة محدودة: تقوم هذه الخوارزميات عادةً بإنشاء سلسلة من التقريبات المتزايدة الدقة .
تعتمد معظم طرق حساب الجذر التربيعي على التكرار: بعد اختيار تقدير أولي مناسب لـتُجرى عملية تحسين متكررة حتى يتم استيفاء معيار إنهاء معين. إحدى طرق التحسين هي طريقة هيرون ، وهي حالة خاصة من طريقة نيوتن . إذا كانت عملية القسمة أكثر تكلفة بكثير من عملية الضرب، فقد يكون من الأفضل حساب الجذر التربيعي العكسي بدلاً من ذلك.
تتوفر طرق أخرى لحساب الجذر التربيعي رقمًا برقم ، أو باستخدام متسلسلة تايلور . ويمكن حساب التقريبات الكسرية للجذور التربيعية باستخدام متسلسلات الكسور المستمرة .
تعتمد الطريقة المستخدمة على الدقة المطلوبة، والأدوات المتاحة، والقدرة الحاسوبية. ويمكن تصنيف الطرق تقريبًا إلى طرق مناسبة للحساب الذهني، وطرق تتطلب عادةً استخدام الورقة والقلم على الأقل، وطرق تُنفذ كبرامج على حاسوب إلكتروني رقمي أو أي جهاز حاسوبي آخر. وقد تأخذ الخوارزميات في الاعتبار التقارب (عدد التكرارات اللازمة لتحقيق دقة محددة)، والتعقيد الحسابي للعمليات الفردية (مثل القسمة) أو التكرارات، وانتشار الخطأ (دقة النتيجة النهائية).
لا تتطلب بعض الطرق، مثل القسمة التركيبية الورقية وتوسيع المتسلسلات، قيمة ابتدائية. في بعض التطبيقات، يلزم جذر تربيعي صحيح ، وهو الجذر التربيعي المقرب أو المقتطع إلى أقرب عدد صحيح (يمكن استخدام إجراء معدل في هذه الحالة).
تاريخ
عُرفت إجراءات إيجاد الجذور التربيعية (وخاصة الجذر التربيعي للعدد 2 ) منذ عهد بابل القديمة على الأقل في القرن السابع عشر قبل الميلاد. وقد حسب علماء الرياضيات البابليون الجذر التربيعي للعدد 2 حتى ثلاثة أرقام ستينية بعد الرقم 1، ولكن لا يُعرف بالضبط كيف فعلوا ذلك. كانوا يعرفون كيفية تقريب طول الوتر باستخدام (على سبيل المثال)للقطر في بوابة ارتفاعهاقضبان وعرضها(القضبان) وربما استخدموا نهجًا مشابهًا لإيجاد تقريب لـ[ 2 ]
كانت طريقة هيرون من مصر في القرن الأول الميلادي أول خوارزمية يمكن التحقق منها لحساب الجذر التربيعي. [ 3 ]
بدأت الأساليب التحليلية الحديثة في التطور بعد إدخال نظام الأرقام العربية إلى أوروبا الغربية في أوائل عصر النهضة. [ 4 ]
اليوم، تحتوي جميع أجهزة الحوسبة تقريبًا على دالة جذر تربيعي سريعة ودقيقة، إما كبنية لغة برمجة ، أو دالة مضمنة في المترجم أو دالة مكتبة، أو كعامل تشغيل للأجهزة، استنادًا إلى إحدى الإجراءات الموصوفة.
التقدير الأولي
تتطلب العديد من خوارزميات الجذر التربيعي التكرارية قيمة ابتدائية . يجب أن تكون هذه القيمة عددًا موجبًا غير صفري، ويفضل أن تكون بين 1 و 0.، وهو العدد المطلوب إيجاد جذره التربيعي، لأن الجذر التربيعي يجب أن يكون ضمن هذا النطاق. إذا كانت القيمة الأولية بعيدة عن الجذر، فستحتاج الخوارزمية إلى عدد أكبر من التكرارات. إذا تم تهيئة الخوارزمية بـ(أوثم تقريبًاستُهدر التكرارات لمجرد الحصول على رتبة مقدار الجذر. لذا، من المفيد الحصول على تقدير تقريبي، قد تكون دقته محدودة ولكنه سهل الحساب. عمومًا، كلما كان التقدير الأولي أفضل، كان التقارب أسرع. بالنسبة لطريقة نيوتن، فإن قيمة ابتدائية أكبر قليلًا من الجذر ستتقارب أسرع قليلًا من قيمة ابتدائية أصغر قليلًا من الجذر.
بشكل عام، يتم التقدير وفقًا لفترة زمنية اعتباطية معروفة باحتوائها على الجذر (مثل). التقدير هو قيمة محددة لتقريب وظيفي لـعلى مدى الفترة. يتطلب الحصول على تقدير أفضل إما الحصول على حدود أدق للفترة، أو إيجاد تقريب وظيفي أفضل لـيعني هذا الأخير عادةً استخدام دالة كثيرة الحدود من رتبة أعلى في التقريب، مع العلم أن ليس كل التقريبات كثيرة الحدود. تشمل طرق التقدير الشائعة التقريب القياسي، والتقريب الخطي، والتقريب الزائدي، والتقريب اللوغاريتمي. يُستخدم النظام العشري عادةً للتقدير الذهني أو اليدوي. أما النظام الثنائي فهو أنسب للتقدير الحاسوبي. في التقدير، يُعامل الأس والكسر العشري عادةً بشكل منفصل، كما هو الحال عند التعبير عن العدد بالصيغة العلمية.
التقديرات العشرية
عادةً ما يكون العدديُعبَّر عنه بالصيغة العلمية كما يلي:أينو n عدد صحيح، ومدى الجذور التربيعية الممكنة هوأين.
التقديرات العددية
تقسم الطرق العددية النطاق إلى فترات، ويتم تمثيل التقدير في كل فترة برقم عددي واحد. إذا تم اعتبار النطاق فترة واحدة، فإن المتوسط الحسابي (5.5) أو المتوسط الهندسي () مراتهذه تقديرات معقولة. سيختلف الخطأ المطلق والنسبي لهذه التقديرات. عمومًا، ستكون القيمة العددية الواحدة غير دقيقة للغاية. التقديرات الأفضل تقسم النطاق إلى فترتين أو أكثر، لكن دقة التقديرات العددية منخفضة بطبيعتها.
بالنسبة لفترتين، مقسومتين هندسيًا، الجذر التربيعييمكن تقديرها على النحو التالي [ ملاحظة 1 ]
يبلغ الحد الأقصى للخطأ المطلق لهذا التقدير 1في، وأقصى خطأ نسبي بنسبة 100% عند.
لتم أخذه في الاعتبار كعامل، التقدير هو.
، خطأ مطلق قدره 246 وخطأ نسبي يقارب 70٪.
التقديرات الخطية
التقدير الأفضل، والطريقة القياسية المستخدمة، هي تقريب خطي للدالةعلى قوس صغير. إذا تم، كما سبق، إخراج قوى الأساس من العدد S وتقليص الفترة إلى [ 1، 100 ] ، فيمكن استخدام خط قاطع يمتد عبر القوس، أو خط مماس في مكان ما على طول القوس كتقريب، ولكن خط الانحدار المربعات الصغرى الذي يتقاطع مع القوس سيكون أكثر دقة.
يُقلل خط الانحدار باستخدام طريقة المربعات الصغرى من متوسط الفرق بين التقدير وقيمة الدالة. معادلته هيإعادة الترتيبتقريب المعاملات لتسهيل الحساب،
هذا هو أفضل تقدير يمكن تحقيقه في المتوسط باستخدام تقريب خطي أحادي الجزء للدالةفي الفترة [ 1، 100 ] . ويبلغ أقصى خطأ مطلق 1.2 عند a = 100، وأقصى خطأ نسبي 30% عند S = 1 و 10. [ ملاحظة 2 ]
للقسمة على 10، اطرح واحدًا من أس العدد a ، أو حرك الفاصلة العشرية مجازيًا خانة واحدة إلى اليسار. في هذه الصيغة، أي ثابت جمعي 1 مضافًا إليه زيادة صغيرة سيعطي تقديرًا مُرضيًا، لذا فإن تذكر الرقم الدقيق ليس عبئًا. التقريب (سواءً كان مقربًا أم لا) باستخدام خط واحد يمتد على النطاق [ 1، 100 ] أقل من رقم معنوي واحد من الدقة؛ الخطأ النسبي أكبر من 1/2 ، لذا يتم توفير أقل من 2 بت من المعلومات. الدقة محدودة للغاية لأن النطاق واسع جدًا، يصل إلى رتبتين من حيث الحجم، وهو كبير جدًا لهذا النوع من التقدير.
يمكن الحصول على تقدير أدق بكثير باستخدام التقريب الخطي المجزأ: عدة قطع مستقيمة، كل منها يُقارب جزءًا من القوس الأصلي. كلما زاد عدد القطع المستقيمة المستخدمة، كان التقريب أفضل. الطريقة الأكثر شيوعًا هي استخدام خطوط التماس؛ وتتمثل الخيارات الحاسمة في كيفية تقسيم القوس ومكان وضع نقاط التماس. إحدى الطرق الفعالة لتقسيم القوس من y = 1 إلى y = 100 هي هندسيًا: بالنسبة لفترتين، تكون حدود الفترتين هي الجذر التربيعي لحدود الفترة الأصلية، 1 × 100، أي [ 1، 2√100 ] و [ 2√100 ، 100 ] . بالنسبة لثلاث فترات، تكون الحدود هي الجذور التكعيبية للعدد 100: [1، 3√100 ]، [ 3√100 ، ( 3√100 ) ² ] ، و [( 3√100 ) ² ، 100 ] ، وهكذا. أما بالنسبة لفترتين، فإن 2√100 = 10 ، وهو عدد مناسب جدًا. من السهل اشتقاق خطوط المماس ، وتقع عند ومعادلاتهم هي: ووبقلب المعادلة، تكون الجذور التربيعية كالتالي:ووهكذا بالنسبة لـ:
تحدث أقصى الأخطاء المطلقة عند أعلى نقاط الفترات، عند a = 10 و 100، وتبلغ 0.54 و 1.7 على التوالي. أما أقصى الأخطاء النسبية فتحدث عند نهايات الفترات، عند a = 1 و 10 و 100، وتبلغ 17% في كلتا الحالتين. وبما أن 17% أو 0.17 أكبر من 1/10، فإن دقة هذه الطريقة أقل من رقم عشري واحد.
التقديرات الزائدية
في بعض الحالات، قد تكون التقديرات الزائدية فعّالة، لأن القطع الزائد هو أيضًا منحنى محدب ، وقد يقع على قوس من y = x² بشكل أفضل من الخط المستقيم. تُعدّ التقديرات الزائدية أكثر تعقيدًا من الناحية الحسابية، لأنها تتطلب بالضرورة قسمة عددية. التقريب الزائدي شبه الأمثل لـ x² على الفترة [ 1 ، 100 ] هو. بنقل المعادلة، يكون الجذر التربيعي هووهكذا بالنسبة لـ:
يكفي أن تكون عملية القسمة دقيقة إلى رقم عشري واحد فقط، لأن دقة التقدير الإجمالية لا تتجاوز هذا الرقم، ويمكن إجراؤها ذهنيًا. يُعد هذا التقدير الزائدي أفضل في المتوسط من التقديرات العددية أو الخطية. يبلغ أقصى خطأ مطلق له 1.58 عند a = 100، وأقصى خطأ نسبي عند a = 10 ، حيث يكون التقدير 3.67 أعلى بنسبة 16.0% من جذر 3.16. إذا أجرينا بدلًا من ذلك تكرارات نيوتن-رافسون بدءًا من تقدير 10، فسنحتاج إلى تكرارين للوصول إلى 3.66، وهو ما يطابق التقدير الزائدي. في حالة أكثر شيوعًا مثل 75، يكون التقدير الزائدي 8.00 أقل بنسبة 7.6% فقط، وسيتطلب الأمر 5 تكرارات لنيوتن-رافسون بدءًا من 75 للحصول على نتيجة أكثر دقة.
التقديرات الحسابية
تعتمد طريقة مشابهة للتقريب الخطي القطعي، ولكنها تستخدم العمليات الحسابية فقط بدلاً من المعادلات الجبرية، على عكس جداول الضرب: الجذر التربيعي لأي عدد بين 1 و100 يقع بين 1 و10. فإذا علمنا أن 25 مربع كامل (5 × 5)، وأن 36 مربع كامل (6 × 6)، فإن الجذر التربيعي لأي عدد أكبر من أو يساوي 25 وأقل من 36 يبدأ بالرقم 5. وينطبق الأمر نفسه على الأعداد بين المربعات الأخرى. تُعطي هذه الطريقة رقمًا أوليًا صحيحًا، ولكنها ليست دقيقة إلى رقم واحد: فالرقم الأول للجذر التربيعي لـ 35، على سبيل المثال، هو 5، لكن الجذر التربيعي لـ 35 هو 6 تقريبًا.
الطريقة الأفضل هي تقسيم النطاق إلى فترات تقع في منتصف المسافة بين المربعات. لذا، أي عدد بين 25 ومنتصف المسافة إلى 36، أي 30.5، يُقدّر بـ 5؛ وأي عدد أكبر من 30.5 حتى 36، يُقدّر بـ 6. [ ملاحظة 3 ] لا تتطلب هذه الطريقة سوى القليل من العمليات الحسابية لإيجاد عدد حدّي يقع في منتصف حاصل ضرب عددين من جدول الضرب. إليك جدول مرجعي لهذه الحدود:
| أ | أقرب مربع | EST. |
|---|---|---|
| 1 | ||
| 1 (= 1 2 ) | 1 | |
| 2.5 | ||
| 4 (= 2 2 ) | 2 | |
| 6.5 | ||
| 9 (= 3 2 ) | 3 | |
| 12.5 | ||
| 16 (= 4 2 ) | 4 | |
| 20.5 | ||
| 25 (= 5 2 ) | 5 | |
| 30.5 | ||
| 36 (= 6 2 ) | 6 | |
| 42.5 | ||
| 49 (= 7 2 ) | 7 | |
| 56.5 | ||
| 64 (= 8 2 ) | 8 | |
| 72.5 | ||
| 81 (= 9 2 ) | 9 | |
| 90.5 | ||
| 100 (= 10 2 ) | 10 | |
| 100 | ||
تتمثل العملية الأخيرة في ضرب القيمة التقديرية k في قوة العدد عشرة مقسومة على 2، لذلك بالنسبة لـ،
تُنتج هذه الطريقة ضمنيًا رقمًا معنويًا واحدًا من الدقة، لأنها تقرب إلى أفضل رقم أول.
يمكن توسيع هذه الطريقة لتشمل ثلاثة أرقام معنوية في معظم الحالات، وذلك عن طريق الاستيفاء بين أقرب المربعات التي تحد المعامل.، ثموهي تقريبًا k زائد كسر، والفرق بين a و k 2 مقسومًا على الفرق بين المربعين:
أين
أما العملية الأخيرة، كما سبق، فهي ضرب النتيجة بقوة العدد عشرة مقسومة على 2؛
يمثل k رقمًا عشريًا، بينما يمثل R كسرًا يجب تحويله إلى عدد عشري. عادةً ما يحتوي الكسر على رقم واحد فقط في البسط، ورقم واحد أو رقمين في المقام، لذا يمكن إجراء التحويل إلى عدد عشري ذهنيًا.
أوجد الجذر التربيعي للعدد 75.
إذن ، قيمة a تساوي 75 وقيمة n تساوي 0. من جداول الضرب، يجب أن يكون الجذر التربيعي للجزء العشري 8. شيء ما، لأن a تقع بين 8 × 8 = 64 و 9 × 9 = 81، لذا فإن k تساوي 8؛ وشيء ما هو التمثيل العشري لـ R. في الكسر R ، البسط هو 75 - k² = 11 ، والمقام هو 81 - k² = 2k + 1 = 17. 11/17 أقل بقليل من 12/18 = 2/3 = 0.67، لذا نخمن 0.66 (لا بأس بالتخمين هنا، فالخطأ ضئيل جدًا). التقدير النهائي هو 8 + 0.66 = 8.66 .
جذر 75 مقربًا إلى ثلاثة أرقام معنوية يساوي 8.66، لذا فإن التقدير دقيق حتى ثلاثة أرقام معنوية. لن تكون جميع التقديرات باستخدام هذه الطريقة دقيقة تمامًا، لكنها ستكون قريبة من الدقة المطلوبة.
التقديرات الثنائية
عند العمل بنظام الأرقام الثنائية (كما تفعل أجهزة الكمبيوتر داخليًا)، يتم التعبير عن S على النحو التالي:أينالجذر التربيعييمكن تقديرها على النحو التالي
وهو خط الانحدار باستخدام طريقة المربعات الصغرى لمعاملات مكونة من 3 أرقام معنوية.يبلغ الحد الأقصى للخطأ المطلق 0.0408 عند، ونسبة خطأ نسبي قصوى تبلغ 3.0% عندالتقدير التقريبي المناسب حسابيًا (لأن المعاملات هي قوى العدد 2) هو:
والتي يبلغ أقصى خطأ مطلق لها 0.086 عند 2 وأقصى خطأ نسبي لها 6.1٪ عند a = 0.5 و a = 2.0 .
لالتقريب الثنائي يعطيوبالتالي، فإن التقدير يحتوي على خطأ مطلق قدره 19 وخطأ نسبي قدره 5.3%. الخطأ النسبي أقل بقليل من نصف 4 ، لذا فإن التقدير دقيق حتى 4 بتات أو أكثر.
يمكن الحصول على تقدير لقيمة جذر تربيعي بدقة 8 بتات من خلال البحث في جدول على البتات الثمانية العليا من العدد ، مع الأخذ في الاعتبار أن البت الأعلى مُضمّن ضمنيًا في معظم تمثيلات الفاصلة العائمة، ويجب تقريب البت الأدنى من العدد 8. يتكون الجدول من 256 بايت من قيم الجذر التربيعي المحسوبة مسبقًا بدقة 8 بتات. على سبيل المثال، بالنسبة للفهرس 11101101 الذي يُمثل 1.8515625 ، فإن القيمة المُدخلة هي 10101110 التي تُمثل 1.359375 ، وهو الجذر التربيعي للعدد 1.8515625 بدقة 8 بتات (أكثر من رقمين عشريين).
طريقة هيرون
أول خوارزمية صريحة لتقريبتُعرف هذه الطريقة باسم طريقة هيرون ، نسبةً إلى عالم الرياضيات اليوناني هيرو الإسكندري الذي عاش في القرن الأول الميلادي، والذي وصف هذه الطريقة في كتابه " ميتريكا" عام 60 ميلادي . [ 3 ] تُسمى هذه الطريقة أيضًا بالطريقة البابلية (لا ينبغي الخلط بينها وبين الطريقة البابلية لتقريب الأوتار )، على الرغم من عدم وجود دليل على أن البابليين كانوا على دراية بهذه الطريقة .
معطى عدد حقيقي موجبلنفترض أن x₀ > 0 هو أي تقدير أولي موجب . تتكون طريقة هيرون من الحساب التكراري حتى يتم تحقيق الدقة المطلوبة. التسلسلتتقارب المعادلة المحددة بهذه المعادلة إلى
هذا يعادل استخدام طريقة نيوتن لحلهذه الخوارزمية متقاربة تربيعيًا : عدد الأرقام الصحيحة منيتضاعف تقريبًا مع كل تكرار. [ 5 ]
الاشتقاق
الفكرة الأساسية هي أنه إذاهو تقدير مبالغ فيه للجذر التربيعي لعدد حقيقي موجبثمسيكون التقدير أقل من القيمة الحقيقية، والعكس صحيح، لذا يُتوقع بشكل معقول أن يُقدّم متوسط هذين الرقمين تقريبًا أفضل. ( يعتمد البرهان الرسمي على متباينة المتوسطات الحسابية والهندسية التي تُظهر أن هذا المتوسط هو دائمًا تقدير أعلى من قيمة الجذر التربيعي، كما هو مذكور في مقال الجذور التربيعية ، مما يضمن التقارب).
وبعبارة أدق، إذاهذا هو تخميننا الأولي لـوهل الخطأ في تقديرنا بحيثثم يمكننا توسيع ذات الحدين على النحو التالي: ثم قم بحل حد الخطأ
- إذا افترضنا أن
لذلك، يمكننا تعويض الخطأ وتحديث تقديرنا القديم على النحو التالي: بما أن الخطأ المحسوب لم يكن دقيقًا تمامًا، فهذه ليست الإجابة الفعلية، بل هي تقديرنا الجديد الذي سنستخدمه في جولة التصحيح التالية. وتتكرر عملية التحديث حتى يتم الحصول على الدقة المطلوبة.
تعمل هذه الخوارزمية بشكل جيد بنفس القدر في الأعداد p -adic ، ولكن لا يمكن استخدامها لتحديد الجذور التربيعية الحقيقية مع الجذور التربيعية p -adic؛ يمكن للمرء، على سبيل المثال، إنشاء سلسلة من الأعداد النسبية بهذه الطريقة التي تتقارب إلى +3 في الأعداد الحقيقية، ولكن إلى −3 في الأعداد 2-adic.
التنفيذ بلغة بايثون
from decimal import Decimal , localcontext , getcontextنوع الرقم = عدد صحيح | عدد عشري | عدد عشريدالة جذر_هيرون (s : NumberType ,الدقة : عدد صحيح | لا شيء = لا شيء ،تخمين : نوع الرقم | لا شيء = لا شيء) -> عشري :""" احسب الجذر التربيعي (sqrt(s)) باستخدام طريقة هيرون-نيوتن بدقة اختيارية. :param s: عدد غير سالب يتم حساب جذره التربيعي. :param precision: عدد الأرقام المعنوية. يتم استخدام السياق العشري الحالي افتراضياً. الحد الأدنى للدقة المدعومة هو 2. (لا يُسمح باستخدام الدقة = 1 لتجنب تشوهات التقريب.) :param guess: التخمين الأولي. القيمة الافتراضية هي s / 2. :return: تقريب للجذر التربيعي (s) مقربًا إلى الدقة المحددة. """إذا كانت قيمة s تساوي 0 :إرجاع عشري ( 0 )s = Decimal ( s )إذا كانت قيمة s أقل من 0 :raise ValueError ( "sqrt(s) is not defined for negative numbers." )إذا كانت الدقة معدومة :precision = getcontext () . prec # استخدم السياق العام الحالي إذا لم يتم تحديدهفرض الحد الأدنى من الدقة بصمتإذا كانت الدقة < 2 :الدقة = 2إذا كانت التخمينات لا شيء :guess = Decimal ( s / 2 )الحارس = 25 # أرقام إضافية مؤقتة لتحقيق الاستقرار الداخليmax_iter = 10_000# السياق المحلي: عزل تغييرات الدقةباستخدام السياق المحلي () كـ ctx :ctx.prec = precision + guardالتخمين = ( التخمين + s / التخمين ) / 2for _ in range ( max_iter ):التخمين_التالي = ( التخمين + s / التخمين ) / 2# توقف عندما يكون التحسن ضئيلاً بما فيه الكفايةإذا كان التخمين - التخمين التالي < Decimal ( f "1e- { precision } " ):استراحةالتخمين = التخمين_التاليآخر :raise ArithmeticError ( f "لم تتقارب طريقة هيرون خلال { max_iter } تكرارات" )# تقريب إلى دقة الهدف (التخلص من الحماية)ctx.prec = precisionإرجاع + التخمين التاليمثال على الحساب
يوضح المثال التالي كيفية تنفيذ الدالة sqrt_Heronباستخدام مدخلات متنوعة.
print ( f "1) { sqrt_Heron ( 125348 , precision = 7 , guess = 600 ) } " ) print ( f "2) { sqrt_Heron ( Decimal ( '3.1415926535897932384626433832795028841971693993' )) } " ) print ( f "3) { sqrt_Heron ( 2 , 1_000_157 ) } " ) print ( f "4) { sqrt_Heron ( 2 , 10_000_005 , 1.414 ) } " ) print ( f "5) { sqrt_Heron ( 2 , 100_000_000 , 1 ) } " )ينتج عن ذلك المخرجات التالية:
1) 354.0452 2) 1.772453850905516027298167483 3) 1.4142135623730950488016887242 ... 269732025731849141493880004856742892 4) 1.4142135623730950488016887242 ... ... 872480508054123572727872131589714262 5) 1.4142135623730950488016887242 ... ... ... 023678977744844723443287604232894971
الإعلان 1)
حسابلالوصول إلى سبعة أرقام معنوية يتم وفق المسار التالي:
لذلكإلى سبعة أرقام معنوية (تقريبًا).
2) حساب (في 6 خطوات تكرارية) لـإلى الدقة الافتراضية. [ ملاحظة 5 ]
3) حساب (في 22 خطوة تكرارية) لـإلى 1,000,157 رقمًا. [ 6 ]
4) حساب (في 23 خطوة تكرارية) لـإلى 10,000,005 أرقام. [ 7 ]
5) حساب (في 28 خطوة تكرارية) لـإلى 100 مليون رقم.
يبدو أنه بالنسبة للتخمينات الأولية المعقولة، لا يلزم إجراء العديد من التكرارات.
ملحوظات
شرح السطرين 41 و 46
تتميز طريقة هيرون بالخاصية التالية:
بعبارة أخرى: بمجرد أن تُنتج عملية التكرار قيمة أكبر من(وهذا يحدث فوراً إذاأو بعد خطوة واحدة إذا)، يبقى كل تقدير لاحق أعلىلكنها تصغر في كل مرة - لذا فإن التسلسل "ينزلق لأسفل" نحوويتقارب.
في السطر 41 من البرنامج، guessيتم تعيين قيمةثم في السطر 46 من الكود،لا يمكن أن تكون سلبية.
تبرير معيار التوقف
باستخدام الفرق بين التقديرات المتتالية،
- ،
يضمن هذا الأسلوب، كمعيار للتوقف، أن يكون تسلسل التقريباتيتقارب نحو القيمة الحقيقيةعندما تكون الفروق المتتاليةعندما تصبح صغيرة بما يكفي، يتحقق الهدف المحدد. الفكرة الأساسية هي أن الخطأ المطلق
- ،
يرتبط ذلك ارتباطًا مباشرًا بحجم التحسين المتتاليوبالتحديد، بالنسبة للطرق التكرارية التي تتقارب خطيًا أو تربيعيًا، يوجد ثابتبحيث
- .
تشير هذه العلاقة إلى أنه عندماكلما انخفض الخطأ المطلقكما أنها تصبح أصغر. لذلك، يتم إيقاف التكرار عندماإن انخفاض القيمة عن حد معين يضمن أن يكون الخطأ الفعلي ضمن هذا الحد على الأكثر.
التقارب

لنفترض أنثم لأي عدد طبيعيلنفترض أن الخطأ النسبي فييتم تعريفها بواسطة وبالتالي
ثم يمكن إثبات ذلك
وهكذا وبالتالي فإن التقارب مضمون، وهو تربيعي .
أسوأ سيناريو للتقارب
إذا استخدمنا التقدير التقريبي أعلاه مع الطريقة البابلية، فإن الحالات الأقل دقة مرتبة تصاعدياً هي كما يلي: ;&x_{0}&=\ 2\ ;&x_{1}&=\ 1.250\ ;&\varepsilon _{1}&=\ 0.250~.\\S&=\ 10\ ;&x_{0}&=\ 2\ ;&x_{1}&=\ 3.500\ ;&\varepsilon _{1}&<\ 0.107~.\\S&=\ 10\ ;&x_{0}&=\ 6\ ;&x_{1}&=\ 3.833\ ;&\varepsilon _{1}&<\ 0.213~.\\S&=\ 100\ ;&x_{0}&=\ 6\ ;&x_{1}&=\ 11.333\ ;&\varepsilon _{1}&<\ 0.134~.\end{aligned}}}
وهكذا في كل الأحوال،
تؤدي أخطاء التقريب إلى إبطاء عملية التقارب. يُنصح بالاحتفاظ برقم إضافي واحد على الأقل يتجاوز الدقة المطلوبة.يتم حسابها لتجنب أخطاء التقريب الكبيرة .
طريقة هالي
عندما تظهر التقديرات في البرنامج أعلاه - السطران 41 و43 المميزان -
التخمين = ( التخمين + s / التخمين ) / 2أعمال ...التخمين_التالي = ( التخمين + s / التخمين ) / 2يتم استبدالها بـ
guess *= ( guess * guess + 3 * s ) / ( 3 * guess * guess + s )أعمال ...التخمين_التالي = التخمين * ( التخمين * التخمين + 3 * s ) / ( 3 * التخمين * التخمين + s )يتم تحويل الدالة sqrt_Heronإلى تطبيق لطريقة هالي ، حيث
كما هو الحال في طريقة هالي، فإن التقديرات لا تتحرك دائمًا في اتجاه واحد، وسيصبح الخط 46
إذا كانت القيمة المطلقة ( التخمين - التخمين التالي ) أقل من القيمة العشرية ( f "1e- { الدقة } " ):تتقارب طريقة هالي بشكل أسرع - معدل التقارب نحو الجذر تكعيبي، وهو أفضل من التربيعي - تكرارًا تلو الآخر، لكنها تتضمن خمس عمليات ضرب في كل تكرار (مع احتساب القسمة كثلاث عمليات ضرب). تُنجز العمليات الحسابية الخمسة المذكورة في المثال في 4، 4، 14، 15، و19 خطوة تكرارية على التوالي. في المقابل، لا تتطلب طريقة هيرون سوى قسمة واحدة، أي ثلاث عمليات ضرب، لذا فهي أفضل قليلًا على المدى الطويل.
طريقة باخشالي
وُصفت هذه الطريقة لإيجاد قيمة تقريبية للجذر التربيعي في مخطوطة هندية قديمة تُسمى مخطوطة باخشالي . وهي مكافئة جبريًا لتكرارين من طريقة هيرون، وبالتالي فهي متقاربة من الدرجة الرابعة، أي أن عدد الأرقام الصحيحة للتقريب يتضاعف أربع مرات تقريبًا مع كل تكرار. [ 8 ] والعرض الأصلي، باستخدام الترميز الحديث، هو كما يلي: لحساب، يتركلنفترض أن التقريب الأولي لـثم، كرر العملية تباعاً على النحو التالي:
القيمووهي مطابقة تمامًا لتلك المحسوبة بطريقة هيرون. ولتوضيح ذلك، ستحسب الخطوة الثانية من طريقة هيرون ويمكننا استخدام تعريفاتولإعادة ترتيب البسط إلى:
يمكن استخدام هذا لإنشاء تقريب نسبي للجذر التربيعي بالبدء بعدد صحيح. إذاهو عدد صحيح تم اختياره بحيثقريب من، وإذا كان الفرق هو الذي تم تقليل قيمته المطلقة، فيمكن كتابة التكرار الأول على النحو التالي:
يمكن تعميم طريقة باخشالي لحساب أي جذر، بما في ذلك الجذور الكسرية. [ 9 ]
قد يعتقد المرء أن النصف الثاني من طريقة باخشالي يمكن استخدامه كشكل أبسط من تكرار هيرون واستخدامه بشكل متكرر، على سبيل المثال مع ذلك، فإن هذا غير مستقر عدديًا . بدون أي إشارة إلى قيمة الإدخال الأصلية.، وتقتصر الدقة على دقة الحساب الأصلي لـوسرعان ما يصبح ذلك غير كافٍ.
مثال
باستخدام المثال نفسهكما هو الحال في مثال طريقة هيرون ، فإن التكرار الأول يعطي
وبالمثل، تعطي التكرارات الثانية على عكس طريقة هيرون،يجب حسابها بدقة 8 أرقام لأن صيغةلا يقوم بتصحيح أي خطأ في.
الحساب رقمًا برقم
هذه التقنية مستمدة من عمل فرانسوا فييت ، الذي نُشر حوالي عام 1600. [ 10 ] ، وهي تعتمد على نظرية ذات الحدين ، وهي في الأساس خوارزمية عكسية لحلإنها أبطأ من الطريقة البابلية، لكنها تتمتع بعدة مزايا:
- قد يكون ذلك أسهل بالنسبة للحسابات اليدوية.
- كل رقم من أرقام الجذر الذي تم العثور عليه معروف بأنه صحيح، أي أنه لا يتعين تغييره لاحقًا.
- إذا كان للجذر التربيعي مفكوك ينتهي، فإن الخوارزمية تتوقف بعد العثور على الرقم الأخير. وبالتالي، يمكن استخدامها للتحقق مما إذا كان عدد صحيح معين مربعًا أم لا .
- تعمل الخوارزمية مع أي أساس ، وبطبيعة الحال، فإن طريقة عملها تعتمد على الأساس المختار.
أما عيوبها فهي:
- يصبح الأمر غير قابل للسيطرة بالنسبة للجذور العليا.
- لا يتسامح مع التخمينات غير الدقيقة أو الحسابات الفرعية؛ تؤدي هذه الأخطاء إلى أن يكون كل رقم لاحق من النتيجة خاطئًا، على عكس طريقة نيوتن ، التي تصحح نفسها تلقائيًا أي أخطاء تقريبية.
- على الرغم من أن الحساب رقمًا برقم فعال نظريًا، إلا أنه مكلف للغاية عند تطبيقه برمجيًا. فكل تكرار يتضمن أعدادًا أكبر، مما يتطلب ذاكرة أكبر، ولكنه لا يُحسّن الإجابة إلا برقم واحد صحيح. وبالتالي، تستغرق الخوارزمية وقتًا أطول لكل رقم إضافي.
تتضمن عظام نابيير أداة مساعدة لتنفيذ هذه الخوارزمية. وتُعد خوارزمية الجذر النوني المزاح تعميمًا لهذه الطريقة.
المبدأ الأساسي
أولاً، لننظر في حالة إيجاد الجذر التربيعي لعدد S ، أي مربع عدد مكون من رقمين XY في النظام العشري ، حيث X هو رقم العشرات و Y هو رقم الآحاد. تحديداً: سيتكون الرقم S من 3 أو 4 أرقام عشرية.
للبدء بخوارزمية الأرقام، نقسم أرقام S إلى مجموعتين، كل مجموعة تتكون من رقمين، بدءًا من اليمين. هذا يعني أن المجموعة الأولى ستتكون من رقم واحد أو رقمين. ثم نحدد قيمة X كأكبر رقم بحيث يكون X2 أصغر من أو يساوي المجموعة الأولى. بعد ذلك، نحسب الفرق بين المجموعة الأولى و X2 ، ونبدأ التكرار الثاني بإضافة المجموعة الثانية إليها. هذا يكافئ عملية الطرح .من S ، ويتبقى لدينانقسم S' على 10، ثم نقسم الناتج على 2X ونحتفظ بالجزء الصحيح لمحاولة تخمين Y. ندمج 2X مع Y المُحتمل ونضربه في Y. إذا كان تخميننا صحيحًا، فإن هذا يُكافئ حساب:وبالتالي، يكون الباقي، أي الفرق بين S' والنتيجة، صفرًا؛ إذا كانت النتيجة أكبر من S' ، فإننا نخفض تخميننا بمقدار 1 ونحاول مرة أخرى حتى يصبح الباقي صفرًا. بما أن هذه حالة بسيطة حيث تكون الإجابة هي الجذر التربيعي الكامل لـ XY ، فإن الخوارزمية تتوقف هنا.
يمكن تطبيق الفكرة نفسها على أي عملية حسابية للجذر التربيعي. لنفترض أننا قادرون على إيجاد الجذر التربيعي لـ S عن طريق التعبير عنه كمجموع n من الأعداد الموجبة بحيث
من خلال تطبيق الهوية الأساسية بشكل متكرر يمكن توسيع الحد الموجود على الجانب الأيمن على النحو التالي:
يُمكّننا هذا التعبير من إيجاد الجذر التربيعي عن طريق تخمين قيم متتالية لـلنفترض أن الأرقامإذا تم تخمينها بالفعل، فإن الحد m من الطرف الأيمن للمجموع أعلاه يُعطى بواسطةأينهذا هو الجذر التربيعي التقريبي الذي تم إيجاده حتى الآن. الآن كل تخمين جديدينبغي أن يفي بالمتطلبات التكرارية أينهو مجموع جميع الحدود بعدأي الباقي، بحيثللجميعمع التهيئةمتىتم إيجاد الجذر التربيعي الدقيق؛ وإذا لم يكن كذلك، فإن مجموعيُعطي s تقريبًا مناسبًا للجذر التربيعي، معوهو خطأ التقريب.
على سبيل المثال، في نظام الأرقام العشرية لدينا أينهي عناصر نائبة ومعاملاتفي أي مرحلة من مراحل حساب الجذر التربيعي، يكون الجذر التقريبي الذي تم إيجاده حتى الآن،وحد الجمعيتم تقديمها بواسطة
هنا لأن القيمة المكانية لـبما أن العدد قوة زوجية للعدد 10، فإننا نحتاج فقط إلى التعامل مع الرقمين الأكثر أهمية من الباقي، والتي تبدأ ولايتها الأولى، في أي مرحلة من المراحل m. يوضح القسم أدناه هذا الإجراء.
من الواضح أنه يمكن استخدام طريقة مماثلة لحساب الجذر التربيعي في أنظمة العد الأخرى غير النظام العشري. على سبيل المثال، يُعدّ إيجاد الجذر التربيعي رقمًا برقم في النظام الثنائي فعالًا للغاية نظرًا لأن قيمةيتم البحث عن القيمة من مجموعة أصغر من الأرقام الثنائية {0، 1}. وهذا يجعل الحساب أسرع لأنه في كل مرحلة يتم تغيير قيمةإمالأولحقيقة أن لدينا خيارين فقط لـكما أنه يجعل عملية تحديد قيمةفي المرحلة m من الحساب، يصبح الأمر أسهل. وذلك لأننا نحتاج فقط إلى التحقق مما إذالإذا تحقق هذا الشرط، فإننا نأخذوإلاكما أن حقيقة أن عملية الضرب في 2 تتم عن طريق إزاحة البتات إلى اليسار تساعد في الحساب.
النظام العشري (الأساس 10)
اكتب العدد الأصلي بالصيغة العشرية. تُكتب الأعداد بنفس طريقة القسمة المطولة ، وكما في القسمة المطولة، يُكتب الجذر على السطر العلوي. الآن، قسّم الأرقام إلى أزواج، بدءًا من الفاصلة العشرية واتجاهًا يمينًا ويسارًا. ستكون فاصلة الجذر فوق فاصلة المربع. سيظهر رقم واحد من الجذر فوق كل زوج من أرقام المربع.
ابدأ بالزوج الأيسر من الأرقام، وقم بالإجراء التالي لكل زوج:
- ابدأ من اليسار، أنزل الزوج الأكثر أهمية (الأيسر) من الأرقام غير المستخدمة بعد (إذا تم استخدام جميع الأرقام، فاكتب "00") واكتبه على يمين الباقي من الخطوة السابقة (في الخطوة الأولى، لن يكون هناك باقي). بعبارة أخرى، اضرب الباقي في 100 واجمع الرقمين. ستكون هذه هي القيمة الحالية c .
- أوجد قيم p و y و x كما يلي:
- لنفترض أن p هو جزء الجذر الذي تم إيجاده حتى الآن ، مع تجاهل أي فاصلة عشرية. (في الخطوة الأولى، p = 0.)
- حدد أكبر رقم x بحيثسنستخدم متغيرًا جديدًا y = x (20 p + x ).
- ملاحظة: 20 p + x هو ببساطة ضعف p ، مع إضافة الرقم x إلى اليمين.
- ملاحظة: يمكن إيجاد قيمة x عن طريق تخمين قيمة c /(20· p ) وإجراء حساب تجريبي لـ y ، ثم تعديل x لأعلى أو لأسفل حسب الضرورة.
- ضع الرقمباعتباره الرقم التالي للجذر، أي فوق الرقمين اللذين أنزلتهما للتو من المربع. وبالتالي، سيكون الرقم p التالي هو p القديم مضروبًا في 10 زائد x .
- اطرح y من c لتكوين باقي جديد.
- إذا كان الباقي صفرًا ولم يتبقَّ أي أرقام لإنزالها، فإن الخوارزمية تكون قد انتهت. وإلا، فارجع إلى الخطوة 1 لتكرار العملية.
أمثلة
أوجد الجذر التربيعي للعدد 152.2756.
1 2. 3 4 / / 01 52.27 56 01 1·1 ≤ 1 < 2·2 x = 1 01 ص = س × س = 1 × 1 = 1 00 52 22·2 ≤ 52 < 23·3 x = 2 00 44 ص = (20+س)·س = 22·2 = 44 08 27 243·3 ≤ 827 < 244·4 x = 3 07 29 ص = (240+س)·س = 243·3 = 729 98 56 2464·4 ≤ 9856 < 2465·5 x = 4 98 56 ص = (2460 + س) × س = 2464 × 4 = 9856انتهت الخوارزمية: الإجابة = 12.34
النظام العددي الثنائي (الأساس 2)
يستخدم هذا القسم الصيغة الواردة في قسم الحساب رقمًا برقم أعلاه ، مع اختلاف طفيف يتمثل في السماحمع كلأو نكرر كل شيء، منوصولا إلى، وبناء حل تقريبي، مجموع كلوالتي حددنا قيمتها. لتحديد ما إذايساويأو، نحن نترك. لو(أي مربع حلنا التقريبي بما في ذلك(لا يتجاوز المربع المستهدف) ثم، خلاف ذلكولتجنب التربيعفي كل خطوة، نقوم بتخزين الفرقوقم بتحديثه تدريجياً عن طريق التعيينمعفي البداية ، قمنا بتحديدلأكبرمع.
كتحسين إضافي، نقوم بتخزينوالمصطلحانفي حال كانغير صفري، في متغيرات منفصلة،:
ويمكن تحديثها بكفاءة في كل خطوة:
لاحظ أن: وهي النتيجة النهائية التي يتم إرجاعها في الدالة أدناه.
تطبيق
يقوم برنامج بايثون بالحسابالخوارزمية هي طريقة رقمية (بت ببت) للجذور التربيعية للأعداد الصحيحة . [ 11 ]
def isqrt ( x : int ) -> int : assert x >= 0 , "يجب أن يكون إدخال الجذر التربيعي غير سالب"العملية : عدد صحيح = x # X_(n+1) النتيجة : عدد صحيح = 0 # c_n# d_n التي تبدأ من أعلى قوة للعدد أربعة <= n one : int = 1 while one <= op : one <<= 2 # الآن 'one' هي أكبر قوة للعدد أربعة <= x one >>= 2# من أجل dₙ … d₀ بينما one != 0 : إذا كان op >= res + one : # إذا كان X_(m+1) ≥ Y_m فإن a_m = 2^m op -= res + one # X_m = X_(m+1) - Y_m res += 2 * one # c_m = c_m + 2*d_m res //= 2 # c_(m-1) = c_m / 2 one //= 4 # d_(m-1) = d_m / 4# c_(-1) return res
يمكن تحقيق خوارزميات أسرع، سواء كانت ثنائية أو عشرية أو أي أساس آخر، باستخدام جداول البحث - مما يعني فعليًا استبدال مساحة تخزين أكبر بتقليل وقت التشغيل . [ 12 ]
الهوية الأسية
تُنفذ الآلات الحاسبة الجيبية عادةً إجراءات جيدة لحساب الدالة الأسية واللوغاريتم الطبيعي ، ثم تحسب الجذر التربيعي لـ S باستخدام المتطابقة التي تم التوصل إليها باستخدام خصائص اللوغاريتمات () والدوال الأسية () : المقام في الكسر يُمثل الجذر النوني . في المثال أعلاه، المقام هو ٢، لذا تُشير المعادلة إلى أن المطلوب هو إيجاد الجذر التربيعي. تُستخدم نفس هذه الخاصية عند حساب الجذور التربيعية باستخدام جداول اللوغاريتمات أو المسطرة الحاسبة .
طريقة تكرارية بمتغيرين
هذه الطريقة قابلة للتطبيق لإيجاد الجذر التربيعي لـويتقارب بشكل أفضل لـلكن هذا لا يمثل قيدًا حقيقيًا على العمليات الحسابية الحاسوبية، ففي تمثيلات الفاصلة العائمة والثابتة ذات الأساس 2، من السهل جدًا الضرببضربها في قوة صحيحة للعدد 4، وبالتاليوذلك بضربها في القوة المقابلة للعدد 2، أو بتغيير الأس، أو بالإزاحة، على التوالي. لذلك،يمكن نقلها إلى المدىعلاوة على ذلك، لا تستخدم الطريقة التالية عمليات القسمة العامة، بل تقتصر على الجمع والطرح والضرب والقسمة على قوى العدد اثنين، وهي عمليات سهلة التطبيق. ومن عيوب هذه الطريقة تراكم الأخطاء العددية، على عكس الطرق التكرارية ذات المتغير الواحد، مثل الطريقة البابلية.
تتمثل خطوة التهيئة في هذه الطريقة في بينما تقرأ الخطوات التكرارية ثم،(بينما).
تقاربوبالتالي أيضاً من، هي دالة تربيعية.
إن إثبات صحة هذه الطريقة سهلٌ للغاية. أولاً، أعد كتابة التعريف التكراري لـمثل ومن ثم، يصبح من السهل إثبات ذلك بالاستقراء. وبالتالي تقاربلتحقيق النتيجة المرجوةيتم ضمان ذلك من خلال تقاربإلى صفر، وهو ما يتبع بدوره من.
طُوِّرت هذه الطريقة حوالي عام 1950 على يد إم. في. ويلكس ، ودي. جيه. ويلر، وإس . جيل [ 13 ] لاستخدامها على جهاز EDSAC ، أحد أوائل الحواسيب الإلكترونية. [ 14 ] ثم عُمِّمت هذه الطريقة لاحقًا، مما سمح بحساب الجذور غير التربيعية. [ 15 ]
الطرق التكرارية للجذور التربيعية المقلوبة
فيما يلي طرق تكرارية لإيجاد الجذر التربيعي المقلوب لـ S وهوبمجرد العثور عليه، ابحثعن طريق الضرب البسيط:تتضمن هذه التكرارات عمليات ضرب فقط، دون قسمة. لذا فهي أسرع من طريقة بابل . مع ذلك، فهي غير مستقرة. فإذا لم تكن القيمة الأولية قريبة من مقلوب الجذر التربيعي، ستتباعد التكرارات عنها بدلًا من أن تتقارب إليها. لذلك، قد يكون من المفيد إجراء تكرار لطريقة بابل على تقدير تقريبي قبل البدء بتطبيق هذه الطرق.
- تطبيق طريقة نيوتن على المعادلةينتج طريقة تتقارب تربيعيًا باستخدام ثلاث عمليات ضرب لكل خطوة:
- يمكن الحصول على تكرار آخر باستخدام طريقة هالي ، وهي طريقة هاوسهولدر من الرتبة الثانية. تتقارب هذه الطريقة تكعيبياً ، ولكنها تتضمن خمس عمليات ضرب لكل تكرار: [ ملاحظة 6 ]و
- في حالة استخدام العمليات الحسابية ذات الفاصلة الثابتة ، يمكن تنفيذ الضرب في 3 والقسمة على 8 باستخدام عمليات الإزاحة والجمع. أما في حالة استخدام العمليات الحسابية ذات الفاصلة العائمة، فيمكن اختصار طريقة هالي إلى أربع عمليات ضرب لكل تكرار عن طريق الحساب المسبق.وتعديل جميع الثوابت الأخرى للتعويض:و
خوارزمية غولدشميت
خوارزمية غولدشميت هي امتداد لقسمة غولدشميت ، سُميت نسبةً إلى روبرت إليوت غولدشميت، [ 16 ] [ 17 ] ويمكن استخدامها لحساب الجذور التربيعية. تستخدم بعض الحواسيب خوارزمية غولدشميت لإجراء عمليات حسابية متزامنة.وخوارزمية غولدشميت تجدأسرع من تكرار نيوتن-رافسون على جهاز كمبيوتر مزود بتعليمات ضرب وجمع مدمجة، ووحدة فاصلة عائمة متصلة أو وحدتي فاصلة عائمة مستقلتين. [ 18 ]
الطريقة الأولى لكتابة خوارزمية غولدشميت تبدأ
- (عادةً باستخدام البحث في جدول)
ويكرر حتىتكون القيمة قريبة بما يكفي من 1، أو من عدد ثابت من التكرارات. تتقارب التكرارات إلى و لاحظ أنه من الممكن حذف أي منهماومن خلال الحساب، وإذا كان كلاهما مطلوبًا فـيمكن استخدامها في النهاية بدلاً من حسابها في كل تكرار.
ثمة شكل ثانٍ، يستخدم عمليات الضرب والجمع المدمجة ، يبدأ
- (عادةً باستخدام البحث في جدول)
ويكرر حتىتكون قريبة بما فيه الكفاية من الصفر، أو من عدد ثابت من التكرارات. وهذا يتقارب إلى و
سلسلة تايلور
إذا كان N تقريبًا لـ، ويمكن إيجاد تقريب أفضل باستخدام متسلسلة تايلور لدالة الجذر التربيعي :
باعتبارها طريقة تكرارية ، فإن رتبة التقارب تساوي عدد الحدود المستخدمة. مع حدين، تكون مطابقة للطريقة البابلية . مع ثلاثة حدود، تتطلب كل تكرارة عددًا من العمليات يكاد يوازي تقريب بخشالي ، لكنها تتقارب ببطء أكبر. لذلك، لا تُعد هذه طريقة حساب فعالة بشكل خاص. لزيادة معدل التقارب إلى أقصى حد، اختر N بحيثأصغر ما يمكن.
استمرار توسيع الكسور
يمكن استخدام تمثيل الكسر المستمر لعدد حقيقي بدلاً من توسيعه العشري أو الثنائي، وهذا التمثيل له خاصية أن الجذر التربيعي لأي عدد نسبي (ليس مربعًا كاملاً بالفعل) له توسيع دوري متكرر، على غرار كيفية وجود توسعات متكررة للأعداد النسبية في نظام الترميز العشري.
الأعداد غير النسبية التربيعية (الأعداد التي على الصورةحيث a و b و c أعداد صحيحة، وعلى وجه الخصوص، فإن الجذور التربيعية للأعداد الصحيحة لها كسور مستمرة دورية . أحيانًا يكون المطلوب ليس إيجاد القيمة العددية للجذر التربيعي، بل إيجاد تمثيله بالكسر المستمر ، ومن ثم تقريبه النسبي. ليكن S هو العدد الموجب المطلوب إيجاد جذره التربيعي. بافتراض أن a هو عدد يُستخدم كقيمة ابتدائية و r هو حد الباقي، يمكننا كتابةبما أننايمكننا التعبير عن الجذر التربيعي لـ S على النحو التالي:
بتطبيق هذا التعبير لـبالنسبة لمقام الكسر، لدينا:
الترميز المختصر — يُعدّ فكّ البسط والمقام للكسور المستمرة (أعلاه) أمرًا مُرهقًا في الكتابة، وكذلك في تضمينه في أنظمة تنسيق النصوص. لذلك، ابتكر علماء الرياضيات العديد من الترميزات البديلة، مثل:
متىفي جميع أنحاء النص، توجد صيغة أكثر اختصارًا وهي: [ ملاحظة 7 ] بالنسبة للكسور المستمرة المتكررة (كما هو الحال في جميع الجذور التربيعية للأعداد غير المربعة الكاملة)، يتم تمثيل الجزء المتكرر مرة واحدة فقط، مع خط علوي للدلالة على تكرار غير منتهٍ للجزء الذي يعلوه الخط: [ ملاحظة 8 ]
بالنسبة لـ √2 ، فإن قيمة a تساوي 1 ، لذا فإن تمثيلها هو:
وباتباع هذه الطريقة، نحصل على كسر مستمر معمّم للجذر التربيعي كما يلي:
تتمثل الخطوة الأولى لتقييم هذا الكسر [ 19 ] للحصول على جذره في إجراء تعويضات عددية لجذر العدد المطلوب، وعدد المقامات المختارة. على سبيل المثال، في الصيغة القياسية، r = 1، وبالنسبة لـ √2 ، a = 1 ، لذا فإن الكسر المستمر العددي لثلاثة مقامات هو:
الخطوة الثانية هي تبسيط الكسر المستمر من الأسفل إلى الأعلى، مقامًا تلو الآخر، للحصول على كسر نسبي بسطه ومقامه عددان صحيحان. ويتم التبسيط على النحو التالي (بأخذ المقامات الثلاثة الأولى):
وأخيرًا (الخطوة 3)، اقسم البسط على مقام الكسر النسبي للحصول على القيمة التقريبية للجذر: تم تقريبها إلى ثلاثة أرقام من الدقة.
القيمة الفعلية لـ √2 هي 1.41 بدقة ثلاثة أرقام معنوية. الخطأ النسبي هو 0.17%، لذا فإن الكسر النسبي دقيق بدقة تقارب ثلاثة أرقام معنوية. كلما زاد عدد المقامات، تحسنت التقريبات تدريجيًا: أربعة مقامات تعطي الكسرجيدة بدقة تصل إلى أربعة أرقام تقريبًا، إلخ.
فيما يلي أمثلة على الجذور التربيعية، وكسورها المستمرة البسيطة، وحدودها الأولى - التي تسمى الحدود المتقاربة - حتى المقام 99:
| √ S | ~عشري | الكسر المكمل | متقاربة |
|---|---|---|---|
| √ 2 | 1.41421 | ||
| √ 3 | 1.73205 | ||
| √ 5 | 2.23607 | ||
| √ 6 | 2.44949 | ||
| √ 10 | 3.16228 | ||
| 1.77245 | |||
| 1.64872 | |||
| 1.27202 |
بشكل عام، كلما زاد مقام الكسر النسبي، كان التقريب أفضل. ويمكن إثبات أن اقتطاع الكسر المستمر ينتج عنه كسر نسبي يمثل أفضل تقريب لجذر أي كسر مقامه أقل من أو يساوي مقام ذلك الكسر - على سبيل المثال، لا يوجد كسر مقامه أقل من أو يساوي 70 يمثل تقريبًا جيدًا لجذر 2 مثل 99/70.
التقريبات التي تعتمد على تمثيل الفاصلة العائمة
يُكتب العدد بصيغة الفاصلة العائمة على النحو التالي:وهو ما يُسمى أيضًا بالتدوين العلمي . وجذره التربيعي هووينطبق الأمر نفسه على الجذور التكعيبية واللوغاريتمات. ظاهريًا، لا يُعدّ هذا تحسينًا في البساطة، ولكن لنفترض أننا نحتاج فقط إلى تقريب: عندها فقطجيد حتى رتبة مقدارية. بعد ذلك، لاحظ أن بعض القوى، p ، ستكون فردية، وبالتالي فإن 3141.59 = 3.14159 × 10بدلاً من التعامل مع قوى كسرية للأساس، اضرب الجزء الكسري في الأساس واطرح واحدًا من القوة لجعلها زوجية. سيصبح التمثيل المعدل مكافئًا لـ 31.4159 × 10٢ بحيث يكون الجذر التربيعي √ ٣١٫٤١٥٩ × ١٠1 .
إذا أُخذ الجزء الصحيح من الجزء الكسري المُعدَّل، فلن يكون هناك سوى القيم من 1 إلى 99، ويمكن استخدام ذلك كمؤشر في جدول يحتوي على 99 جذرًا تربيعيًا محسوبًا مسبقًا لإكمال التقدير. سيحتاج الحاسوب الذي يستخدم الأساس 16 إلى جدول أكبر، بينما سيحتاج الحاسوب الذي يستخدم الأساس 2 إلى ثلاثة مدخلات فقط: البتات الممكنة للجزء الصحيح من الجزء الكسري المُعدَّل هي 01 (لأن الأس زوجي، لذا لم يكن هناك إزاحة، مع الأخذ في الاعتبار أن العدد العشري المعياري يحتوي دائمًا على رقم أعلى غير صفري) أو إذا كان الأس فرديًا، 10 أو 11، وهما أول بتين من الجزء الكسري الأصلي. وبالتالي، فإن 6.25 = 110.01 بالنظام الثنائي، ويتم تعديله ليصبح 1.1001 × 2² ، وهو عدد زوجي، لذا فإن البتات المزدوجة في الجزء الكسري هي 01. أما 0.625 = 0.101 بالنظام الثنائي، ويتم تعديله ليصبح 1.01 × 2⁻¹ ، وهو عدد فردي، لذا فإن التعديل يكون ليصبح 10.1 × 2⁻² ، والبتات المزدوجة هي 10. لاحظ أن البت الأدنى في العدد الزوجي ينعكس في البت الأعلى في الجزء الكسري. في العدد الزوجي، يكون البت الأدنى صفرًا، وبالتالي يبدأ الجزء الكسري المعدل من 0، بينما في العدد الفردي، يكون هذا البت واحدًا، وبالتالي يبدأ الجزء الكسري المعدل من 1. لذا، عند تقسيم العدد الزوجي إلى نصفين، يكون الأمر كما لو أن البت الأدنى فيه قد تم إزاحته ليصبح البت الأول في الجزء الكسري.
يمكن توسيع جدول يحتوي على ثلاثة عناصر فقط بإضافة بتات إضافية من الجزء الكسري. مع ذلك، في الحواسيب، بدلاً من حساب استيفاء في جدول، يُفضّل غالبًا إيجاد عملية حسابية أبسط تُعطي نتائج مكافئة. يعتمد كل شيء الآن على التفاصيل الدقيقة لتنسيق التمثيل، بالإضافة إلى العمليات المتاحة للوصول إلى أجزاء العدد ومعالجتها. على سبيل المثال، توفر لغة فورترانEXPONENT(x) دالةً لحساب الأس. يُعوَّض الجهد المبذول في ابتكار تقريب أولي جيد بتجنب التكرارات الإضافية لعملية التحسين التي كانت ستكون ضرورية لتقريب ضعيف. نظرًا لقلة هذه التكرارات (يتطلب التكرار الواحد قسمة وجمع وتنصيفًا)، فإن القيد صارم.
تتبع العديد من الحواسيب تمثيل IEEE (أو تمثيلًا مشابهًا له بدرجة كافية)، ويمكن الحصول على تقريب سريع جدًا للجذر التربيعي لبدء طريقة نيوتن. تعتمد التقنية التالية على حقيقة أن تنسيق الفاصلة العائمة (في الأساس 2) يُقارب اللوغاريتم ذي الأساس 2.
لذا، بالنسبة لعدد ذي فاصلة عائمة أحادي الدقة 32 بت بتنسيق IEEE (حيث يُلاحظ أن الأس يحتوي على انحياز قدره 127 للشكل المُمثَّل)، يمكنك الحصول على اللوغاريتم التقريبي عن طريق تفسير تمثيله الثنائي كعدد صحيح 32 بت، ثم ضربه فيوإزالة التحيز البالغ 127، أي
على سبيل المثال، يُمثل الرقم 1.0 بالرقم الست عشري 0x3F800000 ، والذي يُمثلإذا تم اعتبارها عددًا صحيحًا. باستخدام الصيغة أعلاه، ستحصل علىكما هو متوقع منوبالمثل، تحصل على 0.5 من 1.5 ( 0x3FC00000 ).

للحصول على الجذر التربيعي، قسّم اللوغاريتم على 2 ثم حوّل القيمة إلى الجذر التربيعي. يوضح البرنامج التالي هذه الفكرة. يُسمح عمدًا لأقل بت في الأس بالانتشار إلى الجزء الكسري. إحدى طرق تبرير خطوات هذا البرنامج هي افتراض أن b هو انحياز الأس و n هو عدد البتات المخزنة صراحةً في الجزء الكسري، ثم إثبات ذلك.
/* يفترض أن يكون نوع البيانات float بتنسيق الفاصلة العائمة أحادي الدقة IEEE 754 */ #include <stdint.h>اتحاد FloatUInt { float f ; uint32_t i ; }float sqrtApprox ( float z ) { union FloatUInt val = { z }; // تحويل النوع مع الحفاظ على نمط البتات /* * لتبرير الكود التالي، أثبت أن * * ((((val.i / 2^m) - b) / 2) + b) * 2^m = ((val.i - 2^m) / 2) + ((b + 1) / 2) * 2^m) * * حيث * * b = انحياز الأس * m = عدد بتات الجزء الكسري */ val . i -= 1 << 23 ; // اطرح 2^m. val . i >>= 1 ; // اقسم على 2. val . i += 1 << 29 ; // أضف ((b + 1) / 2) * 2^m.// أعد تفسير القيمة كعدد عشري return val . f ; }يمكن التعبير عن العمليات الحسابية الثلاث التي تشكل جوهر الدالة المذكورة أعلاه في سطر واحد. ويمكن إضافة تعديل إضافي لتقليل الحد الأقصى للخطأ النسبي. لذا، يمكن إعادة كتابة العمليات الثلاث، باستثناء التحويل، على النحو التالي:
val.i = ( 1 << 29 ) + ( val.i >> 1 ) - ( 1 << 22 ) + a ;حيث يُمثل a معامل انحياز لتعديل أخطاء التقريب. على سبيل المثال، عندما يكون a = 0، تكون النتائج دقيقة للقوى الزوجية للعدد 2 (مثل 1.0)، ولكن بالنسبة للأعداد الأخرى، ستكون النتائج أكبر قليلاً من اللازم (مثل 1.5 للعدد 2.0 بدلاً من 1.414... مع خطأ بنسبة 6%). عندما يكون a = − 0x4B0D2 ، يتم تقليل الحد الأقصى للخطأ النسبي إلى ±3.5%. عندما يكون a = 0، يكون التقريب أكبر من أو يساوي الجذر التربيعي لـ val لأي قيمة لـ val .
إذا كان سيتم استخدام التقريب كقيمة أولية لطريقة نيوتن لحل المعادلةإذا كان الأمر كذلك، فإن الشكل المتبادل الموضح في القسم التالي هو المفضل.
يمكن تحسين التقريب بشكل أكبر بدمج جمع a ، حيث 1 << 29 و -1 << 22 في عملية واحدة. ينتج عن ذلك (val.i >> 1) + 0x1FBB4F2Eقيمة a = − 0x4B0D2 التي تقلل تصحيح الخطأ، وقيمة a = 0.(val.i >> 1) + 1FC00000
مقلوب الجذر التربيعي
يتضمن الجدول أدناه صيغة معدلة من الروتين المذكور أعلاه، والتي يمكن استخدامها لحساب مقلوب الجذر التربيعي، أيبدلاً من ذلك، كتبه جريج والش. أنتج تقريب الإزاحة الصحيحة خطأً نسبيًا أقل من 4%، وانخفض الخطأ أكثر إلى 0.15% مع تكرار واحد لطريقة نيوتن في السطر التالي. [ 20 ] في رسومات الحاسوب، تُعد هذه طريقة فعالة للغاية لتطبيع المتجه.
اتحاد FloatInt { float x ; int i ; };float inv_sqrt ( float x ) { float xhalf = 0.5f * x ; union FloatInt u ; u . x = x ; u . i = 0x5f375a86 - ( u . i >> 1 ); // يمكن تكرار السطر التالي عدة مرات لزيادة الدقة u . x = u . x * ( 1.5f - xhalf * u . x * u . x ); return u . x ; }تقوم بعض أجهزة VLSI بتنفيذ الجذر التربيعي العكسي باستخدام تقدير متعدد الحدود من الدرجة الثانية متبوعًا بتكرار جولدشميدت . [ 21 ]
المربع السالب أو المربع المركب
إذا كانت S < 0 فإن جذرها التربيعي الرئيسي هو
إذا كانت S = a + bi حيث a و b عددان حقيقيان و b ≠ 0، فإن جذرها التربيعي الرئيسي هو
يمكن التحقق من ذلك بتربيع الجذر. [ 22 ] [ 23 ] هنا
هو معيار S. يُعرَّف الجذر التربيعي الرئيسي لعدد مركب بأنه الجذر ذو الجزء الحقيقي غير السالب .
انظر أيضاً
ملحوظات
- ↑ يتم استخدام العاملين اثنين وستة لأنهما يقاربان المتوسط الهندسي لأصغر وأكبر القيم الممكنة مع عدد الأرقام المحدد:و.
- ↑ يبلغ الحد الأقصى للخطأ المطلق للتقدير غير المقرب 2.65 عند 100، ويبلغ الحد الأقصى للخطأ النسبي 26.5% عند y=1 و10 و100.
- ↑ إذا كان العدد يقع في منتصف المسافة بين مربعين تمامًا، مثل 30.5، فخمن العدد الأكبر وهو 6 في هذه الحالة
- ↑ هذه بالمناسبة هي معادلة الخط المماس للمعادلة y = x 2 عند y = 1.
- ↑ يمكن أن تتراوح الدقة الافتراضية من 1 إلى
decimal.MAX_PREC - ↑ انظر أعلاه .
- ↑ انظر: الكسور المستمرة#الرموز
- ↑ انظر: الكسر المستمر الدوري
مراجع
- ↑ جاكسون 2011 .
- ↑ فاولر وروبسون 1998 .
- 1 2 هيث 1921 .
- ↑ باومان 2024 .
- ↑ جونسون 2015 .
- ↑ نيميروف وبونيل 1994 .
- ↑ نيميروف وبونيل 1994 أ .
- ↑ بيلي وبورواين 2012 .
- ↑ Simply Curious 2018 .
- ↑ هيريرو بينيرو، بي جيه؛ لينيرو باس، أ؛ ماسا إستيف، إم آر؛ ميلادو روميرو، أ. (2023). "مسألة حول تقريب الجذور من الرتبة n بناءً على عمل فييت" (ملف PDF) . MATerials MATemàtics . 5 : 1–27 . تاريخ الاسترجاع: 15 نوفمبر 2025 .انظر الصفحة 8.
- ↑ جاي 1985 .
- ^ ستينارسون، كوربيت وهيندري 2003 .
- ↑Wilkes, Wheeler & Gill 1951, pp. 146.
- ↑Campbell-Kelly 2009.
- ↑Gower 1958.
- ↑Goldschmidt, Robert E. (1964). Applications of Division by Convergence(PDF) (Thesis). M.Sc. dissertation. M.I.T. OCLC 34136725. Archived(PDF) from the original on 10 December 2015. Retrieved 15 September 2015.
- ↑"Authors". IBM Journal of Research and Development. 11: 125–127. 1967. doi:10.1147/rd.111.0125. Archived from the original on 18 July 2018.
- ↑Markstein 2004.
- ↑Sardina 2007, p. 10, 2.3j.
- ↑Lomont 2003.
- ↑Piñeiro & Díaz Bruguera 2002.
- ↑Abramowitz & Stegun 1970, p. 17, Section 3.7.26.
- ↑Cooke 2008, p. 59.
Bibliography
- Abramowitz, Milton; Stegun, Irene A., eds. (1970) [1964]. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. Applied Mathematics Series 55 (Ninth Printing ed.). Washington D.C.: Dover Publications. ISBN 978-0-486-61272-0. LCCN 64-60036. MR 0167642.
- Bailey, David; Borwein, Jonathan (2012). "Ancient Indian Square Roots: An Exercise in Forensic Paleo-Mathematics"(PDF). American Mathematical Monthly. Vol. 119, no. 8. pp. 646–657. Retrieved 14 September 2017.
- Campbell-Kelly, Martin (September 2009). "Origin of Computing". Scientific American. 301 (3): 62–69. Bibcode:2009SciAm.301c..62C. doi:10.1038/scientificamerican0909-62. JSTOR 26001527. PMID 19708529.
- Cooke, Roger (2008). Classical algebra: its nature, origins, and uses. John Wiley and Sons. ISBN 978-0-470-25952-8.
- Fowler, David; Robson, Eleanor (1998). "Square Root Approximations in Old Babylonian Mathematics: YBC 7289 in Context"(PDF). Historia Mathematica. 25 (4): 376. doi:10.1006/hmat.1998.2209.
- Gower, John C. (1958). "A Note on an Iterative Method for Root Extraction". The Computer Journal. 1 (3): 142–143. doi:10.1093/comjnl/1.3.142.
- Guy, Martin (1985). "Fast integer square root by Mr. Woo's abacus algorithm". University of Kent at Canterbury (UKC). Archived from the original on 6 March 2012. Retrieved 5 October 2025.
- Heath, Thomas (1921). A History of Greek Mathematics, Vol. 2. Oxford: Clarendon Press. pp. 323–324.
- Jackson, Terence (1 July 2011). "95.42 Irrational square roots of natural numbers — a geometrical approach". The Mathematical Gazette. 95 (533): 327–330. doi:10.1017/S0025557200003193. ISSN 0025-5572. S2CID 123995083.
- Johnson, S. G. (4 February 2015). "Square Roots via Newton's Method"(PDF). MIT Course 18.335: Introduction to Numerical Methods. Retrieved 12 October 2025.
- Lomont, Chris (2003). "Fast Inverse Square Root"(PDF).
- Markstein, Peter (November 2004). Software Division and Square Root Using Goldschmidt's Algorithms(PDF). 6th Conference on Real Numbers and Computers. Dagstuhl, Germany. CiteSeerX 10.1.1.85.9648.
- Nemiroff, Robert; Bonnell, Jerry (1994). "The square root of 2 to 1 million digits". NASA Astronomy Picture of the Day. Retrieved 21 October 2025.
- Nemiroff, Robert; Bonnell, Jerry (1994a). "The square root of 2 to 10 million digits". NASA Astronomy Picture of the Day. Retrieved 21 October 2025.
- Piñeiro, José-Alejandro; Díaz Bruguera, Javier (December 2002). "High-Speed Double-Precision Computationof Reciprocal, Division, Square Root, and Inverse Square Root". IEEE Transactions on Computers. 51 (12): 1377–1388. Bibcode:2002ITCmp..51.1377P. doi:10.1109/TC.2002.1146704.
- Sardina, Manny (2007). "General Method for Extracting Roots using (Folded) Continued Fractions". Surrey (UK).
- Simply Curious (5 June 2018). "Bucking down to the Bakhshali manuscript". Simply Curious blog. Retrieved 21 December 2020.
- Steinarson, Arne; Corbit, Dann; Hendry, Mathew (2003). "Integer Square Root function".
- Wilkes, M.V.; Wheeler, D.J.; Gill, S. (1951). The Preparation of Programs for an Electronic Digital Computer. Oxford: Addison-Wesley. p. 262. OCLC 475783493.
- Baumann, Claude (2024). "Playing with the Square Root"(PDF). computarium.lcd. Retrieved 28 January 2026.
External links
- Weisstein, Eric W."Square root algorithms". MathWorld.
- Jarvis, A. F. "Square roots by subtraction"(PDF). afjarvis.staff.shef.ac.uk. Archived from the original(PDF) on 10 April 2022.
- Radović, Andrija. "Integer Square Root Algorithm". andrijar.com. Retrieved 7 November 2025.
- Egbert, William E. (May 1977). "Personal Calculator Algorithms I: Square Roots"(PDF). Hewlett-Packard Journal: 22–24. Retrieved 7 November 2025.
- "Calculator to learn the square root". calculatorsquareroot.com. Retrieved 7 November 2025.
- Computer arithmetic algorithms
- Root-finding algorithms
