خوارزميات الجذر التربيعي

تحسب خوارزميات الجذر التربيعي الجذر التربيعي غير السالبS{\displaystyle {\sqrt {S}}}عدد حقيقي موجبS{\displaystyle S}بما أن جميع الجذور التربيعية للأعداد الطبيعية ، باستثناء المربعات الكاملة ، هي أعداد غير نسبية ، [ 1 ] فإن الجذور التربيعية عادة ما يمكن حسابها بدقة محدودة: تقوم هذه الخوارزميات عادةً بإنشاء سلسلة من التقريبات المتزايدة الدقة .

تعتمد معظم طرق حساب الجذر التربيعي على التكرار: بعد اختيار تقدير أولي مناسب لـS{\displaystyle {\sqrt {S}}}تُجرى عملية تحسين متكررة حتى يتم استيفاء معيار إنهاء معين. إحدى طرق التحسين هي طريقة هيرون ، وهي حالة خاصة من طريقة نيوتن . إذا كانت عملية القسمة أكثر تكلفة بكثير من عملية الضرب، فقد يكون من الأفضل حساب الجذر التربيعي العكسي بدلاً من ذلك.

تتوفر طرق أخرى لحساب الجذر التربيعي رقمًا برقم ، أو باستخدام متسلسلة تايلور . ويمكن حساب التقريبات الكسرية للجذور التربيعية باستخدام متسلسلات الكسور المستمرة .

تعتمد الطريقة المستخدمة على الدقة المطلوبة، والأدوات المتاحة، والقدرة الحاسوبية. ويمكن تصنيف الطرق تقريبًا إلى طرق مناسبة للحساب الذهني، وطرق تتطلب عادةً استخدام الورقة والقلم على الأقل، وطرق تُنفذ كبرامج على حاسوب إلكتروني رقمي أو أي جهاز حاسوبي آخر. وقد تأخذ الخوارزميات في الاعتبار التقارب (عدد التكرارات اللازمة لتحقيق دقة محددة)، والتعقيد الحسابي للعمليات الفردية (مثل القسمة) أو التكرارات، وانتشار الخطأ (دقة النتيجة النهائية).

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

تاريخ

عُرفت إجراءات إيجاد الجذور التربيعية (وخاصة الجذر التربيعي للعدد 2 ) منذ عهد بابل القديمة على الأقل في القرن السابع عشر قبل الميلاد. وقد حسب علماء الرياضيات البابليون الجذر التربيعي للعدد 2 حتى ثلاثة أرقام ستينية بعد الرقم 1، ولكن لا يُعرف بالضبط كيف فعلوا ذلك. كانوا يعرفون كيفية تقريب طول الوتر باستخدام أ2+ب2أ+ب22أ{\displaystyle {\sqrt {a^{2}+b^{2}}}\approx a+{\frac {b^{2}}{2a}}} (على سبيل المثال)4160+153600{\displaystyle {\frac {41}{60}}+{\frac {15}{3600}}}للقطر في بوابة ارتفاعها4060{\displaystyle {\frac {40}{60}}}قضبان وعرضها1060{\displaystyle {\frac {10}{60}}}(القضبان) وربما استخدموا نهجًا مشابهًا لإيجاد تقريب لـ2.{\displaystyle {\sqrt {2}}.}[ 2 ]

كانت طريقة هيرون من مصر في القرن الأول الميلادي أول خوارزمية يمكن التحقق منها لحساب الجذر التربيعي. [ 3 ]

بدأت الأساليب التحليلية الحديثة في التطور بعد إدخال نظام الأرقام العربية إلى أوروبا الغربية في أوائل عصر النهضة. [ 4 ]

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

التقدير الأولي

تتطلب العديد من خوارزميات الجذر التربيعي التكرارية قيمة ابتدائية . يجب أن تكون هذه القيمة عددًا موجبًا غير صفري، ويفضل أن تكون بين 1 و 0.S{\displaystyle S}، وهو العدد المطلوب إيجاد جذره التربيعي، لأن الجذر التربيعي يجب أن يكون ضمن هذا النطاق. إذا كانت القيمة الأولية بعيدة عن الجذر، فستحتاج الخوارزمية إلى عدد أكبر من التكرارات. إذا تم تهيئة الخوارزمية بـx0=1{\displaystyle x_{0}=1}(أوS{\displaystyle S}ثم تقريبًا12|سجل2S|{\displaystyle {\tfrac {1}{2}}\vert \log _{2}S\vert }ستُهدر التكرارات لمجرد الحصول على رتبة مقدار الجذر. لذا، من المفيد الحصول على تقدير تقريبي، قد تكون دقته محدودة ولكنه سهل الحساب. عمومًا، كلما كان التقدير الأولي أفضل، كان التقارب أسرع. بالنسبة لطريقة نيوتن، فإن قيمة ابتدائية أكبر قليلًا من الجذر ستتقارب أسرع قليلًا من قيمة ابتدائية أصغر قليلًا من الجذر.

بشكل عام، يتم التقدير وفقًا لفترة زمنية اعتباطية معروفة باحتوائها على الجذر (مثل[x0،S/x0]{\displaystyle [x_{0},S/x_{0}]}). التقدير هو قيمة محددة لتقريب وظيفي لـو(x)=x{\displaystyle f(x)={\sqrt {x}}}على مدى الفترة. يتطلب الحصول على تقدير أفضل إما الحصول على حدود أدق للفترة، أو إيجاد تقريب وظيفي أفضل لـو(x){\displaystyle f(x)}يعني هذا الأخير عادةً استخدام دالة كثيرة الحدود من رتبة أعلى في التقريب، مع العلم أن ليس كل التقريبات كثيرة الحدود. تشمل طرق التقدير الشائعة التقريب القياسي، والتقريب الخطي، والتقريب الزائدي، والتقريب اللوغاريتمي. يُستخدم النظام العشري عادةً للتقدير الذهني أو اليدوي. أما النظام الثنائي فهو أنسب للتقدير الحاسوبي. في التقدير، يُعامل الأس والكسر العشري عادةً بشكل منفصل، كما هو الحال عند التعبير عن العدد بالصيغة العلمية.

التقديرات العشرية

عادةً ما يكون العددS{\displaystyle S}يُعبَّر عنه بالصيغة العلمية كما يلي:أ×102ن{\displaystyle a\times 10^{2n}}أين1أ<100{\displaystyle 1\leq a<100}و n عدد صحيح، ومدى الجذور التربيعية الممكنة هوأ×10ن{\displaystyle {\sqrt {a}}\times 10^{n}}أين1أ<10{\displaystyle 1\leq {\sqrt {a}}<10}.

التقديرات العددية

تقسم الطرق العددية النطاق إلى فترات، ويتم تمثيل التقدير في كل فترة برقم عددي واحد. إذا تم اعتبار النطاق فترة واحدة، فإن المتوسط ​​الحسابي (5.5) أو المتوسط ​​الهندسي (103.16{\displaystyle {\sqrt {10}}\approx 3.16}) مرات10ن{\displaystyle 10^{n}}هذه تقديرات معقولة. سيختلف الخطأ المطلق والنسبي لهذه التقديرات. عمومًا، ستكون القيمة العددية الواحدة غير دقيقة للغاية. التقديرات الأفضل تقسم النطاق إلى فترتين أو أكثر، لكن دقة التقديرات العددية منخفضة بطبيعتها.

بالنسبة لفترتين، مقسومتين هندسيًا، الجذر التربيعيS=أ×10ن{\displaystyle {\sqrt {S}}={\sqrt {a}}\times 10^{n}}يمكن تقديرها على النحو التالي [ ملاحظة 1 ]S{2×10نلو أ<10،6×10نلو أ10.{\displaystyle {\sqrt {S}}\approx {\begin{cases}2\times 10^{n}&{\text{if }}a<10,\\6\times 10^{n}&{\text{if }}a\geq 10.\end{cases}}}

يبلغ الحد الأقصى للخطأ المطلق لهذا التقدير 14×10ن{\displaystyle 4\times 10^{n}}فيأ=100{\displaystyle a=100}، وأقصى خطأ نسبي بنسبة 100% عندأ=1{\displaystyle a=1}.

مثال

لS=125348{\displaystyle S=125348}تم أخذه في الاعتبار كعامل12.5348×104{\displaystyle 12.5348\times 10^{4}}، التقدير هوS6102=600{\displaystyle {\sqrt {S}}\approx 6\cdot 10^{2}=600}.

125348=354.0{\displaystyle {\sqrt {125348}}=354.0}، خطأ مطلق قدره 246 وخطأ نسبي يقارب 70٪.

التقديرات الخطية

التقدير الأفضل، والطريقة القياسية المستخدمة، هي تقريب خطي للدالةy=x2{\displaystyle y=x^{2}}على قوس صغير. إذا تم، كما سبق، إخراج قوى الأساس من العدد S وتقليص الفترة إلى [ 1، 100 ] ، فيمكن استخدام خط قاطع يمتد عبر القوس، أو خط مماس في مكان ما على طول القوس كتقريب، ولكن خط الانحدار المربعات الصغرى الذي يتقاطع مع القوس سيكون أكثر دقة.

يُقلل خط الانحدار باستخدام طريقة المربعات الصغرى من متوسط ​​الفرق بين التقدير وقيمة الدالة. معادلته هيy=8.7x-10{\displaystyle y=8.7x-10}إعادة الترتيبx=0.115y+1.15{\displaystyle x=0.115y+1.15}تقريب المعاملات لتسهيل الحساب، S(أ/10+1.2)10ن{\displaystyle {\sqrt {S}}\approx (a/10+1.2)\cdot 10^{n}}

هذا هو أفضل تقدير يمكن تحقيقه في المتوسط ​​باستخدام تقريب خطي أحادي الجزء للدالةy=x2{\displaystyle y=x^{2}}في الفترة [ 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، أي [2√100 ] و [ 2√100 ، 100 ] . بالنسبة لثلاث فترات، تكون الحدود هي الجذور التكعيبية للعدد 100: [1، 3√100 ]، [ 3√100 ، ( 3√100 ) ² ] ، و [( 3√100 ) ² ، 100 ] ، وهكذا. أما بالنسبة لفترتين، فإن 2√100 = 10 ، وهو عدد مناسب جدًا. من السهل اشتقاق خطوط المماس ، وتقع عند x=110{\displaystyle x={\sqrt {1{\sqrt {10}}}}}وx=1010{\displaystyle x={\sqrt {10{\sqrt {10}}}}}معادلاتهم هي:y=3.56x-3.16{\displaystyle y=3.56x-3.16} وy=11.2x-31.6{\displaystyle y=11.2x-31.6}وبقلب المعادلة، تكون الجذور التربيعية كالتالي:x=0.28y+0.89{\displaystyle x=0.28y+0.89}وx=0.089y+2.8{\displaystyle x=.089y+2.8}وهكذا بالنسبة لـS=أ102ن{\displaystyle S=a\cdot 10^{2n}}: S{(0.28أ+0.89)10نلو أ<10،(0.089أ+2.8)10نلو أ10.{\displaystyle {\sqrt {S}}\approx {\begin{cases}(0.28a+0.89)\cdot 10^{n}&{\text{إذا كان }}a<10,\\(.089a+2.8)\cdot 10^{n}&{\text{إذا كان }}a\geq 10.\end{cases}}}

تحدث أقصى الأخطاء المطلقة عند أعلى نقاط الفترات، عند a = 10 و 100، وتبلغ 0.54 و 1.7 على التوالي. أما أقصى الأخطاء النسبية فتحدث عند نهايات الفترات، عند a = 1 و 10 و 100، وتبلغ 17% في كلتا الحالتين. وبما أن 17% أو 0.17 أكبر من 1/10، فإن دقة هذه الطريقة أقل من رقم عشري واحد.

التقديرات الزائدية

في بعض الحالات، قد تكون التقديرات الزائدية فعّالة، لأن القطع الزائد هو أيضًا منحنى محدب ، وقد يقع على قوس من y = x² بشكل أفضل من الخط المستقيم. تُعدّ التقديرات الزائدية أكثر تعقيدًا من الناحية الحسابية، لأنها تتطلب بالضرورة قسمة عددية. التقريب الزائدي شبه الأمثل لـ على الفترة [ 1 ، 100 ] هوy=190/(10-x)-20{\displaystyle y=190/(10-x)-20}. بنقل المعادلة، يكون الجذر التربيعي هوx=10-190/(y+20){\displaystyle x=10-190/(y+20)}وهكذا بالنسبة لـS=أ102ن{\displaystyle S=a\cdot 10^{2n}}: S(10-190أ+20)10ن{\displaystyle {\sqrt {S}}\approx \left(10-{\frac {190}{a+20}}\right)\cdot 10^{n}}

يكفي أن تكون عملية القسمة دقيقة إلى رقم عشري واحد فقط، لأن دقة التقدير الإجمالية لا تتجاوز هذا الرقم، ويمكن إجراؤها ذهنيًا. يُعد هذا التقدير الزائدي أفضل في المتوسط ​​من التقديرات العددية أو الخطية. يبلغ أقصى خطأ مطلق له 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 ] لا تتطلب هذه الطريقة سوى القليل من العمليات الحسابية لإيجاد عدد حدّي يقع في منتصف حاصل ضرب عددين من جدول الضرب. إليك جدول مرجعي لهذه الحدود:

أأقرب مربعك=أ{\displaystyle k={\sqrt {a}}}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، لذلك بالنسبة لـS=أ102ن{\displaystyle S=a\cdot 10^{2n}}، Sك10ن{\displaystyle {\sqrt {S}}\approx k\cdot 10^{n}}

تُنتج هذه الطريقة ضمنيًا رقمًا معنويًا واحدًا من الدقة، لأنها تقرب إلى أفضل رقم أول.

يمكن توسيع هذه الطريقة لتشمل ثلاثة أرقام معنوية في معظم الحالات، وذلك عن طريق الاستيفاء بين أقرب المربعات التي تحد المعامل.ك2أ<(ك+1)2{\displaystyle k^{2}\leq a<(k+1)^{2}}، ثمأ{\displaystyle {\sqrt {a}}}وهي تقريبًا k زائد كسر، والفرق بين a و k 2 مقسومًا على الفرق بين المربعين:

أك+R{\displaystyle {\sqrt {a}}\approx k+R}أينR=أ-ك2(ك+1)2-ك2=أ-ك22ك+1{\displaystyle R={\frac {ak^{2}}{(k+1)^{2}-k^{2}}}={\frac {ak^{2}}{2k+1}}}

أما العملية الأخيرة، كما سبق، فهي ضرب النتيجة بقوة العدد عشرة مقسومة على 2؛ S=أ10ن(ك+R)10ن{\displaystyle {\sqrt {S}}={\sqrt {a}}\cdot 10^{n}\approx (k+R)\cdot 10^{n}}

يمثل k رقمًا عشريًا، بينما يمثل R كسرًا يجب تحويله إلى عدد عشري. عادةً ما يحتوي الكسر على رقم واحد فقط في البسط، ورقم واحد أو رقمين في المقام، لذا يمكن إجراء التحويل إلى عدد عشري ذهنيًا.

مثال

أوجد الجذر التربيعي للعدد 75.

75=751020{\displaystyle 75=75\cdot 10^{2\cdot 0}}إذن ، قيمة a تساوي 75 وقيمة n تساوي 0. من جداول الضرب، يجب أن يكون الجذر التربيعي للجزء العشري 8. شيء ما، لأن a تقع بين 8 × 8 = 64 و 9 × 9 = 81، لذا فإن k تساوي 8؛ وشيء ما هو التمثيل العشري لـ R. في الكسر R ، البسط هو 75 - = 11 ، والمقام هو 81 - = 2k + 1 = 17. 11/17 أقل بقليل من 12/18 = 2/3 = 0.67، لذا نخمن 0.66 (لا بأس بالتخمين هنا، فالخطأ ضئيل جدًا). ​​التقدير النهائي هو 8 + 0.66 = 8.66 .

جذر 75 مقربًا إلى ثلاثة أرقام معنوية يساوي 8.66، لذا فإن التقدير دقيق حتى ثلاثة أرقام معنوية. لن تكون جميع التقديرات باستخدام هذه الطريقة دقيقة تمامًا، لكنها ستكون قريبة من الدقة المطلوبة.

التقديرات الثنائية

عند العمل بنظام الأرقام الثنائية (كما تفعل أجهزة الكمبيوتر داخليًا)، يتم التعبير عن S على النحو التالي:أ×22ن{\displaystyle a\times 2^{2n}}أين0.12أ<102{\displaystyle 0.1_{2}\leq a<10_{2}}الجذر التربيعيS=أ×2ن{\displaystyle {\sqrt {S}}={\sqrt {a}}\times 2^{n}}يمكن تقديرها على النحو التالي S(0.485+0.485أ)2ن{\displaystyle {\sqrt {S}}\approx (0.485+0.485a)\cdot 2^{n}}

وهو خط الانحدار باستخدام طريقة المربعات الصغرى لمعاملات مكونة من 3 أرقام معنوية.أ{\displaystyle {\sqrt {a}}}يبلغ الحد الأقصى للخطأ المطلق 0.0408 عندأ=2{\displaystyle a=2}، ونسبة خطأ نسبي قصوى تبلغ 3.0% عندأ=1{\displaystyle a=1}التقدير التقريبي المناسب حسابيًا (لأن المعاملات هي قوى العدد 2) هو:

S(0.5+0.5أ)2ن{\displaystyle {\sqrt {S}}\approx (0.5+0.5a)\cdot 2^{n}}[ ملاحظة 4 ]

والتي يبلغ أقصى خطأ مطلق لها 0.086 عند 2 وأقصى خطأ نسبي لها 6.1٪ عند a = 0.5 و a = 2.0 .

لS=125348=111101001101001002=1.11101001101001002×216،{\displaystyle S=125348=1\;1110\;1001\;1010\;0100_{2}=1.1110\;1001\;1010\;0100_{2}\times 2^{16}\,,}التقريب الثنائي يعطيS(0.5+0.5أ)28=1.011101001101٠٠١٠2×1000000002=1.456×256=372.8.{\displaystyle {\sqrt {S}}\approx (0.5+0.5a)\cdot 2^{8}=1.0111\;0100\;1101\;0010_{2}\times 1\;0000\;0000_{2}=1.456\times 256=372.8.}125348=354.0{\displaystyle {\sqrt {125348}}=354.0}وبالتالي، فإن التقدير يحتوي على خطأ مطلق قدره 19 وخطأ نسبي قدره 5.3%. الخطأ النسبي أقل بقليل من نصف 4 ، لذا فإن التقدير دقيق حتى 4 بتات أو أكثر.

يمكن الحصول على تقدير لقيمة جذر تربيعي بدقة 8 بتات من خلال البحث في جدول على البتات الثمانية العليا من العدد ، مع الأخذ في الاعتبار أن البت الأعلى مُضمّن ضمنيًا في معظم تمثيلات الفاصلة العائمة، ويجب تقريب البت الأدنى من العدد 8. يتكون الجدول من 256 بايت من قيم الجذر التربيعي المحسوبة مسبقًا بدقة 8 بتات. على سبيل المثال، بالنسبة للفهرس 11101101 الذي يُمثل 1.8515625 ، فإن القيمة المُدخلة هي 10101110 التي تُمثل 1.359375 ، وهو الجذر التربيعي للعدد 1.8515625 بدقة 8 بتات (أكثر من رقمين عشريين).

طريقة هيرون

أول خوارزمية صريحة لتقريب S  {\displaystyle \ {\sqrt {S~}}\ }تُعرف هذه الطريقة باسم طريقة هيرون ، نسبةً إلى عالم الرياضيات اليوناني هيرو الإسكندري الذي عاش في القرن الأول الميلادي، والذي وصف هذه الطريقة في كتابه " ميتريكا" عام 60 ميلادي . [ 3 ] تُسمى هذه الطريقة أيضًا بالطريقة البابلية (لا ينبغي الخلط بينها وبين الطريقة البابلية لتقريب الأوتار )، على الرغم من عدم وجود دليل على أن البابليين كانوا على دراية بهذه الطريقة .

معطى عدد حقيقي موجبS{\displaystyle S}لنفترض أن x₀ > 0 هو أي تقدير أولي موجب . تتكون طريقة هيرون من الحساب التكراري xن+1=12(xن+Sxن)،{\displaystyle x_{n+1}={\frac {1}{2}}\left(x_{n}+{\frac {S}{x_{n}}}\right),} حتى يتم تحقيق الدقة المطلوبة. التسلسل ( x0، x1، x2، x3، ... ) {\displaystyle \ {\bigl (}\ x_{0},\ x_{1},\ x_{2},\ x_{3},\ \ldots \ {\bigr )}\ }تتقارب المعادلة المحددة بهذه المعادلة إلى ليمنxن=S  .{\displaystyle \ \lim _{n\to \infty }x_{n}={\sqrt {S~}}~.}

هذا يعادل استخدام طريقة نيوتن لحلx2-S=0{\displaystyle x^{2}-S=0}هذه الخوارزمية متقاربة تربيعيًا : عدد الأرقام الصحيحة منxن{\displaystyle x_{n}}يتضاعف تقريبًا مع كل تكرار. [ 5 ]

الاشتقاق

الفكرة الأساسية هي أنه إذا x {\displaystyle \ x\ }هو تقدير مبالغ فيه للجذر التربيعي لعدد حقيقي موجب S {\displaystyle \ S\ }ثم  S x {\displaystyle \ {\tfrac {\ S\ }{x}}\ }سيكون التقدير أقل من القيمة الحقيقية، والعكس صحيح، لذا يُتوقع بشكل معقول أن يُقدّم متوسط ​​هذين الرقمين تقريبًا أفضل. ( يعتمد البرهان الرسمي على متباينة المتوسطات الحسابية والهندسية التي تُظهر أن هذا المتوسط ​​هو دائمًا تقدير أعلى من قيمة الجذر التربيعي، كما هو مذكور في مقال الجذور التربيعية ، مما يضمن التقارب).

وبعبارة أدق، إذا x {\displaystyle \ x\ }هذا هو تخميننا الأولي لـ S  {\displaystyle \ {\sqrt {S~}}\ }و ε {\displaystyle \ \varepsilon \ }هل الخطأ في تقديرنا بحيث S=(x+ε)2 ،{\displaystyle \ S=\left(x+\varepsilon \right)^{2}\ ,}ثم يمكننا توسيع ذات الحدين على النحو التالي:  ( x+ε )2=x2+2xε+ε2{\displaystyle \ {\bigl (}\ x+\varepsilon \ {\bigr )}^{2}=x^{2}+2x\varepsilon +\varepsilon ^{2}} ثم قم بحل حد الخطأ

ε= S-x2  2x+ε  S-x2 2x ،{\displaystyle \varepsilon ={\frac {\ Sx^{2}\ }{\ 2x+\varepsilon \ }}\approx {\frac {\ Sx^{2}\ }{2x}}\ ,}إذا افترضنا أن εx {\displaystyle \ \varepsilon \ll x~}

لذلك، يمكننا تعويض الخطأ وتحديث تقديرنا القديم على النحو التالي:  x+ε  x+ S-x2 2x =  S+x2 2x =  S x +x 2  xرهـvأناsهـد .{\displaystyle \ x+\varepsilon \ \approx \ x+{\frac {\ Sx^{2}\ }{2x}}\ =\ {\frac {\ S+x^{2}\ }{2x}}\ =\ {\frac {\ {\frac {S}{\ x\ }}+x\ }{2}}\ \equiv \ x_{\mathsf {revised}}~.} بما أن الخطأ المحسوب لم يكن دقيقًا تمامًا، فهذه ليست الإجابة الفعلية، بل هي تقديرنا الجديد الذي سنستخدمه في جولة التصحيح التالية. وتتكرر عملية التحديث حتى يتم الحصول على الدقة المطلوبة.

تعمل هذه الخوارزمية بشكل جيد بنفس القدر في الأعداد 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)

حسابs{\displaystyle {\sqrt {s\,}}}لs=125348{\displaystyle s=125348}الوصول إلى سبعة أرقام معنوية يتم وفق المسار التالي: x0=6102=600x1=12(x0+Sx0)=12(600456666666+1253486004566666)404.456666666x2=12(x1+Sx1)=12(404.456666666+125348404.456666666)357.186837334x3=12(x2+Sx2)=12(357.186837334+125348357.186837334)354.059011038x4=12(x3+Sx3)=12(354.059011038+125348354.059011038)354.045195124x5=12(x4+Sx4)=12(354.045195124+125348354.045195124)354.045194855{\displaystyle {\begin{alignedat}{5}x_{0}&=6\cdot 10^{2}=600\\x_{1}&={\frac {1}{2}}\left(x_{0}+{\frac {S}{x_{0}}}\right)&&={\frac {1}{2}}\left(600{\phantom {456666666}}+{\frac {125348}{600}}{\phantom {4566666}}\right)&&\approx 404.456666666\\x_{2}&={\frac {1}{2}}\left(x_{1}+{\frac {S}{x_{1}}}\right)&&={\frac {1}{2}}\left(404.456666666+{\frac {125348}{404.456666666}}\right)&&\approx 357.186837334\\x_{3}&={\frac {1}{2}}\left(x_{2}+{\frac {S}{x_{2}}}\right)&&={\frac {1}{2}}\left(357.186837334+{\frac {125348}{357.186837334}}\right)&&\approx 354.059011038\\x_{4}&={\frac {1}{2}}\left(x_{3}+{\frac {S}{x_{3}}}\right)&&={\frac {1}{2}}\left(354.059011038+{\frac {125348}{354.059011038}}\right)&&\approx 354.045195124\\x_{5}&={\frac {1}{2}}\left(x_{4}+{\frac {S}{x_{4}}}\right)&&={\frac {1}{2}}\left(354.045195124+{\frac {125348}{354.045195124}}\right)&&\approx 354.045194855\end{alignedat}}}

لذلك125348354.0452{\displaystyle {\sqrt {\,125348\,}}\approx 354.0452}إلى سبعة أرقام معنوية (تقريبًا).

2) حساب (في 6 خطوات تكرارية) لـπ×1046×10-46{\displaystyle {\sqrt {\left\lfloor \pi \times 10^{46}\right\rfloor \times 10^{-46}}}}إلى الدقة الافتراضية. [ ملاحظة 5 ]

3) حساب (في 22 خطوة تكرارية) لـ2{\displaystyle {\sqrt {2}}}إلى 1,000,157 رقمًا. [ 6 ]

4) حساب (في 23 خطوة تكرارية) لـ2{\displaystyle {\sqrt {2}}}إلى 10,000,005 أرقام. [ 7 ]

5) حساب (في 28 خطوة تكرارية) لـ2{\displaystyle {\sqrt {2}}}إلى 100 مليون رقم.

يبدو أنه بالنسبة للتخمينات الأولية المعقولة، لا يلزم إجراء العديد من التكرارات.

ملحوظات

شرح السطرين 41 و 46

تتميز طريقة هيرون بالخاصية التالية:

xن<Sxن+1>Sxن=Sxن+1=xنxن>Sxن+1<xن{\displaystyle {\begin{array}{rcl}x_{n}<{\sqrt {S}}&\implies &x_{n+1}>{\sqrt {S}}\\x_{n}={\sqrt {S}}&\implies &x_{n+1}=x_{n}\\x_{n}>{\sqrt {S}}&\implies &x_{n+1}<x_{n}\end{array}}}

بعبارة أخرى: بمجرد أن تُنتج عملية التكرار قيمة أكبر منS{\displaystyle {\sqrt {S}}}(وهذا يحدث فوراً إذاx0>S{\displaystyle x_{0}>{\sqrt {S}}}أو بعد خطوة واحدة إذاx0<S{\displaystyle x_{0}<{\sqrt {S}}})، يبقى كل تقدير لاحق أعلىS{\displaystyle {\sqrt {S}}}لكنها تصغر في كل مرة - لذا فإن التسلسل "ينزلق لأسفل" نحوS{\displaystyle {\sqrt {S}}}ويتقارب.

في السطر 41 من البرنامج، guessيتم تعيين قيمةS{\displaystyle \geq {\sqrt {S}}}ثم في السطر 46 من الكود،دلتان=xن-xن+1{\displaystyle \delta _{n}=x_{n}-x_{n+1}}لا يمكن أن تكون سلبية.

تبرير معيار التوقف

باستخدام الفرق بين التقديرات المتتالية،

دلتان=xن-xن+1{\displaystyle \delta _{n}=x_{n}-x_{n+1}}،

يضمن هذا الأسلوب، كمعيار للتوقف، أن يكون تسلسل التقريباتxن{\displaystyle x_{n}}يتقارب نحو القيمة الحقيقيةS{\displaystyle {\sqrt {S}}}عندما تكون الفروق المتتاليةدلتان{\displaystyle \delta _{n}}عندما تصبح صغيرة بما يكفي، يتحقق الهدف المحدد. الفكرة الأساسية هي أن الخطأ المطلق

εن=xن-S{\displaystyle \varepsilon _{n}=x_{n}-{\sqrt {S}}}،

يرتبط ذلك ارتباطًا مباشرًا بحجم التحسين المتتاليدلتان{\displaystyle \delta _{n}}وبالتحديد، بالنسبة للطرق التكرارية التي تتقارب خطيًا أو تربيعيًا، يوجد ثابتج<1{\displaystyle C<1}بحيث

εن+1=جدلتان{\displaystyle \varepsilon _{n+1}=C\cdot \delta _{n}}.

تشير هذه العلاقة إلى أنه عندمادلتان{\displaystyle \delta _{n}}كلما انخفض الخطأ المطلقεن{\displaystyle \varepsilon _{n}}كما أنها تصبح أصغر. لذلك، يتم إيقاف التكرار عندمادلتان{\displaystyle \delta _{n}}إن انخفاض القيمة عن حد معين يضمن أن يكون الخطأ الفعلي ضمن هذا الحد على الأكثر.

التقارب

رسوم بيانية شبه لوغاريتمية تقارن سرعة تقارب طريقة هيرون لإيجاد الجذر التربيعي للعدد 100 لقيم ابتدائية مختلفة. تتقارب القيم السالبة إلى الجذر السالب، والقيم الموجبة إلى الجذر الموجب. لاحظ أن القيم الأقرب إلى الجذر تتقارب بشكل أسرع، وأن جميع التقريبات هي تقديرات زائدة. في ملف SVG، مرر مؤشر الماوس فوق الرسم البياني لعرض نقاطه.

لنفترض أن x0>0  أند  S>0 .{\displaystyle \ x_{0}>0~~{\mathsf {and}}~~S>0~.}ثم لأي عدد طبيعي ن:xن>0 .{\displaystyle \ n:x_{n}>0~.}لنفترض أن الخطأ النسبي في xن {\displaystyle \ x_{n}\ }يتم تعريفها بواسطة  εن= xن  S  -1>-1 {\displaystyle \ \varepsilon _{n}={\frac {~x_{n}\ }{\ {\sqrt {S~}}\ }}-1>-1\ } وبالتالي  xن=S (1+εن) .{\displaystyle \ x_{n}={\sqrt {S~}}\cdot \left(1+\varepsilon _{n}\right)~.}

ثم يمكن إثبات ذلك  εن+1=εن22(1+εن)0 .{\displaystyle \ \varepsilon _{n+1}={\frac {\varepsilon _{n}^{2}}{2(1+\varepsilon _{n})}}\geq 0~.}

وهكذا  εن+2مين{  εن+12 2، εن+1 2 } {\displaystyle \ \varepsilon _{n+2}\leq \min \left\{\ {\frac {\ \varepsilon _{n+1}^{2}\ }{2}},{\frac {\ \varepsilon _{n+1}\ }{2}}\ \right\}\ } وبالتالي فإن التقارب مضمون، وهو تربيعي .

أسوأ سيناريو للتقارب

إذا استخدمنا التقدير التقريبي أعلاه مع الطريقة البابلية، فإن الحالات الأقل دقة مرتبة تصاعدياً هي كما يلي: S= 1 ؛x0= 2 ؛x1= 1.250 ؛ε1= 0.250 .S= 10 ؛x0= 2 ؛x1= 3.500 ؛ε1< 0.107 .S= 10 ؛x0= 6 ؛x1= 3.833 ؛ε1< 0.213 .S= 100 ؛x0= 6 ؛x1= 11.333 ؛ε1< 0.134 .{\displaystyle {\begin{aligned}S&=\ 1\ ;&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}}}

وهكذا في كل الأحوال، ε12-2.ε2<2-5<10-1 .ε3<2-11<10-3 .ε4<2-23<10-6 .ε5<2-47<10-14 .ε6<2-95<10-28 .ε7<2-191<10-57 .ε8<2-383<10-115 .{\displaystyle {\begin{aligned}\varepsilon _{1}&\leq 2^{-2}.\\\varepsilon _{2}&<2^{-5}<10^{-1}~.\\\varepsilon _{3}&<2^{-11}<10^{-3}~.\\\varepsilon _{4}&<2^{-23}<10^{-6}~.\\\varepsilon _{5}&<2^{-47}<10^{-14}~.\\\varepsilon _{6}&<2^{-95}<10^{-28}~.\\\varepsilon _{7}&<2^{-191}<10^{-57}~.\\\varepsilon _{8}&<2^{-383}<10^{-115}~.\end{aligned}}}

تؤدي أخطاء التقريب إلى إبطاء عملية التقارب. يُنصح بالاحتفاظ برقم إضافي واحد على الأقل يتجاوز الدقة المطلوبة. xن {\displaystyle \ x_{n}\ }يتم حسابها لتجنب أخطاء التقريب الكبيرة .

طريقة هالي

عندما تظهر التقديرات في البرنامج أعلاه - السطران 41 و43 المميزان -

التخمين = ( التخمين + s / التخمين ) / 2أعمال ...التخمين_التالي = ( التخمين + s / التخمين ) / 2

يتم استبدالها بـ

guess *= ( guess * guess + 3 * s ) / ( 3 * guess * guess + s )أعمال ...التخمين_التالي = التخمين * ( التخمين * التخمين + 3 * s ) / ( 3 * التخمين * التخمين + s )

يتم تحويل الدالة sqrt_Heronإلى تطبيق لطريقة هالي ، حيث

xن+1=xنxن2+3S3xن2+S{\displaystyle x_{n+1}=x_{n}\cdot {\frac {x_{n}^{2}+3S}{3x_{n}^{2}+S}}}

كما هو الحال في طريقة هالي، فإن التقديرات لا تتحرك دائمًا في اتجاه واحد، وسيصبح الخط 46

إذا كانت القيمة المطلقة ( التخمين - التخمين التالي ) أقل من القيمة العشرية ( f "1e- { الدقة } " ):

تتقارب طريقة هالي بشكل أسرع - معدل التقارب نحو الجذر تكعيبي، وهو أفضل من التربيعي - تكرارًا تلو الآخر، لكنها تتضمن خمس عمليات ضرب في كل تكرار (مع احتساب القسمة كثلاث عمليات ضرب). تُنجز العمليات الحسابية الخمسة المذكورة في المثال في 4، 4، 14، 15، و19 خطوة تكرارية على التوالي. في المقابل، لا تتطلب طريقة هيرون سوى قسمة واحدة، أي ثلاث عمليات ضرب، لذا فهي أفضل قليلًا على المدى الطويل.

طريقة باخشالي

وُصفت هذه الطريقة لإيجاد قيمة تقريبية للجذر التربيعي في مخطوطة هندية قديمة تُسمى مخطوطة باخشالي . وهي مكافئة جبريًا لتكرارين من طريقة هيرون، وبالتالي فهي متقاربة من الدرجة الرابعة، أي أن عدد الأرقام الصحيحة للتقريب يتضاعف أربع مرات تقريبًا مع كل تكرار. [ 8 ] والعرض الأصلي، باستخدام الترميز الحديث، هو كما يلي: لحسابS{\displaystyle {\sqrt {S}}}، يتركx02{\displaystyle x_{0}^{2}}لنفترض أن التقريب الأولي لـS{\displaystyle S}ثم، كرر العملية تباعاً على النحو التالي: أن=S-xن22xن،xن+1=xن+أن،xن+2=xن+1-أن22xن+1.{\displaystyle {\begin{aligned}a_{n}&={\frac {S-x_{n}^{2}}{2x_{n}}},\\x_{n+1}&=x_{n}+a_{n},\\x_{n+2}&=x_{n+1}-{\frac {a_{n}^{2}}{2x_{n+1}}}.\end{aligned}}}

القيمxن+1{\displaystyle x_{n+1}}وxن+2{\displaystyle x_{n+2}}وهي مطابقة تمامًا لتلك المحسوبة بطريقة هيرون. ولتوضيح ذلك، ستحسب الخطوة الثانية من طريقة هيرون xن+2=xن+12+S2xن+1=xن+1+S-xن+122xن+1{\displaystyle x_{n+2}={\frac {x_{n+1}^{2}+S}{2x_{n+1}}}=x_{n+1}+{\frac {S-x_{n+1}^{2}}{2x_{n+1}}}} ويمكننا استخدام تعريفاتxن+1{\displaystyle x_{n+1}}وأن{\displaystyle a_{n}}لإعادة ترتيب البسط إلى: S-xن+12=S-(xن+أن)2=S-xن2-2xنأن-أن2=S-xن2-(S-xن2)-أن2=-أن2.{\displaystyle {\begin{aligned}S-x_{n+1}^{2}&=S-(x_{n}+a_{n})^{2}\\&=S-x_{n}^{2}-2x_{n}a_{n}-a_{n}^{2}\\&=S-x_{n}^{2}-(S-x_{n}^{2})-a_{n}^{2}\\&=-a_{n}^{2}.\end{aligned}}}

يمكن استخدام هذا لإنشاء تقريب نسبي للجذر التربيعي بالبدء بعدد صحيح. إذاx0=شمال{\displaystyle x_{0}=N}هو عدد صحيح تم اختياره بحيثشمال2{\displaystyle N^{2}}قريب منS{\displaystyle S}، ود=S-شمال2{\displaystyle d=SN^{2}}إذا كان الفرق هو الذي تم تقليل قيمته المطلقة، فيمكن كتابة التكرار الأول على النحو التالي: Sشمال+د2شمال-د28شمال3+4شمالد=8شمال4+8شمال2د+د28شمال3+4شمالد=شمال4+6شمال2S+S24شمال3+4شمالS=شمال2(شمال2+6S)+S24شمال(شمال2+S).{\displaystyle {\sqrt {S}}\approx N+{\frac {d}{2N}}-{\frac {d^{2}}{8N^{3}+4Nd}}={\frac {8N^{4}+8N^{2}d+d^{2}}{8N^{3}+4Nd}}={\frac {N^{4}+6N^{2}S+S^{2}}{4N^{3}+4NS}}={\frac {N^{2}(N^{2}+6S)+S^{2}}{4N(N^{2}+S)}}.}

يمكن تعميم طريقة باخشالي لحساب أي جذر، بما في ذلك الجذور الكسرية. [ 9 ]

قد يعتقد المرء أن النصف الثاني من طريقة باخشالي يمكن استخدامه كشكل أبسط من تكرار هيرون واستخدامه بشكل متكرر، على سبيل المثال أن+1=-أن22xن+1،xن+2=xن+1+أن+1،أن+2=-أن+122xن+2،xن+3=xن+2+أن+2، إلخ.{\displaystyle {\begin{aligned}a_{n+1}&={\frac {-a_{n}^{2}}{2x_{n+1}}},&x_{n+2}&=x_{n+1}+a_{n+1},\\a_{n+2}&={\frac {-a_{n+1}^{2}}{2x_{n+2}}},&x_{n+3}&=x_{n+2}+a_{n+2},{\text{ إلخ.}}\end{aligned}}} مع ذلك، فإن هذا غير مستقر عدديًا . بدون أي إشارة إلى قيمة الإدخال الأصلية.S{\displaystyle S}، وتقتصر الدقة على دقة الحساب الأصلي لـأن{\displaystyle a_{n}}وسرعان ما يصبح ذلك غير كافٍ.

مثال

باستخدام المثال نفسهS=125348{\displaystyle S=125348}كما هو الحال في مثال طريقة هيرون ، فإن التكرار الأول يعطي x0=600أ0=125348-60022×600=-195.5433-200x1=600+(-200)=-400x2=400-(-200)22×400=-350{\displaystyle {\begin{alignedat}{3}x_{0}&=600\\[1ex]a_{0}&={\frac {125348-600^{2}}{2\times 600}}&&=-195.5433\approx -200\\[1ex]x_{1}&=600+(-200)&&={\phantom {-}}400\\[1ex]x_{2}&=400-{\frac {(-200)^{2}}{2\times 400}}&&={\phantom {-}}350\end{alignedat}}}

وبالمثل، تعطي التكرارات الثانية أ2=125348-35022×350=٠٠4.06857x3=350+4.06857=354.06857x4=354.06857-4.0685722×354.06857=354.045194{\displaystyle {\begin{alignedat}{3}a_{2}&={\frac {125348-350^{2}}{2\times 350}}&&={\phantom {00}}4.06857\\[1ex]x_{3}&=350+4.06857&&=354.06857\\[1ex]x_{4}&=354.06857-{\frac {4.06857^{2}}{2\times 354.06857}}&&=354.045194\end{alignedat}}} على عكس طريقة هيرون،x3{\displaystyle x_{3}}يجب حسابها بدقة 8 أرقام لأن صيغةx4{\displaystyle x_{4}}لا يقوم بتصحيح أي خطأ فيx3{\displaystyle x_{3}}.

الحساب رقمًا برقم

هذه التقنية مستمدة من عمل فرانسوا فييت ، الذي نُشر حوالي عام 1600. [ 10 ] ، وهي تعتمد على نظرية ذات الحدين ، وهي في الأساس خوارزمية عكسية لحل(x+y)2=x2+2xy+y2{\displaystyle (x+y)^{2}=x^{2}+2xy+y^{2}}إنها أبطأ من الطريقة البابلية، لكنها تتمتع بعدة مزايا:

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

أما عيوبها فهي:

  • يصبح الأمر غير قابل للسيطرة بالنسبة للجذور العليا.
  • لا يتسامح مع التخمينات غير الدقيقة أو الحسابات الفرعية؛ تؤدي هذه الأخطاء إلى أن يكون كل رقم لاحق من النتيجة خاطئًا، على عكس طريقة نيوتن ، التي تصحح نفسها تلقائيًا أي أخطاء تقريبية.
  • على الرغم من أن الحساب رقمًا برقم فعال نظريًا، إلا أنه مكلف للغاية عند تطبيقه برمجيًا. فكل تكرار يتضمن أعدادًا أكبر، مما يتطلب ذاكرة أكبر، ولكنه لا يُحسّن الإجابة إلا برقم واحد صحيح. وبالتالي، تستغرق الخوارزمية وقتًا أطول لكل رقم إضافي.

تتضمن عظام نابيير أداة مساعدة لتنفيذ هذه الخوارزمية. وتُعد خوارزمية الجذر النوني المزاح تعميمًا لهذه الطريقة.

المبدأ الأساسي

أولاً، لننظر في حالة إيجاد الجذر التربيعي لعدد S ، أي مربع عدد مكون من رقمين XY في النظام العشري ، حيث X هو رقم العشرات و Y هو رقم الآحاد. تحديداً: S=(10X+Y)2=100X2+20XY+Y2.{\displaystyle S=\left(10X+Y\right)^{2}=100X^{2}+20XY+Y^{2}.}سيتكون الرقم S من 3 أو 4 أرقام عشرية.

للبدء بخوارزمية الأرقام، نقسم أرقام S إلى مجموعتين، كل مجموعة تتكون من رقمين، بدءًا من اليمين. هذا يعني أن المجموعة الأولى ستتكون من رقم واحد أو رقمين. ثم نحدد قيمة X كأكبر رقم بحيث يكون X2 أصغر من أو يساوي المجموعة الأولى. بعد ذلك، نحسب الفرق بين المجموعة الأولى و X2 ، ونبدأ التكرار الثاني بإضافة المجموعة الثانية إليها. هذا يكافئ عملية الطرح .100X2{\displaystyle 100X^{2}}من S ، ويتبقى لديناS=20XY+Y2{\displaystyle S'=20XY+Y^{2}}نقسم S' على 10، ثم نقسم الناتج على 2X ونحتفظ بالجزء الصحيح لمحاولة تخمين Y. ندمج 2X مع Y المُحتمل ونضربه في Y. إذا كان تخميننا صحيحًا، فإن هذا يُكافئ حساب:(10(2X)+Y)Y=20XY+Y2=S،{\displaystyle (10(2X)+Y)Y=20XY+Y^{2}=S',}وبالتالي، يكون الباقي، أي الفرق بين S' والنتيجة، صفرًا؛ إذا كانت النتيجة أكبر من S' ، فإننا نخفض تخميننا بمقدار 1 ونحاول مرة أخرى حتى يصبح الباقي صفرًا. بما أن هذه حالة بسيطة حيث تكون الإجابة هي الجذر التربيعي الكامل لـ XY ، فإن الخوارزمية تتوقف هنا.

يمكن تطبيق الفكرة نفسها على أي عملية حسابية للجذر التربيعي. لنفترض أننا قادرون على إيجاد الجذر التربيعي لـ S عن طريق التعبير عنه كمجموع n من الأعداد الموجبة بحيث S=(أ1+أ2+أ3++أن)2.{\displaystyle S=\left(a_{1}+a_{2}+a_{3}+\dots +a_{n}\right)^{2}.}

من خلال تطبيق الهوية الأساسية بشكل متكرر (x+y)2=x2+2xy+y2،{\displaystyle (x+y)^{2}=x^{2}+2xy+y^{2},} يمكن توسيع الحد الموجود على الجانب الأيمن على النحو التالي: (أ1+أ2+أ3++أن)2=أ12+2أ1أ2+أ22+2(أ1+أ2)أ3+أ32++أن-12+2(أنا=1ن-1أأنا)أن+أن2=أ12+[2أ1+أ2]أ2+[2(أ1+أ2)+أ3]أ3++[2(أنا=1ن-1أأنا)+أن]أن.\displaystyle \begin{aligned}&(a_{1}+a_{2}+a_{3}+\dotsb +a_{n})^{2}\\=&\,a_{1}^{2}+2a_{1}a_{2}+a_{2}^{2}+2(a_{1}+a_{2})a_{3}+a_{3}^{2}+\dots +a_{n-1}^{2}+2\left(\sum _{i=1}^{n-1}a_{i}\right)a_{n}+a_{n}^{2}\\=&\,a_{1}^{2}+[2a_{1}+a_{2}]a_{2}+[2(a_{1}+a_{2})+a_{3}]a_{3}+\dots +\left[2\left(\sum _{i=1}^{n-1}a_{i}\right)+a_{n}\right]a_{n}.\end{aligned}}}

يُمكّننا هذا التعبير من إيجاد الجذر التربيعي عن طريق تخمين قيم متتالية لـأأنا{\displaystyle a_{i}}لنفترض أن الأرقامأ1،...،أم-1{\displaystyle a_{1},\ldots ,a_{m-1}}إذا تم تخمينها بالفعل، فإن الحد m من الطرف الأيمن للمجموع أعلاه يُعطى بواسطةYم=[2Pم-1+أم]أم،{\displaystyle Y_{m}=\left[2P_{m-1}+a_{m}\right]a_{m},}أينPم-1=أنا=1م-1أأنا{\textstyle P_{m-1}=\sum _{i=1}^{m-1}a_{i}}هذا هو الجذر التربيعي التقريبي الذي تم إيجاده حتى الآن. الآن كل تخمين جديدأم{\displaystyle a_{m}}ينبغي أن يفي بالمتطلبات التكرارية Xم=Xم-1-Yم،{\displaystyle X_{m}=X_{m-1}-Y_{m},} أينXم{\displaystyle X_{m}}هو مجموع جميع الحدود بعدYم{\displaystyle Y_{m}}أي الباقي، بحيثXم0{\displaystyle X_{m}\geq 0}للجميع1من،{\displaystyle 1\leq m\leq n,}مع التهيئةX0=S.{\displaystyle X_{0}=S.}متىXن=0،{\displaystyle X_{n}=0,}تم إيجاد الجذر التربيعي الدقيق؛ وإذا لم يكن كذلك، فإن مجموعأأنا{\displaystyle a_{i}}يُعطي s تقريبًا مناسبًا للجذر التربيعي، معXن{\displaystyle X_{n}}وهو خطأ التقريب.

على سبيل المثال، في نظام الأرقام العشرية لدينا S=(أ110ن-1+أ210ن-2++أن-110+أن)2،{\displaystyle S=\left(a_{1}\cdot 10^{n-1}+a_{2}\cdot 10^{n-2}+\cdots +a_{n-1}\cdot 10+a_{n}\right)^{2},} أين10ن-أنا{\displaystyle 10^{ni}}هي عناصر نائبة ومعاملاتأأنا{0،1،2،...،9}{\displaystyle a_{i}\in \{0,1,2,\ldots ,9\}}في أي مرحلة من مراحل حساب الجذر التربيعي، يكون الجذر التقريبي الذي تم إيجاده حتى الآن،Pم-1{\displaystyle P_{m-1}}وحد الجمعYم{\displaystyle Y_{m}}يتم تقديمها بواسطة Pم-1=أنا=1م-1أأنا10ن-أنا=10ن-م+1أنا=1م-1أأنا10م-أنا-1،{\displaystyle P_{m-1}=\sum _{i=1}^{m-1}a_{i}\cdot 10^{ni}=10^{n-m+1}\sum _{i=1}^{m-1}a_{i}\cdot 10^{mi-1},}Yم=[2Pم-1+أم10ن-م]أم10ن-م=[20أنا=1م-1أأنا10م-أنا-1+أم]أم102(ن-م).{\displaystyle Y_{m}=\left[2P_{m-1}+a_{m}\cdot 10^{n-m}\right]a_{m}\cdot 10^{n-m}=\left[20\sum _{i=1}^{m-1}a_{i}\cdot 10^{m-i-1}+a_{m}\right]a_{m}\cdot 10^{2(n-m)}.}

هنا لأن القيمة المكانية لـYم{\displaystyle Y_{m}}بما أن العدد قوة زوجية للعدد 10، فإننا نحتاج فقط إلى التعامل مع الرقمين الأكثر أهمية من الباقيXم-1{\displaystyle X_{m-1}}، والتي تبدأ ولايتها الأولىYم{\displaystyle Y_{m}}، في أي مرحلة من المراحل m. يوضح القسم أدناه هذا الإجراء.

من الواضح أنه يمكن استخدام طريقة مماثلة لحساب الجذر التربيعي في أنظمة العد الأخرى غير النظام العشري. على سبيل المثال، يُعدّ إيجاد الجذر التربيعي رقمًا برقم في النظام الثنائي فعالًا للغاية نظرًا لأن قيمةأأنا{\displaystyle a_{i}}يتم البحث عن القيمة من مجموعة أصغر من الأرقام الثنائية {0، 1}. وهذا يجعل الحساب أسرع لأنه في كل مرحلة يتم تغيير قيمةYم{\displaystyle Y_{m}}إماYم=0{\displaystyle Y_{m}=0}لأم=0{\displaystyle a_{m}=0}أوYم=2Pم-1+1{\displaystyle Y_{m}=2P_{m-1}+1}لأم=1{\displaystyle a_{m}=1}حقيقة أن لدينا خيارين فقط لـأم{\displaystyle a_{m}}كما أنه يجعل عملية تحديد قيمةأم{\displaystyle a_{m}}في المرحلة m من الحساب، يصبح الأمر أسهل. وذلك لأننا نحتاج فقط إلى التحقق مما إذاYمXم-1{\displaystyle Y_{m}\leq X_{m-1}}لأم=1.{\displaystyle a_{m}=1.}إذا تحقق هذا الشرط، فإننا نأخذأم=1{\displaystyle a_{m}=1}وإلاأم=0.{\displaystyle a_{m}=0.}كما أن حقيقة أن عملية الضرب في 2 تتم عن طريق إزاحة البتات إلى اليسار تساعد في الحساب.

النظام العشري (الأساس 10)

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

ابدأ بالزوج الأيسر من الأرقام، وقم بالإجراء التالي لكل زوج:

  1. ابدأ من اليسار، أنزل الزوج الأكثر أهمية (الأيسر) من الأرقام غير المستخدمة بعد (إذا تم استخدام جميع الأرقام، فاكتب "00") واكتبه على يمين الباقي من الخطوة السابقة (في الخطوة الأولى، لن يكون هناك باقي). بعبارة أخرى، اضرب الباقي في 100 واجمع الرقمين. ستكون هذه هي القيمة الحالية c .
  2. أوجد قيم p و y و x كما يلي:
    • لنفترض أن p هو جزء الجذر الذي تم إيجاده حتى الآن ، مع تجاهل أي فاصلة عشرية. (في الخطوة الأولى، p = 0.)
    • حدد أكبر رقم x بحيثx(20ص+x)ج{\displaystyle x(20p+x)\leq c}سنستخدم متغيرًا جديدًا y = x (20 p + x ).
      • ملاحظة: 20 p + x هو ببساطة ضعف p ، مع إضافة الرقم x إلى اليمين.
      • ملاحظة: يمكن إيجاد قيمة x عن طريق تخمين قيمة c /(20· p ) وإجراء حساب تجريبي لـ y ، ثم تعديل x لأعلى أو لأسفل حسب الضرورة.
    • ضع الرقمx{\displaystyle x}باعتباره الرقم التالي للجذر، أي فوق الرقمين اللذين أنزلتهما للتو من المربع. وبالتالي، سيكون الرقم p التالي هو p القديم مضروبًا في 10 زائد x .
  3. اطرح y من c لتكوين باقي جديد.
  4. إذا كان الباقي صفرًا ولم يتبقَّ أي أرقام لإنزالها، فإن الخوارزمية تكون قد انتهت. وإلا، فارجع إلى الخطوة 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)

يستخدم هذا القسم الصيغة الواردة في قسم الحساب رقمًا برقم أعلاه ، مع اختلاف طفيف يتمثل في السماحشمال2=(أن++أ0)2{\displaystyle N^{2}=(a_{n}+\dotsb +a_{0})^{2}}مع كلأم=2م{\displaystyle a_{m}=2^{m}}أوأم=0{\displaystyle a_{m}=0} نكرر كل شيء2م{\displaystyle 2^{m}}، من2ن{\displaystyle 2^{n}}وصولا إلى20{\displaystyle 2^{0}}، وبناء حل تقريبيPم=أن+أن-1+...+أم{\displaystyle P_{m}=a_{n}+a_{n-1}+\ldots +a_{m}}، مجموع كلأأنا{\displaystyle a_{i}}والتي حددنا قيمتها. لتحديد ما إذاأم{\displaystyle a_{m}}يساوي2م{\displaystyle 2^{m}}أو0{\displaystyle 0}، نحن نتركPم=Pم+1+2م{\displaystyle P_{m}=P_{m+1}+2^{m}}. لوPم2شمال2{\displaystyle P_{m}^{2}\leq N^{2}}(أي مربع حلنا التقريبي بما في ذلك2م{\displaystyle 2^{m}}(لا يتجاوز المربع المستهدف) ثمأم=2م{\displaystyle a_{m}=2^{m}}، خلاف ذلكأم=0{\displaystyle a_{m}=0}وPم=Pم+1{\displaystyle P_{m}=P_{m+1}}لتجنب التربيعPم{\displaystyle P_{m}}في كل خطوة، نقوم بتخزين الفرقXم=شمال2-Pم2{\displaystyle X_{m}=N^{2}-P_{m}^{2}}وقم بتحديثه تدريجياً عن طريق التعيينXم=Xم+1-Yم{\displaystyle X_{m}=X_{m+1}-Y_{m}}معYم=Pم2-Pم+12=2Pم+1أم+أم2{\displaystyle Y_{m}=P_{m}^{2}-P_{m+1}^{2}=2P_{m+1}a_{m}+a_{m}^{2}}في البداية ، قمنا بتحديدأن=Pن=2ن{\displaystyle a_{n}=P_{n}=2^{n}}لأكبرن{\displaystyle n}مع(2ن)2=4نشمال2{\displaystyle (2^{n})^{2}=4^{n}\leq N^{2}}.

كتحسين إضافي، نقوم بتخزينPم+12م+1{\displaystyle P_{m+1}2^{m+1}}و(2م)2{\displaystyle (2^{m})^{2}}المصطلحانYم{\displaystyle Y_{m}}في حال كانأم{\displaystyle a_{m}}غير صفري، في متغيرات منفصلةجم{\displaystyle c_{m}}،دم{\displaystyle d_{m}}: جم=Pم+12م+1{\displaystyle c_{m}=P_{m+1}2^{m+1}}دم=(2م)2{\displaystyle d_{m}=(2^{m})^{2}}Yم={جم+دملو أم=2م0لو أم=0{\displaystyle Y_{m}={\begin{cases}c_{m}+d_{m}&{\text{if }}a_{m}=2^{m}\\0&{\text{if }}a_{m}=0\end{cases}}}

جم{\displaystyle c_{m}}ودم{\displaystyle d_{m}}يمكن تحديثها بكفاءة في كل خطوة: جم-1=Pم2م=(Pم+1+أم)2م=Pم+12م+أم2م={جم/2+دملو أم=2مجم/2لو أم=0{\displaystyle c_{m-1}=P_{m}2^{m}=(P_{m+1}+a_{m})2^{m}=P_{m+1}2^{m}+a_{m}2^{m}={\begin{cases}c_{m}/2+d_{m}&{\text{if }}a_{m}=2^{m}\\c_{m}/2&{\text{if }}a_{m}=0\end{cases}}}دم-1=دم4{\displaystyle d_{m-1}={\frac {d_{m}}{4}}}

لاحظ أن: ج-1=P020=P0=شمال،{\displaystyle c_{-1}=P_{0}2^{0}=P_{0}=N,}وهي النتيجة النهائية التي يتم إرجاعها في الدالة أدناه.

تطبيق

يقوم برنامج بايثون بالحسابالجذر التربيعي(ن)=ن.{\displaystyle \operatorname {isqrt} (n)=\lfloor {\sqrt {n}}\rfloor .}الخوارزمية هي طريقة رقمية (بت ببت) للجذور التربيعية للأعداد الصحيحة . [ 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 باستخدام المتطابقة التي تم التوصل إليها باستخدام خصائص اللوغاريتمات (lnxن=نlnx{\displaystyle \ln x^{n}=n\ln x}) والدوال الأسية (هـlnx=x{\displaystyle e^{\ln x}=x}) : S=هـ12lnS.{\displaystyle {\sqrt {S}}=e^{{\frac {1}{2}}\ln S}.} المقام في الكسر يُمثل الجذر النوني . في المثال أعلاه، المقام هو ٢، لذا تُشير المعادلة إلى أن المطلوب هو إيجاد الجذر التربيعي. تُستخدم نفس هذه الخاصية عند حساب الجذور التربيعية باستخدام جداول اللوغاريتمات أو المسطرة الحاسبة .

طريقة تكرارية بمتغيرين

هذه الطريقة قابلة للتطبيق لإيجاد الجذر التربيعي لـ0<S<3{\displaystyle 0<S<3\,\!}ويتقارب بشكل أفضل لـS1{\displaystyle S\approx 1}لكن هذا لا يمثل قيدًا حقيقيًا على العمليات الحسابية الحاسوبية، ففي تمثيلات الفاصلة العائمة والثابتة ذات الأساس 2، من السهل جدًا الضربS{\displaystyle S\,\!}بضربها في قوة صحيحة للعدد 4، وبالتاليS{\displaystyle {\sqrt {S}}}وذلك بضربها في القوة المقابلة للعدد 2، أو بتغيير الأس، أو بالإزاحة، على التوالي. لذلك،S{\displaystyle S\,\!}يمكن نقلها إلى المدى12S<2{\textstyle {\tfrac {1}{2}}\leq S<2}علاوة على ذلك، لا تستخدم الطريقة التالية عمليات القسمة العامة، بل تقتصر على الجمع والطرح والضرب والقسمة على قوى العدد اثنين، وهي عمليات سهلة التطبيق. ومن عيوب هذه الطريقة تراكم الأخطاء العددية، على عكس الطرق التكرارية ذات المتغير الواحد، مثل الطريقة البابلية.

تتمثل خطوة التهيئة في هذه الطريقة في أ0=Sج0=S-1{\displaystyle {\begin{aligned}a_{0}&=S\\c_{0}&=S-1\end{aligned}}} بينما تقرأ الخطوات التكرارية أن+1=أن-أنجن/2جن+1=جن2(جن-3)/4{\displaystyle {\begin{aligned}a_{n+1}&=a_{n}-a_{n}c_{n}/2\\c_{n+1}&=c_{n}^{2}(c_{n}-3)/4\end{aligned}}} ثم،أنS{\displaystyle a_{n}\to {\sqrt {S}}}(بينماجن0{\displaystyle c_{n}\to 0}).

تقاربجن{\displaystyle c_{n}\,\!}وبالتالي أيضاً منأن{\displaystyle a_{n}\,\!}، هي دالة تربيعية.

إن إثبات صحة هذه الطريقة سهلٌ للغاية. أولاً، أعد كتابة التعريف التكراري لـجن{\displaystyle c_{n}}مثل 1+جن+1=(1+جن)(1-12جن)2.{\displaystyle 1+c_{n+1}=(1+c_{n})(1-{\tfrac {1}{2}}c_{n})^{2}.} ومن ثم، يصبح من السهل إثبات ذلك بالاستقراء. S(1+جن)=أن2{\displaystyle S(1+c_{n})=a_{n}^{2}} وبالتالي تقاربأن{\displaystyle a_{n}\,\!}لتحقيق النتيجة المرجوةS{\displaystyle {\sqrt {S}}}يتم ضمان ذلك من خلال تقاربجن{\displaystyle c_{n}\,\!}إلى صفر، وهو ما يتبع بدوره من-1<ج0<2{\displaystyle -1<c_{0}<2\,\!}.

طُوِّرت هذه الطريقة حوالي عام 1950 على يد إم. في. ويلكس ، ودي. جيه. ويلر، وإس . جيل [ 13 ] لاستخدامها على جهاز EDSAC ، أحد أوائل الحواسيب الإلكترونية. [ 14 ] ثم عُمِّمت هذه الطريقة لاحقًا، مما سمح بحساب الجذور غير التربيعية. [ 15 ]

الطرق التكرارية للجذور التربيعية المقلوبة

فيما يلي طرق تكرارية لإيجاد الجذر التربيعي المقلوب لـ S وهو1/S{\displaystyle 1/{\sqrt {S}}}بمجرد العثور عليه، ابحثS{\displaystyle {\sqrt {S}}}عن طريق الضرب البسيط:S=S(1/S){\displaystyle {\sqrt {S}}=S\cdot (1/{\sqrt {S}})}تتضمن هذه التكرارات عمليات ضرب فقط، دون قسمة. لذا فهي أسرع من طريقة بابل . مع ذلك، فهي غير مستقرة. فإذا لم تكن القيمة الأولية قريبة من مقلوب الجذر التربيعي، ستتباعد التكرارات عنها بدلًا من أن تتقارب إليها. لذلك، قد يكون من المفيد إجراء تكرار لطريقة بابل على تقدير تقريبي قبل البدء بتطبيق هذه الطرق.

  • تطبيق طريقة نيوتن على المعادلة(1/x2)-S=0{\displaystyle (1/x^{2})-S=0}ينتج طريقة تتقارب تربيعيًا باستخدام ثلاث عمليات ضرب لكل خطوة:xن+1=xن2(3-Sxن2)=xن(32-S2xن2).{\displaystyle x_{n+1}={\frac {x_{n}}{2}}\cdot (3-S\cdot x_{n}^{2})=x_{n}\cdot \left({\frac {3}{2}}-{\frac {S}{2}}\cdot x_{n}^{2}\right).}
  • يمكن الحصول على تكرار آخر باستخدام طريقة هالي ، وهي طريقة هاوسهولدر من الرتبة الثانية. تتقارب هذه الطريقة تكعيبياً ، ولكنها تتضمن خمس عمليات ضرب لكل تكرار: [ ملاحظة 6 ]yن=Sxن2،{\displaystyle y_{n}=S\cdot x_{n}^{2},}وxن+1=xن8(15-yن(10-3yن))=xن(158-yن(108-38yن)).{\displaystyle x_{n+1}={\frac {x_{n}}{8}}\cdot (15-y_{n}\cdot (10-3\cdot y_{n}))=x_{n}\cdot \left({\frac {15}{8}}-y_{n}\cdot \left({\frac {10}{8}}-{\frac {3}{8}}\cdot y_{n}\right)\right).}
  • في حالة استخدام العمليات الحسابية ذات الفاصلة الثابتة ، يمكن تنفيذ الضرب في 3 والقسمة على 8 باستخدام عمليات الإزاحة والجمع. أما في حالة استخدام العمليات الحسابية ذات الفاصلة العائمة، فيمكن اختصار طريقة هالي إلى أربع عمليات ضرب لكل تكرار عن طريق الحساب المسبق.3/8S{\textstyle {\sqrt {3/8}}S}وتعديل جميع الثوابت الأخرى للتعويض:yن=38Sxن2،{\displaystyle y_{n}={\sqrt {\frac {3}{8}}}S\cdot x_{n}^{2},}وxن+1=xن(158-yن(256-yن)).{\displaystyle x_{n+1}=x_{n}\cdot \left({\frac {15}{8}}-y_{n}\cdot \left({\sqrt {\frac {25}{6}}}-y_{n}\right)\right).}

خوارزمية غولدشميت

خوارزمية غولدشميت هي امتداد لقسمة غولدشميت ، سُميت نسبةً إلى روبرت إليوت غولدشميت، [ 16 ] [ 17 ] ويمكن استخدامها لحساب الجذور التربيعية. تستخدم بعض الحواسيب خوارزمية غولدشميت لإجراء عمليات حسابية متزامنة.S{\displaystyle {\sqrt {S}}}و1/S{\displaystyle 1/{\sqrt {S}}}خوارزمية غولدشميت تجدS{\displaystyle {\sqrt {S}}}أسرع من تكرار نيوتن-رافسون على جهاز كمبيوتر مزود بتعليمات ضرب وجمع مدمجة، ووحدة فاصلة عائمة متصلة أو وحدتي فاصلة عائمة مستقلتين. [ 18 ]

الطريقة الأولى لكتابة خوارزمية غولدشميت تبدأ

ب0=S{\displaystyle b_{0}=S}
Y01/S{\displaystyle Y_{0}\approx 1/{\sqrt {S}}}(عادةً باستخدام البحث في جدول)
y0=Y0{\displaystyle y_{0}=Y_{0}}
x0=Sy0{\displaystyle x_{0}=Sy_{0}}

ويكرر بن+1=بنYن2Yن+1=12(3-بن+1)xن+1=xنYن+1yن+1=yنYن+1{\displaystyle {\begin{aligned}b_{n+1}&=b_{n}Y_{n}^{2}\\Y_{n+1}&={\tfrac {1}{2}}(3-b_{n+1})\\x_{n+1}&=x_{n}Y_{n+1}\\y_{n+1}&=y_{n}Y_{n+1}\end{aligned}}} حتىبأنا{\displaystyle b_{i}}تكون القيمة قريبة بما يكفي من 1، أو من عدد ثابت من التكرارات. تتقارب التكرارات إلى ليمنxن=S،{\displaystyle \lim _{n\to \infty }x_{n}={\sqrt {S}},}و ليمنyن=1/S.{\displaystyle \lim _{n\to \infty }y_{n}=1/{\sqrt {S}}.} لاحظ أنه من الممكن حذف أي منهماxن{\displaystyle x_{n}}وyن{\displaystyle y_{n}}من خلال الحساب، وإذا كان كلاهما مطلوبًا فـxن=Syن{\displaystyle x_{n}=Sy_{n}}يمكن استخدامها في النهاية بدلاً من حسابها في كل تكرار.

ثمة شكل ثانٍ، يستخدم عمليات الضرب والجمع المدمجة ، يبدأ

y01/S{\displaystyle y_{0}\approx 1/{\sqrt {S}}}(عادةً باستخدام البحث في جدول)
x0=Sy0{\displaystyle x_{0}=Sy_{0}}
ح0=12y0{\displaystyle h_{0}={\tfrac {1}{2}}y_{0}}

ويكرر رن=0.5-xنحنxن+1=xن+xنرنحن+1=حن+حنرن{\displaystyle {\begin{aligned}r_{n}&=0.5-x_{n}h_{n}\\x_{n+1}&=x_{n}+x_{n}r_{n}\\h_{n+1}&=h_{n}+h_{n}r_{n}\end{aligned}}} حتىرأنا{\displaystyle r_{i}}تكون قريبة بما فيه الكفاية من الصفر، أو من عدد ثابت من التكرارات. وهذا يتقارب إلى ليمنxن=S،{\displaystyle \lim _{n\to \infty }x_{n}={\sqrt {S}},}و ليمن2حن=1/S.{\displaystyle \lim _{n\to \infty }2h_{n}=1/{\sqrt {S}}.}

سلسلة تايلور

إذا كان N تقريبًا لـS{\displaystyle {\sqrt {S}}}، ويمكن إيجاد تقريب أفضل باستخدام متسلسلة تايلور لدالة الجذر التربيعي : شمال2+د=شمالن=0(-1)ن(2ن)!(1-2ن)ن!24ندنشمال2ن=شمال(1+د2شمال2-د28شمال4+د316شمال6-5د4128شمال8+){\displaystyle {\sqrt {N^{2}+d}}=N\sum _{n=0}^{\infty }{\frac {(-1)^{n}(2n)!}{(1-2n)n!^{2}4^{n}}}{\frac {d^{n}}{N^{2n}}}=N\left(1+{\frac {d}{2N^{2}}}-{\frac {d^{2}}{8N^{4}}}+{\frac {d^{3}}{16N^{6}}}-{\frac {5d^{4}}{128N^{8}}}+\cdots \right)}

باعتبارها طريقة تكرارية ، فإن رتبة التقارب تساوي عدد الحدود المستخدمة. مع حدين، تكون مطابقة للطريقة البابلية . مع ثلاثة حدود، تتطلب كل تكرارة عددًا من العمليات يكاد يوازي تقريب بخشالي ، لكنها تتقارب ببطء أكبر. لذلك، لا تُعد هذه طريقة حساب فعالة بشكل خاص. لزيادة معدل التقارب إلى أقصى حد، اختر N بحيث|د|شمال2{\displaystyle {\frac {|d|}{N^{2}}}\,}أصغر ما يمكن.

استمرار توسيع الكسور

يمكن استخدام تمثيل الكسر المستمر لعدد حقيقي بدلاً من توسيعه العشري أو الثنائي، وهذا التمثيل له خاصية أن الجذر التربيعي لأي عدد نسبي (ليس مربعًا كاملاً بالفعل) له توسيع دوري متكرر، على غرار كيفية وجود توسعات متكررة للأعداد النسبية في نظام الترميز العشري.

الأعداد غير النسبية التربيعية (الأعداد التي على الصورةأ+بج{\displaystyle {\frac {a+{\sqrt {b}}}{c}}}حيث a و b و c أعداد صحيحة، وعلى وجه الخصوص، فإن الجذور التربيعية للأعداد الصحيحة لها كسور مستمرة دورية . أحيانًا يكون المطلوب ليس إيجاد القيمة العددية للجذر التربيعي، بل إيجاد تمثيله بالكسر المستمر ، ومن ثم تقريبه النسبي. ليكن S هو العدد الموجب المطلوب إيجاد جذره التربيعي. بافتراض أن a هو عدد يُستخدم كقيمة ابتدائية و r هو حد الباقي، يمكننا كتابةS=أ2+ر.{\displaystyle S=a^{2}+r.}بما أنناS-أ2=(S+أ)(S-أ)=ر{\displaystyle S-a^{2}=({\sqrt {S}}+a)({\sqrt {S}}-a)=r}يمكننا التعبير عن الجذر التربيعي لـ S على النحو التالي: S=أ+رأ+S.{\displaystyle {\sqrt {S}}=a+{\frac {r}{a+{\sqrt {S}}}}.}

بتطبيق هذا التعبير لـS{\displaystyle {\sqrt {S}}}بالنسبة لمقام الكسر، لدينا: S=أ+رأ+(أ+رأ+S)=أ+ر2أ+رأ+S.{\displaystyle {\sqrt {S}}=a+{\frac {r}{a+(a+{\frac {r}{a+{\sqrt {S}}}})}}=a+{\frac {r}{2a+{\frac {r}{a+{\sqrt {S}}}}}}.}

الترميز المختصر يُعدّ فكّ البسط والمقام للكسور المستمرة (أعلاه) أمرًا مُرهقًا في الكتابة، وكذلك في تضمينه في أنظمة تنسيق النصوص. لذلك، ابتكر علماء الرياضيات العديد من الترميزات البديلة، مثل: S=أ+ر2أ+ر2أ+ر2أ+{\displaystyle {\sqrt {S}}=a+{\frac {r}{2a+}}\,{\frac {r}{2a+}}\,{\frac {r}{2a+}}\cdots }

متىر=1{\displaystyle r=1}في جميع أنحاء النص، توجد صيغة أكثر اختصارًا وهي: [ ملاحظة 7 ][أ؛2أ،2أ،2أ،]{\displaystyle [a;2a,2a,2a,\cdots ]} بالنسبة للكسور المستمرة المتكررة (كما هو الحال في جميع الجذور التربيعية للأعداد غير المربعة الكاملة)، يتم تمثيل الجزء المتكرر مرة واحدة فقط، مع خط علوي للدلالة على تكرار غير منتهٍ للجزء الذي يعلوه الخط: [ ملاحظة 8 ][أ؛2أ¯]{\displaystyle [a;{\overline {2a}}]}

بالنسبة لـ √2 ، فإن قيمة a تساوي 1 ، لذا فإن تمثيلها هو: [1؛2¯]{\displaystyle [1;{\overline {2}}]}

وباتباع هذه الطريقة، نحصل على كسر مستمر معمّم للجذر التربيعي كما يلي: S=أ+ر2أ+ر2أ+ر2أ+{\displaystyle {\sqrt {S}}=a+{\cfrac {r}{2a+{\cfrac {r}{2a+{\cfrac {r}{2a+\ddots }}}}}}}

تتمثل الخطوة الأولى لتقييم هذا الكسر [ 19 ] للحصول على جذره في إجراء تعويضات عددية لجذر العدد المطلوب، وعدد المقامات المختارة. على سبيل المثال، في الصيغة القياسية، r = 1، وبالنسبة لـ √2 ، a = 1 ، لذا فإن الكسر المستمر العددي لثلاثة مقامات هو: 21+12+12+12{\displaystyle {\sqrt {2}}\approx 1+{\cfrac {1}{2+{\cfrac {1}{2+{\cfrac {1}{2}}}}}}}

الخطوة الثانية هي تبسيط الكسر المستمر من الأسفل إلى الأعلى، مقامًا تلو الآخر، للحصول على كسر نسبي بسطه ومقامه عددان صحيحان. ويتم التبسيط على النحو التالي (بأخذ المقامات الثلاثة الأولى): 1+12+12+12=1+12+152=1+12+25=1+1125=1+512=1712{\displaystyle {\begin{aligned}1+{\cfrac {1}{2+{\cfrac {1}{2+{\cfrac {1}{2}}}}}}&=1+{\cfrac {1}{2+{\cfrac {1}{\frac {5}{2}}}}}\\&=1+{\cfrac {1}{2+{\cfrac {2}{5}}}}=1+{\cfrac {1}{\frac {12}{5}}}\\&=1+{\cfrac {5}{12}}={\frac {17}{12}}\end{aligned}}}

وأخيرًا (الخطوة 3)، اقسم البسط على مقام الكسر النسبي للحصول على القيمة التقريبية للجذر: 17÷12=1.42{\displaystyle 17\div 12=1.42}تم تقريبها إلى ثلاثة أرقام من الدقة.

القيمة الفعلية لـ √2 هي 1.41 بدقة ثلاثة أرقام معنوية. الخطأ النسبي هو 0.17%، لذا فإن الكسر النسبي دقيق بدقة تقارب ثلاثة أرقام معنوية. كلما زاد عدد المقامات، تحسنت التقريبات تدريجيًا: أربعة مقامات تعطي الكسر4129=1.4137{\displaystyle {\frac {41}{29}}=1.4137}جيدة بدقة تصل إلى أربعة أرقام تقريبًا، إلخ.

فيما يلي أمثلة على الجذور التربيعية، وكسورها المستمرة البسيطة، وحدودها الأولى - التي تسمى الحدود المتقاربة - حتى المقام 99:

S~عشريالكسر المكملمتقاربة
21.41421[1؛2¯]{\displaystyle [1;{\overline {2}}]}32،75،1712،4129،9970{\displaystyle {\frac {3}{2}},{\frac {7}{5}},{\frac {17}{12}},{\frac {41}{29}},{\frac {99}{70}}}
31.73205[1؛1،2¯]{\displaystyle [1;{\overline {1,2}}]}21،53،74،1911،2615،7141،9756{\displaystyle {\frac {2}{1}},{\frac {5}{3}},{\frac {7}{4}},{\frac {19}{11}},{\frac {26}{15}},{\frac {71}{41}},{\frac {97}{56}}}
52.23607[2؛4¯]{\displaystyle [2;{\overline {4}}]}94،3817،16172{\displaystyle {\frac {9}{4}},{\frac {38}{17}},{\frac {161}{72}}}
62.44949[2؛2،4¯]{\displaystyle [2;{\overline {2,4}}]}52،229،4920،21889{\displaystyle {\frac {5}{2}},{\frac {22}{9}},{\frac {49}{20}},{\frac {218}{89}}}
103.16228[3؛6¯]{\displaystyle [3;{\overline {6}}]}196،11737{\displaystyle {\frac {19}{6}},{\frac {117}{37}}}
π{\displaystyle {\sqrt {\pi }}}1.77245[1؛1،3،2،1،1،6،...]{\displaystyle [1;1,3,2,1,1,6,\ldots ]}21،74،169،2313،3922{\displaystyle {\frac {2}{1}},{\frac {7}{4}},{\frac {16}{9}},{\frac {23}{13}},{\frac {39}{22}}}
هـ{\displaystyle {\sqrt {e}}}1.64872[1؛1،1،1،5،1،1،...]{\displaystyle [1;1,1,1,5,1,1,\ldots ]}21،32،53،2817،3320،6137{\displaystyle {\frac {2}{1}},{\frac {3}{2}},{\frac {5}{3}},{\frac {28}{17}},{\frac {33}{20}},{\frac {61}{37}}}
ϕ{\displaystyle {\sqrt {\phi }}}1.27202[1؛3،1،2،11،3،7،...]{\displaystyle [1;3,1,2,11,3,7,\ldots ]}43،54،1411{\displaystyle {\frac {4}{3}},{\frac {5}{4}},{\frac {14}{11}}}

بشكل عام، كلما زاد مقام الكسر النسبي، كان التقريب أفضل. ويمكن إثبات أن اقتطاع الكسر المستمر ينتج عنه كسر نسبي يمثل أفضل تقريب لجذر أي كسر مقامه أقل من أو يساوي مقام ذلك الكسر - على سبيل المثال، لا يوجد كسر مقامه أقل من أو يساوي 70 يمثل تقريبًا جيدًا لجذر 2 مثل 99/70.

التقريبات التي تعتمد على تمثيل الفاصلة العائمة

يُكتب العدد بصيغة الفاصلة العائمة على النحو التالي:م×بص{\displaystyle m\times b^{p}}وهو ما يُسمى أيضًا بالتدوين العلمي . وجذره التربيعي هوم×بص/2{\displaystyle {\sqrt {m}}\times b^{p/2}}وينطبق الأمر نفسه على الجذور التكعيبية واللوغاريتمات. ظاهريًا، لا يُعدّ هذا تحسينًا في البساطة، ولكن لنفترض أننا نحتاج فقط إلى تقريب: عندها فقطبص/2{\displaystyle b^{p/2}}جيد حتى رتبة مقدارية. بعد ذلك، لاحظ أن بعض القوى، p ، ستكون فردية، وبالتالي فإن 3141.59 = 3.14159 × 10بدلاً من التعامل مع قوى كسرية للأساس، اضرب الجزء الكسري في الأساس واطرح واحدًا من القوة لجعلها زوجية. سيصبح التمثيل المعدل مكافئًا لـ 31.4159 × 10٢ بحيث يكون الجذر التربيعي٣١٫٤١٥٩ × ١٠1 .

إذا أُخذ الجزء الصحيح من الجزء الكسري المُعدَّل، فلن يكون هناك سوى القيم من 1 إلى 99، ويمكن استخدام ذلك كمؤشر في جدول يحتوي على 99 جذرًا تربيعيًا محسوبًا مسبقًا لإكمال التقدير. سيحتاج الحاسوب الذي يستخدم الأساس 16 إلى جدول أكبر، بينما سيحتاج الحاسوب الذي يستخدم الأساس 2 إلى ثلاثة مدخلات فقط: البتات الممكنة للجزء الصحيح من الجزء الكسري المُعدَّل هي 01 (لأن الأس زوجي، لذا لم يكن هناك إزاحة، مع الأخذ في الاعتبار أن العدد العشري المعياري يحتوي دائمًا على رقم أعلى غير صفري) أو إذا كان الأس فرديًا، 10 أو 11، وهما أول بتين من الجزء الكسري الأصلي. وبالتالي، فإن 6.25 = 110.01 بالنظام الثنائي، ويتم تعديله ليصبح 1.1001 ×، وهو عدد زوجي، لذا فإن البتات المزدوجة في الجزء الكسري هي 01. أما 0.625 = 0.101 بالنظام الثنائي، ويتم تعديله ليصبح 1.01 × 2⁻¹ ، وهو عدد فردي، لذا فإن التعديل يكون ليصبح 10.1 × 2⁻² ، والبتات المزدوجة هي 10. لاحظ أن البت الأدنى في العدد الزوجي ينعكس في البت الأعلى في الجزء الكسري. في العدد الزوجي، يكون البت الأدنى صفرًا، وبالتالي يبدأ الجزء الكسري المعدل من 0، بينما في العدد الفردي، يكون هذا البت واحدًا، وبالتالي يبدأ الجزء الكسري المعدل من 1. لذا، عند تقسيم العدد الزوجي إلى نصفين، يكون الأمر كما لو أن البت الأدنى فيه قد تم إزاحته ليصبح البت الأول في الجزء الكسري.

يمكن توسيع جدول يحتوي على ثلاثة عناصر فقط بإضافة بتات إضافية من الجزء الكسري. مع ذلك، في الحواسيب، بدلاً من حساب استيفاء في جدول، يُفضّل غالبًا إيجاد عملية حسابية أبسط تُعطي نتائج مكافئة. يعتمد كل شيء الآن على التفاصيل الدقيقة لتنسيق التمثيل، بالإضافة إلى العمليات المتاحة للوصول إلى أجزاء العدد ومعالجتها. على سبيل المثال، توفر لغة فورترانEXPONENT(x) دالةً لحساب الأس. يُعوَّض الجهد المبذول في ابتكار تقريب أولي جيد بتجنب التكرارات الإضافية لعملية التحسين التي كانت ستكون ضرورية لتقريب ضعيف. نظرًا لقلة هذه التكرارات (يتطلب التكرار الواحد قسمة وجمع وتنصيفًا)، فإن القيد صارم.

تتبع العديد من الحواسيب تمثيل IEEE (أو تمثيلًا مشابهًا له بدرجة كافية)، ويمكن الحصول على تقريب سريع جدًا للجذر التربيعي لبدء طريقة نيوتن. تعتمد التقنية التالية على حقيقة أن تنسيق الفاصلة العائمة (في الأساس 2) يُقارب اللوغاريتم ذي الأساس 2.سجل2(م×2ص)=ص+سجل2(م){\displaystyle \log _{2}(m\times 2^{p})=p+\log _{2}(m)}

لذا، بالنسبة لعدد ذي فاصلة عائمة أحادي الدقة 32 بت بتنسيق IEEE (حيث يُلاحظ أن الأس يحتوي على انحياز قدره 127 للشكل المُمثَّل)، يمكنك الحصول على اللوغاريتم التقريبي عن طريق تفسير تمثيله الثنائي كعدد صحيح 32 بت، ثم ضربه في2-23{\displaystyle 2^{-23}}وإزالة التحيز البالغ 127، أي xعدد صحيح2-23-127سجل2(x).{\displaystyle x_{\text{int}}\cdot 2^{-23}-127\approx \log _{2}(x).}

على سبيل المثال، يُمثل الرقم 1.0 بالرقم الست عشري 0x3F800000 ، والذي يُمثل1065353216=127×223{\displaystyle 1065353216=127\times 2^{23}}إذا تم اعتبارها عددًا صحيحًا. باستخدام الصيغة أعلاه، ستحصل على1065353216×2-23-127=0{\displaystyle 1065353216\times 2^{-23}-127=0}كما هو متوقع منسجل2(1.0){\displaystyle \log _{2}(1.0)}وبالمثل، تحصل على 0.5 من 1.5 ( 0x3FC00000 ).

للحصول على الجذر التربيعي، قسّم اللوغاريتم على 2 ثم حوّل القيمة إلى الجذر التربيعي. يوضح البرنامج التالي هذه الفكرة. يُسمح عمدًا لأقل بت في الأس بالانتشار إلى الجزء الكسري. إحدى طرق تبرير خطوات هذا البرنامج هي افتراض أن b هو انحياز الأس و n هو عدد البتات المخزنة صراحةً في الجزء الكسري، ثم إثبات ذلك. ((12(xعدد صحيح/2ن-ب))+ب)2ن=12(xعدد صحيح-2ن)+(12(ب+1))2ن.{\displaystyle \left(\left({\tfrac {1}{2}}\left(x_{\text{int}}/2^{n}-b\right)\right)+b\right)\cdot 2^{n}={\tfrac {1}{2}}\left(x_{\text{int}}-2^{n}\right)+\left({\tfrac {1}{2}}\left(b+1\right)\right)\cdot 2^{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 .

إذا كان سيتم استخدام التقريب كقيمة أولية لطريقة نيوتن لحل المعادلة(1/x2)-S=0{\displaystyle (1/x^{2})-S=0}إذا كان الأمر كذلك، فإن الشكل المتبادل الموضح في القسم التالي هو المفضل.

يمكن تحسين التقريب بشكل أكبر بدمج جمع a ، حيث 1 << 29 و -1 << 22 في عملية واحدة. ينتج عن ذلك (val.i >> 1) + 0x1FBB4F2Eقيمة a = 0x4B0D2 التي تقلل تصحيح الخطأ، وقيمة a = 0.(val.i >> 1) + 1FC00000

مقلوب الجذر التربيعي

يتضمن الجدول أدناه صيغة معدلة من الروتين المذكور أعلاه، والتي يمكن استخدامها لحساب مقلوب الجذر التربيعي، أيx-1/2{\displaystyle x^{-1/2}}بدلاً من ذلك، كتبه جريج والش. أنتج تقريب الإزاحة الصحيحة خطأً نسبيًا أقل من 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=|S|أنا.{\displaystyle {\sqrt {S}}={\sqrt {\vert S\vert }}\,\,i\,.}

إذا كانت S  = a + bi حيث a و b عددان حقيقيان و b ≠ 0، فإن جذرها التربيعي الرئيسي هو    S=|S|+أ2+علامة(ب)|S|-أ2أنا.{\displaystyle {\sqrt {S}}={\sqrt {\frac {\vert S\vert +a}{2}}}\,+\,\operatorname {sgn}(b){\sqrt {\frac {\vert S\vert -a}{2}}}\,\,i\,.}

يمكن التحقق من ذلك بتربيع الجذر. [ 22 ] [ 23 ] هنا |S|=أ2+ب2{\displaystyle \vert S\vert ={\sqrt {a^{2}+b^{2}}}}

هو معيار S. يُعرَّف الجذر التربيعي الرئيسي لعدد مركب بأنه الجذر ذو الجزء الحقيقي غير السالب .

انظر أيضاً

ملحوظات

  1. يتم استخدام العاملين اثنين وستة لأنهما يقاربان المتوسط ​​الهندسي لأصغر وأكبر القيم الممكنة مع عدد الأرقام المحدد:110=1041.78{\displaystyle {\sqrt {{\sqrt {1}}\cdot {\sqrt {10}}}}={\sqrt[{4}]{10}}\approx 1.78\,}و10100=100045.62{\displaystyle {\sqrt {{\sqrt {10}}\cdot {\sqrt {100}}}}={\sqrt[{4}]{1000}}\approx 5.62\,}.
  2. يبلغ الحد الأقصى للخطأ المطلق للتقدير غير المقرب 2.65 عند 100، ويبلغ الحد الأقصى للخطأ النسبي 26.5% عند y=1 و10 و100.
  3. إذا كان العدد يقع في منتصف المسافة بين مربعين تمامًا، مثل 30.5، فخمن العدد الأكبر وهو 6 في هذه الحالة
  4. هذه بالمناسبة هي معادلة الخط المماس للمعادلة y = x 2 عند y = 1.
  5. يمكن أن تتراوح الدقة الافتراضية من 1 إلىdecimal.MAX_PREC
  6. انظر أعلاه .
  7. انظر: الكسور المستمرة#الرموز
  8. انظر: الكسر المستمر الدوري

مراجع

  1. جاكسون 2011 .
  2. فاولر وروبسون 1998 .
  3. 1 2 هيث 1921 .
  4. باومان 2024 .
  5. جونسون 2015 .
  6. نيميروف وبونيل 1994 .
  7. نيميروف وبونيل 1994 أ .
  8. بيلي وبورواين 2012 .
  9. Simply Curious 2018 .
  10. هيريرو بينيرو، بي جيه؛ لينيرو باس، أ؛ ماسا إستيف، إم آر؛ ميلادو روميرو، أ. (2023). "مسألة حول تقريب الجذور من الرتبة n بناءً على عمل فييت" (ملف PDF) . MATerials MATemàtics . 5 : 1–27 . تاريخ الاسترجاع: 15 نوفمبر 2025 .انظر الصفحة 8.
  11. جاي 1985 .
  12. ^ ستينارسون، كوربيت وهيندري 2003 .
  13. Wilkes, Wheeler & Gill 1951, pp. 146.
  14. Campbell-Kelly 2009.
  15. Gower 1958.
  16. 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.
  17. "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.
  18. Markstein 2004.
  19. Sardina 2007, p. 10, 2.3j.
  20. Lomont 2003.
  21. Piñeiro & Díaz Bruguera 2002.
  22. Abramowitz & Stegun 1970, p. 17, Section 3.7.26.
  23. Cooke 2008, p. 59.

Bibliography