जैकोबी आइजेनवैल्यू एल्गोरिथम

संख्यात्मक रैखिक बीजगणित में जैकोबी आइजेनवैल्यू एल्गोरिथ्म वास्तविक संख्या सममित मैट्रिक्स (एक प्रक्रिया जिसे मैट्रिक्स डायगोनलाइज़ेशन के रूप में जाना जाता है) के आइजेनवैल्यू और आइजन्वेक्टर की गणना के लिए पुनरावृत्त विधि है। इसका नाम कार्ल गुस्ताव जैकब जैकोबी के नाम पर रखा गया है जिन्होंने पहली बार सन 1846 में इस पद्धति का प्रस्ताव रखा था। लेकिन सन 1950 के दशक में कंप्यूटर के आगमन के साथ ही इसका व्यापक रूप से उपयोग किया जाने लगा।

विवरण
माना कि $$S$$ सममित मैट्रिक्स और $$G=G(i,j,\theta)$$, गिवेंस रोटेशन मैट्रिक्स हो। तब:


 * $$S'=G S G^\top \, $$

सममित और समान (रैखिक बीजगणित) $$S$$ है।

अन्य, $$S^\prime$$ प्रविष्टियाँ हैं:


 * $$\begin{align}

S'_{ii} &= c^2\, S_{ii} -  2\, s c \,S_{ij}  +  s^2\, S_{jj} \\ S'_{jj} &= s^2 \,S_{ii} +  2 s c\, S_{ij}  +  c^2 \, S_{jj} \\ S'_{ij} &= S'_{ji} = (c^2 - s^2 ) \, S_{ij} +  s c \, (S_{ii} - S_{jj} ) \\ S'_{ik} &= S'_{ki} = c \, S_{ik} -  s \, S_{jk} & k \ne i,j \\ S'_{jk} &= S'_{kj} = s \, S_{ik} + c \, S_{jk} & k \ne i,j \\ S'_{kl} &= S_{kl} &k,l \ne i,j \end{align}$$ जहाँ $$s=\sin(\theta)$$ और $$c=\cos(\theta)$$

जब से $$G$$ का अर्थ ऑर्थोगोनल है, $$S$$ और $$S^\prime$$ समान फ्रोबेनियस मानदंड $$||\cdot||_F$$ (सभी घटकों के वर्गों का वर्गमूल योग) है जबकि हम $$\theta$$ चुन सकते हैं तथा यह इस प्रकार है कि $$S^\prime_{ij}=0$$, इस स्थिति में $$S^\prime$$ विकर्ण पर वर्गों का योग बड़ा है:


 * $$ S'_{ij} = \cos(2\theta) S_{ij} + \tfrac{1}{2} \sin(2\theta) (S_{ii} - S_{jj}) $$

इसे 0 के बराबर सेट करें और पुनर्व्यवस्थित करें:


 * $$ \tan(2\theta) = \frac{2 S_{ij}}{S_{jj} - S_{ii}} $$

यदि $$ S_{jj} = S_{ii} $$
 * $$ \theta = \frac{\pi} {4} $$

इस प्रभाव को अनुकूलित करने के लिए, Sij सबसे बड़े निरपेक्ष मान वाला ऑफ-विकर्ण तत्व होना चाहिए जिसे पिवोट कहा जाता है।

जैकोबी आइजेनवैल्यू विधि जैकोबी को तब तक बार-बार घुमाती है जब तक कि मैट्रिक्स लगभग विकर्ण न हो जाए। इसके पश्चात विकर्ण में तत्व S के (वास्तविक) स्वदेशी मानों के सन्निकटन हैं।

अभिसरण
यदि $$ p = S_{kl} $$ पिवोट तत्व है तब परिभाषा के अनुसार  $$ 1 \le i, j \le n, i \ne j$$ के लिए $$ |S_{ij} | \le |p| $$ है। माना कि $$\Gamma(S)^2$$ की सभी ऑफ-विकर्ण प्रविष्टियों के वर्गों का योग $$S$$ निरूपित करें। जब से $$S$$, $$ 2N := n(n-1) $$ निश्चित  है, हमारे पास ऑफ-विकर्ण तत्व  $$  p^2 \le \Gamma(S )^2 \le 2 N p^2 $$ या $$  2 p^2 \ge \Gamma(S )^2 / N $$ है। अब $$\Gamma(S^J)^2=\Gamma(S)^2-2p^2$$। यह संकेत $$  \Gamma(S^J )^2  \le  (1 - 1 / N ) \Gamma (S )^2  $$ या  $$  \Gamma (S^ J )  \le (1 - 1 / N )^{1 / 2} \Gamma(S ) 	$$ करता है;

अर्थात् जैकोबी घूर्णन का क्रम एक कारक द्वारा कम से कम रैखिक रूप से $$ (1 - 1 / N )^{1 / 2} $$ विकर्ण मैट्रिक्स के लिए परिवर्तित होता है।

$$ N $$ की एक संख्या जैकोबी रोटेशन को स्वीप कहा जाता है; माना कि $$ S^{\sigma} $$परिणाम निरूपित करें। पिछला अनुमान उत्पन्न करता है।
 * $$ \Gamma(S^{\sigma} )  \le  \left(1 - \frac{1}{N} \right)^{N / 2} \Gamma(S )  $$;

अर्थात् स्वीप का क्रम कारक ≈ के साथ कम से कम रैखिक रूप $$ e ^{1 / 2}$$ से परिवर्तित होता है

जबकि अर्नोल्ड शॉनहेज का निम्नलिखित परिणाम स्थानीय रूप से द्विघात अभिसरण उत्पन्न करता है। इस प्रयोजन के लिए मान लीजिए कि S के पास m विशिष्ट आइजेनवैल्यू $$  \lambda_1, ..., \lambda_m $$ बहुलता के साथ  $$  \nu_1, ... , \nu_m $$​​​​हैं और मान लीजिए कि d > 0 दो अलग-अलग आइजेनवैल्यू ​​​​की सबसे छोटी दूरी है। आइए हम कुछ नंबर को प्रयोग करें


 * $$ N_S := \frac{n (n - 1)}{2}  - \sum_{\mu = 1}^{m} \frac{1}{2} \nu_{\mu} (\nu_{\mu} - 1) \le N  $$

जैकोबी शॉनहेज-स्वीप रोटेशन करता है। यदि तब $$ S^ s $$ परिणाम को दर्शाता है
 * $$ \Gamma(S^ s ) \le\sqrt{\frac{n}{2} - 1} \left(\frac{\gamma^2}{d - 2\gamma}\right), \quad \gamma :=  \Gamma(S )  $$.

इस प्रकार अभिसरण शीघ्र ही द्विघात हो जाता है $$ \Gamma(S ) < \frac{d}{2 + \sqrt{\frac{n}{2} - 1}} $$

लागत
प्रत्येक जैकोबी घूर्णन O(n) चरणों में किया जा सकता है जब पिवोट तत्व p ज्ञात हो। जबकि p की खोज के लिए सभी N≈$1⁄2$ n2 ऑफ-विकर्ण तत्व के निरीक्षण की आवश्यकता होती है। यदि हम एक अतिरिक्त सूचकांक सरणी प्रस्तुत करते हैं तो हम इसे O(n) जटिलता तक भी कम कर सकते हैं $$ m_1, \, \dots \,, \, m_{n - 1} $$ उस संपत्ति के साथ $$ m_i $$ वर्तमान S की पंक्ति i, (i = 1, ..., n − 1) में सबसे बड़े तत्व का सूचकांक है। इसके पश्चात पिवोट के सूचकांक (k, l) जोड़े में से एक होना चाहिए $$ (i, m_i) $$. इसके अतिरिक्त सूचकांक सरणी का अद्यतनीकरण O(n) औसत-केस जटिलता में किया जा सकता है: सबसे अद्यतन पंक्तियों k और l में अधिकतम प्रविष्टि O(n) चरणों में पाई जा सकती है। अन्य पंक्तियों में केवल कॉलम k और l में प्रविष्टियाँ परिवर्तित  होता हैं। इन पंक्तियों पर लूपिंग यदि $$ m_i $$ न तो k है और न ही l, यह पुराने अधिकतम $$  m_i $$ की तुलना करने के लिए पर्याप्त है नई प्रविष्टियों और अद्यतन के लिए $$  m_i $$ यदि आवश्यक है। यदि $$  m_i $$ k या l के बराबर होना चाहिए और अद्यतन के समय संबंधित प्रविष्टि कम हो गई है एवं अधिकतम पंक्ति i को O(n) जटिलता में स्क्रैच से पाया जाना चाहिए। जबकि ऐसा प्रति रोटेशन औसतन केवल एक बार होगा। इस प्रकार प्रत्येक रोटेशन में O(n) और एक स्वीप O(n)3 होता है) औसत-केस जटिलता जो मैट्रिक्स गुणन के सामान है। इसके अतिरिक्त प्रक्रिया आरम्भ होने से पहले $$ m_i $$ आरंभ किया जाना चाहिए, जिसे n 2 चरणों में किया जा सकता है।

सामान्य रूप से जैकोबी पद्धति कम संख्या में स्वीप के बाद संख्यात्मक परिशुद्धता के भीतर परिवर्तित हो जाती है। ध्यान दें कि $$N_S < N$$ एकाधिक आइजेनवैल्यू ​​​​पुनरावृत्तियों की संख्या को कम कर देते हैं।

एल्गोरिथम
निम्नलिखित एल्गोरिदम गणित जैसे नोटेशन में जैकोबी पद्धति का विवरण है।

यह वेक्टर e की गणना करता है जिसमें आइजेनवैल्यू ​​​​और मैट्रिक्स E होता है जिसमें संबंधित आइजेनवेक्टर होते हैं; वह है, $$ e_i $$ आइजेनवैल्यू है और स्तंभ $$ E_i $$ के लिए ऑर्थोनॉर्मल आइजेनवेक्टर $$ e_i $$, I = 1, ..., n है।

procedure jacobi(S ∈ Rn×n; out e ∈ Rn; out E ∈ Rn×n) var i, k, l, m, state ∈ N s, c, t, p, y, d, r ∈ R ind ∈ Nn    changed ∈ Ln   function maxind(k ∈ N) ∈ N! index of largest off-diagonal element in row k    m:= k+1 for i:= k+2 to n do if │Ski│ > │Skm│ then m:= i endif endfor return m  endfunc

procedure update(k ∈ N; t ∈ R)! update ek and its status y:= ek; ek:= y+t if changedk and (y=ek) then changedk:= false; state:= state−1 elsif (not changedk) and (y≠ek) then changedk:= true; state:= state+1 endif endproc

procedure rotate(k,l,i,j ∈ N)! perform rotation of Sij, Skl │Skl│   │c  −s││Skl│ │ undefined│ := │    ││ undefined│ │Sij│   │s   c││Sij│ └ undefined┘   └     ┘└ undefined┘ endproc ! init e, E, and arrays ind, changed E:= I; state:= n  for k:= 1 to n do indk:= maxind(k); ek:= Skk; changedk:= true endfor while state≠0 do! next rotation m:= 1! find index (k,l) of pivot p    for k:= 2 to n−1 do if │Sk indk│ > │Sm indm│ then m:= k endif endfor k:= m; l:= indm; p:= Skl ! calculate c = cos φ, s = sin φ y:= (el−ek)/2; d:= │y│+√(p2+y2) r:= √(p2+d2); c:= d/r; s:= p/r; t:= p2/d if y<0 then s:= −s; t:= −t endif Skl:= 0.0; update(k,−t); update(l,t) ! rotate rows and columns k and l    for i:= 1 to k−1 do rotate(i,k,i,l) endfor for i:= k+1 to l−1 do rotate(k,i,i,l) endfor for i:= l+1 to n do rotate(k,i,l,i) endfor ! rotate eigenvectors for i:= 1 to n do ┌ undefined┐   ┌     ┐┌ undefined┐ │Eik│   │c  −s││Eik│ │ undefined│ := │    ││ undefined│ │Eil│   │s   c││Eil│ └ undefined┘   └     ┘└ undefined┘ endfor ! update all potentially changed indi for i:= 1 to n do indi:= maxind(i) endfor loop endproc

टिप्पणियाँ
1. परिवर्तित तार्किक सरणी प्रत्येक आइजेनवैल्यू की स्थिति रखती है। यदि पुनरावृत्ति के समय $$ e_k $$ या $$ e_l $$ का संख्यात्मक मान परिवर्तित होता है तो परिवर्तित का संबंधित घटक true पर सेट होता है अन्यथा false पर। पूर्णांक स्थिति परिवर्तित घटकों की संख्या की गणना करती है जिनका मान true है। जैसे ही अवस्था = 0 होने पर पुनरावृत्ति रुक जाती है। इसका अर्थ यह है कि किसी भी सन्निकटन $$ e_1,\, ...\,, e_n $$ ने हाल ही में अपना मूल्य परिवर्तित नहीं किया है और इस प्रकार यह बहुत संभावना नहीं है कि यदि पुनरावृत्ति जारी रहती है तो ऐसा होगा। यहां यह माना जाता है कि फ़्लोटिंग पॉइंट ऑपरेशंस को इष्टतम रूप से निकटतम फ़्लोटिंग पॉइंट नंबर तक पूर्णांकित किया जाता है।

2. मैट्रिक्स S का ऊपरी त्रिकोण नष्ट हो गया है जबकि निचला त्रिकोण और विकर्ण अपरिवर्तित हैं। इस प्रकार यदि आवश्यक हो तो S को पुनर्स्थापित करना संभव है,

for k:= 1 to n−1 do! restore matrix S for l:= k+1 to n do Skl:= Slk    endfor endfor

3. आइजेनवैल्यू आवश्यक रूप से अवरोही क्रम में नहीं हैं। इसे सरल श्रेणीबद्ध एल्गोरिदम द्वारा प्राप्त किया जा सकता है।

for k:= 1 to n−1 do m:= k for l:= k+1 to n do if el > em then m:= l endif endfor if k ≠ m then swap em,ek        swap Em,Ek     endif endfor

4. एल्गोरिथ्म मैट्रिक्स नोटेशन (0 आधारित के स्थान पर 1 आधारित सरणियाँ) का उपयोग करके लिखा गया है।

5. एल्गोरिदम लागू करते समय, मैट्रिक्स नोटेशन का उपयोग करके निर्दिष्ट भाग को एक साथ निष्पादित किया जाना चाहिए।

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

उदाहरण
माना कि $$	S = \begin{pmatrix} 4 & -30 & 60 & -35 \\ -30 & 300 & -675 & 420 \\ 60 & -675 & 1620 & -1050 \\ -35 & 420 & -1050 & 700 \end{pmatrix} $$ इसके पश्चात जैकोबी 3 स्वीप (19 पुनरावृत्तियों) के पश्चात निम्नलिखित आइजेनवैल्यू ​​​​और आइजेनवेक्टर का उत्पादन करता है:

$$	e_1 = 2585.25381092892231 $$

$$	E_1 = \begin{pmatrix}0.0291933231647860588\\ -0.328712055763188997\\ 0.791411145833126331\\ -0.514552749997152907\end{pmatrix} $$

$$	e_2 = 37.1014913651276582 $$

$$	E_2 = \begin{pmatrix}-0.179186290535454826\\ 0.741917790628453435\\ -0.100228136947192199\\ -0.638282528193614892\end{pmatrix} $$

$$	e_3 = 1.4780548447781369 $$

$$	E_3 = \begin{pmatrix}-0.582075699497237650\\ 0.370502185067093058\\ 0.509578634501799626\\ 0.514048272222164294\end{pmatrix} $$

$$	e_4 = 0.1666428611718905 $$

$$	E_4 = \begin{pmatrix}0.792608291163763585\\ 0.451923120901599794\\ 0.322416398581824992\\ 0.252161169688241933\end{pmatrix} $$

वास्तविक सममित आव्यूहों के लिए अनुप्रयोग
जब एक सममित मैट्रिक्स के आइजेनवैल्यू ​​​​(और आइजेनवेक्टर) ज्ञात होते हैं तो निम्नलिखित मूल्यों की गणना सरलता से की जाती है।


 * एकवचन मान
 * (वर्ग) मैट्रिक्स का एकवचन मान $$A$$ के (गैर-नकारात्मक) आइजेनवैल्यू ​​​​$$ A^T A $$ के वर्गमूल हैं। सममित मैट्रिक्स की स्थिति में $$S$$ हमारे पास $$ S^T S = S^2 $$ है। इसलिए के विलक्षण मूल्य $$S$$ के आइजेनवैल्यू ​​​​$$S$$ के पूर्ण मूल्य हैं।


 * 2-मानदंड और वर्णक्रमीय त्रिज्या
 * मैट्रिक्स A का 2-मानदंड यूक्लिडियन वेक्टरनॉर्म पर आधारित मानदंड है; अर्थात सबसे बड़ा मूल्य $$ \| A x\|_2 $$ जब x सभी सदिशों $$ \|x\|_2 = 1 $$ से होकर गुजरता है। यह $$A$$ का सबसे बड़ा एकल मूल्य है। एक सममित मैट्रिक्स की स्थिति में यह इसके आइजेनवेक्टर का सबसे बड़ा निरपेक्ष मान है और इस प्रकार यह इसके वर्णक्रमीय त्रिज्या के बराबर है।


 * स्थिति संख्या
 * गैर-एकवचन मैट्रिक्स $$A$$ की स्थिति संख्या को $$ \mbox{cond} (A) = \| A \|_2 \| A^{-1}\|_2 $$ के रूप में परिभाषित किया जाता है। सममित मैट्रिक्स की स्थिति में यह सबसे बड़े और सबसे छोटे आइजेनवैल्यू के भागफल का निरपेक्ष मान है। बड़ी स्थिति संख्याओं वाले मैट्रिक्स संख्यात्मक रूप से अस्थिर परिणाम उत्पन्न कर सकते हैं: छोटी गड़बड़ी के परिणामस्वरूप बड़ी त्रुटियां हो सकती हैं। हिल्बर्ट मैट्रिक्स सबसे प्रसिद्ध खराब स्थिति वाले मैट्रिक्स हैं। उदाहरण के लिए, चौथे क्रम के हिल्बर्ट मैट्रिक्स की स्थिति 15514 है जबकि क्रम 8 के लिए यह 2.7 × 108 है।


 * रैंक
 * मैट्रिक्स $$A$$ की रैंक $$r$$ है यदि यह $$r$$ स्तंभ जो रैखिक रूप से स्वतंत्र होते हैं जबकि शेष स्तंभ इन पर रैखिक रूप से निर्भर होते हैं। समान रूप से $$r$$ की सीमा का आयाम $$A$$ है। इसके अतिरिक्त यह शून्येतर एकवचन मानों की संख्या है।
 * सममित मैट्रिक्स की स्थिति में r गैर-शून्य आइजेनवैल्यू ​​​​की संख्या है। दुर्भाग्य से पूर्णांकन त्रुटियों के कारण शून्य आइजेनवैल्यू ​​​​का संख्यात्मक सन्निकटन शून्य नहीं हो सकता है (यह भी हो सकता है कि संख्यात्मक सन्निकटन शून्य हो जबकि वास्तविक मान शून्य न हो)। इस प्रकार कोई केवल यह निर्णय लेकर संख्यात्मक रैंक की गणना कर सकता है कि कौन सा स्वदेशी मान शून्य के सबसे निकट है।


 * छद्म-व्युत्क्रम
 * मैट्रिक्स का छद्म व्युत्क्रम $$A$$ अद्वितीय मैट्रिक्स $$ X = A^+ $$ है जिसके लिए $$AX$$ और $$XA$$ सममित हैं और जिसके लिए $$AXA = A, XAX = X$$ धारण करता है। यदि $$A$$ एकवचन नहीं है तो इसके पश्चात, यह $$ A^+ = A^{-1} $$।
 * जब प्रक्रिया जैकोबी (S, e, E) कहा जाता है, तो संबंध $$ S = E^T \mbox{Diag} (e) E $$ वह स्थान रखता है जहां Diag(e) विकर्ण पर वेक्टर e के साथ विकर्ण मैट्रिक्स को दर्शाता है। माना कि $$ e^+ $$ वेक्टर को निरूपित करें जहां $$ e_i $$ द्वारा $$ 1/e_i $$ प्रतिस्थापित किया जाता है यदि  $$ e_i \le 0 $$ और 0 से यदि  $$ e_i $$ (संख्यात्मक रूप से करीब) शून्य है। चूँकि मैट्रिक्स E ऑर्थोगोनल है इसलिए यह इस प्रकार है कि S का छद्म-व्युत्क्रम दिया गया है,   $$ S^+ = E^T \mbox{Diag} (e^+) E $$


 * न्यूनतम वर्ग समाधान
 * यदि मैट्रिक्स $$A$$ पूर्ण रैंक नहीं है तब रैखिक प्रणाली $$Ax=b$$ का कोई समाधान नहीं हो सकता है जबकि कोई इसके लिए वेक्टर x की खोज कर सकता है $$ \| Ax - b \|_2 $$ न्यूनतम है। $$ x = A^+ b $$ समाधान है। सममित मैट्रिक्स S की स्थिति में, पूर्व रूप से पास है $$ x = S^+ b = E^T \mbox{Diag} (e^+) E b $$.


 * मैट्रिक्स घातांक
 * $$ S = E^T \mbox{Diag} (e) E $$ से एक $$ \exp S = E^T \mbox{Diag} (\exp e) E $$ पाता है जहां exp $$e$$ वेक्टर जहां $$ e_i $$ है, $$ \exp e_i $$ द्वारा प्रतिस्थापित किया जाता है। उसी प्रकार से $$f(S)$$ किसी भी (विश्लेषणात्मक) फ़ंक्शन $$f$$ के लिए स्पष्ट रूप से से गणना की जा सकती है।


 * रैखिक विभेदक समीकरण
 * विभेदक समीकरण $$x'=Ax, x(0) =a$$ का समाधान $$x(t)=\exp(tA)$$ है। सममित मैट्रिक्स $$S$$ के लिए यह इस प्रकार है कि  $$ x(t) = E^T \mbox{Diag} (\exp t e) E a $$. यदि  $$ a = \sum_{i = 1}^n a_i E_i $$ का विस्तार है $$a$$ के आइजेनवेक्टर द्वारा $$S$$, तब $$ x(t) = \sum_{i = 1}^n a_i \exp(t e_i) E_i $$.
 * माना कि $$ W^s $$ के आइजेनवेक्टर $$S$$ द्वारा फैलाया गया सदिश समष्टि हो जो नकारात्मक आइजेनवैल्यू $$ W^u $$ के अनुरूप है और सकारात्मक आइजेनवैल्यू ​​​​के लिए अनुरूप है। यदि  $$ a \in W^s $$ तब $$ \mbox{lim}_{t \rightarrow \infty} x(t) = 0 $$; अर्थात संतुलन बिंदु 0 का आकर्षण $$x(t)$$ है। यदि $$ a \in W^u $$ तब $$ \mbox{lim}_{t \rightarrow \infty} x(t) = \infty $$; अर्थात् 0 प्रतिकारक है एवं $$x(t)$$. $$ W^s $$ और $$ W^u $$, $$S$$ के लिए स्थिर और अस्थिर मैनिफोल्ड कहलाते हैं। यदि $$a$$ दोनों रूपों में घटक होते हैं तो एक घटक आकर्षित होता है और एक घटक विकर्षित होता है। इस प्रकार $$x(t)$$ का संपर्क $$ W^u $$ जैसे $$ t \to \infty $$.

सामान्यीकरण
जैकोबी विधि को जटिल हर्मिटियन मैट्रिक्स, सामान्य गैर-सममित वास्तविक और जटिल मैट्रिक्स के साथ-साथ ब्लॉक मैट्रिक्स के लिए जैकोबी विधि में सामान्यीकृत किया गया है।

चूँकि वास्तविक मैट्रिक्स के एकवचन मान सममित मैट्रिक्स $$ S = A^T A$$ के आइजेनवैल्यू ​​​​के वर्गमूल होते हैं इसका उपयोग इन मानों की गणना के लिए भी किया जा सकता है। इस स्थिति के लिए विधि को इस प्रकार से संशोधित किया गया है कि S की स्पष्ट रूप से गणना नहीं की जानी चाहिए जिससे राउंड-ऑफ त्रुटियों का संकट कम हो जाता है। ध्यान दें कि $$ B \, := J A J^T $$ के साथ $$ J S J^T = J A^T A J^T = J A^T J^T J A J^T = B^T B $$,

जैकोबी पद्धति भी समानता के लिए उपयुक्त है।

अग्रिम पठन

 * Yousef Saad: "Revisiting the (block) Jacobi subspace rotation method for the symmetric eigenvalue problem", Numerical Algorithms, vol.92 (2023), pp.917-944. https://doi.org/10.1007/s11075-022-01377-w.
 * Yousef Saad: "Revisiting the (block) Jacobi subspace rotation method for the symmetric eigenvalue problem", Numerical Algorithms, vol.92 (2023), pp.917-944. https://doi.org/10.1007/s11075-022-01377-w.
 * Yousef Saad: "Revisiting the (block) Jacobi subspace rotation method for the symmetric eigenvalue problem", Numerical Algorithms, vol.92 (2023), pp.917-944. https://doi.org/10.1007/s11075-022-01377-w.
 * Yousef Saad: "Revisiting the (block) Jacobi subspace rotation method for the symmetric eigenvalue problem", Numerical Algorithms, vol.92 (2023), pp.917-944. https://doi.org/10.1007/s11075-022-01377-w.
 * Yousef Saad: "Revisiting the (block) Jacobi subspace rotation method for the symmetric eigenvalue problem", Numerical Algorithms, vol.92 (2023), pp.917-944. https://doi.org/10.1007/s11075-022-01377-w.
 * Yousef Saad: "Revisiting the (block) Jacobi subspace rotation method for the symmetric eigenvalue problem", Numerical Algorithms, vol.92 (2023), pp.917-944. https://doi.org/10.1007/s11075-022-01377-w.
 * Yousef Saad: "Revisiting the (block) Jacobi subspace rotation method for the symmetric eigenvalue problem", Numerical Algorithms, vol.92 (2023), pp.917-944. https://doi.org/10.1007/s11075-022-01377-w.

बाहरी संबंध

 * Matlab implementation of Jacobi algorithm that avoids trigonometric functions
 * C++11 implementation