AST409 Astronomide Sayısal Çözümleme 1. Hata Analizi
Anlamlı Rakamlar Anlamlı rakamlar bir ölçümün sonucu olarak verilen bir sayının duyarlılığını tayin eden rakamlardır. Sıfır olmayan tüm rakamlar anlamlıdır. 91 : 2 anlamlı rakam 123.45 : 5 anlamlı rakam Sıfır olmayan iki rakam arasındaki sıfırlar anlamlıdır. 101.1203 : 7 anlamlı rakam Sıfır olmayan ilk rakama kadar soldaki sıfırlar anlamlı değildir. 0.000052 : 2 anlamlı rakam Noktalı sayılarda sondaki sıfırlar anlamlıdır. 12.2300 : 6 anlamlı rakam 120.00 : 5 anlamlı rakam Nokta içermeyen sayılarda sondaki sıfırların durumu kaynaktan kaynağa farklı değerlendirilmektedir: - Duyarlılığı kesin olan basamakların üzerine ya da altına çizgi konarak 1300 : 3 anlamlı rakam, 1300 : 4 anlamlı rakam - Tam sayılarda duyarlılık son basamakla belirleniyorsa son basamaktan sonra nokta konarak 100. : 3 anlamlı rakam - Doğru birimler seçilerek 1300 gram yerine 1.3 kg : 2 anlamlı rakam 48.? 87324.4? 48.5 : 3 anlamlı rakam 87324.45 : 7 anlamlı rakam
Aşağıdaki sayıların ölçüm hassasiyetini ifade eden kaçar anlamlı rakamı vardır? 0.32 dm : 2 3.2 cm : 2 32 mm : 2? (evet 2) 0.00001845 : 4 0.0001845 : 4 0.001845 : 4 45300. : 5 4.53 x 104 : 3 6.00 x 102 : 3 6.0 x 102 : 2 6 x 102 : 1
12.345 sayısının “n” anlamlı rakam ve basamağa yuvarlanması Yuvarlama Bir sayıyı “n” tane anlamlı rakama yuvarlamak için: Anlamlı olmayan ilk 5 rakamının peşi sıra sıfır olmayan bir rakam geliyorsa yukarı yuvarlanır 1.2459, 3 anlamlı rakam ile ifade edilmek istenirse 1.25 Anlamlı olmayan ilk 5 rakamının peşinden rakam gelmiyor ya da sıfır geliyorsa 5’ten önceki rakam çiftse olduğu gibi bırakılır, tekse yukarı yuvarlanır. 1.245, 3 anlamlı rakam ile ifade edilmek istenirse 1.24 1.235, 3 anlamlı rakam ile ifade edilmek istenirse 1.24 “n” basamağa yuvarlamakla “n” anlamlı rakama yuvarlamak farklı şeylerdir! Duyarlılık Anlamlı Rakam Basamak Beş 12.345 12.34500 Dört 12.34 12.3450 Üç 12.3 İki 12 Bir 1 x 101 Sıfır uygun değil 12.345 sayısının “n” anlamlı rakam ve basamağa yuvarlanması
Aritmetik Elle hesaplamada genel olarak aşağıdaki kurallar takip edilir : Çarpma ve bölme için sonuç, en az anlamlı rakam içeren sayıdaki anlamlı rakam sayısı kadar anlamlı rakam içermelidir. Toplama ve çıkarma için sonuç, en az basamak içeren sayıdaki basamak sayısı kadar basamak içermeledir. Genel kural olarak ara adımlardaki basamak ve anlamlı rakam sayısına bakılmaz, sonuçtaki basamak ya da anlamlı rakam sayısı dikkate alınır. 0.745 * 2.2 / 3.885 = 0.4218 En düşük hassasiyet (2.2) 2 anlamlı rakam gerektirdiğinden sonuç 2 anlamlı rakam taşımalı, 0.42‘deki anlamlı rakam sayısı : 2 27.153 + 138.2 - 11.74 = 153.613 En düşük basamak sayısı (138.2) 1 olduğundan sonuç 1 ondalık basamak taşımalı, 153.6‘daki ondalık basamak sayısı : 1 (5.20674 + 0.0003) / (2.1 - 0.09) = 2.6035 Toplama işleminin sonucu 4 ondalık basamak (5.2070), çıkarmanın 1 ondalık basamak (2.0), bölmeninki 2 anlamlı rakam içermeli. (5.23 x 103 - 0.26 x 102) / 2.0 x 104 = 2.6 x 100 En düşük hassasiyet (2.0) 2 anlamlı rakam gerektirdiğinden sonuç 2 anlamlı rakam taşımalı, 2.6‘daki anlamlı rakam sayısı : 2
Doğruluk - Hassasiyet Doğruluk Hassasiyet
Hata (Yanlış) * Mutlak Hata (εt = xt - x) * Bağıl Hata (εr = (xt - x) / xt) Bu formüllerde x: ölçülen (ya da hesaplanan), xt : gerçek değeri göstermektedir n tane anlamlı rakam için hata kriteri (Scarborough 1966) e = ? Soru : Kaç terim alırsak bağıl hatamızı üç anlamlı rakam ile ifade edebiliriz? Yanıt : εs = (0.5 x 102-3) % = 0.0005 --> (εr = (xt - x) / xt < 0.0005 --> x < 2.7169 koşulunun sağlandığı en az terim e1 = 1 + 1 + (12/2!) + (13/3!) + (14/4!) + (15/5!) = 2.7617 yani 5 terim almalıyız
Hata Kaynakları * Veri Yanlışları (Errors in data) * Yuvarlama Yanlışları (Round-off errors) * Kesme Yanlışları (Truncation errors)
Sayı Sistemleri Bit, byte, kilobyte, megabyte, gigabyte, terabyte ... 16 bit bir işletim sisteminde hangi tam sayı aralığını ifade edebiliriz? -32768 - 32767 Zira 1. basamak işaret için ayrılır ve 0 iki kere sayılmaz (En baştaki 0: pozitif, 1: negatif sayıları ifade eder) m be 1 /b ≤ m < 1 Bit, byte, kilobyte, megabyte, gigabyte, terabyte ...
Sayı Sistemleri Örnek 1: Böyle bir sistemde ifade edebileceğimiz en küçük ve en büyük pozitif sayılar nedir? (bkz. Ödev 1, Soru 2 çözümü) En küçük poziftif sayı : 0111001 (= 0.015625) m=0x2-1+0x2-2+”x2-3=0.125, b=2,e=-(1x20+1x21)=-3 => m be = 0.1255 2-3 = 0.015625 En büyük poziftif sayı : 0011111 (= 7.0) m=1x2-1+1x2-2+1x2-3=0.875, b=2,e=1x20+1x21=3 => m be = 0.875 23 = 7.0 Sonuç 1 : Sadece belirli bir aralık gösterilebilir. Sonuç 2 : Sadece bazı nitelikler gösterilebilir.
Kırpsak da mı saklasak, yuvarlasak da mı saklasak? Sayı Sistemleri π = 3.14159265358... Örnek 2: Kırpsak da mı saklasak, yuvarlasak da mı saklasak? Örnek 3: Mantisin 4 basamaklı, üssün 1 basamaklı olduğu onluk bir sayı sistemi üzerine kurulu bir bilgisayar hayal edelim. 0.1557x101 + 0.4381x10-1 = 0.1600x101 (0.1557x101+0.004381x101=0.160081x101 --> 0.1600x101) 36.41 - 26.86 = 0.9550x101 (0.3641x102+0.2686x102=0.0955x102 --> 0.9550x101) 764.2 - 764.1 = 0.1000x100 (0.7642x103+0.7641x103=0.0001x103 --> 0.1000x100) 136.3 x 0.06423 = 0.1363x103 (0.1363x103+0.6423x10-1=0.1363x103+0.00006423x103 = 0.13636423x103 --> 0.1363x103) 4000 + 0.0010 = 0.4000x104 (0.4000x104+0.1000x10-2=0.4000x104+0.0000x104 = 0.4000x104 )
Yuvarlama ve Kesme Yanlışları Örnek 4: 0.000001 sayısını 1 milyon kez kendisiyle toplayan bir program yazalım! Python kodu: >>> x=0.000001>>> sum=0.>>> for i in range(0,1000000,1):... sum+=x... >>> print sum1.00000000001 İlginç değil mi? Örnek 5: a = 1, b = 3000.001, c = 3 x1,2 = ? Python kodu: >>> from math import *>>> a=1.>>> b=3000.001>>> c=3.>>> x1=(-1*b-sqrt(b**2-4*a*c))/(2*a)>>> x2=(-1*b+sqrt(b**2-4*a*c))/(2*a)>>> print x1-3000.0>>> print x2-0.000999999999976 Daha da ilginç değil mi?
Hatanın Yayılması x, y, |ex|, |ey| εR ≤ (|ex| + |ey|) / |x+y| (x+y) - (|ex| + |ey|) ≤ [x + y] ≤ (x+y) + (|ex| + |ey|) εR ≤ (|ex| + |ey|) / |x+y| x, y, |ex|, |ey| (x-y) - (|ex| + |ey|) ≤ [x - y] ≤ (x-y) + (|ex| + |ey|) εR ≤ (|ex| + |ey|) / |x-y| (xy) - |xey| - |yex| + |ex ey| ≤ [x . y] ≤ (xy) + |xey| + |yex| + |ex ey| εR ≤ (|xey| + |yex|) / |x.y| ((xy) - |xey| - |yex| + |ex ey|) / (y2 - ey2) ≤ [x / y] ≤ ((xy) + |xey| + |yex| + |ex ey|) / (y2 - ey2) εR ≤ (|xey| + |yex|) / |x.y|
Ödevler (Teslim Tarihi : 3 Ekim 2014) 1. serilerinde yirmişer terim kullanarak e-5 sayısını hesap ediniz. Google’ın hesap makinesiyle verilen sonuçla elde ettiğiniz sonuçları karşılaştırarak her iki seri için bağıl hatayı hesaplayınız. Üslü terimleri hesaplamak için hangi seriyi tercih etmelisiniz? 2. sistemi için yazabileceğiniz en küçük pozitif sayıdan başlayarak en büyük sayıya kadar tüm pozitif sayıları yazınız ve ardışık terimlerin aralarındaki farkları gösteriniz. Sorular için bilgisayar programı yazabilir ya da kullanabilir, hesap makinesinden yararlanabilirsiniz!
Kaynaklar Sayısal Çözümleme Cilt I, Ziya Aktaş, Hilmi Öncül, Saim Ural, ODTÜ Yayınları, 1981 Nümerik Analiz-I, Nuri Özalp, Ankara Üniversitesi Açık Ders Kaynakları Numerical Methods for Engineers 6th ed., Steven C. Chapra, Raymond P. Canale, McGraw Hill, 2010 Computer Number Systems, Tim Gill, 1999 Numerical Methods, Germund Dahlquist, Åke Bjorck, tr. Ned Anderson, Dover Publications Inc., 1974 Numerical Methods, Rao V. Dukkipati, New Age International, 2010 Nümerik Analiz, Behiç Çağal, İstanbul Kültür Üniversitesi, Ders Notları