# 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𝐱 = 𝐛
Olmak üzere:
A=[ a_11 amp; a_12 amp; ⋯ amp; a_1n; a_21 amp; a_22 amp; ⋯ amp; a_2n; ⋮ amp; ⋮ amp; ⋱ amp; ⋮; a_n1 amp; a_n2 amp; ⋯ amp; a_nn ], 𝐱 = [ x_1; x_2; ⋮; x_n ] , 𝐛 = [ b_1; b_2; ⋮; b_n ].
"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 = [ a_11 amp; 0 amp; ⋯ amp; 0; 0 amp; a_22 amp; ⋯ amp; 0; ⋮ amp; ⋮ amp; ⋱ amp; ⋮; 0 amp; 0 amp; ⋯ amp; a_nn ], L = [ 0 amp; 0 amp; ⋯ amp; 0; a_21 amp; 0 amp; ⋯ amp; 0; ⋮ amp; ⋮ amp; ⋱ amp; ⋮; a_n1 amp; a_n2 amp; ⋯ amp; 0 ], U = [ 0 amp; a_12 amp; ⋯ amp; a_1n; 0 amp; 0 amp; ⋯ amp; a_2n; ⋮ amp; ⋮ amp; ⋱ amp; ⋮; 0 amp; 0 amp; ⋯ amp; 0 ]. 
Lineer denklem sistemini tekrar yazarsak,
(D+ωL) 𝐱 = ω𝐛 - [ωU + (ω-1) D ] 𝐱 
"ω" > 1'den olmak üzere, w "relaxation factor"dü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;
 𝐱^(k+1) = (D+ωL)^-1 (ω𝐛 - [ωU + (ω-1) D ] 𝐱^(k))=L_w 𝐱^(k)+𝐜. 
Fakat, ("D"+"ωL") üçgensel formundan yararlanılarak, x("k"+1)'in elementleri forward substitution yöntemiyle bulunabilir.
 x^(k+1)_i = (1-ω)x^(k)_i + ω/a_ii (b_i - ∑_j lt;i a_ijx^(k+1)_j - ∑_j gt;i a_ijx^(k)_j ), i=1,2,…,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 ρ(L_ω) lt;1 için 0 lt;ω lt;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, ω<br>
Çıktılar: ϕ
ϕ başlangıç tahmini olarak alırsak <br>
tekrar et yakınsayana kadar.
for i from 1 until n do
σ←0
for j from 1 until n do
if j ≠ i then
 σ←σ+ a_ij ϕ_j 
end if
end (j-loop)
 ϕ_i ←(1-ω)ϕ_i + ω/a_ii (b_i - σ)
end (i-loop)
yakınsamaya ulaşınca kontrol et.
end (repeat)
Not: (1-ω)ϕ_i + ω/a_ii (b_i - σ) işlemi ϕ_i + ω( b_i - σ/a_ii - ϕ_i) ş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=(D/ω+L)1/2-ωD^-1(D/ω+U),
iterasyon metodu da şu şekildedir;
𝐱^k+1=𝐱^k-γ^k P^-1(A𝐱^k-𝐛), k ≥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^SOR_n+1=(1-ω)x^SOR_n+ωf(x^SOR_n).
Lineer denklem sistemlerini çözmek için yukarıda gösterilen formül,x’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;
 𝐱^(k+1) = (1-ω)𝐱^(k) + ωL_*^-1 (𝐛 - U𝐱^(k)). 
 Yavaş yaklaşım işlemini hızlandırmak için ω gt;1 değeri kullanılır eğer değer ω lt;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 ω 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.