190 likes | 622 Views
PAKLAIDOS. Kadangi tiek skaičiavimo kompiuteriais specifika, tiek skaičiavimo paklaidos priklauso nuo skaičių vaizdavimo juose , tai pirmiausia ir išnagrinėkime, kaip jose vaizduojami realieji skaičiai. Realusis skaičius x kompiuteriuose vaizduojamas slankiojo kablelio išraiška:.
E N D
Kadangi tiek skaičiavimo kompiuteriais specifika, tiek skaičiavimo paklaidos priklauso nuo skaičių vaizdavimo juose, tai pirmiausia ir išnagrinėkime, kaip jose vaizduojami realieji skaičiai. Realusis skaičius x kompiuteriuose vaizduojamas slankiojo kablelio išraiška: Čiap- skaičiavimo sistemos pagrindas, m - mantisė, tenkinanti sąlygą q - skaičiaus eilė (sveikasis skaičius). Skaičių vaizdavimas kompiuteriuose
Pavyzdys 3.14 = 0.314101 = 31.4 10-1= 0.0314102 ir t.t. Iš visų šio skaičiaus formų rikalavimus tenkina vienintelė forma 0.314101 ; t.y. Skaičiavimo sistemos pagrindas p = 10, mantisė m = 0.314, o eilė q = 1
Kitaip tariant, čia , o t - skaičius skilčių, skirtų mantisei vaizduoti Tokią skaičiaus x išraišką žymėsime fl(x). Skaičiaus eilė dažnai nusakoma jai vaizduoti skirtų skilčių skaičiumi. Tarkime, kad r-skaičius skilčių, skirtų eilei q vaizduoti. Tada galime laikyti, kad eilės q viršutinis rėžis , o apatinis
Išnagrinėkime, kiek skirtingų realiųjų skaičių gali įsiminti skaičiavimo mašina, kitaip tariant, kokia yra kompiuterio realiųjų skaičių aibės galia G. Daugiklis 2 reiškia, kad skaičiai gali būti tiek teigiamieji, tiek neigiamieji. Daugiklis rodo, kiek skirtingų reikšmių gali įgyti eilė q. Šioje formulėje reiškinys žymi skaičių mantisių, kurias galima parašyti p skaičiavimo sistemoje, kai mantisei vaizduoti skirtatskilčių ir mantisė mtenkinasąlygą Dėmuo 1 žymi nulį. Kompiuterio realiųjų skaičių aibės galia G.
Skaičiavimo sistemos pagrindas Eilės apatinis Pavyzdžiui, jeigu p = 2, t = 4, l = –3 ir u = 3, Mantisei skirtų skilčių skaičius ir viršutinis rėžiai tai
Nors kompiuteriams G yra labai didelis skaičius, tačiau jis yra baigtinis. Vadinasi, begalinę kontinuumo galios realiųjų skaičių aibę kompiuteris atvaizduoja į baigtinę realiųjų skaičių aibę, kurios galia G. 1. Operacijų neekvivalentumas. Kokios yra tokio atvaizdavimo pasekmės? Aritmetiniai veiksmai ir kompiuterio atliekami tie patys matematiniai veiksmai nėra ekvivalentūs. Pavyzdžiui, matematinėje formulėje y=a•(b+c) sudėties ir daugybos veiksmai atliekami absoliučiai tiksliai. Tačiau šioje formulėje, užrašytoje kokia nors algoritmine kalba, pavyzdžiui, y=a*(b+c) , sudėtis ir daugyba bus atliekamos apytiksliai ir rezultato tikslumas priklausys nuo skaičių vaizdavimo kompiuteryje.
0,00004976 ·104 b . 0,00002897 ·104 c . 0,00007873 ·104 b+c 0,00004976 ·104 b . 0,00002897 ·104 c . 0,00007873 ·104 b+c 0,7520 ·104a . 0,7521 ·104 a+(b+c) 0,7520 ·104 a 0,00004976 ·104 b 0,7520 ·104 a+b 0,7520 ·104 a 0,00004976 ·104 b 0,7520 ·104 a+b 0,00002897 ·104 c 0,7520 ·104 (a+b)+c 2. Aritmetinių dėsnių negaliojimas. Kompiuterių aritmetikoje ne visada galioja asociatyvumo ir distributyvumo dėsniai. Tarkime, kad turime kompiuterį, kuriam p = 10, o t = 4. Išnagrinėkime tapatybes: Sakykime, a=0,7520104, b=0,4976100, c=0,2897100. O tikslus atsakymas 0,75207873 ·104
Sakykime, a=0,9302 ·104, b=0,6741·100, c=0,8544·101. a·(b ·c) = 0,5358 ·105 (a·b)·c = 0,5357 ·105 Tiksli reikšmė a·b ·c = 0,535749657 ·105 Sakykime, a=0,9964, b=0,6392, c=0,6375. a·(b -c) = 0,1592 ·10-2 a·b -a·c = 0,1500 ·10-2 Tiksli reikšmė a·(b- c)= 0,159188 ·10-2
Kai eilei yra skirta r skilčių, tai nelygų nuliui skaičių, kurio modulis yra mažiausias, galime užrašyti taip: Didžiausias kompiuterio įsimenamas skaičius yra : Kai skaičiavimo rezultatas didesnis už šį skaičių, kompiuteris sustoja. Toks avarinis sustojimas vadinamas „persipildymu“ (overflow). 3. Mažiausiojo ir didžiausiojo skaičiaus egzistavimas. Jei skaičiuodami gauname rezultatą, kurio modulis mažesnis už , tai tas rezultatas traktuojamas kaip nulis ir vadinamas mašininiu nuliu (underflow).
4. Mašininis epsilon. Labai svarbus kompiuterių aritmetikos parametras yra skaičius, kuris rodo, kiek mažiausiai du realieji skaičiai turi skirtis vienas nuo kito, kad kompiuteris juos suprastų kaip atskirus skaičius. Šis parametras, sutrumpintai vadinamas macheps, yra standartizuotas ir apibrėžiamas taip: tai pats mažiausias teigiamasis skaičius, tenkinantis sąlygą 1+macheps > 1. Galime teigti, kad kiekvieno realiojo skaičiaus x 0 fl(x) santykinė paklaida yra mažesnė nei machepsir, atvirkščiai, bet kurio realiojo skaičiaus x 0 fl(x)[x(1-macheps), x(1+macheps)]
Skaičiaus absoliučioji paklaida yra tikslios ir apytikslės jo reikšmės skirtumas: čia x—absoliučioji paklaida, x — tiksli skaičiaus reikšmė, — apytikslė skaičiaus reikšmė. Skaičiaus santykinė paklaida yra jo absoliučiosios paklaidos ir apytikslės reikšmės santykis: Paklaidų šaltiniai Skaičiuojant susiduriama su trejopomis paklaidomis:a) pradinėmis informacijos paklaidomis, b) sprendimo metodo paklaidomis, c) apvalinimo paklaidomis.
Pradinės informacijos paklaidos Pradiniai skaičiavimo duomenys paprastai yra įvairių matavimų rezultatai, turintys paklaidas. Skaičiuojant kompiuteriu, be šių paklaidų, atsiranda papildomų paklaidų, nes kompiuteriuose vartojama dvejetainė skaičiavimo sistema ir mantisės skilčių skaičius yra baigtinis. Pavyzdžiui, (0,1)10= (0,000110011001100...)2; čia indeksas žymi skaičiavimo sistemos pagrindą. Dvejetainėje skaičiavimo sistemoje skaičius 0,1 užrašomas begaline trupmena. Kadangi kompiuteryje skaičiui užrašyti skiriamas baigtinis skaičius skilčių, tai, 0,1 vaizduojant kompiuteryje, atsiranda papildoma paklaida
Sprendimo metodo paklaidos Šios paklaidos priklauso nuo uždavinio sprendimo metodo. Pavyzdžiui, apskaičiuojant y= sin x (x³ 0) reikšmę Teiloro eilučių metodu, t. y. funkciją y= sin x išreiškus Teiloro eilute ir paėmus pirmuosius tris jos narius, metodo paklaida bus lygi atmetamų narių sumai, o jos modulis mažesnis už
Apvalinimo paklaidos Apvalinimo paklaidos priklauso nuo mantisei vaizduoti skirtų skilčių skaičiaus ir nuo skaičiavimo veiksmų.
Tarkime reikia sumuoti tokius skaičius: Dalinės sumos, kai sumuoti pradedame nuo mažesnių skaičių 0.2897·1000.4976 ·1000.2488 ·1010.7259 ·1010.1638 ·102 0.6249 ·1020.2162 ·1030.5233 ·1030.1403 ·1040.5291 ·104 Pavyzdys 1 nuo didesnių skaičių 0.7873 ·1000.3275 ·1010.1053 ·1020.2691 ·1020.8940 ·1020.3056 ·1030.8289 ·1030.2232 ·1040.7523 ·104 0.6694 ·1040.7217 ·1040.7433 ·1040.7495 ·1040.7511 ·1040.7518 ·1040.7520 ·1040.7520 ·1040.7520 ·104
0,7520 ·104 a 0,00004976 ·104 b 0,7520 ·104 a+b 0,7520 ·104 a 0,00004976 ·104 b 0,7520 ·104 a+b 0,00002897 ·104 c 0,7520 ·104 (a+b)+c Jei sumuodami išsaugotume visas reikšmines skiltis, tai tiksli suma būtų 0.75229043 ·104 Sumuodami nuo mažesnių skaičių gavome sumą, kurios paklaida yra –0.1 ·100;tuo tarpu sumuodami nuo didesnių skaičių gavome sumą, kurios paklaida yra 2.9 ·100 , kuri bevei 30 kartų didesnė. Sumuojant nuo didesnių skaičių trys paskutinės dalinės sumos yra lygios. Tai atsitinka todėl, kad (žr. veiksmus)
Pavyzdys 2 n – labai didelis Kada gausime tikslesnį rezultatą – sumuodami nuo pradžios, ar nuo galo?
Pateikta suma yra harmoninės eilutės dalinė suma. Kadangi harmoninė eilutė diverguoja, tai prie didelės n reikšmės Sn bus labai didelis skaičius. Vadinasi, jei sumuotume nuo pradžios, tai būtų toks skaičius Sk , kad būtų mažesni už šio skaičiaus apvalinimo paklaidą. nariai Jei sumuotume nuo mažiausiųjų skaičių, tai jų sukaupta suma turėtų įtakos bendrai sumai. Žr. skaidrę 8