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 a22 x2 ... a2 n xn b2 Halini alır, burada diğer katsayılar şöyledir: a a22 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: a2 n a2 n 04.06.1 04.06.2 Chapter 04.06 a11 x1 a12 x 2 a13 x3 ... a1n x n b1 x3 ... a2 n xn b2 a22 x2 a23 x2 a33 x3 ... a3 n xn b3 a32 . . . . . . . . . xn bn an 2 x2 an 3 x3 ... ann / a22 , ( 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 ... a2 n xn b2 a22 x2 a23 x3 ... a3n xn b3 a33 . . . . . . xn bn an3 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 ... a3n xn b3 a33 . . . . . . n 1 a nn xn bnn 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 xn1 , 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: bii 1 aiji 1 x j n xi j i 1 aiii 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: vt 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: vt 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 vt 0.290472t 2 19.6905t 1.08571 hız fonksiyonunda yerine koyarak ona ilişkin hızı bulabiliriz. Örneğin, t 6 anında: v6 0.2904726 19.69056 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 vt 0.290472 19.6905 1.08571 t 1 Yani, v6, v7.5, v9, v11, değerleri şu şekilde bulunur: 6 2 v6 v7.5 v9 v11 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