1paskaita6
1paskaita6
1paskaita6
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