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:

Olmak üzere:

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:

Lineer denklem sistemini tekrar yazarsak,

ω > 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;

Fakat, (D+ωL) üçgensel formundan yararlanılarak, x(k+1)'in elementleri forward substitution yöntemiyle bulunabilir.

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  matrisini simetrik ve pozitif tanımlamış olursa  için  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: 

 başlangıç tahmini olarak alırsak 
tekrar et yakınsayana kadar.
for i from 1 until n do

for j from 1 until n do
if j ≠ i then

end if
end (j-loop)

end (i-loop)
yakınsamaya ulaşınca kontrol et.
end (repeat)

Not:  işlemi  ş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,

Bu da Symmetric Successive Over-Relaxation, veya (SSOR) adını alır.

,

iterasyon  metodu da şu şekildedir;

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,

değiştirilmiş versiyonunda ise aşağıdaki form kullanılır,

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;

   Yavaş yaklaşım işlemini hızlandırmak için  değeri kullanılır eğer değer   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  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++

Lineer cebir