Burada

Transkript

Burada
3.7 Gauss Siedel ydntemi
Bu yontern iterasyonla bilinmeyenleri bulma yontemidir. Esitlikler
sirasiyla baslangic degerlerinden yararlamlarak ardisik olarak cozulurler. Eger
denklemlerde siralama yonunden bir problem varsa oncelikle diger yontemlerde
oldugu gibi bu problem giderilir. Katsayilar matrisi olusturularak veya
olusturulmadan denklernler pivotlama isleminden gecirilir. Bu islemi yaptiktan
sonra birinci esitlikten birinci bilinmeyen (x.), ikinci esitlikten ikinci
bilinmeyen (X2) ve ucuncu esitlikten de ucuncu bilinmeyen (x.) v.s. cekilerek
denklernler yeniden duzenlenir. Daha sonra bilinmeyenlerin tamarruna birer
baslangic degeri ve iterasyonu durdurrnak icin bir durdurrna hata degerits)
verilerek iterasyona baslaruhr.
(3.99a)
s»
tsal Denklem Takimlantun C;oZUmYontemleri
105
(3.99b)
(3.9ge)
b" -
a".l·xl
- a".2 .X2 - .... -a"."_l·x"_l
(3.99d)
Bilinmeyenlere
bir baslangic degeri (hepsi sifir olarak almabilir)
_ . erek ilk esitlikten iterasyona baslarur. Aneak dikkat edilmesi gereken
- mli nokta, her bilinmeyen
cozulurken bir onceki iterasyonda bulunan en
bilinmeyen degeri bir sonraki esitlikte kullamlarak yakmsamamn hizh
1 saglanabilir.
Baslangic
degerleri,
x?, x~,
x~
olsun.
Bu
durumda
plarken birinei bilinmeyen haric diger turn bilinmeyenlerin
- ;ederi almarak hesaplama yapilacaktir.
ilk esitligi
yerine baslangic
(3.100a)
(3.100b)
(3. WOe)
a3,3
Bu ~ekilde· ardisik olarak bilinmeyenler
hesaplamr. Her iterasyon
- nunda asagidaki esitlikte verilen karsilasurma
yapilarak bilinmeyenlerin
nilen hata seviyesinin altina inip inmedigi kontrol edilir. Eger butun
~eyenlerbu
hata seviyesinin altmda bir degere ulasti ise iterasyon
-' durulur.
IX.,k+1 - Xk,
1<;,. (. = 1, 2 , ..., n) , (k = l'teras yon saYlsl )
co
1
(3.101)
Bir iteratif yontem olan Gauss Siedel yonteminde baslangic degerlerinin
arumma gore farkh bir yol da izlemek mlimktindlir. Bu yolda ilk iterasyonda
106 ______________________
Numerik Anali:
baslangic degerlerinin tamarru kullarulir. Yeni bulunan duzeltilmis degerler bir
sonraki iterasyonda kullamlarak da sonuca gidilebilir. Bu uygulama sekli
literattirde Jacobi iterasyon yontemi olarak da bilinmektedir. Bu yontemin
uygulamasmda birinci iterasyonda esitlik (3,100)' den farkh olarak asagidaki
esitlik (3.102) kullamhr. Her iterasyonda da ilk iterasyondakine benzer sekilde
eski degerlerin tamarru degistirilmeden kullamhr.
(3.102a)
b2
-a2,I'x~
-a2,3'x~
- .... -a2,n·X~
(3.l02b)
a2.2
(3.102c)
a3,3
Burada dikkat edilirse x~, x~, x~ butun esitliklerde kullarulmisnr.
Halbuki ilk uygulamada x~ degerinin hesaplanmasmdaki esitlik (3.100b)'den
farkli olarak, x: yerine x~ baslangic degeri kullamlmistir. Duzeltilmis
degerlerin kullarulmasi durumunda sonuclara ulasmak diger uygulamaya gore
daha kisa stirede gerceklesmesi beklenmelidir.
Gauss Siedel yontemi icin taslak program algoritrnasi asagidaki sekilde
diizenlenebilir.
Procedure Siedel( a, b, n, eps, maxit)
= 1, n
d = a(i,i)
DO j 1, n
aii.j) = a(i,j) / d
ENDDO
DO i
=
b(i)
= b(i)
/d
ENDDO
sw=O
iter=O
DO WHILE (iter-cmaxit)
sw=1
iter=iter+ 1
DO i=1,n
old=xii}
t=c(i)
and (sw=O)
DOj=1,n
IF i$j
t= t-a( i,j ) *x(j )
ENDIF
ENDDO
x(i)=l*t+( 1-I)old
IF sw=I ) and x(i)$O)
ea=ABS [(x( i)-old )/x( i) J * 100
IF eas-es) THEN sw=O
ENDIF
ENDDO
WEND
End Procedure
Dogrusal Denklem Takimlanrun
C;oziimYontemleri
107
Program 3.8 Gauss Siedel yonteminin bilgisayar progranu (Visual Basic)
Private Sub Form_Load()
Dim A(lO, JO), B( 10), X(20) As Single
n = Val(InputBox("Bilinmeyen Saytstru Giriniz. "))
Show
For i = 1 To n
For} = 1 To n
A(i, j) = Val(lnputBox("A(" + Str(i) + "," + Str(j) + ") Degerlerini
Print A(i,})
Next}
B(i) = Val(lnputBox("B(" + Str(i) + ")Degerini giriniz
\ Print B(i)
Next i
eps = Val(InputBox("Hata degerinitepsrgirinir "))
maxit = Val(InputBox("Maksimum iterayonsaytst girini; "))
X(l) = 0#
X(2) = 0#
X(3) = 0#
Rem --------bilinmeyenlerin katsaytstna bolme=:-:
For i = 1 To n
d=A(i,i)
For} = 1To n
A(i,}) = A(i,}) / d
Next}
B(i) = B(i) / d
Next i
sw = a
iter = a
Rem ------ ---- ----- --------------_-_
While (iter < maxit) And (sw = 0)
sw = 1
iter = iter + 1
Print "iterasyon saytst ."; iter
Fori
1To n
old = XCi)
XCi) = B(i)
For} = 1 Ton
1fi <>} Then X(i) = XCi) - A(i,}) * X(j)
Next}
If Abs(X(i) - old) > eps Then sw = a
Print XCi);
Next i
Wend
End Sub
"»
=
giriniz."ll
-
108
NumerikAnaliz
Ornek 3.10
Asagidaki denklem takirrum iteratif bir yontem olan Gauss Siedel yontemi ile
cozunuz. Cozum esnasmda baslangic degerlerini x~ = 0 ve x~ = 0 alarak hep
yeni degerlerle degistirerek iterasyona devam ediniz. Bulunan degisken
degerleri arasmdaki mutlak hata degeri en az £=0.001 olacak sekilde iterasyonu
siirdtiriiniiz.
5XI
+ 2X2 + X3 =
12
x, + 2X2 + X3 = 8
2XI
+ X2 + 4X3
Cozum
x~
= 16
:
=0
£=0.005
iterasyon = 1
X: = 12-2.x~
-(l.x~) = 12-2(0)-1(0)
5
= 2.4
5
8-l.x: -l.x~ = 8-1(2.4) -1(0) = 2.8
2
2
x~ = 16-2.x: -(l.x~) = 16-2(2.4)-1(2.8) = 2.1
4
4
iterasyon = 1
x ~ = 12- 2(2.8)-1(2.1)
= 0.86
5
X; = 8 -1(0.86) -1(2.1) = 2.52
2
x~ = 16- 2(0.86)-1(2.52) = 2.94
4
Dogrusal Denklem Takimlannin
90ziim Yontemleri
109
iterasyon sayisim artirarak benzer sekilde bilinmeyenleri ardisik olarak
esaplayacak olursak asagidaki tabloda gosterilen degerler bulunabilir.
iterasyon
Xl
X2
X3
0
0
0
0
1
2.4
2.8
2.1
2
0.86
2.52
2.94
3
0.804
2.128
3.066
4
0.9356
1.9992
3.0324
5
0.99384
1.98688
3.00636
6
1.003976
1.994832
2.999304
7
1.002206
1.999245
2.999086
8
1.000485
2.000215
2.999704
9
0.9999735
2.000161
2.999973
Ornek 3.11
Asagidaki denklem takmuru iteratif bir yontem olan Gauss Siedel yontemi ile
Excel prograrruru kullanarak cozunuz. Cozum esnasinda baslangic degerlerini
x~ = 0 ve x~ = 0 alarak hep yeni degerlerle degistirerek iterasyona devam
ediniz. Bulunan degisken degerleri arasmdaki mutlak hata degeri en az £=0.001
olacak sekilde iterasyonu sUrdUrUnUz.
-Xl
+ 2X2 + X3 =
XI
+ 2X2 + X3 = 8
_~I
+ X2 + 4X3 =
12
16

Benzer belgeler

Evren :"Bir kifi

Evren :"Bir kifi ~ur, ya da c;ok azder. Bu ba· lumdan hiikiimet odeme ka· ran ahrken bu durumu goz '~nilne alacakllr."

Detaylı

Sorular2

Sorular2 altında çözümünün olmadıgını gösteriniz. S39 xux + 2x2 uy − u = x2 ex denklemini u(x, x2 + x) = sin2 x koşulu altında çözümünün oldug̃unu gösteriniz ve çözümü bulunuz. S40 x2 + y 2...

Detaylı