जैकोबी विधि: Difference between revisions
No edit summary |
No edit summary |
||
Line 38: | Line 38: | ||
== अभिसरण == | == अभिसरण == | ||
मानक अभिसरण स्थिति (किसी पुनरावृत्त विधि के लिए) तब होती है जब पुनरावृत्ति | मानक अभिसरण स्थिति (किसी पुनरावृत्त विधि के लिए) तब होती है जब पुनरावृत्ति आव्यूह का [[वर्णक्रमीय त्रिज्या]] 1 से कम होता है: | ||
:<math>\rho(D^{-1}(L+U)) < 1. </math> | :<math>\rho(D^{-1}(L+U)) < 1. </math> | ||
अभिसरण की विधि के लिए एक पर्याप्त (लेकिन आवश्यक नहीं) शर्त यह है कि मैट्रिक्स | अभिसरण की विधि के लिए एक पर्याप्त (लेकिन आवश्यक नहीं) शर्त यह है कि मैट्रिक्स A अलघुकरणीय रूप से विकर्ण प्रमुख है। यथार्थ पंक्ति विकर्ण प्रमुख का अर्थ है कि प्रत्येक पंक्ति के लिए विकर्ण पद का निरपेक्ष मान अन्य पदों के निरपेक्ष मानों के योग से अधिक है: | ||
:<math>\left | a_{ii} \right | > \sum_{j \ne i} {\left | a_{ij} \right |}. </math> | :<math>\left | a_{ii} \right | > \sum_{j \ne i} {\left | a_{ij} \right |}. </math> | ||
जैकोबी पद्धति कभी-कभी अभिसरण करती है, भले ही ये शर्तें संतुष्ट न हों। | जैकोबी पद्धति कभी-कभी अभिसरण करती है, भले ही ये शर्तें संतुष्ट न हों। | ||
ध्यान दें कि जैकोबी विधि प्रत्येक सममित [[सकारात्मक-निश्चित मैट्रिक्स]] के लिए अभिसरण नहीं करती है। उदाहरण के लिए, | ध्यान दें कि जैकोबी विधि प्रत्येक सममित [[सकारात्मक-निश्चित मैट्रिक्स|सकारात्मक-निश्चित आव्यूह]] के लिए अभिसरण नहीं करती है। उदाहरण के लिए, | ||
<math display="block"> | <math display="block"> | ||
A = | A = | ||
Line 69: | Line 69: | ||
=== उदाहरण 1 === | === उदाहरण 1 === | ||
एक रैखिक प्रणाली <math>Ax=b</math> प्रारंभिक अनुमान के साथ <math>x^{(0)}</math> द्वारा दिया गया है | |||
:<math> A= | :<math> A= | ||
Line 86: | Line 86: | ||
1 \\ | 1 \\ | ||
\end{bmatrix} .</math> | \end{bmatrix} .</math> | ||
हम समीकरण | <math>x</math> का अनुमान लगाने के लिए हम ऊपर वर्णित समीकरण <math> x^{(k+1)}=D^{-1}(b - (L+U)x^{(k)})</math> का उपयोग करते हैं | सबसे पहले हम हम ज्ञात मानों से <math>T=-D^{-1}(L+U)</math>और <math>C = D^{-1}b</math> समीकरण को अधिक सुविधाजनक रूप में फिर से समीकरण को <math>D^{-1}(b - (L+U)x^{(k)}) = Tx^{(k)} + C</math> लिखते हैं | | ||
<math display=block> D^{-1}= | <math display=block> D^{-1}= | ||
\begin{bmatrix} | \begin{bmatrix} | ||
Line 163: | Line 163: | ||
1.143 \\ | 1.143 \\ | ||
\end{bmatrix} .</math> | \end{bmatrix} .</math> | ||
अगला पुनरावृत्ति | अगला पुनरावृत्ति निम्न है | ||
<math display=block> x^{(2)}= | <math display=block> x^{(2)}= | ||
\begin{bmatrix} | \begin{bmatrix} | ||
Line 254: | Line 254: | ||
व्यवस्था का सटीक समाधान है {{math|(1, 2, −1, 1)}}. | व्यवस्था का सटीक समाधान है {{math|(1, 2, −1, 1)}}. | ||
=== पायथन | === पायथन उदहारण === | ||
import numpy as np ITERATION_LIMIT = 1000 | |||
#initialize the matrix | |||
A = np.array([[10., -1., 2., 0.], | |||
[-1., 11., -1., 3.], | [-1., 11., -1., 3.], | ||
[2., -1., 10., -1.], | [2., -1., 10., -1.], | ||
[0.0, 3., -1., 8.]]) | [0.0, 3., -1., 8.]]) | ||
#initialize the RHS vector | |||
b = np.array([6., 25., -11., 15.]) | |||
#prints the system | |||
print("System:") for i in range(A.shape[0]): | |||
row = [f"{A[i, j]}*x{j + 1}" for j in range(A.shape[1])] | row = [f"{A[i, j]}*x{j + 1}" for j in range(A.shape[1])] | ||
print(f'{" + ".join(row)} = {b[i]}') | print(f'{" + ".join(row)} = {b[i]}') | ||
print() | |||
x = np.zeros_like(b) for it_count in range(ITERATION_LIMIT): | |||
if it_count != 0: | if it_count != 0: | ||
print(f"Iteration {it_count}: {x}") | print(f"Iteration {it_count}: {x}") | ||
x_new = np.zeros_like(x) | x_new = np.zeros_like(x) | ||
for i in range(A.shape[0]): | for i in range(A.shape[0]): | ||
s1 = np.dot(A[i, :i], x[:i]) | s1 = np.dot(A[i, :i], x[:i]) | ||
Line 289: | Line 280: | ||
if x_new[i] == x_new[i-1]: | if x_new[i] == x_new[i-1]: | ||
break | break | ||
if np.allclose(x, x_new, atol=1e-10, rtol=0.): | if np.allclose(x, x_new, atol=1e-10, rtol=0.): | ||
break | break | ||
x = x_new | x = x_new | ||
print("Solution: ") print(x) error = np.dot(A, x) - b print("Error:") print(error)<blockquote> | |||
</blockquote> | </blockquote> | ||
Revision as of 11:48, 31 May 2023
संख्यात्मक रैखिक बीजगणित में जैकोबी विधि रैखिक समीकरणों के विकर्ण प्रभावी प्रणाली के समाधान को निर्धारण करने के लिए एक पुनरावृत्ति एल्गोरिथ्म है, जो प्रत्येक विकर्ण अवयव के लिए हल किया जाता है, और अनुमानित मान को रखा जाता है। यह प्रक्रिया तब तक दोहराई जाती है जब तक कि यह अभिसरित न हो जाए। यह एल्गोरिथम आव्यूह विकर्णन के जैकोबी परिवर्तन बिधि का एक स्ट्रिप्ड-डाउन संस्करण है। इस विधि का नाम कार्ल गुस्ताव जैकब जैकोबी के नाम पर रखा गया है।
विवरण
चलो , n रैखिक समीकरणों की एक वर्ग प्रणाली हो, जहाँ:
मैट्रिक्स आधारित सूत्र
तब A को एक विकर्ण घटक D, एक निचला त्रिकोणीय भाग L और एक ऊपरी त्रिकोणीय भाग U में विघटित किया जा सकता है:
तत्व-आधारित सूत्र
प्रत्येक पंक्ति के लिए तत्व-आधारित सूत्र इस प्रकार है:
एल्गोरिथम
Input: initial guess x(0) to the solution, (diagonal dominant) matrix A, right-hand side vector b, convergence criterion Output: solution when convergence is reached Comments: pseudocode based on the element-based formula above k = 0 while convergence not reached do for i := 1 step until n do σ = 0 for j := 1 step until n do if j ≠ i then σ = σ + aij xj(k) end end xi(k+1) = (bi − σ) / aii end increment k end
अभिसरण
मानक अभिसरण स्थिति (किसी पुनरावृत्त विधि के लिए) तब होती है जब पुनरावृत्ति आव्यूह का वर्णक्रमीय त्रिज्या 1 से कम होता है:
अभिसरण की विधि के लिए एक पर्याप्त (लेकिन आवश्यक नहीं) शर्त यह है कि मैट्रिक्स A अलघुकरणीय रूप से विकर्ण प्रमुख है। यथार्थ पंक्ति विकर्ण प्रमुख का अर्थ है कि प्रत्येक पंक्ति के लिए विकर्ण पद का निरपेक्ष मान अन्य पदों के निरपेक्ष मानों के योग से अधिक है:
जैकोबी पद्धति कभी-कभी अभिसरण करती है, भले ही ये शर्तें संतुष्ट न हों।
ध्यान दें कि जैकोबी विधि प्रत्येक सममित सकारात्मक-निश्चित आव्यूह के लिए अभिसरण नहीं करती है। उदाहरण के लिए,
उदाहरण
उदाहरण 1
एक रैखिक प्रणाली प्रारंभिक अनुमान के साथ द्वारा दिया गया है
का अनुमान लगाने के लिए हम ऊपर वर्णित समीकरण का उपयोग करते हैं | सबसे पहले हम हम ज्ञात मानों से और समीकरण को अधिक सुविधाजनक रूप में फिर से समीकरण को लिखते हैं |
उदाहरण 2
मान लीजिए कि हमें निम्नलिखित रैखिक प्रणाली दी गई है:
अगर हम चुनते हैं (0, 0, 0, 0) को प्रारंभिक सन्निकटन के रूप में, तो प्रथम सन्निकट हल द्वारा दिया जाता है
0.6 | 2.27272 | -1.1 | 1.875 |
1.04727 | 1.7159 | -0.80522 | 0.88522 |
0.93263 | 2.05330 | -1.0493 | 1.13088 |
1.01519 | 1.95369 | -0.9681 | 0.97384 |
0.98899 | 2.0114 | -1.0102 | 1.02135 |
व्यवस्था का सटीक समाधान है (1, 2, −1, 1).
पायथन उदहारण
import numpy as np ITERATION_LIMIT = 1000
- initialize the matrix
A = np.array([[10., -1., 2., 0.],
[-1., 11., -1., 3.], [2., -1., 10., -1.], [0.0, 3., -1., 8.]])
- initialize the RHS vector
b = np.array([6., 25., -11., 15.])
- prints the system
print("System:") for i in range(A.shape[0]):
row = [f"{A[i, j]}*x{j + 1}" for j in range(A.shape[1])] print(f'{" + ".join(row)} = {b[i]}')
print()
x = np.zeros_like(b) for it_count in range(ITERATION_LIMIT):
if it_count != 0: print(f"Iteration {it_count}: {x}") x_new = np.zeros_like(x)
for i in range(A.shape[0]): s1 = np.dot(A[i, :i], x[:i]) s2 = np.dot(A[i, i + 1:], x[i + 1:]) x_new[i] = (b[i] - s1 - s2) / A[i, i] if x_new[i] == x_new[i-1]: break
if np.allclose(x, x_new, atol=1e-10, rtol=0.): break
x = x_new
print("Solution: ") print(x) error = np.dot(A, x) - b print("Error:") print(error)
भारित जैकोबी विधि
भारित जैकोबी पुनरावृत्ति एक पैरामीटर का उपयोग करता है पुनरावृत्ति की गणना करने के लिए
साथ सामान्य पसंद होने के नाते।[1] संबंध से , इसे इस रूप में भी व्यक्त किया जा सकता है
- .
सममित सकारात्मक निश्चित मामले में अभिसरण
मामले में कि सिस्टम मैट्रिक्स सममित सकारात्मक-निश्चित मैट्रिक्स का है | सकारात्मक-निश्चित प्रकार कोई अभिसरण दिखा सकता है।
होने देना पुनरावृत्ति मैट्रिक्स हो। फिर, अभिसरण की गारंटी है
- कहाँ अधिकतम eigenvalue है।
किसी विशेष विकल्प के लिए वर्णक्रमीय त्रिज्या को कम किया जा सकता है निम्नलिखित नुसार
यह भी देखें
- गॉस-सीडेल विधि
- लगातार अति-विश्राम
- इटरेटिव मेथड # लीनियर सिस्टम | इटरेटिव मेथड § लीनियर सिस्टम
- विश्वास प्रचार#गाऊसी विश्वास प्रसार .28GaBP.29
- मैट्रिक्स विभाजन
संदर्भ
- ↑ Saad, Yousef (2003). विरल रेखीय प्रणालियों के लिए पुनरावर्ती तरीके (2nd ed.). SIAM. p. 414. ISBN 0898715342.
बाहरी संबंध
- This article incorporates text from the article Jacobi_method on CFD-Wiki that is under the GFDL license.
- Black, Noel; Moore, Shirley & Weisstein, Eric W. "Jacobi method". MathWorld.
- Jacobi Method from www.math-linux.com