• Sonuç bulunamadı

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

N/A
N/A
Protected

Academic year: 2021

Share "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"

Copied!
43
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

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,

(2)

¸

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

(3)

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 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 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.

(4)

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

(5)

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 >

(6)

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

(7)

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

(8)

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 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 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

(9)

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.

(10)

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

(11)

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:

·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.

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

(12)

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 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

(13)

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

(14)

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

(15)

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

(16)

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 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

(17)

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

(18)

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

(19)

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,

(20)

%--- 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¬ 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

(21)

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.

(22)

%--- 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

Referanslar

Benzer Belgeler

Kök kuvvetleri farkl› olan köklü say›lar› çarpmak için, önce kök kuvvetleri eflitlenir.. Köklü Say›larda Toplama ve Ç›karma

Lineer Olmayan Skaler Fark Denklemleri.

Örnek 4.8 için verilen program¬ veya biraz daha de¼gi¸ sik olarak a¸ sa¼g¬da verilen program¬ referans alarak, seçece¼giniz frekanslardaki iki sinyalin toplam¬olarak ifade

Ayr¬k Fourier dönü¸sümü için genelde kullan¬lan bir özel notasyon yoktur, ancak burada biz kolayl¬k aç¬s¬ndan c = F ( f ) notasyonunu kullanaca¼ g¬z. Matris-vektör

Uzunlu¼ gu N olan vektör için ¤t() ile elde edilen sonuçlar, fourier() ile elde etti¼ gimiz sonuclar¬n N kat¬na e¸sit olur. Bile¸sen say¬s¬fazla olan uygulamalar için

Bunun anlam¬; tüm rakamlar desimal noktan¬n sa¼ g¬nda kalacak ¸sekilde ve ilk rakam s¬f¬r olmayacak ¸sekilde desimal nokta kayd¬r¬l¬r ve 10 un uygun kuvvetleri kullan¬l¬r...

Her ikisi de ayn¬boyutlu olan A ve B matrislerini toplarken ayn¬sat¬r ve sütundaki elemanlar

I¸ · sletme problemlerinin matematiksel modellerinde n de¼ gi¸ sken taraf¬ndan ayn¬anda sa¼ glanmas¬gereken m adet lineer denklemden olu¸ san sistemlerle s¬kl¬kla kar¸