हॉर्नर की विधि: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Algorithm for polynomial evaluation}} {{cleanup|reason = See Talk:Horner's method#This Article is about Two Different Algorithms|date=November 2018}}...")
 
No edit summary
Line 45: Line 45:
(2)\quad\quad\quad p(x) = (b_1 + b_2 x + b_3 x^2 + b_4x^3 + \cdots + b_{n-1} x^{n-2} +b_nx^{n-1})(x-x_0)+b_0
(2)\quad\quad\quad p(x) = (b_1 + b_2 x + b_3 x^2 + b_4x^3 + \cdots + b_{n-1} x^{n-2} +b_nx^{n-1})(x-x_0)+b_0
</math>
</math>
यह अभिव्यक्ति हॉर्नर के व्यावहारिक अनुप्रयोग का गठन करती है, क्योंकि यह परिणाम का निर्धारण करने का एक बहुत तेज़ तरीका प्रदान करती है;
यह अभिव्यक्ति हॉर्नर के व्यावहारिक अनुप्रयोग का गठन करती है, क्योंकि यह परिणाम का निर्धारण करने का एक बहुत तेज़ विधि प्रदान करती है;
:<math>
:<math>
p(x)/(x-x_0)
p(x)/(x-x_0)
</math>
</math>
साथ <math>b_0</math> (जो बराबर है <math>p(x_0)</math>) विभाजन का शेषफल है, जैसा कि नीचे दिए गए उदाहरणों से प्रदर्शित होता है। अगर <math>x_0</math> की जड़ है <math>p(x)</math>, तब <math>b_0 = 0</math> (मतलब शेष है <math>0</math>), जिसका अर्थ है कि आप फ़ैक्टर कर सकते हैं <math>p(x)</math> जैसा <math>x-x_0</math>.
साथ <math>b_0</math> (जो बराबर है <math>p(x_0)</math>) विभाजन का शेषफल है, जैसा कि नीचे दिए गए उदाहरणों से प्रदर्शित होता है। यदि  <math>x_0</math> की जड़ है <math>p(x)</math>, तब <math>b_0 = 0</math> (मतलब शेष है <math>0</math>), जिसका अर्थ है कि आप फ़ैक्टर कर सकते हैं <math>p(x)</math> जैसा <math>x-x_0</math>.


लगातार खोजने के लिए <math>b</math>-मूल्य, आप निर्धारण के साथ शुरू करते हैं <math>b_n</math>, जो बस के बराबर है <math>a_n</math>. फिर आप सूत्र का उपयोग करके पुनरावर्ती रूप से कार्य करते हैं;
लगातार खोजने के लिए <math>b</math>-मूल्य, आप निर्धारण के साथ प्रारंभ  करते हैं <math>b_n</math>, जो बस के बराबर है <math>a_n</math>. फिर आप सूत्र का उपयोग करके पुनरावर्ती रूप से कार्य करते हैं;
:<math>
:<math>
b_{n-1}=a_{n-1}+b_{n}x_0
b_{n-1}=a_{n-1}+b_{n}x_0
Line 92: Line 92:
         2 -2 -1 1 -4
         2 -2 -1 1 -4


तीसरी पंक्ति पहली दो पंक्तियों के योग से विभाजित होती है <math>2</math>. दूसरी पंक्ति में प्रत्येक प्रविष्टि का उत्पाद है <math>1</math> बाईं ओर तीसरी-पंक्ति प्रविष्टि के साथ। जवाब है
तीसरी पंक्ति पहली दो पंक्तियों के योग से विभाजित होती है <math>2</math>. दूसरी पंक्ति में प्रत्येक प्रविष्टि का उत्पाद है <math>1</math> बाईं ओर तीसरी-पंक्ति प्रविष्टि के साथ। उत्तर  है


:<math>\frac{f_1(x)}{f_2(x)}=2x^3-2x^2-x+1-\frac{4}{2x-1}.</math>
:<math>\frac{f_1(x)}{f_2(x)}=2x^3-2x^2-x+1-\frac{4}{2x-1}.</math>
Line 101: Line 101:
डिग्री के मोनोमियल रूप का उपयोग करके मूल्यांकन <math>n</math> बहुपद की अधिकतम आवश्यकता होती है <math>n</math> अतिरिक्त और <math>(n^2+n)/2</math> गुणा, शक्तियों की गणना बार-बार गुणा करके की जाती है और प्रत्येक मोनोमियल का व्यक्तिगत रूप से मूल्यांकन किया जाता है। लागत को कम किया जा सकता है <math>n</math> अतिरिक्त और <math>2n-1</math> की शक्तियों का मूल्यांकन करके गुणा <math>x</math> पुनरावृत्ति द्वारा।
डिग्री के मोनोमियल रूप का उपयोग करके मूल्यांकन <math>n</math> बहुपद की अधिकतम आवश्यकता होती है <math>n</math> अतिरिक्त और <math>(n^2+n)/2</math> गुणा, शक्तियों की गणना बार-बार गुणा करके की जाती है और प्रत्येक मोनोमियल का व्यक्तिगत रूप से मूल्यांकन किया जाता है। लागत को कम किया जा सकता है <math>n</math> अतिरिक्त और <math>2n-1</math> की शक्तियों का मूल्यांकन करके गुणा <math>x</math> पुनरावृत्ति द्वारा।
अंकों (या बिट्स) के संदर्भ में संख्यात्मक डेटा का प्रतिनिधित्व किया जाता है, फिर भोली एल्गोरिथ्म भी लगभग भंडारण पर जोर देता है <math>2n</math> के बिट्स की संख्या का गुना <math>x</math>: मूल्यांकित बहुपद का परिमाण अनुमानित है <math>x^n</math>, और एक को स्टोर भी करना चाहिए <math>x^n</math> अपने आप। इसके विपरीत, हॉर्नर की विधि को केवल आवश्यकता होती है <math>n</math> अतिरिक्त और <math>n</math> गुणन, और इसकी भंडारण आवश्यकताएं केवल हैं <math>n</math> के बिट्स की संख्या का गुना <math>x</math>. वैकल्पिक रूप से, हॉर्नर की विधि की गणना की जा सकती है <math>n</math> फ़्यूज्ड मल्टीप्लाई-जोड़ता है। पहले का मूल्यांकन करने के लिए हॉर्नर की विधि को भी बढ़ाया जा सकता है <math>k</math> के साथ बहुपद के डेरिवेटिव <math>kn</math> जोड़ और गुणा।<ref>{{harvnb|Pankiewicz|1968}}.</ref>
अंकों (या बिट्स) के संदर्भ में संख्यात्मक डेटा का प्रतिनिधित्व किया जाता है, फिर भोली एल्गोरिथ्म भी लगभग भंडारण पर जोर देता है <math>2n</math> के बिट्स की संख्या का गुना <math>x</math>: मूल्यांकित बहुपद का परिमाण अनुमानित है <math>x^n</math>, और एक को स्टोर भी करना चाहिए <math>x^n</math> अपने आप। इसके विपरीत, हॉर्नर की विधि को केवल आवश्यकता होती है <math>n</math> अतिरिक्त और <math>n</math> गुणन, और इसकी भंडारण आवश्यकताएं केवल हैं <math>n</math> के बिट्स की संख्या का गुना <math>x</math>. वैकल्पिक रूप से, हॉर्नर की विधि की गणना की जा सकती है <math>n</math> फ़्यूज्ड मल्टीप्लाई-जोड़ता है। पहले का मूल्यांकन करने के लिए हॉर्नर की विधि को भी बढ़ाया जा सकता है <math>k</math> के साथ बहुपद के डेरिवेटिव <math>kn</math> जोड़ और गुणा।<ref>{{harvnb|Pankiewicz|1968}}.</ref>
हॉर्नर की विधि इष्टतम है, इस अर्थ में कि किसी भी एल्गोरिदम को मनमाने ढंग से बहुपद का मूल्यांकन करने के लिए कम से कम कई परिचालनों का उपयोग करना चाहिए। [[अलेक्जेंडर ओस्ट्रोव्स्की]] ने 1954 में साबित किया कि आवश्यक परिवर्धन की संख्या न्यूनतम है।<ref>{{harvnb|Ostrowski|1954}}.</ref> [[विक्टर पैन]] ने 1966 में सिद्ध किया कि गुणन की संख्या न्यूनतम है।<ref>{{harvnb|Pan|1966}}.</ref> हालाँकि, कब <math>x</math> एक मैट्रिक्स है, बहुपद मूल्यांकन#मैट्रिक्स बहुपद|हॉर्नर की विधि इष्टतम नहीं है।
हॉर्नर की विधि इष्टतम है, इस अर्थ में कि किसी भी एल्गोरिदम को मनमाने ढंग से बहुपद का मूल्यांकन करने के लिए कम से कम कई परिचालनों का उपयोग करना चाहिए। [[अलेक्जेंडर ओस्ट्रोव्स्की]] ने 1954 में सिद्ध  किया कि आवश्यक परिवर्धन की संख्या न्यूनतम है।<ref>{{harvnb|Ostrowski|1954}}.</ref> [[विक्टर पैन]] ने 1966 में सिद्ध किया कि गुणन की संख्या न्यूनतम है।<ref>{{harvnb|Pan|1966}}.</ref> चूँकि , कब <math>x</math> एक मैट्रिक्स है, बहुपद मूल्यांकन#मैट्रिक्स बहुपद|हॉर्नर की विधि इष्टतम नहीं है।


यह मानता है कि बहुपद का मूल्यांकन मोनोमियल रूप में किया जाता है और प्रतिनिधित्व की कोई पूर्व [[शर्त]] की अनुमति नहीं है, जो समझ में आता है कि बहुपद का मूल्यांकन केवल एक बार किया जाता है। हालांकि, अगर पूर्व शर्त की अनुमति है और बहुपद का कई बार मूल्यांकन किया जाना है, तो बहुपद मूल्यांकन # प्रीप्रोसेसिंग के साथ मूल्यांकन। उनमें बहुपद के प्रतिनिधित्व का परिवर्तन शामिल है। सामान्य तौर पर, एक डिग्री-<math>n</math> बहुपद का मूल्यांकन केवल का उपयोग करके किया जा सकता है {{floor|''n''/2}}+2 गुणा और <math>n</math> जोड़।<ref>{{harvnb|Knuth|1997}}.</ref>
यह मानता है कि बहुपद का मूल्यांकन मोनोमियल रूप में किया जाता है और प्रतिनिधित्व की कोई पूर्व [[शर्त]] की अनुमति नहीं है, जो समझ में आता है कि बहुपद का मूल्यांकन केवल एक बार किया जाता है। चूंकि , यदि  पूर्व शर्त की अनुमति है और बहुपद का कई बार मूल्यांकन किया जाना है, तो बहुपद मूल्यांकन # प्रीप्रोसेसिंग के साथ मूल्यांकन। उनमें बहुपद के प्रतिनिधित्व का परिवर्तन सम्मलित  है। सामान्यतः , एक डिग्री-<math>n</math> बहुपद का मूल्यांकन केवल का उपयोग करके किया जा सकता है {{floor|''n''/2}}+2 गुणा और <math>n</math> जोड़।<ref>{{harvnb|Knuth|1997}}.</ref>




Line 110: Line 110:
हॉर्नर के नियम का एक नुकसान यह है कि सभी ऑपरेशन डेटा पर निर्भर हैं, इसलिए आधुनिक कंप्यूटरों पर निर्देश स्तर की समानता का लाभ उठाना संभव नहीं है। अधिकांश अनुप्रयोगों में जहां बहुपद मूल्यांकन की दक्षता मायने रखती है, कई निम्न-क्रम वाले बहुपदों का एक साथ मूल्यांकन किया जाता है (कंप्यूटर ग्राफिक्स में प्रत्येक पिक्सेल या बहुभुज के लिए, या प्रत्येक ग्रिड वर्ग के लिए एक संख्यात्मक सिमुलेशन में), इसलिए एक के भीतर समानता खोजने के लिए आवश्यक नहीं है एकल बहुपद मूल्यांकन।
हॉर्नर के नियम का एक नुकसान यह है कि सभी ऑपरेशन डेटा पर निर्भर हैं, इसलिए आधुनिक कंप्यूटरों पर निर्देश स्तर की समानता का लाभ उठाना संभव नहीं है। अधिकांश अनुप्रयोगों में जहां बहुपद मूल्यांकन की दक्षता मायने रखती है, कई निम्न-क्रम वाले बहुपदों का एक साथ मूल्यांकन किया जाता है (कंप्यूटर ग्राफिक्स में प्रत्येक पिक्सेल या बहुभुज के लिए, या प्रत्येक ग्रिड वर्ग के लिए एक संख्यात्मक सिमुलेशन में), इसलिए एक के भीतर समानता खोजने के लिए आवश्यक नहीं है एकल बहुपद मूल्यांकन।


हालांकि, यदि कोई बहुत उच्च क्रम के एकल बहुपद का मूल्यांकन कर रहा है, तो इसे निम्न प्रकार से तोड़ना उपयोगी हो सकता है:
चूंकि , यदि कोई बहुत उच्च क्रम के एकल बहुपद का मूल्यांकन कर रहा है, तो इसे निम्न प्रकार से तोड़ना उपयोगी हो सकता है:
:<math>\begin{align}
:<math>\begin{align}
p(x) & = \sum_{i=0}^n a_i x^i \\
p(x) & = \sum_{i=0}^n a_i x^i \\
Line 125: Line 125:
     & = \sum_{j=0}^{k-1} x^j p_j(x^k) \\
     & = \sum_{j=0}^{k-1} x^j p_j(x^k) \\
\end{align}</math>
\end{align}</math>
जहां हॉर्नर की विधि के अलग-अलग समानांतर उदाहरणों का उपयोग करके आंतरिक योग का मूल्यांकन किया जा सकता है। इसके लिए मूल हॉर्नर विधि की तुलना में थोड़े अधिक संचालन की आवश्यकता होती है, लेकिन उनमें से अधिकांश के k-way [[SIMD]] निष्पादन की अनुमति देता है। आधुनिक संकलक आमतौर पर इस तरह से बहुपदों का मूल्यांकन करते हैं जब फायदेमंद होता है, हालांकि [[तैरनेवाला स्थल]] गणनाओं के लिए इसके लिए सक्षम (असुरक्षित) पुन: सहयोगी गणित की आवश्यकता होती है{{Citation needed|date=February 2022}}.
जहां हॉर्नर की विधि के अलग-अलग समानांतर उदाहरणों का उपयोग करके आंतरिक योग का मूल्यांकन किया जा सकता है। इसके लिए मूल हॉर्नर विधि की तुलना में थोड़े अधिक संचालन की आवश्यकता होती है, लेकिन उनमें से अधिकांश के k-way [[SIMD]] निष्पादन की अनुमति देता है। आधुनिक संकलक सामान्यतः  इस तरह से बहुपदों का मूल्यांकन करते हैं जब फायदेमंद होता है, चूंकि  [[तैरनेवाला स्थल]] गणनाओं के लिए इसके लिए सक्षम (असुरक्षित) पुन: सहयोगी गणित की आवश्यकता होती है{{Citation needed|date=February 2022}}.


=== फ़्लोटिंग-पॉइंट गुणा और भाग के लिए आवेदन ===
=== फ़्लोटिंग-पॉइंट गुणा और भाग के लिए आवेदन ===
Line 146: Line 146:
दो बाइनरी नंबरों d और m का गुणनफल ज्ञात करने के लिए:
दो बाइनरी नंबरों d और m का गुणनफल ज्ञात करने के लिए:
:1. इंटरमीडिएट परिणाम रखने वाले एक रजिस्टर को डी में प्रारंभ किया जाता है।
:1. इंटरमीडिएट परिणाम रखने वाले एक रजिस्टर को डी में प्रारंभ किया जाता है।
:2. मीटर में कम से कम महत्वपूर्ण (दाहिनी ओर) गैर-शून्य बिट से शुरू करें।
:2. मीटर में कम से कम महत्वपूर्ण (दाहिनी ओर) गैर-शून्य बिट से प्रारंभ  करें।
::2बी। गिनती (बाईं ओर) अगले सबसे महत्वपूर्ण गैर-शून्य बिट के लिए बिट पदों की संख्या। यदि अधिक महत्वपूर्ण बिट नहीं हैं, तो वर्तमान बिट स्थिति का मान लें।
::2बी। गिनती (बाईं ओर) अगले सबसे महत्वपूर्ण गैर-शून्य बिट के लिए बिट पदों की संख्या। यदि अधिक महत्वपूर्ण बिट नहीं हैं, तो वर्तमान बिट स्थिति का मान लें।
::2सी। उस मान का उपयोग करते हुए, इंटरमीडिएट परिणाम रखने वाले रजिस्टर पर बिट्स की संख्या से बाएं-शिफ्ट ऑपरेशन करें
::2सी। उस मान का उपयोग करते हुए, इंटरमीडिएट परिणाम रखने वाले रजिस्टर पर बिट्स की संख्या से बाएं-शिफ्ट ऑपरेशन करें
Line 152: Line 152:


==== व्युत्पत्ति ====
==== व्युत्पत्ति ====
सामान्य तौर पर, बिट वैल्यू वाले बाइनरी नंबर के लिए (<math> d_3 d_2 d_1 d_0 </math>) उत्पाद है
सामान्यतः , बिट वैल्यू वाले बाइनरी नंबर के लिए (<math> d_3 d_2 d_1 d_0 </math>) उत्पाद है
:<math> (d_3 2^3 + d_2 2^2 + d_1 2^1 + d_0 2^0)m = d_3 2^3 m + d_2 2^2 m + d_1 2^1 m + d_0 2^0 m. </math>
:<math> (d_3 2^3 + d_2 2^2 + d_1 2^1 + d_0 2^0)m = d_3 2^3 m + d_2 2^2 m + d_1 2^1 m + d_0 2^0 m. </math>
एल्गोरिथम में इस स्तर पर, यह आवश्यक है कि शून्य-मूल्य वाले गुणांक वाले पदों को हटा दिया जाए, ताकि केवल एक के बराबर द्विआधारी गुणांक की गणना की जा सके, इस प्रकार शून्य से गुणा या विभाजन की समस्या कोई समस्या नहीं है, इस निहितार्थ के बावजूद कारक समीकरण:
एल्गोरिथम में इस स्तर पर, यह आवश्यक है कि शून्य-मूल्य वाले गुणांक वाले पदों को हटा दिया जाए, जिससे कि  केवल एक के बराबर द्विआधारी गुणांक की गणना की जा सके, इस प्रकार शून्य से गुणा या विभाजन की समस्या कोई समस्या नहीं है, इस निहितार्थ के बावजूद कारक समीकरण:


:<math> = d_0\left(m + 2 \frac{d_1}{d_0} \left(m + 2 \frac{d_2}{d_1} \left(m + 2 \frac{d_3}{d_2} (m)\right)\right)\right). </math>
:<math> = d_0\left(m + 2 \frac{d_1}{d_0} \left(m + 2 \frac{d_2}{d_1} \left(m + 2 \frac{d_3}{d_2} (m)\right)\right)\right). </math>
Line 164: Line 164:
गुणन गुणनफल अब केवल अंकगणितीय पारी संचालन, जोड़ और घटाव का उपयोग करके जल्दी से गणना की जा सकती है।
गुणन गुणनफल अब केवल अंकगणितीय पारी संचालन, जोड़ और घटाव का उपयोग करके जल्दी से गणना की जा सकती है।


एकल-निर्देश शिफ्ट-एंड-एडिशन-संचय का समर्थन करने वाले प्रोसेसर पर विधि विशेष रूप से तेज़ है। सी फ्लोटिंग-पॉइंट लाइब्रेरी की तुलना में, हॉर्नर की विधि कुछ सटीकता का त्याग करती है, हालांकि यह नाममात्र रूप से 13 गुना तेज है (16 गुना तेज जब कैनोनिकल हस्ताक्षरित अंक (सीएसडी) फॉर्म का उपयोग किया जाता है) और कोड स्थान का केवल 20% उपयोग करता है।<ref>{{harvnb|Kripasagar|2008|p=62}}.</ref>
एकल-निर्देश शिफ्ट-एंड-एडिशन-संचय का समर्थन करने वाले प्रोसेसर पर विधि विशेष रूप से तेज़ है। सी फ्लोटिंग-पॉइंट लाइब्रेरी की तुलना में, हॉर्नर की विधि कुछ यथार्थ ता का त्याग करती है, चूंकि  यह नाममात्र रूप से 13 गुना तेज है (16 गुना तेज जब कैनोनिकल हस्ताक्षरित अंक (सीएसडी) फॉर्म का उपयोग किया जाता है) और कोड स्थान का केवल 20% उपयोग करता है।<ref>{{harvnb|Kripasagar|2008|p=62}}.</ref>




=== अन्य अनुप्रयोग ===
=== अन्य अनुप्रयोग ===


हॉर्नर की विधि का उपयोग विभिन्न स्थितीय अंक प्रणालियों के बीच रूपांतरण के लिए किया जा सकता है - इस स्थिति में x संख्या प्रणाली का आधार है, और a<sub>''i''</sub> गुणांक किसी दिए गए नंबर के बेस-एक्स प्रतिनिधित्व के अंक हैं - और इसका उपयोग तब भी किया जा सकता है जब एक्स एक [[मैट्रिक्स (गणित)]] है, इस मामले में कम्प्यूटेशनल दक्षता में लाभ और भी अधिक है। हालाँकि, ऐसे मामलों के लिए बहुपद मूल्यांकन # मैट्रिक्स बहुपद ज्ञात हैं।<ref>{{harvnb|Higham|2002|loc=Section 5.4}}.</ref>
हॉर्नर की विधि का उपयोग विभिन्न स्थितीय अंक प्रणालियों के बीच रूपांतरण के लिए किया जा सकता है - इस स्थिति में x संख्या प्रणाली का आधार है, और a<sub>''i''</sub> गुणांक किसी दिए गए नंबर के बेस-एक्स प्रतिनिधित्व के अंक हैं - और इसका उपयोग तब भी किया जा सकता है जब एक्स एक [[मैट्रिक्स (गणित)]] है, इस स्थिति में कम्प्यूटेशनल दक्षता में लाभ और भी अधिक है। चूँकि , ऐसे स्थितियों  के लिए बहुपद मूल्यांकन # मैट्रिक्स बहुपद ज्ञात हैं।<ref>{{harvnb|Higham|2002|loc=Section 5.4}}.</ref>




== बहुपद जड़ ढूँढना ==
== बहुपद जड़ ढूँढना ==
न्यूटन की विधि के संयोजन में दीर्घ विभाजन एल्गोरिथम का उपयोग करके, बहुपद की वास्तविक जड़ों का अनुमान लगाना संभव है। यह एल्गोरिथ्म इस प्रकार काम करता है। एक बहुपद दिया <math>p_n(x)</math> डिग्री का <math>n</math> शून्य के साथ <math> z_n < z_{n-1} < \cdots < z_1,</math> कुछ शुरुआती अनुमान लगाएं <math> x_0 </math> ऐसा है कि <math> z_1 < x_0 </math>. अब निम्नलिखित दो चरणों को दोहराएँ:
न्यूटन की विधि के संयोजन में दीर्घ विभाजन एल्गोरिथम का उपयोग करके, बहुपद की वास्तविक जड़ों का अनुमान लगाना संभव है। यह एल्गोरिथ्म इस प्रकार काम करता है। एक बहुपद दिया <math>p_n(x)</math> डिग्री का <math>n</math> शून्य के साथ <math> z_n < z_{n-1} < \cdots < z_1,</math> कुछ प्रारंभिक  अनुमान लगाएं <math> x_0 </math> ऐसा है कि <math> z_1 < x_0 </math>. अब निम्नलिखित दो चरणों को दोहराएँ:


# न्यूटन की विधि का उपयोग करते हुए, सबसे बड़ा शून्य ज्ञात कीजिए <math>z_1</math> का <math>p_n(x)</math> अनुमान का उपयोग करना <math>x_0</math>.
# न्यूटन की विधि का उपयोग करते हुए, सबसे बड़ा शून्य ज्ञात कीजिए <math>z_1</math> का <math>p_n(x)</math> अनुमान का उपयोग करना <math>x_0</math>.
# हॉर्नर की विधि का उपयोग करके विभाजित करें <math>(x-z_1)</math> प्राप्त करने के लिए <math>p_{n-1}</math>. चरण 1 पर लौटें लेकिन बहुपद का प्रयोग करें <math>p_{n-1}</math> और प्रारंभिक अनुमान <math>z_1</math>.
# हॉर्नर की विधि का उपयोग करके विभाजित करें <math>(x-z_1)</math> प्राप्त करने के लिए <math>p_{n-1}</math>. चरण 1 पर लौटें लेकिन बहुपद का प्रयोग करें <math>p_{n-1}</math> और प्रारंभिक अनुमान <math>z_1</math>.


इन दो चरणों को तब तक दोहराया जाता है जब तक कि बहुपद के लिए सभी वास्तविक शून्य नहीं मिल जाते। यदि अनुमानित शून्य पर्याप्त सटीक नहीं हैं, तो प्राप्त मूल्यों को न्यूटन की विधि के लिए प्रारंभिक अनुमानों के रूप में उपयोग किया जा सकता है, लेकिन कम बहुपदों के बजाय पूर्ण बहुपद का उपयोग किया जा सकता है।<ref>{{harvnb|Kress|1991|p=112}}.</ref>
इन दो चरणों को तब तक दोहराया जाता है जब तक कि बहुपद के लिए सभी वास्तविक शून्य नहीं मिल जाते। यदि अनुमानित शून्य पर्याप्त यथार्थ  नहीं हैं, तो प्राप्त मूल्यों को न्यूटन की विधि के लिए प्रारंभिक अनुमानों के रूप में उपयोग किया जा सकता है, लेकिन कम बहुपदों के अतिरिक्त  पूर्ण बहुपद का उपयोग किया जा सकता है।<ref>{{harvnb|Kress|1991|p=112}}.</ref>




Line 235: Line 235:
\end{align}</math>
\end{align}</math>
विभाजित अंतर की यह गणना कम के अधीन है
विभाजित अंतर की यह गणना कम के अधीन है
मूल्यांकन की तुलना में राउंड-ऑफ़ त्रुटि <math>p(x)</math> और <math>p(y)</math> अलग से, खासकर जब
मूल्यांकन की तुलना में राउंड-ऑफ़ त्रुटि <math>p(x)</math> और <math>p(y)</math> अलग से, विशेष रूप से  जब
<math> x \approx y</math>. स्थानापन्न
<math> x \approx y</math>. स्थानापन्न
<math>y = x</math> इस विधि में देता है <math>d_1 = p'(x)</math>, का व्युत्पन्न <math>p(x)</math>.
<math>y = x</math> इस विधि में देता है <math>d_1 = p'(x)</math>, का व्युत्पन्न <math>p(x)</math>.
Line 242: Line 242:
[[File:Qingjiushaoquad1.GIF|thumb|right|200px|द्विघात बहुपद समीकरण को हल करने के लिए [[जे आईयू में क्यू कम]] का एल्गोरिथ्म<math>-x^4+763200x^2-40642560000=0</math><br />नतीजा: x=840<ref>{{harvnb|Libbrecht|2005|pages=181–191}}.</ref>]]हॉर्नर का पेपर, निरंतर सन्निकटन द्वारा, सभी आदेशों के संख्यात्मक समीकरणों को हल करने की एक नई विधि शीर्षक,<ref name="Horner">{{harvnb|Horner|1819}}.</ref> 1 जुलाई, 1819 को लंदन की रॉयल सोसाइटी की बैठक में, 1823 में अगली कड़ी के साथ, [http://hdl.handle.net/2027/mdp.39015014105277?urlapend=%3Bseq=158 पढ़ा गया] था।<ref name="Horner" />1819 के लिए लंदन की रॉयल सोसाइटी के दार्शनिक लेन-देन के भाग II में हॉर्नर के पेपर का एक [http://turing.une.edu.au/~ernie/Horner/Horner1820MonthlyRev91-4.pdf समीक्षक] ने गर्मजोशी और विस्तार से स्वागत किया।{{Dead link|date=January 2020|bot=InternetArchiveBot|fix-attempted=yes}द मंथली रिव्यू: या, लिटरेरी जर्नल फॉर अप्रैल, 1820 के अंक में; इसकी तुलना में, [[चार्ल्स बैबेज]] के एक तकनीकी पेपर को इस समीक्षा में स्पष्ट रूप से खारिज कर दिया गया है। सितंबर, 1821 के लिए द मंथली रिव्यू में समीक्षाओं का क्रम यह निष्कर्ष निकालता है कि होल्डर संख्यात्मक समीकरणों के प्रत्यक्ष और सामान्य व्यावहारिक समाधान की खोज करने वाले पहले व्यक्ति थे। कपड़ा साफ करनेवाला<ref>{{harvnb|Fuller|1999|pages=29–51}}.</ref> दिखाया कि हॉर्नर के 1819 के पेपर में विधि बाद में हॉर्नर की विधि के रूप में जानी जाने वाली विधि से भिन्न है और इसके परिणामस्वरूप इस पद्धति की प्राथमिकता होल्ड्रेड (1820) को मिलनी चाहिए।
[[File:Qingjiushaoquad1.GIF|thumb|right|200px|द्विघात बहुपद समीकरण को हल करने के लिए [[जे आईयू में क्यू कम]] का एल्गोरिथ्म<math>-x^4+763200x^2-40642560000=0</math><br />नतीजा: x=840<ref>{{harvnb|Libbrecht|2005|pages=181–191}}.</ref>]]हॉर्नर का पेपर, निरंतर सन्निकटन द्वारा, सभी आदेशों के संख्यात्मक समीकरणों को हल करने की एक नई विधि शीर्षक,<ref name="Horner">{{harvnb|Horner|1819}}.</ref> 1 जुलाई, 1819 को लंदन की रॉयल सोसाइटी की बैठक में, 1823 में अगली कड़ी के साथ, [http://hdl.handle.net/2027/mdp.39015014105277?urlapend=%3Bseq=158 पढ़ा गया] था।<ref name="Horner" />1819 के लिए लंदन की रॉयल सोसाइटी के दार्शनिक लेन-देन के भाग II में हॉर्नर के पेपर का एक [http://turing.une.edu.au/~ernie/Horner/Horner1820MonthlyRev91-4.pdf समीक्षक] ने गर्मजोशी और विस्तार से स्वागत किया।{{Dead link|date=January 2020|bot=InternetArchiveBot|fix-attempted=yes}द मंथली रिव्यू: या, लिटरेरी जर्नल फॉर अप्रैल, 1820 के अंक में; इसकी तुलना में, [[चार्ल्स बैबेज]] के एक तकनीकी पेपर को इस समीक्षा में स्पष्ट रूप से खारिज कर दिया गया है। सितंबर, 1821 के लिए द मंथली रिव्यू में समीक्षाओं का क्रम यह निष्कर्ष निकालता है कि होल्डर संख्यात्मक समीकरणों के प्रत्यक्ष और सामान्य व्यावहारिक समाधान की खोज करने वाले पहले व्यक्ति थे। कपड़ा साफ करनेवाला<ref>{{harvnb|Fuller|1999|pages=29–51}}.</ref> दिखाया कि हॉर्नर के 1819 के पेपर में विधि बाद में हॉर्नर की विधि के रूप में जानी जाने वाली विधि से भिन्न है और इसके परिणामस्वरूप इस पद्धति की प्राथमिकता होल्ड्रेड (1820) को मिलनी चाहिए।


अपने अंग्रेजी समकालीनों के विपरीत, हॉर्नर ने महाद्वीपीय साहित्य पर विशेष रूप से लुइस फ्रांकोइस एंटोनी अर्बोगैस्ट के काम को आकर्षित किया। हॉर्नर को बीजगणित पर जॉन बोनीकैसल की पुस्तक का गहन अध्ययन करने के लिए भी जाना जाता है, हालांकि उन्होंने पाओलो रफिनी (गणितज्ञ) के काम की उपेक्षा की।
अपने अंग्रेजी समकालीनों के विपरीत, हॉर्नर ने महाद्वीपीय साहित्य पर विशेष रूप से लुइस फ्रांकोइस एंटोनी अर्बोगैस्ट के काम को आकर्षित किया। हॉर्नर को बीजगणित पर जॉन बोनीकैसल की पुस्तक का गहन अध्ययन करने के लिए भी जाना जाता है, चूंकि  उन्होंने पाओलो रफिनी (गणितज्ञ) के काम की उपेक्षा की।


हालाँकि हॉर्नर को विधि को सुलभ और व्यावहारिक बनाने का श्रेय दिया जाता है, लेकिन यह हॉर्नर से बहुत पहले से जाना जाता था। रिवर्स कालानुक्रमिक क्रम में, हॉर्नर की विधि पहले से ही ज्ञात थी:
चूँकि  हॉर्नर को विधि को सुलभ और व्यावहारिक बनाने का श्रेय दिया जाता है, लेकिन यह हॉर्नर से बहुत पहले से जाना जाता था। रिवर्स कालानुक्रमिक क्रम में, हॉर्नर की विधि पहले से ही ज्ञात थी:


* 1809 में पाओलो रफ़िनी (गणितज्ञ) (रुफ़िनी का नियम देखें)<ref name="Cajori">{{harvnb|Cajori|1911}}.</ref><ref name="St Andrews">{{MacTutor|id=Horner}}</ref>
* 1809 में पाओलो रफ़िनी (गणितज्ञ) (रुफ़िनी का नियम देखें)<ref name="Cajori">{{harvnb|Cajori|1911}}.</ref><ref name="St Andrews">{{MacTutor|id=Horner}}</ref>
* [[आइजैक न्यूटन]] ने 1669 में<ref>Analysis  Per  Quantitatum  Series,  Fluctiones  ac  Differentias : Cum  Enumeratione  Linearum  Tertii  Ordinis,  Londini.      Ex    Officina    Pearsoniana.    Anno  MDCCXI,  p.  10,  4th  paragraph.</ref><ref>Newton's  collected  papers,  the  edition  1779, in  a  footnote,  vol.  I,  p.  270-271</ref>
* [[आइजैक न्यूटन]] ने 1669 में<ref>Analysis  Per  Quantitatum  Series,  Fluctiones  ac  Differentias : Cum  Enumeratione  Linearum  Tertii  Ordinis,  Londini.      Ex    Officina    Pearsoniana.    Anno  MDCCXI,  p.  10,  4th  paragraph.</ref><ref>Newton's  collected  papers,  the  edition  1779, in  a  footnote,  vol.  I,  p.  270-271</ref>
* 14वीं शताब्दी में [[चीनी गणित]] [[मिस जेड टाइगर]]<ref name="St Andrews" />* 13वीं शताब्दी में चीनी गणित किन जियुशाओ ने अपने गणितीय ग्रंथ नौ खंडों में
* 14वीं शताब्दी में [[चीनी गणित]] [[मिस जेड टाइगर]]<ref name="St Andrews" />* 13वीं शताब्दी में चीनी गणित किन जियुशाओ ने अपने गणितीय ग्रंथ नौ खंडों में
* [[फारसी लोग]] [[मध्यकालीन इस्लाम में गणित]] शराफ अल-दीन अल-यूसी 12वीं शताब्दी में (घन समीकरण के सामान्य मामले में उस पद्धति का उपयोग करने वाले पहले व्यक्ति)<ref>{{harvnb|Berggren|1990|pages=304–309}}.</ref>
* [[फारसी लोग]] [[मध्यकालीन इस्लाम में गणित]] शराफ अल-दीन अल-यूसी 12वीं शताब्दी में (घन समीकरण के सामान्य स्थिति में उस पद्धति का उपयोग करने वाले पहले व्यक्ति)<ref>{{harvnb|Berggren|1990|pages=304–309}}.</ref>
* 11वीं शताब्दी में चीनी गणितज्ञ [[जे आइए एक्स इयान]] (सांग राजवंश)
* 11वीं शताब्दी में चीनी गणितज्ञ [[जे आइए एक्स इयान]] (सांग राजवंश)
* [[गणितीय कला पर नौ अध्याय]], हान राजवंश का एक चीनी कार्य (202 ईसा पूर्व - 220 ईस्वी) [[ एल आईयू हुई ]] (fl. तीसरी शताब्दी) द्वारा संपादित।<ref>{{harvnb|Temple|1986|p=142}}.</ref>
* [[गणितीय कला पर नौ अध्याय]], हान राजवंश का एक चीनी कार्य (202 ईसा पूर्व - 220 ईस्वी) [[ एल आईयू हुई ]] (fl. तीसरी शताब्दी) द्वारा संपादित।<ref>{{harvnb|Temple|1986|p=142}}.</ref>
किन जिउशाओ, अपने शू शू जिउ झांग (नौ वर्गों में गणितीय ग्रंथ; 1247) में, बहुपद समीकरणों को हल करने के लिए हॉर्नर-प्रकार के तरीकों का एक पोर्टफोलियो प्रस्तुत करता है, जो 11 वीं शताब्दी के सांग वंश के गणितज्ञ जिया जियान के पहले के कार्यों पर आधारित था; उदाहरण के लिए, एक विधि विशेष रूप से बाय-क्विंटिक्स के अनुकूल है, जिसमें से केस स्टडीज के तत्कालीन चीनी रिवाज को ध्यान में रखते हुए किन एक उदाहरण देता है। चीन और जापान में गणित के विकास में [[योशियो मिकामी]] (लीपज़िग 1913) ने लिखा:{{Blockquote | style=font-size:100% | text="...&nbsp;who can deny the fact of Horner's illustrious process being used in China at least nearly six long centuries earlier than in Europe&nbsp;... We of course don't intend in any way to ascribe Horner's invention to a Chinese origin, but the lapse of time sufficiently makes it not altogether impossible that the Europeans could have known of the Chinese method in a direct or indirect way."<ref>{{harvnb|Mikami|1913|p=77}}</ref>}}
किन जिउशाओ, अपने शू शू जिउ झांग (नौ वर्गों में गणितीय ग्रंथ; 1247) में, बहुपद समीकरणों को हल करने के लिए हॉर्नर-प्रकार के तरीकों का एक पोर्टफोलियो प्रस्तुत करता है, जो 11 वीं शताब्दी के सांग वंश के गणितज्ञ जिया जियान के पहले के कार्यों पर आधारित था; उदाहरण के लिए, एक विधि विशेष रूप से बाय-क्विंटिक्स के अनुकूल है, जिसमें से केस स्टडीज के तत्कालीन चीनी रिवाज को ध्यान में रखते हुए किन एक उदाहरण देता है। चीन और जापान में गणित के विकास में [[योशियो मिकामी]] (लीपज़िग 1913) ने लिखा:{{Blockquote | style=font-size:100% | text="...&nbsp;who can deny the fact of Horner's illustrious process being used in China at least nearly six long centuries earlier than in Europe&nbsp;... We of course don't intend in any way to ascribe Horner's invention to a Chinese origin, but the lapse of time sufficiently makes it not altogether impossible that the Europeans could have known of the Chinese method in a direct or indirect way."<ref>{{harvnb|Mikami|1913|p=77}}</ref>}}
[[उलरिच लिब्रेब्रेच]] ने निष्कर्ष निकाला: यह स्पष्ट है कि यह प्रक्रिया एक चीनी आविष्कार है ... यह विधि भारत में ज्ञात नहीं थी। उन्होंने कहा, फिबोनाची ने शायद इसके बारे में अरबों से सीखा, जिन्होंने शायद चीनियों से उधार लिया था।<ref>{{harvnb|Libbrecht|2005|p=208}}.</ref> जिउ झांग सुआन शू में समस्या IV.16 और 22 के संबंध में समान रेखाओं के साथ वर्ग और घन जड़ों की निकासी पर पहले से ही लियू हुई द्वारा चर्चा की गई है, जबकि 7 वीं शताब्दी में [[वांग ξए ओ टोंग]] का मानना ​​​​है कि उनके पाठक क्यूबिक्स को एक सन्निकटन विधि द्वारा हल कर सकते हैं। उनकी किताब [[जे मैं सो र चुप हो जाऊं]]
[[उलरिच लिब्रेब्रेच]] ने निष्कर्ष निकाला: यह स्पष्ट है कि यह प्रक्रिया एक चीनी आविष्कार है ... यह विधि भारत में ज्ञात नहीं थी। उन्होंने कहा, फिबोनाची ने संभवतः  इसके बारे में अरबों से सीखा, जिन्होंने संभवतः  चीनियों से उधार लिया था।<ref>{{harvnb|Libbrecht|2005|p=208}}.</ref> जिउ झांग सुआन शू में समस्या IV.16 और 22 के संबंध में समान रेखाओं के साथ वर्ग और घन जड़ों की निकासी पर पहले से ही लियू हुई द्वारा चर्चा की गई है, जबकि 7 वीं शताब्दी में [[वांग ξए ओ टोंग]] का मानना ​​​​है कि उनके पाठक क्यूबिक्स को एक सन्निकटन विधि द्वारा हल कर सकते हैं। उनकी किताब [[जे मैं सो र चुप हो जाऊं]]


== यह भी देखें ==
== यह भी देखें ==

Revision as of 21:10, 15 March 2023

गणित और कंप्यूटर विज्ञान में, हॉर्नर की विधि (या हॉर्नर की योजना) बहुपद मूल्यांकन के लिए एक एल्गोरिथम है। यद्यपि विलियम जॉर्ज हॉर्नर के नाम पर रखा गया, यह विधि बहुत पुरानी है, क्योंकि इसका श्रेय खुद हॉर्नर द्वारा जोसेफ-लुई लाग्रेंज को दिया गया है, और चीनी और फ़ारसी गणितज्ञों को कई सैकड़ों वर्षों में खोजा जा सकता है।[1] कंप्यूटरों के आगमन के बाद, यह एल्गोरिद्म बहुपदों के साथ कुशलतापूर्वक गणना करने के लिए मूलभूत बन गया।

एल्गोरिथ्म हॉर्नर के नियम पर आधारित है, जिसमें एक बहुपद को 'नेस्टेड फॉर्म' में लिखा गया है: यह डिग्री के बहुपद के मूल्यांकन की अनुमति देता है n के साथ ही गुणन और जोड़। यह इष्टतम है, क्योंकि डिग्री के बहुपद हैं n जिसका कम अंकगणितीय परिचालनों के साथ मूल्यांकन नहीं किया जा सकता है।[2] वैकल्पिक रूप से, हॉर्नर की विधि 1819 में हॉर्नर द्वारा वर्णित बहुपदों की जड़ों को अनुमानित करने के लिए एक विधि को भी संदर्भित करती है। यह न्यूटन की विधि का एक प्रकार है | 1970 के आसपास कंप्यूटर के सामान्य उपयोग में आने तक इसका व्यापक रूप से उपयोग किया जाता था।

बहुपद मूल्यांकन और दीर्घ विभाजन

बहुपद दिया है

कहाँ निरंतर गुणांक हैं, समस्या एक विशिष्ट मान पर बहुपद का मूल्यांकन करना है का इसके लिए, अचरों के एक नए अनुक्रम को पुनरावर्तन संबंध इस प्रकार परिभाषित किया जाता है:

तब का मूल्य है .

यह देखने के लिए कि यह क्यों काम करता है, बहुपद को रूप में लिखा जा सकता है

इस प्रकार, पुनरावृत्त रूप से प्रतिस्थापित करके अभिव्यक्ति में,

अब, यह सिद्ध किया जा सकता है कि;

यह अभिव्यक्ति हॉर्नर के व्यावहारिक अनुप्रयोग का गठन करती है, क्योंकि यह परिणाम का निर्धारण करने का एक बहुत तेज़ विधि प्रदान करती है;

साथ (जो बराबर है ) विभाजन का शेषफल है, जैसा कि नीचे दिए गए उदाहरणों से प्रदर्शित होता है। यदि की जड़ है , तब (मतलब शेष है ), जिसका अर्थ है कि आप फ़ैक्टर कर सकते हैं जैसा .

लगातार खोजने के लिए -मूल्य, आप निर्धारण के साथ प्रारंभ करते हैं , जो बस के बराबर है . फिर आप सूत्र का उपयोग करके पुनरावर्ती रूप से कार्य करते हैं;

आपके पहुंचने तक .

उदाहरण

मूल्यांकन करना के लिए .

हम निम्नानुसार सिंथेटिक विभाजन का उपयोग करते हैं: 3 │ 2 −6 2 −1

   │ 6 0 6
   └────────────────────────
       2 0 2 5

तीसरी पंक्ति की प्रविष्टियाँ पहले दो की प्रविष्टियों का योग हैं। दूसरी पंक्ति में प्रत्येक प्रविष्टि का उत्पाद है -मान (इस उदाहरण में 3) तीसरी-पंक्ति प्रविष्टि के साथ तुरंत बाईं ओर। पहली पंक्ति में प्रविष्टियाँ मूल्यांकन किए जाने वाले बहुपद के गुणांक हैं। फिर शेष विभाजन पर 5 है।

लेकिन बहुपद शेष प्रमेय से, हम जानते हैं कि शेषफल है . इस प्रकार इस उदाहरण में, यदि हम देख सकते हैं कि , तीसरी पंक्ति में प्रविष्टियाँ। अतः संश्लेषित विभाजन हॉर्नर विधि पर आधारित है।

बहुपद शेष प्रमेय के परिणाम के रूप में, तीसरी पंक्ति में प्रविष्टियां दूसरी डिग्री बहुपद के गुणांक हैं, का भागफल विभाजन पर . शेष है . यह हॉर्नर की विधि को बहुपद लंबे विभाजन के लिए उपयोगी बनाता है।

विभाजित करना द्वारा :

 2 │ 1 −6 11 −6
   │ 2 −8 6
   └────────────────────────
       1 −4 3 0

भागफल है .

होने देना और . विभाजित करना द्वारा हॉर्नर की विधि का उपयोग करना।


  0.5 │ 4 -6 0 3 -5
      │ 2 -2 -1 1
      └───────────────────────
        2 -2 -1 1 -4

तीसरी पंक्ति पहली दो पंक्तियों के योग से विभाजित होती है . दूसरी पंक्ति में प्रत्येक प्रविष्टि का उत्पाद है बाईं ओर तीसरी-पंक्ति प्रविष्टि के साथ। उत्तर है


दक्षता

डिग्री के मोनोमियल रूप का उपयोग करके मूल्यांकन बहुपद की अधिकतम आवश्यकता होती है अतिरिक्त और गुणा, शक्तियों की गणना बार-बार गुणा करके की जाती है और प्रत्येक मोनोमियल का व्यक्तिगत रूप से मूल्यांकन किया जाता है। लागत को कम किया जा सकता है अतिरिक्त और की शक्तियों का मूल्यांकन करके गुणा पुनरावृत्ति द्वारा। अंकों (या बिट्स) के संदर्भ में संख्यात्मक डेटा का प्रतिनिधित्व किया जाता है, फिर भोली एल्गोरिथ्म भी लगभग भंडारण पर जोर देता है के बिट्स की संख्या का गुना : मूल्यांकित बहुपद का परिमाण अनुमानित है , और एक को स्टोर भी करना चाहिए अपने आप। इसके विपरीत, हॉर्नर की विधि को केवल आवश्यकता होती है अतिरिक्त और गुणन, और इसकी भंडारण आवश्यकताएं केवल हैं के बिट्स की संख्या का गुना . वैकल्पिक रूप से, हॉर्नर की विधि की गणना की जा सकती है फ़्यूज्ड मल्टीप्लाई-जोड़ता है। पहले का मूल्यांकन करने के लिए हॉर्नर की विधि को भी बढ़ाया जा सकता है के साथ बहुपद के डेरिवेटिव जोड़ और गुणा।[3] हॉर्नर की विधि इष्टतम है, इस अर्थ में कि किसी भी एल्गोरिदम को मनमाने ढंग से बहुपद का मूल्यांकन करने के लिए कम से कम कई परिचालनों का उपयोग करना चाहिए। अलेक्जेंडर ओस्ट्रोव्स्की ने 1954 में सिद्ध किया कि आवश्यक परिवर्धन की संख्या न्यूनतम है।[4] विक्टर पैन ने 1966 में सिद्ध किया कि गुणन की संख्या न्यूनतम है।[5] चूँकि , कब एक मैट्रिक्स है, बहुपद मूल्यांकन#मैट्रिक्स बहुपद|हॉर्नर की विधि इष्टतम नहीं है।

यह मानता है कि बहुपद का मूल्यांकन मोनोमियल रूप में किया जाता है और प्रतिनिधित्व की कोई पूर्व शर्त की अनुमति नहीं है, जो समझ में आता है कि बहुपद का मूल्यांकन केवल एक बार किया जाता है। चूंकि , यदि पूर्व शर्त की अनुमति है और बहुपद का कई बार मूल्यांकन किया जाना है, तो बहुपद मूल्यांकन # प्रीप्रोसेसिंग के साथ मूल्यांकन। उनमें बहुपद के प्रतिनिधित्व का परिवर्तन सम्मलित है। सामान्यतः , एक डिग्री- बहुपद का मूल्यांकन केवल का उपयोग करके किया जा सकता है n/2+2 गुणा और जोड़।[6]


समानांतर मूल्यांकन

हॉर्नर के नियम का एक नुकसान यह है कि सभी ऑपरेशन डेटा पर निर्भर हैं, इसलिए आधुनिक कंप्यूटरों पर निर्देश स्तर की समानता का लाभ उठाना संभव नहीं है। अधिकांश अनुप्रयोगों में जहां बहुपद मूल्यांकन की दक्षता मायने रखती है, कई निम्न-क्रम वाले बहुपदों का एक साथ मूल्यांकन किया जाता है (कंप्यूटर ग्राफिक्स में प्रत्येक पिक्सेल या बहुभुज के लिए, या प्रत्येक ग्रिड वर्ग के लिए एक संख्यात्मक सिमुलेशन में), इसलिए एक के भीतर समानता खोजने के लिए आवश्यक नहीं है एकल बहुपद मूल्यांकन।

चूंकि , यदि कोई बहुत उच्च क्रम के एकल बहुपद का मूल्यांकन कर रहा है, तो इसे निम्न प्रकार से तोड़ना उपयोगी हो सकता है:

अधिक सामान्यतः, योग को k भागों में तोड़ा जा सकता है:

जहां हॉर्नर की विधि के अलग-अलग समानांतर उदाहरणों का उपयोग करके आंतरिक योग का मूल्यांकन किया जा सकता है। इसके लिए मूल हॉर्नर विधि की तुलना में थोड़े अधिक संचालन की आवश्यकता होती है, लेकिन उनमें से अधिकांश के k-way SIMD निष्पादन की अनुमति देता है। आधुनिक संकलक सामान्यतः इस तरह से बहुपदों का मूल्यांकन करते हैं जब फायदेमंद होता है, चूंकि तैरनेवाला स्थल गणनाओं के लिए इसके लिए सक्षम (असुरक्षित) पुन: सहयोगी गणित की आवश्यकता होती है[citation needed].

फ़्लोटिंग-पॉइंट गुणा और भाग के लिए आवेदन

हॉर्नर की विधि बिना किसी बाइनरी गुणक वाले microcontroller पर बाइनरी संख्याओं के गुणन और विभाजन के लिए एक तेज़, कोड-कुशल विधि है। गुणा की जाने वाली द्विआधारी संख्याओं में से एक को तुच्छ बहुपद के रूप में दर्शाया गया है, जहाँ (उपरोक्त संकेतन का उपयोग करके) , और . फिर, x (या x से कुछ शक्ति) को बार-बार फैक्टर आउट किया जाता है। इस बाइनरी अंक प्रणाली (आधार 2) में, , इसलिए 2 की घातें बार-बार फ़ैक्टर आउट की जाती हैं।

उदाहरण

उदाहरण के लिए, दो संख्याओं (0.15625) और m का गुणनफल ज्ञात करने के लिए:


तरीका

दो बाइनरी नंबरों d और m का गुणनफल ज्ञात करने के लिए:

1. इंटरमीडिएट परिणाम रखने वाले एक रजिस्टर को डी में प्रारंभ किया जाता है।
2. मीटर में कम से कम महत्वपूर्ण (दाहिनी ओर) गैर-शून्य बिट से प्रारंभ करें।
2बी। गिनती (बाईं ओर) अगले सबसे महत्वपूर्ण गैर-शून्य बिट के लिए बिट पदों की संख्या। यदि अधिक महत्वपूर्ण बिट नहीं हैं, तो वर्तमान बिट स्थिति का मान लें।
2सी। उस मान का उपयोग करते हुए, इंटरमीडिएट परिणाम रखने वाले रजिस्टर पर बिट्स की संख्या से बाएं-शिफ्ट ऑपरेशन करें
3. यदि सभी गैर-शून्य बिट्स गिने जाते हैं, तो मध्यवर्ती परिणाम रजिस्टर अब अंतिम परिणाम रखता है। अन्यथा, मध्यवर्ती परिणाम में d जोड़ें, और m में अगले सबसे महत्वपूर्ण बिट के साथ चरण 2 में जारी रखें।

व्युत्पत्ति

सामान्यतः , बिट वैल्यू वाले बाइनरी नंबर के लिए () उत्पाद है

एल्गोरिथम में इस स्तर पर, यह आवश्यक है कि शून्य-मूल्य वाले गुणांक वाले पदों को हटा दिया जाए, जिससे कि केवल एक के बराबर द्विआधारी गुणांक की गणना की जा सके, इस प्रकार शून्य से गुणा या विभाजन की समस्या कोई समस्या नहीं है, इस निहितार्थ के बावजूद कारक समीकरण:

हर सभी बराबर एक (या शब्द अनुपस्थित है), तो यह कम हो जाता है

या समकक्ष (ऊपर वर्णित विधि के अनुरूप)

बाइनरी (बेस -2) गणित में, 2 की शक्ति से गुणा केवल एक अंकगणितीय शिफ्ट ऑपरेशन है। इस प्रकार, 2 से गुणा करने पर आधार-2 में एक अंकगणितीय शिफ्ट द्वारा गणना की जाती है। कारक (2−1) एक सही अंकगणितीय बदलाव है, a (0) के परिणामस्वरूप कोई संक्रिया नहीं होती (2 के बाद से)0 = 1 गुणात्मक पहचान तत्व है), और एक (21) का परिणाम बाएं अंकगणितीय बदलाव में होता है। गुणन गुणनफल अब केवल अंकगणितीय पारी संचालन, जोड़ और घटाव का उपयोग करके जल्दी से गणना की जा सकती है।

एकल-निर्देश शिफ्ट-एंड-एडिशन-संचय का समर्थन करने वाले प्रोसेसर पर विधि विशेष रूप से तेज़ है। सी फ्लोटिंग-पॉइंट लाइब्रेरी की तुलना में, हॉर्नर की विधि कुछ यथार्थ ता का त्याग करती है, चूंकि यह नाममात्र रूप से 13 गुना तेज है (16 गुना तेज जब कैनोनिकल हस्ताक्षरित अंक (सीएसडी) फॉर्म का उपयोग किया जाता है) और कोड स्थान का केवल 20% उपयोग करता है।[7]


अन्य अनुप्रयोग

हॉर्नर की विधि का उपयोग विभिन्न स्थितीय अंक प्रणालियों के बीच रूपांतरण के लिए किया जा सकता है - इस स्थिति में x संख्या प्रणाली का आधार है, और ai गुणांक किसी दिए गए नंबर के बेस-एक्स प्रतिनिधित्व के अंक हैं - और इसका उपयोग तब भी किया जा सकता है जब एक्स एक मैट्रिक्स (गणित) है, इस स्थिति में कम्प्यूटेशनल दक्षता में लाभ और भी अधिक है। चूँकि , ऐसे स्थितियों के लिए बहुपद मूल्यांकन # मैट्रिक्स बहुपद ज्ञात हैं।[8]


बहुपद जड़ ढूँढना

न्यूटन की विधि के संयोजन में दीर्घ विभाजन एल्गोरिथम का उपयोग करके, बहुपद की वास्तविक जड़ों का अनुमान लगाना संभव है। यह एल्गोरिथ्म इस प्रकार काम करता है। एक बहुपद दिया डिग्री का शून्य के साथ कुछ प्रारंभिक अनुमान लगाएं ऐसा है कि . अब निम्नलिखित दो चरणों को दोहराएँ:

  1. न्यूटन की विधि का उपयोग करते हुए, सबसे बड़ा शून्य ज्ञात कीजिए का अनुमान का उपयोग करना .
  2. हॉर्नर की विधि का उपयोग करके विभाजित करें प्राप्त करने के लिए . चरण 1 पर लौटें लेकिन बहुपद का प्रयोग करें और प्रारंभिक अनुमान .

इन दो चरणों को तब तक दोहराया जाता है जब तक कि बहुपद के लिए सभी वास्तविक शून्य नहीं मिल जाते। यदि अनुमानित शून्य पर्याप्त यथार्थ नहीं हैं, तो प्राप्त मूल्यों को न्यूटन की विधि के लिए प्रारंभिक अनुमानों के रूप में उपयोग किया जा सकता है, लेकिन कम बहुपदों के अतिरिक्त पूर्ण बहुपद का उपयोग किया जा सकता है।[9]


उदाहरण

हॉर्नर की विधि का उपयोग करते हुए बहुपद मूल खोज

बहुपद पर विचार करें

जिसे बढ़ाया जा सकता है

ऊपर से हम जानते हैं कि इस बहुपद का सबसे बड़ा मूल 7 है इसलिए हम 8 का प्रारंभिक अनुमान लगाने में सक्षम हैं। न्यूटन की विधि का उपयोग करके 7 का पहला शून्य पाया जाता है जैसा कि दाईं ओर की आकृति में काले रंग में दिखाया गया है। अगला से विभाजित है प्राप्त करने के लिए

जो दाईं ओर की आकृति में लाल रंग से खींचा गया है। 7 के प्रारंभिक अनुमान के साथ इस बहुपद का सबसे बड़ा शून्य खोजने के लिए न्यूटन की विधि का उपयोग किया जाता है। इस बहुपद का सबसे बड़ा शून्य जो मूल बहुपद के दूसरे सबसे बड़े शून्य से मेल खाता है, 3 पर पाया जाता है और लाल रंग में घेरा जाता है। डिग्री 5 बहुपद अब से विभाजित है प्राप्त करने के लिए

जो पीले रंग में दिखाया गया है। न्यूटन की विधि का उपयोग करके इस बहुपद के लिए शून्य फिर से 2 पर पाया जाता है और पीले रंग में घेरा जाता है। प्राप्त करने के लिए हॉर्नर विधि का उपयोग किया जाता है

जो हरे रंग में दिखाया गया है और -3 पर शून्य पाया गया है। इस बहुपद को और घटाया जाता है

जो नीले रंग में दिखाया गया है और -5 का शून्य देता है। न्यूटन की विधि के प्रारंभिक अनुमान के रूप में अंतिम शून्य का उपयोग करके या घटाकर मूल बहुपद का अंतिम मूल पाया जा सकता है और रैखिक समीकरण को हल करना। जैसा कि देखा जा सकता है, -8, -5, -3, 2, 3 और 7 की अपेक्षित जड़ें पाई गईं।

एक बहुपद का विभाजित अंतर

विभाजित अंतर की गणना करने के लिए हॉर्नर की विधि को संशोधित किया जा सकता है बहुपद को देखते हुए (पहले की तरह)

निम्नलिखित के रूप में आगे बढ़ें[10]

पूरा होने पर, हमारे पास है

विभाजित अंतर की यह गणना कम के अधीन है मूल्यांकन की तुलना में राउंड-ऑफ़ त्रुटि और अलग से, विशेष रूप से जब . स्थानापन्न इस विधि में देता है , का व्युत्पन्न .

इतिहास

द्विघात बहुपद समीकरण को हल करने के लिए जे आईयू में क्यू कम का एल्गोरिथ्म
नतीजा: x=840[11]

हॉर्नर का पेपर, निरंतर सन्निकटन द्वारा, सभी आदेशों के संख्यात्मक समीकरणों को हल करने की एक नई विधि शीर्षक,[12] 1 जुलाई, 1819 को लंदन की रॉयल सोसाइटी की बैठक में, 1823 में अगली कड़ी के साथ, पढ़ा गया था।[12]1819 के लिए लंदन की रॉयल सोसाइटी के दार्शनिक लेन-देन के भाग II में हॉर्नर के पेपर का एक समीक्षक ने गर्मजोशी और विस्तार से स्वागत किया।{{Dead link|date=January 2020|bot=InternetArchiveBot|fix-attempted=yes}द मंथली रिव्यू: या, लिटरेरी जर्नल फॉर अप्रैल, 1820 के अंक में; इसकी तुलना में, चार्ल्स बैबेज के एक तकनीकी पेपर को इस समीक्षा में स्पष्ट रूप से खारिज कर दिया गया है। सितंबर, 1821 के लिए द मंथली रिव्यू में समीक्षाओं का क्रम यह निष्कर्ष निकालता है कि होल्डर संख्यात्मक समीकरणों के प्रत्यक्ष और सामान्य व्यावहारिक समाधान की खोज करने वाले पहले व्यक्ति थे। कपड़ा साफ करनेवाला[13] दिखाया कि हॉर्नर के 1819 के पेपर में विधि बाद में हॉर्नर की विधि के रूप में जानी जाने वाली विधि से भिन्न है और इसके परिणामस्वरूप इस पद्धति की प्राथमिकता होल्ड्रेड (1820) को मिलनी चाहिए।

अपने अंग्रेजी समकालीनों के विपरीत, हॉर्नर ने महाद्वीपीय साहित्य पर विशेष रूप से लुइस फ्रांकोइस एंटोनी अर्बोगैस्ट के काम को आकर्षित किया। हॉर्नर को बीजगणित पर जॉन बोनीकैसल की पुस्तक का गहन अध्ययन करने के लिए भी जाना जाता है, चूंकि उन्होंने पाओलो रफिनी (गणितज्ञ) के काम की उपेक्षा की।

चूँकि हॉर्नर को विधि को सुलभ और व्यावहारिक बनाने का श्रेय दिया जाता है, लेकिन यह हॉर्नर से बहुत पहले से जाना जाता था। रिवर्स कालानुक्रमिक क्रम में, हॉर्नर की विधि पहले से ही ज्ञात थी:

किन जिउशाओ, अपने शू शू जिउ झांग (नौ वर्गों में गणितीय ग्रंथ; 1247) में, बहुपद समीकरणों को हल करने के लिए हॉर्नर-प्रकार के तरीकों का एक पोर्टफोलियो प्रस्तुत करता है, जो 11 वीं शताब्दी के सांग वंश के गणितज्ञ जिया जियान के पहले के कार्यों पर आधारित था; उदाहरण के लिए, एक विधि विशेष रूप से बाय-क्विंटिक्स के अनुकूल है, जिसमें से केस स्टडीज के तत्कालीन चीनी रिवाज को ध्यान में रखते हुए किन एक उदाहरण देता है। चीन और जापान में गणित के विकास में योशियो मिकामी (लीपज़िग 1913) ने लिखा:

"... who can deny the fact of Horner's illustrious process being used in China at least nearly six long centuries earlier than in Europe ... We of course don't intend in any way to ascribe Horner's invention to a Chinese origin, but the lapse of time sufficiently makes it not altogether impossible that the Europeans could have known of the Chinese method in a direct or indirect way."[20]

उलरिच लिब्रेब्रेच ने निष्कर्ष निकाला: यह स्पष्ट है कि यह प्रक्रिया एक चीनी आविष्कार है ... यह विधि भारत में ज्ञात नहीं थी। उन्होंने कहा, फिबोनाची ने संभवतः इसके बारे में अरबों से सीखा, जिन्होंने संभवतः चीनियों से उधार लिया था।[21] जिउ झांग सुआन शू में समस्या IV.16 और 22 के संबंध में समान रेखाओं के साथ वर्ग और घन जड़ों की निकासी पर पहले से ही लियू हुई द्वारा चर्चा की गई है, जबकि 7 वीं शताब्दी में वांग ξए ओ टोंग का मानना ​​​​है कि उनके पाठक क्यूबिक्स को एक सन्निकटन विधि द्वारा हल कर सकते हैं। उनकी किताब जे मैं सो र चुप हो जाऊं

यह भी देखें

  • चेबिशेव रूप में बहुपदों का मूल्यांकन करने के लिए क्लेंशॉ एल्गोरिथम
  • बी-पट्टी फॉर्म में तख़्ता वक्र का मूल्यांकन करने के लिए डी बूर का एल्गोरिदम
  • बेज़ियर रूप में बहुपदों का मूल्यांकन करने के लिए डी कैस्टेलजौ का एल्गोरिद्म
  • एस्ट्रिन की योजना आधुनिक कंप्यूटर आर्किटेक्चर पर समानांतरकरण की सुविधा के लिए
  • लील की विधि से जड़ों का रेखांकन किया जा सकता है
  • रफ़िनी का नियम और सिंथेटिक विभाजन एक बहुपद को x - r के रूप में एक द्विपद से विभाजित करने के लिए

टिप्पणियाँ

  1. 600 years earlier, by the Chinese mathematician Qin Jiushao and 700 years earlier, by the Persian mathematician Sharaf al-Dīn al-Ṭūsī
  2. Pan 1966
  3. Pankiewicz 1968.
  4. Ostrowski 1954.
  5. Pan 1966.
  6. Knuth 1997.
  7. Kripasagar 2008, p. 62.
  8. Higham 2002, Section 5.4.
  9. Kress 1991, p. 112.
  10. Fateman & Kahan 2000
  11. Libbrecht 2005, pp. 181–191.
  12. 12.0 12.1 Horner 1819.
  13. Fuller 1999, pp. 29–51.
  14. Cajori 1911.
  15. 15.0 15.1 O'Connor, John J.; Robertson, Edmund F., "हॉर्नर की विधि", MacTutor History of Mathematics archive, University of St Andrews
  16. Analysis Per Quantitatum Series, Fluctiones ac Differentias : Cum Enumeratione Linearum Tertii Ordinis, Londini. Ex Officina Pearsoniana. Anno MDCCXI, p. 10, 4th paragraph.
  17. Newton's collected papers, the edition 1779, in a footnote, vol. I, p. 270-271
  18. Berggren 1990, pp. 304–309.
  19. Temple 1986, p. 142.
  20. Mikami 1913, p. 77
  21. Libbrecht 2005, p. 208.


संदर्भ


बाहरी संबंध