Gauss Eliminasyonu

advertisement
Gauss Eliminasyonu
Lineer denklem sistemlerini çözmede kullanılan en popüler tekniklerden birisi Gauss
Eliminasyonu yöntemidir. Bu yöntem genel bir n denklemli ve n bilinmeyenli lineer
sistemin çözümüne bir yaklaşım getirmektedir.
a11 x1  a12 x2  a13 x3  ...  a1n xn  b1
a21 x1  a22 x2  a23 x3  ...  a2 n xn  b2
.
.
.
.
.
.
an1 x1  an 2 x2  an 3 x3  ...  ann xn  bn
Gauss Eliminasyonu iki adımdan oluşur:
1. Bilinmeyenlerin ileriye doğru yok edilmesi (Forward Elimination): Bu adımda, ilk
denklemden sonra sırayla herbir denklemdeki bilinmeyenler ardışık şekilde yok
edilerek en son denklemde tek bilinmeyen kalana kadar işleme devam edilir.
2. Geriye doğru Yerine Koyma (Back Substitution):
başlayarak herbir bilinmeyen bulunur.
Bu adımda, son denklemden
Forward Elimination:
Bu adımda ilk olarak birinci bilinmeyen, x1 , ilk satır hariç alttaki tüm satırlarda yok edilir.
x1 ‘i ikinci denklemde yok etmek için ilk denklem a 21 / a11 , ( a11  0 ) ile çarpılıp ikinci
denklemden çıkarılır. Yani ikinci denklem,




a
a
a
 a 22  21 a12  x 2  ...   a 2 n  21 a1n  x n  b2  21 b1
a11
a11
a11




veya
a22 x2  ...  a2 n xn  b2
Halini alır, burada diğer katsayılar şöyledir:
a
a22  a22  21 a12
a11

a21
a1n
a11
x1 ’i yok etme prosedürü diğer satırlar için de benzer şekilde tekrar edildiğinde denklem
sistemi aşağıdaki biçime indirgenir:
a2 n  a2 n 
04.06.1
04.06.2
Chapter 04.06
a11 x1  a12 x 2  a13 x3  ...  a1n x n  b1
 x3  ...  a2 n xn  b2
a22 x2  a23
 x2  a33
 x3  ...  a3 n xn  b3
a32
.
.
.
.
.
.
.
.
.
 xn  bn
an 2 x2  an 3 x3  ...  ann
 / a22 , ( a 22  0 )
Sonraki adımda x2 ’yi üçüncü satırdan yok etmek için ikinci denklemi a32
ile çarpıp üçüncü denklemden çıkarırız. Bu durumda üçüncü denklemde x2 ’nin katsayısı
sıfır olmuş olur. Benzer işlemi diğer satırlar içinde de tekrar ettiğimizde denklem sistemi
aşağıdaki biçimi alır:
a11 x1  a12 x 2  a13 x3  ...  a1n x n  b1
 x3  ...  a2 n xn  b2
a22 x2  a23
 x3  ...  a3n xn  b3
a33
.
.
.
.
.
.
 xn  bn
an3 x3  ...  ann
Bu şekilde n  1 tane ileriye doğru yok etme adımından sonra denklem sistemimiz şu son
halini alır:
a11 x1  a12 x 2  a13 x3  ...  a1n x n  b1
 x3  ...  a2 n xn  b2
 x2  a23
a22
 x3  ...  a3n xn  b3
a33
.
.
.
.
.
.
n 1
a nn xn  bnn 1
Back Substitution:
Son denklemden başlayarak bilinmeyenleri bulalım. Son denklem sadece bir bilinmeyen
içerdiği için, kolaylıkla
xn 
elde ederiz.
bn( n 1)
( n 1)
a nn
Gaussian Elimination
04.06.3
Sondan bir önceki (n  1) ’inci denklem iki bilinmeyen içermekte: xn and xn1 , fakat xn
zaten bilindiği için bu denklemde bilinmeyen sayısı aslında bir tanedir. Bu şekilde diğer
bilinmeyenler için geriye doğru her satırda yerine koyma uyguladığımızda tüm bilinmeyenler
aşağıdaki formülle elde edilmiş olur:
bii 1   aiji 1 x j
n
xi 
j i 1
aiii 1
, i  n  1, n  2, ,1
ve
xn 
bn( n 1)
( n 1)
a nn
Örnek 1
Bir roketin yukarı doğru hızı üç farklı zamanda Tablo 1 ‘de verilmiştir.
Tablo 1 Hız ve Zaman datası.
Zaman, t (s) Hız, v (m/s)
5
8
12
106.8
177.2
279.2
Hızla ilgili datayı ikinci mertebeden bir yaklaşım polinomunda kullanalım:
vt   a1t 2  a2t  a3 ,
5  t  12
Yukarıdaki a1 , a 2 , ve a3 katsayıları aşağıdaki sistemi sağlar:
 25 5 1  a1  106.8 
 64 8 1 a   177.2 

  2 

144 12 1  a3  279.2
a1 , a 2 , ve a3 katsayılarını Gauss eliminasyon yöntemi ile bulun. Roketin t  6, 7.5, 9, 11
anlarındaki hızı nedir?
Çözüm
Forward Elimination
Üç denklem olduğu için iki adımlı ileriye doğru yok etme uygulanacak.
04.06.4
Chapter 04.06
İlk Adım
Satır 1 ‘i 64/25  2.56 ile çarpıp Satır 2 ‘den çıkaralım
5
1   a1   106.8 
 25
 0  4.8  1.56 a    96.208

  2 

144 12
1   a3   279.2 
Satır 1 ‘i 144/25  5.76 ile çarpıp Satır 3 ‘ten çıkaralım. Bu işlemlerle ilk adımda aşağıdaki
system elde edilir:
5
1   a1   106.8 
25
 0  4.8  1.56  a     96.208 

  2 

 0  16.8  4.76  a3   335.968
İkinci Adım
Satır 2 ‘yi  16.8/  4.8  3.5 ile çarpıp Satır 3 ‘ten çıkaralım. İkinci adım sonucunda elde
edilen sistem:
5
1   a1   106.8 
25
 0  4.8  1.56 a    96.208

  2 

 0
0
0.7   a3   0.76 
Back substitution
Üçüncü denklemden
0.7 a3  0.76
0.76
a3 
0.7
 1.08571
a3 değerini ikinci denklemde yerine koyarsak,
 4.8a 2  1.56a 3  96.208
 96.208  1.56a3
 4.8
 96.208  1.56  1.08571

 4.8
 19.6905
a2 
Gaussian Elimination
04.06.5
a 2 ve a3 değerlerini ilk denklemde yerine koyarsak,
25a1  5a 2  a3  106.8
106.8  5a 2  a3
a1 
25
106.8  5  19.6905  1.08571

25
 0.290472
Aşağıdaki çözüm vektörü elde edilir:
 a1  0.290472
a    19.6905 
 2 

 a3   1.08571 
Yukarıdaki sonuca göre üç data noktamızın üzerinden geçen polinom şudur:
vt   a1t 2  a 2 t  a3
 0.290472t 2  19.6905t  1.08571, 5  t  12
Şimdi ise biz t  6, 7.5, 9 and 11 saniyelerindeki hızı bulmak istediğimizden basitçe
istediğimiz t değerini vt   0.290472t 2  19.6905t  1.08571 hız fonksiyonunda yerine
koyarak ona ilişkin hızı bulabiliriz. Örneğin, t  6 anında:
v6   0.2904726   19.69056   1.08571
2
 129.686 m/s
Bununla birlikte t = 6, 7.5, 9, 11 saniyelerinde istediğimiz hız değerlerini matris çarpımını
kullanarakta bulabiliriz.
t 2 
 
vt   0.290472 19.6905 1.08571  t 
1
 
Yani, v6, v7.5, v9, v11, değerleri şu şekilde bulunur:
6 2
v6 v7.5 v9 v11  0.290472 19.6905 1.08571  6
1

7.5 2
7.5
1
9 2 112 

9 11 
1
1 
04.06.6
Chapter 04.06
36 56.25 81 121
 0.290472 19.6905 1.08571  6
7.5
9 11 
 1
1
1
1 
 129.686 165.104 201.828 252.828
v(6)  129.686 m/s
v(7.5)  165.1 04 m/s
v(9)  201.828 m/s
v(11)  252.828 m/s
Örnek 2
Aşağıdaki sistemi Gauss eliminasyon ile çözünüz
20 x1  15 x2  10 x3  45
 3 x1  2.249 x 2  7 x3  1.751
5 x1  x 2  3x3  9
Hesaplamalarda 6 yararlı basamak ve kesme uygulayınız.
Çözüm
Sistemin matris formu şöyledir:
15
10  x1   45 
 20
 3  2.249 7   x  = 1.751

  2 

 5
1
3   x3   9 
Forward Elimination
İlk adım
Satır 1 ‘i  3 / 20  0.15 ile çarpıp Satır 2 ‘den çıkaralım,
10   x1   45 
20 15
 0 0.001 8.5  x  = 8.501


  2 
 5
1
3   x3   9 
Satır 1 ‘i 5 / 20  0.25 ile çarpıp Satır 3 ‘ten çıkaralım,
Gaussian Elimination
04.06.7
15
10   x1   45 
20
 0 0.001 8.5  x  =  8.501 


  2 
 0  2.75 0.5  x3   2.25
İkinci adım
Satır 2 ‘yi  2.75 / 0.001  2750 ile çarpıp Satır 3 ‘ten çıkaralım
10 
20 15
 0 0.001
8.5 

 0
0
23375.5
 x1 
x  =
 2
 x3 
 45 
 8.501 


23375.4
Yok etme adımları sonucunda yukarıdaki sistem elde edilir.
Back substitution
Üçüncü denklemden,
23375.5 x3  23375.4
23375.4
x3 
23375.5
 0.999995
x3 değerini ikinci denklemde yerine koyarsak,
0.001x 2  8.5 x3  8.501
8.501  8.5 x3
x2 
0.001
8.501  8.5  0.999995

0.001
8.501  8.49995

0.001
0.00105

0.001
 1.05
x3 ve x 2 değerini ilk denklemde yerine koyarsak,
20 x1  15 x 2  10 x3  45
04.06.8
Chapter 04.06
45  15 x 2  10 x3
20
45  15  1.05  10  0.999995

20
45  15.75  9.99995

20
29.25  9.99995

20
19.2500

20
 0.9625
x1 
Böylelikle çözüm vektörü
 x1   0.9625 
[ X ]   x2    1.05 
 x3  0.999995
elde edilir.
 x1  1
Sistemin gerçek çözümü ise  X    x2   1 ‘dir.
 x3  1
Gauss eliminasyon metodundaki zayıf yönler:
Sıfır ile bölme hatası: (Forward elimination) ileriye doğru yok etme safhasındaki n  1
adımın herhangi birinde sıfır ile bölme işlemi söz konusu olabilir. Örneğin,
5 x2  6 x3  11
4 x1  5 x2  7 x3  16
9 x1  2 x2  3 x3  15
sisteminde ilk adımda x1 ‘in katsayısı sıfır olduğu için sıfır ile bölme söz konusudur. Bu
durum sistemin matris formunda yazılması ile daha açık görülebilir.
0 5 6  x1  11
4 5 7   x   16

 2   
9 2 3  x3  15
Aşağıdaki örnekte ise daha farklı bir durum söz konusudur.
Gaussian Elimination
04.06.9
5 x1  6 x2  7 x3  18
10 x1  12 x2  3 x3  25
20 x1  17 x2  19 x3  56
matris formunda,
 5 6 7   x1  18 
10 12 3   x   25

 2   
20 17 19  x3  56
Ileriye doğru yok etmenin ilk adımında sıfır ile bölme durumu yoktur. Fakat ilk adımın
sonunda elde ettiğimiz sistemde bu durum söz konusudur.
7   x1   18 
5 6
0 0  11  x     11

 2  

0  7  9   x3   16
Yok etmenin ikinci adımında x2 ‘nin katsayısı sıfır olduğu için sıfır ile bölme problemi
ortaya çıkmaktadır.
Buradan vardığımız sonuç sıfır ile bölmenin ileriye doğru yok etmenin herhangi bir adımının
başlangıcında olası bir problem olarak ortaya çıkabileceğidir.
Yuvarlama (Round-off) hatası: Gauss eliminasyon metodunda yuvarlama hatası denklem
sayısının fazlalığına ve yapılan işlemlere bağlı olarak büyüme eğilimi gösterebilir. Aşağıdaki
örneğe bakalım.
Örnek 3
Gauss eliminasyon yöntemini kullandığımız Örnek 2 ‘yi hatırlayalım:
20 x1  15 x 2  10 x3  45
 3 x1  2.249 x 2  7 x3  1.751
5 x1  x 2  3 x3  9
Bu sistemin çözümündeki hesaplamalarda 6 yararlı basamak ve kesme kullanmıştık. Şimdi
aynı problemi 5 yararlı basamak ve kesme aritmetiği ile tekrar edelim.
Çözüm
Sistemin matris formu:
04.06.10
Chapter 04.06
15
10  x1   45 
 20
 3  2.249 7   x  = 1.751


  2 
 5
1
3   x3   9 
Forward Elimination
Birinci adımın sonunda,
15
10   x1   45 
20
 0 0.001 8.5  x  =  8.501 

  2 

 0  2.75 0.5  x3   2.25
İkinci adımın sonunda ise,
10 
20 15
 0 0.001 8.5 


0
23375
 0
 x1 
x  =
 2
 x3 
 45 
 8.501 


23374
elde ederiz.
Back substitution
Şimdi çözüme geçelim. Üçüncü denklemden,
23375 x3  23374
23374
x3 
23375
 0.99995
Ikinci denklemden,
0.001x 2  8.5 x3  8.501
8.501  8.5 x3
x2 
0.001
8.501  8.5  0.99995

0.001
8.501  8.4995

0.001
0.0015

 1.5
0.001
Gaussian Elimination
04.06.11
Ve ilk denklemden,
20 x1  15 x 2  10 x3  45
45  15 x 2  10 x3
x1 
20
45  15  1.5  10  0.99995

20
45  22.5  9.9995

20
22.5  9.9995

20
12.5005

20
12.500

20
 0.625
 x1   0.625 
Böylece çözüm X    x 2    1.5 
 x3  0.99995
 x1  1
Halbuki gerçek çözümümüz:  X    x 2   1 ’dir.
 x3  1
Gauss eliminasyon metodunu geliştirmek için kullanılan teknikler
Örnek 3 ‘ten görüldüğü gibi yuvarlama hatası 6 basamak yerine 5 basamak hesaplama
aritmetiği kullanıldığında daha fazladır. Bu hatayı azaltmanın bir yolu daha fazla yararlı
basamak kullanılmasıdır. Fakat, bunun sıfır ile bölme hatasını gidermede bir faydası
olmayacaktır. Gauss eliminasyon metodunda sıfır ile bölmeden kaçınmak ve yuvarlama
hatasını azaltmak için kullanılan bir teknik Kısmi Pivot uygulamasıdır.
Kısmi Pivotlu Gauss Eliminasyon
Kısmi pivot uygulamasında herbir yok etme adımının başlangıcında aşağıdaki kritere göre bir
satır değişimi yapılır. Eğer sistemde n tane denklem varsa, n  1 tane ileriye doğru yok
etme adımı olacaktır. k ’yıncı yok etme adımının başlangıcında, k sütununun k satırından
sonraki elemanlar arasında maksimum bulunur.
a kk , a k 1,k , …………, a nk
k = 1,2,….,n
04.06.12
Chapter 04.06
Daha sonra bulunan bu maksimum değere göre satır değişimi yapılır. Eğer yukarıdaki
sayıların maksimumu p satırındaki a pk , k  p  n , ise p and k satırları arasında yer
değişimi yapılır.
Bunun dışında diğer bütün işlemler yalın Gauss yöntemi ile aynıdır.
Örnek 4
Önceki örnekte yalın Gauss yöntemi ve 5 yararlı basamak kesme aritmetiği kullanarak,
20 x1  15 x 2  10 x3  45
 3 x1  2.249 x 2  7 x3  1.751
5 x1  x 2  3 x3  9
sistemini çözdük ve çözümü,
 x1   0.625 
X    x2    1.5 
 x3  0.99995
Olarak bulduk. Aslında gerçek çözüm bundan farklı olarak,
 x1  1
X    x2   1
 x3  1
şeklinde idi. Yuvarlama hatası oldukça büyük çıkmıştı. Şimdi aynı sistemi kısmi pivotlu
Gauss eliminasyon yöntemi ve 5 yararlı basamak kesme aritmetiği kullanarak çözelim.
Çözüm
15
10  x1 
 20
 45 
 3  2.249 7   x  = 1.751


  2

 5
 9 
1
3   x3 
Forward Elimination
Birinci yok etme adımı için birinci sütunun mutlak değerce maksimumunu bulalım,
20 ,  3 , 5
20, 3, 5
veya
Gaussian Elimination
04.06.13
Maksimum değer 20 ve bu değer birinci satırda yer aldığından bir satır değişimine gerek yok
ve birinci sütun için pivot elemanımız 20’dir.
15
10  x1 
 45 
 20
 3  2.249 7   x  = 1.751



  2
 9 
 5
1
3   x3 
İlk adımda bu pivot elemana göre yok etme uyguladığımızda,
15
10   x1 
20
 0 0.001 8.5  x 

  2
 0  2.75 0.5  x3 
=
 45 
 8.501 


 2.25
sistemi elde edilir.
İkinci yok etme adımı için, ilk satırın altında kalan ikinci sütun elemanlarının mutlak değeri,
0.001 ,  2.75
veya
0.001, 2.75
olduğundan maksimum değer 2.75 olarak üçüncü satırdadır. Yani, ikinci satır ile üçüncü
satır yer değiştirilir,
15
10   x1 
20
 7 
 0  2.75 0.5  x  =  2.25

  2


 0 0.001 8.5  x3 
 8.501 
İkinci adımda –2.75 pivot elemanına göre yok etme uygulanırsa,
15
10 
20
 0  2.75
0.5 

 0
0
8.5001
sistemi elde edilir.
Back substitution
8.5001x3  8.5001
8.5001
=1
x3 
8.5001
 45 
 x1 
 x  =   2.25 


 2
8.5001
 x3 
04.06.14
Chapter 04.06
İkinci denklemden,
 2.75 x 2  0.5 x3  2.25
 2.25  0.5 x 2
 2.75
 2.25  0.5  1

 2.75
 2.25  0.5

 2.75
 2.75

 2.75
1
x2 
İlk denklemden,
20 x1  15 x2  10 x3  45
45  15 x 2  10 x3
x1 
20
45  15  1  10  1

20
45  15  10

20
30  10

20
20

20
1
1
 x1 


Yani çözüm:  X    x 2  = 1 olarak bulunur.
1
 x3 
Bu örneğe has olarak yuvarlama hatasının sıfırlandığını ve çözümün gerçek çözümle aynı
olduğunu görüyoruz. Bununla birlikte, kısmi pivot uygulamasının yuvarlama hatasını
azaltacağı da aşikardır.
Yalın Gauss eliminasyon metodu bir kare matrisin determinantını bulmak için
kullanılabilir mi?
Aşağıdaki teoremlerin avantajlarını yalın Gauss eliminasyon yöntemi ile birleştirdiğimizde
kare bir matrisin determinantının bu yöntemle bulunabileceğini görürüz.
Gaussian Elimination
04.06.15
Teorem 1:
[ A] , n  n bir matris olsun. Bu durumda, eğer [ B ] , n  n matrisi A ‘nın bir satırının bir
sabitle çarpılıp diğer bir satırına eklenmesi suretiyle elde edildiyse, det( A)  det( B) ‘dir.
Teorem 2:
[ A] , n  n bir üst üçgen matris, alt üçgen matris veya köşegen matrsi ise,
det( A)  a11  a 22  ...  aii  ...  a nn
n
  aii ‘dır.
i 1
Teorem 1’e göre, bir kare matrise yalın Gauss metodunun yok etme adımlarını
uyguladığımızda matrisin determinant değişmeden kalıyor. Yok etme adımlarının sonunda
elde edilen matris bir üst üçgen matris olduğundan matrisin determinantı Teorem 2’ye göre
kolaylıkla hesaplanabilir.
Örnek 5
Aşağıdaki matrisin determinantını bulun
 25 5 1
[ A]   64 8 1
144 12 1
Çözüm
Örnek 1 ‘de bu matrise yok etme adımlarını uygulayıp aşağıdaki matrisi elde etmiştik,
5
1 
25

B   0  4.8  1.56
 0
0
0.7 
Teorem 2’ye göre,
det( A)  det( B)
 25  ( 4.8)  0.7
 84.00
Determinant hesabı için Gauss metodu kullanılırken eğer sıfıra bölme problemi ile
karşılaşılırsa ne yapılır?
Kısmi pivotlu Gauss eliminasyon metodu kullanılabilir. Fakat bunu yaparken aşağıdaki
teorem gözönüne alınmalıdır.
04.06.16
Chapter 04.06
Teorem 3:
[ A] , n  n bir matris olsun. Bu durumda, eğer [ B ] n  n matrisi A ‘nın iki satırının yer
değiştirilmesiyle elde ediliyorsa, det( B)   det( A) .
Örnek 6
Aşağıdaki matrisin determinantını bulun
 7 0
 10

[ A]   3 2.099 6
 5
 1 5
Çözüm
Kısmi pivotlu Gauss eliminasyon metodunun yok etme adımları uygulandığında aşağıdaki
matris elde edilir,
0 
10  7

[ B]   0 2.5
5 
 0
0 6.002
det B   10  2.5  6.002
 150.05
Fakat, bu matris elde edilirken bir kez satır değişimi gerçekleştiğinden,
det  A   det( B )
 150.05
Download