सेकेंट मेथड (छेदिका विधि): Difference between revisions
No edit summary |
No edit summary |
||
(5 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Root-finding method}} | {{Short description|Root-finding method}} | ||
[[Image:Secant method.svg|thumb|300px|सेकेंट मेथड के पहले दो पुनरावृत्तियाँ। लाल वक्र फलन f दिखाता है, और नीली रेखाएं छेदक हैं। इस विशेष मामले के लिए, सेकेंट मेथड दृश्य मूल में परिवर्तित नहीं होगी।]][[संख्यात्मक विश्लेषण]] में, '''सेकेंट मेथड''' ('''छेदिका विधि''') | [[Image:Secant method.svg|thumb|300px|सेकेंट मेथड के पहले दो पुनरावृत्तियाँ। लाल वक्र फलन f दिखाता है, और नीली रेखाएं छेदक हैं। इस विशेष मामले के लिए, सेकेंट मेथड दृश्य मूल में परिवर्तित नहीं होगी।]][[संख्यात्मक विश्लेषण]] में, '''सेकेंट मेथड''' ('''छेदिका विधि''') एक रूट-फाइंडिंग एल्गोरिदम है जो फलन ''f'' की जड़ को बेहतर ढंग से अनुमानित करने के लिए सेकेंट लाइनों की जड़ों के उत्तराधिकार का उपयोग करता है। सेकेंट मेथड को न्यूटन की विधि का एक सीमित-अंतर सन्निकटन माना जा सकता है। हालाँकि, सेकेंट मेथड न्यूटन की विधि से 3000 वर्ष से भी अधिक पुरानी है।<ref>{{Cite journal|last1=Papakonstantinou|first1=Joanna|last2=Tapia|first2=Richard|date=2013|title=एक आयाम में सेकेंट विधि की उत्पत्ति और विकास|url=https://www.jstor.org/stable/10.4169/amer.math.monthly.120.06.500|journal=American Mathematical Monthly|volume=120|issue=6|pages=500–518|doi=10.4169/amer.math.monthly.120.06.500|jstor=10.4169/amer.math.monthly.120.06.500 |s2cid=17645996 |via=JSTOR}}</ref> | ||
==विधि== | ==विधि== | ||
किसी फलन का शून्य ज्ञात करने के लिए {{mvar|f}}, सेकेंट मेथड को [[पुनरावृत्ति संबंध]] द्वारा परिभाषित किया गया है। | किसी फलन का शून्य ज्ञात करने के लिए {{mvar|f}}, सेकेंट मेथड को [[पुनरावृत्ति संबंध]] द्वारा परिभाषित किया गया है। | ||
Line 36: | Line 35: | ||
गोल्डेन रेश्यो हैl विशेष रूप से, अभिसरण सुपर रैखिक है, लेकिन पूरी तरह से [[द्विघात अभिसरण]] नहीं है। | गोल्डेन रेश्यो हैl विशेष रूप से, अभिसरण सुपर रैखिक है, लेकिन पूरी तरह से [[द्विघात अभिसरण]] नहीं है। | ||
यह परिणाम केवल कुछ तकनीकी स्थितियों के तहत ही मान्य है, अर्थात् <math>f</math> दो बार निरंतर अवकलनीय हो और प्रश्न में मूल सरल हो (अर्थात् बहुलता 1 के साथ)। | तात्पर्य यह परिणाम केवल कुछ तकनीकी स्थितियों के तहत ही मान्य है, अर्थात् <math>f</math> दो बार निरंतर अवकलनीय हो और प्रश्न में मूल सरल हो (अर्थात् बहुलता 1 के साथ)। | ||
यदि प्रारंभिक मान मूल के पर्याप्त निकट नहीं हैं, तो इस बात की कोई गारंटी नहीं है कि सेकेंट मेथड अभिसरण करती है। काफी निकट की कोई सामान्य | यदि प्रारंभिक मान मूल के पर्याप्त निकट नहीं हैं, तो इस बात की कोई गारंटी नहीं है कि सेकेंट मेथड अभिसरण करती है। काफी निकट की कोई सामान्य परिलैंग्वेज नहीं है, लेकिन मानदंड का संबंध इस बात से है कि अंतराल पर कार्य कितना गतिशील है <math>[x_0, x_1]</math>. उदाहरण के लिए, यदि <math>f</math> उस अंतराल पर अवकलनीय है और वहाँ एक बिंदु है <math>f' = 0</math> अंतराल पर, तो एल्गोरिथ्म अभिसरण नहीं हो सकता है। | ||
==अन्य मूल-खोज विधियों के साथ तुलना== | ==अन्य मूल-खोज विधियों के साथ तुलना== | ||
सेकेंट मेथड के लिए आवश्यक नहीं है कि मूल कोष्ठक में रखा जाए, जैसा कि [[द्विभाजन विधि]] में होता है, और इसलिए यह हमेशा अभिसरण नहीं होता है। [[झूठी स्थिति विधि]] (या {{lang|la|regula falsi}}) सेकेंट मेथड के समान सूत्र का उपयोग करता है। हालाँकि, यह फॉर्मूला लागू नहीं होता है <math>x_{n-1}</math> और <math>x_{n-2}</math>, सेकेंट मेथड की तरह, लेकिन चालू <math>x_{n-1}</math> और अंतिम पुनरावृति पर <math>x_k</math> ऐसा है कि <math>f(x_k)</math> और <math>f(x_{n-1})</math> एक अलग संकेत है. इसका | सेकेंट मेथड के लिए आवश्यक नहीं है कि मूल कोष्ठक में रखा जाए, जैसा कि [[द्विभाजन विधि]] में होता है, और इसलिए यह हमेशा अभिसरण नहीं होता है। [[झूठी स्थिति विधि|मिथ्या स्थिति विधि]] या फॉल्स पोजीशन मेथड (या {{lang|la|regula falsi}}) सेकेंट मेथड के समान सूत्र का उपयोग करता है। हालाँकि, यह फॉर्मूला लागू नहीं होता है <math>x_{n-1}</math> और <math>x_{n-2}</math>, सेकेंट मेथड की तरह, लेकिन चालू <math>x_{n-1}</math> और अंतिम पुनरावृति पर <math>x_k</math> ऐसा है कि <math>f(x_k)</math> और <math>f(x_{n-1})</math> एक अलग संकेत है. इसका तात्पर्य यह है कि मिथ्या स्थिति विधि हमेशा अभिसरण करती है; हालाँकि, केवल अभिसरण के एक रैखिक क्रम के साथ है। सेकेंट मेथड के रूप में अभिसरण के सुपर-रेखीय क्रम के साथ ब्रैकेटिंग को मिथ्या स्थिति विधि में सुधार के साथ प्राप्त किया जा सकता है (देखें रेगुला फाल्सी # सुधार% 20in% 20रेगुला% 20 फाल्सी | रेगुला फाल्सी § रेगुला फाल्सी में सुधार) जैसे कि [[आईटीपी विधि]] या [[इलिनोइस विधि]]. | ||
सेकेंट मेथड का पुनरावृत्ति सूत्र न्यूटन की विधि के सूत्र से प्राप्त किया जा सकता है | |||
:<math>x_n = x_{n-1} - \frac{f(x_{n-1})}{f'(x_{n-1})}</math> | :<math>x_n = x_{n-1} - \frac{f(x_{n-1})}{f'(x_{n-1})}</math> | ||
छोटे के लिए, परिमित-अंतर सन्निकटन का उपयोग करके <math>\epsilon</math>: | छोटे के लिए, परिमित-अंतर सन्निकटन का उपयोग करके <math>\epsilon</math>: | ||
Line 51: | Line 50: | ||
सेकेंट मेथड की व्याख्या एक ऐसी विधि के रूप में की जा सकती है जिसमें व्युत्पन्न को एक सन्निकटन द्वारा प्रतिस्थापित किया जाता है और इस प्रकार यह एक [[अर्ध-न्यूटन विधि]] है। | सेकेंट मेथड की व्याख्या एक ऐसी विधि के रूप में की जा सकती है जिसमें व्युत्पन्न को एक सन्निकटन द्वारा प्रतिस्थापित किया जाता है और इस प्रकार यह एक [[अर्ध-न्यूटन विधि]] है। | ||
यदि हम न्यूटन की विधि की तुलना सेकेंट मेथड से करते हैं, तो हम देखते हैं कि न्यूटन की विधि तेजी से अभिसरण करती है (φ≈1.6 के विरुद्ध क्रम 2)। हालाँकि, न्यूटन की पद्धति के लिए दोनों के मूल्यांकन की आवश्यकता है <math>f</math> और इसका व्युत्पन्न <math>f'</math> प्रत्येक चरण पर, जबकि सेकेंट मेथड के लिए केवल मूल्यांकन की आवश्यकता होती है <math>f</math>. इसलिए, सेकेंट मेथड कभी-कभी व्यवहार में तेज़ हो सकती है। उदाहरण के लिए, यदि हम मान लें कि मूल्यांकन कर रहे हैं <math>f</math> इसके व्युत्पन्न का मूल्यांकन करने में जितना समय लगता है और हम अन्य सभी लागतों की उपेक्षा करते हैं, हम सेकेंट मेथड के दो चरण कर सकते हैं (त्रुटि के लघुगणक को एक कारक | यदि हम न्यूटन की विधि की तुलना सेकेंट मेथड से करते हैं, तो हम देखते हैं कि न्यूटन की विधि तेजी से अभिसरण करती है (φ≈1.6 के विरुद्ध क्रम 2)। हालाँकि, न्यूटन की पद्धति के लिए दोनों के मूल्यांकन की आवश्यकता है <math>f</math> और इसका व्युत्पन्न <math>f'</math> प्रत्येक चरण पर, जबकि सेकेंट मेथड के लिए केवल मूल्यांकन की आवश्यकता होती है <math>f</math>. इसलिए, सेकेंट मेथड कभी-कभी व्यवहार में तेज़ हो सकती है। उदाहरण के लिए, यदि हम मान लें कि मूल्यांकन कर रहे हैं <math>f</math> इसके व्युत्पन्न का मूल्यांकन करने में जितना समय लगता है और हम अन्य सभी लागतों की उपेक्षा करते हैं, हम सेकेंट मेथड के दो चरण कर सकते हैं (त्रुटि के लघुगणक को एक कारक से घटाकर φ<sup>2</sup> ≈ 2.6 ) न्यूटन की विधि के एक चरण के समान लागत के लिए (त्रुटि के लघुगणक को कारक 2 से कम करना), इसलिए सेकेंट मेथड तेज़ है। यदि, हालांकि, हम व्युत्पन्न के मूल्यांकन के लिए समानांतर प्रसंस्करण पर विचार करते हैं, तो न्यूटन की विधि समय में तेज़ होने के अतिरिक्त इसके लायक साबित होती है, हालांकि अभी भी अधिक कदम खर्च करती है। | ||
==सामान्यीकरण== | ==सामान्यीकरण== | ||
Line 57: | Line 56: | ||
ब्रोयडेन की विधि एक से अधिक आयामों के लिए सेकेंट मेथड का सामान्यीकरण है। | ब्रोयडेन की विधि एक से अधिक आयामों के लिए सेकेंट मेथड का सामान्यीकरण है। | ||
निम्नलिखित ग्राफ़ फलन f को लाल रंग में और अंतिम सेकंड लाइन को बोल्ड नीले रंग में दिखाता है। ग्राफ़ में, छेदक रेखा का x अंतःखंड, f के मूल का एक अच्छा सन्निकटन प्रतीत होता है। | निम्नलिखित ग्राफ़ फलन ''f'' को लाल रंग में और अंतिम सेकंड लाइन को बोल्ड नीले रंग में दिखाता है। ग्राफ़ में, छेदक रेखा का ''x'' अंतःखंड, ''f'' के मूल का एक अच्छा सन्निकटन प्रतीत होता है। | ||
[[Image:Secant method example code result.svg|center]] | [[Image:Secant method example code result.svg|center|375x375px]] | ||
==कम्प्यूटेशनल उदाहरण== | ==कम्प्यूटेशनल उदाहरण== | ||
नीचे, सेकेंट मेथड को [[पायथन (प्रोग्रामिंग भाषा)]] प्रोग्रामिंग | नीचे, सेकेंट मेथड को [[पायथन (प्रोग्रामिंग भाषा)|पायथन (प्रोग्रामिंग लैंग्वेज)]] प्रोग्रामिंग लैंग्वेज में लागू किया गया है। | ||
फिर इसे फलन का मूल ढूंढने के लिए लागू किया जाता है {{math|''f''(''x'') {{=}} ''x''<sup>2</sup> − 612}} प्रारंभिक बिंदुओं के साथ <math>x_0 = 10</math> और <math>x_1 = 30</math> | फिर इसे फलन का मूल ढूंढने के लिए लागू किया जाता है {{math|''f''(''x'') {{=}} ''x''<sup>2</sup> − 612}} प्रारंभिक बिंदुओं के साथ <math>x_0 = 10</math> और <math>x_1 = 30</math> | ||
< | |||
def secant_method(f, x0, | <syntaxhighlight lang="python3"> | ||
def secant_method(f, x0, x1, iterations): | |||
"""Return the root calculated using the secant method.""" | |||
x2 = x1 - f(x1) * (x1 - x0) / | for i in range(iterations): | ||
x2 = x1 - f(x1) * (x1 - x0) / float(f(x1) - f(x0)) | |||
x0, x1 = x1, x2 | x0, x1 = x1, x2 | ||
# | # Apply a stopping criterion here (see below) | ||
return x2 | |||
def f_example(x): | def f_example(x): | ||
return x ** 2 - 612 | |||
root = secant_method(f_example, 10, 30, 5) | |||
print(f"Root: {root}") # Root: 24.738633748750722 | |||
</ | </syntaxhighlight> | ||
उपरोक्त एक अच्छा रोक मानदंड होना बहुत महत्वपूर्ण है, अन्यथा, फ़्लोटिंग पॉइंट संख्याओं की सीमित संख्यात्मक सटीकता के कारण, एल्गोरिदम बहुत अधिक पुनरावृत्तियों के लिए चलने पर गलत परिणाम दे सकता है। उदाहरण के लिए, उपरोक्त लूप तब रुक सकता है जब इनमें से कोई एक पहले पहुंच जाए: abs(x0 - x1) < tol, या abs(x0/x1-1) < tol, या abs(f(x1)) < tol. <ref>{{cite web | url=https://www.cfm.brown.edu/people/dobrush/am33/Matlab/ch3/secant.html | title=MATLAB TUTORIAL for the First Course. Part 1.3: Secant Methods }}</ref> | उपरोक्त एक अच्छा रोक मानदंड होना बहुत महत्वपूर्ण है, अन्यथा, फ़्लोटिंग पॉइंट संख्याओं की सीमित संख्यात्मक सटीकता के कारण, एल्गोरिदम बहुत अधिक पुनरावृत्तियों के लिए चलने पर गलत परिणाम दे सकता है। उदाहरण के लिए, उपरोक्त लूप तब रुक सकता है जब इनमें से कोई एक पहले पहुंच जाए: abs(x0 - x1) < tol, या abs(x0/x1-1) < tol, या abs(f(x1)) < tol. <ref>{{cite web | url=https://www.cfm.brown.edu/people/dobrush/am33/Matlab/ch3/secant.html | title=MATLAB TUTORIAL for the First Course. Part 1.3: Secant Methods }}</ref> | ||
==टिप्पणियाँ== | ==टिप्पणियाँ== | ||
{{reflist}} | {{reflist}} | ||
== यह भी देखें == | == यह भी देखें == | ||
* मिथ्या स्थिति विधि | * मिथ्या स्थिति विधि (फॉल्स पोजीशन मेथड) | ||
==संदर्भ== | ==संदर्भ== | ||
* {{cite book |first=Mordecai |last=Avriel |title=Nonlinear Programming: Analysis and Methods |publisher=Prentice Hall |year=1976 |isbn=0-13-623603-0 |pages=220–221 }} | * {{cite book |first=Mordecai |last=Avriel |title=Nonlinear Programming: Analysis and Methods |publisher=Prentice Hall |year=1976 |isbn=0-13-623603-0 |pages=220–221 }} | ||
* {{cite book| title=Numerical analysis for applied science|first1=Myron B. |last1=Allen |first2=Eli L. |last2=Isaacson | pages=188–195| isbn=978-0-471-55266-6| year=1998| publisher=[[John Wiley & Sons]]| url=https://books.google.com/books?id=PpB9cjOxQAQC}} | * {{cite book| title=Numerical analysis for applied science|first1=Myron B. |last1=Allen |first2=Eli L. |last2=Isaacson | pages=188–195| isbn=978-0-471-55266-6| year=1998| publisher=[[John Wiley & Sons]]| url=https://books.google.com/books?id=PpB9cjOxQAQC}} | ||
==बाहरी संबंध== | ==बाहरी संबंध== | ||
* [http://numericalmethods.eng.usf.edu/topics/secant_method.html Secant Method] Notes, PPT, Mathcad, Maple, Mathematica, Matlab at [http://numericalmethods.eng.usf.edu Holistic Numerical Methods Institute] | * [http://numericalmethods.eng.usf.edu/topics/secant_method.html Secant Method] Notes, PPT, Mathcad, Maple, Mathematica, Matlab at [http://numericalmethods.eng.usf.edu Holistic Numerical Methods Institute] | ||
* {{MathWorld|urlname=SecantMethod|title=Secant Method}} | * {{MathWorld|urlname=SecantMethod|title=Secant Method}} | ||
[[Category:Articles containing Latin-language text]] | |||
[[Category: | |||
[[Category:Created On 14/07/2023]] | [[Category:Created On 14/07/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Template documentation pages|Short description/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:अर्ध-न्यूटन विधियाँ]] |
Latest revision as of 13:52, 14 August 2023
संख्यात्मक विश्लेषण में, सेकेंट मेथड (छेदिका विधि) एक रूट-फाइंडिंग एल्गोरिदम है जो फलन f की जड़ को बेहतर ढंग से अनुमानित करने के लिए सेकेंट लाइनों की जड़ों के उत्तराधिकार का उपयोग करता है। सेकेंट मेथड को न्यूटन की विधि का एक सीमित-अंतर सन्निकटन माना जा सकता है। हालाँकि, सेकेंट मेथड न्यूटन की विधि से 3000 वर्ष से भी अधिक पुरानी है।[1]
विधि
किसी फलन का शून्य ज्ञात करने के लिए f, सेकेंट मेथड को पुनरावृत्ति संबंध द्वारा परिभाषित किया गया है।
जैसा कि इस सूत्र से देखा जा सकता है, दो प्रारंभिक मान x0 और x1 ज़रूरत है। आदर्श रूप से, उन्हें वांछित शून्य के निकटम चुना जाना चाहिए।
विधि की व्युत्पत्ति
आरंभिक मानों से प्रारंभ करना x0 और x1, हम बिंदुओं के माध्यम से एक रेखा बनाते हैं (x0, f(x0)) और (x1, f(x1)), जैसा कि ऊपर चित्र में दिखाया गया है। ढलान-अवरोधन रूप में, इस रेखा का समीकरण है
इस रैखिक फलन का मूल, अर्थात् का मान है x ऐसा है कि y = 0 है
फिर हम इस नए मान का उपयोग करते हैं x जैसा x2 और प्रयोग करते हुए प्रक्रिया को दोहराएँ x1 और x2 के बजाय x0 और x1. हम समाधान करते हुए इस प्रक्रिया को जारी रखते हैं x3, x4, आदि, जब तक कि हम परिशुद्धता के पर्याप्त उच्च स्तर (के बीच पर्याप्त छोटा अंतर) तक नहीं पहुंच जाते xn और xn−1):
अभिसरण
पुनरावृत्त करता है सेकेंट मेथड का मूल में अभिसरण होता है यदि प्रारंभिक मान और मूल के पर्याप्त निकट हैं। अभिसरण का क्रम है , जहाँ
गोल्डेन रेश्यो हैl विशेष रूप से, अभिसरण सुपर रैखिक है, लेकिन पूरी तरह से द्विघात अभिसरण नहीं है।
तात्पर्य यह परिणाम केवल कुछ तकनीकी स्थितियों के तहत ही मान्य है, अर्थात् दो बार निरंतर अवकलनीय हो और प्रश्न में मूल सरल हो (अर्थात् बहुलता 1 के साथ)।
यदि प्रारंभिक मान मूल के पर्याप्त निकट नहीं हैं, तो इस बात की कोई गारंटी नहीं है कि सेकेंट मेथड अभिसरण करती है। काफी निकट की कोई सामान्य परिलैंग्वेज नहीं है, लेकिन मानदंड का संबंध इस बात से है कि अंतराल पर कार्य कितना गतिशील है . उदाहरण के लिए, यदि उस अंतराल पर अवकलनीय है और वहाँ एक बिंदु है अंतराल पर, तो एल्गोरिथ्म अभिसरण नहीं हो सकता है।
अन्य मूल-खोज विधियों के साथ तुलना
सेकेंट मेथड के लिए आवश्यक नहीं है कि मूल कोष्ठक में रखा जाए, जैसा कि द्विभाजन विधि में होता है, और इसलिए यह हमेशा अभिसरण नहीं होता है। मिथ्या स्थिति विधि या फॉल्स पोजीशन मेथड (या regula falsi) सेकेंट मेथड के समान सूत्र का उपयोग करता है। हालाँकि, यह फॉर्मूला लागू नहीं होता है और , सेकेंट मेथड की तरह, लेकिन चालू और अंतिम पुनरावृति पर ऐसा है कि और एक अलग संकेत है. इसका तात्पर्य यह है कि मिथ्या स्थिति विधि हमेशा अभिसरण करती है; हालाँकि, केवल अभिसरण के एक रैखिक क्रम के साथ है। सेकेंट मेथड के रूप में अभिसरण के सुपर-रेखीय क्रम के साथ ब्रैकेटिंग को मिथ्या स्थिति विधि में सुधार के साथ प्राप्त किया जा सकता है (देखें रेगुला फाल्सी # सुधार% 20in% 20रेगुला% 20 फाल्सी | रेगुला फाल्सी § रेगुला फाल्सी में सुधार) जैसे कि आईटीपी विधि या इलिनोइस विधि.
सेकेंट मेथड का पुनरावृत्ति सूत्र न्यूटन की विधि के सूत्र से प्राप्त किया जा सकता है
छोटे के लिए, परिमित-अंतर सन्निकटन का उपयोग करके :
सेकेंट मेथड की व्याख्या एक ऐसी विधि के रूप में की जा सकती है जिसमें व्युत्पन्न को एक सन्निकटन द्वारा प्रतिस्थापित किया जाता है और इस प्रकार यह एक अर्ध-न्यूटन विधि है।
यदि हम न्यूटन की विधि की तुलना सेकेंट मेथड से करते हैं, तो हम देखते हैं कि न्यूटन की विधि तेजी से अभिसरण करती है (φ≈1.6 के विरुद्ध क्रम 2)। हालाँकि, न्यूटन की पद्धति के लिए दोनों के मूल्यांकन की आवश्यकता है और इसका व्युत्पन्न प्रत्येक चरण पर, जबकि सेकेंट मेथड के लिए केवल मूल्यांकन की आवश्यकता होती है . इसलिए, सेकेंट मेथड कभी-कभी व्यवहार में तेज़ हो सकती है। उदाहरण के लिए, यदि हम मान लें कि मूल्यांकन कर रहे हैं इसके व्युत्पन्न का मूल्यांकन करने में जितना समय लगता है और हम अन्य सभी लागतों की उपेक्षा करते हैं, हम सेकेंट मेथड के दो चरण कर सकते हैं (त्रुटि के लघुगणक को एक कारक से घटाकर φ2 ≈ 2.6 ) न्यूटन की विधि के एक चरण के समान लागत के लिए (त्रुटि के लघुगणक को कारक 2 से कम करना), इसलिए सेकेंट मेथड तेज़ है। यदि, हालांकि, हम व्युत्पन्न के मूल्यांकन के लिए समानांतर प्रसंस्करण पर विचार करते हैं, तो न्यूटन की विधि समय में तेज़ होने के अतिरिक्त इसके लायक साबित होती है, हालांकि अभी भी अधिक कदम खर्च करती है।
सामान्यीकरण
ब्रोयडेन की विधि एक से अधिक आयामों के लिए सेकेंट मेथड का सामान्यीकरण है।
निम्नलिखित ग्राफ़ फलन f को लाल रंग में और अंतिम सेकंड लाइन को बोल्ड नीले रंग में दिखाता है। ग्राफ़ में, छेदक रेखा का x अंतःखंड, f के मूल का एक अच्छा सन्निकटन प्रतीत होता है।
कम्प्यूटेशनल उदाहरण
नीचे, सेकेंट मेथड को पायथन (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग लैंग्वेज में लागू किया गया है।
फिर इसे फलन का मूल ढूंढने के लिए लागू किया जाता है f(x) = x2 − 612 प्रारंभिक बिंदुओं के साथ और
def secant_method(f, x0, x1, iterations):
"""Return the root calculated using the secant method."""
for i in range(iterations):
x2 = x1 - f(x1) * (x1 - x0) / float(f(x1) - f(x0))
x0, x1 = x1, x2
# Apply a stopping criterion here (see below)
return x2
def f_example(x):
return x ** 2 - 612
root = secant_method(f_example, 10, 30, 5)
print(f"Root: {root}") # Root: 24.738633748750722
उपरोक्त एक अच्छा रोक मानदंड होना बहुत महत्वपूर्ण है, अन्यथा, फ़्लोटिंग पॉइंट संख्याओं की सीमित संख्यात्मक सटीकता के कारण, एल्गोरिदम बहुत अधिक पुनरावृत्तियों के लिए चलने पर गलत परिणाम दे सकता है। उदाहरण के लिए, उपरोक्त लूप तब रुक सकता है जब इनमें से कोई एक पहले पहुंच जाए: abs(x0 - x1) < tol, या abs(x0/x1-1) < tol, या abs(f(x1)) < tol. [2]
टिप्पणियाँ
- ↑ Papakonstantinou, Joanna; Tapia, Richard (2013). "एक आयाम में सेकेंट विधि की उत्पत्ति और विकास". American Mathematical Monthly. 120 (6): 500–518. doi:10.4169/amer.math.monthly.120.06.500. JSTOR 10.4169/amer.math.monthly.120.06.500. S2CID 17645996 – via JSTOR.
- ↑ "MATLAB TUTORIAL for the First Course. Part 1.3: Secant Methods".
यह भी देखें
- मिथ्या स्थिति विधि (फॉल्स पोजीशन मेथड)
संदर्भ
- Avriel, Mordecai (1976). Nonlinear Programming: Analysis and Methods. Prentice Hall. pp. 220–221. ISBN 0-13-623603-0.
- Allen, Myron B.; Isaacson, Eli L. (1998). Numerical analysis for applied science. John Wiley & Sons. pp. 188–195. ISBN 978-0-471-55266-6.
बाहरी संबंध
- Secant Method Notes, PPT, Mathcad, Maple, Mathematica, Matlab at Holistic Numerical Methods Institute
- Weisstein, Eric W. "Secant Method". MathWorld.