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

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.

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

Saved successfully!

Ooh no, something went wrong!