Upload
vuxuyen
View
323
Download
11
Embed Size (px)
Citation preview
Skaitiniai metodai
doc. dr. Vadimas Starikovičius
http://www.techmat.vgtu.lt/~vs
VGTU Matematinio modeliavimo katedra
VGTU Lygiagrečiųjų skaičiavimų laboratorija
Modulio kodas - FMMMB11304
Modulio apimtis – 5 ECTS kr.
Mokymo metodai:
• Paskaitos – 45 val. per semestrą
• Pratybos – 15 val. per semestrą
• Laboratoriniai darbai – 15 val. per semestrą
Vertinimas = Egzaminas (40%) + Kolokviumas (20%) +
+ Pratybos (20%) + Laboratoriniai darbai (20%)
Literatūra
• V.Būda, R.Čiegis. Skaičiuojamoji matematika. Vilnius: TEV, 1997.
• K. Plukas. Skaitiniai metodai ir algoritmai. Kaunas: Naujasis laukas, 2000.
• B.Kvedaras, M.Sapagovas. Skaičiavimo metodai. Vilnius: Mintis, 1974.
• J.H. Mathews. Numerical methods for mathematics, science and engineering. 2 ed. Prentice Hall, Englewood Cliffs, New Jersey, 1992
• Holistic Numerical Methods http://nm.mathforcollege.com
Tradicinis (iki XX a. pabaigos) modeliavimo būdas moksle, inžinerijoje, gamtosaugoje, ekonomikoje:
1. Sukurti teoriją/modelį/įrenginį.
2. Patikrinti ją/jį stebėjimuose arba eksperimentuose.
Tradicinio modeliavimo būdo problemos ir trūkumai:
• brangu (daryti eksperimentinius lėktuvus/automobilius/raketas/įrenginius)
• ilgai (projektuoti/bandyti naujus įrenginius, laukti klimato pakeitimų)
• pavojinga (branduoliniai bandymai/vaistų dizainas)
Sprendimas – virtualus eksperimentas (kompiuterinė simuliacija)
Matematinis modeliavimas
Raketų, lėktuvų, automobilių projektavimas
Virtualus eksperimentas
Kompiuterinė simuliacija
Saugumo testų modeliavimas
Orų prognozė ir klimato pokyčių modeliavimas
Kompiuteriai patys savaime uždavinių neišsprendžia (bent kol kas).
1. Realų uždavinį reikia aprašyti matematiškai, t.y. reikia sudaryti jo matematinį modelį.
2. Reikia parinkti matematinio modelio sprendimo metodą. Sudėtingiems modeliams analizinių sprendimo metodų nėra. Tada reikia parinkti skaitinį metodą ir sudaryti sprendimo algoritmą.
3. Reikia perrašyti sprendimo algoritmą viena iš programavimo kalbų.
4. Galiausiai atliekami skaičiavimai kompiuteryje (geriausiai lygiagrečiajame). Atliekami rezultatų analizė ir patikrinimas (angl. validation). Prireikus, matematinis modelis, skaitinis sprendimo algoritmas yra patikslinami.
Matematinis modeliavimas su kompiuterių pagalba
Dėsnių, aprašančių vykstančius procesus,
nustatymas Uždavinys Matematinis modelis
Sprendimo metodo parinkimas.
Algoritmizavimas
Sprendimo algoritmas
Programavimas Programa
Skaičiavimai Rezultatai Rezultatų
patikrinimas ir analizė
Uždavinio sprendimas pagal matematinio modeliavimo schema
• Matematinis modelis, aprašantis oro temperatūrą, slėgį ir judėjimo greitį, - netiesinių diferencialinių lygčių sistema.
• Jos sprendimui taikomi skaitiniai metodai. Diferencialinių lygčių sistema baigtinių tūrių metodu pakeičiama tiesinių lygčių sistema.
• Atmosfera yra dengiama diskrečiuoju tinklu, pvz. 1x1x1 km (1 km3) tūriais. Jei modeliuojamas 16 km aukštis, tai turime apytiksliai 8 x109 tūrių (V = 4/3 x π x r3; žemės spindulys - 6370 km). Priklausomai nuo metodo kiekvieną tūrį atitinka nuo 1 iki 5 tiesinių lygčių, t.y. gaunamos sistemos didžiulės eilės.
• Tokios sistemos sprendžiamos specialiais skaitiniais metodais. Svarbu metodą parinkti taip, kad sistemos sprendimui reikėtų atlikti kuo mažiau skaičiavimų.
• Tarkime, kad reikia atlikti vidutiniškai 200 aritmetinių operacijų kiekvienam tūriui. Tada kiekvienam laiko žingsniui apskaičiuoti reikia atlikti 200 x 8 x 109 = 1,6 x 1012 operacijų. Simuliuojant 10 dienų orus su 10 minučių laiko žingsnių, reikia atlikti 10 x 24 x 6 x 1,6 x 1012 = 2,3 x 1015 operacijų.
• Kompiuteriu, atliekančiu 1 Gflops (Gflops = 109 Floating Point Ope-rations per Second) operacijų per sekundę, atsakymą gausime tik per 2,3 x 1015 Ops / 109 Ops/s = 2,3 x 106 sekundžių arba per 26 dienas.
Orų prognozės uždavinio sprendimas
Kurso aprašas
• Apytiksliai skaičiai ir paklaidos. Algoritmo
aritmetinių veiksmų skaičius.
• Netiesinių lygčių ir lygčių sistemų sprendimo
metodai.
• Tiesioginiai tiesinių lygčių sistemų sprendimo
metodai.
• Iteraciniai tiesinių lygčių sistemų sprendimo metodai.
• Funkcijų interpoliavimas ir aproksimavimas.
• Tikrinių reikšmių uždavinio skaitiniai sprendimo
metodai.
• Optimizavimo metodai.
• Skaitinio integravimo metodai.
• Matematiniame modelyje dažniausiai naudojami pradiniai duomenys ir koeficientai, kurie žinomi arba matuojami tik apytiksliai.
• Kitas apytikslių skaičių šaltinis glūdi kompiuterių aritmetikoje – kompiuterio atmintinėje visi realieji skaičiai užrašomi baigtine dešimtaine trupmena, kurios ilgis priklauso nuo kintamajam išsaugoti skirtų bitų skaičiaus, t.y. apvalinami!
• Pvz., (1:3)·3 = ?
• Sprendžiant realius uždavinius, atliekami milijonai aritmetinių veiksmų. Kai nėra kontroliuojamos, pradinės ir apvalinimo paklaidos gali susikaupti, išaugti ir neatpažįstamai iškreipti gaunamą sprendinį. Tokie skaitiniai sprendimo metodai vadinami nestabiliais.
• Sieksime sudarinėti stabilius skaitinius metodus ir algoritmus, kai paklaidos nesikaupia (neauga).
Apytiksliai skaičiai ir paklaidos
Absoliučioji ir santykinė paklaidos Tarkime, kad yra žinomas skaičiaus a artinys (apytikslė reikšmė) - x.
Apibrėžimas. Skaičiaus a artinio x absoliučiąja paklaida vadinamas dydis
.axa
Apskaičiuokime absoliučiąsias paklaidas, kai a=1000, o x=1012 ir b=0,01, o y=0,0098. Kurio skaičiaus (a arba b) artinys yra tikslesnis?
Apibrėžimas. Skaičiaus a artinio x santykine paklaida vadinamas dydis
Apskaičiuokime santykines paklaidas. Kuris artinys tikslesnis?
Dažnai naudojama tokia apytiksliai žinomo dydžio a užrašymo forma:
Kodėl ± ?
.a
ax
a
aa
.axa
Maksimalios absoliučioji ir santykinė paklaidos Praktiniuose taikymuose tikslus skaičius a dažniausiai nėra žinomas, t.y. negalime apskaičiuoti tiksliai
Tada naudojamas kuo tikslesnis absoliučios paklaidos įvertis vadina-mas maksimalia (ribine) absoliučiąja paklaida. Žymėsime
.aa
Pavyzdžiui, gali būti nustatoma, kaip apvalinimo arba matavimo paklaida.
Ap. Skaičiaus a artinio x maksimalia santykine paklaida vadinamas dydis
Nustatykite, kuri apytiklė lygybė tikslesnė:
.ir aa
t.y.,a
a
.|| x
aa
?24,418 arba 818,011
9
Veiksmai su apytiksliais skaičiais: sudėtis ir atimtis Dviejų apytikslių skaičių suma, skirtumas, sandauga, dalmuo, aišku, taip pat yra apytiksliai skaičiai.
Tarkime, kad x ir y yra skaičių a ir b artiniai. Įrodykime, kad
Savarankiškai įrodykite, kad
1 teiginys. Dviejų apytikslių skaičių sumos ar skirtumo absoliučioji paklaida yra ne didesnė už tų skaičių absoliučiųjų paklaidų sumą.
O kaip yra su santykine paklaida?
Panagrinėkime pavyzdį: a=10000, x=10012 ir b=9999, y=9995.
Apskaičiuokime ir palyginkime su
1 stabiliųjų algoritmų sudarymo taisyklė. Skaičiavimo algoritmus reikia sudaryti taip, kad nebūtų atimami dideli (palyginti su skirtumu) vienodo didumo skaičiai.
.)( baba
.)( baba
ba , .ba
Veiksmai su apytiksliais skaičiais: daugyba ir dalyba Tarkime, kad x ir y yra skaičių a ir b artiniai. Įrodykime, kad asimptotiškai mažiems
Savarankiškai įrodykite, kad
2 teiginys. Dviejų apytikslių skaičių sandaugos ar dalmens santykinė paklaida asimptotiškai mažiems yra ne didesnė už tų skaičių santykinių paklaidų sumą.
O kaip yra su absoliučiąja paklaida?
Panagrinėkime pavyzdį. Tegu a=1, jo artinys x=1,1 ir b=0,01.
Apskaičiuokime ir palyginkime su
2 stabiliųjų algoritmų sudarymo taisyklė. Skaičiavimo algoritmus reikia sudaryti taip, kad nebūtų dalybos iš mažo skaičiaus.
)./( ba
.baab
./ baba
a
:ir ba
ba ir
Funkcijos reikšmės paklaidos apskaičiavimas
Tarkime, kad reikia apskaičiuoti funkcijos reikšmę f(a) , kai argumen-to reišmė yra žinoma tik apytiksliai - xap. Kokia bus reikšmės f(xap) paklaida?
Kai funkcija f(x) yra tolydžiai diferencijuojama ir žinoma argumento reikšmės a paklaida Δa, tada funkcijos reikšmės f(a) paklaidą galima įvertinti pagal formulę
Praktykoje taikomos formulės:
Kai apskaičiuojama kelių kintamųjų funkcijos reišmė, o argumentai žinomi tik apytiksliai – naudojama formulė
.)(
|)()(|)( ax
xfxfafaf
apap
.)(
)(
)(
1)(ir
)()( )( a
xf
x
x
xfa
xfx
xfa
x
xfaf
ap
apap
ap
apaf
ap
. )(
)(1
n
i
ii
apa
x
xfaf
)(),,,( 21 xfxxxfy n
aaaa n
),,,( 21 apx
Realių skaičių sudėtis kompiuterių aritmetikoje
Dėl apvalinimo paklaidų kompiuterių aritmetikoje skaičių perstato-mumo dėsnis negalioja (rezultatas priklauso nuo sumavimo tvarkos).
Pavyzdys. Apskaičiuokime sumą Tarkime, kad turime kompiuterį, kuriame skaičiaus x saugojimui yra skirtos 5 skiltys: skaičiaus ženklas, 3 reikšminiai ženklai (a, b, c) ir laipsnis k (kablelio padėtis): x = ± a,bc ∙ 10k.
Sumuodami iš kairės į dešinę (apvalindami po kiekvieno veiksmo), gauname
Sumuodami iš dešinės i kairę (apvalindami po kiekvieno veiksmo), gauname
Neapvalindami, gauname
3 stabiliųjų algoritmų sudarymo taisyklė. Skaičiavimo algoritmus reikia sudaryti taip, kad skaičiai būtų sudedami jų didėjimo tvarka.
.1366,2537,1395,0268,0 S
.164S
.163S
.633,163S
Uždaviniai savarankiškam darbui
1. Kuri lygybė tikslesnė: ar
2. Duoti du apytiksliai žinomi dydžiai: ir Raskite jų sumą a+b ir skirtumą a-b. Pastaba: reikia įvertini rezultatų absoliučiąsias paklaidas (pagal 1 teiginį). Įvertinkite ir palyginkite santykines rezultatų paklaidas.
3. Duoti du apytiksliai žinomi dydžiai: ir Raskite jų sandaugą ab ir santykį a/b. Pastaba: reikia įvertini rezultatų absoliučiąsias paklaidas. Palyginkite gautas paklaidas.
4. Apskaičiuokite funkcijos reikšmę ir įvertinkite absoliučiąją ir santykinę paklaidas, kai
5. Kubo kraštinė yra išmatuota 1,5% tikslumu. Kokia yra to kubo tūrio santykinė paklaida? Pastaba: galima išspręsti dviem būdais (panaudojant Teiloro formulę arba 2 teiginį).
6. Kokia padaroma kūno ilgio matavimo paklaida (absoliuti ir santykinė), jei buvo matuojama milimetrine liniuote, o gautas kūno ilgis 1,85 cm.
7. Kokia padaroma kūno tūrio matavimo paklaida (absoliuti ir santykinė), jei buvo matuojama milimetrine liniuote, o gauti kūno matmenys: ilgis 20 cm, plotis 5 cm ir aukštis 15 cm.
63,644 ?463,041
19
0001,05378,2 a .001,0536,2 b
0001,05378,2 a .001,0006,0 b
3sin),,( zyxzyxf
.1,02,563 ,001,0467,0 ,01,059,3 zyx
Algoritmo aritmetinių veiksmų skaičius Uždavinio sprendimo algoritmo pasirinkimą lemia ne tik jautrumas paklaidoms, bet ir algoritmo įvykdymui reikalingas aritmetinių veiksmų skaičius - algoritmo sudėtingumas.
Pavyzdys. Kiek aritmetinių veiksmų reikia atlikti skaičiuojant n-ojo laipsnio daugianario reikšmę kuriame nors taške x = c?
1 algoritmas. f := a0
ciklas su visais i nuo 1 iki n xi := 1 ciklas su visais j nuo 1 iki i xi := xi ∙c ciklo pagal j pabaiga f := f + ai ∙ xi
ciklo pagal i pabaiga
Kiek atliekame sudėties ir daugybos veiksmų pagal šį algoritmą?
Atliekame sudėties ir daugybos veiksmų.
Ar galima sumažinti šių veiksmų skaičių?
011
1)( axaxaxaxf nn
nn
2/32/2 nn n
Algoritmo aritmetinių veiksmų skaičius 2 algoritmas. f := a0
xi := c ciklas su visais i nuo 1 iki n f := f + ai ∙ xi
xi := xi ∙c ciklo pagal i pabaiga
Kiek atliekame sudėties ir daugybos veiksmų pagal šį algoritmą?
Atliekame sudėties ir daugybos veiksmų.
3 Hornerio algoritmas.
f := an
ciklas su visais i nuo n iki 1 (su žingsniu -1) f := f ∙c + ai-1
ciklo pagal i pabaiga
Kiek atliekame sudėties ir daugybos veiksmų pagal šį algoritmą?
Atliekame sudėties ir daugybos veiksmų.
0121011
1 )))((()( axaxaxaxaaxaxaxaxf nnnn
nn
n
n2n
n n
Netiesinių lygčių
sprendimo metodai
• Išmoksime spręsti lygtis f(x) = 0, kuriose f(x) yra netiesinė funkcija.
• Pavyzdys. Rinkos pusiausvyros kainos radimas. Ekonominis paklausos dėsnis teigia, kad prekės paklausa – prekės kiekis d, kurį pirkėjai norėtų ir galėtų įsigyti – mažėja, didėjant kainai p.
• Taigi paklausa yra mažėjanti kainos funkcija
d = d(p).
• Iš kitos pusės, gamintojų noras tiekti prekes irgi yra susijęs su prekių kaina. Pagal ekonominį pasiūlos dėsnį, prekių pasiūla – prekių kiekis s, kurį gamintojai norėtų gaminti ir galėtų tiekti rinkai – didėja, augant kainai p.
• Taigi pasiūla yra didėjanti kainos funkcija
s = s(p).
• Aišku, kad gamintojai norėtų kelti prekės kainą, o pirkėjai, priešingai, mieliau pirktų pigesnę prekę. Laisvoje rinkoje rinkos kaina p tam tikrą laiką svyruoja, kol prekės pasiūla susilygina su paklausa:
d(p) = s(p).
• Šios lygties sprendinys ir vadinamas rinkos pusiausvyra kaina - p0.
• Tegu yra žinomos tam tikros paklausos ir pasiūlos kreivės.
• Kaip rasti pusiausvyros rinkos kaina p0?
• Reikia išspręsti lygtį .3 pep
• Naudosime skaitinius (t.y. neanalizinius) metodus, kurie leidžia
rasti lygties f(x) = 0 apytikslį sprendinį norimu tikslumu ε.
• Nagrinėsime įvarius metodus:
– Pusiaukirtos metodas
– Paprastųjų iteracijų metodas
– Niutono metodas (liestinių metodas)
– Kirstinių metodas
• Kaip pasirinkti “geriausią” metodą sprendžiamam uždaviniui
(t.y. lygčiai)?
• Nustatysime metodų konvergavimo greičius, t.y. kaip greitai yra
mažinama paklaida tarp apskaičiuojamų artinių ir ieškomo
sprendinio.
• Suformuluosime ir aptarsime metodų konvergavimo sąlygas, t.y.
sąlygas, kuriomis gaunamos artinų sekos konverguoja, t.y. kada
galime taikyti vieną ar kitą metodą.
Šaknų atskyrimo metodai Lygtis f(x) = 0 gali turėti ne vieną šaknį.
Apibrėžimas. Intervalas (a, b) yra šaknies izoliacijos intervalas, jei
lygtis f(x) = 0 tame intervale turi vienintelį šaknį.
Šaknų atskyrimo uždavinys formuluojamas taip:
Duota lygtis f(x) = 0. Reikia rasti visų jos šaknų izoliacijos
intervalus.
Taigi sprendžiant lygtį f(x) = 0, tai daroma dviem etapais:
1. lokalizuojamos lygties šaknys (šaknų atskyrimo uždavinys);
2. randamos atskiros šaknys: visos (viena po kitos) ar tik reikalingos
(pvz., didžiausia, mažiausia), panaudojant ieškomos šaknies
izoliacijos intervalą.
Dažniausiai šaknų atskyrimui yra taikomi šie sprendimo būdai:
• Grafinis šaknų atskyrimas
• Intervalo skaidos metodas
• Monotoniškumo intervalų metodas
Grafinis šaknų atskyrimas
Jei galima bent schematiškai nubrėžti funkcijos y = f(x) grafiką, tai
iš brėžinio galima nustatyti intervalus, kuriuose grafikas kerta arba
liečia Ox ašį, t.y. lygties f(x) = 0 šaknų izoliacijos intervalus.
Grafinis šaknų atskyrimas Jei y = f(x) grafiką nubrėžti sudėtinga, galima pabandyti perrašyti
lygtį pavidalu g(x) = h(x), kai funkcijų y = g(x) ir y = h(x) grafikus
nubrėžti nesudėtinga.
Tada ieškomos šaknys yra grafikų susikirtimo taškai.
Pvz., panagrinėkime lygtį x sin(x)= 1.
xy
1
xy sin
Kiek šaknų turi lygtis x sin(x)= 1 ?
Koks yra mažiausios teigiamos šaknies izoliacijos intervalas?
Intervalo skaidos metodas
• Šaknys atskiriamos pasirinkus pakankamai didelį pradinį intervalą
ir padalijus jį į N dalių. Toliau nustatomi funkcijos f(x) ženklai
kiekvieno dalinio intervalo galuose.
• Jei dalinio intervalo galuose funkcija yra priešingų ženklų, tai jame
yra lygties sprendinys (jei funkcija yra tolydi).
• Pavyzdys.
Apskaičiuokime funkcijos reikšmės intervalų galuose.
• Šaknų nėra? O jei paimsime
• Taigi, nesėkmingai parinkus pradinį intervalą ir N, šiuo metodu
galima nerasti (nepastebėti) visų sprendinių, kai:
• į dalininį intervalą patenka lyginis sprendinių skaičius,
• į dalininį intervalą patenka nelyginis sprendinių skaičius (>1).
• Pavaizduokite šiuos atvejus.
.6 ],11 ,13[ ,0244)( 234 Nxxxxf
?5 ],6 ,4[ N
Monotoniškumo intervalų metodas
• Šis būdas taikytinas tada, kai galima bent apytiksliai išspręsti lygtį
f ' (x) = 0 ir nustatyti funkcijos f(x) monotoniškumo (t.y. didėjimo ir
mažėjimo) intervalus pagal f ' (x) ženklą.
• Tuose monotoniškumo intervaluose, kurių galuose f(x) įgyja
priešingų ženklų reikšmes, yra vienintelis lygties sprendinys;
• Tuose monotoniškumo intervaluose, kurių galuose ženklai
vienodi, sprendinių nėra.
• Pavyzdys (2-o vadovėlio 24 pusl.). Vėl panagrinėkime lygtį
Galime nesunkiai išspręsti lygtį f ' (x) = 0 :
Iš čia gauname funkcijos f(x) monotoniškumo (t.y. didėjimo ir
mažėjimo) intervalus.
.0244)( 234 xxxxf
.0)2)(1(48124)( 23 xxxxxxxf
• Bolcano ir Koši teorema. Jei funkcija f(x) yra tolydi intervale
[a,b] ir šio intervalo galuose įgyja priešingų ženklų reikšmes, tai
tarp a ir b yra toks taškas c, a < c < b, kuriame ši funkcija lygi
nuliui: f(c) = 0.
• Šios teoremos įrodymas yra konstruktyvus – įrodymo eiga yra
lygties f(x) = 0 sprendimo algoritmas, kuris vadinamas pusiau-
kirtos (angl. bisection) metodo algoritmu. Pateiksime jį.
• Metodo idėja – pradinio intervalo mažinimas dalinant pusiau.
Iš dviejų intervalo pusių toliau mažinama tą, kurios galuose
funkcija f(x) įgyja priešingų ženklų reikšmes, t.y. kuriai priklauso
ieškoma šaknis.
Pusiaukirtos metodas
Pusiaukirtos metodo algoritmas
1. Pradinio intervalo parinkimas. Parenkame tokį pradinį intervalą, [a0, b0], kurio galuose
funkcijos reikšmės yra priešingų ženklų: f(a0)f(b0) < 0. Dalijimų skaičius n = 0.
2. Vidurio taško apskaičiavimas. Apskaičiuojame intervalo [an, bn] vidurio tašką:
3. Tikslumo tikrinimas. Jei intervalo [an, bn] ilgis ne didesnis už dvigubą reikalaujamą
tikslumą, |bn – an| ≤ 2ε, tai c = cn yra apytikslis lygties f(x) = 0 sprendinys, o jo paklaida
ne didesne už ε. Šiuo atveju skaičiavimus baigiame.
4. Ženklo nustatymas. Priešingu atveju, jei intervalo [an, bn] ilgis yra didesnis už 2ε, tai
nustatome funkcijos f(x) reikšmės ženklą intervalo vidurio taške cn. Jei f(cn) = 0, tai
c = cn yra tiksli lygties f(x) = 0 šaknis. Skaičiavimus baigiame.
5. Naujo intervalo nustatymas. Jei f(cn) ≠ 0, tai nustatome naują intervalą, kurio galuose
funkcija f(x) yra priešingų ženklų – jame yra tikslusis lygties sprendinys:
Jei f(an)f(cn) > 0, tai an+1 = сn , bn+1 = bn
Jei f(an)f(cn) < 0, tai an+1 = an , bn+1 = cn
6. Padidiname dalijimų skaitiklį: n := n+1 ir grįžtame į antrąjį algoritmo žingsnį.
• Išspręskime pavyzdį – rinkos pusiausvyros uždavinį
0,01 tikslumu (vadovėlio 23 pusl., 2 lentelė).
• Pasirinkę pradinį intervalą [a0, b0] = [0, 1], po 6 iteracijų gauname
apytikslį sprendinį vienos šimtosios tikslumu: c6 ≈ 0,77.
2
nnn
bac
03 xex
Pusiaukirtos metodas
• Dabar įrodykime Bolcano ir Koši teoremą.
• Funkcijos tolydumas intervale [a, b] yra būtinas. Panagrinėkime
pavyzdžius
• Pusiaukirtos metodo paklaidos įvertis:
• Toliau nagrinėjami metodai (Niutono, kirstinių) konverguos
didesniu greičiu, tačiau tik tada, kai funkcija f(x) tenkins
papildomus reikalavimus.
.tg ,||
xyx
xy
.22
|| 00
n
nnnn
ababcc
Paprastųjų iteracijų metodas
• Sprendžiamą lygtį f(x) = 0 perrašome tokia išraiška: x = φ(x).
• Randame ieškomos šaknies izoliacijos intervalą [a, b] ir jame
pasirenkame pradinį šaknies artinį x0: a < x0 < b.
• Generuokime iteracinę artinių seką {xn} pagal formule
xn+1 = φ(xn).
• Panagrinėkime pavyzdį:
• Pertvarkome
• Pasirenkame pradinį artinį x0 = 1.
• Apskaičiuokime keletą artinių
x1, x2, x3, ... Seka konverguoja?
• Panagrinėkime kitą pavyzdį:
• Pertvarkome ir pasirenkame x0 = 1. Apskaičiuokime x1.
• Paimkite kitą x0. Ar seka konverguoja?
.0210118)( 23 xxxxf
.10
2118 23
xxx
.0ln2 xx
xx ln2
Paprastųjų iteracijų metodo konvergavimas
• Kada (kokiomis sąlygomis) parastųjų iteracijų metodu gaunama
artinių seka konverguoja (artėja) į tikslųjį lygties sprendinį c?
• 2 Teorema. Jei lygties x = φ(x) sprendinys c yra intervale [a, b],
o funkcija φ(x) šiame intervale turi tolydžią išvestinę ir
|φ'(x)| ≤ q < 1, tai, parinkus bet kokį pradinį artinį x0 iš [a, b],
artinių seka xn+1 = φ(xn) konverguoja į tikslųjį sprendinį c, t.y.
o paklaida įvertinama tokia nelygybe:
t.y. po kiekvienos iteracijos paklaida sumažėja 1/q kartų.
• Įrodykime šią teoremą.
• Pastaba. Teoremos sąlygomis artinio paklaida įvertinama tokia
nelygybe:
• Siekiant tikslumo ε gauname tikslumo sąlygą:
,lim cxnn
.||1
|| 11 nnn xxq
qcx
|,||| 1 cxqcx nn
.1
|| ||1
|| 111 q
qxxxx
q
qcx nnnnn
1. Pradinio artinio parinkimas. Parenkamas iš intervalo [a, b]. Iteracijų skaitiklis n = 0.
2. Naujo artinio apskaičiavimas. Apskaičiuojamas naujas artinys:
3. Tikslumo tikrinimas. Tikrinama, ar pasiektas norimas tikslumas:
Jei ši sąlyga negalioja, tai iteracijų skaitiklis padidinamas vienetu ir grįžtama į antrąjį žingsnį.
4. Iteracijų pabaiga. Jei tikslumo sąlyga galioja, tai skaičiavimai baigiami, ir yra
lygties apytikslis sprendinys (sprendinio artinys), apskaičiuotas tikslumu ε.
0x
1 ( ).n nx x
1nx
Iš pradžių randamas ieškomo sprendinio c izoliacijos intervalas [a, b]. Lygtis f(x) = 0
perrašoma pavidalu x = φ(x) taip, kad intervale [a, b] būtų patenkintos teoremos sąlygos
(kitu atveju iteracinis procesas gali diverguoti). Apskaičiuojamas q: |φ'(x)| ≤ q < 1.
Paprastųjų iteracijų metodo algoritmas
.1
|| 1 q
qxx nn
Pabaikime spręsti pradėtus uždavinius (žr. vadovėlio 31-33 psl.).
1. Iš pradžių reikia rasti |φ'(x)| maksimumą - q šaknies izoliacijos intervale [a, b].
Didžiausia reikšmė (moduliu!) įgyjama arba viename iš kritinių taškų (φ''(x) = 0)
arba viename iš intervalo galu - a arba b.
2. Jei funkcija φ(x) netenkina konvergavimo teoremos sąlygų, reikia pabandyti
išreikšti x = φ(x) kitu būdu.
Antrajame pavyzdyje pradinę lygtį galime pertvarkyti taip: .e 2/xx
• Skaitiniai metodai yra klasifikuojami pagal jų konvergavimo greičius, t.y. pagal tai, kaip greitai jie mažina apytikslio sprendinio paklaida.
• Bendru pavidalu metodo paklaidos įvertį galime užrašyti, taip
• Kai p = 1, sakoma, kad metodas yra pirmos eilės ir turi tiesinį
konvergavimo greitį. • Akivaizdu, kad tam, kad pirmos eilės metodas konverguotų,
įverčio konstanta q turi būti : 0 < q < 1. • Pavyzdžiui, pusiaukirtos metodas yra pirmos eilės, t.y. turi tiesinį
konvergavimo greitį: q = ½. O paprastųjų iteracijų metodas? • Kai p = 2, sakoma, kad metodas yra antros eilės ir turi kvadratinį
konvergavimo greitį. • Kai p = 3, sakoma, kad metodas yra trečios eilės ir turi kubinį
konvergavimo greitį. • Toliau susipažinsime su kitais lygties f(x) = 0 sprendimo
metodais, kurių konvergavimo greitis yra didesnis nei tiesinis.
Skaitinių metodų konvergavimo greičiai
.|||| 1
p
nn cxqcx
• Liestinės ir Ox ašies susikirti-
mo tašką laikysime naujuoju
sprendinio artinių – x1.
• Jį apskaičiuojame iš liestinės
lygties, nes taškas (x1 , 0) turi
ją tenkinti:
• Kartojame šį procesą pagal
formulę:
• Pasirinkime pradinį lygties f(x) = 0 sprendinio c artinį x0,
apskaičiuokime funkcijos reikšmę f(x0) ir nubrėžkime funkcijos
f(x) liestinę per duotą tašką (x0 , f(x0)):
Niutono metodo geometrinė interpretacija:
1
( ).
( )
nn n
n
f xx x
f x
Niutono (liestinių) metodas
).)(()( 000 xxxfxfy
),)(()(0 0100 xxxfxf
.)(
)(
0
001
xf
xfxx
Niutono metodo konvergavimo sąlygos ir greitis
Ar seka {xn} konverguoja? Kokiomis sąlygomis? Kokiu greičiu?
3 Teorema. Jei lygties f(x) = 0 sprendinio c aplinkoje
1) pirmoji funkcijos išvestinė nelygi nuliui, t.y.
2) antroji išvestinė aprėžta, t.y.
3) o pradinis artinys yra pakankamai arti tiksliojo sprendinio c,
tai Niutono metodo iteracinė artinių seka {xn} konverguoja į
tikslųjį sprendinį c, t.y.
o paklaida įvertinama tokia nelygybe:
• Taigi, Niutono metodas turi kvadratinį konvergavimo greitį ir konverguoja sparčiau, ypač, kai paklaida pasidaro maža.
• Pastebėkime, kad pradinis artinys turi būti pakankami arti, kad pirmasis artinys būtų jau arčiau ir t.t., t.y. kad procesas konverguotų (kitaip gali diverguoti):
,lim cxnn
,0|)(| 1 Mxf
,|)(| 2Mxf
.||2
|| 2
1
21 cx
M
Mcx nn
n
.2
||2
10
M
Mcx
1. Pradinio artinio parinkimas. Pasirenkamas pradinis artinys .
Iteracijų skaitiklis n = 0.
2. Naujo artinio apskaičiavimas. Apskaičiuojamas naujas artinys:
3. Tikslumo tikrinimas. Jei sąlyga negalioja, tai iteracijų skaitiklis
didinamas vienetu ir grįžtame į 2 žingsnį.
4. Iteracijų pabaiga. Jei tikslumo sąlyga galioja, skaičiavimai baigiami, ir yra
apytikslis lygties f(x) = 0 sprendinys. 1nx
0x
1
( ).
( )
nn n
n
f xx x
f x
Pastabos:
1. Nepamirškite, kad šį algoritmą galime naudoti, tik jeigu funkcijos f(x) išvestinė
yra nelygi nuliui ieškomo sprendinio aplinkoje, o pradinis artinys pasirinktas
pakankamai arti.
2. Jei Niutono metodas konverguoja, tai turi galioti įvertis:
Jo pagalba galima patikrinti, ar metodas konverguoja.
Pavyzdys (vadovėlio 37 pusl., 3 pvz.). 0,00001 tikslumu išspręskime lygtį
Pasirinkime pradinį artinį
Pastaba. Tikslusis lygties sprendinys c = 1,1.
1 1 .n n n nx x x x
Niutono metodo algoritmas
|| 1 nn xx
.0231,03 xx .30 x
• Kirstinės ir Ox ašies susikirti-
mo tašką laikysime naujuoju
sprendinio artinių – x2.
• Jį apskaičiuojame iš kirstinės
lygties, nes taškas (x2 , 0) turi ją
tenkinti:
• Kartojame šį procesą pagal
formulę:
• Kai funkcijos f(x) išvestinę analiziškai rasti neįmanoma galime
vietoje liestinių naudoti kirstines ir sudaryti kirstinių metodą.
• Pasirinkime du pradinius lygties f(x) = 0 sprendinio c artinius x0 ir
x1 ir nubrėžkime funkcijos f(x) kirstinę per duotus taškus (x0 , f(x0))
ir (x1 , f(x1)):
Metodo geometrinė interpretacija:
Kirstinių metodas
.)()(
)(
10
1
10
1
xx
xx
xfxf
xfy
.)()(
)(01
01112
xfxf
xxxfxx
.)()(
)(1
1112
nn
nnnnn
xfxf
xxxfxx
• Sekos {xn} konvergavimo sąlygos labai panašios į Niutono
metodo konvergavimo sąlygas (3 teoremos), t.y. glodi ir
nenulinė išvestinė sprendinio c aplinkoje.
• Galima įrodyti, kad kirstinių metodo paklaida tenkina nelygybę:
• Taigi, kirstinių metodas konverguoja lėčiau (iteracijų prasme)
negu Niutono metodas.
• Tačiau vienos Niutono metodo iteracijos skaičiavimų apimtis
sulyginama su dviejų kirstinių metodo iteracijų apimtimi, nes
Niutono metodui reikia apskaičiuoti ir funkcijos, ir jos išvestinės
reikšmes, o kirstinių metodui – tik funkcijos.
• O po dviejų iteracijų kirstinių metodas sumažina paklaidą
daugiau:
• Todėl dažniausiai skaičiavimų laiko prasme kirstinių metodas
leidžia apskaičiuoti sprendinį greičiau negu Niutono.
Kirstinių metodo konvergavimas
.62,12/)15( čia ,|||| 1 cxCcx nn
.62,2 čia ,|||| 2
2 cxCcx nn
1. Pradinių artinių parinkimas. Pasirenkami pradiniai artiniai x0 ir x1 .
Iteracijų skaitiklis n = 0.
2. Naujo artinio apskaičiavimas. Apskaičiuojamas naujas artinys:
3. Tikslumo tikrinimas. Jei sąlyga negalioja, tai iteracijų skaitiklis
didinamas vienetu ir grįžtame į 2 žingsnį.
4. Iteracijų pabaiga. Jei tikslumo sąlyga galioja, skaičiavimai baigiami, ir yra
apytikslis lygties f(x) = 0 sprendinys.
Pastaba. Jei kirstinių metodas konverguoja, tai turi galioti įvertis:
Jo pagalba galima patikrinti, ar metodas konverguoja.
Pavyzdys (vadovėlio 41 pusl., 5 pvz.). 0,00001 tikslumu išspręskime tą pačią lygtį
Pasirinkime pradinius artinius
1 1 .n n n nx x x x
Kirstinių metodo algoritmas
|| 12 nn xx
.0231,03 xx
.)()(
)(1
1112
nn
nnnnn
xfxf
xxxfxx
2nx
.3 ,4 10 xx
Uždaviniai savarankiškam darbui
1. Grafiškai atskirkite lygties šaknis. Pusiaukirtos metodu raskite jos sprendinį (jei sprendinių keletas, tai mažiausią) 0,01 tikslumu
Ats.: -0,95.
2. Grafiškai atskirkite lygties šaknis. Pusiaukirtos, paprastųjų iteracijų, Niutono ir kirstiniu metodais raskite jos sprendinį (jei sprendinių keletas, tai mažiausią teigiamąją) 0,0001 tikslumu. Palyginkite iteracijų skaičių.
Ats.: 0,7391.
3. Pabandykite išspręsti lygtį
• Niutono metodu su pradiniu artiniu (a)
(b)
• kirstiniu metodu su pradiniais artiniais (c)
(d)
4. Uždaviniai iš literatūros sąrašo mokymo priemonių (pvz., iš vadovėlio 2 skyriaus).
.01477 23 xxx
.0cos xx
0arctg x
;35,10 x;45,10 x
;3,1 ,5,1 10 xx
.2 ,3 10 xx
• Toliau dažnai spręsime uždavinius, kurių tikslieji sprendiniai ir jų artiniai yra vektoriai.
• Kaip įvertinti jų paklaida, t.y. kiek jie skiriasi vienas nuo kito? • Apibrėšime ir naudosime vektoriaus normos sąvoką.
• Apibrėžimas. Vektoriaus norma vadinamas skaičius turintis šias savybes:
1.
2. čia c – skaičius.
3.
• Dažniausiai taikomos vektorių normos:
• Įrodykite, kad šios funkcijos yra normos, t.y. jos tenkina apibrėžimo 1-3 sąlygas.
Vektorių normos
T
21 ),,,( nxxxx
,x
.00ir ,0 jei ,0
xx
, xcxc
.yxyx
,||1
1
n
i
ixx
euklidinė
,
0,5
1
2
2
n
i
ixx
maksimumo
. ||max1
ini
xx
• Sprendžiant daugelį matematinio modeliavimo uždavinių
sprendžiamos netiesinių lygčių sistemos. Pvz., kelių kintamųjų
funkcijos ekstremumo radimo uždavinys.
• Bendruoju atveju nagrinėsime n netiesinių lygčių su n
nežinomųjų sistemą
čia yra netiesinės n kintamųjų funkcijos.
• Šią sistemą glaustai užrašysime vektoriniu pavidalu
čia
• Išnagrinėsime du šio uždavinio sprendimo metodus: paprastųjų
iteracijų metodą ir Niutono metodą.
Netiesinių lygčių sistemų sprendimo metodai
,0),...,,(
..............................
,0),...,,(
,0),...,,(
21
212
211
nn
n
n
xxxf
xxxf
xxxf
),...,,( 21 ni xxxf
),...,,( 21 nxxxf
,0)(
xf . , 2
1
2
1
nn f
f
f
f
x
x
x
x
• Lygčių sistemą pertvarkome tokiu pavidalu:
• Pasirenkamas pradinis sprendinio artinys –
• Kai yra žinomas k-asis sprendinio artinys naująjį artinį
apskaičiuojame pagal formulę:
• Kiekviename žingsnyje naudodami pasirinktą normą tikriname,
ar nėra pasiektas norimas tikslumas:
• Ar šiuo metodu gaunama vektorių seka konverguoja į tikslųjį
sprendinį:
• Kokiomis sąlygomis ir kokiu greičiu?
Paprastųjų iteracijų metodas
),,...,,(..............................
),,...,,(
),,...,,(
21
2122
2111
nnn
n
n
xxxx
xxxx
xxxx
).(xx
.),,,( T00
2
0
1
0
nxxxx
).(1 kk xx
,kx 1kx
?1 kk xx
?cx k
k
• Apibrėžimas. Funkcija yra vadinama spūdine funkcija n-
mačių vektorių aibėje V, jei yra toks skaičius kad su bet
kokiais ir galioja nelygybė
• 4 Teorema. Jei sprendinio aplinkoje
funkcija yra spūdinė, tai su bet kokiu pradiniu artiniu
paprastųjų iteracijų seka konverguoja į tikslųjį
sprendinį: o k-jo artinio paklaida įvertinama nelygybe:
• Paprastųjų iteracijų metodas konverguoja tiesiniu greičiu.
• Ką geometriškai apibrėžia aplinka euklidinėje ir
maksimumo normose, kai n = 2, 3? Pavaizduokite.
• Kaip patikrinti, ar funkcija yra spūdinė?
Paprastųjų iteracijų metodas
)(xS
.)()( xxqxSxS
),1,0(q
Vx
Vx
)(x
c
)(0 cBx
,cx k
k
} :{)( cxxcB
.)(1
00 xxq
qcx
kk
)(cB
• Apibrėžimas. Funkcijos Jakobianu (Jakobio matrica)
vadinama matrica, sudaryta iš funkcijos komponenčių dalinių
išvestinių:
• Paprastųjų iteracijų metodo funkcija yra spūdinė srityje V
(pakankama sąlyga), jei
čia ||A|| yra matricos norma, pvz.
)x(f
n
nnn
n
n
x
f
x
f
x
f
x
f
x
f
x
f
x
f
x
f
x
f
xf
...
............
...
...
))((
21
2
2
2
1
2
1
2
1
1
1
J
)(x
V. kai ,1))(( xqx
J
.||max1
1
n
j
ijni
aA
• Paprastųjų iteracijų metodu 0,001 tikslumu išspręskite lygčių
sistemą
• Pertvarkome šią lygčių sistemą pagal paprastųjų iteracijų metodo
reikalavimus
• Šiuo atveju (n = 2) galime schematiškai nubrėžti y = y(x) ir x = x(y)
funkcijų grafikus ir apytiksliai nustatyti sprendinį ir jo sritį:
• Apskaičiuodami jakobianą ir jo norma srityje V gauna-
me q = 0,54<1, t.y. teoremos sąlygos yra patenkintos.
• Pasirenkame pradinį artinį iš srities V:
• Apskaičiuojame pirmąjį sprendinio artinį ir jo paklaidą.
• Norimas tikslumas yra pasiekiamas 5-oje iteracijoje:
Paprastųjų iteracijų metodas. Pavyzdys.
2cos2
2,1)1sin(
yx
yx
yx
xy
cos5,01
2,1)1sin(
:))(( xx
2,1)1sin(
cos5,01
xy
yx
}.01 ,10 :),{( yxyxV
)),(( yx
J
.0ir 0 00 yx
),( 111 yxx
).0,20185- ;51015,0(),( 555 yxx
• Išreikštinis iteracinis metodas. Dažnai konverguojantis
iteracinis procesas gaunamas tokiu pavidalu:
čia τ - iteracinis parametras, parenkamas taip, kad iteracinis
procesas konverguotų greičiausiai.
• Kokiomis sąlygomis šis procesas konverguoja?
• Pasinaudokite 4 teoremą.
• Pikaro metodas. Tarkime, kad turi pavidalą:
čia A yra kvadratinė n-osios eilės matrica.
Tada galime sudaryti tokį iteracinį procesą:
kurio kiekvienoje iteracijoje reikia spręsti tiesinių lygčių sistemą.
• Kada Pikaro metodu gaunama iteracinė seka konverguoja?
Išreikštinis iteracinis ir Pikaro metodai
),(1
kkk
xfxx
),( 1 kkk xfxx
)(xf
),()( xxxf
GA
,0)(1
kk xx GA
• Netiesinės funkcijos pakeičiamos Teiloro eilutės
skleidiniais taške
• Prilyginame skleidinius nuliui ir užrašome Jakobiano pagalba
vektoriniu pavidalu:
• Taigi, gavome tiesinių lygčių sistemą. Ją išsprendę apskaičiuoja-
me naują sistemos sprendinio artinį:
arba panaudojant Jakobiano atvirkštinę matricą:
Niutono metodas ),...,,( 21 ni xxxf
:kx
).(),...,,(
),...,,(),...,,(01
212121
k
jj
n
j j
k
n
kk
ik
n
kk
ini xxx
xxxfxxxfxxxf
.0)))((()(
kkk xxxfxf J
),()))((( 1 kkkk xfxxxf
J
).())(( 11 kkkk xfxfxx
J
1. Pradinio artinio parinkimas. Parenkame pradinį artinį iš
srities, kurioje yra lygčių sistemos sprendinys. Iteracijų skaitiklis n = 0.
2. Naujo artinio apskaičiavimas. Apskaičiuojant atvirkštinę jakobiano matricą arba
sprendžiant tiesinių lygčių sistemą, randame
3. Tikslumo tikrinimas. Jei sąlyga netenkinama iteracijų skaitiklį
didiname vienetu ir grįžtame prie 2 punkto.
4. Iteracijų pabaiga. Jei sąlyga tenkinama, tai yra lygčių sistemos sprendinio
artinys, apskaičiuotas su tikslumu ε.
arba )())(( 11 kkkk xfxfxx
J
Niutono metodo algoritmas
1kx
T00
2
0
1
0 ),,,( nxxxx
kk xx 1
Pastabos. Niutono metodo iteracinė seka konverguoja (kai
Jakobianas neišsigimsta) kvadratiniu greičiu:
Tačiau jo realizacija sudėtinga (reikalauja daug skaičiavimų):
kiekvienoje iteracijoje tenka apskaičiuoti Jakobio matricos elemen-
tus (n2) ir rasti jos atvirkštinę matricą (išspręsti ties. lygčių sistemą).
.2
1 cxCcx kk
).()))((( 1 kkkk xfxxxf
J
:1kx
• 1 pavyzdys. Niutono metodu 0,001 tikslumu išspręskite lygčių
sistemą
• Šiuo atveju (n = 2) galime schematiškai nubrėžti y = y(x) ir x = x(y)
funkcijų grafikus ir apytiksliai nustatyti sprendinį ir jo sritį:
• Randame šios sistemos Jakobio matricą:
• Pasirenkame pradinį artinį iš srities V:
• Apskaičiuojame pirmąjį sprendinio artinį ir jo paklaidą.
• Palyginkite konvergavimo greitį su parastųjų iteracijų metodu.
• 2 pavyzdys. Niutono metodu 0,0001 tikslumu išspręskite lygčių
sistemą
Niutono metodas. Pavyzdžiai.
2cos2
2,1)1sin(
yx
yx
.)sin(2
1)1cos()),((
y
xyxf
J
}.01 ,10 :),{( yxyxV
.0ir 0 00 yx
),( 111 yxx
0
01
2
2
1
2
2
2
1
xx
xx
Niutono metodo modifikacijos
• Egzistuoja įvairiausios Niutono metodo modifikacijos:
Niutono-Rafsono metodas:
su specialiai parenkamu iteraciniu parametru τk.
Įšaldytasis Niutono metodas:
kai atvirkštinė Jakobio matrica apskaičiuojama tik kas m-ąją
iteraciją.
Mažiau skaičiavimų kiekvienoje iteracijoje, bet sulėtėja
konvergavimo greitis.
Modifikacija su Jakobio matricos komponenčių - dalinių
išvestinių skaitiniu aproksimavimu:
),())((1
k
k
kkk xf
xxxf
J
,,,2,1 ),())(( 111 mjxfxfxx jkkjkjk
J
.),,,,,(),,,,,(
, ))((2121
h
xxxxfxhxxxfjixf
k
n
k
j
kk
i
k
n
k
j
kk
ik
J
Tiesioginiai tiesinių lygčių sistemų
sprendimo metodai
• Tarkime, kad n kintamųjų x1 , x2 , ... , xn sąryšiai išreikšti m
tiesinėmis algebrinėmis lygtimis. Tokiu atveju sakoma, kad turime
m tiesinių lygčių sistemą su n nežinomųjų:
• Žinomi dydžiai aij vadinami sistemos koeficientais; bi – sistemos
laisvaisiais nariais, o nežinomi dydžiai xj – sistemos nežinomaisiais
(kintamaisiais).
• Tiesinių lygčių sistemos sprendiniu vadinamas toks nežinomųjų
reikšmių rinkinys (vektorius) =(x’1 , x’2 , ... , x’n ), kuris tenkina
visas sistemos lygtis.
• Pavyzdžiai. Sąnaudų ir gamybos uždavinys, diferencialinių lygčių
skaitiniai sprendimo metodai.
Tiesinių lygčių sistemos
mnmnmm
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
...
...........................................
...
...
2211
22222121
11212111
x
• Nagrinėsime tiesinių lygčių sistemų sprendimo
metodus, kuriais per baigtinį žingsnių skaičių
gaunamas tikslusis sprendinys (jei nedaroma
apvalinimo paklaidų).
• Tokie metodai vadinami tiesioginiais tiesinių lygčių
sistemų sprendimo metodais.
• Nagrinėsime
– Gauso metodą,
– perkelties metodą,
– LU skaidos metodą,
– Choleckio metodą.
• Tiesinių lygčių sistemos
sprendinių aibė nesikeičia:
1) bet kurią lygtį pakeitus tos lygties ir nelygaus nuliui skaičiaus
sandauga;
2) bet kurią lygtį pakeitus tos lygties ir kitos lygties suma;
3) bet kurias sistemos lygtis sukeitus vietomis;
• Išvardyti veiksmai vadinami tiesinių lygčių sistemos
elementariaisiais (ekvivalenčiaisiais) pertvarkiais.
Tiesinių lygčių sistemų elementarieji pertvarkiai
mnmnmm
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
...
...........................................
...
...
2211
22222121
11212111
• Gauso metodas yra pagrindinis tiesioginis tiesinių lygčių sistemų
sprendimo metodas.
• Jo esmė – nuoseklus nežinomųjų šalinimas elementariųjų pertvar-
kių pagalba, siekiant gauti trikampę tiesinių lygčių sistemą:
Arba matricinių pavidalu:
Gauso metodas
nnnnnn
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
..............................................
...
...
2211
22222121
11212111
nnnn
nn
nn
dxc
dxcxc
dxcxcxc
...........................................
...
...
22222
11212111
nnn
n
n
dc
dcc
dccc
...00
...............
...0
...
2222
111211
• Pirmuoju žingsniu iš visų lygčių, išskyrus pirmąją, pašalinamas ne-
žinomasis x1: pirmoji lygtis dauginama iš daugiklio li1 = ai1 /a11 ir
atimama iš i-osios lygties, i=2,3,...,n:
čia a1ij , b
1i yra pertvarkytos sistemos koeficientai, apskaičiuoti pagal
formules
• Antrajame žingsnyje su antrąja lygtimi analogiškai pašalinamas
nežinomasis x2 iš trečiosios ir tolimesnių lygčių:
Gauso metodas
111
2
1
2
1
2
1
22
111211
1
...0...............
...0
...
nnnn
n
n
baa
baa
baaa
A
.,, 11
1
11
1
11
11 blbbalaa
a
al iiijiijij
ii
222
3
2
3
2
3
2
33
1
2
1
2
1
23
1
22
11131211
2
...00..................
...00
...0
...
nnnn
n
n
n
baa
baa
baaa
baaaa
A
• Atlikus n-1 žingsnį, gaunama lygčių sistema su viršutine trikampe
matrica:
• Šis pirmas Gauso metodo etapas vadinamas tiesiogine eiga.
• Antrajame Gauso metodo etape, pradedant nuo xn, iš pertvarkytosios
sistemos apskaičiuojami visi sistemos nežinomieji
• Šis antras etapas vadinamas atbuline Gauso metodo eiga.
Gauso metodas
11
2
3
2
3
2
33
1
2
1
2
1
23
1
22
11131211
1
...000..................
...00
...0
...
n
n
n
nn
n
n
n
n
ba
baa
baaa
baaaa
A
11
2
3
2
33
2
33
1
2
1
23
1
232
1
22
11313212111
..................
...
...
...
n
nn
n
nn
nn
nn
nn
bxa
bxaxa
bxaxaxa
bxaxaxaxa
.1,...,2,1 ,/)(
,
1
1
11
1
1
nniaxabx
a
bx
iii
n
ik
kiik
iii
nnn
nn
n
• Renkantis vieną ar kitą skaitinį metodą uždavinio sprendimui yra
atsižvelgiama ir į tų metodų skaičiavimų apimtis.
• Apskaičiuokime, kiek aritmetinių veiksmų atliekama sprendžiant n
lygčių sistemą Gauso metodu.
• Sakykime, kad daugybos (dalybos) ir sudėties (atimties) veiksmus
kompiuteris atlieka vienodu greičiu. Atskirai apskaičiuokime atlieka-
mu daugybų (dalybų) ir sudėčių (atimčių) skaičius: D ir S.
• Tiesioginės eigos metu atliekama
daugybų ir dalybų.
Pasinaudodami formule gauname, kad
Analogiškai gauname, kad
Taigi, tiesioginės eigos metu atliekama
Gauso metodo skaičiavimų apimtis
1
1
1 ))1)(()((n
k
knknknD
n
i
nnni
1
2
6
)12)(1(
.6
)52)(1()11)((
1
1
1
n
k
nnnknknD
.6
)22)(1()1)((
1
1
1
n
k
nnnknknS
).didelis kai(3
2
6
7
2
1
3
2
6
)74)(1( 32311 nnnnn
nnnSD
• Atbulinės eigos metu atliekama
daugybų ir dalybų.
• Analogiškai gauname, kad
• Taigi atbulinės eigos metu atliekama veiksmų.
• Taigi bendroji Gauso metodo skaičiavimų apimtis
• Pastebėkime, kad dideliems n beveik visas skaičiavimų darbas yra
atliekamas tiesioginės eigos metu.
• Palyginimas su Kramerio (determinantų) metodu. Pagal metodo
formules reikia apskaičiuoti n+1 determinantą (n-os eilės). Skaičiuo-
jant determinantus pagal apibrėžimą, bendras veiksmų skaičius yra
lygus (n+1)n!= (n+1)!.
• Pavyzdžiui, kai n = 20, tai 21! ≈ 5,1·1019.
Gauso metodo skaičiavimų apimtis
2
)1()1(
11
2
nniknD
n
i
n
k
222 nSD
.2
)1()(
1
1
1
1
2
nniknS
n
i
n
k
).didelis kai(3
2
6
7
2
3
3
2 3232211 nnnnnSDSD
• Sistemos koeficientas, esantis matricos įstrižainėje – akk (k-jame
žingsnyje), vadinamas pagrindiniu elementu.
• Skaičiuojant kompiuteriu, kai gaunamas artimas nuliui pagrindinis
elementas, tai dalyba iš jo: - padidina apvalinimo paklaidas.
• Todėl pagal 2-ąją stabiliųjų algoritmų sudarymo taisyklę Gauso me-
todo algoritmuose naudojami įvairiausi pagrindinio elemento parin-
kimo būdai.
• 1 būdas. Pagrindinis elementas išrenkamas iš stulpelio koeficientų:
k-ame žingsnyje k-ame stulpelyje randamas didžiausias moduliu koe-
ficientas:
k-oji ir m-oji lygtys sukeičiamos vietomis, t.y. amk tampa pagrindiniu
elementu.
• Šio parinkimo būdo dažnai nepakanka – gali atsitikti, kad visi vieno
stulpelio koeficientai yra maži skaičiai.
Gauso metodo pagrindinio elemento parinkimo būdai
kk
ikik
a
al
.||||max mkiknik
aa
• 2 būdas. Pagrindinis elementas išrenkamas iš eilutės koeficientų:
k-ame žingsnyje k-oje eilutėje randamas didžiausias moduliu koefi-
cientas:
k-is ir m-is stulpeliai sukeičiami vietomis (nežinomieji pernume-
ruojami!), t.y. akm tampa pagrindiniu elementu.
• 3 būdas. Sudėtingesnis, bet geresnis: a) Lygtys normuojamos, t.y. dalinamos iš didžiausio moduliu koe-
ficiento:
b) Lygtys sukeičiamos vietomis taip, kad k-ąja lygtimi taptų ta, kurios koeficientų modulių suma yra mažiausia (k↔m):
c) Pagrindiniu elementu išrenkamas didžiausias moduliu eilutės koeficientas,
t.y. stulpeliai sukeičiami (k↔m), nežinomieji pernumeruojami.
Gauso metodo pagrindinio elemento parinkimo būdai
.||||max kmkjnjk
aa
.,,,|,|||max njika
aanikaa
i
iim
ijijimij
njk
.||||min
n
kj
mj
n
kj
ijnik
aa
|,|||max kmkjnjk
aa
• Pavyzdys (vadovėlio 67 p.). Gauso metodu išspręskite sistemą
parenkant pagrindinį elementą antruoju būdu:
Pavyzdys (vadovėlio 68 p.). Gauso metodu išspręskite sistemą
parenkant pagrindinį elementą trečiuoju būdu:
Gauso metodo pagrindinio elemento parinkimas
43035,0
2202,0
2,12,001,0
321
31
321
xxx
xx
xxx
15,02,005,0
0202,0
12,0100100
321
321
321
xxx
xxx
xxx
• Praktikoje labai dažnai sutinkamos tiesinių lygčių sistemos, kurios
turi labai daug nulinių matricos koeficientų. Pavyzdžiui, tokios sis-
temos yra gaunamos sprendžiant skaitiniais metodais diferenciali-
nius modelius.
• Nagrinėsime atvejį, kai kiekvienoje lygtyje yra nedaugiau trijų
nenulinių koeficientų – pagrindinėje matricos įstrižainėje ir abiejose
gretutinėse. Tokios sistemos vadinamos triįstrižainėmis.
• Šias sistemas galima spręsti ir su Gauso metodu, tačiau didžioji dalis
veiksmų būtų atliekama su nuliais – jų rezultatas aiškus iš anksto.
Triįstrižainės sistemos
nnnnn
iiiiiii
dxbxa
dxcxbxa
dxcxbxa
dxcxb
1
11
2322212
12111
.....................
.....................
nn
nn
ba
cb
ba
cba
cb
...000
...000
..................
00...0
00...
00...0
11
33
222
11
• Modifikuosime Gauso metodą ir sudarysime perkelties metodą.
• Pirmąją lygtį daliname iš įstrižainės elemento b1 ir išreiškiame x1:
• Įstatome x1 į antrąją lygtį ir išreiškiame x2:
• Tęsiant nežinomųjų šalinimą, iš i-osios lygties išreiškiamas xi:
• Paskutinėje, n-oje, lygtyje cn=0, todėl Cn=0 ir
Perkelties metodas
.121
1
12
1
11 DxC
b
dx
b
cx
.232212
2123
212
22 DxC
aCb
aDdx
aCb
cx
.11
11
1iii
iii
iiii
iii
ii DxC
aCb
aDdx
aCb
cx
.nn Dx
1. Tiesioginė eiga. Apskaičiuojami perkelties koeficientai Ci ir Di:
2. Atbulinė eiga. Randamos nežinomųjų xi reikšmes:
• Pavyzdys (75 pusl.). Perkelties metodu išspręskite triįstrižainę
lygčių sistemą
• Įvertinkime perkelties metodo skaičiavimų apimtį.
• Suskaičiuokime atskirai daugybų (dalybų) ir sudėčių (atimčių)
skaičius pirmajame ir antrajame perkelties metodo etapuose:
• Bendra skaičiavimų apimtis -
Perkelties metodo algoritmas
. ,1..,2 , , , ,1
1
1
1
11
11
1
11
nnn
nnnn
iii
iiii
iii
ii
aCb
aDdDn,i
aCb
aDdD
aCb
cC
b
dD
b
cC
.121 , , 1 ,,,nniDxCxDx iiiinn
.1 ,1 ,22 ,34 2211 nSnDnSnD
.782211 nSDSD
12
02
12
32
321
21
xx
xxx
xx
• Taigi perkelties metodo skaičiavimų apimtis proporcinga 8n, t.y.
šiuo metodu triįstrižainė n-osios eilės lygčių sistema išsprendžia-
ma (1/12)n2 kartų greičiau negu Gauso metodu.
• Pavyzdžiui, naudojant kompiuterį, kurio skaičiavimo greitis yra
1 GFlops (109 operacijų su realiais skaičiais per sekundę):
• Kokios problemos gali iškilti taikant perkelties metodą?
Pagrindinės įstrižainės vyravimo sąlyga.
Jei triįstrižainės matricos pagrindinė įstrižainė yra vyraujamoji,
t.y.
ir bent su vienu i galioja griežta nelygybė (<), tai dalyba iš nulio
ar labai mažo skaičiaus perkelties metodo eigoje negalima.
Perkelties metodo algoritmas
,,...,2,1 , nibca iii
• Tarkime, kad reikia išspręsti m tiesinių lygčių sistemų ,
i=1,2,...,m, kurių matrica yra ta pati, o skiriasi tik laisvieji nariai.
• Sprendžiant vieną sistemą po kitos Gauso metodu, atliktume
O(2/3mn3) aritmetinių veiksmų.
• Akivaizdu, kad tiesioginės eigos metu atlikinėtume tuos pačius
veiksmus. Kaip galima nekartoti skaičiavimų?
LU skaidos metodas:
1. Lygčių sistemos matrica A išskaidoma į dviejų trikampių matricų –
apatinės L ir viršutinės U – sandaugą (matricos L įstrižainės ele-
mentus galima parinkti laisvai, imkime vienetus):
2. Pradinės lygčių sistemos sprendinys randamas nuosekliai vieną po
kitos išsprendus dvi sistemas su trikampėmis matricomis:
LU skaidos metodas
.
,
yx
fyf
y
xfx
U
LULA
.
...00............
...0
...
1...............
0...10...01
222
11211
21
21
nn
n
n
nn u
uu
uuu
ll
lLUA
ii fx
A
• Prisiminkime, kad Gauso metodo tiesioginėje eigoje pradinė siste-
mos matrica A pertvarkoma būtent į viršutinę trikampę matricą, t.y.
U apskaičiuojama pagal tas pačias formulės, k-ame žingsnyje:
• Laisvųjų narių stulpelio elementai po šių pertvarkių:
išreiškiami taip:
• Taigi apatinės trikampės matricos L elementai yra tiesioginės Gauso
metodo eigos daugikliai:
• Prisiminkime, kad tiesioginės eigos (t.y. A išskaidimo) skaičiavimų
apimtis yra O(2/3n3), trikampės sistemos sprendimo - O(n2).
• Taigi m sistemų sprendimo LU skaidos metodu skaičiavimų apimtis
yra O(2/3n3 + 2mn2). Palyginkite su Gauso metodu, kai m = n.
LU skaidos metodas
.,...,2,1 ,
.,...,2,1 ,
nkkjalaa
nkkia
al
kjikijij
kk
ikik
.,...,3,2 ,
,
,...,3,2 ,
,1
1
111
1
11
fynifyly
fy
niylfy
fy
i
i
j
jiji
i
j
jijii
L
.,...,2,1 ,1,...,2,1 , nkkinklik
yxfx
UA
• Pavyzdys. LU skaidos metodu išspręskite tiesinių lygčių sistemą:
• Pavyzdys (77 pusl.). Pikaro iteraciniu metodu taikant
LU skaidos metodą išspręskite netiesinių lygčių sistemą 0,001
tikslumu:
Pastaba. Norint patikrinti tarpinių iteracijų rezultatus pagal 4 lentelę,
paimkite pradinį artinį
Ats.: (1, 2, -2) po 5 iteracijų.
LU skaidos metodo taikymo pavyzdžiai
75,144
322
75,02
321
321
321
xxx
xxx
xxx
2)2(44
4)2(22
1)1(2
2
3321
2
2321
2
1321
xxxx
xxxx
xxxx
)(1 kk xfx
A
.5,1
15,0
0
x
• Jei lygčių sistemos matrica A yra simetrinė ir teigiamai apibrėžta, tai
vartojamas dvigubai spartesnis skaidos metodas vadinamas Cholec-
kio metodu. Šiuo metodu reikia saugoti dvigubai mažiau duomenų.
• Apibrėžimas. Kvadratinė matrica A vadinama simetrine, jei
aij=aji su visais i ir j (1 ≤ i, j ≤ n).
• Apibrėžimas. Kvadratinė matrica A yra teigiamai apibrėžta, jei su
bet kokiu nenuliniu vektoriumi skaliarinė sandauga yra
teigiama, t.y.
• Jei visi matricos A pagrindiniai minorai yra teigiami, tai matrica yra
teigiamai apibrėžta.
Choleckio metodas:
1. Matrica A išskaidoma į apatinės trikampės matricos L ir jos tran-
sponuotosios matricos LT sandauga: A = LLT.
2. Pradinės lygčių sistemos sprendinys randamas nuosekliai vieną po
kitos išsprendus dvi sistemas su trikampėmis matricomis:
Choleckio (kvadratinės šaknies) metodas
.
,
yx
fyf
y
xfxT
T
L
LLLA
0
x ),( xx
A
.0),( xx
A
• Iš šios matricų lygybės apskaičiuojame matricos L elementus.
Pirmiausia matricą L padauginkime iš matricos LT pirmojo stulpelio:
• Dabar padauginkime matricą L iš antrojo matricos LT stulpelio:
• Šitaip radę visus L stulpelius iki j-1 imtinai, padauginkime L iš j-ojo
LT stulpelio:
Choleckio metodas: matricos L apskaičiavimas
.
...00............
...0
...
...............
0...
0...0
...............
...
...
222
12111
21
2221
11
21
22221
11211
nn
n
n
nnnnnnnn
n
n
T
l
ll
lll
lll
ll
l
aaa
aaa
aaa
LLA
.,...,3,2,
,
11
111111
111111
2
11
nkl
alall
alal
kkkk
.,...,4,3,
,
22
211222222211
2
21222222
2
22
2
21
nkl
llalallll
lalall
kkkkkk
.,...,2,1,
,
1
11
1
1
1
221
1
2
njjkl
lla
lallll
lalall
jj
j
i
jikikj
kjkjjjkj
j
i
jiki
j
i
jijjjjjjjj
j
i
ji
• Matrica A turi būti teigiamai apibrėžta tam, kad visi
pošakniai būtų teigiami.
• Įvertinkime aritmetinių veiksmų skaičių, atliekamų
skaidant matrica Choleckio metodu.
• Taigi Choleckio metodo skaičiavimų apimtis yra
O((1/3)n3), t.y. dvigubai mažiau negu Gauso metodu (ir
LU skaidos metodu).
• Pavyzdys (84 pusl.). Choleckio metodu išspręskite lygčių
sistemą (patikrinkite, ar galima jį taikyti):
Ats. : (-0,219; 0,492; 0,734).
Choleckio metodas
4523
3242
13210
321
321
321
xxx
xxx
xxx
• Daugelio uždavinių matematinį modelį sudaro diferencialinė
lygtis (arba dif. lygčių sistema) su papildomomis sąlygomis.
• Panagrinėsime vienmačio šilumos laidumo uždavinio sprendimą
skaitinių metodų pagalba (pusl. 57).
• Strypo, kurio ilgis yra 1, o galuose palaikoma pastovi tempera-
tūra – A ir B laipsnių, temperatūra taške x, t.y. funkcija y(x),
yra diferencialinės lygties
su kraštinėmis sąlygomis sprendinys.
• Funkcija p(x) aprašo strypo šilumos laido savybes, o q(x) ir f(x)
šilumos mainų per paviršių su išore intensyvumą.
• Kai p(x) > 0, o q(x) ≥ 0, šis uždavinys visada turi sprendinį
(vienintelį). Tačiau ne visada galime ji rasti analiziniai metodais.
• Tada taikomi specialieji skaitiniai metodai.
Šilumos laidumo uždavinio sprendimas
,xxfyxqyxp 10 ),()())((
ByAy )1( ,)0(
• Sprendžiant uždavinį baigtinių skirtumų metodu, sudaromas
uždavinio apibrėžimo srities diskretusis tinklas iš atskirų (šiuo
atveju strypo) taškų.
• Pavyzdžiui, sudarykime tolygųjį diskretųjį tinklą su žingsniu h:
• Baigtinių skirtumų metodu apskaičiuojamos ieškomos funkcijos
y(x) apytikslės reikšmes yi diskretaus tinklo taškuose xi, t.y.
randamos yi ≈ y(xi), i = 0,..,n.
• Skaitinis algoritmas sudaromas taip, kad imant vis daugiau taškų
(t.y. mažesnį žingsnį h) gaunamos vis tikslesnės reikšmės yi.
• Šios reikšmės randamos iš tiesinių lygčių sistemos, kuri
sudaroma taip:
kiekviename vidiniame diskretaus tinklo taške xi sudaroma
tiesinė lygtis nežinomiesiems yi, aproksimuojant (apytiksliai
pakeičiant) diferencialinės lygties išvestines tiesinėmis
algebrinėmis formulėmis - baigtiniais skirtumais.
• Kraštiniuose tinko taškuose aproksimuojamos kraštinės sąlygos.
Baigtinių skirtumų metodas
.120 210 nhxihxhxhxx ni
• Prisiminkime išvestinės apibrėžimą:
• Tada išvestinės reikšmę galime aproksimuoti (apytiksliai
pakeisti) baigtinio skirtumo pagalba:
• Šis išvestinės artinys vadinamas dešininiu skirtumu. Teiloro
eilutės pagalba galima įrodyti, kad jo paklaida
• Kairinis skirtumas ir jo paklaida:
• Centrinis skirtumas ir jo paklaida:
• Įrodykite paklaidų įverčius.
Baigtiniai skirtumai .
)()(lim)(
0 x
xyxxyxy
x
.)()()()(
)( ,
.1
xix
žymiiii
i yyh
xyxy
h
xyhxyxy
).(|)(| hOMhyxy xi
).(|)(| ,)()(
)( ,
.1 hOMhyxyyy
h
xyxyxy xixix
žymii
i
).(|)(| ,2
)()()( 22
.11 hOMhyxyy
h
xyxyxy
xi
x
žymii
i oo
• Antros eilės išvestinės aproksimaciją (artinį) gauname taip:
• Jos paklaida:
• Grįžtame prie šilumos laidumo uždavinio sprendimo.
Paprastumui iš pradžių paimkime p(x) = 1, q(x) = 1.
• Diferencialinį uždavinį tinklo taškuose aproksimuojame tiesinių
lygčių sistema (dar vadinama baigtinių skirtumų schema)
nežinomųjų yi , i = 0,.., n atžvilgiu :
• Pastebėkime, kad sistemos matrica yra triįstrižainė ir ją galima
greitai išspręsti perkelties metodu!
Baigtinių skirtumų schema
.)()(2)(
)()()()(1)()(
,
.
2
11
11,1,
,
xxixx
žymiii
iiiiixix
xixi
yyh
xyxyxy
h
xyxy
h
xyxy
hh
yyyxy
).(|)(| 22 hOMhyxy xxi
,1,,1 ,
.
2
,
2
11
0
nify
Byh
yyy
Ay
ii
n
iii
• Šilumos laidumo lygties narį (p(x)y')' tinklo taške xi aproksi-
muojame taip:
čia
• Tada diferencialinį uždavinį tinklo taškuose aproksimuojame
tokia baigtinių skirtumų schema nežinomųjų yi , i = 0,.., n
atžvilgiu :
• Sistemos matrica yra triįstrižainė!
• Pastebėkime, kad vidiniuose tinklo taškuose išvestinę aproksi-
muojame (pakeičiame) apytiksliu artiniu. Kokios galima tikėtis
gaunamo skaitinio sprendinio paklaidos: |y(xi) - yi |, i = 0,..,n?
Baigtinių skirtumų schema
,)(
))(())()((2
15,05,05,015,0
,5,0h
ypyppypyxpxyxp
iiiiiii
xixiii
).5,0(5,0 hxpp ii
,1,,1 ,
.
)(
,
2
15,05,05,015,0
0
nifyq
Byh
ypyppyp
Ay
iii
n
iiiiiii
• Imkime p(x)=1+ x, q(x)=1, f(x)= – (1+ x) e x ir A=1, B=e:
• Pagal sudarytą baigtinių skirtumų schemą su žingsnių h = 0,25
gauname triįstrižainę lygčių sistemą, kuria galime išspręsti
perkelties metodu ir palyginti su šiuo atveju žinomų tiksliuoju
sprendiniu y(x)= e x (73 pusl., 6 pvz.):
Šilumos laidumo uždavinio sprendimo pavyzdys
.e)1( ,1)0( 10 ,e)1())1(( yy,xxyyx x
xi (h=0,25) 0,25 0,5 0,75
yi 1,2858 1,6511 2,1188
y(xi)= e xi
1,2840 1,6487 2,1170
| y(xi) - yi| 0,0018 0,0024 0,0018
xi (h=0,125) 0,125 0,25 0,375 0,5 0,625 0,75 0,875
yi 1,1334 1,2845 1,4556 1,6493 1,8688 2,1175 2,3991
y(xi)= e xi
1,1331 1,2840 1,4550 1,6487 1,8682 2,1170 2,3989
| y(xi) - yi| 0,0003 0,0005 0,0006 0,0006 0,0006 0,0005 0,0002
Kiek kartų sumažėjo paklaida? Koks ryšis su sumažėjusiu žingsniu?
Iteraciniai tiesinių lygčių sistemų
sprendimo metodai
Tiesinių lygčių sistemų (TLS) sprendimo metodai
• TLS sprendimo metodai, kuriais per baigtinį žingsnių skaičių
gaunamas tikslusis sprendinys, vadinami tiesioginiais.
• Gauso, determinantų (arba Kramerio), skaidos metodai yra
tiesioginiai, tačiau praktiškai tikslusis sprendinys yra gaunamas
tik tada, kai nedaroma apvalinimo paklaidų.
• Be to šiuose metoduose didinant n labai greitai auga atliekamų
aritmetinių veiksmų skaičius, pvz., Gauso metode O(2/3n3).
• Todėl tiesioginiai metodai (Gauso) praktiškai gali būti taikomi
tik sąlyginai nedidelėms (n iki 104) lygčių sistemoms spręsti.
• Toliau nagrinėsime metodus, vadinamus iteraciniais, kuriais
randamas apytikslis sprendinys bet kokių norimu tikslumu:
– Jakobio, Zeidelio, relaksacijos metodus;
– didžiausio nuolydžio, jungtinių gradientų metodus.
• Šiais metodais daugelis tiesinių lygčių sistemų išsprendžiamos
žymiai greičiau negu Gauso metodu (ypač, jei dauguma
sistemos matricos koeficientų yra nuliai).
Jakobio metodas
• Tiesinių lygčių sistemą
pertvarkoma, išreiškiant xi iš i-tosios lygties, t.y.
nnnnnn
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
...
...........................................
...
...
2211
22222121
11212111
)...(1
...........................................
)...(1
)...(1
11,11
21212
22
2
12121
11
1
nnnnn
nn
n
nn
nn
xaxaba
x
xaxaba
x
xaxaba
x
Jakobio metodas
• Tarkime, kad
yra duotosios lygčių sistemos sprendinio pradinis artinys.
• Jeigu apie jį nieko nežinoma, dažnai imama, kad
• Jakobio iteracinis procesas nusakomas formulėmis
• Skaičiavimas baigiamas, kai atstumas tarp artinių ir bus
mažesnis už norimą tikslumą ε, pvz. maksimumo normoje:
0
0
2
0
1
0
...
nx
x
x
x
. ,...,, max 11
22
1
11
1
k
n
k
n
kkkkkk xxxxxxxx
.00
x
nnknnn
knn
kn
knn
kk
knn
kk
axaxabx
axaxabx
axaxabx
/)...(
...........................................
/)...(
/)...(
111,
111
221
21
12122
111
11
21211
kx 1kx
Jakobio metodas
Pavyzdys (vadovėlio 88-89 pusl.). Jakobio metodu išspręskime
tiesinių lygčių sistemą 0,0001 tikslumu
Pertvarkome lygčių sistemą , išreiškiant xi iš i-tosios lygties:
Pasirenkame pradinį artinį – vektorių ir apskaičiuojame
pirmąjį artinį ir jo paklaidą.
Kadangi šioje iteracijoje reikalaujamas tikslumas nepasiektas,
tęsiame skaičiavimus toliau, kol jį pasieksime.
Pastaba. Tikslusis šios lygčių sistemos sprendinys yra
14102
453202
11310
321
321
321
xxx
xxx
xxx
4,11,02,0
25,215,01,0
1,13,01,0
213
312
321
xxx
xxx
xxx
00
x1x
.121
tsx
Jakobio metodo konvergavimas
• Klausimas: kada Jakobio metodas konverguoja? Ar visada?
• Atlikite keletą iteracijų sprendžiant vadovėlio 91 pusl. 2 pavyzdį:
• Paklaida nemažėja – Jakobio metodas diverguoja.
6,01,02,06,01,0
9832
2,12,03,01,09,0
272
4321
4321
4321
4321
xxxx
xxxx
xxxx
xxxx
Jakobio metodo konvergavimas
• Teorema (Jakobio metodo konvergavimo sąlyga).
Jei tiesinių lygčių sistemos įstrižainės koeficientų moduliai yra
didesni už kitų atitinkamos eilutės koeficientų modulių sumą, t.y.
tai Jakobio metodas konverguoja, t.y.
• Ši sąlyga yra tik pakankama. Ji vadinama įstrižainės vyravimo są-
lyga, o sistemos, kuriai ši sąlyga galioja, įstrižainė – vyraujamąja.
• Įrodykime šią teoremą.
• Kai teoremos sąlyga netenkinama ir Jakobio metodas diverguoja,
galima bandyti taip sukeisti sistemos lygtis vietomis, kad ši sąlyga
galiotų.
• Išspręskite vadovėlio 91 pusl. 2 pavyzdį.
,,..,1 ,......1
1,1,21 niaaaaaaan
ij
jijiniiiiiiii
.ts
k
k xx
Zeidelio metodas
• Kaip ir Jakobio metodu tiesinių lygčių sistemą pertvarkoma,
išreiškiant xi iš i-tosios lygties. Šias lygtis galima užrašyti taip:
• Zeidelio iteracinio proceso naujoje k-oje iteracijoje jau
apskaičiuotos (patikslintos) xi reikšmės naudojamos toje pa-
čioje iteracijoje kitoms xj (j=i+1,...,n) reikšmėms tikslinti:
t.y. Zeidelio iteracinis procesas nusakomas formulėmis
.,...,1 ,/)(11
nixabaxabxn
ij
jjijiii
n
ij
jjijii
.,...,1 ,
1
11
1
nixaxabx
n
ij
kjij
i
j
kjiji
ki
nnknnn
kn
knn
kn
knn
kkk
knn
kkk
axaxaxabx
axaxaxabx
axaxaxabx
/)...(
...........................................
/)...(
/)...(
11,2211
221
21
32312122
111
11
3131
21211
Zeidelio metodas
Pavyzdys (vadovėlio 93-94 pusl.). Zeidelio metodu išspręskime
tiesinių lygčių sistemą 0,0001 tikslumu
Pertvarkome lygčių sistemą, išreiškiant xi iš i-tosios lygties:
Pasirenkame pradinį artinį – vektorių ir apskaičiuojame
pirmąjį artinį ir jo paklaidą.
Kadangi šioje iteracijoje reikalaujamas tikslumas nepasiektas,
tęsiame skaičiavimus toliau, kol jį pasieksime.
Pastebėkime, kad Zeidelio metodu gaunami sprendinio artiniai
yra arčiau tiksliojo sprendinio nei Jakobio metodo artiniai.
14102
453202
11310
321
321
321
xxx
xxx
xxx
4,11,02,0
25,215,01,0
1,13,01,0
213
312
321
xxx
xxx
xxx
00
x1x
tsx
kx
Zeidelio metodo konvergavimas
• Kaip ir kada konverguoja Zeidelio metodas?
• Kaip ir Jakobio metodas, Zeidelio metodas konverguoja, jei
sistemos įstrižainė yra vyraujamoji (pabandykite tai savaran-
kiškai įrodyti).
• Tačiau šių dviejų metodų konvergavimo sritys nesutampa –
yra tokių lygčių sistemų, kurioms Jakobio metodas konver-
guoja, o Zeidelio metodas diverguoja ir, atvirkščiai, yra tokių
sistemų, kurioms Zeidelio metodas konverguoja, o Jakobio
metodas diverguoja.
• Pavaizduokite schematiškai ryšį tarp dviejų metodų
konvergavimo sričių.
• Galima įrodyti, toms kad sistemoms, kurioms konverguoja abu
metodai, tas pats tikslumas Zeidelio metodu pasiekiamas
maždaug dvigubai greičiau.
Jakobio ir Zeidelio algoritmų sudėtingumas
• Kiek aritmetinių veiksmų atliekame apskaičiuojant vieną
Jakobio arba Zeidelio metodo iteraciją?
• Kai sistemos matrica yra pilna:
O(n2).
• O jeigu matricoje dauguma koeficientų yra nuliniai ir yra tik
keletas nenulinių įstrižainių, pavyzdžiui, kiekvienoje eilutėje
yra nedaugiau kaip k nenulinių koeficientų:
O(kn).
• Dideliems n norimas tikslumas paprastai pasiekiamas greičiau
negu po n iteracijų, pavyzdžiui, po m iteracijų (m << n).
• Kokį gauname viso algoritmo sudėtingumą?
O(mkn)
• Palyginkite su Gauso metodu.
Relaksacijos metodas
• Jakobio ir Zeidelio metodų pagrindu sudaromi ir kiti iteraciniai metodai. Panagrinėkime vieną tokį metodą, vadinamą relaksa-cijos metodu.
• Kaip ir Jakobio metodu tiesinių lygčių sistemą pertvarkoma, išreiškiant xi iš i-tosios lygties, t.y.
• (k+1)–ojo sistemos sprendinio artinio i-ąją komponentę apskaičiuojame per 2 žingsnius:
• Skaičius ω vadinamas relaksacijos parametru.
• Kai ω=1, relaksacijos metodas sutampa su Zeidelio metodu.
.,...,1 ,/)(1
niaxabx ii
n
ij
jjijii
,/)(~ )1
1
1
1
11ii
n
ij
kjij
i
j
kjiji
ki axaxabx
1kix
.,,2,1i ),~( )2 11 nxxxx ki
ki
ki
ki
Relaksacijos metodas
• Kada relaksacijos metodas konverguoja?
• Teorema. Jei tiesinių lygčių sistemos matrica A yra simetrinė ir
teigiamai apibrėžta, o relaksacijos parametras , tai
relaksacijos metodas konverguoja su bet kokiu pradiniu artiniu.
• Pastaba. Ši sąlyga yra pakankama, bet nebūtina, t.y. matrica A
nebūtinai turi būti simetrinė ir teigiamai apibrėžta.
• Galima įrodyti, kad jei konverguoja Jakobio metodas, tai
konverguoja ir relaksacijos metodas su bet kokiu
• Kaip relaksacijos metodo konvergavimo greitis priklauso nuo ω?
• Panagrinėkime 5 pavyzdį (97 pusl.). Relaksacijos metodu
išspręskime sistemą:
• Tikslumas ε =0,0001 pasiekiamas
)2 ;0(
05,0 95,0
1,095,0295,0
05,0 95,0
32
321
21
xx
xxx
xx
ω 1 1,5 1,6 1,7 1,8
Iteracijų skaičius 92 23 20 27 40
).2 ;0(
Relaksacijos metodas
• Kaip rasti optimalųjį relaksacijos parametrą ωo, su kuriuo relak-
sacijos metodas konverguoja greičiausiai?
• Išskleiskime matricą A = – L + D – R ,
čia L ir R yra kairioji ir dešinioji trikampė matricos A dalis (su
minuso ženklu), o D – įstrižaininė dalis.
• Ap. Matricos A spektriniu spinduliu ρ(A) vadinamas didžiau-
sias matricos A tikrinės reikšmės modulis:
• Teorema. Relaksacijos metodo parametro optimalioji reikšmė
yra lygi
čia
• Pastaba. Matricos spektro radimas savaime yra netrivialus
uždavinys, kurį vėliau spręsime specialiais skaitiniais metodais.
• Panagrinėkite 6 pavyzdį (98 pusl.). Raskite optimalųjį relaksaci-
jos parametrą ωo. Kiek reikia iteracijų?
,)(11
22
B
o
).(1RLDB
.|)(|max)(1
AA ini
• Egzistuoja įvairiausi iteraciniai metodai. Kaip jie klasifikuojami?
• Iteracinis metodas užrašomas matricinės lygties pavidalu
kur B yra iteracijos žingsnio matrica, o τ – iteracinis parametras,
kuris vadinamas iteracinio metodo kanoniniu pavidalu.
• Gaukime Jakobio metodo kanoninį pavidalą:
• Ap. Jei matrica B ir iteracinis parametras τ nepriklauso nuo itera-
cijos numerio k, tai iteracinis metodas vadinamas stacionariu.
• Jei B = Bk arba τ = τk, tai iteracinis metodas vadinamas nestacio-
nariu.
• Jei B = E, tai iteracinis metodas vadinamas išreikštiniu,
jei B ≠ E, tai neišreikštiniu.
• Gaukite Zeidelio metodo kanoninį pavidalą ir klasifikuokite jį.
Iteracinių metodų kanoninis pavidalas
.1
fxxx k
kk
AB
.1
1
fxxx k
kk
AD
Matricos norma
.||||||ir ||max||||1
1
1
1
n
i
i
n
i
ijj
xxa
A
Ap. Matricos A norma vadinamas skaičius, žymimas ||A||, turintis šias
savybes:
1. ||A|| > 0, jei A ≠O, ir ||O|| = 0;
2. ||cA|| = |c|·||A||, čia c – skaičius;
3. ||A+B|| ≤ ||A|| + ||B||;
4. ||AB|| ≤ ||A||·||B||.
Ap. Vektoriaus norma yra suderinta su matricos norma, jei
Matricos normų pavyzdžiai ir su jomis suderintos vektorinės normos:
(įrodykite)
(įrodykite) .||max||||ir ||max||||1
ii
n
j
iji
xxa
A
simetrinė matrica jei|,)(|max||||
||||||,|)(|max||||
1|2
1
2
2
*
12
AAA
AAA
ini
n
i
iini
xx
.|||||||||||| xx
AA
Stacionarių iteracinių metodų pakankama konvergavimo sąlyga
Teorema. Jei stacionarus iteracinis metodas tenkina sąlygą
||E - τ B-1A|| ≤ q < 1,
tai jis konverguoja su bet kokiu pradiniu artiniu.
• Įrodykime.
• Kaip taikoma šita sąlyga? Su įvairiausiomis matricinėmis
normomis iš jos gaunami atskiri pakankamos sąlygos variantai.
• Pavyzdžiui, su antra matricos norma gauname tokia teoremą.
Teorema. Tegu matrica B-1A yra simetrinė. Jei visų matricos
C = E - τ B-1A tikrinių reikšmių moduliai yra mažesni už vienetą,
tai iteracinis metodas konverguoja su bet kokiu pradiniu artiniu.
• Nesunku pastebėti, kad matricos C tikrinės reikšmės išreiškiamos
per matricos B-1A tikrines reikšmes:
1, |)(|max||||1
2
CC ini
.)(1)( 1ABC
ii
Stacionarių iteracinių metodų konvergavimas
Pažymėkime mažiausiąją matricos B-1A tikrinę reikšmę λm, o
didžiausiąją – λM, t.y. Tarkime, kad λm > 0.
Tada iteracinis procesas konverguoja, jei
Su kokiu τ iteracinis procesas konverguoja greičiausiai?
Teorema. Stacionaraus iteracinio metodo optimalioji iteracinio
parametro reikšmė τo, su kuria konvergavimo greitis yra didžiausias,
yra lygi
Kai λm ir λM nėra žinomos, jų apskaičiavimas yra sunkus (didelės skai-
čiavimų apimties) uždavinys, kurį spręsime specialiais metodais.
Iteracinio proceso konvergavimo greitį nusakanti matricos C norma:
Išspręskime 9 pavyzdį 107 vadovėlio puslapyje.
.2
0Mm
.)( 1
Mim AB
.2
0M
.)|1||,1|max( |1|max|||| 0001
2mM
mMMmi
ni
C
Išreikštinis stacionarusis iteracinis metodas 9 Pavyzdys (vadovėlio 107 pusl.). Išspręskime tiesinių lygčių sistemą
0,001 tikslumu išreikštiniu stacionariuoju metodu su optimaliuoju
iteraciniu parametru:
Kaip gauname šio metodo išraišką?
Kanoniniame pavidale paėmę B = E, gauname
Toliau turime rasti didžiausią ir mažiausią tikrines reikšmes
(patikrinkite, ar matrica A yra simetrinė ir teigiamai apibrėžta)
Gauname:
Pasirenkame pradinį artinį – vektorių
ir apskaičiuojame pirmąjį artinį ir jo paklaidą:
Kadangi šioje iteracijoje reikalaujamas tikslumas nepasiektas,
tęsiame skaičiavimus toliau, kol jį pasieksime. Tikslusis šios lygčių
sistemos sprendinys yra
95,3295,0
42
95,395,02
321
321
321
xxx
xxx
xxx
).(1 fxτxx k
o
kk
A
.)()( 1
Miim AAB
.40404,0 3,96685ir 98135,0 oMm T0 )5,0 ;0,5 ;5,0(x
.ir 011 xxx
.)1 ;1 ;1( Ttsx
Stacionarių iteracinių metodų konvergavimas
Iteracinių metodų konvergavimo greičio tyrimuose dažnai naudojama
dar viena matricų charakteristika.
Ap. Simetrinės, teigiamai apibrėžtos matricos sąlygotumo skaičiumi
η vadinamas matricos mažiausios ir didžiausios tikrinės reikšmės
santykis, t.y.
Kokias reikšmes gali įgyti η?
Tada matricos C = E – τ0 B-1A normą, kuri yra lygi jos spektriniam
spinduliui, kai C yra simetrinė, galima užrašyti taip
Kada iteracinis metodas konverguoja greičiau, o kada lėčiau?
Kam lygus 9 pavyzdžio matricos A sąlygotumo skaičius?
Kiek kartų mažėja paklaida kiekviename žingsnyje?
.M
m
.1
1)(|||| 2
mM
mMCC
Variaciniai metodai
• Tarp iteracinių tiesinių lygčių sistemų sprendimo metodų yra išskiriama variacinių metodų grupė.
• Variacinių metodų idėja: tiesinių lygčių sistemų sprendimo uždavinys pakeičiamas minimizavimo uždaviniu.
• Toliau nagrinėsime tik tiesinių lygčių sistemas kurių matrica A yra simetrinė ir teigiamai apibrėžta.
• Tokiu atveju sistemos sprendimas yra ekvivalentus kvadratinės formos
minimizavimo uždavinio sprendimui.
• Iš tiesų, kadangi matrica A yra teigiamai apibrėžta, tai
todėl formos minimumo vektorius sutampa su lygčių siste-mos sprendiniu.
xyxyyQ
),()( A
, jei,0)(
, jei,0)(
xyyQ
xyyQ
,fx
A
)(yQ
fx
A
Bendras variacinių metodų pavidalas • Sakykime, kad yra žinomas lygčių sistemos sprendinio
artinys Tikslesnį artinį ieškosime tokio pavidalo:
čia yra kažkoks žinomas vektorius, vadinamas krypties vektoriumi.
• Skirtingai apibrėžiant gaunami skirtingi variaciniai metodai.
• Iteracinis parametras τk yra kvadratinės vieno kintamojo funkcijos minimizavimo uždavinio sprendinys:
• Kadangi A yra teigiamai apibrėžta matrica, tai koeficientas prie τ2 yra teigiamas. Todėl funkcija qk(τ) mažiausią reikšmę įgyja taške
,1 k
k
kk pxx
);(min)(min)(
k
kkk
k
k qpxQpxQ
., ,2 ,)( 2 xxfxpfxppq kkkkkk
k
AAA
.,
,kk
kk
kpp
pfx
A
A
fx
A.kx
1kx
kp
,kp
Didžiausio nuolydžio metodas (angl. method of steepest descent arba gradient decent)
• Iš matematinės analizės žinoma, kad kelių kintamųjų funkcija tam
tikram taške didžiausiu greičiu (lokaliai) mažėja kryptimi, priešinga
gradiento krypčiai tame taške.
• Todėl didžiausio nuolydžio metode iš taško ieškant naujo artinio
tašką judama kryptimi
t. y. imamas krypties vektorius
ir pagal bendrą pavidalą
• Pastebėkime, kad užduoda tik judėjimo kryptį, o iteracijos metu
nueinamas atstumas nepriklauso nuo ilgio (pvz, padauginkit iš 2).
• Šį atstumą pilnai nusako iteracinis parametras τk, kuris gaunamas iš
bendro variacinių metodų pavidalo.
,)(2
1fxxQp kkk
A
),( kxQ
,1 k
k
kk pxx
.0,
,
kk
kk
kpp
pfx
A
A
kx
1kx
kp
kp
1. Didžiausio nuolydžio metodo algoritmas 1. Pradinio artinio parinkimas. Pasirenkamas k = 0.
2. Naujo artinio skaičiavimas. Apskaičiuojami krypties vektorius,
iteracinis parametras ir naujasis artinys
3. Tikslumo tikrinimas. Jei tai skaičiavimai baigiami,
kitaip k := k+1 ir grįžtame į 2 žingsnį.
• Pastebėkime, kad šiame algoritme daugiausiai veiksmų reikalau-
janti operacija - matricos ir vektoriaus sandauga. Kiek?
• Matricos ir vektoriaus sandauga skaičiuojama du kartus, t.y.
vienos iteracijos skaičiavimo kaštai maždaug padvigubėja
palyginus su prieš tai nagrinėtas metodais.
.1 k
k
kk pxx
,,
,kk
kk
kpp
pp
A
,fxp kk
A
,1 kk xx
,0x
2. Didžiausio nuolydžio metodo algoritmas
Ap. Vektorius vadinamas artinio netiktimi.
Pastebėkime, kad
Didžiausio nuolydžio metode todėl galime panaudoti šią for-mulę apskaičiavimui ir išvengti vienos sandaugos - apskaičia-vimo kiekvienoje iteracijoje!
Be to artinio paklaidos įvertinimui galima naudoti skaliarinę sandaugą
Pradinio artinio parinkimas. Pasirenkamas apskaičiuojami
Ciklas kol
ciklo pabaiga
, , 11 k
k
kkk
k
kk rpppxx
,,
, ,
kk
kk
k
kk
pr
pppr
A
. kai ,0 nes ,),(),(2
2
2xxzzzzpp
k
kkkkkkk
1: kk
Ką dar galima pagerinti šiame algoritme?
fxz kk
A kx
.)(11 k
k
kk
k
kkk pzfpxfxz
AAA
,kk zp
kp
kx
A
kx
,0x
.0 ),,(ir 0000 kppfxp
A2),( kk pp
Didžiausio nuolydžio metodo taikymo pavyzdys
Pavyzdys (vadovėlio 115 pusl.). Išspręskime tiesinių lygčių sistemą
0,00001 tikslumu
Ar galime taikyti didžiausio nuolydžio metodą?
Pasirenkame pradinį artinį – vektorių ir apskaičiuojame
pirmąjį artinį ir jo paklaidą:
Kadangi šioje iteracijoje reikalaujamas tikslumas nepasiektas,
tęsiame skaičiavimus toliau, kol jį pasieksime.
Pastaba. Tikslusis šios lygčių sistemos sprendinys yra
95,3295,0
42
95,395,02
321
321
321
xxx
xxx
xxx
00
x
Tx )995754,0 ;008359,1 ;995754,0(1
.111
tsx
Didžiausio nuolydžio metodo savybės • Pastebėkime, kad kiekvienas naujas krypties vektorius yra
statmenas prieš tai buvusiam (įrodykite).
• Kai n = 2, galime pavaizduoti didžiausio nuolydžio metodą grafiškai
lygio linijų pagalba. constcyyQyQ ),()( 21
1kp
0),( : 1 kkk ppp
Didžiausio nuolydžio metodo konvergavimas
• Gaukime šio metodo kanoninį pavidalą:
Teorema. Kai matrica A yra simetrinė ir teigiamai apibrėžta,
didžiausio nuolydžio metodas konverguoja su bet kokiu pradiniu
artiniu ir konvergavimo greitis įvertinamas nelygybe:
čia
o norma ||·||A apibrėžiama tokia lygybe:
• Iš šios teoremos išplaukia, kad didžiausio nuolydžio metodas
blogiausiu atveju konverguoja tokiu pačiu greičiu, kaip ir
stacionarus iteracinis metodas su optimaliuoju parametru τ0 ir
nereikia žinoti λM ir λm !
.1
fxxx k
k
kk
A
,||||...|||||||| 011
AAA xxxxxx kkk
,1
1)(
mM
mMA
.),(|||| yyy
AA
,)( Mim A
Jungtinių vektorių sistema
Ap. Du vektoriai yra jungtiniai matricos A atžvilgiu, jei
Ap. Sakysime, kad vektoriai sudaro matricos A atžvil-giu jungtinių vektorių sistemą, jei
Teorema. Jei matrica A yra simetrinė ir teigiamai apibrėžta, o vektoriai sudaro matricos A atžvilgiu jungtinių vekto-rių sistemą, tai ne daugiau kaip per n iteracijų su bet kokiu pradiniu vektoriumi iteraciniu (variaciniu) metodu
gaunamas tikslusis tiesinių lygčių sistemos sprendinys (jei nedaroma apvalinimo paklaidų).
• Nors šis metodas teoriškai yra tiesioginis, dažniausiai jis vartoja-mas kaip iteracinis, nes reikiamas tikslumas pasiekiamas daug greičiau, nei per n iteracijų (ypač kai n yra didelis).
. ,0),( kmpp km
A
.0),( qp
A
,),(
),(,1
kk
kk
k
k
k
kk
pp
pfxpxx
A
A
qp
ir
110 ,..., , nppp
110 ,..., , nppp
fx
A
0x
Jungtinių gradientų metodas
(angl. conjugate gradient method)
• Kaip surasti krypties vektorius kurie sudary-
tų matricos A jungtinių vektorių sistemą?
• Vieną tokią sistemą sudaro visi matricos A tikriniai vekto-
riai (patikrinkite), tačiau visų jų radimas yra labai sudėtin-
gas uždavinys, kurio sprendimas pareikalautų žymiai dau-
giau skaičiavimų (t.y. laiko) negu pačios lygčių sistemos
sprendimas, pavyzdžiui, didžiausio nuolydžio metodu.
• Tačiau buvo rastas metodas, kuris kiekvienoje iteracijoje
leidžia efektyviai (su viena matricos ir vektoriaus sandau-
ga) apskaičiuoti naujus sprendinio artinius ir jungtinius
krypties vektorius
• Šis metodas vadinamas jungtinių gradientų metodu.
Toliau pateiksime jo algoritmą.
, ,..., , 110 nppp
kx
.kp
Jungtinių gradientų metodo algoritmas 1. Pradinio artinio parinkimas. Pasirenkamas ir apskaičiuojamas
vektorius Iteracijų skaitiklis k = 0.
2. Naujo artinio skaičiavimas. Apskaičiuojami iteracinis paramet-
ras, naujasis artinys ir netiktis:
3. Tikslumo tikrinimas. Jei tai skaičiavimai baigiami, jei ne, tai einama į 4 žingsnį.
4. Naujojo jungtinio vektoriaus skaičiavimas.
Pastaba. Atkreipkime dėmesį, kad efektyviai algoritmo realizacijai
reikia saugoti tik 4 vektorius. Patartina saugoti ir skaliarinę sandaugą,
kuri vartojama net 4 kartus.
.kk žingsnį 2 į grižtamair 1:
0x
.000 fxzp
A
,),(
),(
),(
),( ,
kk
kk
kk
kk
k
kk
pr
zz
pr
pfxpr
A
A
. , 11 kk
kkkk
kk rzzpxx
,), ( 211 kk zz
, ,),(
),( 1111
kk
kk
kk
kk
k pzpzz
zz
Jungtinių gradientų metodo taikymo pavyzdys
Pavyzdys (vadovėlio 115 pusl.). Išspręskime tiesinių lygčių sistemą
0,00001 tikslumu
Ar galime taikyti jungtinių gradientų metodą?
Pasirenkame pradinį artinį – vektorių ir apskaičiuojame
pirmąjį artinį ir jo paklaidą.
Kadangi šioje iteracijoje reikalaujamas tikslumas nepasiektas,
tęsiame skaičiavimus toliau, kol jį pasieksime.
Palyginkite gaunamus artinius su didžiausio nuolydžio metodu
gaunamais artiniais.
Pastaba. Tikslusis šios lygčių sistemos sprendinys yra
95,3295,0
42
95,395,02
321
321
321
xxx
xxx
xxx
00
x1x
.111
tsx
Jungtinių gradientų metodo savybės
• Jungtinių gradientų metodo konvergavimo greitis yra žymiai
didesnis negu didžiausio nuolydžio metodo.
• Kai n = 2, sistemos sprendinį gauname
po 2 iteracijų (jeigu skaičiuoti be
apvalinimo paklaidų):
• Pastebėkime, kad pirmieji artiniai
jungtinių gradiento metodo (raudonai)
ir didžiausio nuolydžio metodo (žaliai)
sutampa!
Jungtinių gradientų metodo konvergavimo greitis • Šio metodo konvergavimo greitis yra žymiai didesnis negu
didžiausio nuolydžio metodo:
čia
• Iteracijų skaičius, per kurį pradinė paklaida sumažėja 1/ε kartų, yra
o didžiausio nuolydžio metodo
,||||2|||| 0
AA xxqxx kk
.mažas kai ,211
1 m
M
q
,mažas kai ,2
)/2ln(
)21ln(
)/2ln(
)/1ln(
)/2ln(0
qk
.mažas kai ,2
)/1ln(
)21ln(
)/1ln(
)/1ln(
)/1ln(0
qk
Uždaviniai savarankiškam darbui
1. Jakobio ir Zeidelio metodais išspręskite tiesinių lygčių sistemą vienos šimtosios tikslumu. Palyginkite iteracijų skaičių.
Ats.: tikslusis sprendinys -
2. Didžiausio nuolydžio ir jungtinių gradientų metodais išspręskite tiesinių lygčių sistemą 0,00001 tikslumu. Palyginkite iteracijų skaičių.
Ats.:
3. Uždaviniai iš vadovėlio 4-o skyriaus.
252
926
44
321
321
321
xxx
xxx
xxx
.111
tsx
5,1252
2,217
8,924
321
321
321
xxx
xxx
xxx.
74112,412897,303831,4
Interpoliavimas ir aproksimavimas
• Sakydami, kad dydis y yra dydžio x funkcija f(x) (žym. y = f(x)),
turime omenyje, kad yra apibrėžta (žinoma) atitiktis, pagal kurią
kiekvieną dydžio x reikšmę iš apibrėžimo srities atitinka kažkokia
dydžio y reikšmė.
• Daugelyje praktinių uždavinių ši atitiktis žinoma tik su atskiromis
x reikšmėmis, t.y žinoma tik reikšmių lentelė
• Tarkime, kad šios funkcijos f(x) reikšmės gaunamos brangiai
kainuojančiu arba neįmanomu pakartoti eksperimentu.
• Kaip apskaičiuoti funkcijos y = f(x) reikšmę, kuriame nors tarpi-
niame taške? Šis uždavinys vadinamas funkcijos interpoliavimu.
• Jį spręsime specialiais skaitiniais metodais.
Funkcijų interpoliavimas
n
n
yyyxf
xxxx
...)(
...
10
10
Ap. Funkcijos φ(x), tenkinančios lygybes φ(xi) = f(xi), i = 0,1,..., n,
sudarymo ir tarpinių reikšmių apskaičiavimo uždavinys yra vadina-
mas interpoliavimo uždavinių.
Šios lygybės vadinamos interpoliavimo sąlyga, taškai x0, x1,.., xn
vadinami interpoliavimo mazgais, o funkcija φ(x) – interpoliacine
funkcija.
• Reikiamos tarpinės reikšmės apskaičiuojamos iš sudarytos inter-
poliacinės funkcijos φ(x).
• Nagrinėsime būdus kaip sudaryti interpoliacinę funkciją, kai iš
anksto pasirenkama, kad ji turi būti pirmojo laipsnio (tiesinis) arba
antrojo laipsnio (kvadratinis) daugianaris.
• Jei žinoma n+1 funkcijos f(x) reikšmė, tai galima sudaryti n-ojo
laipsnio interpoliacinį daugianarį:
•Kodėl?
Funkcijų interpoliavimo uždavinys
.)( 01
11
1 axaxaxaxL nn
nnn
• Sudarykime pirmojo laipsnio (tiesinį) interpoliacinį daugianarį L1(x).
• Sakykime, kad reikia apskaičiuoti funkcijos f(x) reikšmę taške x.
• Randame mazgus xi, xi+1, tarp kurių yra duotas taškas x.
• Sudarome, tiesės einančios per taškus (xi, f(xi)), (xi+1, f(xi+1)) lygtį:
• Šią tiesės lygtį ir vadinsime tiesinio interpoliavimo formule, o
pirmojo laipsnio daugianarį – tiesinių interpoliaciniu daugianariu:
• Jis yra apibrėžtas intervale [xi, xi+1] ir tinka skaičiuoti tarpines
reikšmes šiame intervale.
• Skaičiuojant funkcijos f(x) reikšmes iš kito intervalo, reikia sudaryti
atitinkamą kitą tiesinį daugianarį.
Tiesinis interpoliavimas
).()()(
)()(1
11 i
ii
iii xx
xx
xfxfxfxL
,)()(
)(
11 ii
i
ii
i
xfxf
xfy
xx
xx
).()()(
)(1
1i
ii
iii xx
xx
xfxfxfy
• Pavyzdys (160 p.). Žinoma, kad vandens virimo temperatūra prik-
lauso nuo atmosferos slėgio. Tarkime, kad eksperimentų pagalba
buvo nustatyta tokią priklausomybės lentelė:
Raskite vandens virimo temperatūrą esant 747 mm slėgiui.
• Pasirinkime intervalą ir sudarykime jame pirmojo laipsnio (tiesinį)
interpoliacinį daugianarį L1(x):
• Taigi vandens virimo temperatūra, esant 747 mm slėgiui, apytiksliai
lygi
Tiesinio interpoliavimo pavyzdys
).740(0375,0255,99
)740(740750
255,99630,99255,99)(
)()()()(
1
11
x
xxxxx
xfxfxfxL i
ii
iii
Slėgis (mm) 730 740 750 760 770
Temperatūra (°C) 98,877 99,255 99,630 100,000 100,366
.5175,99)740(0375,0255,99)747(1 xL
• Pakeitę funkcijos f(x) reikšmę interpoliacinio daugianario reikšme
L1(x), padarome paklaidą. Ką galima pasakyti apie jos dydį?
1 Teorema. Jei funkcijos f(x) antroji išvestinė intervale [xi, xi+1] yra
aprėžta, t.y.
tai tiesinio interpoliavimo paklaida įvertinama nelygybe
čia h = xi+1 - xi (interpoliavimo žingsnis).
• Taigi, tam kad sumažinti tiesinio interpoliavimo paklaidą reikia
mažinti interpoliavimo žingsnį.
• Dažniausiai funkcijos f(x) antrosios išvestinės didžiausioji reikšmė
arba jos įvertis nėra žinomi, nes ir pati funkcija f(x) nėra žinoma.
• Tada galima naudoti apytikslį antrosios išvestinė rėžį. Sudarysime jį.
Tiesinio interpoliavimo paklaida
, kai ,|)(| 12 ii xxxMxf
, kai ,))((|)()(| 12
281
1221
1 iiii xxxhMxxxxMxLxf
• Funkcijos f(x) pirmosios eilės skirtumų santykiu vadinamas dydis
• Jei žinoma n+1 funkcijos reikšmė, tai galima sudaryti n pirmosios
eilės skirtumų santykių. Iš jų sudaromi antrosios eilės skirtumų
santykiai:
• Bendruoju atveju, n-osios eilės skirtumų santykiu vadinamas (n-1)-
osios eilės skirtumų santykių pokyčio ir atitinkamo argumento
pokyčio santykis:
• Skirtumų santykius patogu apskaičiuoti tokia lentele:
Skirtumų santykiai
.)()(
),(1
11
ii
iiii
xx
xfxfxxf
.),(),(
),,(2
12121
ii
iiiiiii
xx
xxfxxfxxxf
.),...,(),...,(
),...,,( 111
ini
niiniiniii
xx
xxfxxfxxxf
),,,(3
),,(),,(2
),(),(),(1
)()()()()(
3210
321210
322110
3210
3210
xxxxf
xxxfxxxf
xxfxxfxxf
xfxfxfxfxf
xxxxx
• Galimą parodyti, kad funkcijos f(x) antroji išvestinė intervale
[xi, xi+2] apytiksliai įvertinama tokia lygybe (prisiminkime
baigtinius skirtumus):
• Šios reikšmės gali būti naudojamos 1-os teoremos antrosios
išvestinės apytikslio rėžio M2 radimui, t.y.
• Tokiu būdu galime apskaičiuoti vandens virimo temperatūros tiesi-
nio interpoliavimo paklaidos įvertį (164 pusl., 6 pvz):
t.y. vandens virimo temperatūra yra 99,5175 ± 0,0006.
Antrosios išvestinės apytikslis rėžis
).,,(2)( 21 iii xxxfxf
| ).),,(|| ,),,(max(|2 21112 iiiiii xxxfxxxfM
.00005,0|)000025,0|| ,000015,0max(|22 M
• Sudarykime antrojo laipsnio (kvadratinį) interpoliacinį
daugianarį L2(x).
• Sakykime, kad reikia apskaičiuoti funkcijos f(x) reikšmę taške x.
• Randame 3 artimiausius taškui x interpoliavimo mazgus xi, xi+1, xi+2.
• Sudarome parabolės einančios per 3 taškus (xi, f(xi)),
(xi+1, f(xi+1)), (xi+2, f(xi+2)) lygtį (pavaizduokite):
• Šią parabolės lygtį vadinsime kvadratinio interpoliavimo formule, o
antrojo laipsnio daugianarį – kvadratiniu interpoliaciniu
daugianariu.
• Patikrinkite, kad šis daugianaris tenkina interpoliacines sąlygas.
• Jis yra apibrėžtas intervale [xi, xi+2] ir tinka skaičiuoti tarpines
reikšmes šiame intervale.
• Skaičiuojant funkcijos f(x) reikšmes iš kito intervalo, reikia sudaryti
atitinkamą kitą daugianarį.
Kvadratinis interpoliavimas
).)()(,,())(,()()( 12112 iiiiiiiii xxxxxxxfxxxxfxfxL
• Pavyzdys (166 pusl., 8 pvz.). Apskaičiuokime vandens virimo
temperatūrą, esant 747 mm slėgiui, pagal kvadratinio interpoliavimo
formulę.
• Trys artimiausi taškui x = 747 interpoliavimo mazgai yra
• Šiame intervale sudarome kvadratinį interpoliacinį daugianarį L2(x):
• Taigi vandens virimo temperatūra, esant 747 mm slėgiui, apytiksliai
lygi
• Palyginkime su tiesiniu interpoliavimu gauta reikšme ir paklaida.
Kvadratinio interpoliavimo pavyzdys
. )750)(740(000025,0)740(0375,0255,99
))()(,,())(,()()( 12112
xxx
xxxxxxxfxxxxfxfxL iiiiiiiii
Slėgis (mm) 740 750 760
Temperatūra (°C) 99,255 99,630 100,000
.5180,99
)750747)(740747(000025,0)740747(0375,0255,99)747(2
L
• Pakeitę funkcijos f(x) reikšmę interpoliacinio daugianario reikšme
L2(x), padarome paklaidą. Ką galima pasakyti apie jos dydį?
2 Teorema. Jei funkcijos f(x) trečiosios eilės išvestinė intervale
[xi, xi+2] yra aprėžta, t.y.
tai kvadratinio interpoliavimo paklaida įvertinama nelygybe
čia h = xi+1 - xi = xi+2 – xi+1 (interpoliavimo žingsnis).
• Taigi tam, kad sumažinti kvadratinio interpoliavimo paklaidą, reikia
mažinti interpoliavimo žingsnį.
• Kokį garantuotą paklaidos sumažėjimą užtikrina dvigubas interpo-
liavimo žingsnio h sumažinimas tiesiniu ir kvadratiniu atveju?
• Dažniausiai funkcijos f(x) trečiosios išvestinės didžiausioji reikšmė
arba jos įvertis M3 nėra žinomi, nes ir pati funkcija f(x) nėra žinoma.
• Tada galima naudoti apytikslį rėžį, sudarytą iš 3 eilės skirtumų san-
tykių maksimumo:
• Gaukite nagrinėto pavyzdžio paklaidos įvertį (Ats.: 0,0001).
Kvadratinio interpoliavimo paklaida
],,[ kai ,|)(| 23 ii xxxMxf
],,[ ,|))()((||)()(| 23
327
32136
12 iiiii xxxhMxxxxxxMxLxf
| ).),,,((|max!3 3213 iiiii
xxxxfM
• Jei žinoma n+1 funkcijos f(x) reikšmė, tai galima sudaryti n-ojo
laipsnio interpoliacinį daugianarį.
• Pateiksime Niutono interpoliacinio daugianario formulę
• Matome, kad L1(x) ir L2(x) yra atskiri šios formulės atvejai.
• Niutono interpoliacinė formulė yra patogi, kai reikia papildyti ją
naujais nariais ir padidinti interpoliacinio daugianario eilę, kas
dažniausiai reiškia padidintą tikslumą, pavyzdžiui, gavus naujus
matavimo duomenis (xi, f(xi)).
• Kodėl dažniausiai?
Niutono interpoliacinė formulė
).)...()()(,..,,(
...))()(,,())(,()()(
11010
102100100
nn
n
xxxxxxxxxf
xxxxxxxfxxxxfxfxL
3 Teorema. Jei funkcijos f(x) (n+1)-os eilės išvestinė intervale
[x0, xn] yra aprėžta, tai Niutono interpoliacinės formulės paklaida
įvertinama nelygybe
• Iš čia galima gauti teorinę sąlygą, garantuojančią kad interpolia-
cinio daugianario laipsnio padidinimas yra naudingas (tikrai su-
mažina paklaidą):
t.y. kai aukštesnės išvestinės rėžis Mn+1 nėra daug didesnis ir
taškas xn nėra per daug nutolęs nuo taško x.
• Pastaba. Rėžių apskaičiavimui galima naudoti įvertį:
• Antrąją išvadą galima padaryti apie interpoliavimo mazgų xi
išsidėstymą. Tam, kad sumažinti paklaidą, reikia siekti, kad šie
mazgai būtų kuo arčiau interpoliavimo taško x ir išsidėstę simet-
riškai jo atžvilgiu.
Niutono interpoliacinės formulės paklaida
.|)(|ir ],[ kai |,))...()((|)!1(
)()( 1
)1(
0101
n
n
nnn
n Mxfxxxxxxxxxn
MxLxf
,|)(|1
1nn
n Mxxn
M
| ).),,,((|max! 21 niiiii
n xxxxfnM
Uždaviniai savarankiškam darbui
1. Lentelėje pateikiama tam tikrų vaistų koncentracija kraujyje praėjus tam tikram laikui po injekcijos.
Ligoniui vaistus pakartotinai reikia leisti tada, kai jų koncentracija kraujyje sumažėja iki 0,0170 mg/cm3. Nustatykite po kiek laiko reikės suleisti naują vaistų dozę?
2. Sudarykite funkcijos y = sin x reikšmių lentelę taškuose π/12, π/6, π/4, π/3, 5π/12. Naudodami tiesinį ir kvadratinį interpoliavimą apskaičiuokite funkcijos reikšmes tarpiniuose taškuose π/8, π/5, 7π/24, 9π/24. Apskaičiuokite tikslias interpoliavimo paklaidas, jų rėžius (pagal atitinkamas teoremas ir žinomas išvestines) ir rėžių įverčius (panaudojant atitinkamos eilės skirtumų santykius).
3. Uždaviniai iš literatūros sąrašo mokymo priemonių (pvz., iš vadovėlio 6 skyriaus).
Laikas (val.) 1 2 3 4 5
Koncentracija (mg/cm3) 0,0178 0,0200 0,0192 0,0178 0,0163
• Tarkime, kad funkcija y=f(x) yra apibrėžta reikšmių lentele
• Jei reikia sudaryti interpoliacinę funkciją visame intervale [a, b],
tai galima padaryti sudarant tam tikro pasirinkto laipsnio interpolia-
cinius daugianarius atitinkamuose intervaluose.
• Naudojant tiesinius daugianarius L1(x), gaunama dalimis tiesinė
interpoliacinė funkcija - P1(x).
• Naudojant kvadratinius daugianarius L2(x), gaunama dalimis kvad-
ratinė interpoliacinė funkcija - P2(x).
• Panagrinėkime 12 pavyzdį (171 p.).
• Pastebėkime, kad dalimis daugianarės interpoliacinės funkcijos yra
tolydžios visame intervale [a, b], tačiau nėra diferencijuojamos
interpoliavimo mazguose, kuriuose pereinama nuo vienos daugia-
nario išraiškos prie kitos.
• Siekiant glodesnių interpoliacinių funkcijų, naudojamas splainų
interpoliavimas.
Dalimis daugianarės interpoliacinės funkcijos
n
nyyyxf
bxxxax
...)(
...
10
10
• Tarkime, kad intervale [a,b] yra apibrėžta funkcija y=f(x), ir tame
intervale yra žinoma n+1 reikšmė.
• Funkcija Sm(x),
kuri
1) kiekviename intervale [xi , xi+1] yra m-ojo laipsnio daugianaris
2) tenkina interpoliavimo sąlygą Sm(xi) = yi, i=0,1, … , n,
3) ir kurios visos išvestinės iki (m-1) – osios eilės imtinai yra tolyd-
žios intervale [a,b],
yra vadinama m-osios eilės splainu.
• Tam, kad sudaryti splainą reikia surasti atitinkamus koeficientus aij,
kad būtų patenkintos 2) ir 3) sąlygos.
Splainų interpoliavimas
n
n
yyyxf
bxxxax
...)(
...
10
10
,...)( 01
1
1,, ii
m
mi
m
imim axaxaxaxS
],;[),(......
],;[),(......
],;[),(
)(
11,
1,
100,
nnnm
iiim
m
m
xxxxS
xxxxS
xxxxS
xS
• Pirmos eilės splainas vadinamas tiesiniu splainu:
• Jo koeficientai ai ir bi nustatomi iš lygčių sistemų (jų yra n),
gaunamų iš 2) interpoliavimo sąlygos:
Kiekvieną sistemą galime spręsti atskirai ir apskaičiuoti: ai ir bi.
• 3) splaino sąlyga tiesinio splaino atveju yra tolygi splaino tolydu-
mui, nes m-1 = 0. Akivaizdu, kad ji yra patenkinta (trūkių nėra).
• Taigi gauname, kad tiesinis splainas sutampa su dalimis tiesine
interpoliacine funkcija: S1(x) = P1(x).
Tiesiniai splainai (m=1)
].;[,)(......
],;[,)(......
],;[,)(
)(
1111,1
11
100010
1
nnnnn
iiiii
xxxbxaxS
xxxbxaxS
xxxbxaxS
xS
.1,,1,0 ,
,
11
niybxa
ybxa
iiii
iiii
• Antros eilės splainas vadinamas kvadratiniu splainu:
• Jo sudarymui reikia surasti 3n nežinomų koeficientų: ai, bi, ci.
• Iš 2) interpoliavimo sąlygos gauname 2n lygčių:
• Iš 3) splaino sąlygos gauname, kad kvadratinio splaino 1-oji
išvestinė S2' (x) turi būti tolydi (neturėti trūkių) visame intervale
[a, b]. Taigi, gauname, kad vidiniuose interpoliavimo mazguose:
Kvadratiniai splainai (m=2)
].;[,)(
......
],;[,)(
......
],;[,)(
)(
111
2
11,2
1
2
2
1000
2
020
2
nnnnnn
iiiiii
xxxcxbxaxS
xxxcxbxaxS
xxxcxbxaxS
xS
.1,...,1,0 ,
,
11
2
1
2
niycxbxa
ycxbxa
iiiiii
iiiiii
.1,...,1 ,22)()( 11,21,2 nibxabxaxSxS iiiiiiiiii
• Iš viso turime 3n-1 lygtį, o nežinomųjų yra 3n.
• Trūkstama lygtis paprastai yra gaunama keliant papildomą są-
lygą kvadratinio splaino pirmajai išvestinei S2' (x) kuriam nors
intervalo [a, b] gale. Pavyzdžiui,
• Jei e0 = 0, tai ši papildoma sąlyga vadinama natūraliąja, o splai-
nas, gaunamas su šia sąlyga, vadinamas natūraliuoju splainu.
• Kvadratinio splaino koeficientai randami sprendžiant iš eilės 3-jų
lygčių sistemas:
• Sudarykime 12 pavyzdžio funkcijos kvadratinį splainą (13 pvz.,
173 puslp.).
Kvadratiniai splainai (m=2)
2
,
,
.0000
1010
2
10
0000
2
00
ebxa
ycxbxa
ycxbxa
.)()( 000,202 exSeaS
.1,...,2,1
,22
,
,
11
11
2
1
2
ni
bxaebxa
ycxbxa
ycxbxa
iiiiiii
iiiiii
iiiiii
• Dažniausiai naudojamų splainų rūšis yra trečios eiles splainai, kurie vadinami kubiniais splainais:
• Jo sudarymui reikia surasti 4n nežinomų koeficientų: ai, bi, ci, di.
• Iš 2) interpoliavimo sąlygos gauname 2n lygčių:
• Iš 3) splaino sąlygos gauname, kad kubinio splaino 1-oji išvesti-
nė S3' (x) ir 2-oji S3'' (x) turi būti tolydžios (neturėti trūkių) visa-
me intervale [a, b]. Taigi, gauname, kad vidiniuose interpolia-
vimo mazguose:
Kubiniai splainai (m=3)
].;[,)(......
],;[,)(......
],;[,)(
)(
111
2
1
3
11,3
1
23
3
1000
2
0
3
030
3
nnnnnnn
iiiiiii
xxxdxcxbxaxS
xxxdxcxbxaxS
xxxdxcxbxaxS
xS
.1,...,1,0 ,)(
,)(
113
3
niyxS
yxS
iii
iii
.1,...,1 ,)()(
,)()(
31,3
,31,3
nixSxS
xSxS
iii
iiii
• Iš viso turime 4n-2 lygtis, o nežinomųjų yra 4n.
• Trūkstamos lygtys paprastai yra gaunamos iš kraštinių sąlygų
kubinio splaino išvestinėms.
• Dažniausiai yra keliamos sąlygos 2-os eilės splaino išvestinėms:
• Jei e0 = en = 0, tai šios papildomos sąlygos vadinamos natūralio-
siomis, o splainas, tenkinantis šias sąlygas, - natūraliuoju.
• Sudarytą 4n tiesinių lygių sistemą galima spręsti tiesiogiai,
pavyzdžiui, Gauso metodu.
• Tačiau praktikoje naudojamas efektyvesnis kubinio splaino su-
darymo algoritmas, kuris reikalauja tik triįstrižainės lygčių
sistemos sprendimo (dydžio n), ką galima atlikti žymiai greičiau.
• Teorema. Jei funkcija y(x) yra keturis kartus tolydžiai diferenci-
juojama intervale [a, b], tai kubinio splaino ir jo išvestinių
paklaida įvertinama šia nelygybe:
Kubiniai splainai (m=3)
.)( ,)( 1,30030 nnn exSexS
.2,1,0 ,|)()(||,)()(|max|)()(| 33
22
4
)(
3
)( kbSbyaSayhhMxSxy kkk
• Kubinio splaino i-oji lygtis gaunama tokiu pavidalu:
kur reikalingi koeficientai apskaičiuojami pagal formules: čia
yra lentelės argumento žingsnis, o
yra nežinomieji, kurie gaunami iš triįstrižainės
lygčių sistemos:
kurią galime greitai išspręsti perkelties metodu.
Kubinio splaino radimo algoritmas
,1,,1,0 ,)()()()( 32
,3 nixxHxxGxxeyxS iiiiiiii
,6
,2
,36
11
1
i
iii
ii
ii
ii
i
iii
h
ggH
gG
hg
hg
h
yye
iii xxh 1
Nigi ,,,1,0 ,
,
1
111111
,00
,1,,1 ,6)(2
nn
i
ii
i
iiiiiiiii
eg
nih
yy
h
yyghghhgh
eg
• Tarkime, kad yra žinomos (pavyzdžiui, iš eksperimento) n funk-
cijos y = f(x) reikšmių:
• Kaip aprašyti šios duomenys viena funkcija, kuri nebūtinai eitų
per turimus taškus, bet turėtų paprastą analizinę išraišką, pvz.,
tiesine y = a+bx, kvadratine, logaritmine arba rodikline funkcija?
• Dažnai priklausomybės y nuo x pavidalas yra žinomas (pvz., iš
fizikos dėsnių), kartais jį tenka parinkti.
• Pavyzdys. Omo dėsnis: V=IR.
Dėl matavimo paklaidų taškai
nėra griežtai vienoje tiesėje.
• Kaip surasti laidininko varžą R?
• Interpoliavimo metodai, splainai
šiuo atveju netinka, nes reikia surasti vieną tiesę!
• Tokios vienos funkcijos paieškos ir sudarymo uždavinys vadina-
mas aproksimavimo uždaviniu. Sakoma, kad turimi duomenys
yra aproksimuojami atitinkama funkcija.
Duomenų aproksimavimas
n
nyyyxfy
xxxx
...)(
...
21
21
• Tarkime, kad yra žinoma (arba parinkta ir išbandoma) priklau-
somybės y nuo x analizinė išraiška, t.y funkcija y=f(x,a,b,c,...).
• Kaip surasti nežinomus parametrus a,b,c,.., kad gauta funkcija
geriausiai aprašytų eksperimentinius duomenis?
• Vienas populiariausių šio uždavinio sprendimo metodų yra
mažiausių kvadratų (regresijos) metodas:
parametrai turi būti tokie, kad parinktos funkcijos reikšmių
nuokrypių kvadratų suma būtų minimali:
Mažiausių kvadratų metodas (regresijos metodas)
).,ˆ,ˆ,ˆ(min)),,,,((),,,(,,,
1
2
cbaRcbaxfycbaRcba
n
i
ii
Kaip kitaip galima apibrėžti
minimizuojamą funkcionalą R?
• Iš matematinės analizės žinome, kad minimumo taške
funkcionalo R dalinės išvestinės visų kintamųjų a,b,c,... atžvilgiu
turi būti lygios nuliui.
• Taip gauname lygčių sistemą, kurią išsprendę gauname reikalin-
gus parametrus:
• Sudarykime lygčių sistemą mažiausių kvadratų tiesei y = a+bx.
Mažiausių kvadratų metodas
,0
,0
,0
c
Rb
Ra
R
),ˆ,ˆ,ˆ( cba
n
i
n
i
iii
n
i
i
n
i
n
i
ii
yxxbxa
yxbna
1 1
2
1
1 1
.
,Išsprendę šią tiesinių lygčių
sistemą, gausime ieškomus
koeficientus a ir b, t.y. tiesės
lygtį y = a+bx.
• Pavyzdys. Mažiausių kvadratų metodu raskite tiesę, aproksi-
muojančią duotus taškus (-2, -5), (-1, -1), (1, 1), (2, 4).
• Aproksimuojančią tiesę y = a+bx nusakančius koeficientus rasi-
me išsprendę dviejų tiesinių lygčių sistemą:
• Ją išsprendę, gauname mažiausių kvadratų tiesę y = -0,25 + 2x.
Mažiausių kvadratų tiesės radimo pavyzdys
4211)1()1()5()2()21)1()2(()2112(
4115)2112(4
2222ba
ba
• Tarkime, kad turime duomenis su
akivaizdžiai netiesinę priklausomybę:
• Kokia kreivė (funkcija) tiktų šių
duomenų aproksimavimui?
• Suraskime mažiausių kvadratų
metodu parabolę
• Diferencijuodami funkcionalą R, sudarykime tiesinių lygčių
sistemą mažiausių kvadratų parabolei:
Mažiausių kvadratų metodas
n
i
n
i
n
i
iiii
n
i
i
n
i
n
i
n
i
iiii
n
i
i
n
i
n
i
i
n
i
ii
yxxcxbxa
yxxcxbxa
yxcxbna
1 1 1
243
1
2
1 1 1
32
1
1 11
2
.
,
,
.2cxbxay
Išsprendę šią tiesinių lygčių
sistemą, gausime ieškomus
koeficientus a, b ir c, t.y.
parabolės lygtį .2cxbxay
• Kokia kreivė (funkcija) tiktų šių
duomenų aproksimavimui?
• Atlikę pakeitimą
koeficientus a ir b galime kaip
mažiausių kvadratų tiesės
• Analogiškai mažiausių kvadratų metodą galima taikyti ir kitoms
netiesinėms funkcijoms.
• Duomenų aproksimavimui logaritmine funkcija:
• Duomenų aproksimavimui rodikline funkcija:
• Duomenų aproksimavimui laipsnine funkcija:
Mažiausių kvadratų metodo taikymas netiesinėms funkcijoms
.0 kai , bx
bay
0
2
4
6
8
10
12
14
0 1 2 3 4 5 6 7 8 9 10 11 12
xxy
99.1048.12ˆ99.1048.12
,1
ˆx
x
.x̂bay
.lnˆkur ,ˆ ln xxxbayxbay
.lnˆ,lnˆkur ,ˆ ˆ lnln aayybxaybxayaey bx
.lnˆ ,lnˆ ,lnˆkur ,ˆˆˆ lnlnln xxaayyxbayxbayaxy b
Uždaviniai savarankiškam darbui
1. Mažiausių kvadratų metodu aproksimuokite duotus taškus tiesę ir parabolę: (-2, 4), (-1, -1), (1,-1), (2,3). Pavaizduokite duotus taškus ir gautas funkcijas. Kuri funkcinė priklausomybė tiksliau atspindi duomenis? Apskaičiuokite aproksimavimo paklaidą – nuokrypių kvadratų sumą R abiems atvejams.
2. Lentelėje yra pateikiami eksperimento rezultatai
Raskite šiuos duomenis aproksimuojančią funkciją. Pavaizduokite.
Pastaba. Kadangi priklausomybė yra aiškiai netiesinė, naudoti reikia rodiklinės arba laipsninės funkcijos pavidalą. Kuris tinka geriau?
xi 1 2 3 4 5 6
yi 2 2,8 3,5 4 4,5 4,9
Funkcijų optimizavimo metodai
• Įvairiausiose srityse dažnai iškyla poreikis surasti geriausią
(optimalų) uždavinio sprendinį.
• Optimalumas būdingas ne tik žmonių veiklai, bet ir gamtos
reiškiniams.
• Pavyzdžiui, iš vienos terpės į kitą šviesos spindulys sklinda tuo
keliu, kuriuo sklidimo laikas yra trumpiausias.
• Bitės lipdo tokį korį, kuriam reikia sunaudoti mažiausia vaško.
• Upės vaga išgraužia tokią kreivę, kuria patiria mažiausią
pasipriešinimą.
• Šie uždaviniai matematine kalba vadinami optimizavimo (lot.
optimus - geriausias) uždaviniais. Jų sprendimo metodai –
optimizavimo metodais.
• Suformuluosime ir išspręsime keletą funkcijų optimizavimo
uždavinių.
Funkcijų optimizavimo uždaviniai
Šviesos spindulio sklidimas
Dėl skirtingo šviesos greičio
skirtingose terpėse spindulys lūžta
Dar Antikos laikais buvo pastebėta, kad tarp kritimo
kampo φ1 ir lūžio kampo φ2 yra ryšis.
Vikipedia
• Gaukime t1 ir t2 išraiškias per atitinkamus šviesos greičius c1 ir c2 :
• Taigi, gauname optimizavimo uždavinį: reikia rasti tokį x0, kad
Hipotezė: Šviesa juda tokia trajektorija, kad visą kelią
nuo taško A iki taško B nueitų per trumpiausią laiką.
Šviesos spindulio sklidimo matematinis modelis
• Tegu, t1 ir t2 – laikai, per
kuriuos spindulys nueina kelius
AO ir OB, atitinkamai.
• Akivaizdu, kad jie priklauso
nuo taško O padėties, t.y. nuo x.
• Tada visas sklidimo laikas:
)()()( 21 xtxtxt
,)(1
22
1
1c
xa
c
AOxt
.
)()(
2
22
2
2c
xdb
c
OBxt
)()(min 00
xtxtdx
• Ap. x0 yra funkcijos f(x) lokalaus minimumo taškas, jeigu
čia yra taško x0 aplinka spinduliu δ.
• Kaip šis apibrėžimas apibendrinimas kelių kintamųjų funkcijoms
f(x1, x2,.., xn)?
• Toliau nagrinėsime du optimizavimo metodus (aukso pjūvio ir
Niutono). Jie leidžia rasti lokalius ekstremumus (minimumo,
maksimumo taškus) pagal atitinkamai parinktus pradinius
artinius.
• Tačiau nagrinėjamame intervale funkcija gali turėti keletą lokalių
ekstremumų:
Funkcijos lokalaus ir globalaus minimumo taškai
),,( ),()( 00 xDxxfxf
}|| :{),( 00 xxxxD
x0 x1
• Praktikoje mus dažniausiai domina globalus ekstremumas.
• Ap. x0 yra funkcijos f(x) globalaus minimumo intervale [a, b]
taškas, jeigu
• Kaip rasti funkcijos globalų minimumą intervale [a, b]?
Funkcijos lokalaus ir globalaus minimumo taškai
].,[ ),()( 0 baxxfxf
x0 x1
• Teorema. Intervale [a, b] tolydi funkcija f(x) įgyja globalų
minimumą (maksimumą) viename iš lokalaus minimumo
(maksimumo) taškų arba viename iš intervalo galų.
• Taigi, ieškant globalaus ekstremumo, reikia nepamiršti patikrinti
reikšmes intervalo galuose.
Paprasčiausias sprendimo būdas
• Imame tankų taškų tinklą xi = a + i*h, i=0,1,…,N.
• Apskaičiuojame funkcijos reikšmes fi = f(xi) ir išsirenkame
ekstremumo (minimumo, maksimumo) taškus.
• Toks perrinkimo algoritmas yra patikimas bet labai neefektyvus
skaičiavimo apimties prasme, nes reikalauja daug skaičiavimų.
• Akivaizdų, kad taškų tinklas turi būti adaptyvus: jį reikia tankinti, t.y.
parinkinėti naujus xi taškus ten, kur funkcijos reikšmės yra mažos.
•Kadangi iš anksto nežinome, kurį intervalo galą teks atmesti, vidinius taškus parinksime taip, kad
Aukso pjūvio metodas
.12 axxb
.2
121
ax
xx
ab
ax
•Tarkime, intervale [a,b] funkcija f(x) turi vienintelį minimumą.
•Apskaičiuosime funkcijos reikš-mes šio intervalo galuose ir dar dviejuose vidiniuose taškuose.
•Tarkime, kad reikšmė f(x1) – mažiausia. Tuomet intervale (x2,b] minimumo būti negali – ji galime atmesti.
•Taip pat būtų gerai, kad vieną likusį vidinį tašką (šiuo atveju x1, nes x2 taps naujo intervalo galu) galėtume panaudoti kitame žingsnyje kaip naujo intervalo [a,x2] vidinį tašką. •Todėl reikalausime, kad x1 dalytų seną ir naują intervalą tuo pačiu santykiu:
Aukso pjūvio metodas
qab
xb
ab
ax
21
),()()( 2112 xbaxabxx
.)()(
)()()(
2
21
2
12
xbab
xbaxab
ax
xx
,1
21
q
.0132 qq
38,02
53
q
.)( ,)( 21 qabbxqabax
Tuomet
Taigi
Sudarysime formules tokių vidinių taškų x1 ir x2 apskaičiavimui.
Pažymėkime
Padaliję dešiniosios trupmenos skaitiklį ir vardiklį iš (b-a), gauname
kvadratinę lygtį:
Mus domina mažesnis už vienetą sprendinys:
Aukso pjūvio pavyzdžiai
• Aukso pjūvio proporcija žinoma nuo Antikos laikų.
• Ją galima aptikti architektūroje ir meno darbuose.
• Įdomiausia, kad ją galima aptikti ir gamtoje.
1643612)( 2 xxxQ
Aukso pjūvio metodo taikymo pavyzdys
1643612)( 2 xxxQ
Aukso pjūvio metodo taikymo pavyzdys
1643612)( 2 xxxQ
Aukso pjūvio metodo taikymo pavyzdys
1643612)( 2 xxxQ
Aukso pjūvio metodo taikymo pavyzdys
1643612)( 2 xxxQ
Aukso pjūvio metodo taikymo pavyzdys
1643612)( 2 xxxQ
Aukso pjūvio metodo taikymo pavyzdys
1643612)( 2 xxxQ
Aukso pjūvio metodo taikymo pavyzdys
1643612)( 2 xxxQ
Aukso pjūvio metodo taikymo pavyzdys
415,1min x
1643612)( 2 xxxQ
Aukso pjūvio metodo taikymo pavyzdys
Aukso pjūvio metodo algoritmas 1. Pradinio intervalo parinkimas. Randame intervalą [a,b], kuriame funkcija f(x)
turi vienintelį minimumą, n := 0.
2. Pradinių reikšmių apskaičiavimas. Apskaičiuojame funkcijos f(x) reikšmes
intervalo galuose a, b ir vidiniuose taškuose x1 = a + (b – a)q, x2 = b – (b – a)q
ir iš jų išrenkame mažiausią. Atitinkamą tašką pažymime xmin.
3. Naujo intervalo sudarymas. Atmetame tolimiausiąjį nuo xmin tašką ir
pernumeruojame likusius taškus:
a) jei atmetėme a, tai a := x1, x1 := x2;
b) jei atmetėme b, tai x2 := x1, b := x2;
4. Tikslumo tikrinimas. Tikriname tikslumo sąlygą: b – a < ε.
5. Naujo vidinio taško apskaičiavimas. Jei tikslumo sąlyga netenkinama,
apskaičiuojame naują vidinį tašką:
a) jei atmetėme a, tai x2 = b – (b – a)q,
b) jei atmetėme b, tai x1 = a + (b – a)q,
apskaičiuojame funkcijos reikšmę tik šiame naujame taške,
vėl išrenkame mažiausią reikšmę iš 4-ių, atitinkamą tašką pažymime xmin,
grįžtame į 3 žingsnį, n := n+1.
6. Jei tikslumo sąlyga patenkinta, tai baigiame skaičiavimus:
xmin yra funkcijos f(x) minimumo taškas tikslumu ε, f(xmin) – mažiausioji reikšmė.
Aukso pjūvio metodo savybės
• Išrenkant didžiausią funkcijos f(x) reikšmę atitinkamuose aukso pjūvio algoritmo žingsniuose, apskaičiuojame funk-cijos f(x) maksimumo tašką xmax.
• Aukso pjūvio metodu paklaida mažėja 38% po kiekvienos iteracijos. Taigi, šis metodas turi tiesinį konvergavimo greitį.
• Toliau nagrinėsime sparčiau konverguojantį metodą – Niutono metodą, kuris turi kvadratinį konvergavimo greitį.
• Tačiau Niutono metodas reikalaus funkcijos f(x) pirmųjų ir antrųjų išvestinių apskaičiavimo.
• Kai šių išvestinių apskaičiuoti negalime arba jos netenkina konvergavimui būtinų sąlygų, optimizavimo uždavinį galime išspręsti būtent aukso pjūvio metodu.
• Aukso pjūvio metodo taikymui užtenka mokėti apskaičiuoti funkcijos f(x) reikšmes pasirenkamuose taškuose.
• Aišku, kad sprendinio (t.y. minimumo/maksimumo) egzistavi-mui būtina, kad funkcija f(x) būtų tolydi intervale [a,b].
• Kitas mūsų nagrinėjamas metodas (Niutono) grindžiamas gerai žinomu funkcijos lokalaus ekstremumo požymiu.
• Teorema. Jei funkcija f(x) intervale [a,b] turi išvestinę ir šio intervalo taške c įgyja lokalų minimumą arba maksimumą, tai jos išvestinė tame taške c lygi nuliui:
• Kaip nustatyti, ar c yra minimumo, maksimumo arba vingio taškas?
• Taškas c yra minimumo taškas, a) jei funkcijos išvestinė f ′(x) taške c keičia ženklą iš
neigiamo į teigiamą; b) jei funkcijos antroji išvestinė f ″(c) > 0.
• Kaip atrodys šios sąlygos maksimumo taškui?
• Sprendžiant optimizavimo uždavinius, lygtis f ′(x) = 0 dažniau-siai yra netiesinė ir jos negalima išspręsti analiziniais metodais.
• Todėl taikomi skaitiniai netiesinių lygčių sprendimo metodai. Pasinaudosime Niutono metodu.
Lokalaus ekstremumo sąlygos
.0)( cf
• Prisiminkime Niutono metodo formulę netiesinės lygties f (x) = 0 sprendimui:
• Kadangi sprendžiant optimizavimo uždavinį, sprendžiame lygtį f ′(x) = 0, modifikuojame šią formulę (vietoje funkcijos įrašome jos išvestinę):
• Suradę lygties apytikslį sprendinį norimu tikslumu ε, kaip patikrinti, ar tai minimumo (maksimumo) taškas?
• Prisiminkime, kad Niutono metodo konvergavimui reikia parin-kti pradinį artinį x0 pakankamai arti ieškomo sprendinio, antroji išvestinė turi būti |f ″(x)| > 0, t.y. nenulinė sprendinio aplinkoje, o trečioji aprėžta (žr. atitinkamą teoremą).
• Esant šiom sąlygoms, Niutono metodo artiniai konverguoja kva-dratiniu greičiu, t.y. žymiai greičiau negu aukso pjūvio metodu.
Niutono metodas optimizavimo uždaviniui
,...2,1,0 ,)(
)(''
'
1 nxf
xfxx
n
nnn
,...2,1,0 ,)(
)('1 n
xf
xfxx
n
nnn
?0)('' nxf
Šviesos spindulio sklidimo uždavinys
.)(
min)(min2
22
1
22
00 c
xdb
c
xaxt
dxdx
22 )1(25,03292,125,0)( xxxt
0)1(25,0
)1(3292,1
25,0)('
22
x
x
x
xxt
3232 ))1(25,0(
25,03292,1
)25,0(
25,0)(''
xxxt
n 0 1 2 3 4
xn 0 0,53128 0,63918 0,63397 0,63395
funkcijos t(x) grafikas
• Išspręskime šį uždavinį Niutono metodu 0,0001 tikslumu.
• Paimkime c1 = 1, o c2 = 1/1,3292 (santykis tarp šviesos greičio ore ir vandenyje), a = 0,5; b = 0,5; d = 1. Tada
• Parenkame pradinį artinį x0 = 0 ir skaičiuojame, kol pasieksime norimą tikslumą:
Šviesos spindulio lūžio (Snelijaus) dėsnis
0)(
11)('
2
0
2
0
22
0
2
0
1
0
xdb
xd
cxa
x
cxt
2
1
2
0
2
0
2
0
2
0
)(/)(
/
c
c
xdbxd
xax
2
1
2
1
sin
sin
c
c
• Sprendžiant šį optimizavimo uždavinį, nesudėtingai galime
išvesti šviesos spindulio lūžio dėsnį, vadinamą Snelijaus vardu:
0)(' 0 xt
)()(min 00
xtxtdx
Kelių kintamųjų funkcijos optimizavimo uždavinys • Spręsime kelių kintamųjų funkcijos
minimizavimo uždavinį. Ieškosime n-matės erdvės tašką kuriame
ši funkcija įgyja lokalųjį minimumą:
• Kaip apibrėžiama n-mačio taško aplinka Pavaizduokite
ją kai n = 2 skirtinguose normose.
• Pastaba. Ieškant minimo srityje V nepamirškite, kad joje funkcija
gali turėti ne vieną lokalų ekstremumą!
• Niutono metodas. Šis metodas remiasi iš matematinės analizės
žinimu faktu, kad lokalaus ekstremumo (minimumo arba maksimu-
mo) taške funkcijos gradientas yra lygus nuliui:
• Koordinatinis šios vektorinės lygties pavidalas yra n lygčių sistema:
• Bendruoju atveju lygtys yra netiesinės ir sistema yra sprendžiama
Niutono metodu.
)(),..,,( 21 xfxxxfy n
).,( ),()( oo xDxxfxf
,ox
ox
?),( oxD
.0)(
xf
.,..,2,1 ,0)( nixx
f
i
Kelių kintamųjų funkcijos optimizavimo uždavinys • Kaip patikrinti, ar gautas sistemos sprendinys yra lokalaus
minimumo taškas?
• yra funkcijos lokalaus minimumo taškas, jei šios funkcijos
hesianas šiame taške yra teigiamai apibrėžta matrica, kur
• Niutono metodas turi kvadratinį konvergavimo greitį, tačiau reika-
lauja pakankamai glodžių išvestinių egzistavimo ir apskaičiavimo.
• T.y. turint „gerą“ pradinį artinį galime tikėtis santykinai nedidelio
iteracijų skaičiaus, tačiau kiekvienos iteracijos apskaičiavimas yra
gana brangus laiko prasme.
• Panagrinėkime 6 pavyzdį 221 puslapyje.
ox
ox
)(xf
)(xH
.
...
............
...
...
)(
2
2
2
2
1
2
2
2
2
2
2
12
2
1
2
21
2
2
1
2
nnn
n
n
x
f
xx
f
xx
f
xx
f
x
f
xx
f
xx
f
xx
f
x
f
xH
Kelių kintamųjų funkcijos optimizavimo uždavinys • Kai negalime ar nenorime skaičiuoti funkcijos išvestines,
galima naudoti simpleksų (Nelder-Mead) metodą (222 puslp.).
• Pagal šį metodą apskaičiuojamos tik funkcijos reikšmės n-mačio
simplekso (iškilojo daugiasienio) viršūnėse ir simpleksas
jūdinamas/didinamas/mažinamas link mažesnių reikšmių.
• Pvz. Himmelblau funkcija:
)(xf
22
22
)7(
)11(),(
yx
yxyxf
Skaitinio integravimo metodai
Skaitinis integravimas
• Skaitinio integravimo metodai yra taikomi, kai apibrėžtinio
integralo skaičiavimui mes negalime pritaikyti Niutono-Leib-
nico formulės, susiejančios apibrėžtinį integralą su pirmykšte
funkcija,
t.y., tais atvejais, kai pirmykštė funkcija nors ir egzistuoja,
tačiau neišreiškiama elementariosiomis funkcijomis arba ap-
skritai baigtiniu pavidalu.
• Prisiminkime, kad apibrėžtinis integralas yra lygus kreivinės
trapecijos plotui, kurią apriboja kreivė y = f(x), iš apačios – Ox
ašies atkarpa [a, b], o iš kraštų – vertikalios tiesės x = a ir x = b.
• Panagrinėkime pavyzdį.
,)()()(
b
a
aFbFdxxf
• Imkime dvi funkcijas ir atitinkamus integralus nuo 0 iki 1:
• Nors jų ribojamų trapecijų plotai tarp a=0 ir b=1 yra beveik lygus
tačiau pirmosios kreivės ribojamą plotą galima apskaičiuoti
Niutono-Leibnico formule, o antrosios – negalima, nes jos
pirmykšte neišreiškiama elementariosiomis funkcijomis.
• Štai dar keli tokių integralų pavyzdžiai:
.,
,,1
0
1
0
2
2
dxedxe
eyey
xx
xx
.2sin,1,cos,ln
1,
sin 32
b
a
x
b
a
b
a
b
a
b
a
dxdxxdxxdxx
dxx
x
0 0.2 0.4 0.6 0.8
1
2
2.718
0
ex2
ex
10 x
Skaitinis integravimas
• Sudarysime keletą įvairaus tikslumo skaitinio integravimo
formulių.
• Jos grindžiamos apibrėžtinio integralo apibrėžimu ir leidžia
apskaičiuoti integralo reikšmę kokiu norima tikslumu.
• Antra vertus, skaitinio integravimo metodai yra patogūs vartoti,
kai integruojama funkcija yra laboratorinių ar kitokių matavi-
mų rezultatas, tai yra, jos analizinė išraiška nežinoma ir
funkcija f(x) apibrėžta reikšmių lentele.
• Toliau laikysime, kad visos mūsų nagrinėjamos funkcijos f(x)
yra tolydžios integravimo intervale [a, b] (tada integralas eg-
zistuoja).
• Padalykime intervalą [a, b] į N lygių dalių:
šiuos taškus vadinsime integravimo mazgais, h – integravimo žingsniu. • Pagal žinomą apibrėžtinio integralo savybę turime, kad
• Kreivinės trapecijos, kurios pagrindas yra dalinis intervalas [xi, xi+1],
plotas apytiksliai lygus stačiakampio su tuo pačiu pagrindu plotui:
• Apskaičiavę ir sudėję visų dalinių kairiųjų stačiakampių plotus, gausime apytikslę visos kreivinės trapecijos ploto reikšmę – kairiųjų stačiakampių formulę:
Kairiųjų stačiakampių formulė
,,, ,..., , 110 N
abhhxxbxxxa iiN
.)()(...)()()(1
0
110
N
i
iNN
b
a
xfhhxfhxfhxfKdxxf
).)(()( 1
1
iii
x
x
xxxfdxxfi
i
.)()(1
0
1
N
i
x
x
b
a
i
i
dxxfdxxf
• Pavyzdys. Kairiųjų stačiakampių formule apskaičiuosime
• Pirmiausiai intervalą [1, 3] padaliname į N = 4 lygių dalių, apskaičiuojame integravimo mazgus su žingsniu h = (3-1)/4 = 0,5:
• Toliau apskaičiuojame integruojamos funkcijos f(x) = 1/x reikmes šiuose taškuose – f(xi) ir sumuojame pagal formulę:
• Šį integralą apskaičiuoti tiksliai pagal Niutono ir Leibnico formulę:
• Todėl šiuo konkrečiu atveju galime tiksliai apskaičiuoti skaitinio integravimo paklaidą:
• Apskaičiuokite šį integralą su dvigubai daugiau intervalų (N = 8) – K8 ir atitinkamą paklaidą ε8. Atkreipkite dėmesį, kad tik pusė mazgų bus naujų, t.y. reikės papildomai apskaičiuoti tik 4 funkcijos reikšmes.
Kairiųjų stačiakampių formulės taikymas .
3
1 x
dx
.2833,160/77))(...)()(( 3104 hxfxfxfK
.3 ,5,2 ,2 ,5,1 ,1 43210 xxxxx
.0986,13ln1ln3ln|ln 31
3
1 x
x
dx
.185,03ln 44
3
14 KK
x
dx
Dešiniųjų stačiakampių formulė
• Kreivinės trapecijos plotą pakeičiant stačiakampio plotu, stačia-kampio aukštį galime skaičiuoti ne kairiajame, o dešiniajame gale (pavaizduokite):
• Sumuojant pagal visus dalinius intervalus [xi, xi+1] gauname dešiniųjų stačiakampių formulę:
• Pavyzdys (183 p.). Dešiniųjų stačiakampių formule apskaičiuokite integralą su N = 4, 8:
Apskaičiuokite tikslias skaitinio integravimo paklaidas ir palyginkite su kairiųjų stačiakampių formulės paklaidomis.
• Ar galima teoriškai įvertinti stačiakampių formulių tikslumą?
.)()(...)()(1
21
N
i
iNN xfhhxfhxfhxfD
).)(()( 11
1
iii
x
x
xxxfdxxfi
i
3
1 x
dx
Stačiakampių formulių tikslumas • Teorema. Jei funkcija f(x) intervale [a,b] turi tolydžią išvestinę, tai
kairiųjų (dešiniųjų) stačiakampių formulės paklaida įvertinama tokia nelygybe:
• Taigi tam, kad sumažinti skaitinio integravimo paklaidą, reikia ma-
žinti integravimo žingsnį h.
• Sprendžiant realius uždavinius rėžio M1 apskaičiavimas yra sudė-
tingas, ypač kai funkcijos f(x) pavidalas nėra žinomas, o žinoma tik
reikšmių lentelė.
• Todėl skaitinio integravimo algoritmuose integralas yra apskaičiuo-
jamas iš pradžių su N, o paskui su 2N dalinių intervalų.
• Dalinių intervalų skaičius N yra dvigubinamas tol, kol stačiakam-
pių formulės paklaida pagal Rungės taisyklę taps mažesnė už
siekiamą tikslumą ε: • Tokiu būdu gaunamas artinys K2N norimu tikslumu ε:
].;[ kai ,)( ,)(
5,0)(5,0)( 1
2
11 baxMxfN
abMhabMKdxxf
b
a
N
.2 NN KK
.)( 2 N
b
a
Kdxxf
Trapecijų formulė
• Padalykime intervalą [a, b] į N lygių dalių ir kiekvieną kreivės f(x)
lanką, esantį virš intervalo [xi, xi+1], pakeiskime tiesės atkarpa:
• Apskaičiavę ir sudėję visų dalinių trapecijų plotus, gausime
trapecijų formulę:
• Pavyzdys (185 p.). Trapecijų formule apskaičiuokite integralą
su N = 4, 8. Apskaičiuokite tikslias skaitinio integravimo paklaidas ir palyginkite su kairiųjų stačiakampių formulės paklaidomis.
.)(2
)()(
2
)()(...
2
)()(
2
)()()(
1
1
0
12110
N
i
iN
NNN
b
a
xfxfxf
h
hxfxf
hxfxf
hxfxf
Tdxxf
3
1 x
dx
Trapecijų formulės tikslumas
• Koks yra trapecijų formulės tikslumas?
• Teorema. Jei funkcija f(x) intervale [a,b] turi tolydžiąją antrąją
išvestinę, tai trapecijų formulės paklaida įvertinama tokia nelygybe:
• Kokį garantuotą paklaidos įverčio sumažėjimą užtikrina dvigubas
integravimo žingsnio h sumažinimas? Palyginkite su stačiakampių
formulėmis.
• Sprendžiant realius uždavinius rėžio M2 apskaičiavimas yra sudė-
tingas, ypač kai funkcijos f(x) pavidalas nėra žinomas, o žinoma tik
reikšmių lentelė.
• Todėl skaitinio integravimo algoritme dalinių intervalų skaičius yra
dvigubinamas tol, kol trapecijų formulės paklaida pagal Rungės
taisyklę taps mažesnė už ε :
].;[ kai ,)( ,12
)(
12)( 22
3
2
2
2 baxMxfN
abMh
abMTdxxf
b
a
N
.3
2
NN TT
Simpsono (parabolių) formulė
• Simpsono formulė sudaroma parabolėmis pakeitus funkciją f(x).
• Padalykime integravimo intervalą [a, b] į lyginį dalių skaičių
• Kiekviename intervale [xi, xi+2] nubrėžkime parabolės, einančias
per taškus
• Ši parabolė reiškiama tokia kvadratine lygtimi (žr. Niutono
interpoliacinį daugianarį L2(x)):
.2 ,,,,...,, 110 mNN
abhhxxbxxxa iiN
)).(,()),(,()),(,( 2211 iiiiii xfxxfxxfx
).)((2
)()(2)()(
)()()()( 12
121
iiiii
iii
i xxxxh
xfxfxfxx
h
xfxfxfxy
Simpsono formulė • Įrašę šias funkcijas į pradinį integralą ir suintegravę, gauname
Simpsono (parabolių) formulę:
• Pavyzdys. Apskaičiuokite integralą ir paklaidas su N = 4, 8:
• Teorema. Jei funkcija f(x) intervale [a,b] turi tolydžią 4–os
eilęs išvestinę, tai Simpsono formulės paklaida įvertinama tokia
nelygybe:
• Kokį paklaidos įverčio sumažėjimą užtikrina dvigubas integra-
vimo žingsnio h sumažinimas? Palyginkite.
• Sprendžiant realius uždavinius dalinių intervalų skaičius N dvi-
gubinamas tol, kol Simpsono formulės paklaidos įvertis pagal
Rungės taisyklę taps mažesnis už siekiamą tikslumą ε:
.)()(2)(4)(3 1
1
1
2120
N
m
i
m
i
iiN xfxfxfxfh
S
].;[ kai ,)( ,180
)(
180)( 4
)4(
4
5
4
4
4 baxMxfN
abMh
abMSdxxf
b
a
N
.15
2
NN SS
.3
1 x
dx
Skaitinio integravimo paklaidos įvertinimas
• Funkcijos išvestinių rėžių radimas yra sunkus, o kartais ir neiš-sprendžiamas uždavinys.
• Be to teoremų įverčiai, nors ir visada teisingi, gali būti pakan-kamai grubus. Pvz., dėl modulių panaudojimo neatsižvelgiama į galimą paklaidų kompensavimąsi.
• Todėl praktikoje dažniausiai naudojama Rungės taisyklė:
• Jei integralo artiniai IN ir I2N yra apskaičiuoti pagal kurią nors skaitinio integravimo formulę, tai artinio I2N paklaida įvertinama tokia apytiksle lygybe:
čia p = 1, jei artiniai yra apskaičiuoti pagal stačiakampių for-mulę, p = 2 – trapecijų, p = 4 – pagal Simpsono formulę.
,12
)(2
22
p
NNb
a
NN
IIIdxxf
Uždaviniai savarankiškam darbui
1. Kairiųjų ir dešinių stačiakampių, trapecijų ir Simpsono formulėmis apskaičiuokite
integralą su N = 4, 8, 16. Apskaičiuokite tikslias skaitinio integravimo
paklaidas ir paklaidų įverčius pagal Rungės taisyklę.
2. Vienos tūkstantosios tikslumu apskaičiuokite integralą
kairiųjų stačiakampių, trapecijų ir Simpsono formulėmis.
3. Uždaviniai iš literatūros sąrašo mokymo priemonių.
3
1 x
dx
dxx
x
3
2
sin
Skaitiniai tikrinių reikšmių uždavinio sprendimo metodai
Tikrinių reikšmių uždavinys
• Parametro reikšmės, su kuriomis tiesinių lygčių sistema
turi nenulinius sprendinius vadinamos kvadratinės matricos
A tikrinėmis reikšmėmis, o sprendiniai - atitinkamais
matricos A tikriniais vektoriais.
• Pastebėsime, kad praktikoje yra sprendžiami įvairaus tipo
tikrinių reikšmių uždaviniai, kai reikia rasti
– visas matricos A tikrines reikšmės su arba be atitinkamų
tikrinių vektorių,
– tikrines reikšmes, kurios priklauso tam tikrai sričiai
(intervalui) D, su arba be atitinkamų tikrinių vektorių,
– didžiausią (arba mažiausią) moduliu tikrinę reikšmę su
arba be atitinkamo tikrinio vektoriaus.
• Tokie uždaviniai iškila ne tik matematikoje, bet ir fizikoje
mechanikoje, chemijoje, biologijoje, ekonomikoje modeliuo-
jant tam tikros sistemos pusiausvyros būseną (žr. p. 128-133).
xx
A
x
x
Tikrinių reikšmių uždavinys
• Iš tiesinės algebros žinoma, kad homogeninė tiesinių lygčių
sistema
turi nenulinį sprendinį tada ir tik tai tada, kai jos determinantas
lygus nuliui:
• Šis determinantas yra n-ojo laipsnio daugianaris nežinomojo λ
atžvilgiu:
• Šis daugianaris vadinamas matricos A charakteristiniu daugia-
nariu, o lygtis - matricos A charakteristine lygtimi.
• Ji, kaip ir bet kuris n-ojo laipsnio daugianaris, turi n šaknų,
todėl kvadratinė n-os eilės matrica turi n tikrinių reikšmių.
• Iš jų kai kurios gali būti kartotinės ir kompleksinės.
• Pastaba. Kai matrica A yra simetrinė, visos jos tikrinės
reikšmės realios, kai teigiamai apibrėžta – teigiamos.
0)(
xxx EAA
.0
...............
...
...
)det(
21
22221
11211
nnnn
n
n
aaa
aaa
aaa
EA
....)1()()det( 1
1
1 nn
nnn
n cccp
EA
0)( np
Tikrinių reikšmių uždavinio sprendimo etapai a) Charakteristinio daugianario sudarymas;
b) Charakteristinio daugianario šaknų – matricos A tikrinių
reikšmių radimas;
c) Tikrinių vektorių apskaičiavimas.
• Dideliems n charakteristinio daugianario pn(λ) sudarymas
reikalauja labai didelių skaičiavimų.
• Triįstrižainės matricos charakteristinio daugianario pn(λ)
reikšmę galima apskaičiuoti labai taupiai – neieškant šio
daugianario koeficientų, naudojant rekurentinę formulę.
• Bendruoju atveju naudojamos specialios transformacijos, kurių
pagalba iš bendrosios matricos gaunama triįstrižainė su tomis
pačiomis tikrinėmis reikšmėmis.
• Pavyzdžiui, simetrinė matrica suvedama į triįstrižainę
Hausholderio (angl. Hauseholder) transformacijos pagalba.
• pn(λ) šaknys dažniausiai randamos parabolių metodu arba
Šturmo grandinių pagalba.
• Tikrinis vektorius atitinkantis tikrinę reikšmę apskaičiuojamas
atvirkštinių iteracijų metodu.
Laipsnių metodas (angl. power method) • Pateiksime metodą, kuriuo galima rasti didžiausią (arba mažiausią)
moduliu tikrinę reikšmę su atitinkamu tikriniu vektoriumi.
• Tarkime, kad matrica A yra diagonalizuojama (jos tikriniai
vektoriai sudaro pilnąją vektorių sistemą), o didžiausioji modulių
tikrinė reikšmė λ1 nėra kartotinė:
• Pasirenkame pradinį ieškomo tikrinio vektoriaus artinį
(normuotą!): Iteracijos numeris k = 0.
ciklas
ciklo pabaigos sąlygos:
• Jei tikslumo sąlygos netenkinamos, kartojame ciklą su k := k +1.
• Laipsnių metodo konvergavimo greitis yra tiesinis ir priklauso nuo
santykio
.321 n
.1 :2
0
1
0
1 xx
.ir 1
1
12
1
1
1 kkkk xx
,1
1
1
kk xy
A ,
2
1
1
1
11
1
k
kk
y
yx
,, 1
1
1
1
1
kkk xy
.1
2
Laipsnių metodo pavyzdys • Iš pradžių raskime visas matricos A tikrines reikšmes ir atitinka-
mus tikrinius vektorius iš charakteristinės lygties:
• Toliau laipsnių metodu apskaičiuokime didžiausią moduliu tikrinę
reikšmę su atitinkamu tikriniu vektoriumi vienos tūkstantosios
tikslumu.
.4312
A