Cn.computer.arithmetic

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 fl(x) noteaz˘ a aproximarea lui x ˆ ın virgul˘ a flotant˘ a (”floating point”), atunci eroarea relativ˘ ın aproximarea lu x satisface |fl(x) - x| |x| . (a) Folosit ¸i scriptul eps_machine.m si verificat ¸i operat ¸iile prezentate aici. (b) Schimbˆ and doar ordinea termenilor (f˘ ar˘ a operat ¸ii de asociere sau ˆ ınmult ¸ire) calculat ¸i E 1 () := 1 + 4 + 4 + 4 + 4 - 1. Explicat ¸i urm˘ atorul aspect: de ce enumerarea de mai sus a terme- nilor nu va conduce la r˘aspunsul corect E 1 ()= ¸ si de ce o anumit˘a reordonare a termenilor va conduce la r˘aspunsul corect? (c) Folosit ¸i codul de mai jos pentru a determina valoarea lui ˆ ın dubl˘ a precizie. deps = double(1.0); while (1<1+deps) deps = deps/2; end; deps=deps*2; Verificat ¸i c˘ a valoarea obt ¸inut˘ ın deps este aceea¸ si cu cea dat˘ a de constanta Octave/Matlab eps. (d) Determinat ¸i valoarea lui ”epsilon machine” ˆ ın single precision folosind cod similar celui de mai sus. 2. Se dore¸ ste determinarea valorii (aproximative) a integralei I n = Z 1 0 x n x + 16 dx, n N. Un calcul simplu ne conduce la urm˘ atoarea definit ¸ie recurent˘ a a lui I n : I n = 1 n - 16I n-1 , I 0 = ln 17 16 . (1)

description

xc

Transcript of Cn.computer.arithmetic

  • Erori de reprezentare (round-off errors).

    Reprezentarea numerelor reale n calculator. Erori de trunchiere.Propagarea erorilor.

    1. Notam prin valoarea lui epsilon-machine. Mai precis daca x este unnumar real oarecare, iar fl(x) noteaza aproximarea lui x n virgula flotanta(floating point), atunci eroarea relativa n aproximarea lu x satisface

    |fl(x) x||x| .

    (a) Folositi scriptul eps_machine.m si verificati operatiile prezentate aici.

    (b) Schimband doar ordinea termenilor (fara operatii de asociere saunmultire) calculati

    E1() := 1 +

    4+

    4+

    4+

    4 1.

    Explicati urmatorul aspect: de ce enumerarea de mai sus a terme-nilor nu va conduce la raspunsul corect E1() = si de ce o anumitareordonare a termenilor va conduce la raspunsul corect?

    (c) Folositi codul de mai jos pentru a determina valoarea lui n dublaprecizie.

    deps = double(1.0);

    while (1

  • (a) Sa se calculeze exact valoarea lui In. Indicatie: prin schimbarea devariabila t := x+ 16 se obtine:

    In =

    n1k=0

    (n

    k

    )(1)k16k 17

    nk 16nkn k + (1)

    n16n ln

    (17

    16

    ).

    (b) Folositi scriptul integrala_recurenta.m pentru a calcula I16. Poatefi crezut rezultatul obtinut? Continuati prin a calcula I20 si I32.

    3. Incercati urmatoarele evaluari. 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 urmatoarea linie de cod pentru a obtine octaveAns, i.e.,

    >> octaveAns = 1234567*(1-.9999987654321)

    iv. Explicati diferenta ntre ansexact si octaveAns.

    4. Cu o cautare Google folosind cuvintele cheie disasters caused by numer-ical errors se ajunge la paginahttp://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 Numeri-cal Methods and Matlab Programming for Engineers, 2014,https://www.math.ohiou.edu/courses/math3600/book.pdf.

    2