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ă 43<br />

Concluzie. Dublarea preciziei schimbă perturbat¸ia dinnε în nε 2 ≪ ε.<br />

Există o metodă <strong>de</strong> însumare în simplă precizie a unui număr mare <strong>de</strong> numere,<br />

introdusă <strong>de</strong> Kahan.<br />

Ea utilizează aceeas¸i strategie ca însumarea directă, dar la fiecare operat¸ie <strong>de</strong><br />

adunare eroarea <strong>de</strong> rotunjire este estimată s¸i compensată cu un termen <strong>de</strong> corect¸ie.<br />

Principiul <strong>de</strong> estimare este explicat în figura 3.1, un<strong>de</strong> semnificant¸ii termenilor a<br />

s¸ibsunt reprezentat¸i prin dreptunghiuri. El poate fi reprezentat prin formula<br />

e = ((a⊕b)⊖a)⊖b = (s⊖a)⊖b. (3.1)<br />

Astfel, într-o aritmetică binară cu rotunjire, pentrua ≥ b are loc<br />

e = s−(a+b);<br />

<strong>de</strong>ci, eroarea <strong>de</strong> rotunjire este dată exact <strong>de</strong> (3.1).<br />

a a1 a2<br />

b b1 b2<br />

s := a⊕b a1 a2 +b1<br />

t := s⊖a b1 0<br />

e := t⊖b −b2<br />

Figura 3.1: Estimarea erorii <strong>de</strong> rotunjires−s = −b2<br />

Pentru însumare compensată la fiecare pas eroarea <strong>de</strong> însumare este estimată<br />

în conformitate cu principiul lui Kahan s¸i utilizată pentru ajustare (algoritmul 1).<br />

Algoritmul 1 Însumare Kahan<br />

s := x1;<br />

e := 0;<br />

fori = 2 to n do<br />

y := xi −e;<br />

t := s+y;<br />

e := (t−s)−y;<br />

s := t<br />

end for

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

Saved successfully!

Ooh no, something went wrong!