20.07.2013 Views

Teoria erorilor si aritmetica ˆın virgula flotant˘a

Teoria erorilor si aritmetica ˆın virgula flotant˘a

Teoria erorilor si aritmetica ˆın virgula flotant˘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.

<strong>Teoria</strong> <strong>erorilor</strong> ¸<strong>si</strong> <strong>aritmetica</strong> în <strong>virgula</strong> flotantă<br />

1 Probleme<br />

Radu T. Trîmbit¸a¸s<br />

11 martie 2013<br />

P1. Scriet¸i o funct¸ie Matlab pentru a calcula ep<strong>si</strong>lon-ul ma¸<strong>si</strong>nii.<br />

P2. Scriet¸i funct¸ii Matlab pentru calculul lui <strong>si</strong>n x ¸<strong>si</strong> cos x folo<strong>si</strong>nd formula<br />

lui Taylor:<br />

P3. Fie<br />

<strong>si</strong>n x = x − x3<br />

3!<br />

cos x = 1 − x2<br />

2!<br />

+ x5<br />

5!<br />

+ x4<br />

4!<br />

x2n+1<br />

+ ... + (−1)n + ...<br />

(2n + 1)!<br />

x2n<br />

+ ... + (−1)n + ....<br />

(2n)!<br />

S¸tim de la cursul de Analiză matematică următoarele:<br />

• modulul erorii este mai mic decat modulul primului termen neglijat;<br />

• raza de convergent¸ă este R = ∞.<br />

Ce se întâmplă pentru x = 10π (¸<strong>si</strong> în general pentru x = 2kπ, k mare)?<br />

Explicat¸i fenomenul ¸<strong>si</strong> propunet¸i un remediu.<br />

En =<br />

1<br />

0<br />

1<br />

x n e x−1 dx.


Se observă că E1 = 1/e ¸<strong>si</strong> En = 1 − nEn−1, n = 2, 3, . . .<br />

Se poate arătă că<br />

0 < En < 1<br />

n + 1<br />

¸<strong>si</strong> dacă E1 = c avem<br />

<br />

0, pentru c = 1/e<br />

limn→∞ En =<br />

∞ altfel.<br />

Explicat¸i fenomenul, gă<strong>si</strong>t¸i un remediu ¸<strong>si</strong> calculat¸i e cu precizia eps.<br />

P4. Scriet¸i funct¸ii Matlab pentru calculul lui <strong>si</strong>n x ¸<strong>si</strong> cos x folo<strong>si</strong>nd aproximarea<br />

Padé în locul formulei lui Taylor. Atent¸ie la reducerea rangului.<br />

P5. Scriet¸i o funct¸ie MATLAB care prime¸ste la intrare un număr flotant<br />

(<strong>si</strong>mplă sau dublă precizie) ¸<strong>si</strong> returnează reprezentarea sa binară pe<br />

componente: semn, exponent deplasat ¸<strong>si</strong> semnificantul (a¸sa cum este<br />

acesta reprezentat intern).<br />

2 Probleme suplimentare<br />

1. Fie două numere reale x1, x2 ∈ R, x1 = x2. Con<strong>si</strong>derăm reprezentările<br />

lor în virgulă flotantă x ∗ 1 ¸<strong>si</strong> x ∗ 2 astfel încât x ∗ 1 = fl(x1) = x1(1 + δ1),<br />

x2 = fl(x2) = x2(1 + δ2) ¸<strong>si</strong> |δ1| < δ, |δ2| < δ. Cât de mic trebuie să<br />

fie δ, astfel incât să putem testa corect (în virgulă flotantă cu precizia<br />

ma¸<strong>si</strong>nii eps), dacă x1 = x2.<br />

2

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

Saved successfully!

Ooh no, something went wrong!