B ¨ol ¨um 2
Bilgisayar Say¬Sistemi, Aritmeti¼gi ve Hata
Say¬sal yöntemler bilgisayarlarda uygulan¬r, ancak bilgisayarlar reel veya kompleks say¬lar kümesi yerine, bu kümelerin sonlu say¬da elemandan olu¸san çok özel alt kümeleri üzerinde çal¬¸s¬r. Bu bölümde öncelikle bilgisayar say¬
sistemi ad¬verilen bu çok özel alt kümeyi ve bu kümenin özelliklerini inceleye- ce¼giz. Ayr¬ca bilgisayar say¬sistemi üzerindeki aritmetik i¸slemleri inceleye- rek, bu i¸slemlerin reel say¬lar kümesi üzerinde al¬¸s¬k oldu¼gumuz kapal¬l¬k ve birle¸sme gibi elemanter özelliklere sahip olmad¬¼g¬n¬görece¼giz. Böylece gerek bilgisayar say¬ sistemi ve gerekse say¬ sistemi üzerindeki aritmetik i¸slemleri yak¬ndan tan¬yarak, say¬sal analiz sürecinde say¬ sistemi ve aritmeti¼ginden kaynaklanabilecek hatalar¬minimize etmenin yollar¬n¬ö¼grenmi¸s olaca¼g¬z.
Bu amaçla bu bölümde s¬ras¬yla hata kavram¬n¬inceleyerek,
R ile gösterilen reel say¬lar kümesinin bir alt kümesi olan ve Rf(10) ile gösterece¼gimiz on tabanl¬kayan nokta say¬sistemini,
R den Rf(10) say¬sistemine, yani, R > Rf(10) dönü¸sümü ve bu dönü¸sümde olu¸sabilen hatalar¬,
Rf(2) ile gösterece¼gimiz iki tabanl¬kayan nokta say¬sistemini,
¸
Sekil 2.1: R den Rf(2) ye dönü¸süm süreci
Rf(10) dan Rf(2) kayan nokta sistemine, yani, Rf(10) > Rf(2) dönü¸sümü ve bu dönü¸sümde olu¸san hatalar¬,
·Iki tabanl¬kayan noktal¬say¬lar¬n 32 bit formata dönü¸sümü:
Rf(2) ! Rf(2)(32 bit) veya 64 bit formata dönü¸sümü:
Rf(2) ! Rf(2)(64 bit)
ve bu dönü¸sümlerde olu¸sabilen hatalar¬ inceliyoruz. Özetle ¸sematik olarak ¸Sekil 2.1 ile ifade edilen ve reel say¬lar kümesinden bilgisayar say¬sistemine dönü¸süm sürecinin her bir a¸samas¬nda olu¸sabilen hatalar¬
inceliyoruz.
Ayr¬ca, bilgisayar say¬sisteminden kaynaklanan ve anlam kayb¬hatas¬
ad¬verilen özel bir hatan¬n nas¬l olu¸stu¼gunu örnekler üzerinde gözlem- liyoruz.
Yukar¬daki her bir a¸samada olu¸smas¬mümkün olan hatan¬n ilerleyen aritmetik i¸slemlere nas¬l yay¬ld¬¼g¬n¬n incelenmesi de ayr¬bir konudur ve bu konuyu Taylor yakla¸s¬mlar¬yla ilgili oldu¼gu için bir sonraki bölümün son k¬sm¬nda inceliyoruz.
Konuyla ilgili detaylar için, bu bölümü haz¬rlarken faydaland¬¼g¬m¬z [1],[3], [4],[7],[8] ve [10] temel kaynaklar¬n¬öneriyoruz.
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr
2.1 Hata(kesme ve yuvarlama hatalar¬) 3
2.1 Hata(kesme ve yuvarlama hatalar¬)
Ölçüm i¸slemlerinde genelde gerçek de¼ger yerine, gerçek de¼geri en yak¬n biçimde temsil eden yakla¸s¬m¬kullan¬r¬z. Bu durumda
hata=gerçek de¼ger-yakla¸s¬m
ba¼g¬nt¬s¬ ile tan¬mlanan ve yakla¸s¬mdan kaynaklanan bir hata olu¸sur ki bu hata say¬sal analizde mutlak hata olarak tan¬mlan¬r.
TANIM 2.1. xile gösterilen bir büyüklü¼gün gerçek de¼geri ile bu de¼geri temsil eden xf de¼geri aras¬ndaki fark xf yakla¸s¬m¬n¬n mutlak hatas¬ veya k¬saca mutlak hata olarak tan¬mlan¬r ve
x = x xf notasyonu ile gösterilir.
xf yakla¸s¬m de¼geri, x gerçek de¼gerinden a¸sa¼g¬da tan¬mland¬¼g¬ üzere kesme veya yuvarlama yapmak suretiyle elde edilebilir:
TANIM 2.2. x = d0:d1d2::::dndn+1::: de¼gerine, noktadan(virgülden) sonraki n basamakla kesme esas¬na göre elde edilen yakla¸s¬m xf = d0:d1d2::::dn olup, bu yakla¸s¬m sonucu olu¸san
x = x xf = 0:z }| { 0::nadet::0 dn+1 hatas¬na mutlak kesme(chopping) hatas¬ad¬verilir.
Örne¼gin x = 1:761 de¼gerine noktadan sonra bir basamakla kesme esas¬na göre elde edilen yakla¸s¬m xf = 1:7 olup, bu yakla¸s¬m sonucunda olu¸san mut- lak kesme hatas¬ise
x = x xf = 0:06 d¬r.
Güncel bilgisayarlar bu yakla¸s¬m yöntemini kullanmamaktad¬r, dolay¬- s¬yla bu bölümde hata kavram¬ deyince aksi belirtilmedikçe teknik olarak a¸sa¼g¬da tan¬mlanan ve genelde daha küçük yakla¸s¬m hatas¬na neden olan yuvarlama hatas¬n¬ ifade ediyor olaca¼g¬z.
1Kesirli say¬larda kullan¬lan nokta, virgül anlam¬ndad¬r. Uygulamalar¬m¬zda kul- land¬¼g¬m¬z MATLAB/Octave ile uyum aç¬s¬ndan virgül yerine biz de nokta kullan¬yoruz.
TANIM 2.3. On tabanl¬ sistemde x = d0:d1d2::::dndn+1(0 di 9) de¼ge- rine, noktadan sonraki n basamakla en yak¬n say¬ya yuvarlama esas¬na göre elde edilen yakla¸s¬m
xf = d0:d1d2::::dn d0:d1d2::::dn+ (1=10)n;
egerdi¼ger dn+1ler dn+1 5 olup, bu yakla¸s¬m sonucu olu¸san
x = x xf
hatas¬na mutlak yuvarlama(round o¤ ) hatas¬ad¬verilir.
Yukar¬daki örnekte x = 1:76 de¼gerine noktadan sonra bir basamakla yu- varlama esas¬na göre elde edilen yakla¸s¬m
xf = 1:7 + (1=10)1 = 1:8
olup, bu yakla¸s¬m sonucunda olu¸san mutlak yuvarlama hatas¬ise 0:04 tür.
Öte yandan x = 1:73 de¼gerine noktadan sonra bir basamakla yuvarlama esas¬na göre elde edilen yakla¸s¬m
xf = 1:7
olup, bu yakla¸s¬m sonucunda olu¸san mutlak yuvarlama hatas¬ise 0:03 tür.
Mutlak hata günlük hayatta alg¬lad¬¼g¬m¬z hata kavram¬na tam olarak kar¸s¬l¬k gelmez:
Örne¼gin x = 10:1 birim uzunlu¼ga sahip olan cismin uzunlu¼gu xf = 10 birim olarak ölçülmü¸sse, xf yakla¸s¬m¬nda olu¸san mutlak hata veya mutlak yuvarlama hatas¬
x = x xf = 10:1 10 = 0:1 de¼gerine e¸sittir.
Öte yandan x = 1:1 birim gerçek uzunlu¼guna sahip olan ba¸ska bir cismin uzunlu¼gu xf = 1 birim olarak ölçülmü¸sse, xf yakla¸s¬m¬n¬n mutlak hatas¬
x = 1:1 1 = 0:1 de¼gerine sahiptir.
Her iki ölçüm sonucunda olu¸san mutlak hatalar birbirine e¸sit olmas¬na ra¼gmen, her nedense ikinci ölçümde daha fazla hata yapt¬¼g¬m¬z¬dü¸sünürüz.
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .tr
2.2 Rf(10) Kayan nokta say¬sistemi 5
Dolay¬s¬yla mutlak hata kavram¬n¬n güncel hayatta alg¬lad¬¼g¬m¬z hata kavram¬na tam olarak kar¸s¬l¬k gelmedi¼gini görüyoruz!
Bu durumda güncel alg¬lar¬m¬za uygun bir hata kavram¬mevcut olmal¬d¬r ki bu kavram a¸sa¼g¬daki tan¬m ile verilmektedir.
TANIM 2.4. x 6= 0 de¼gerine xf 6= 0 ile yuvarlama prensibine göre yak- la¸s¬mda olu¸san mutlak hatan¬n x e oran¬ olarak tan¬mlanan hataya xf yak- la¸s¬m¬n¬n ba¼g¬l yuvarlama hatas¬veya k¬saca ba¼g¬l hatas¬ad¬verilir ve
"b(x) = x x
=: x xf notasyonu ile gösterilir.
Buna göre yukar¬daki birinci ölçümde olu¸san ba¼g¬l hata
"b(x) = x
x = 0:1 10:1
=: 0:1
10 = 0:01 ve ikincide olu¸san hata ise
"b(x) = x x = 0:1
1:1
=: 0:1 1 = 0:1
dir, yani ikinci ölçüm sonucu yap¬lan ba¼g¬l hata beklentilerimiz do¼grultusunda daha büyüktür. O halde ba¼g¬l hata günlük hayatta alg¬lad¬¼g¬m¬z hata ile daha uyumludur.
Ölçüm sonuçlar¬ için yapmak durumunda oldu¼gumuz yakla¸s¬mlara ben- zer olarak, bilgisayarlar¬n s¬n¬rl¬bellek kapasiteleri ve h¬z limitleri nedeniyle de, say¬sal analiz sürecinde bilgisayarlar üzerinde elimizdeki verilerle çal¬¸s- mak yerine, onlar¬ temsil eden yakla¸s¬mlarla çal¬¸smak durumunda kal¬r¬z.
Bu durumda kesme veya yuvarlama hatalar¬ad¬n¬verdi¼gimiz hatalar olu¸sur.
Say¬sal analiz sürecinde olu¸sabilecek olan kesme veya yuvarlama hatalar¬n¬
anlayabilmek için öncelikle a¸sa¼g¬da tan¬mlanan Rf(10),Rf(2) say¬sistemleri ve Rf(2)say¬sisteminin Rf(2) 32-bit ve Rf(2) 64-bit bellek gösterimlerini yak¬ndan incelemeliyiz.
2.2 Rf(10) Kayan nokta say¬sistemi
Bu bölümde Rf(10) say¬sistemini olu¸sturan say¬lar¬n özelliklerini ve R >
Rf(10) dönü¸sümünde olu¸san mutlak ve ba¼g¬l kesme ve yuvarlama hatalar¬n¬
inceliyoruz.
Sonlu say¬da ondal¬k basama¼ga sahip herhangi bir x reel say¬s¬, uygun m 0; n 0 tamsay¬lar¬için
U = f10n; 10n 1; ; 100; 10 1; ; 10 mg (2.1) kümesinin elemanlar¬n¬n lineer bile¸simi olarak ifade edilebilir. Di¼ger bir de- yimle, uygun
ci 2 f0; 1; 2; 3; 4; 5; 6; 7; 8; 9g için
x = (c1c2 cn+1:d1 dm 1dm)10
= c110n+ c210n 1+ + cn+1100 (2.2) +d110 1+ dm 110 m 1+ dm10 m
biçiminde ifade edilebilir. Burada c1c2 cn+1 say¬n¬n tam k¬sm¬n¬ve :d1 dm 1dm ise kesirli k¬sm¬n¬ifade eder.
x say¬s¬n¬n U kümesinin elemanlar¬n¬n lineer bile¸simi olarak bu ¸sekildeki ifadesine x in onluk sisteme(on tabanl¬sisteme) göre gösterimi ad¬verilmek- tedir. Örne¼gin
1964:24 = 1 103+ 9 102+ 6 101+ 4 100+ 2 10 1+ 4 10 2 olarak (n = 3; m = 2) ifade edilebilir. O halde verilen say¬,
U =f103; 102; 101; 100; 10 1; 10 2g
kümesini elemanlar¬ cinsiden( veya lineer cebirsel terminoloji ile taban ele- manlar¬n¬n lineer bile¸simi olarak) ifade edilmi¸stir.
En genel olarak Rf(10) say¬sistemi
xf = qf 10e
format¬nda ifade edilebilen say¬lardan olu¸sur ve bu formatta ifade edilebilen say¬lara on tabanl¬ kayan noktal¬ say¬lar ad¬ verilir, burada qf ye, xf nin kesir k¬sm¬(veya mantis)ad¬verilir ve
qf = 0:d1d2:::dn; 0 di < 10
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr
2.2 Rf(10) Kayan nokta say¬sistemi 7
biçiminde olup, 0 < qf < 1 dir. e ise üs ad¬verilen bir tam say¬d¬r.
Kesirdeki noktan¬n pozisyonu, üs de¼gi¸stirilmek suretiyle sa¼ga veya sola kayd¬r¬labilece¼ginden ötürü bu formatta ifade edilen say¬lara kayan noktal¬
say¬lar ad¬verilmektedir. Örne¼gin on tabanl¬sistemde
123:4 = 12:34 101 = 1:234 102 = 0:1234 103
kayan nokta say¬lar¬birbirine e¸sittir ve bir say¬n¬n birden fazla kayan nokta gösterimi mevcuttur . Üs de¼gi¸stirmek suretiyle kesir noktas¬n¬n sola do¼gru nas¬l kayd¬r¬ld¬¼g¬na dikkat edelim.
On tabanl¬sistemde bir kayan noktal¬say¬y¬tan¬mlayabilmek için i¸saret, kesir( qf)ve üs( e) bilgileri gerekmektedir.
Gözlem 2.1. Yukar¬daki örnekte görüldü¼gü üzere ayn¬ say¬ birden fazla üs ve mantis ile ifade edilebilir. Di¼ger deyimle en genel halde kayan nokta gös- terimi tek türlü de¼gildir. Ancak normalize edilmi¸s formatta bu gösterim tek türlüdür: Kesir noktas¬n¬n sa¼g¬ndaki ilk rakam¬n s¬f¬rdan farkl¬olmas¬duru- munda kayan nokta format¬, say¬n¬n mantis ve üs de¼gerini tek türlü olarak belirler.
Örne¼gin
123:4 = 0:1234 103
gösteriminde kesir :1234; taban 10, üs 3 ve say¬n¬n inceli¼gi 4 tür.
TANIM 2.5. xf = qf 10e kayan nokta gösteriminde, qf = 0:d1d2:::dnnin d1 ile gösterilen ba¸slang¬ç pozisyonundaki rakam s¬f¬rdan farkl¬ise xf ye nor- malize edilmi¸s say¬ad¬ verilir. Bu durumda 0:1 qf < 1 dir. Normalize edilmi¸s formatta, kayan noktan¬n sa¼g¬ndaki rakamlar¬n say¬s¬na(burada n) xf nin inceli¼gi(precision) ad¬verilir.
Örne¼gin 0:1234 103 gösterimi 123:4 say¬s¬n¬n normalize edilmi¸s kayan nokta gösterimidir ve gösterimin inceli¼gi dörttür.
2.2.1 Rf(10) say¬sisteminin özellikleri
Kayan nokta say¬ sisteminde temsil edilebilecek say¬lar¬n¬n büyüklüklerini ve birbirlerine göre konumlar¬n¬ yak¬ndan görebilmek için bu say¬ sistemini yak¬ndan incelemek gerekir. Bunun için çok az say¬da nokta içerebilen özel
bir kayan nokta say¬sistemi göz önüne alaca¼g¬z. Özel diyoruz, çünkü hiç bir sistem bu kadar az say¬da nokta içermez. Gerçekçi olmayacak kadar az say¬da nokta içermesine ra¼gmen, örne¼gimizdeki kayan nokta sistemi ve üzerindeki i¸slem sonuçlar¬bilgisayarlarda kullan¬lan gerçek sistemlerin tipik özelliklerini içermektedir.
2.2.2 Özel bir Rf(10) örne¼gi:özel _Rf(10)
Çok az say¬da eleman içeren ve •ozel_Rf(10) R ile gösterece¼gimiz on ta- banl¬bir kayan nokta say¬sistemi gözönüne alal¬m. Sistemimizin normalize edilmi¸s
xf = qf 10e biçiminde say¬lardan olu¸stu¼gunu ve
e = 0; 1; 2 ve
qf = 0:d1d2; d1 6= 0; d2 = 0; 1; : : : ; 9 de¼gerlerini alabilece¼gini kabul edelim. Teknik bir ifade ile
Özel _ Rf(10) = xf = qf 10ej qf = 0:d1d2; di = 0; 1; : : : ; 9;
i = 0; 1; d1 6= 0; e = 0; 1; 2 noktalar¬nda olu¸smaktad¬r.
Özel _ Rf(10) kayan nokta kümesinin elemanlar¬n¬belirleyerek, say¬lar¬n birbirlerine göre konumlar¬n¬ve özel _ Rf(10)üzerindeki aritmetik i¸slemlerin özelliklerini incelemeye çal¬¸sal¬m:
Özel _ Rf(10) da temsil edilebilecek en büyük say¬ d1 = 9; d2 = 9 ve e = 2ile pozitif i¸saretli xf = 0:99 102 = 99say¬s¬d¬r. O halde negatif i¸sareti de dikkate ald¬¼g¬m¬zda
ozel_R• f(10) [ 99; 99]
oldu¼gunu görürüz.
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r
2.2 Rf(10) Kayan nokta say¬sistemi 9
Örnek sistemde her bir üs için temsil edilebilecek pozitif say¬lar a¸sa¼g¬- daki tablolarda gösterilmektedir.
e = 0
d1 = 1! 0:10 0:11 0:19 d1 = 2! 0:20 0:21 0:29 ... ... ... ... ... d1 = 9! 0:90 0:91 0:99 e = 1
d1 = 1! 1:0 1:1 1:9 d1 = 2! 2:0 2:1 2:9 ... ... ... ... ... d1 = 9! 9:0 9:1 9:9 e = 2
d1 = 1 ! 10 11 19
d1 = 2 ! 20 21 29
... ... ... ... ...
d1 = 9 ! 90 91 99
Her bir tabloda 90 adet olmak üzere özel _Rf(10) da 270 adet pozitif say¬n¬n yer ald¬¼g¬n¬görürüz. Negatif say¬lar¬n da ilavesiyle örnek kayan nokta say¬sistemimiz toplam 540 adet normalize edilmi¸s say¬dan olu¸s- maktad¬r.
Özel _Rf(10) da kom¸su noktalar aras¬ndaki uzakl¬¼g¬n e¸sit olmad¬¼g¬n¬
ve orjinden uzakla¸st¬kça kom¸su noktalar aras¬ndaki mesafenin e nin her bir yeni de¼geri için 10 kat¬(taban kadar) artt¬¼g¬n¬ gözlemliyoruz.
Ancak e nin ayn¬de¼geri için elde edilen ve birbirine kom¸su olan kayan nokta say¬lar¬aras¬ndaki uzakl¬¼g¬n e¸sit oldu¼gunu görüyoruz. Örne¼gin
–e = 0için kom¸su say¬lar aras¬ndaki uzakl¬k 0:01, –e = 1için kom¸su say¬lar aras¬ndaki uzakl¬k 0:1 ve
–e = 2 için kom¸su say¬lar aras¬ndaki uzakl¬k 1 dir ve e nin her bir de¼geri için elde edilen kom¸su say¬lar aras¬ndaki uzakl¬k, bir öncekilerin 10(yani taban) kat¬d¬r.
S¬f¬r say¬s¬n¬n normalize edilmi¸s bir kayan nokta say¬s¬olmad¬¼g¬n¬gö- rüyoruz. d1 = 0 de¼gerine izin verilmesi durumunda s¬f¬r say¬s¬n¬da sis- temde temsil edebiliriz. d1 = 0de¼gerine kar¸s¬l¬k gelen normalize edilmi¸s formatta ifade edilemeyen say¬lara subnormal say¬lar ad¬verilmekte- dir. Bu durumda sistemimizin subnormal say¬lar¬0:01; 0:02; :::; 0:09 ve bu say¬lar¬n negati‡eri ile birlikte 0:0; 0:0 say¬s¬olmak üzere toplam 20adet say¬d¬r. Burada 0:0 ve 0:0 ¬n her ikisi de s¬f¬r say¬s¬n¬temsil etmektedir.
Temsil edilebilecek en büyük pozitif say¬dan daha büyük bir say¬için inf(1) ve en küçük negatif say¬dan daha küçük bir say¬ durumunda inf( 1) sembolleri uygun subnormal formatta ifade edilirler. Ayr¬ca reel say¬larda belirsizlik durumlar¬olarak bilinen 0=0, 1=1 için NaN, Not a Number(say¬de¼gil) gösterimi kullan¬l¬r. Örnek say¬sistemimizde
99 + 1 = inf; 99 1 = inf; 0=0 =NaN
olarak sembolize edilir. Bu semboller için bellekte özel gösterimler kul- lan¬l¬r.
Özel_ Rf(10) da kesme ve yuvarlama: Özel _ Rf(10) say¬ sisteminde herhangi iki say¬ile gerçekle¸stirilen aritmetik i¸slem sonucu özel _ Rf(10) say¬sisteminin bir eleman¬de¼gilse(çok büyük ve küçük say¬olma du- rumu hariç), bu durumda elde edilen sonuç en yak¬n özel _ Rf(10) say¬s¬na kesme veya yuvarlama prensibine göre yuvarlan¬r. Kesme prensibine göre yuvarlama i¸slemi a¸sa¼g¬da görüldü¼gü biçimde noktadan sonraki k¬sm¬n kesilmesi suretiyle gerçekle¸stirilir:
10:4 :
= 10; 10:5 :
= 10; 10:7 :
= 10
Yuvarlama prensibinde ise virgülden(veya noktadan) sonraki k¬s¬m do¼gru- dan kesilmeyerek, virgülden(veya noktadan) sonraki ilk rakam¬n ta- ban¬n yar¬s¬ndan büyük veya e¸sit olmas¬ veya küçük olmas¬ durum- lar¬nda farkl¬ yuvarlama i¸slemleri gerçekle¸stirilir. A¸sa¼g¬daki örnekleri inceleyelim:
10:4 :
= 10; 10:5 :
= 11; 10:7 :
= 11
¸
Simdi de yuvarlama i¸slemlerinin •Ozel_Rf(10) üzerindeki aritmeti¼gi nas¬l etkiledi¼gini inceleyelim:
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .tr
2.2 Rf(10) Kayan nokta say¬sistemi 11
Özel_Rf(10)da toplama i¸slemine göre birle¸sme özelli¼gi geçerli de¼gildir:
·I¸slemlerin en yak¬n say¬ya yuvarlama prensibine göre gerçekle¸stirildi¼gini kabul edersek
(0:3 + 0:4) + 10 = 0:7 + 10 :
= 11 6= 10 :
= 0:3 + (0:4 + 10)
elde ederiz. Çünkü 10:7 say¬ sistemimizin bir eleman¬ de¼gildir ve sis- temde bu say¬ya en yak¬n say¬11 dir. Benzer biçimde 10:4 :
= 10 dur.
E¼ger i¸slemlerin kesme prensibine göre gerçekle¸stirildi¼gini kabul edersek (0:6 + 0:7) + 10 = 116= 10 = 0:6 + (0:7 + 10)
elde ederiz, çünkü kesme prensibine göre 11:3 :
= 11 ve 10:7 :
= 10;
10:6 :
= 10 dur.
Özel_Rf(10) toplama i¸slemine göre de kapal¬de¼gildir: Örne¼gimiz için 50; 602 özel_Rf(10)
fakat
110 =2 özel_Rf(10) dur.
R > Özel_Rf(10) dönü¸sümü ve hata: x 2 RnRf(10) [ 99; 99]
olmas¬ durumunda, x yerine xf 2 Rf(10) yakla¸s¬m¬ kullan¬l¬r. Söz konusu yakla¸s¬m kesme veya en yak¬n say¬ya yuvarlama esas¬na göre gerçekle¸stirilir: x = 11:6 say¬s¬gözönüne ald¬¼g¬m¬z örnek kayan nokta say¬sisteminde temsil edilmemektedir. Bu durumda kesme prensibine göre xf = 11 yakla¸s¬m¬kullan¬l¬r. Bu durumda olu¸san mutlak hata
x = 11:6 11 = 0:6 ve ba¼g¬l hata ise
b(x) = x
x = 0:6 11:6
= 0:0517:
dir. En yak¬n say¬ya yuvarlama prensibine göre ise kesir k¬s¬m at¬larak, bir öndeki rakama 1 ilave etmek suretiyle xf = 12 al¬n¬r. Bu durumda olu¸san mutlak hata
x = 11:6 12 = 0:4
ve ba¼g¬l hata ise
b(x) = x
x = 0:4 11:6
=: 0:0345
dir.
¸
Simdi de gerçek bir kayan nokta sistemine dönü¸sümde olu¸sabilen hatalar¬
inceleyelim:
2.2.3 R > Rf(10) dönü¸sümü ve hata
x2 R yerine xf 2 Rf yakla¸s¬m¬n¬n al¬nmas¬durumunda yuvarlama hatalar¬
olu¸sur:
On tabanl¬sistemde
x = (0:d1 dndn+1 ) 10e; d1 6= 0; 0 di 9; i = 1; 2; :::; 9 say¬s¬için kesme yöntemine göre Rf deki yakla¸s¬m
xf = (0:d1 dn) 10e
olarak tan¬mlan¬r. Bu durumda olu¸san mutlak hatan¬n üst s¬n¬r¬
x = x xf
= (0:0:::0dn+1 ) 10e
= (dn+1:dn+2 ) 10 (n+1) 10e 10 10 n 1 10e= 10e n
olarak tahmin edilebilir(burada dn+1:dn+2 10 e¸sitsizli¼gini kul- land¬k).
Yine on tabanl¬sistemde
x = (0:d1 dndn+1 ) 10e; 0 di 9; d1 6= 0; i = 1; 2; :::; 9 say¬s¬için en yak¬n say¬ya yuvarlama esas¬na göre Rf de
xf = (0:d1 dn) 10e; dn+1 4 (0:d1 dn+ 10 n) 10e dn+1 5
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .tr
2.2 Rf(10) Kayan nokta say¬sistemi 13
olarak tan¬mlan¬r. Örne¼gin dn+1 4 olmas¬durumunda x = x xf
= (0:01 0ndn+1 ) 10e (dn+1:dn+2 ) 10 (n+1)+e 5 10 (n+1)+e= 1
2 10e n olarak tahmin edilebilir.dn+1 5olmas¬durumunda ise
x = x xf
= (0:d1 dndn+1 ) 10e (0:d1 dn+ 10 n) 10e
= (0:01 0ndn+1 ) 10e 1 10e n
= (0:dn+1 ) 10e n 10e n
= [1 (0:dn+1 )] 10e n olup,
j xj = [1 (0:dn+1 )] 10e n 1
2 10e n (2.3) elde ederiz. O halde en yak¬n say¬ya göre yuvarlama esas¬na göre dn+1
de¼gerinden ba¼g¬ms¬z olarak
j xj 1
2 10e n elde ederiz.
Öte yandan yukar¬da incelenen yuvarlama i¸slemin gerçekle¸stirilme biçi- minden ba¼g¬ms¬z olarak
j"b(x)j = j xj
jxj (2.4)
1
2 10e n
(0:d1 dndn+1 ) 10e 1
2 10 n+1 = 5 10 n elde ederiz çünkü d1 1 oldu¼gundan
0:d1 dndn+1 >= 10 1
dir. Ba¼g¬l hata için elde etti¼gimiz üst s¬n¬r¬ max ile gösterece¼giz. O halde 10 tabanl¬say¬sistemi için
max = 5 10 n dir.
2tabal¬sistem için
max = 1
2 2 n+1 = 2 n
olarak elde edililir ve bu de¼ger bilgisayar epsilonu olarak adland¬r¬l¬r:
j"b(x)j max d¬r.
ÖRNEK 2.1.
x = 3:14159265358979
= 0:314159265358979 101 için en yak¬n say¬ya yuvarlama prensibine göre elde edilen
xf :
= 0:31416 101
yakla¸s¬m¬ ile olu¸san mutlak ve ba¼g¬l hatay¬ belirleyiniz ve (2.3) ,(2.4) ile ve- rilen üst s¬n¬rlar¬n geçerli oldu¼gunu gözlemleyiniz.
x = x xf
= 7:34641020683213 10 6
= 0:0734641020683213 10 4 1
2 101 5= 1
2 10e n ve
"b(x) = x x
1
2 101 5
0:314159265358979 101
< 1
2 10 4
olup, (2.3) ,(2.4) ile verilen üst s¬n¬rlar geçerlidir.
Bir di¼ger hata kayna¼g¬on tabanl¬sistemden iki tabanl¬sisteme dönü¸sümde olu¸san hatalard¬r.
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r
2.3 Rf(10) ! Rf(2) Taban dönü¸sümleri ve ilgili hatalar 15
2.3 Rf(10) ! Rf(2) Taban dönü¸sümleri ve il- gili hatalar
Bilgisayarlar¬n ço¼gu iki tabanl¬ say¬ sistemini kullan¬r. Kulland¬¼g¬m¬z on tabanl¬ say¬ sisteminde sonlu say¬da rakamla temsil edilebilen bir say¬n¬n bilgisayarlar¬n kulland¬klar¬iki tabanl¬say¬sisteminde sonlu say¬da rakamla ifade edilememe ihtimali söz konusudur.
Bu noktay¬ aç¬klamak için öncelikle göz önüne ald¬¼g¬m¬z bilgisayar sis- teminin iki tabanl¬ say¬ sistemini kulland¬¼g¬n¬ kabul ederek, iki tabanl¬ ve on tabanl¬say¬sistemleri aras¬ndaki dönü¸sümün nas¬l gerçekle¸stirildi¼gini in- celeyelim:
2.3.1 Rf(2) ve Rf(2) > Rf(10) dönü¸sümü
Ikili sistemde sonlu say¬da basama¼· ga sahip herhangi bir x = (c1c2 cn+1:d1d2 dm)2
reel say¬s¬, uygun m 0; n 0 tamsay¬lar¬için (2.1) e benzer olarak
V =f2n; 2n 1; ; 20; 2 1; ; 2 mg (2.5) kümesinin veya taban elemanlar¬n¬lineer kombinasyonu olarak ifade edilebilir.
Diyer deyimle uygun ci; di 2 f0; 1g ve n 0; m 0tamsay¬lar¬için x = (c1c2 cn+1:d1d2 dm)2
= c12n+ c22n 1+ + cn+120 (2.6) +d12 1+ + dm 12 m+1+ dm2 m
biçiminde V kümesinin elemanlar¬n¬n lineer bile¸simi olarak yaz¬labilir.
Rf(2) ile gösterdi¼gimiz iki tabanl¬ sistemde kullan¬lan rakamlar 0 ve 1 olup, taban ise 2 dir.
·Ikili say¬sisteminde herhangi bir tam say¬ci 2 f0; 1g rakamlar¬ve 2 nin azalan kuvvetleri cinsinden ifade edilerek on tabanl¬ sisteme dönü¸stürülür.
Örne¼gin
(101101)2 = 1 25+ 0 24+ 1 23+ 1 22+ 0 21+ 1 20
= 32 + 8 + 4 + 1
= 4 101+ 5 100
= (45)10
Iki tabanl¬sistemdeki kesirli bir say¬da benzer biçimde on tabanl¬sisteme· dönü¸stürülebilir. Örne¼gin
(0:101111)2 23 = (101:111)2
= 1 22+ 0 21+ 1 20+ 1 2 1+ 1 2 2+ 1 2 3
= 4 + 1 + 1=2 + 1=4 + 1=8 = 5:875:
olarak elde edilir.
Genelde
P (x) = c1xn+ c2xn 1+ + cnx + cn+1 ve
Q(x) = dmxm+ dm 1xm 1 + + d1 olmak üzere
(c1c2 cn+1:d1d2 dm)2 iki tabanl¬gösteriminin on tabanl¬kar¸s¬l¬¼g¬n¬(2.6) den
P (2) + 1
2Q(1=2) (2.7)
olarak ifade edebiliriz. P (x) polinomunun x = 2 noktas¬nda ve Q(x) polino- munun x = 1=2 noktas¬ndaki de¼gerini ise MATLAB/Octave Polyval fonk- siyonu ile hesapl¬yoruz. Ayn¬ i¸slemi 3. Bölümde inceleyece¼gimiz Horner yöntemi ile de gerçekle¸stirebiliriz.
c = [c1; c2; cn+1]; d = [d1; d2; ; dm] olmak üzere
(c:d)2
ikili say¬s¬n¬n on tabanl¬ gösterimini hesaplayan Program 2.1 a¸sa¼g¬da verilmektedir. ·Ikili sistemdeki say¬n¬n kesir k¬sm¬mevcut de¼gilse d = 0; tam k¬sm¬mevcut de¼gilse c = 0 olarak girilmelidir.
Örnek Uygulamalar:
(101101)2say¬s¬n¬n on tabanl¬gösterimini Program 2.1 ile belirleyiniz.
>> c = [1 0 1 1 0 1];
>> d = 0;
>> ikidenon(c; d)
Onlu taban gosterim: 45
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr
2.3 Rf(10) ! Rf(2) Taban dönü¸sümleri ve ilgili hatalar 17
%--- function ikidenon(ikitam,ikikesir)
% ikili sistemden onlu sisteme donusum
% ikitam, tam kesime ait 0 ve 1 ler dizisi
% ikikesir: kesirli kesime ait 0 ve 1 ler dizisi, ec.
x0=2;
tamon=polyval(ikitam,x0); % x0=1/2;
ikikesir=fliplr(ikikesir); % kesir indislerinin tersten dizilimi tamkesir=polyval(ikikesir,x0);
sonuc=tamon+1/2*tamkesir;
fprintf(’Onlu taban gosterim: ’); disp(num2str(sonuc));
%--- Program 2.1: Ikili sistemden onlu sisteme dönü¸süm uygulamas¬
(101:111)2say¬s¬n¬n on tabanl¬gösterimini Program 2.1 ile belirleyiniz.
>>c = [1 0 1]; d = [1 1 1];
>> ikidenon(c; d)
Onlu taban gosterim:5:875
(0:001)2 say¬s¬n¬n on tabanl¬gösterimini Program 2.1 ile belirleyiniz.
>>c = 0; d = [0 0 1];
>> ikidenon(c; d)
Onlu taban gosterim: 0:125
2.3.2 Rf(10) > Rf(2) dönü¸sümü
Tamsay¬dönü¸sümü: Bu dönü¸süm için a¸sa¼g¬daki örne¼gi inceleyelim.
ÖRNEK 2.2. 1964 say¬s¬n¬iki tabanl¬gösterimini elde ediniz.
Çözüm.
210 = 1024
oldu¼gu dikkate al¬nd¬¼g¬nda
1964 = c1210+ c229+ c1021+ c1120 sa¼glanacak biçimdeki
ci 2 f0; 1g; i = 0; 1; :::; 10
sabitlerini belirlemeliyiz. En son sabit olan c11’in 1964’ün ikiye bölümünde elde edilen kalan oldu¼gu aç¬kt¬r. Yani
1964 = 2 982 + c11
dur ve 1964 çift say¬oldu¼gu için c11= 0d¬r. ¸Simdi ise e¸sitli¼gin her iki taraf¬n¬
ikiye bölerek elde edilen
982 = c129 + c228+ + c921+ c10
ifadesinden de c10’nun 982’nin 2’ye bölümünden elde edilen kalan oldu¼guna dikkat edelim. Yani
982 = 2 491 + c10 dur. Benzer i¸slemler tekrar edilerek
1964 = 2 982 + c11 ) c11= 0 982 = 2 491 + c10 ) c10= 0 491 = 2 245 + c9 ) c9 = 1 245 = 2 122 + c8 ) c8 = 1 122 = 2 61 + c7 ) c7 = 0
61 = 2 30 + c6 ) c6 = 1 30 = 2 15 + c5 ) c5 = 0 15 = 2 7 + c4 ) c4 = 1
7 = 2 3 + c3 ) c3 = 1 3 = 2 1 + c2 ) c2 = 1 1 = 2 0 + c1 ) c1 = 1 elde edilir. O halde
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .tr
2.3 Rf(10) ! Rf(2) Taban dönü¸sümleri ve ilgili hatalar 19
1964 = 1 103+ 9 102+ 6 101+ 4 100
= c1210+ c229+ + c922+ c1021+ c11
= 1 210+ 1 29 + 1 28+ 1 27
+ 0 26+ 1 25+ 0 24+ 1 23+ 1 22 + 0 21+ 0 20
olup,
1964 = (11110101100)2 iki tabanl¬gösterimini elde ederiz.
Özetle on tabanl¬say¬y¬iki tabanl¬bir say¬ya dönü¸stürmek için uygula- mam¬z gereken pratik kural ¸sudur:
Say¬ikiye bölünerek kalan¬not ettikten sonra bölüm k¬sm¬ile ayn¬i¸slemi tekrarlan¬r. Elde edilen kalanlar¬n sondan ba¸sa do¼gru yan yana dizilimi ilgili say¬n¬n iki tabanl¬gösterimidir.
Program 2.2 yukar¬da aç¬klanan yöntemi kullanmak suretiyle, girilen on tabanl¬pozitif bir say¬n¬n iki tabanl¬gösterimini belirler:
>> tamdaniki(1964) ans =
1 1 1 1 0 1 0 1 1 0 0
Program 2.2 ile Tablo 2.1 ile verilen dönü¸sümleri elde ederiz:
On tabanl¬say¬ ·Iki tabanl¬gösterimi
2 10
3 11
4 100
5 101
10 1010
100 1100100
1000 1111101000
Tablo 2.1: On tabanl¬baz¬tam say¬lar¬n ikili sistem gösterimleri
S¬f¬r ve bir aras¬ndaki on tabanl¬kesirli bir say¬n¬n iki taban¬na dönü¸sümü:
On tabanl¬sistemde ifade edilen s¬f¬r ve bir aras¬ndaki herhangi bir ke- sirli say¬ 10 nun negatif kuvvetleri yard¬m¬yla ifade edilebilece¼gi gibi,
%--- function ikili=tamdaniki(sayi)
% Onlu sistem tam say¬n¬ ikili sisteme dönü¸stürür, ec.
sayac=1;
while sayi>=2
kalan=mod(sayi,2);
ikili(sayac)=kalan; % kalanlar dizisi sayi=(sayi-kalan)/2;
sayac=sayac+1;
end
ikili(sayac)=sayi; % son kalan eleman ikili=ters_cevir(ikili);
function ters_ikili=ters_cevir(ikili) m=length(ikili);
for i=1:m % ikili dizisinin tersten dizilimi ters_ikili(i)=ikili(m+1-i); % MATLAB/Octave fliplr fonksiyonu
end % ayn¬ i¸slemi gerçekle¸stirir
%---
Program 2.2: Onlu sistem tam say¬s¬n¬ikili sisteme dönü¸stürme uygulamas¬
iki tabanl¬say¬sisteminde de 2 nin negatif kuvvetleri yard¬m¬yla ifade edilebilir: Kesirli say¬dönü¸sümünde [x] notasyonu ile x say¬s¬n¬n tam k¬sm¬n¬ ve fxg ile de kesirli k¬sm¬n¬ gösterelim. Kesirli say¬ taban dönü¸sümünü a¸sa¼g¬daki örnek üzerinde inceleyelim:
ÖRNEK 2.3. A = 0:125 say¬s¬n¬n ikili sistemdeki gösterimini belirleyiniz.
Çözüm.
On tabanl¬sistemde
A = 0:125 = 1 10 1+ 2 10 2+ 5 10 3 olarak ifade edilir. Ayn¬say¬y¬iki tabanl¬sistemde
A = 0:125 = (0:d1d2d3d4: : :)
= d1 2 1+ d2 2 2+ d3 2 3+ d4 2 4+
¸seklinde ifade etti¼gimizi varsayal¬m. ·Ifadenin her iki yan¬n¬2 ile çarparsak 2A = 0:250 = d1+ d2 2 1+ d3 2 2+ d4 2 3+
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k t u .e d u .tr
2.3 Rf(10) ! Rf(2) Taban dönü¸sümleri ve ilgili hatalar 21
elde ederiz. Burada
d1 = [2A] = 0 ve
k1 =f2Ag = 0:250 = d2 2 1+ d3 2 2+ d4 2 3+ dir. Her iki yan¬tekrar 2 ile çarparak
2k1 = 0:50 = d2+ d3 2 1+ d4 2 2+ d2 = [2k1] = 0
d¬r. Benzer biçimde
k2 =f2k1g = 0:50 = d3 2 1+ d4 2 2+ 2k2 = 1:0 = d3+ d4 2 1+
d3 = [2k2] = 1 ve
k3 =f2k2g = 0
elde edilir. Böylece kesir k¬sm¬s¬f¬r olana kadar i¸sleme devam ettirilerek elde edilen di; i = 1; 2; : : :de¼gerleri kaydedilir. O halde
A = 0:125 = (0:001)2 iki tabanl¬gösterimi elde edilir.
Yukar¬daki örnekte özetlenen s¬f¬r ve bir aras¬ndaki kesirli bir say¬n¬n iki taban¬na dönü¸sümünü gerçekle¸stiren Program 2.3 a¸sa¼g¬da verilmektedir.
Program 2.3 ikili sistem gösteriminin noktadan(virgülden) sonraki basamak- lar¬n¬vermektedir:
>> kesirdeniki(0:125) ans = 001
O halde istenilen gösterim 0:001 dir.
Program 2.3 ile Tablo 2.2 ile verilen dönü¸sümleri elde ederiz:
Tablo 2.2 de 0:1 say¬s¬na kar¸s¬l¬k gelen ikili gösterimin, 0011 rakamlar grubunun tekrar etmesiyle, devirli bir say¬oldu¼gu görülmektedir.
On tabanl¬herhangi bir kesirli bir say¬n¬n iki taban¬na dönü¸sümü:
ÖRNEK 2.4. 1964:125 say¬s¬n¬n iki tabanl¬gösterimini elde ediniz.
%--- function d=kesirdeniki(sayi)
% On tabanl¬ say¬s¬n¬ 0<sayi<1, iki tabanl¬ sisteme dönü¸stürür, ec.
tamsayi=fix(sayi);kesirsayi=sayi-tamsayi;
kesir(1)=2*kesirsayi-fix(2*kesirsayi);
d(1)=fix(2*kesirsayi);
i=1;
while (kesir(i)>0)&&(i<23) i=i+1;
d(i)=fix(2*kesir(i-1)) ;
kesir(i)=2*kesir(i-1)-fix(2*kesir(i-1));
end
%---
Program 2.3: On tabanl¬kesirli say¬s¬n¬n ikili sisteme dönü¸süm uygulamas¬
Kesirli say¬ ·Iki tabanl¬gösterimi
0:125 0:001
0:250 0:01
0:5 0:1
0:75 0:11
0:1 0.0 0011
Tablo 2.2: Baz¬kesirli say¬lar¬n ikili sistem gösterimleri.
Çözüm.
Bunun için yapmam¬z gereken i¸slem, Örnek 2.2 ve Örnek 2.3’e ait sonuçlar¬
birle¸stirmektir. On tabanl¬sistemde
1964:125 = 1 103+ 9 102+ 6 101+ 4 100 +1 10 1+ 2 10 2+ 5 10 3
olacak ¸sekilde ifade edildi¼gi gibi, tam ve kesirli k¬s¬mlara kar¸s¬l¬k gelen iki tabanl¬gösterimler de birle¸stirildi¼ginde
1964:125 = (1111010100:001)2
= (1:111010100001)2 29
normalize edilmi¸s kayan nokta gösterimi elde edilir.
K a ra d e n iz Te k n ik M a t e m a t ik , e rh a n @ k tu .e d u .t r