Culegere de probleme de Analiz˘a numeric˘a
Culegere de probleme de Analiz˘a numeric˘a
Culegere de probleme de Analiz˘a numeric˘a
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