195
Skaitiniai metodai doc. dr. Vadimas Starikovičius [email protected] http://www.techmat.vgtu.lt/~vs VGTU Matematinio modeliavimo katedra VGTU Lygiagrečiųjų skaičiavimų laboratorija

skaitiniai metodai 1

  • Upload
    vuxuyen

  • View
    323

  • Download
    11

Embed Size (px)

Citation preview

Page 2: skaitiniai metodai 1

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%)

Page 3: skaitiniai metodai 1

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

Page 4: skaitiniai metodai 1

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

Page 5: skaitiniai metodai 1

Raketų, lėktuvų, automobilių projektavimas

Virtualus eksperimentas

Kompiuterinė simuliacija

Page 6: skaitiniai metodai 1

Saugumo testų modeliavimas

Page 7: skaitiniai metodai 1

Orų prognozė ir klimato pokyčių modeliavimas

Page 8: skaitiniai metodai 1

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

Page 9: skaitiniai metodai 1

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

Page 10: skaitiniai metodai 1

• 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

Page 11: skaitiniai metodai 1

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.

Page 12: skaitiniai metodai 1

• 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

Page 13: skaitiniai metodai 1

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

Page 14: skaitiniai metodai 1

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

Page 15: skaitiniai metodai 1

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

Page 16: skaitiniai metodai 1

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

Page 17: skaitiniai metodai 1

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

Page 18: skaitiniai metodai 1

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

Page 19: skaitiniai metodai 1

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

Page 20: skaitiniai metodai 1

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

Page 21: skaitiniai metodai 1

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

Page 22: skaitiniai metodai 1

Netiesinių lygčių

sprendimo metodai

Page 23: skaitiniai metodai 1

• 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.

Page 24: skaitiniai metodai 1

• Tegu yra žinomos tam tikros paklausos ir pasiūlos kreivės.

• Kaip rasti pusiausvyros rinkos kaina p0?

• Reikia išspręsti lygtį .3 pep

Page 25: skaitiniai metodai 1

• 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ą.

Page 26: skaitiniai metodai 1

Š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

Page 27: skaitiniai metodai 1

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.

Page 28: skaitiniai metodai 1

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?

Page 29: skaitiniai metodai 1

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

Page 30: skaitiniai metodai 1

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

Page 31: skaitiniai metodai 1

• 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

Page 32: skaitiniai metodai 1

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

Page 33: skaitiniai metodai 1

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

Page 34: skaitiniai metodai 1

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

Page 35: skaitiniai metodai 1

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

Page 36: skaitiniai metodai 1

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

Page 37: skaitiniai metodai 1

• 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

Page 38: skaitiniai metodai 1

• 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

Page 39: skaitiniai metodai 1

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

Page 40: skaitiniai metodai 1

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

Page 41: skaitiniai metodai 1

• 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

Page 42: skaitiniai metodai 1

• 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

Page 43: skaitiniai metodai 1

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

Page 44: skaitiniai metodai 1

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

Page 45: skaitiniai metodai 1

• 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

Page 46: skaitiniai metodai 1

• 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

Page 47: skaitiniai metodai 1

• 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

Page 48: skaitiniai metodai 1

• 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

Page 49: skaitiniai metodai 1

• 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

Page 50: skaitiniai metodai 1

• 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

Page 51: skaitiniai metodai 1

• 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

Page 52: skaitiniai metodai 1

• 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

Page 53: skaitiniai metodai 1

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

Page 54: skaitiniai metodai 1

• 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

Page 55: skaitiniai metodai 1

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

Page 56: skaitiniai metodai 1

Tiesioginiai tiesinių lygčių sistemų

sprendimo metodai

Page 57: skaitiniai metodai 1

• 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

Page 58: skaitiniai metodai 1

• 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ą.

Page 59: skaitiniai metodai 1

• 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

Page 60: skaitiniai metodai 1

• 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

Page 61: skaitiniai metodai 1

• 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

Page 62: skaitiniai metodai 1

• 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

Page 63: skaitiniai metodai 1

• 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

Page 64: skaitiniai metodai 1

• 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

Page 65: skaitiniai metodai 1

• 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

Page 66: skaitiniai metodai 1

• 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

Page 67: skaitiniai metodai 1

• 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

Page 68: skaitiniai metodai 1

• 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

Page 69: skaitiniai metodai 1

• 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

Page 70: skaitiniai metodai 1

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

Page 71: skaitiniai metodai 1

• 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

Page 72: skaitiniai metodai 1

• 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

Page 73: skaitiniai metodai 1

• 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

Page 74: skaitiniai metodai 1

• 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

Page 75: skaitiniai metodai 1

• 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

Page 76: skaitiniai metodai 1

• 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

Page 77: skaitiniai metodai 1

• 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

Page 78: skaitiniai metodai 1

• 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(

Page 79: skaitiniai metodai 1

• 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

Page 80: skaitiniai metodai 1

• 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

Page 81: skaitiniai metodai 1

• 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

Page 82: skaitiniai metodai 1

• Š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

Page 83: skaitiniai metodai 1

• 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?

Page 84: skaitiniai metodai 1

Iteraciniai tiesinių lygčių sistemų

sprendimo metodai

Page 85: skaitiniai metodai 1

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).

Page 86: skaitiniai metodai 1

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

Page 87: skaitiniai metodai 1

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

Page 88: skaitiniai metodai 1

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

Page 89: skaitiniai metodai 1

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

Page 90: skaitiniai metodai 1

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

Page 91: skaitiniai metodai 1

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

Page 92: skaitiniai metodai 1

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

Page 93: skaitiniai metodai 1

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.

Page 94: skaitiniai metodai 1

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.

Page 95: skaitiniai metodai 1

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

Page 96: skaitiniai metodai 1

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(

Page 97: skaitiniai metodai 1

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

Page 98: skaitiniai metodai 1

• 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

Page 99: skaitiniai metodai 1

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

Page 100: skaitiniai metodai 1

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

Page 101: skaitiniai metodai 1

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

Page 102: skaitiniai metodai 1

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

Page 103: skaitiniai metodai 1

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

Page 104: skaitiniai metodai 1

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

Page 105: skaitiniai metodai 1

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

Page 106: skaitiniai metodai 1

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

Page 107: skaitiniai metodai 1

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

Page 108: skaitiniai metodai 1

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

Page 109: skaitiniai metodai 1

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

Page 110: skaitiniai metodai 1

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

Page 111: skaitiniai metodai 1

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

Page 112: skaitiniai metodai 1

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

Page 113: skaitiniai metodai 1

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

Page 114: skaitiniai metodai 1

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

Page 115: skaitiniai metodai 1

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

Page 116: skaitiniai metodai 1

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!

Page 117: skaitiniai metodai 1

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

Page 118: skaitiniai metodai 1

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

Page 119: skaitiniai metodai 1

Interpoliavimas ir aproksimavimas

Page 120: skaitiniai metodai 1

• 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

Page 121: skaitiniai metodai 1

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

Page 122: skaitiniai metodai 1

• 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

Page 123: skaitiniai metodai 1

• 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

Page 124: skaitiniai metodai 1

• 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

Page 125: skaitiniai metodai 1

• 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

Page 126: skaitiniai metodai 1

• 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

Page 127: skaitiniai metodai 1

• 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

Page 128: skaitiniai metodai 1

• 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

Page 129: skaitiniai metodai 1

• 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

Page 130: skaitiniai metodai 1

• 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

Page 131: skaitiniai metodai 1

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

Page 132: skaitiniai metodai 1

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

Page 133: skaitiniai metodai 1

• 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

Page 134: skaitiniai metodai 1

• 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

Page 135: skaitiniai metodai 1

• 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

Page 136: skaitiniai metodai 1

• 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

Page 137: skaitiniai metodai 1

• 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

Page 138: skaitiniai metodai 1

• 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

Page 139: skaitiniai metodai 1

• 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

Page 140: skaitiniai metodai 1

• 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

Page 141: skaitiniai metodai 1

• 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

Page 142: skaitiniai metodai 1

• 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?

Page 143: skaitiniai metodai 1

• 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.

Page 144: skaitiniai metodai 1

• 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

Page 145: skaitiniai metodai 1

• 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

Page 146: skaitiniai metodai 1

• 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

Page 147: skaitiniai metodai 1

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

Page 148: skaitiniai metodai 1

Funkcijų optimizavimo metodai

Page 149: skaitiniai metodai 1

• Į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

Page 150: skaitiniai metodai 1

Š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

Page 151: skaitiniai metodai 1

• 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

Page 152: skaitiniai metodai 1

• 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

Page 153: skaitiniai metodai 1

• 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.

Page 154: skaitiniai metodai 1

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.

Page 155: skaitiniai metodai 1

•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:

Page 156: skaitiniai metodai 1

Aukso pjūvio metodas

qab

xb

ab

ax

21

),()()( 2112 xbaxabxx

.)()(

)()()(

2

21

2

12

xbab

xbaxab

ax

xx

,1

21

q

qq

.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:

Page 157: skaitiniai metodai 1

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.

Page 158: skaitiniai metodai 1

1643612)( 2 xxxQ

Aukso pjūvio metodo taikymo pavyzdys

Page 159: skaitiniai metodai 1

1643612)( 2 xxxQ

Aukso pjūvio metodo taikymo pavyzdys

Page 160: skaitiniai metodai 1

1643612)( 2 xxxQ

Aukso pjūvio metodo taikymo pavyzdys

Page 161: skaitiniai metodai 1

1643612)( 2 xxxQ

Aukso pjūvio metodo taikymo pavyzdys

Page 162: skaitiniai metodai 1

1643612)( 2 xxxQ

Aukso pjūvio metodo taikymo pavyzdys

Page 163: skaitiniai metodai 1

1643612)( 2 xxxQ

Aukso pjūvio metodo taikymo pavyzdys

Page 164: skaitiniai metodai 1

1643612)( 2 xxxQ

Aukso pjūvio metodo taikymo pavyzdys

Page 165: skaitiniai metodai 1

1643612)( 2 xxxQ

Aukso pjūvio metodo taikymo pavyzdys

Page 166: skaitiniai metodai 1

415,1min x

1643612)( 2 xxxQ

Aukso pjūvio metodo taikymo pavyzdys

Page 167: skaitiniai metodai 1

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ė.

Page 168: skaitiniai metodai 1

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].

Page 169: skaitiniai metodai 1

• 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

Page 170: skaitiniai metodai 1

• 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

Page 171: skaitiniai metodai 1

Š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ą:

Page 172: skaitiniai metodai 1

Š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

Page 173: skaitiniai metodai 1

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

Page 174: skaitiniai metodai 1

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

Page 175: skaitiniai metodai 1

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

Page 176: skaitiniai metodai 1

Skaitinio integravimo metodai

Page 177: skaitiniai metodai 1

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

Page 178: skaitiniai metodai 1

• 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

Page 179: skaitiniai metodai 1

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).

Page 180: skaitiniai metodai 1

• 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

Page 181: skaitiniai metodai 1

• 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

Page 182: skaitiniai metodai 1

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

Page 183: skaitiniai metodai 1

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

Page 184: skaitiniai metodai 1

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

Page 185: skaitiniai metodai 1

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

Page 186: skaitiniai metodai 1

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

Page 187: skaitiniai metodai 1

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

Page 188: skaitiniai metodai 1

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

Page 189: skaitiniai metodai 1

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

Page 190: skaitiniai metodai 1

Skaitiniai tikrinių reikšmių uždavinio sprendimo metodai

Page 191: skaitiniai metodai 1

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

Page 192: skaitiniai metodai 1

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

Page 193: skaitiniai metodai 1

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.

Page 194: skaitiniai metodai 1

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

Page 195: skaitiniai metodai 1

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