You are on page 1of 30

SAYISAL ÇÖZÜMLEMEDE

HATALAR
2. Bölüm
Nurhan Karaboğa
SAYISAL ÇÖZÜMLEMEDE HATALAR

• “Bak, doğan ölüyor, insandan eser


olarak ancak söz kalıyor; öyleyse
sözünü iyi söyle, ölümsüz olursun.”

• ”Kutadgu Bilig”
Giriş
• Sayısal çözümün analitik çözümle
karşılaştırılmasıyla hata terimi
belirlenebilmektedir.

• Birçok uygulamalı mühendislik probleminde,


analitik çözüm elde edilemediğinden sayısal
yöntemle ilişkili hata tam olarak
hesaplanamamaktadır.

• Bu durumlarda, yaklaşık değer kullanımı ya da


hatanın tahmin edilmesiyle yetinilir.
Sayısal Bilgisayarlar
• Sayısal bilgisayarlar; bilimsel, endüstriyel ve ticari
ilerlemeleri mümkün kılmıştır.

• Sayısal bir sistemin en belirgin özelliği ayrık bilgi öğelerini


kullanabilmesidir.

• Bu ayrık öğeler; ondalık sayılar, aritmetik işlemler, elektrik


darbeleri, alfabenin harfleri, noktalama işaretleri ya da
herhangi anlamlı semboller seti olabilir.

• Ayrık bilgilerin yan yana getirilmesi bilgi miktarını temsil


eder.
• Örneğin g, ö ve z harfleri, “göz” kelimesini; 4, 2 ve 1
rakamları da “421” sayısını oluşturur.
Sayısal Bilgisayarlar
• Sayısal bir sistemde ayrık bilgiler işaret veya sinyal denilen
fiziksel niceliklerle temsil edilir.

• Yaygın olarak gerilim (voltaj) ve akım işaretleri kullanılır.

• Bilgisayarlar, anahtarların açık veya kapalı olarak


bulunduğu dahili bir bilgisayar yongası üzerindeki
transistörlerin sağladığı ikili sayı sistemini kullanır.

• Bilgisayarlarda yongalar üzerindeki transistörlerin açık ya da


kapalı durumları, tansistörlerin anahtarlanması ile elde
edilen bir ve sıfır ile temsil edilmektedir.

• Yani sayısal bilgisayarda sayılar ikili sayı sistemi veya iki


tabanına göre temsil edilir. İkili sistemde tüm sayılar 0 ve
1 olmak üzere iki rakam ile temsil edilir.
Sayısal Bilgisayarlar
Kontrol İşlemci Şekil 2.1 Sayısal Bilgisayarın Blok Diyagramı
Birimi

Giriş
Birimleri
ve Kontrol
Kaydedici
Çıkış
Birimleri
ve Kontrol

Sayısal bir bilgisayar birbirine bağlı sayısal


modüllerden oluşur. Aritmetik hesaplamalar
yanında mantık işlemlerini de yapabilir ve iç
veya dış koşullara bağlı kararlar verecek
şekilde programlanabilir.
Kayan Noktalı Gösterim

• Kayan noktalı gösterim, çok büyük, çok küçük ve


gerçek sayıları göstermek için kullanılır.

• Gerçek dünyada sayılar sonsuza kadar


giderken, bilgisayar ortamındaki sınırlamalardan
dolayı sonsuz uzunluktaki sayıların gösterilmesi
mümkün olmamaktadır.

• Sayıların gerçeğe en yakın şekilde temsilini


sağlayan sisteme, “kayan noktalı sayılar
sistemi” denir.
Kayan Noktalı Gösterim


d .dddddd ×10 p

•Şekil: Ondalık Kayan Noktanın Gösterimi

• 0.dddddd sayısı, mantisi (anlamlı kısım) ve p’de sayının


üssünü temsil etmektedir.

• Kayan noktalı sayının gösteriminde üst bitleri fazla olursa


sayının duyarlılığı, mantisin bitleri fazla olursa
gösterilebilecek sayı aralığı artar.

• Örneğin; 253.57 sayısı d = 25357 p=3


• bilgisayarda,
• .25357 × 10 3 sayısını temsil eder.
Bilgisayarda Sayıların Kaydedilmesi
• İkili kayan nokta gösteriminde sayılar bilgisayarda
depolanır.

• Bilginin gösterildiği en temel birime, kelime denir. Bu


büyüklük bir dizi, iki tabanına göre yazılmış sayı veya
bit’ten meydana gelir.

• Bilgisayarda sayılar, bir veya daha fazla kelime şeklinde


saklanır.

• Sayının mantis ve üst kısımları ayrı ayrı depo edilir. Kayan


noktalı sayıların değişik donanımlardaki uyumu için IEEE
754 standardı geliştirilmiştir.

• Bu gösterimlerde sayılar normalize edilmiştir ve üstler,


üst değerini tutan bit sayısına göre saptırılmıştır.
Bilgisayarda Sayıların Kaydedilmesi

27 26 25 21 20 2-1 2-2 2-22 2-23

… …
1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0

işaret
biti işaretli üst - 8 mantis - 23 bit
1 bit bit

Şekil 2.11 İkili kayan nokta sayı için tek duyarlıktaki kaydedilmiş bir sayının gösterimi
• Üst değerini tutan bit sayısı k ise, saptırma değeri 2( k −1) − 1
olarak belirlenmiştir.

• Bu standarda göre kayan noktalı sayıların gösterimi tek


duyarlı ve çift duyarlı olmak üzere iki farklı durum için
belirlenmiştir.
Bilgisayarda Sayıların Kaydedilmesi
• Sayıların kayan noktalı şekilde ifade edilirse:

• Aritmetik işlemlerin daha karmaşık hale gelmesi,

• Standardın korunmasının zorlaşması,

• Yuvarlama işlemlerinde sayıların sonsuz değerleriyle karşılaşma,

• Toplama ve çıkarma işlemlerinde aritmetik taşmanın yanında duyarlılıktan


taşma olasılığının olması,

• Çok küçük sayıların normalize biçimde gösterilmesinin mümkün olmaması

gibi durumlarla karşılaşılabilir. Bu olumsuzluklardan kurtulmak için IEEE


754 standardına göre çeşitli yöntemler geliştirilmiştir.
Sayısal Çözümlemede Hatalar

• Problemin sayısal yöntem ve analitik yöntemle


çözülmesi durumunda ikisi arasında ortaya
çıkan fark, hata olarak tanımlanır.

• Sayısal yöntemlerle gerçekleştirilen


hesaplamalarda, ne kadar hata yapıldığı kadar
yapılan hatanın kabul edilebilirliği önemlidir.

• Sayısal yöntemle ilişkili hata tam olarak


hesaplanamayabilir.
Yuvarlama Hataları
π = 3.141592653589793238462643...
• Sayılar, bilgisayarlarda sonlu sayıda bit ile
gösterildiğinden yuvarlama hataları, bilgisayarların bu
sayıları ifade etmek için sınırlı sayıda basamak
kullanmasından kaynaklanır.

• Pi sayısı bilgisayarda tam olarak ifade edilemez.

• Aynı zamanda bilgisayarlar 2 tabanına göre


çalıştıklarından, 10 tabanına göre olan tamsayıları
hassas olarak ifade edemezler.

• Anlamlı basamakların ihmal edilmesinden dolayı da


yuvarlama hataları oluşur.
Çift/Tek sayılar kuralı
• Genel olarak bir sayının tane anlamlı basamağı olacak
şekilde yuvarlaklaştırılması için, o sayının en solundaki
anlamlı basamaktan başlayarak, tane anlamlı basamak
atılır.
• Eğer atılan kısım; 5, 50, 500, 5000, ...’den küçük ise,
korunan son basamaktaki sayı olduğu gibi bırakılır.
• Eğer atılan kısım; 5, 50, 500, 5000, ...’den büyük ise
korunan son basamaktaki sayı, bir arttırılır.
• Eğer atılan kısım tam; 5, 50, 500, 5000, ... ise çift sayılar
kuralı uygulanır.
– Bu kurala göre korunan son basamaktaki sayı çift ise bir
değişiklik yapılmaz, tek ise bir arttırılır.
– Tek sayılar kuralında da öncekinin tam tersi durum
uygulanır. Genel olarak çift sayılar kuralı tercih edilir.
Anlamlı Basamaklar
• Gerçek fiziksel bir ölçmenin sonucunu ifade eden bütün
basamaklar anlamlıdır.

• Fiziksel bir ölçme sonucunun tutarlılığı içindeki anlamlı


basamak sayısı ile belirlenir.

• Anlamlı basamakların daha çok olması daha büyük ölçme


tutarlılığı demektir.

• Ondalık basamak sayısını tutarlılık için ölçü olarak almak


yanlıştır. Örneğin; 13.6 cm., 0.136 m. ve 0.000136 km.
ondalık basamak sayıları farklı olduğu halde, aynı
tutarlılığa sahip ölçmelerdir, her birinde 3 anlamlı
basamak vardır.

• Ondalık basamak sayısı, ölçmenin tutarlılığı ile değil kullanılan


birimle ilgilidir.
Anlamlı Basamaklar
• Anlamlı basamaklar konusunda aşağıda verilen kurallar
geçerlidir:

• Sıfır olmayan bütün basamaklar anlamlıdır.

• İki anlamlı basamak arasındaki bütün sıfırlar anlamlıdır.

• Tam sayıların sağ ucunda yer alan sıfırlar anlamsızdır.

• Ondalık sayıların sol başında, ondalık noktasından


hemen sonra gelen sıfırlar anlamsız, sağ ucunda yer
alan sıfırlar anlamlıdır.
Anlamlı Basamaklar
Tablo 2.2 Farklı Sayılar ve Karşılık Gelen Anlamlı Basamak Sayısı

Anlamlı Basamak
Sayılar
Sayısı
123 3
2009 4
0.0010200 5
1.96500 6
.23000 5
321000 3

e=2.171828.
..
Anlamlı Basamaklar
• Anlamlı basamaklar kavramının sayısal
yöntemler açısından önemli sonuçları vardır.

• Sayısal yöntemler, yaklaşık sonuçlar verirler.

• Yaklaşık sonucun ne kadar doğru olduğunu


belirtmek için bir kıstas geliştirilmelidir.

• Bu da anlamlı basamaklar kullanılarak


yapılmaktadır.
Anlamlı Basamaklar
Tablo 2.3 Sayıların Belli Sayıda Anlamlı Basamağa Yuvarlanması Durumu
Yuvarlama Sonucu Anlamlı Rakama
∞ 000
12 göre Sayı
Anlamlı
Sayılar Rakam
Sayısı 4 3 2 1

14760 4 14760 14800 15000 20000

12015 5 12020 12000 10000

0.012250 5 0.01225 0.0122 0.012 0.01

0.2751 4 0.2751 0.275 0.28 0.3


π = 3.14159 ... 3.142 3.14 3.1 3
Anlamlı Basamaklar-Örnek
• Birbirine çok yakın iki sayının biri, a = 1780.9 ve diğeri de
• b = 1778.1 olsun. 3 anlamlı rakam için 10 tabanına
göre kayan noktalı gösterimle bu iki sayının farkının mantis
değerini hesaplayınız.

• 10 tabanında kayan noktalı gösterime göre


a = 1.7809 × 10 3
b = 1.7781 × 10 3

• Şayet mantis için sadece üç anlamlı bit kullanılırsa


a = 1.780 × 10 3
b = 1.778 × 10 3

•NOT:Ondalık sayıların sol başında, ondalık noktasından hemen sonra


gelen sıfırlar anlamsız, sağ ucunda yer alan sıfırlar anlamlıdır.
Anlamlı Basamaklar-Örnek
a − b = 1.780 × 10 − 1.778 × 10 = 0.002 × 10 = 2
3 3 3

• Şayet sayılar yuvarlama işlemine tabi tutulursa


a = 1.781 × 10 3 b = 1.778 × 10 3

a − b = 1.781 × 10 3 − 1.778 × 10 3 = 0.003 × 10 3 = 3

• Problemde verilen ve sayıları arasındaki fark


(doğru çözüm) durumunda:
a − b = 1780.9 − 1778.1 = 2.8
• Yuvarlama durumunda; üç anlamlı basamak kullanmaya göre, doğru
sonuca daha yakın bir değer elde edildiği söylenebilir.
İkinci derece denklem
• Birbirine yakın iki kayan noktalı sayının çıkarılmasıyla
oluşan yuvarlama hatası düşürülebilir.

• Özellikle ikinci dereceden bir denklemde ya da bir


parabolün köklerinin bulunmasında yuvarlatma
hatasıyla karşılaşılır.

• İkinci dereceden bir denklemin kökleri aşağıda verilen


eşitlikten bulunmaktadır.
− b ± b 2 − 4ac (1)
x1, 2 =
2a
İkinci derece denklem
• Yuvarlatma hatasını en aza indirmek için, eşitlik
aşağıda verildiği gibi yeniden düzenlenir.

− b − b 2 − 4ac (−b + b 2 − 4ac ) 2c


x1 = =
2a (−b + b − 4ac ) − b + b 2 − 4ac
2

− 2c
x1, 2 = (2)
b ± b 2 − 4ac
İkinci derece denklem-Örnek
• Aşağıdaki gibi verilen ikinci dereceden bir eşitliği
MATLAB komutlarıyla çözünüz.

x − 5000 .001x + 5 = 0
2

• Tam çözümler;
• x1 = 5000

x2 = 0.001
İkinci derece denklem-MATLAB
komutları
• >> format long
• >> a=1; b=-5000.001; c=5;
• >> RootDis=sqrt(b^2-4*a*c)
• RootDis =
• 4.999999000000000e+003
• >> x1=(-b+RootDis)/(2*a)
• x1 =
• 5000
• >> x2=(-b-RootDis)/(2*a)
• x2 =
• 0.001000000000204
İkinci derece denklem-Örnek
• MATLAB’ın x2 için hesapladığı değer yuvarlama
hatasından dolayı tam (doğru) sonuç değildir.
Yuvarlama hatası, (1) eşitliğinden değerinin
hesaplanmasında sayıcıda meydana gelmektedir.

• b negatif olduğundan, sayıcı birbirine yakın iki sayının


farkını araştırmaktadır.

• Anlamlı basamakların kaybı oldukça büyük iki sayının


çıkarılması sırasında oluşmaktadır.

• Sayılar toplanırken bu tür problemler ortaya çıkmaz.


İkinci derece denklem-Örnek
• MATLAB’da eşitlik (2) kullanılacak olursa:

• >> x2Mod=(2*c)/(-b+RootDis)
• x2Mod =
• 1.000000000000000e-003

• Sonuçlar birbirine oldukça yakındır. Her iki


seçenek de oldukça küçük hatalar vermektedir.
MATLAB-Örnek
f ( x) = x( x − x − 2 )
• x=10, x=100, x=10000 için fonksiyonun değerini
MATLAB kullanarak hesaplayınız.

• MATLAB’la elde edilen fonksiyonunun değerleri


aşağıda verilmektedir:

• >> format longeng


• >> x=[10 100 10000];
• >> fx=x.*(sqrt(x)-sqrt(x-2))
• fx =
• 3.33850535422189e+000 10.0505063388335e+000
100.005000500119e+000
MATLAB-Örnek
• Ondalık sistemde beş anlamlı basamak kullanılırsa:

f (10) = 10( 10 − 10 − 2 ) = 10(3.1623 − 2.8284) = 3.3390

f (100) = 100( 100 − 100 − 2 ) = 100(10 − 9.8995) = 10.0500

f (10000 ) = 10000 ( 10000 − 10000 − 2 ) = 10000 (100 − 99.990) = 100.0 0

You might also like