Sunteți pe pagina 1din 2

Erori de reprezentare (round-off errors).

Reprezentarea numerelor reale n calculator. Erori de trunchiere.


Propagarea erorilor.

1. Not
am prin  valoarea lui epsilon-machine. Mai precis daca x este un
num
ar real oarecare, iar f l(x) noteaz
a aproximarea lui x n virgula flotanta
(floating point), atunci eroarea relativa n aproximarea lu x satisface
|f l(x) x|
.
|x|
(a) Folositi scriptul eps_machine.m si verificati operatiile prezentate aici.
(b) Schimb
and doar ordinea termenilor (fara operatii de asociere sau
nmultire) calculati




E1 () := 1 + + + + 1.
4 4 4 4
Explicati urm
atorul aspect: de ce enumerarea de mai sus a termenilor nu va conduce la r
aspunsul corect E1 () =  si de ce o anumit
a
reordonare a termenilor va conduce la r
aspunsul corect?
(c) Folositi codul de mai jos pentru a determina valoarea lui  n dubla
precizie.
deps
= double(1.0);
while (1<1+deps)
deps = deps/2;
end;
deps=deps*2;
Verificati c
a valoarea obtinut
a n deps este aceeasi cu cea data de
constanta Octave/Matlab eps.
(d) Determinati valoarea lui epsilon machine n single precision folosind
cod similar celui de mai sus.
2. Se doreste determinarea valorii (aproximative) a integralei
Z 1
xn
In =
dx, n N.
0 x + 16
Un calcul simplu ne conduce la urm
atoarea definitie recurenta a lui In :
 
1
17
In = 16In1 , I0 = ln
.
(1)
n
16

(a) S
a se calculeze exact valoarea lui In . Indicatie: prin schimbarea de
variabil
a t := x + 16 se obtine:
In =

n1
X
k=0


 
nk
n
16nk
17
k
k 17
n n
+ (1) 16 ln
.
(1) 16
nk
16
k

(b) Folositi scriptul integrala_recurenta.m pentru a calcula I16 . Poate


fi crezut rezultatul obtinut? Continuati prin a calcula I20 si I32 .
3. Incercati urm
atoarele evalu
ari. Explicati neconcordantele ce apar.
(a) Loss of significance 1.
>> my4 = sqrt(4)^2-4
>> my5 = sqrt(5)^2-5
(b) Loss of significance 2.
i. Calculati cu exactitate diferenta
dif1 = 1 0.9999987654321.
ii. Folositi Octave/Matlab pentru a calcula
ansexact = 1234567 dif1 .
iii. Folositi Octave pentru a calcula ntreaga expresie. Mai precis,
utilizati urm
atoarea linie de cod pentru a obtine octaveAns, i.e.,
>> octaveAns = 1234567*(1-.9999987654321)
iv. Explicati diferenta ntre ansexact si octaveAns.
4. Cu o c
autare Google folosind cuvintele cheie disasters caused by numerical errors se ajunge la pagina
http://ta.twi.tudelft.nl/users/vuik/wi211/disasters.html.
Cititi una sau mai multe din situatiile descrise acolo.

References
[1] L. N. Trefethen, D. Bau III, Numerical Linear Algebra, SIAM, 1997.
[2] K. E. Atkinson, An Introduction to Numerical Analysis, 2nd edition, Wiley,
1989.
[3] T.
Young,
M.
J.
Mohlenkamp,
Introduction to Numerical Methods and Matlab Programming for Engineers,
2014,
https://www.math.ohiou.edu/courses/math3600/book.pdf.

S-ar putea să vă placă și