Sor metod

Successive Over-Relaxation (SOR) lineer denklem sistemlerini çözmek ve sonuca daha hızlı yakınsamak için sayısal lineer cebirde kullanılan bir çeşit Gauss- Seidel metodudur. Daha yavaş yakınsamalar içinse benzer bir metot olan iterative metot kullanılır. David M. Young, Jr. ve H.Frankel tarafından 1950 yılında lineer sistemlerini otomatik olarak bilgisayar yardımıyla bulunması amacıyla eş zamanlı olarak ortaya konulmuştur.Over-Relaxation Young ve Frankel öncesinde de kullanılıyordu. Lewis Fry Richardson ve R. V. Southwell tarafından ayrı ayrı bulunan metotlar bunlara örnek verilebilir.Ama, bu metotlar beşeri hesaplamalar için tasarlanmıştı ve onları bilgisayar programlamada uygulanamaz hale getiren bazı uzmanlıklar gereklidir. David M. Young, Jr. tezinde metotlara bu yönden yaklaşmıştır. ==Formülleme== Bilinmeyen x olmak üzere, n bilinmeyenli bir kare matris veriliyor: :A\mathbf x = \mathbf b Olmak üzere: :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 3 farklı kısma ayrılabilir.Bunlar: Köşegen Kısmı = D, and Alt üçgensel ve üst üçgensel kısım = L ve U: :A=D+L+U, :D = \begin{bmatrix} a_{11} & 0 & \cdots & 0 \\\ 0 & a_{22} & \cdots & 0 \\\ \vdots & \vdots & \ddots & \vdots \\\0 & 0 & \cdots & a_{nn} \end{bmatrix}, \quad L = \begin{bmatrix} 0 & 0 & \cdots & 0 \\\ a_{21} & 0 & \cdots & 0 \\\ \vdots & \vdots & \ddots & \vdots \\\a_{n1} & a_{n2} & \cdots & 0 \end{bmatrix}, \quad U = \begin{bmatrix} 0 & a_{12} & \cdots & a_{1n} \\\ 0 & 0 & \cdots & a_{2n} \\\ \vdots & \vdots & \ddots & \vdots \\\0 & 0 & \cdots & 0 \end{bmatrix}. Lineer denklem sistemini tekrar yazarsak, :(D+\omega L) \mathbf{x} = \omega \mathbf{b} - [\omega U + (\omega-1) D ] \mathbf{x} ω > 1'den olmak üzere, w relaxation factordür. successive over-relaxation bir iterative metot olarak sağ tarafta bulunan eski x değerini kullanarak sol taraftaki yeni x değerini bulmaya yardımcı olur.Analitik olarak, tekrar gösterirsek; : \mathbf{x}^{(k+1)} = (D+\omega L)^{-1} \big(\omega \mathbf{b} - [\omega U + (\omega-1) D ] \mathbf{x}^{(k)}\big)=L_w \mathbf{x}^{(k)}+\mathbf{c}. Fakat, (D+ωL) üçgensel formundan yararlanılarak, x(k+1)'in elementleri forward substitution yöntemiyle bulunabilir. : x^{(k+1)}_i = (1-\omega)x^{(k)}_i + \frac{\omega}{a_{ii}} \left(b_i - \sum_{ji} a_{ij}x^{(k)}_j \right),\quad i=1,2,\ldots,n. Relaxation faktörün ω seçilimi o kadar da kolay değildir, ve katsayılar matrisinin özelliklerine bağlıdır.1947'de, eğer Ostrowski A matrisini simetrik ve pozitif tanımlamış olursa \rho(L_\omega)<1 için 0<\omega<2 olduğu kanıtlanmış olur. Böylece iterasyon işleminin yakınsaması doğru olur, fakat biz yakınsamadan daha çok, hızlı yakınsama konusuyla ilgileniyoruz. == Algoritma == Sadece bir depolama vektörüne ihtiyaç duyulur ve endeksleme vektörü ihmal edilir çünkü bu algoritmayla hesaplanan değerler, elementlerin üzerine yazılır: Girdiler: A, b, ω Çıktılar: \phi \phi başlangıç tahmini olarak alırsak tekrar et yakınsayana kadar. :for i from 1 until n do ::\sigma \leftarrow 0 ::for j from 1 until n do :::if j ≠ i then :::: \sigma \leftarrow \sigma + a_{ij} \phi_j :::end if ::end (j-loop) :: \phi_i \leftarrow (1-\omega)\phi_i + \frac{\omega}{a_{ii}} (b_i - \sigma) :end (i-loop) :yakınsamaya ulaşınca kontrol et. end (repeat) Not: (1-\omega)\phi_i + \frac{\omega}{a_{ii}} (b_i - \sigma) işlemi \phi_i + \omega \left( \frac{b_i - \sigma}{a_{ii}} - \phi_i\right) şeklinde yazılır, Bu da her dış for döngüsünün iterasyonu için bir çarpım işleminden kurtarır. ==Simetrik successive over-relaxation== A simetrik matrisinin bir versiyonudur, : U=L^T,\, Bu da Symmetric Successive Over-Relaxation, veya (SSOR) adını alır. :P=\left(\frac{D}{\omega}+L\right)\frac{1}{2-\omega}D^{-1}\left(\frac{D}{\omega}+U\right), iterasyon metodu da şu şekildedir; :\mathbf{x}^{k+1}=\mathbf{x}^k-\gamma^k P^{-1}(A\mathbf{x}^k-\mathbf{b}),\ k \ge 0. SOR ve SSOR metotları David M. Young, Jr.. tarafından bulunmuştur. ==diğer uygulama alanları== Iterasyon metodunda da benzer teknik kullanılabilir. Eğer orijinal iterasyon aşağıdaki şu forma sahipse, :x_{n+1}=f(x_n) değiştirilmiş versiyonunda ise aşağıdaki form kullanılır, :x^\mathrm{SOR}_{n+1}=(1-\omega)x^{\mathrm{SOR}}_n+\omega f(x^\mathrm{SOR}_n). Lineer denklem sistemlerini çözmek için yukarıda gösterilen formül,’in tam vektör olması koşuluyla gerçekleşir. Eğer bu formül hesaplama da kullanılırsa, bir dahaki vektörün hesaplanması şu şekilde olur; : \mathbf{x}^{(k+1)} = (1-\omega)\mathbf{x}^{(k)} + \omega L_*^{-1} (\mathbf{b} - U\mathbf{x}^{(k)}). Yavaş yaklaşım işlemini hızlandırmak için \omega>1 değeri kullanılır eğer değer \omega<1 aralığındaysa ? değeri sapma iterasyon işleminin yakınsamasında veya overshooting işlemindeki yakınsamanın hızlanmasında kullanılır. Yakınsama işlemlerinin davranışlarına bağlı kalarak uyarlanılabilir relaxation parametresini \omega bulunabilecek çeşitli metotlar vardır. Bulunan parametreler sadece süper-lineer yakınsamalarda bazı problemler için kullanılır, geri kalan içinse değiştirilmesi gerekir. ==Ayrıca bakınız== *Jacobi method *Gaussian Belief Propagation *Matrix splitting ==Notlar== ==Kaynakça== * * Abraham Berman, Robert J. Plemmons, Nonnegative Matrices in the Mathematical Sciences, 1994, SIAM. ISBN 0-89871-321-8. * *Yousef Saad, Iterative Methods for Sparse Linear Systems , 1st edition, PWS, 1996. *Netlib 's copy of "Templates for the Solution of Linear Systems", by Barrett et al. * Richard S. Varga 2002 Matrix Iterative Analysis, Second ed. (of 1962 Prentice Hall edition), Springer-Verlag. * David M. Young, Jr. Iterative Solution of Large Linear Systems, Academic Press, 1971. (reprinted by Dover, 2003) ==Dış bağlantılar== *Module for the SOR Method * Tridiagonal linear system solver based on SOR, in C++ Kategori:Lineer cebir