गाउस-साइडल विधि: Difference between revisions

From Vigyanwiki
m (Arti Shah moved page गॉस-सीडेल विधि to गाउस-साइडल विधि without leaving a redirect)
(text)
Line 1: Line 1:
{{Short description|Iterative method used to solve a linear system of equations}}
{{Short description|Iterative method used to solve a linear system of equations}}
[[संख्यात्मक रैखिक बीजगणित]] में, गॉस-सीडेल विधि, जिसे लिबमैन विधि या क्रमिक विस्थापन की विधि के रूप में भी जाना जाता है, एक पुनरावृत्त विधि है जिसका उपयोग [[रैखिक समीकरणों की प्रणाली]] को हल करने के लिए किया जाता है। इसका नाम [[जर्मनी]] के [[गणितज्ञ]] [[कार्ल फ्रेडरिक गॉस]] और [[फिलिप लुडविग वॉन सीडेल]] के नाम पर रखा गया है, और यह जैकोबी पद्धति के समान है। यद्यपि इसे विकर्णों पर गैर-शून्य तत्वों वाले किसी भी मैट्रिक्स पर लागू किया जा सकता है, अभिसरण की गारंटी केवल तभी दी जाती है जब मैट्रिक्स या तो [[विकर्ण रूप से प्रमुख मैट्रिक्स]] हो,<ref>{{Cite book|last=Sauer|first=Timothy|title=संख्यात्मक विश्लेषण|edition=2nd|publisher=Pearson Education, Inc.|year=2006|isbn=978-0-321-78367-7|pages=109}}</ref> या [[सममित मैट्रिक्स]] और [[सकारात्मक-निश्चित मैट्रिक्स]]इसका उल्लेख केवल 1823 में गॉस द्वारा अपने छात्र [[क्रिश्चियन लुडविग गेर्लिंग]] को लिखे एक निजी पत्र में किया गया था।<ref>
[[संख्यात्मक रैखिक बीजगणित]] में, '''गाउस-साइडल विधि''', जिसे लिबमैन विधि या क्रमिक विस्थापन की विधि के रूप में भी जाना जाता है, एक पुनरावृत्त विधि है जिसका उपयोग [[रैखिक समीकरणों की प्रणाली]] को हल करने के लिए किया जाता है। इसका नाम [[जर्मनी]] के [[गणितज्ञ]] [[कार्ल फ्रेडरिक गॉस]] और [[फिलिप लुडविग वॉन सीडेल]] के नाम पर रखा गया है, और यह जैकोबी पद्धति के समान है। यद्यपि इसे विकर्णों पर गैर-शून्य तत्वों वाले किसी भी आव्यूह पर लागू किया जा सकता है, अभिसरण की प्रत्याभुति केवल तभी दी जाती है जब आव्यूह या तो [[विकर्ण रूप से प्रमुख मैट्रिक्स|विकर्ण रूप से प्रमुख आव्यूह]] हो <ref>{{Cite book|last=Sauer|first=Timothy|title=संख्यात्मक विश्लेषण|edition=2nd|publisher=Pearson Education, Inc.|year=2006|isbn=978-0-321-78367-7|pages=109}}</ref> या [[सममित मैट्रिक्स|सममित आव्यूह]] और [[सकारात्मक-निश्चित मैट्रिक्स|सकारात्मक-निश्चित आव्यूह]] हो। इसका उल्लेख केवल 1823 में गॉस द्वारा अपने छात्र [[क्रिश्चियन लुडविग गेर्लिंग]] को लिखे एक निजी पत्र में किया गया था। <ref>
{{harvnb|Gauss|1903|p=279}}; [http://gdz.sub.uni-goettingen.de/en/dms/loader/img/?PPN=PPN23601515X&DMDID=DMDLOG_0112&LOGID=LOG_0112&PHYSID=PHYS_0286 direct link].</ref> सीडेल द्वारा 1874 से पहले कोई प्रकाशन वितरित नहीं किया गया था।<ref>{{cite journal |last1=Seidel |first1=Ludwig |title=Über ein Verfahren, die Gleichungen, auf welche die Methode der kleinsten Quadrate führt, sowie lineäre Gleichungen überhaupt, durch successive Annäherung aufzulösen |journal=Abhandlungen der Mathematisch-Physikalischen Klasse der Königlich Bayerischen Akademie der Wissenschaften |date=1874 |volume=11 |issue=3 |pages=81–108 |url=https://www.biodiversitylibrary.org/item/110049#page/621/mode/1up |trans-title=On a process for solving by successive approximation the equations to which the method of least squares leads as well as linear equations generally |language=German}}</ref>
{{harvnb|Gauss|1903|p=279}}; [http://gdz.sub.uni-goettingen.de/en/dms/loader/img/?PPN=PPN23601515X&DMDID=DMDLOG_0112&LOGID=LOG_0112&PHYSID=PHYS_0286 direct link].</ref> सीडेल द्वारा 1874 से पहले कोई प्रकाशन वितरित नहीं किया गया था। <ref>{{cite journal |last1=Seidel |first1=Ludwig |title=Über ein Verfahren, die Gleichungen, auf welche die Methode der kleinsten Quadrate führt, sowie lineäre Gleichungen überhaupt, durch successive Annäherung aufzulösen |journal=Abhandlungen der Mathematisch-Physikalischen Klasse der Königlich Bayerischen Akademie der Wissenschaften |date=1874 |volume=11 |issue=3 |pages=81–108 |url=https://www.biodiversitylibrary.org/item/110049#page/621/mode/1up |trans-title=On a process for solving by successive approximation the equations to which the method of least squares leads as well as linear equations generally |language=German}}</ref>




== विवरण ==
== विवरण ==
होने देना <math display="inline">A\mathbf x = \mathbf b</math> की एक वर्ग प्रणाली हो {{mvar|n}} रैखिक समीकरण, जहां:
मान लीजिये <math display="inline">A\mathbf x = \mathbf b</math> {{mvar|n}} रैखिक समीकरण की एक वर्ग प्रणाली हो, जहां:


<math display="block">A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}, \qquad  \mathbf{x} = \begin{bmatrix} x_{1} \\ x_2 \\ \vdots \\ x_n \end{bmatrix} , \qquad  \mathbf{b} = \begin{bmatrix} b_{1} \\ b_2 \\ \vdots \\ b_n \end{bmatrix}.</math>
<math display="block">A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\a_{n1} & a_{n2} & \cdots & a_{nn} \end{bmatrix}, \qquad  \mathbf{x} = \begin{bmatrix} x_{1} \\ x_2 \\ \vdots \\ x_n \end{bmatrix} , \qquad  \mathbf{b} = \begin{bmatrix} b_{1} \\ b_2 \\ \vdots \\ b_n \end{bmatrix}.</math>
कब <math>A</math> और <math>\mathbf b</math> ज्ञात हैं, और <math>\mathbf x</math> अज्ञात है, हम अनुमान लगाने के लिए गॉस-सीडेल विधि का उपयोग कर सकते हैं <math>\mathbf x</math>. सदिश <math>\mathbf x^{(0)}</math> के लिए हमारे प्रारंभिक अनुमान को दर्शाता है <math>\mathbf x</math> (अक्सर <math>\mathbf x^{(0)}_i=0</math> के लिए <math>i=1,2,...,n</math>). हम निरूपित करते हैं <math>\mathbf{x}^{(k)}</math> के रूप में {{mvar|k}}-वाँ सन्निकटन या पुनरावृत्ति <math>\mathbf{x}</math>, और <math>\mathbf{x}^{(k+1)}</math> का अगला (या k+1) पुनरावृत्ति है <math>\mathbf{x}</math>.
जब <math>A</math> और <math>\mathbf b</math> ज्ञात हैं, और <math>\mathbf x</math> अज्ञात है, हम अनुमान लगाने के लिए गाउस-साइडल विधि <math>\mathbf x</math> का उपयोग कर सकते हैं। सदिश <math>\mathbf x^{(0)}</math> के लिए हमारे प्रारंभिक अनुमान <math>\mathbf x</math> (प्रायः <math>\mathbf x^{(0)}_i=0</math> के लिए <math>i=1,2,...,n</math>) को दर्शाता है। हम <math>\mathbf{x}^{(k)}</math> के रूप में {{mvar|k}}-वाँ सन्निकटन या पुनरावर्तन <math>\mathbf{x}</math> निरूपित करते हैं, और <math>\mathbf{x}^{(k+1)}</math> <math>\mathbf{x}</math> का अगला (या k+1) पुनरावर्तन है।


=== मैट्रिक्स-आधारित सूत्र ===
=== आव्यूह-आधारित सूत्र ===
समाधान पुनरावर्ती रूप से प्राप्त किया जाता है
समाधान पुनरावर्ती रूप से प्राप्त किया जाता है
<math display="block"> L_* \mathbf{x}^{(k+1)} = \mathbf{b} - U \mathbf{x}^{(k)}, </math>
<math display="block"> L_* \mathbf{x}^{(k+1)} = \mathbf{b} - U \mathbf{x}^{(k)}, </math>
जहां मैट्रिक्स <math>A</math> एक [[त्रिकोणीय मैट्रिक्स]] घटक में विघटित हो जाता है <math>L_*</math>, और एक त्रिकोणीय मैट्रिक्स # कड़ाई से त्रिकोणीय मैट्रिक्स घटक <math>U</math> ऐसा है कि <math> A = L_* + U </math>.<ref>{{harvnb|Golub|Van Loan|1996|p=511}}.</ref> अधिक विशेष रूप से, का अपघटन <math>A</math> में <math>L_*</math> और <math>U</math> द्वारा दिया गया है:
जहां आव्यूह <math>A</math> एक [[त्रिकोणीय मैट्रिक्स|त्रिकोणीय आव्यूह]] घटक <math>L_*</math> में विघटित हो जाता है, और एक अनुशासनपूर्वक त्रिकोणीय आव्यूह घटक <math>U</math> इस प्रकार है कि <math> A = L_* + U </math><ref>{{harvnb|Golub|Van Loan|1996|p=511}}.</ref> अधिक विशेष रूप से, <math>A</math> में <math>L_*</math> और <math>U</math> का अपघटन निम्न द्वारा दिया गया है:


<math display="block">A =
<math display="block">A =
Line 26: Line 26:




==== मैट्रिक्स-आधारित सूत्र क्यों काम करता है ====
==== आव्यूह-आधारित सूत्र क्यों काम करता है ====
रैखिक समीकरणों की प्रणाली को इस प्रकार फिर से लिखा जा सकता है:
रैखिक समीकरणों की प्रणाली को इस प्रकार फिर से लिखा जा सकता है:
:<math>\begin{alignat}{1}
:<math>\begin{alignat}{1}
Line 34: Line 34:
L_* \mathbf{x} &= \mathbf{b} - U \mathbf{x}
L_* \mathbf{x} &= \mathbf{b} - U \mathbf{x}
\end{alignat} </math>
\end{alignat} </math>
गॉस-सीडेल विधि अब इस अभिव्यक्ति के बाईं ओर को हल करती है<math>\mathbf{x}</math>, के लिए पिछले मान का उपयोग करना<math>\mathbf{x}</math>दाहिने हाथ की ओर। विश्लेषणात्मक रूप से, इसे इस प्रकार लिखा जा सकता है:
दाहिनी ओर <math>\mathbf{x}</math> के लिए पिछले मान का उपयोग करके, गाउस-साइडल विधि <math>\mathbf{x}</math> के लिए अब इस अभिव्यक्ति के बाईं ओर को हल करती है। विश्लेषणात्मक रूप से, इसे इस प्रकार लिखा जा सकता है:
<math display="block"> \mathbf{x}^{(k+1)} = L_*^{-1} \left(\mathbf{b} - U \mathbf{x}^{(k)}\right). </math>
<math display="block"> \mathbf{x}^{(k+1)} = L_*^{-1} \left(\mathbf{b} - U \mathbf{x}^{(k)}\right). </math>




=== तत्व-आधारित सूत्र ===
=== तत्व-आधारित सूत्र ===
हालाँकि, त्रिकोणीय रूप का लाभ उठाकर <math>L_*</math>, के तत्व <math>\mathbf{x}^{(k+1)}</math> प्रत्येक पंक्ति के लिए क्रमिक रूप से गणना की जा सकती है <math>i</math> [[आगे प्रतिस्थापन]] का उपयोग करना:<ref>{{harvnb|Golub|Van Loan|1996|loc=eqn (10.1.3)}}</ref>
हालाँकि, त्रिकोणीय रूप का लाभ उठाकर <math>L_*</math>, के तत्व <math>\mathbf{x}^{(k+1)}</math> प्रत्येक पंक्ति <math>i</math> के लिए [[आगे प्रतिस्थापन|प्रगल्भ प्रतिस्थापन]] का उपयोग करके क्रमिक रूप से गणना की जा सकती है: <ref>{{harvnb|Golub|Van Loan|1996|loc=eqn (10.1.3)}}</ref>
<math display="block"> x^{(k+1)}_i  = \frac{1}{a_{ii}} \left(b_i - \sum_{j=1}^{i-1}a_{ij}x^{(k+1)}_j - \sum_{j=i+1}^{n}a_{ij}x^{(k)}_j \right),\quad i=1,2,\dots,n. </math>
<math display="block"> x^{(k+1)}_i  = \frac{1}{a_{ii}} \left(b_i - \sum_{j=1}^{i-1}a_{ij}x^{(k+1)}_j - \sum_{j=i+1}^{n}a_{ij}x^{(k)}_j \right),\quad i=1,2,\dots,n. </math>
ध्यान दें कि सूत्र प्रति पुनरावृत्ति दो योगों का उपयोग करता है जिन्हें एक योग के रूप में व्यक्त किया जा सकता है <math>\sum_{j \ne i} a_{ij}x_j</math> जो कि सबसे हाल ही में गणना की गई पुनरावृत्ति का उपयोग करता है <math>x_j</math>. प्रक्रिया आम तौर पर तब तक जारी रखी जाती है जब तक कि पुनरावृत्ति द्वारा किए गए परिवर्तन कुछ सहनशीलता से कम न हों, जैसे कि पर्याप्त रूप से छोटा [[अवशिष्ट (संख्यात्मक विश्लेषण)]]।
ध्यान दें कि सूत्र प्रति पुनरावर्तन दो योगों का उपयोग करता है जिन्हें एक योग के रूप <math>\sum_{j \ne i} a_{ij}x_j</math> में व्यक्त किया जा सकता है, जो कि सबसे हाल ही में गणना की गई पुनरावर्तन <math>x_j</math> का उपयोग करता है। प्रक्रिया सामान्यतः तब तक जारी रखी जाती है जब तक कि पुनरावर्तन द्वारा किए गए परिवर्तन कुछ सहनशीलता से कम न हों, जैसे कि पर्याप्त रूप से छोटा [[अवशिष्ट (संख्यात्मक विश्लेषण)]]।


=== चर्चा ===
=== चर्चा ===
गॉस-सीडेल विधि का तत्व-वार सूत्र जैकोबी विधि के समान है।
गाउस-साइडल विधि का तत्व-वार सूत्र जैकोबी विधि के समान है।


की गणना <math>\mathbf{x}^{(k+1)}</math> के तत्वों का उपयोग करता है <math>\mathbf{x}^{(k+1)}</math> जिसकी गणना पहले ही की जा चुकी है, और केवल इसके तत्व <math>\mathbf{x}^{(k)}</math> जिसकी गणना नहीं की गई है {{math|(''k''+1)}}-वाँ पुनरावृत्ति. इसका मतलब यह है कि, जैकोबी पद्धति के विपरीत, केवल एक स्टोरेज वेक्टर की आवश्यकता होती है क्योंकि तत्वों की गणना करते समय उन्हें ओवरराइट किया जा सकता है, जो बहुत बड़ी समस्याओं के लिए फायदेमंद हो सकता है।
<math>\mathbf{x}^{(k+1)}</math> की गणना <math>\mathbf{x}^{(k+1)}</math> के तत्वों का उपयोग करती है। जिसकी गणना पहले ही की जा चुकी है, और केवल <math>\mathbf{x}^{(k)}</math> के तत्व जिनकी गणना (k+1)-वें पुनरावर्तन में नहीं की गई है। इसका अर्थ यह है कि, जैकोबी पद्धति के विपरीत, केवल एक संग्रहण सदिश की आवश्यकता होती है क्योंकि तत्वों की गणना करते समय उन्हें उपरिलेखन किया जा सकता है, जो बहुत बड़ी समस्याओं के लिए लाभकारी हो सकता है।


हालाँकि, जैकोबी विधि के विपरीत, प्रत्येक तत्व की गणना आमतौर पर समानांतर एल्गोरिथ्म में लागू करना बहुत कठिन होता है, क्योंकि उनमें [[समानांतर एल्गोरिदम]] का बहुत लंबा विश्लेषण हो सकता है, और इस प्रकार [[ विरल मैट्रिक्स ]] के लिए सबसे अधिक संभव है। इसके अलावा, प्रत्येक पुनरावृत्ति के मान मूल समीकरणों के क्रम पर निर्भर होते हैं।
हालाँकि, जैकोबी विधि के विपरीत, प्रत्येक तत्व की गणना सामान्यतः समानांतर कलन विधि में लागू करना बहुत कठिन होता है, क्योंकि उनमें [[समानांतर एल्गोरिदम|समानांतर कलन विधि]] का बहुत लंबा विश्लेषण हो सकता है, और इस प्रकार [[ विरल मैट्रिक्स |विरल आव्यूह]] के लिए सबसे अधिक संभव है। इसके अतिरिक्त, प्रत्येक पुनरावर्तन के मान मूल समीकरणों के क्रम पर निर्भर होते हैं।


गॉस-सीडेल [[क्रमिक अति-विश्राम]] के समान है <math>\omega=1</math>.
गॉस-सीडेल [[क्रमिक अति-विश्राम]] <math>\omega=1</math> के समान है।


==अभिसरण==
==अभिसरण==
गॉस-सीडेल विधि के अभिसरण गुण मैट्रिक्स ए पर निर्भर हैं। अर्थात्, प्रक्रिया को अभिसरण के लिए जाना जाता है यदि या तो:
गाउस-साइडल विधि के अभिसरण गुण आव्यूह {{mvar|A}} पर निर्भर हैं। अर्थात्, प्रक्रिया को अभिसरण के लिए जाना जाता है यदि या तो:
* {{mvar|A}} सममित सकारात्मक-निश्चित मैट्रिक्स है|सकारात्मक-निश्चित,<ref>{{harvnb|Golub|Van Loan|1996|loc=Thm 10.1.2}}.</ref> या
* {{mvar|A}} सममित सकारात्मक-निश्चित आव्यूह है <ref>{{harvnb|Golub|Van Loan|1996|loc=Thm 10.1.2}}.</ref> अथवा
* {{mvar|A}} सख्ती से या अपरिवर्तनीय रूप से विकर्ण रूप से प्रभावशाली मैट्रिक्स है।<ref>{{cite journal |last= Bagnara|first= Roberto | date= March 1995 | title= जैकोबी और गॉस-सीडेल विधियों के अभिसरण के लिए एक एकीकृत प्रमाण| journal= SIAM Review | volume= 37|issue= 1|pages= 93–97 | doi= 10.1137/1037008 |jstor= 2132758}}</ref>
* {{mvar|A}} अनुशासनपूर्वक से या अपरिवर्तनीय रूप से विकर्ण रूप से प्रभावशाली आव्यूह है। <ref>{{cite journal |last= Bagnara|first= Roberto | date= March 1995 | title= जैकोबी और गॉस-सीडेल विधियों के अभिसरण के लिए एक एकीकृत प्रमाण| journal= SIAM Review | volume= 37|issue= 1|pages= 93–97 | doi= 10.1137/1037008 |jstor= 2132758}}</ref>
गॉस-सीडेल विधि कभी-कभी इन शर्तों के संतुष्ट न होने पर भी अभिसरण करती है।
गाउस-साइडल विधि कभी-कभी इन स्तिथियों के संतुष्ट न होने पर भी अभिसरण करती है।


गोलूब और वैन लोन एक एल्गोरिथ्म के लिए एक प्रमेय देते हैं जो विभाजित होता है <math>A</math> दो भागों में. कल्पना करना <math>A = M - N</math> निरर्थक है. होने देना <math>r = \rho(M^{-1}N)</math> की [[वर्णक्रमीय त्रिज्या]] हो <math>M^{-1}N</math>. फिर पुनरावृत्त होता है <math>x^{(k)}</math> द्वारा परिभाषित <math>Mx^{(k+1)} = Nx^{(k)} + b</math> में जुटना <math>x = A^{-1}b</math> किसी भी आरंभिक वेक्टर के लिए <math>x^{(0)}</math> अगर <math>M</math> निरर्थक है और <math>r < 1</math>.<ref>{{harvnb|Golub|Van Loan|1996|loc=Thm 10.1.2}}</ref>
गोलूब और वैन लोन एक कलन विधि के लिए एक प्रमेय देते हैं जो <math>A</math> को दो भागों में विभाजित करता है। मान लीजिये <math>A = M - N</math> निरर्थक है। मान लीजिये <math>M^{-1}N</math> <math>r = \rho(M^{-1}N)</math> की [[वर्णक्रमीय त्रिज्या]] है। फिर <math>x^{(k)}</math> पुनरावर्तन <math>Mx^{(k+1)} = Nx^{(k)} + b</math> द्वारा परिभाषित  <math>x = A^{-1}b</math> में किसी भी आरंभिक सदिश <math>x^{(0)}</math> के लिए अभिसरित होता है अगर <math>M</math> निरर्थक है और <math>r < 1</math> है। <ref>{{harvnb|Golub|Van Loan|1996|loc=Thm 10.1.2}}</ref>




== एल्गोरिथम ==
== कलन विधि ==


चूँकि इस एल्गोरिथ्म में तत्वों की गणना करते समय उन्हें ओवरराइट किया जा सकता है, केवल एक स्टोरेज वेक्टर की आवश्यकता होती है, और वेक्टर इंडेक्सिंग को छोड़ दिया जाता है। एल्गोरिथ्म इस प्रकार है:
चूँकि इस कलन विधि में तत्वों की गणना करते समय उन्हें उपरिलेखन किया जा सकता है, केवल एक संग्रह सदिश की आवश्यकता होती है, और सदिश अनुक्रमणीकरण को छोड़ दिया जाता है। कलन विधि इस प्रकार है:
 
  '''algorithm''' Gauss–Seidel method '''is'''
  एल्गोरिथम गॉस-सीडेल विधि है
     '''inputs:''' <var>A</var>, <var>b</var>
     इनपुट: {{var|A}}, {{var|b}}   
    '''output:''' ''φ''
{{nowrap|'''output:''' ''φ''}}   
   
   
{{nowrap|Choose an initial guess ''φ'' to the solution}}
    Choose an initial guess ''φ'' to the solution
     अभिसरण तक दोहराएँ
     '''repeat''' until convergence
         के लिए {{var|i}} 1 से तक {{var|n}} करना           
         '''for''' <var>i</var> '''from''' 1 '''until''' <var>n</var> '''do'''
{{nowrap|''σ'' 0}}
            ''σ'' ← 0
             के लिए {{var|j}} 1 से तक {{var|n}} करना
             '''for''' <var>j</var> '''from''' 1 '''until''' <var>n</var> '''do'''
                 अगर {{var|j}} {{var|i}} तब                   
                 '''if''' <var>j</var> <var>i</var> '''then'''
{{nowrap|''σ'' ''σ'' + ''a''<sub>''ij''</sub>''φ''<sub>''j''</sub>}}
                    ''σ'' ← ''σ'' + ''a<sub>ij</sub>φ<sub>j</sub>''
                 अगर अंत
                 '''end if'''
             अंत ({{var|j}}-कुंडली)            
             '''end''' (<var>j</var>-loop)
{{nowrap|''φ''<sub>''i''</sub> (''b''<sub>''i''</sub> ''σ'') / ''a''<sub>''ii''</sub>}}
            ''φ<sub>i</sub>'' ← (''b<sub>i</sub>'' − ''σ'') / ''a<sub>ii</sub>''
         अंत ({{var|i}}-कुंडली)
         '''end''' (<var>i</var>-loop)
         जाँच करें कि क्या अभिसरण पहुँच गया है
         check if convergence is reached
     अंत (दोहराएँ)
     '''end''' (repeat)            


==उदाहरण==
==उदाहरण==


===मैट्रिक्स संस्करण के लिए एक उदाहरण===
===आव्यूह संस्करण के लिए एक उदाहरण===


एक रैखिक प्रणाली के रूप में दिखाया गया है <math>A \mathbf{x} = \mathbf{b}</math> द्वारा दिया गया है:
एक रैखिक प्रणाली के रूप में दिखाया गया <math>A \mathbf{x} = \mathbf{b}</math> निम्न द्वारा दिया गया है:
<math display="block"> A=
<math display="block"> A=
       \begin{bmatrix}
       \begin{bmatrix}
Line 104: Line 103:
प्रपत्र में
प्रपत्र में
<math display="block"> \mathbf{x}^{(k+1)} = T \mathbf{x}^{(k)} + C </math>
<math display="block"> \mathbf{x}^{(k+1)} = T \mathbf{x}^{(k)} + C </math>
कहाँ:
जहाँ:
:<math>T = - L_*^{-1} U \quad \text{and} \quad C = L_*^{-1} \mathbf{b}.</math>
:<math>T = - L_*^{-1} U \quad \text{and} \quad C = L_*^{-1} \mathbf{b}.</math>
हमें विघटित होना चाहिए <math>A</math> निचले त्रिकोणीय घटक के योग में <math>L_*</math> और एक सख्त ऊपरी त्रिकोणीय घटक <math>U</math>:
हमें <math>A</math> को निचले त्रिकोणीय घटक <math>L_*</math> और यथार्थ ऊपरी त्रिकोणीय घटक <math>U</math> के योग में विघटित करना होगा: :
<math display="block"> L_*=
<math display="block"> L_*=
       \begin{bmatrix}
       \begin{bmatrix}
Line 118: Line 117:
           0 & 0
           0 & 0
         \end{bmatrix}.</math>
         \end{bmatrix}.</math>
का उलटा <math>L_*</math> है:
<math>L_*</math> का उलटा निम्न है:
<math display="block"> L_*^{-1} =
<math display="block"> L_*^{-1} =
       \begin{bmatrix}
       \begin{bmatrix}
Line 162: Line 161:
       \end{bmatrix}.
       \end{bmatrix}.
\end{align}</math>
\end{align}</math>
अब हमारे पास है <math>T</math> और <math>C</math> और हम उनका उपयोग सदिश प्राप्त करने के लिए कर सकते हैं <math>\mathbf{x}</math> पुनरावर्ती रूप से।
अब हमारे पास <math>T</math> और <math>C</math> है और हम उनका उपयोग पुनरावर्ती रूप से सदिश <math>\mathbf{x}</math> प्राप्त करने के लिए कर सकते हैं।


सबसे पहले हमें चुनना होगा <math>\mathbf{x}^{(0)}</math>: हम केवल अनुमान लगा सकते हैं. अनुमान जितना बेहतर होगा, एल्गोरिदम उतनी ही तेजी से काम करेगा।
सबसे पहले हमें चुनना होगा <math>\mathbf{x}^{(0)}</math>: हम केवल अनुमान लगा सकते हैं. अनुमान जितना बेहतर होगा, कलन विधि उतनी ही तीव्रता से काम करेगी।


हम एक प्रारंभिक बिंदु चुनते हैं:
हम एक प्रारंभिक बिंदु चुनते हैं:
Line 310: Line 309:
       \end{bmatrix}.
       \end{bmatrix}.
\end{align}</math>
\end{align}</math>
जैसा कि अपेक्षित था, एल्गोरिथ्म सटीक समाधान में परिवर्तित होता है:
जैसा कि अपेक्षित था, कलन विधि सटीक समाधान में परिवर्तित होता है:
<math display="block"> \mathbf{x} = A^{-1} \mathbf{b} \approx \begin{bmatrix} 0.8122\\ -0.6650 \end{bmatrix}. </math>
<math display="block"> \mathbf{x} = A^{-1} \mathbf{b} \approx \begin{bmatrix} 0.8122\\ -0.6650 \end{bmatrix}. </math>
वास्तव में, मैट्रिक्स {{mvar|A}} सख्ती से विकर्ण रूप से प्रभावशाली है (लेकिन सकारात्मक निश्चित नहीं)।
वास्तव में, आव्यूह {{mvar|A}} अनुशासनपूर्वक से विकर्ण रूप से प्रभावशाली है (लेकिन सकारात्मक निश्चित नहीं)।


===मैट्रिक्स संस्करण के लिए एक और उदाहरण===
===आव्यूह संस्करण के लिए एक और उदाहरण===


एक अन्य रैखिक प्रणाली के रूप में दिखाया गया है <math>A \mathbf{x} = \mathbf{b}</math> द्वारा दिया गया है:
एक अन्य रैखिक प्रणाली के रूप में दिखाया गया <math>A \mathbf{x} = \mathbf{b}</math> निम्न रूप में दिया गया है:


<math display="block"> A=
<math display="block"> A=
Line 334: Line 333:
प्रपत्र में
प्रपत्र में
<math display="block"> \mathbf{x}^{(k+1)} = T \mathbf{x}^{(k)} + C </math>
<math display="block"> \mathbf{x}^{(k+1)} = T \mathbf{x}^{(k)} + C </math>
कहाँ:
जहाँ:
:<math>T = - L_*^{-1} U \quad \text{and} \quad C = L_*^{-1} \mathbf{b}.</math>
:<math>T = - L_*^{-1} U \quad \text{and} \quad C = L_*^{-1} \mathbf{b}.</math>
हमें विघटित होना चाहिए <math>A</math> निचले त्रिकोणीय घटक के योग में <math>L_*</math> और एक सख्त ऊपरी त्रिकोणीय घटक <math>U</math>:
हमें <math>A</math> को निचले त्रिकोणीय घटक <math>L_*</math> और यथार्थ ऊपरी त्रिकोणीय घटक <math>U</math> के योग में विघटित करना होगा:
<math display="block"> L_*=
<math display="block"> L_*=
       \begin{bmatrix}
       \begin{bmatrix}
Line 348: Line 347:
           0 & 0 \\
           0 & 0 \\
         \end{bmatrix}.</math>
         \end{bmatrix}.</math>
का उलटा <math>L_*</math> है:
<math>L_*</math> का उलटा निम्न है:
<math display="block"> L_*^{-1} =
<math display="block"> L_*^{-1} =
       \begin{bmatrix}
       \begin{bmatrix}
Line 392: Line 391:
       \end{bmatrix}.
       \end{bmatrix}.
\end{align}</math>
\end{align}</math>
अब हमारे पास है <math>T</math> और <math>C</math> और हम उनका उपयोग सदिश प्राप्त करने के लिए कर सकते हैं <math>\mathbf{x}</math> पुनरावर्ती रूप से।
अब हमारे पास <math>T</math> और <math>C</math> है और हम उनका उपयोग पुनरावर्ती रूप से सदिश <math>\mathbf{x}</math> प्राप्त करने के लिए कर सकते हैं।


सबसे पहले हमें चुनना होगा <math>\mathbf{x}^{(0)}</math>: हम केवल अनुमान लगा सकते हैं. अनुमान जितना बेहतर होगा, एल्गोरिदम उतनी ही तेजी से निष्पादित होगा।
सबसे पहले हमें <math>\mathbf{x}^{(0)}</math>चुनना होगा : हम केवल अनुमान लगा सकते हैं। अनुमान जितना बेहतर होगा, कलन विधि उतनी ही तीव्रता से निष्पादित होगी।


हम कल्पना करते हैं:
हम कल्पना करते हैं:
Line 442: Line 441:
  x^{(3)} &= \cdots.
  x^{(3)} &= \cdots.
\end{align}</math>
\end{align}</math>
यदि हम अभिसरण के लिए परीक्षण करते हैं तो हम पाएंगे कि एल्गोरिदम अलग हो जाता है। वास्तव में, मैट्रिक्स ए न तो विकर्ण रूप से प्रभावशाली है और न ही सकारात्मक निश्चित है।
यदि हम अभिसरण के लिए परीक्षण करते हैं तो हम पाएंगे कि कलन विधि अलग हो जाती है। वास्तव में, आव्यूह A न तो विकर्ण रूप से प्रभावशाली है और न ही सकारात्मक निश्चित है।
 
फिर, सटीक समाधान के लिए अभिसरण
फिर, सटीक समाधान के लिए अभिसरण
<math display="block"> \mathbf{x} = A^{-1} \mathbf{b} = \begin{bmatrix} -38\\ 29 \end{bmatrix} </math>
<math display="block"> \mathbf{x} = A^{-1} \mathbf{b} = \begin{bmatrix} -38\\ 29 \end{bmatrix} </math>
इसकी गारंटी नहीं है और, इस मामले में, घटित नहीं होगा।
इसकी प्रत्याभुति नहीं है और, इस स्तिथि में, घटित नहीं होगा।


===समीकरण संस्करण के लिए एक उदाहरण===
===समीकरण संस्करण के लिए एक उदाहरण===


मान लीजिए दिया है {{mvar|k}} समीकरण जहां x<sub>''n''</sub> इन समीकरणों के सदिश और प्रारंभिक बिंदु x हैं<sub>0</sub>.
मान लीजिए {{mvar|k}} समीकरण दिया गया है जहां x<sub>''n''</sub> इन समीकरणों के सदिश और प्रारंभिक बिंदु x<sub>0</sub> हैं।
पहले समीकरण से x के लिए हल करें<sub>1</sub> के अनुसार <math>x_{n+1}, x_{n+2}, \dots, x_n.</math> अगले समीकरण के लिए xs के पिछले मानों को प्रतिस्थापित करें।
 
पहले समीकरण से x<sub>1</sub> के लिए <math>x_{n+1}, x_{n+2}, \dots, x_n.</math> के पदों में हल करें। अगले समीकरण के लिए xs के पिछले मानों को प्रतिस्थापित करें।


इसे स्पष्ट करने के लिए एक उदाहरण पर विचार करें।
इसे स्पष्ट करने के लिए एक उदाहरण पर विचार करें।
Line 459: Line 460:
       &  3x_2 &-  x_3 &+ 8x_4 & =  15.
       &  3x_2 &-  x_3 &+ 8x_4 & =  15.
\end{array}</math>
\end{array}</math>
के लिए समाधान <math>x_1, x_2, x_3</math> और <math>x_4</math> देता है:
<math>x_1, x_2, x_3</math>और <math>x_4</math> को हल करने पर निम्न प्राप्त होता है::
<math display="block">\begin{align}
<math display="block">\begin{align}
x_1 & = x_2/10 - x_3/5 + 3/5, \\
x_1 & = x_2/10 - x_3/5 + 3/5, \\
Line 466: Line 467:
x_4 & = -3x_2/8  + x_3/8 + 15/8.
x_4 & = -3x_2/8  + x_3/8 + 15/8.
\end{align}</math>
\end{align}</math>
मान लीजिए हम चुनते हैं {{math|(0, 0, 0, 0)}} प्रारंभिक सन्निकटन के रूप में, फिर पहला सन्निकटन समाधान दिया जाता है
मान लीजिए हम {{math|(0, 0, 0, 0)}} प्रारंभिक सन्निकटन के रूप में चुनते हैं, फिर पहला सन्निकटन समाधान दिया जाता है
<math display="block">\begin{align}
<math display="block">\begin{align}
x_1 & = 3/5 = 0.6, \\
x_1 & = 3/5 = 0.6, \\
Line 473: Line 474:
x_4 & = -3(2.3272)/8 +(-0.9873)/8+15/8 = 0.8789.
x_4 & = -3(2.3272)/8 +(-0.9873)/8+15/8 = 0.8789.
\end{align}</math>
\end{align}</math>
प्राप्त अनुमानों का उपयोग करते हुए, वांछित सटीकता तक पहुंचने तक पुनरावृत्ति प्रक्रिया दोहराई जाती है। चार पुनरावृत्तियों के बाद अनुमानित समाधान निम्नलिखित हैं।
प्राप्त अनुमानों का उपयोग करते हुए, वांछित सटीकता तक पहुंचने तक पुनरावर्तन प्रक्रिया दोहराई जाती है। चार पुनरावृत्तियों के बाद अनुमानित समाधान निम्नलिखित हैं।
{| class="wikitable"
{| class="wikitable"
! <math>x_1</math> !! <math>x_2</math> !! <math>x_3</math> !! <math>x_4</math>
! <math>x_1</math> !! <math>x_2</math> !! <math>x_3</math> !! <math>x_4</math>
Line 485: Line 486:
| 1.00086 || 2.0003 || −1.00031 || 0.99985
| 1.00086 || 2.0003 || −1.00031 || 0.99985
|}
|}
सिस्टम का सटीक समाधान है {{math|(1, 2, −1, 1)}}.
प्रणाली का सटीक समाधान {{math|(1, 2, −1, 1)}} है।


===पायथन और NumPy=== का उपयोग करने वाला एक उदाहरण
=== पायथन और नम्पि का उपयोग करने वाला एक उदाहरण ===
निम्नलिखित संख्यात्मक प्रक्रिया केवल समाधान वेक्टर उत्पन्न करने के लिए पुनरावृत्त होती है।
निम्नलिखित संख्यात्मक प्रक्रिया केवल समाधान सदिश उत्पन्न करने के लिए पुनरावृत्त होती है।


<syntaxhighlight lang="numpy">
<syntaxhighlight lang="numpy">
Line 550: Line 551:
</syntaxhighlight>
</syntaxhighlight>


 
=== मैटलैब का उपयोग करके समीकरणों की स्वेच्छाचारी संख्या को हल करने का कार्यक्रम ===
=== मनमाना नंबर हल करने का कार्यक्रम। मैटलैब === का उपयोग करके समीकरणों का
निम्नलिखित कोड सूत्र का उपयोग करता है
निम्नलिखित कोड सूत्र का उपयोग करता है
<math display="block">x^{(k+1)}_i  = \frac{1}{a_{ii}} \left(b_i - \sum_{j<i}a_{ij}x^{(k+1)}_j - \sum_{j>i}a_{ij}x^{(k)}_j \right),\quad \begin{array}{l} i=1,2,\ldots,n \\ k=0,1,2,\ldots \end{array}</math>
<math display="block">x^{(k+1)}_i  = \frac{1}{a_{ii}} \left(b_i - \sum_{j<i}a_{ij}x^{(k+1)}_j - \sum_{j>i}a_{ij}x^{(k)}_j \right),\quad \begin{array}{l} i=1,2,\ldots,n \\ k=0,1,2,\ldots \end{array}</math>
Line 567: Line 567:
==यह भी देखें==
==यह भी देखें==
*संयुग्मित ढाल विधि
*संयुग्मित ढाल विधि
*विश्वास प्रचार#गाऊसी विश्वास प्रचार .28GaBP.29
*विश्वास प्रचार गाऊसी विश्वास प्रचार .28GaBP.29
*पुनरावृत्तीय विधि#रैखिक प्रणालियाँ|पुनरावृत्तीय विधि: रेखीय प्रणालियाँ
*पुनरावृत्तीय विधि पुनरावृत्तीय विधि: रेखीय प्रणालियाँ
*काक्ज़मर्ज़ विधि (एक पंक्ति-उन्मुख विधि, जबकि गॉस-सीडेल स्तंभ-उन्मुख है। उदाहरण के लिए, देखें, [https://arxiv.org/abs/1507.05844 यह पेपर]।)
*काक्ज़मर्ज़ विधि (एक पंक्ति-उन्मुख विधि, जबकि गॉस-सीडेल स्तंभ-उन्मुख है। उदाहरण के लिए, देखें, [https://arxiv.org/abs/1507.05844 यह पेपर]।)
*[[मैट्रिक्स विभाजन]]
*[[मैट्रिक्स विभाजन|आव्यूह विभाजन]]
*[[रिचर्डसन पुनरावृत्ति]]
*[[रिचर्डसन पुनरावृत्ति|रिचर्डसन पुनरावर्तन]]


==टिप्पणियाँ==
==टिप्पणियाँ==
Line 593: Line 593:
*[https://web.archive.org/web/20090812100731/http://matlabdb.mathematik.uni-stuttgart.de/gauss_seidel.m?MP_ID=406 Matlab code]
*[https://web.archive.org/web/20090812100731/http://matlabdb.mathematik.uni-stuttgart.de/gauss_seidel.m?MP_ID=406 Matlab code]
*[http://adrianboeing.blogspot.com/2010/02/solving-linear-systems.html C code example]
*[http://adrianboeing.blogspot.com/2010/02/solving-linear-systems.html C code example]
{{Numerical linear algebra}}
{{Authority control}}
{{Authority control}}



Revision as of 11:55, 7 December 2023

संख्यात्मक रैखिक बीजगणित में, गाउस-साइडल विधि, जिसे लिबमैन विधि या क्रमिक विस्थापन की विधि के रूप में भी जाना जाता है, एक पुनरावृत्त विधि है जिसका उपयोग रैखिक समीकरणों की प्रणाली को हल करने के लिए किया जाता है। इसका नाम जर्मनी के गणितज्ञ कार्ल फ्रेडरिक गॉस और फिलिप लुडविग वॉन सीडेल के नाम पर रखा गया है, और यह जैकोबी पद्धति के समान है। यद्यपि इसे विकर्णों पर गैर-शून्य तत्वों वाले किसी भी आव्यूह पर लागू किया जा सकता है, अभिसरण की प्रत्याभुति केवल तभी दी जाती है जब आव्यूह या तो विकर्ण रूप से प्रमुख आव्यूह हो [1] या सममित आव्यूह और सकारात्मक-निश्चित आव्यूह हो। इसका उल्लेख केवल 1823 में गॉस द्वारा अपने छात्र क्रिश्चियन लुडविग गेर्लिंग को लिखे एक निजी पत्र में किया गया था। [2] सीडेल द्वारा 1874 से पहले कोई प्रकाशन वितरित नहीं किया गया था। [3]


विवरण

मान लीजिये n रैखिक समीकरण की एक वर्ग प्रणाली हो, जहां:

जब और ज्ञात हैं, और अज्ञात है, हम अनुमान लगाने के लिए गाउस-साइडल विधि का उपयोग कर सकते हैं। सदिश के लिए हमारे प्रारंभिक अनुमान (प्रायः के लिए ) को दर्शाता है। हम के रूप में k-वाँ सन्निकटन या पुनरावर्तन निरूपित करते हैं, और का अगला (या k+1) पुनरावर्तन है।

आव्यूह-आधारित सूत्र

समाधान पुनरावर्ती रूप से प्राप्त किया जाता है

जहां आव्यूह एक त्रिकोणीय आव्यूह घटक में विघटित हो जाता है, और एक अनुशासनपूर्वक त्रिकोणीय आव्यूह घटक इस प्रकार है कि [4] अधिक विशेष रूप से, में और का अपघटन निम्न द्वारा दिया गया है:


आव्यूह-आधारित सूत्र क्यों काम करता है

रैखिक समीकरणों की प्रणाली को इस प्रकार फिर से लिखा जा सकता है:

दाहिनी ओर के लिए पिछले मान का उपयोग करके, गाउस-साइडल विधि के लिए अब इस अभिव्यक्ति के बाईं ओर को हल करती है। विश्लेषणात्मक रूप से, इसे इस प्रकार लिखा जा सकता है:


तत्व-आधारित सूत्र

हालाँकि, त्रिकोणीय रूप का लाभ उठाकर , के तत्व प्रत्येक पंक्ति के लिए प्रगल्भ प्रतिस्थापन का उपयोग करके क्रमिक रूप से गणना की जा सकती है: [5]

ध्यान दें कि सूत्र प्रति पुनरावर्तन दो योगों का उपयोग करता है जिन्हें एक योग के रूप में व्यक्त किया जा सकता है, जो कि सबसे हाल ही में गणना की गई पुनरावर्तन का उपयोग करता है। प्रक्रिया सामान्यतः तब तक जारी रखी जाती है जब तक कि पुनरावर्तन द्वारा किए गए परिवर्तन कुछ सहनशीलता से कम न हों, जैसे कि पर्याप्त रूप से छोटा अवशिष्ट (संख्यात्मक विश्लेषण)

चर्चा

गाउस-साइडल विधि का तत्व-वार सूत्र जैकोबी विधि के समान है।

की गणना के तत्वों का उपयोग करती है। जिसकी गणना पहले ही की जा चुकी है, और केवल के तत्व जिनकी गणना (k+1)-वें पुनरावर्तन में नहीं की गई है। इसका अर्थ यह है कि, जैकोबी पद्धति के विपरीत, केवल एक संग्रहण सदिश की आवश्यकता होती है क्योंकि तत्वों की गणना करते समय उन्हें उपरिलेखन किया जा सकता है, जो बहुत बड़ी समस्याओं के लिए लाभकारी हो सकता है।

हालाँकि, जैकोबी विधि के विपरीत, प्रत्येक तत्व की गणना सामान्यतः समानांतर कलन विधि में लागू करना बहुत कठिन होता है, क्योंकि उनमें समानांतर कलन विधि का बहुत लंबा विश्लेषण हो सकता है, और इस प्रकार विरल आव्यूह के लिए सबसे अधिक संभव है। इसके अतिरिक्त, प्रत्येक पुनरावर्तन के मान मूल समीकरणों के क्रम पर निर्भर होते हैं।

गॉस-सीडेल क्रमिक अति-विश्राम के समान है।

अभिसरण

गाउस-साइडल विधि के अभिसरण गुण आव्यूह A पर निर्भर हैं। अर्थात्, प्रक्रिया को अभिसरण के लिए जाना जाता है यदि या तो:

  • A सममित सकारात्मक-निश्चित आव्यूह है [6] अथवा
  • A अनुशासनपूर्वक से या अपरिवर्तनीय रूप से विकर्ण रूप से प्रभावशाली आव्यूह है। [7]

गाउस-साइडल विधि कभी-कभी इन स्तिथियों के संतुष्ट न होने पर भी अभिसरण करती है।

गोलूब और वैन लोन एक कलन विधि के लिए एक प्रमेय देते हैं जो को दो भागों में विभाजित करता है। मान लीजिये निरर्थक है। मान लीजिये की वर्णक्रमीय त्रिज्या है। फिर पुनरावर्तन द्वारा परिभाषित में किसी भी आरंभिक सदिश के लिए अभिसरित होता है अगर निरर्थक है और है। [8]


कलन विधि

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

algorithm Gauss–Seidel method is
    inputs: A, b
    output: φ

    Choose an initial guess φ to the solution
    repeat until convergence
        for i from 1 until n do
            σ ← 0
            for j from 1 until n do
                if ji then
                    σ ← σ + aijφj
                end if
            end (j-loop)
            φi ← (bi − σ) / aii
        end (i-loop)
        check if convergence is reached
    end (repeat)             

उदाहरण

आव्यूह संस्करण के लिए एक उदाहरण

एक रैखिक प्रणाली के रूप में दिखाया गया निम्न द्वारा दिया गया है:

हम समीकरण का उपयोग करना चाहते हैं
प्रपत्र में
जहाँ:

हमें को निचले त्रिकोणीय घटक और यथार्थ ऊपरी त्रिकोणीय घटक के योग में विघटित करना होगा: :

का उलटा निम्न है:
अब हम पा सकते हैं:
अब हमारे पास और है और हम उनका उपयोग पुनरावर्ती रूप से सदिश प्राप्त करने के लिए कर सकते हैं।

सबसे पहले हमें चुनना होगा : हम केवल अनुमान लगा सकते हैं. अनुमान जितना बेहतर होगा, कलन विधि उतनी ही तीव्रता से काम करेगी।

हम एक प्रारंभिक बिंदु चुनते हैं:

फिर हम गणना कर सकते हैं: