20.07.2013 Views

Culegere de probleme de Analiz˘a numeric˘a

Culegere de probleme de Analiz˘a numeric˘a

Culegere de probleme de Analiz˘a numeric˘a

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.4. Aritmetică în virgulă flotantă 41<br />

Pentru cealaltă variantă<br />

(x⊗x)⊖(y ⊗y) = [x 2 (1+δ1)−y 2 (1+δ2)](1+δ3) =<br />

= [(x 2 −y 2 )(1+δ1)+(δ1 −δ2)y 2 ](1+δ3)<br />

Dacă x ≈ y ⇒ (δ1 − δ2)y 2 ≈ x 2 − y 2 , atunci (x − y)(x+y) este mai precis<br />

<strong>de</strong>cât x 2 −y 2<br />

δ = (x⊗x)⊖(y ⊗y)−(x2 −y 2 )<br />

x 2 −y 2<br />

= (1+δ1)(1+δ3)+ (δ1 −δ2)(1+δ3)y 2<br />

x 2 −y 2<br />

−1<br />

= δ1 +δ3 +δ1δ3 + y2<br />

x 2 −y 2(δ1 −δ2 +δ1δ3 −δ2δ3).<br />

Problema 3.4.2 ( Conversia binar zecimal (scriere s¸i apoi citire))<br />

Pentru precizie simplă avem p = 24 s¸i 2 24 < 10 8 <strong>de</strong>ci 8 cifre par suficiente<br />

pentru a recupera numărul original (totus¸i nu este as¸a!). Când un număr binar<br />

IEEE simplă precizie este convertit la cel mai apropiat număr zecimal <strong>de</strong> 8 cifre,<br />

nu este întot<strong>de</strong>auna posibil să recuperăm unic numărul binar din cel zecimal.<br />

Dacă se utilizează nouă cifre, totus¸i, conversia numărul zecimal în binar va recupera<br />

numărul flotant originar.<br />

Demonstrat¸ie. Numerele binare în simplă precizie din intervalul [10 3 ,2 10 ) =<br />

[1000,1024) au zece bit¸i în stânga mărcii zecimale s¸i 14 la dreapta. Există <strong>de</strong>ci<br />

(2 10 − 10 3 ) = 393216 numere binare diferite în acest interval. Dacă numerele<br />

zecimale sunt reprezentate cu 8 cifre avem(2 10 −10 3 )10 4 = 240000 numere zecimale<br />

în acest interval. Deci nu există nici o modalitate <strong>de</strong> a reprezenta prin 240000<br />

<strong>de</strong> numere zecimale 393216 numere binare diferite. 8 cifre sunt insuficiente!<br />

Pentru a arăta că nouă cifre sunt suficiente trebuie să arătăm că spat¸iul dintre<br />

numerele binare este întot<strong>de</strong>auna mai mare <strong>de</strong>cât cel dintre numerele zecimale.<br />

Aceasta ne asigură că, pentru fiecare număr zecimal posibil, intervalul <strong>de</strong> forma<br />

N − 1 1<br />

ulp,N +<br />

2 2 ulp<br />

<br />

cont¸ine cel put¸in un număr binar. Astfel, fiecare număr<br />

binar se rotunjes¸te la un număr zecimal unic, care ne conduce la un număr binar<br />

unic.<br />

Pentru a arăta că spat¸iul dintre numerele zecimale este întot<strong>de</strong>auna mai mic<br />

<strong>de</strong>cât spat¸iul dintre numerele binare să consi<strong>de</strong>răm intervalul [10 n ,10 n+1 ]. Pe<br />

acest interval, spat¸iul dintre două numere zecimale consecutive este 10 (n+1)−9 .

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!