Culegere de probleme de Analiz˘a numeric˘a
Culegere de probleme de Analiz˘a numeric˘a
Culegere de probleme de Analiz˘a numeric˘a
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
46 Teoria erorilor<br />
Problema 3.4.6 Depunând 100$ pe zi într-un cont cu o rată a dobânzii <strong>de</strong> 6%<br />
calculată zilnic la sfârs¸itul anului avem 100[(1+i/n)−1]/(i/n)$.<br />
Dacă p = 2 s¸i p = 24 (ca în IEEE) obt¸inem 37615.45$ care comparat cu<br />
răspunsul exact, 37614.05$ dă o discrepant¸ă <strong>de</strong> 1.40$. Explicat¸i fenomenul.<br />
Solut¸ie. Expresia1+i/n implică adăugarea unui 1 la 0.0001643836, <strong>de</strong>ci bit¸ii<br />
<strong>de</strong> ordin mic ai lui i/n se pierd. Această eroare <strong>de</strong> rotunjire este amplificată când<br />
(1+i/n) este ridicat la puterea an−a. Expresia(1+i/n) n se rescrie sub forma<br />
exp[nln(1 + i/n)]. Problema este acum calculul lui ln(1 + x) pentru x mic. O<br />
posibilitate ar fi să utilizăm aproximarealn(1+x) ≃ x s¸i se obt¸ine 37617.26$ cu<br />
o eroare <strong>de</strong> 3.21$ <strong>de</strong>ci mai mare <strong>de</strong>cât în situat¸ia anterioară. Rezultatul <strong>de</strong> mai jos<br />
ne permite să calculăm precis ln(1+x)(37614.67$, eroarea 2c). Se presupune că<br />
LN(x) aproximează lnx cu o precizie ≤ 1/2ulp. Problema care o rezolvă este<br />
aceea că atunci cândxeste micLN(1⊕x) nu este apropiat <strong>de</strong>ln(1+x) <strong>de</strong>oarece<br />
1⊕xnu este precis. Adică valoarea calculată pentru ln(1+x) nu este apropiată<br />
<strong>de</strong> valoarea actuală când x ≤ 1.<br />
I. Dacă ln(1+x) se calculează utilizând formula<br />
⎧<br />
⎪⎨<br />
ln(1+x) =<br />
⎪⎩<br />
x dacă 1⊕x = 1<br />
xln(1+x)<br />
(1+x)−1<br />
dacă 1⊕x = 1<br />
eroarea relativă este cel mult 5ε când 0 ≤ x < 3/4 cu condit¸ia ca scă<strong>de</strong>rea să se<br />
realizeze cu o cifră <strong>de</strong> gardă,ε < 0.1 s¸i ln este calculat cu o precizie <strong>de</strong>1/2ulp.<br />
Această formulă este operat¸ională pentru orice valoare a luix, dar este interesantă<br />
dacăx ≪ 1, când apare anulare catastrofală în formula naivă pentru calculul<br />
luiln(1+x). Des¸i formula pare misterioasă ea are o explicat¸ie simplă.<br />
ln(1+x) = xln(1+x)<br />
x<br />
= xµ(x)<br />
µ(x) = ln(1+x)<br />
x<br />
va suferi o eroare mare când se adaugă 1 la x. Totus¸i µ este aproape constantă<br />
<strong>de</strong>oarece ln(1+x) ≃ x. Deci dacăxse schimbă put¸in eroarea va fi mică. Cu alte<br />
cuvinte, dacă x ≃ x, xµ(x) va fi o aproximare bună pentru xµ(x) = ln(1 + x).<br />
Există o valoare pentru x astfel încât x +1 să poată fi calculat precis? Deci x =<br />
(1⊕x)⊖1, <strong>de</strong>oarece în acest caz 1+ x = 1⊕x.<br />
Lema 3.4.7 Dacă µ(x) = ln(1+x)<br />
, atunci pentru0 ≤ x ≤<br />
x<br />
3<br />
4<br />
1/2 ≤ µ(x) ≤ 1 s¸i |µ ′ (x)| ≤ 1/2.