30.01.2015 Views

1paskaita6

1paskaita6

1paskaita6

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Kurso tikslai<br />

Kurso struktūra<br />

Skaitiniai metodai<br />

Matematinis modeliavimas<br />

Kompiuterių aritmetika ir algoritmai<br />

Olga Štikonienė<br />

Diferencialinių lygčių ir skaičiavimo matematikos katedra, MIF VU<br />

2012-02-05<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 1/36<br />

1 Įgyti galimybę skaitiškai spręsti taikomuosius uždavinius;<br />

2 Įvertinti skirtingus skaitinius sprendimo metodus (žinant jų<br />

privalumus ir trūkumus);<br />

3 Rašyti, taikyti ir testuoti kompiuterines programas.<br />

Sandas:<br />

Supažindinama su skaitiniais metodais sprendžiant įvairaus<br />

tipo uždavinius.<br />

Pateikiami teoriniai tokių uždavinių stabilumo ir<br />

konvergavimo analizės pagrindai.<br />

Supažindinama su aprioriniais ir aposterioriniais paklaidos<br />

nustatymo būdais.<br />

Mokoma kaip įveikti skaičiavimo metu iškylančius įvairius<br />

sunkumus.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 2/36<br />

Turinys:<br />

Kurso struktūra<br />

Kurso struktūra:<br />

Kurso struktūra<br />

1 Kompiuterių aritmetika ir algoritmai.<br />

2 Tiesinių lygčių sistemų sprendimo metodai:<br />

tiesioginiai metodai;<br />

iteraciniai metodai;<br />

variaciniai metodai.<br />

3 Duomenų aproksimacija:<br />

Funkcijų interpoliavimas;<br />

Interpoliavimas splainais;<br />

Mažiausių kvadratų metodas.<br />

4 Tikrinių reikšmių uždavinys.<br />

5 Netiesinių lygčių sprendimas.<br />

6 Funkcijų optimizavimo metodai.<br />

7 Skaitinis integravimas:<br />

paklaidos įvertinimo būdai;<br />

adaptyvieji metodai.<br />

8 Diferencialinių lygčių skaitiniai sprendimo metodai.<br />

Paskaitos<br />

Kompiuterinės pratybos<br />

www.mif.vu.lt/~olgas Skaitiniai metodai<br />

Pažymys = AD+Egz arba Pažymys = AD+Kol+Egz<br />

10=5+5 arba 10 =5+2+3<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 3/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 4/36<br />

Literatūra<br />

Kurso struktūra<br />

Matematinis modeliavimas<br />

1 V.Būda, R.Čiegis. Skaičiuojamoji matematika, Vilnius: TEV , 1997.<br />

2 B.Kvedaras, M.Sapagovas. Skaičiavimo metodai, V.: Mintis, 1974.<br />

3 K. Plukas. Skaitiniai metodai ir algoritmai, Kaunas: N. lankas, 2001.<br />

4 V.Būda, M.Sapagovas. Skaitiniai metodai. Algoritmai, uždaviniai,<br />

projektai. Vilnius: Technika 1998.<br />

5 J.H.Mathews, K.D.Fink. Numerical methods Using MATLAB, Prentice<br />

Hall, 2004. http://math.fullerton.edu/mathews/numerical.html<br />

6 R.Čiegis. Diferencialinių lygčių skaitiniai sprendimo metodai.<br />

Vilnius: Technika, 2003.<br />

7 A.Quarteroni, F.Saleri and P. Gervasio. Scientific Computing with<br />

MATLAB and Octave. Springer, 2010.<br />

8 Н.С.Бахвалов, Н.П.Жидков, Г.Н.Кобельков. Численные методы.<br />

Москва, Наука, 1978.<br />

9 A.Quarteroni, R.Sacco, F.Saleri. Numerical Mathematics, Springer, 2000.<br />

10 W.H.Press, S.A.Teukolsky, W.T.Vetterling, B.P.Flannery. Numerical Recipes in C. The Art<br />

of Scientific Computing. Second Edition Cambridge University Press.<br />

11 S.C. Charpa Applied Numerical Methods with MATLAB for Engineers and Scientists.<br />

McGraW-Hill, 2005.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 5/36<br />

Matematinis modeliavimas<br />

Taikomosios matematikos dalis, skirta įvairių sričių (fizikinių,<br />

biologinių, cheminių, ekonominių ir t.t.) uždavinių sprendimui<br />

naudojant virtualiojo eksperimento metodiką.<br />

Uždavinio sprendimo įrankiai:<br />

analiziniai sprendiniai,<br />

artutiniai metodai,<br />

skaitiniai metodai,<br />

statistiniai metodai,<br />

grafikai, ir t. t.<br />

Taikoma mokslinių tyrimų programinė įranga.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 6/36


Matematinis modeliavimas<br />

Dažniausiai taikoma mokslinių tyrimų programinė įranga<br />

MathCad http://www.mathsoft.com/ http://www.mathcad.com/ Gera vartotojo<br />

sąsaja. Tinka bakalauro studijoms, bet nera optimalus moksliniams skaičiavimams.<br />

Taikymo pavyzdžiai (Help->Resource Center).<br />

Maple http://www.maplesoft.com/ Simboliniai skaičiavimai. Gera grafika. Labai<br />

gerai tinka bakalauro studijoms.<br />

Mathematica, Wolfram Alpha www.wolfram.com/products/mathematica,<br />

http://www.wolframalpha.com Matematiniai skaičiavimai, puikios algebros<br />

uždavinių sprendimo ir analizės (taip pat grafinės) galimybes. Simboliniai<br />

skaičiavimai. Panašiai kaip ir Maple.<br />

MATLAB http://www.mathworks.com Skaitinių metodų taikymas. Turi daug modulių<br />

(Toolboxes): veiksmams su matricom, optimizavimui, neuroniniams tinklams, sistemų<br />

modeliavimui (Symulink) ir t.t. Tinka spręsti didelius uždavinius. Help, demo.<br />

Trūkumas – didelė kaina.<br />

Excel www.microsoft.com/office/excel Finansiniai skaičiavimai ir ataskaitos. Yra<br />

priedai (Add-Ins) specializuotom užduotims (pvz. duomenų analizei).<br />

SAS http://www.sas.com/ SAS (Statistical Analysis System) – galingiausia statistinės<br />

analizės programa. Trūkumas – didelė kaina.<br />

SPSS http://www.spss.com/ SPSS – populiariausia statistinė sistema. Siauresnių nei<br />

SAS galimybių, bet pigesnė.<br />

R http://www.r-project.org/ R - nemokama statistinės analizės programa su aukšto<br />

lygio grafika.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 7/36<br />

Matematinis modeliavimas<br />

Matematiniu uždaviniu sprendimo etapai<br />

Aiškiai suformuluoti problemą<br />

Aprašyti Įvestį/Išvestį (Input/Output)<br />

Matematinis (analizinis) sprendimas<br />

Algoritmas – skaitinis sprendimo metodas<br />

Programavimas<br />

Testavimas ir derinimas (Debugging)<br />

Rezultatų pateikimas ir jų analizė<br />

Matematinis<br />

modeliavimas:<br />

<br />

<br />

<br />

<br />

<br />

<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 8/36<br />

Matematinis modeliavimas<br />

Taikomieji arba fizikiniai uždaviniai<br />

Formuluojami pagrindiniai dėsniai, valdantys tyrimo objektą<br />

Pavyzdys<br />

<br />

<br />

<br />

<br />

Matematinis modeliavimas<br />

Matematinis modelis<br />

Dėsniai užrašomi kaip lygčių sistema (algebrinių, diferencialinių,<br />

integralinių, gali būti ir netiesinė)<br />

Algebrinė lygtis F = ma<br />

Paprastoji diferencialinė lygtis<br />

F = m dv<br />

dt , F = x<br />

md2 dt 2<br />

Diferencialinė lygtis dalinėmis<br />

išvestinėmis<br />

(matematinės fizikos lygtis)<br />

∂u<br />

∂t = ∂2 u<br />

∂x 2 + ∂2 u<br />

∂y 2<br />

Pavyzdys<br />

<br />

x = √ 2<br />

<br />

<br />

<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 9/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 10/36<br />

Matematinis modeliavimas<br />

Skaitiniai metodai<br />

Skaitiniai metodai randa matematinių uždavinių, užrašytų<br />

algebrinėmis formulėmis (kurias vykdo kompiuteris), sprendinius.<br />

Mes išmoksime<br />

suformuluoti sprendimo metodą;<br />

įvertinti metodo tinkamumą, jo privalumus ir trūkumus.<br />

Matematinis modeliavimas<br />

Skaitinis metodas<br />

Užrašomi diskretusis modelis ir skaičiavimo algoritmas<br />

Metodų savybės:<br />

Konvergavimas į sprendinį;<br />

Konservatyvumas;<br />

Korektiškumas;<br />

Realizavimo galimybės.<br />

nes jei<br />

Pavyzdys<br />

Diskretusis modelis<br />

x = √ 2<br />

x 0 < √ 2,<br />

Skaičiavimo algoritmas<br />

x n = 1 2 (x n−1 + 2 ),<br />

x n−1<br />

2<br />

> √ 2 = √ 2.<br />

x 0 2<br />

⇒ x 1 = 1 2 (x 0 + 2 x 0<br />

) yra geresnis artinys.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 11/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 12/36


M<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

T<br />

<br />

<br />

<br />

<br />

<br />

S<br />

<br />

<br />

<br />

<br />

<br />

<br />

Matematinis modeliavimas<br />

Matematinis modeliavimas<br />

Algoritmas<br />

Sprendimo užrašymas tam tikra veiksmų seka, kurią reikia atlikti<br />

norint pasiekti tam tikrą rezultatą<br />

⇒algoritmo schema ir pseudokodas.<br />

Programavimas<br />

Algoritmo realizavimas kompiuterine programa.<br />

Testavimas<br />

Tikrinima ar kompiuterinė programa iš tikrųjų sprendžia būtent<br />

tą uždavinį, kurį reikia spręsti.<br />

Tikrinima ar tikrai randamas nagrinėjamo uždavinio<br />

sprendinys.<br />

Skaitinis tikslumas, stabilumas ir efektyvumas.<br />

Rezultatų analizė<br />

Gautų skaičiavimo rezultatų atitinkamumo realiam<br />

taikomajam uždaviniui kritinė analizė.<br />

Reikia nusimanyti ne tik programavime, bet ir technikoje,<br />

fizikoje ir t.t.<br />

Rezultatų pateikimas<br />

Skaičiavimo rezultatų perdavimas žmonėms, kurie nori žinoti<br />

atsakymą:<br />

Klientams;<br />

Darbdaviams, viršininkams;<br />

Tikrintojams;<br />

Sutarties dalyviams.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 13/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 14/36<br />

Matematinis modeliavimas<br />

Programavimas<br />

Paklaidos<br />

Uždavinio skaitinio sprendimo paklaida.<br />

Paklaidų šaltiniai ir klasifikacija<br />

Skaičiavimai ir rezultatų analizė<br />

√<br />

2 = 1, 414213562 ...<br />

x 0 = 1<br />

x 1 = 1, 5<br />

x 2 = 1, 4167<br />

x 3 = 1, 414216<br />

Matematinio modelio paklaida<br />

(dėl atmestų faktorių)<br />

Metodo paklaida<br />

(dėl įtrauktų į modelį faktorių)<br />

Apvalinimo paklaida<br />

(uždavinio salygotumas, jautrumas, algoritmo stabilumas)<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 15/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 16/36<br />

Paklaidos<br />

Uždavinio skaitinio sprendimo paklaida I<br />

Paklaidos<br />

Uždavinio skaitinio sprendimo paklaida II<br />

Matematinio modelio paklaida (dėl atmestų faktorių):<br />

Netikslus uždavinio matematinis aprašymas;<br />

Duomenų paklaida.<br />

Nepašalinamoji paklaida<br />

x exp - tikslusis sprendinys,<br />

x - matematinio modelio sprendinys,<br />

ε m = x − x exp .<br />

Metodo paklaida<br />

(dėl įtrauktų į modelį faktorių):<br />

aproksimavimas ∫ −→ ∑<br />

tikslumas, aritmetinių veiksmų skaičius.<br />

x - matematinio modelio sprendinys,<br />

x N - sprendinys, gaunamas realizuojant skaitinį metodą.<br />

ε t = x N − x.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 17/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 18/36


M<br />

<br />

<br />

<br />

<br />

<br />

<br />

T<br />

<br />

<br />

<br />

<br />

<br />

<br />

S<br />

<br />

<br />

<br />

<br />

Paklaidos<br />

Apvalinimo paklaida (uždavinio salygotumas, jautrumas, algoritmo<br />

stabilumas):<br />

įvedant duomenis;<br />

atliekant aritmetinius veiksmus;<br />

išvedant duomenis.<br />

Skaičiuojamoji paklaida<br />

x N - sprendinys, gaunamas realizuojant skaitinį metodą,<br />

ˆx - realiai gaunamas sprendinio artinys.<br />

ε h = ˆx − x N .<br />

Pilnoji paklaida<br />

ε = ε m + ε h + ε a .<br />

Dažnai įvedamas matas, pvz., skaliarų atvejų:<br />

Skaičiojamoji paklaida<br />

<br />

<br />

Paklaidos<br />

<br />

ε c = |x − ˆx|.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Tegul ˆx yra skaičiaus x<br />

artinys.<br />

Absoliučioji paklaida<br />

Δx = |x − ˆx|.<br />

Santykinė paklaida<br />

δ x = ∣ x − ˆx ∣<br />

∣.<br />

x<br />

ε = |ˆx − x exp |, ε ε m + ε h + ε a .<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 19/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 20/36<br />

Paklaidos<br />

Paklaidos (pavyzdžiai)<br />

Paklaidos<br />

Apytikslių skaičių sumos paklaida<br />

x = 3, 141592, ˆx = 3, 14 yra jo artinyss<br />

Δx = |x − ˆx| = 0, 001592;<br />

δ x = ∣ x−ˆx ∣<br />

x<br />

= 0,001592<br />

3,141592<br />

= 0, 00507.<br />

y = 999990, ŷ = 1000000 yra jo artinys.<br />

Δy = 10 - didelė;<br />

δ y ≈ 0, 00001 - maža.<br />

ŷ yra geras skaičiaus y artinys.<br />

z = 0, 0000125, ẑ = 0, 00001 yra jo artinys.<br />

Δz = 0, 0000025;<br />

δ z = 0, 25 - didelė (25 %).<br />

ˆx = x ± Δx, ŷ = y ± Δy yra skaičių x ir y artiniai.<br />

Pagal trikampio nelygybę<br />

|(x + y) − (ˆx + ŷ)| = |(x − ˆx)+(y − ŷ)| |(x − ˆx)| + |(y − ŷ)| =Δx +Δy.<br />

Analogiškai<br />

|(x − y) − (ˆx − ŷ)| = |(x − ˆx) − (y − ŷ)| |(x − ˆx)| + |(y − ŷ)| =Δx +Δy.<br />

Dviejų apytikslių skaičių sumos ar skirtumo absoliučioji paklaida<br />

yra ne didesnė už tų skaičių absoliučiųjų paklaidų sumą.<br />

ẑ yra blogas skaičiaus z artinys.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 21/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 22/36<br />

Paklaidos<br />

Apytikslių skaičių sandaugos paklaida<br />

Paklaidos<br />

Apytikslių skaičių dalmens paklaida<br />

ˆx = x ± Δx, ŷ = y ± Δy yra skaičių x ir y artiniai.<br />

Jų sandaugos<br />

ˆxŷ =(x ± Δx)(y ± Δy) =xy ± xΔy ± yΔx ± ΔxΔy<br />

santykinė paklaida<br />

δ xy = |xy|−ˆxŷ =<br />

|xy|<br />

|±xΔy ± yΔx ± ΔxΔy|<br />

|xy|<br />

±|xΔy|±|yΔx|±|ΔxΔy|<br />

|xy|<br />

≈ ±|xΔy|±|yΔx|<br />

|xy|<br />

= δ x + δ y .<br />

ˆx = x ± Δx, ŷ = y ± Δy yra skaičių x ir y artiniai.<br />

Analogiškai jų dalmens santykinė paklaida<br />

δ x/y = | x y − ˆx ŷ | |±xΔy ∓ yΔx|<br />

| x y | =<br />

|x(y ± Δy)|<br />

≈<br />

|±xΔy ∓ yΔx|<br />

|xy|<br />

|Δx|<br />

|x|<br />

+ |Δy|<br />

|y|<br />

= δ x + δ y .<br />

Dviejų apytikslių skaičių sandaugos ar dalmens santykinė<br />

paklaida yra ne didesnė už tų skaičių santykinių paklaidų sumą.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 23/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 24/36


Paklaidos<br />

Aritmetinių veiksmų paklaidos<br />

Apskaičiuokime √ 2 ∗ √ 2 − 2<br />

1 naudojant simbolinius<br />

skaičiavimus (MATLAB,<br />

Symbolic Math<br />

Toolbox)<br />

2 be simbolinių<br />

skaičiavimų<br />

Matlab<br />

realmax = 1.7977e+308<br />

a=1.e+308; b=1.1e+308;c=-1.001e+308;<br />

a+b+c = Inf a+(b+c) = 1.0990e+308<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 25/36<br />

Paklaidos<br />

Aritmetinių veiksmų paklaidos. 1 pavyzdys.<br />

Kvadratinės lygties sprendimas:<br />

x 2 − bx + 1 = 0 D = b 2 − 4<br />

x 1 = b + √ D<br />

2<br />

, x 2 = b − √ D<br />

.<br />

2<br />

Tegul b 2 ir D yra dideli vienodo didumo skaičiai. Pertvarkome x 2 :<br />

x 2 = (b − √ D)(b + √ D)<br />

2(b + √ D)<br />

= b2 − D<br />

2(b + √ D) = 4<br />

2(b + √ D) = 2<br />

(b + √ D) .<br />

Dviejų artimų skaičių skirtumas ⇒ potencialus didelės paklaidos<br />

šaltinis!<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 26/36<br />

Paklaidos<br />

Aritmetinių veiksmų paklaidos. 1 pavyzdys.<br />

Paklaidos<br />

Apvalinimo paklaidos įtaka (pavyzdys)<br />

Kvadratinės lygties x 2 − 97x + 1 = 0 sprendimas:<br />

D = 9405, √ D = 96, 9794.<br />

tiksliai: x 2 = 0, 01031;<br />

Skaičiuojame apvalindami iki 5 skaitmenų po kablelio:<br />

standartiškai:<br />

x 2 = 0, 01050;<br />

racionalizuojant: x 2 = 0, 01031.<br />

1 taisyklė.<br />

Algoritmą reikia sudaryti taip, kad nebūtų atimami dideli<br />

(palyginant su skirtumu) vienodo didumo skaičiai.<br />

Kvadratinės lygties x 2 − 54, 32x + 0, 1 = 0 sprendimas.<br />

Tikslus sprendinys x 1 = 54, 318158995, x 2 = 0, 0018410049576.<br />

Apskaičiuokime x 1 ir x 2 naudojant 4 reikšminius skaitmenis<br />

(four-digit floating-point arithmetic).<br />

D = √ b 2 − 4ac = √ (−54, 32) 2 − 0, 4 = √ 2951 − 0, 4 = 54, 32.<br />

x 1,4sk = −b + √ D<br />

2a<br />

x 2,4sk = −b − √ D<br />

2a<br />

Santykinė paklaida<br />

=<br />

=<br />

54, 32 + 54, 32<br />

2, 000<br />

54, 32 − 54, 32<br />

2, 000<br />

δ x1 = ∣ ∣ x 1−x 1,4sk<br />

x 1<br />

∣ ∣ ∗ 100% =0, 033%, δ x2 = 100%.<br />

= 108, 6 = 54, 30.<br />

2, 000<br />

=<br />

0, 000<br />

= 0, 000.<br />

2, 000<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 27/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 28/36<br />

Paklaidos<br />

Aritmetinių veiksmų paklaidos (pavyzdys)<br />

x = 0, 1; ˆx = 0, 11; Δx = 0, 01; δ x = ∣ Δx<br />

∣<br />

0, 01<br />

= = 0, 1.<br />

x 0, 1<br />

Tegul skaičius y =<br />

x<br />

0,01<br />

= 10. Tada<br />

ŷ = ˆx<br />

0, 01 = 11 ⇒ Δy = 1, δ y = 0, 1.<br />

Dalyba iš mažo skaičiaus => absoliuti paklaida didėja.<br />

Absoliuti paklaida padidėjo 100 kartų.<br />

Santykinė paklaida nepakito.<br />

2 taisyklė.<br />

Algoritmą reikia sudaryti taip, kad nebūtų dalybos iš mažo<br />

skaičiaus.<br />

Paklaidos<br />

Aritmetinių veiksmų paklaidos (pavyzdžiai)<br />

Aritmetinių veiksmų eiliškumas<br />

Sumavimas:<br />

0, 99 + 0, 0044 + 0, 0042 = 0, 9986.<br />

Aritmetika su trimis reikšminiais skaitmenimis:<br />

(0, 99 + 0, 0044)+0, 0042 = 0, 994 + 0, 0042 = 0, 998.<br />

0, 99 +(0, 0044 + 0, 0042) =0, 99 + 0, 0086 = 0, 999.<br />

Apvalinimo paklaida<br />

3 taisyklė.<br />

Algoritmą reikia sudaryti taip, kad skaičiai būtų sudedami jų<br />

didėjimo tvarka – kompiuterių aritmetikoje skaičių perstatomumo<br />

ir jungiamumo dėsnis veikia ne visada.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 29/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 30/36


Aritmetinių veiksmų skaičius<br />

Aritmetinių veiksmų skaičius 1<br />

Apskaičiuokime daugianario<br />

reikšmę taške x = c.<br />

1 algoritmas<br />

i=1<br />

f (x) =a n x n + a n−1 x n−1 + ···+ a 1 x + a 0<br />

f := a 0<br />

Atskirai apskaičiuokime<br />

x, x 2 ,...,x n ,<br />

po to<br />

n∑<br />

a i x i<br />

su visais i nuo 1 iki n<br />

x i := 1<br />

su visais j nuo 1 iki i<br />

x i := x i ∗ c<br />

ciklo pagal j pabaiga<br />

f := f + a i ∗ x i<br />

ciklo pagal i pabaiga<br />

(1 + 2 + ···+ n)+n = n(n+1)<br />

2<br />

+ n = n(n+3)<br />

2<br />

daugybos veiksmų<br />

n sudėties veiksmų<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 31/36<br />

Aritmetinių veiksmų skaičius<br />

Aritmetinių veiksmų skaičius 2<br />

Apskaičiuokime daugianario reikšmę taške x=c:<br />

f (x) =a n x n + a n−1 x n−1 + ···+ a 1 x + a 0<br />

2 algoritmas<br />

f := a 0<br />

x i := c<br />

su visais i nuo 1 iki n<br />

f := f + a i ∗ x i<br />

x i := x i ∗ c<br />

ciklo pagal i pabaiga<br />

Kai n ≫ 1<br />

2n daugybos veiksmų<br />

n sudėties veiksmų<br />

1 algoritmo daugybų skaičius n(n + 3)<br />

= = 0, 25(n+3).<br />

2 algoritmo daugybų skaičius 2(2n)<br />

2 algoritmas taupesnis už 1 algoritmą 0,25(n+3) kartų.<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 32/36<br />

Aritmetinių veiksmų skaičius<br />

Aritmetinių veiksmų skaičius 3<br />

3 algoritmas – Hornerio schema<br />

f (x) =a n x n + a n−1 x n−1 + ···+ a 1 x + a 0<br />

=(···((a n x + a n−1 )x + a n−2 )x + ···+ a 1 )x + a 0<br />

f := a n<br />

su visais i nuo n iki 1 žingsniu -1<br />

f := f ∗ c + a i−1<br />

ciklo pagal i pabaiga<br />

n daugybos veiksmų<br />

n sudėties veiksmų<br />

3 algoritmas: daugybos veiksmų sumažėja 2 kartus, palyginti su 2<br />

algoritmu.<br />

Aritmetinių veiksmų skaičius<br />

Reikšminiai skaitmenys (angl. Significant Digits )<br />

Reikšminis skaitmuo<br />

Skaitmuo, turintis įtakos skaičiaus reikšmei. Jį pašalinus, pakinta<br />

skaičiaus reikšmė.<br />

50500 - visi skaitmenys reikšminiai,<br />

50,500 - du paskutiniai skaitmenys (nuliai) nereikšminiai.<br />

32-bitų sistemose: 7 reikšminiai skaitmenys;<br />

64-bitų sistemose: 17 reikšminių skaitmenų;<br />

Dvigubas tikslumas (double precision): apvalinimo paklaida<br />

sumažinama, skaičiavimo laikas (CPU time) didėja.<br />

π = 3, 141592653589793238462643383 ...- transcendentinis skaičius<br />

⇒ skaičiuojant naudojama jo aproksimacija (pvz., 3,14 arba<br />

22/7; 3,14159 didesniam tikslumui).<br />

√e = 2, 71828182845904523536028747135 ...<br />

2 = 1, 414213562373095048801688724 ...<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 33/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 34/36<br />

Aritmetinių veiksmų skaičius<br />

Nereikšminiai skaitmenys<br />

Aritmetinių veiksmų skaičius<br />

Slankiojo kablelio skaičiai<br />

3, 25/1, 96 = 1, 65816326530162 ... (MATLAB)<br />

Praktiškai atsakymas suapvalintas 1, 65 arba 1, 66.<br />

Kodėl<br />

Nežinomas yra sekantis (po šimtųjų) reikšmingas skaitmuo:<br />

{<br />

3, 259/1, 960 = 1, 66275510204082,<br />

3, 250/1, 969 = 1, 65058405281869.<br />

{<br />

3, 254/1, 955 = 1, 66445012787724,<br />

3, 245/1, 964 = 1, 65224032586558.<br />

Realieji skaičiai (floating-point numbers - slankiojo kablelio<br />

skaičiai).<br />

sign signed exponent mantissa<br />

sign (ženklas) 1 (neigiamiems) arba 0 (teigiamiems)<br />

exponent (laipsnio rodiklis) teigiamas arba neigiamas<br />

mantissa (skaičiaus mantisė) reikšminiai skaitmenys<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 35/36<br />

Skaitiniai metodai (MIF VU) Matematinis modeliavimas Komp.aritmetika ir algoritmai 36/36

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

Saved successfully!

Ooh no, something went wrong!