जैकोबी विधि

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

विवरण
चलो $$A\mathbf x = \mathbf b$$, n रैखिक समीकरणों की एक वर्ग प्रणाली हो, जहाँ:$$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}.$$ जब $$A$$ और $$\mathbf b$$ ज्ञात हैं, और $$\mathbf x$$ अज्ञात है, हम अनुमानित $$\mathbf x$$ के लिए जैकोबी विधि का उपयोग कर सकते हैं। सदिश $$\mathbf x^{(0)}$$ के लिए हमारे प्रारंभिक अनुमान $$\mathbf x$$ को दर्शाता है (अक्सर $$\mathbf x^{(0)}_i=0$$ के लिए $$i=1,2,...,n$$) के रूप में  निरूपित करते हैं $$\mathbf{x}^{(k)}$$को $$\mathbf{x}$$ के k-वें सन्निकटन या पुनरावृत्ति के रूप में निरुपित करते है, और $$\mathbf{x}^{(k+1)}$$ का अगला पुनरावृत्ति ( k+1)  है.

मैट्रिक्स आधारित सूत्र
तब A को एक विकर्ण घटक D, एक निचला त्रिकोणीय भाग L और एक ऊपरी त्रिकोणीय भाग U में विघटित किया जा सकता है:$$A=D+L+U \qquad \text{where} \qquad D = \begin{bmatrix} a_{11} & 0 & \cdots & 0 \\ 0 & a_{22} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\0 & 0 & \cdots & a_{nn} \end{bmatrix} \text{ and } L+U = \begin{bmatrix} 0 & a_{12} & \cdots & a_{1n} \\ a_{21} & 0 & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & 0 \end{bmatrix}. $$इसके बाद समाधान को पुनरावृत्त रूप से प्राप्त किया जाता है
 * $$ \mathbf{x}^{(k+1)} = D^{-1} (\mathbf{b} - (L+U) \mathbf{x}^{(k)}). $$

तत्व-आधारित सूत्र
प्रत्येक पंक्ति के लिए तत्व-आधारित सूत्र $$i$$ इस प्रकार है:$$ x^{(k+1)}_i = \frac{1}{a_{ii}} \left(b_i -\sum_{j\ne i}a_{ij}x^{(k)}_j\right),\quad i=1,2,\ldots,n. $$$$x_i^{(k+1)}$$ की गणना के लिए स्वयं को छोड़कर $$\mathbf{x}^{(k)}$$में प्रत्येक अवयव की आवश्यकता होती है। गॉस-सीडेल विधि के विपरीत, हम $$x_i^{(k)}$$ को $$x_i^{(k+1)}$$ के साथ अधिलेखित नहीं कर सकते क्योंकि शेष गणना के लिए उस मान की आवश्यकता होगी।          भंडारण की न्यूनतम मात्रा आकार n के दो वैक्टर हैं।

एल्गोरिथम
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 से कम होता है:


 * $$\rho(D^{-1}(L+U)) < 1. $$

अभिसरण की विधि के लिए एक पर्याप्त (लेकिन आवश्यक नहीं) शर्त यह है कि मैट्रिक्स A अलघुकरणीय रूप से विकर्ण प्रमुख है। यथार्थ पंक्ति विकर्ण प्रमुख का अर्थ है कि प्रत्येक पंक्ति के लिए विकर्ण पद का निरपेक्ष मान अन्य पदों के निरपेक्ष मानों के योग से अधिक हो :


 * $$\left | a_{ii} \right | > \sum_{j \ne i} {\left | a_{ij} \right |}. $$

जैकोबी पद्धति कभी-कभी अभिसरण करती है, भले ही ये शर्तें संतुष्ट न हों।

ध्यान दें कि जैकोबी विधि प्रत्येक सममित सकारात्मक-निश्चित आव्यूह के लिए अभिसरण नहीं करती है। उदाहरण के लिए, $$ A = \begin{pmatrix} 29 & 2 & 1\\ 2 & 6 & 1\\  1 & 1 & \frac{1}{5} \end{pmatrix} \quad \Rightarrow \quad D^{-1} (L+U) = \begin{pmatrix} 0 & \frac{2}{29} & \frac{1}{29}\\ \frac{1}{3} & 0 & \frac{1}{6}\\ 5 & 5 & 0 \end{pmatrix} \quad \Rightarrow \quad \rho(D^{-1}(L+U)) \approx 1.0661 \,. $$

उदाहरण 1
एक रैखिक प्रणाली $$Ax=b$$ प्रारंभिक अनुमान के साथ $$x^{(0)}$$ द्वारा दिया गया है


 * $$ A=

\begin{bmatrix} 2 & 1 \\          5 & 7 \\           \end{bmatrix}, \ b=     \begin{bmatrix} 11 \\          13 \\           \end{bmatrix} \quad \text{and} \quad x^{(0)} = \begin{bmatrix} 1 \\          1 \\        \end{bmatrix} .$$ $$x$$ का अनुमान लगाने के लिए हम ऊपर वर्णित समीकरण $$ x^{(k+1)}=D^{-1}(b - (L+U)x^{(k)})$$ का उपयोग करते हैं | सबसे पहले हम हम ज्ञात मानों से $$T=-D^{-1}(L+U)$$और $$C = D^{-1}b$$ समीकरण को अधिक सुविधाजनक रूप में फिर से समीकरण को $$D^{-1}(b - (L+U)x^{(k)}) = Tx^{(k)} + C$$ लिखते हैं | $$ D^{-1}= \begin{bmatrix} 1/2 & 0 \\          0 & 1/7 \\           \end{bmatrix}, \ L=     \begin{bmatrix} 0 & 0 \\          5 & 0 \\           \end{bmatrix} \quad \text{and} \quad U = \begin{bmatrix} 0 & 1 \\          0 & 0 \\        \end{bmatrix} .$$ हम निर्धारित करते हैं $$ T=-D^{-1}(L+U) $$ जैसा $$ T=     \begin{bmatrix} 1/2 & 0 \\          0 & 1/7 \\           \end{bmatrix} \left\{ \begin{bmatrix} 0 & 0 \\          -5 & 0 \\           \end{bmatrix} +       \begin{bmatrix} 0 & -1 \\          0 & 0 \\        \end{bmatrix}\right\} =       \begin{bmatrix} 0 & -1/2 \\          -5/7 & 0 \\        \end{bmatrix}  .$$ आगे, $$C$$ रूप में पाया जाता है $$ C = \begin{bmatrix} 1/2 & 0 \\          0 & 1/7 \\           \end{bmatrix} \begin{bmatrix} 11 \\          13 \\           \end{bmatrix} =       \begin{bmatrix} 11/2 \\          13/7 \\        \end{bmatrix}. $$ साथ $$T$$ और $$C$$ गणना, हम अनुमान लगाते हैं $$x$$ जैसा $$ x^{(1)}= Tx^{(0)}+C $$: $$ x^{(1)}= \begin{bmatrix} 0 & -1/2 \\          -5/7 & 0 \\           \end{bmatrix} \begin{bmatrix} 1 \\          1 \\           \end{bmatrix} +       \begin{bmatrix} 11/2 \\          13/7 \\        \end{bmatrix} =       \begin{bmatrix} 5.0 \\          8/7 \\        \end{bmatrix} \approx \begin{bmatrix} 5 \\          1.143 \\        \end{bmatrix} .$$ अगला पुनरावृत्ति निम्न है $$ x^{(2)}= \begin{bmatrix} 0 & -1/2 \\          -5/7 & 0 \\           \end{bmatrix}

\begin{bmatrix} 5.0 \\          8/7 \\           \end{bmatrix} +       \begin{bmatrix} 11/2 \\          13/7 \\        \end{bmatrix} =        \begin{bmatrix} 69/14 \\          -12/7 \\        \end{bmatrix} \approx \begin{bmatrix} 4.929 \\          -1.714 \\        \end{bmatrix} .$$ यह प्रक्रिया अभिसरण तक दोहराई जाती है (यानी, जब तक $$\|Ax^{(n)} - b\|$$ छोटा है)। 25 पुनरावृत्तियों के बाद समाधान है
 * $$ x=\begin{bmatrix}

7.111\\ -3.222 \end{bmatrix} .$$

उदाहरण 2
मान लीजिए कि हमें निम्नलिखित रैखिक प्रणाली दी गई है:



\begin{align} 10x_1 -  x_2 +  2x_3 & = 6, \\ -x_1 + 11x_2 -  x_3 + 3x_4 & =  25, \\ 2x_1- x_2+  10x_3 -  x_4 & =  -11, \\ 3x_2 -  x_3 +  8x_4 & =  15. \end{align} $$ अगर हम चुनते हैं $(0, 0, 0, 0)$ को प्रारंभिक सन्निकटन के रूप में, तो प्रथम सन्निकट हल द्वारा दिया जाता है $$ \begin{align} x_1 & = (6 + 0 - (2 * 0)) / 10 = 0.6, \\ x_2 & = (25 + 0 + 0 - (3 * 0)) / 11 = 25/11 = 2.2727, \\ x_3 & = (-11 - (2 * 0) + 0 + 0) / 10 = -1.1,\\ x_4 & = (15 - (3 * 0) + 0) / 8 = 1.875. \end{align} $$ प्राप्त सन्निकटनों का उपयोग करते हुए, पुनरावृत्त प्रक्रिया को तब तक दोहराया जाता है जब तक कि वांछित सटीकता प्राप्त नहीं हो जाती। निम्नलिखित पाँच पुनरावृत्तियों के बाद अनुमानित समाधान हैं।

व्यवस्था का सटीक समाधान है $(1, 2, &minus;1, 1)$.

पायथन उदहारण

 * 1) import numpy as np
 * 2) ITERATION_LIMIT = 1000
 * 3) initialize the matrix
 * 4) A = np.array([[10., -1., 2., 0.],
 * 5) [-1., 11., -1., 3.],
 * 6) [2., -1., 10., -1.],
 * 7) [0.0, 3., -1., 8.]])
 * 8) initialize the RHS vector
 * 9) b = np.array([6., 25., -11., 15.])
 * 10) prints the system
 * 11) print("System:")
 * 12) for i in range(A.shape[0]):
 * 13) row = [f"{A[i, j]}*x{j + 1}" for j in range(A.shape[1])]
 * 14) print(f'{" + ".join(row)} = {b[i]}')
 * 15) print
 * 16) x = np.zeros_like(b)
 * 17) for it_count in range(ITERATION_LIMIT):
 * 18) if it_count != 0:
 * 19) print(f"Iteration {it_count}: {x}")
 * 20) x_new = np.zeros_like(x)
 * 21) for i in range(A.shape[0]):
 * 22) s1 = np.dot(A[i, :i], x[:i])
 * 23) s2 = np.dot(A[i, i + 1:], x[i + 1:])
 * 24) x_new[i] = (b[i] - s1 - s2) / A[i, i]
 * 25) if x_new[i] == x_new[i-1]:
 * 26) break
 * 27) if np.allclose(x, x_new, atol=1e-10, rtol=0.):
 * 28) break
 * 29) x = x_new
 * 30) print("Solution: ")
 * 31) print(x)
 * 32) error = np.dot(A, x) - b
 * 33) print("Error:")
 * 34) print(error)

भारित जैकोबी विधि
भारित जैकोबी पुनरावृत्ति, पुनरावृत्ति की गणना करने के लिए एक पैरामीटर $$\omega$$ का उपयोग करता है


 * $$ \mathbf{x}^{(k+1)} = \omega D^{-1} (\mathbf{b} - (L+U) \mathbf{x}^{(k)}) + \left(1-\omega\right)\mathbf{x}^{(k)}$$

$$\omega = 2/3$$ के साथ अत्यधिक उपयोग होने के कारण संबंध $$ L + U = A - D $$ से इसे $$ \mathbf{x}^{(k+1)} = \omega D^{-1} \mathbf{b} + \left( I - \omega D^{-1} A \right) \mathbf{x}^{(k)} $$ के रूप में भी व्यक्त किया जा सकता है।

सममित सकारात्मक निश्चित मामले में अभिसरण
इस मामले में कि सिस्टम आव्यूह $$ A $$ सममित सकारात्मक-निश्चित प्रकार का है, कोई अभिसरण दिखा सकता है।

माना $$ C=C_\omega = I-\omega D^{-1}A $$ पुनरावृति मैट्रिक्स हो और फिर $$ \rho(C_\omega) < 1 \quad \Longleftrightarrow \quad 0 < \omega < \frac{2}{\lambda_\text{max} (D^{-1}A)} \,, $$ के लिए अभिसरण की गारंटी दी जाती है, जहां $$ \lambda_\text{max} $$अधिकतम एगेनवैल्यू है|

$$ \omega = \omega_\text{opt} $$ के अनुसार किसी विशेष विकल्प के लिए वर्णक्रमीय त्रिज्या को कम किया जा सकता है | $$ \min_\omega \rho (C_\omega) = \rho (C_{\omega_\text{opt}}) = 1-\frac{2}{\kappa(D^{-1}A)+1} \quad \text{for} \quad \omega_\text{opt} := \frac{2}{\lambda_\text{min}(D^{-1}A)+\lambda_\text{max}(D^{-1}A)} \,, $$ जंहा एक $$ \kappa $$ स्थिति संख्या आव्यूह है।

यह भी देखें

 * गॉस-सीडेल विधि
 * लगातार अति-विश्राम
 * इटरेटिव मेथड # लीनियर सिस्टम | इटरेटिव मेथड § लीनियर सिस्टम
 * विश्वास प्रचार#गाऊसी विश्वास प्रसार .28GaBP.29
 * मैट्रिक्स विभाजन

बाहरी संबंध

 * Jacobi Method from www.math-linux.com
 * Jacobi Method from www.math-linux.com
 * Jacobi Method from www.math-linux.com