4paskaita6
4paskaita6
4paskaita6
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Turinys<br />
Duomenų aproksimavimas : splainai<br />
Olga Štikonienė<br />
Diferencialinių lygčių ir skaičiavimo matematikos katedra, MIF VU<br />
1 Splainai<br />
Tiesinis splainas<br />
Kvadratinis splainas<br />
Kubinis splainas<br />
Kraštinės sąlygos<br />
2 Splainų taikymai<br />
MIF VU (MIF VU) Skaitiniai metodai 1/58<br />
MIF VU (MIF VU) Skaitiniai metodai 2/58<br />
Interpoliavimas daugianariais netinka:<br />
Interpoliavimas daugianariais netinka:<br />
Duomenys su dideliu gradientu (lygus grafikas su staigiu piku);<br />
Duomenys su triukšmu;<br />
Neglodus paviršius (netolydi išvestinė).<br />
Nesutapimas su tikrosios funkcijos<br />
grafiku. Osciliacijos.<br />
<br />
<br />
1 pavyzdys:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Rungės funkcija<br />
f (x) =<br />
1<br />
1 + 25x 2<br />
2 pavyzdys: duomenys su<br />
triukšmu.<br />
Tiesinis dėsnis:<br />
<br />
<br />
<br />
<br />
<br />
<br />
y = 2x + 1.<br />
3 pavyzdys: netolydi išvestinė.<br />
f (x) = √ |x|<br />
Interpoliavimas, kai x =<br />
−5, −4, −3, −2, −1, 0, 1, 2, 3, 4, 5<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
4-osios eilės ir 14 -osios eilės Niutono interpoliaciniai daugianariai.<br />
<br />
<br />
<br />
<br />
MIF VU (MIF VU) Skaitiniai metodai 3/58<br />
MIF VU (MIF VU) Skaitiniai metodai 4/58<br />
Laiptuotos funkcijos interpoliavimas<br />
<br />
<br />
<br />
<br />
Interpoliavimas daugianariais:<br />
L n (x), eina per visus duotus taškus;<br />
jei atsiranda papildomi duomenys, reikia didinti daugianario<br />
laipsnį, tai nevisada tikslinga.<br />
Alternatyva:<br />
Interpoliavimas dalimis daugianarėmis funkcijomis.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Kubinis interpoliavimas<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Interpoliavimas 5-ojo<br />
laipsnio daugianarių<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Interpoliavimas 7-ojo<br />
laipsnio daugianarių<br />
<br />
<br />
<br />
<br />
Tiesinis splainas<br />
MIF VU (MIF VU) Skaitiniai metodai 5/58<br />
MIF VU (MIF VU) Skaitiniai metodai 6/58
Interpoliavimas dalimis daugianarėmis funkcijomis<br />
Funkcija y = f (x) apibrėžta reikšmių lentele<br />
(x i , y i ), i = 0, 1, ···N:<br />
x 0 x 1 ··· x N<br />
y 0 y 1 ··· y N<br />
Intervale sudarome jos interpoliacinę funkciją iš neaukšto,<br />
pirmojo arba antrojo laipsnio interpoliacinių daugianarių,<br />
apibrėžtų atitinkamoje intervalo [x 0 , x N ] dalyje.<br />
Dalimis tiesinė interpoliacinė funkcija<br />
Taikoma, kai didinant interpoliacinio daugianario laipsnį<br />
interpoliavimo paklaida nemažėja.<br />
L0(x) 1 =a 0 (x − x 0 )+b 0 x 0 x x 1 ,<br />
L1(x) 1 =a 1 (x − x 1 )+b 1 x 1 x x 2 ,<br />
···<br />
Li 1 (x) =a i (x − x i )+b i x i−1 x x i ,<br />
···<br />
LN−1(x) 1 =a N−1 (x − x N−1 )+b N−1 x N−1 x x N ,<br />
Tolydi visame intervale, bet nėra diferencijuojama<br />
interpoliavimo mazguose.<br />
čia<br />
a i = y i+1 − y i<br />
x i+1 − x i<br />
, b i = y i .<br />
Lengvai realizuojama.<br />
MIF VU (MIF VU) Skaitiniai metodai 7/58<br />
MIF VU (MIF VU) Skaitiniai metodai 8/58<br />
Funkcijos, apibrėžtos reikšmių lentele,<br />
interpoliacinė funkcija<br />
x i 0, 0 0, 2 0, 4 0, 6 0, 8 1, 0 1, 2<br />
y i 1, 2 4, 0 0, 8 2, 5 2, 0 3, 0 1, 5<br />
Splainai<br />
Dalimis daugianarė interpoliacinė funkcija<br />
Tolydi visame intervale.<br />
Nėra diferencijuojama interpoliavimo mazguose.<br />
Splainų panaudojimo idėja:<br />
Interpoliavimas splainais<br />
Nedidelio laipsnio daugianariai jungia duotuosius taškus.<br />
Funkcija glodi visame intervale (t.y. ir vidiniuose<br />
interpoliavimo mazguose).<br />
Nedidelio laipsnio daugianariai neleidžia atsirasti<br />
osciliacijoms.<br />
Dalimis tiesinė<br />
Dalimis kvadratinė<br />
MIF VU (MIF VU) Skaitiniai metodai 9/58<br />
MIF VU (MIF VU) Skaitiniai metodai 10/58<br />
Splainai<br />
Splainai<br />
Splainai<br />
Splainai<br />
spline (angl.)– lazdelė<br />
Standi lazdelė<br />
N intervalų ir N + 1 taškų.<br />
S i (x) neaukštos eilės daugianaris i-ajame intervale.<br />
Nulinis kreivis galuose<br />
MIF VU (MIF VU) Skaitiniai metodai 11/58<br />
MIF VU (MIF VU) Skaitiniai metodai 12/58
Splainai<br />
Splaino apibrėžimas<br />
Splainai<br />
Dažniausiai naudojami splainai<br />
Funkcija y = f (x) apibrėžta reikšmių lentele<br />
(x i , y i ), i = 0, 1, ···N:<br />
<br />
<br />
<br />
<br />
<br />
x 0 x 1 ··· x N<br />
y 0 y 1 ··· y N<br />
Kiekviename daliniame intervale [x i , x i+1 ] funkcija y = f (x)<br />
aproksimuojama m-ojo laipsnio daugianarių<br />
1 Tiesinis splainas;<br />
2 Kvadratinis splainas;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
S m i (x) =a i0 x m + a i1 x m−1 + ···+ a im−1 x + a im .<br />
Funkcija ir visos jos išvestinės iki (m − 1) eilės yra tolydžios<br />
kiekviename intervalo [x 0 , x N ] taške.<br />
Tokia interpoliacinė funkcija vadinama m-tosios eilės splainu<br />
(su defektu 1).<br />
3 Kubinis splainas. <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
MIF VU (MIF VU) Skaitiniai metodai 13/58<br />
MIF VU (MIF VU) Skaitiniai metodai 14/58<br />
Splainų taikymas<br />
Splainai<br />
Splainai<br />
Tiesinis splainas<br />
Tiesinis splainas: S 1 i (x) =a i x + b i<br />
Duoti taškai: (x 0 , y 0 ), ..., (x N , y N ).<br />
Intervalai: I 0 =[x 0 , x 1 ], ..., I N−1 =[x N−1 , x N ].<br />
<br />
<br />
<br />
Laivo paviršiaus valdymo<br />
tinklas<br />
Realaus laivo korpuso<br />
paviršiaus aproksimacija<br />
splainais (FastShip V, firmos<br />
Proteus paketas 1997)<br />
<br />
<br />
<br />
MIF VU (MIF VU) Skaitiniai metodai 15/58<br />
MIF VU (MIF VU) Skaitiniai metodai 16/58<br />
Splainai<br />
Tiesinis splainas<br />
Tiesinis splainas: S 1 i (x) =a i x + b i<br />
Tiesinis splainas<br />
Splainai<br />
Tiesinis splainas<br />
Duoti taškai: (x 0 , y 0 ), ..., (x N , y N ).<br />
Intervalai: I 0 =[x 0 , x 1 ], ..., I N−1 =[x N−1 , x N ].<br />
Du gretimi taškai jungiami atkarpa.<br />
Tolydumo reikalavimas yra ekvivalentus splaino tolydumui<br />
(m = 1 ⇒ m − 1 = 0):<br />
<br />
<br />
<br />
S 1 i−1(x i )=S 1 i (x i )=y i , i = 1, ···N − 1.<br />
Jungiančios taškus atkarpos gaunamos iš interpoliavimo<br />
sąlygos:<br />
<br />
<br />
<br />
a i x i + b i = y i , i = 0, ··· , N − 1;<br />
a i x i+1 + b i = y i+1 .<br />
2N nežinomųjų a i , b i ;<br />
2N lygčių.<br />
MIF VU (MIF VU) Skaitiniai metodai 17/58<br />
MIF VU (MIF VU) Skaitiniai metodai 18/58
Tiesinis splainas<br />
Splainai<br />
Tiesinis splainas<br />
Pavyzdys:<br />
Splainai<br />
Tiesinis splainas<br />
Duoti taškai: (x 0 , y 0 ), ..., (x N , y N ).<br />
Intervalai: I 0 =[x 0 , x 1 ], ..., I N−1 =[x N−1 , x N ].<br />
⎧<br />
f (x 0 )+f (x 0 , x 1 )(x − x 0 ), x 0 x x 1 ;<br />
⎪⎨ f (x<br />
S 1 1 )+f (x 1 , x 2 )(x − x 1 ), x 1 x x 2 ;<br />
(x) =<br />
.<br />
.<br />
⎪⎩<br />
f (x N−1 )+f (x N−1 , x N )(x − x N−1 ), x N−1 x x N .<br />
Sutampa su dalimis tiesine interpoliacine funkcija.<br />
x i 0 2 5 6<br />
f (x i ) 4 −2 19 58<br />
f (x i , x i+1 ) −3 7 39<br />
S 0 = 4 − 3x 0 x 2;<br />
S 1 = −2 + 7(x − 2) 2 x 5;<br />
S 2 = 19 + 39(x − 5) 5 x 6.<br />
Tiesinis splainas sutampa su<br />
dalimis tiesine interpoliacine<br />
funkcija!<br />
MIF VU (MIF VU) Skaitiniai metodai 19/58<br />
MIF VU (MIF VU) Skaitiniai metodai 20/58<br />
Splainai<br />
Tiesinis splainas<br />
Kvadratinis splainas<br />
Splainai<br />
Kvadratinis splainas<br />
Tiesinio splaino trūkumas - nėra glodumo interpoliavimo<br />
mazguose (pirmoji išvestinė netolydi).<br />
Tolydžiosios išvestinės gaunamos taikant aukštesnės eilės splainus.<br />
Vidiniuose mazguose splainas yra tolydi funkcija :<br />
S i−1 (x i )=S i (x i ), i = 1, ··· , N − 1.<br />
Vidiniuose mazguose išvestinė tolydi:<br />
S (k)<br />
i−1 (x i)=S (k)<br />
i (x i ), i = 1, ··· , N − 1, k = 1, ··· , m − 1.<br />
Kvadratinis splainas - tolydi pirma išvestinė.<br />
Bet antra išvestinė gali būti netolydi.<br />
Kaip gauti formules<br />
Si 2 (x) =a i x 2 + b i x + c i ?<br />
N + 1 taškas (i = 0,...,N);<br />
N intervalų ⇒ 3N nežinomųjų koeficientų<br />
(a i , b i , c i ) i = 0,...,N − 1.<br />
Reikia 3N lygčių.<br />
MIF VU (MIF VU) Skaitiniai metodai 21/58<br />
MIF VU (MIF VU) Skaitiniai metodai 22/58<br />
Splainai<br />
Kvadratinis splainas<br />
Kvadratinis splainas: S 2 i (x) =a i x 2 + b i x + c i<br />
Kvadratinis splainas<br />
Splainai<br />
Kvadratinis splainas<br />
<br />
<br />
<br />
<br />
<br />
Duoti taškai: (x 0 , y 0 ), ..., (x N , y N ).<br />
Intervalai: I 0 =[x 0 , x 1 ], ..., I N−1 =[x N−1 , x N ].<br />
<br />
<br />
3N nežinomųjų koeficientų.<br />
1 Interpoliavimo ir tolydumo sąlygos<br />
2N lygčių:<br />
S i (x i )=y i , i = 0, 1, ..., N − 1<br />
S i (x i+1 )=y i+1 , i = 0, 1, ..., N − 1.<br />
2 Išvestinių tolydumo sąlygos (vidiniuose taškuose)<br />
N − 1 lygtis:<br />
S ′ i−1(x i )=S ′ i(x i ), i = 1, ..., N − 1.<br />
3 Papildoma sąlyga (duota išvestinė viename iš kraštinių taškų<br />
- e 0 = 0 natūralioji kraštinė sąlyga)<br />
1 lygtis<br />
2N +(N − 1) +1 = 3N ⇒ 3N lygčjų su 3N nežinomųjų.<br />
MIF VU (MIF VU) Skaitiniai metodai 23/58<br />
MIF VU (MIF VU) Skaitiniai metodai 24/58
Kvadratiniai splainai<br />
Splainai<br />
Kvadratinis splainas<br />
Kvadratinis splainas<br />
Splainai<br />
Kvadratinis splainas<br />
1 Interpoliavimo ir tolydumo sąlygos<br />
2N lygčių:<br />
a i xi 2 + b i x i + c i = y i , i = 0, 1, ..., N − 1<br />
a i xi+1 2 + b i x i+1 + c i = y i+1 , i = 0, 1, ..., N − 1.<br />
2 Išvestinių tolydumo sąlygos<br />
N − 1 lygtis:<br />
2a i−1 x i + b i−1 = 2a i x i + b i , i = 1, ..., N − 1.<br />
3 Papildoma sąlyga (duota išvestinė viename iš kraštinių taškų<br />
- e 0 = 0 natūralioji kraštinė sąlyga)<br />
2a 0 x 0 + b 0 = e 0 .<br />
⎛<br />
⎜<br />
⎝<br />
x0 2 x 0 1<br />
x1 2 x 1 1<br />
2x 0 1 0<br />
x1 2 x 1 1<br />
x2 2 x 2 1<br />
−2x 0 −1 0 2x 1 1 0<br />
⎞<br />
. . . . . . xN−1 2 x N−1 1<br />
⎟<br />
xN 2 xN 1<br />
⎠<br />
−2x N−2 −1 0 2x N−1 1 0<br />
⎛<br />
⎜<br />
⎝<br />
a 0<br />
b 0<br />
c 0<br />
a 1<br />
b 1<br />
c 1<br />
. ..<br />
. ..<br />
a N−1<br />
b N−1<br />
c N−1<br />
⎞ ⎛<br />
y 0<br />
y 1<br />
e 0<br />
y 1<br />
y 20 =<br />
. .. . ..<br />
⎟ ⎜ y<br />
⎠ ⎝ N−1<br />
yN<br />
0<br />
⎞<br />
⎟<br />
⎠<br />
MIF VU (MIF VU) Skaitiniai metodai 25/58<br />
MIF VU (MIF VU) Skaitiniai metodai 26/58<br />
Splainai<br />
Kvadratinis splainas<br />
Kvadratinis splainas - algoritmas<br />
Splainai<br />
Kvadratinis splainas<br />
Kvadratinis splainas. Pavyzdys<br />
1 e 0 duotas, sprendžiame<br />
⎛<br />
x 2 ⎞ ⎛ ⎞<br />
0<br />
x 0 1 a 0<br />
⎝ x1 2 x 1 1 ⎠ ⎝ b 0<br />
⎠ =<br />
2x 0 1 0 c 0<br />
2 e 1 = 2a 1 x 1 + b 1 iš suderinamumo sąlygu:<br />
⎛<br />
⎝<br />
⎞<br />
y 0<br />
y 1<br />
⎠<br />
e 0<br />
S ′ 0(x 1 ) = S ′ 1(x 1 ) ⇒ 2a 0 x 1 + b 0 = 2a 1 x 1 + b 1 = e 1 .<br />
<br />
Funkcijos f (x) =x 3 − 5x 2 + 3x + 4 aproksimavimas kvadratinių<br />
splainų, nauduojant taškus (0; 4), (2; −2), (5; 19), (6; 58).<br />
<br />
<br />
<br />
<br />
sprendžiame<br />
3 ir t.t.<br />
⎛<br />
x 2 ⎞ ⎛ ⎞<br />
1<br />
x 1 1 a 1<br />
⎝ x2 2 x 2 1 ⎠ ⎝ b 1<br />
⎠ =<br />
2x 1 1 0 c 1<br />
⎛<br />
⎝<br />
⎞<br />
y 1<br />
y 2<br />
⎠<br />
e 1<br />
<br />
<br />
<br />
<br />
<br />
<br />
MIF VU (MIF VU) Skaitiniai metodai 27/58<br />
MIF VU (MIF VU) Skaitiniai metodai 28/58<br />
Kubinis splainas<br />
Splainai<br />
Kubinis splainas<br />
Splainai<br />
Kubinis splainas<br />
Kubinis splainas: S 3 i (x) =a ix 3 + b i x 2 + c i x + d i<br />
S 3 i (x) =a i x 3 + b i x 2 + c i x + d i , x i x x i+1 .<br />
Duoti taškai: (x 0 , y 0 ), ..., (x N , y N ).<br />
Intervalai: I 0 =[x 0 , x 1 ], ..., I N−1 =[x N−1 , x N ].<br />
Kaip ir kvadratiniam splainui gaunama 4N koeficientų<br />
4N lygčių sistema.<br />
<br />
Vidiniuose mazguose tolydumas.<br />
Intervalo galai fiksuoti.<br />
Vidiniuose mazguose išvestinės tolydžios.<br />
Papildomos sąlygos antrosios eilės išvestinėms intervalo<br />
galuose.<br />
<br />
<br />
<br />
<br />
4N nežinomųjų koeficientų.<br />
<br />
<br />
MIF VU (MIF VU) Skaitiniai metodai 29/58<br />
MIF VU (MIF VU) Skaitiniai metodai 30/58
Kubinis splainas<br />
Splainai<br />
Kubinis splainas<br />
Splainai<br />
Kubinis splainas<br />
Kubiniai splainai: S 3 i (x) =a ix 3 + b i x 2 + c i x + d i<br />
1 Interpoliavimo ir tolydumo sąlygos<br />
2N lygčių:<br />
S i (x i )=y i , i = 0, 1, ..., N − 1<br />
S i (x i+1 )=y i+1 , i = 0, 1, ..., N − 1.<br />
2 Išvestinių tolydumo sąlygos<br />
2(N − 1) lygtis:<br />
<br />
Duoti taškai: (x 0 , y 0 ), ..., (x N , y N ).<br />
Intervalai: I 1 =[x 0 , x 1 ], ..., I N =[x N−1 , x N ].<br />
<br />
S i−1(x ′ i )=S i(x ′ i ), i = 1, ..., N − 1<br />
S i−1(x ′′<br />
i )=S ′′<br />
i (x i ), i = 1, ..., N − 1.<br />
3 Papildomos sąlygos (natūraliosios kraštinės sąlygos)<br />
2 lygtys<br />
S ′′<br />
0 (x 0 )=0, S N−1(x ′′ N )=0.<br />
MIF VU (MIF VU) Skaitiniai metodai 31/58<br />
<br />
<br />
S i (x) – gabalais kubinis daugianaris;<br />
S ′ i (x) - gabalais kvadratinis daugianaris;<br />
S ′′<br />
i (x)) - gabalais tiesinis daugianaris.<br />
Suvedama į N lygčių sistemą su N nežinomųjų.<br />
MIF VU (MIF VU) Skaitiniai metodai 32/58<br />
Kubiniai splainai<br />
Splainai<br />
Kubinis splainas<br />
Pažymėkime g i = S ′′<br />
i (x i), h i = x i+1 − x i, i = 1, ··· , N − 1.<br />
g 0 = S ′′<br />
0 (x 0)=0, g N = S N−1(x ′′<br />
N)=0.<br />
Tiesinis splainas: S ′′ gi+1 − gi<br />
i (x) =g i + (x − x i). (1)<br />
h i<br />
∫ x<br />
xi<br />
∫ x<br />
xi<br />
(1) : S ′ i (x) − S ′ gi+1 − gi<br />
i (x i)=g i(x − x i)+ (x − x i) 2<br />
2h i<br />
Pažymėkime e i = S ′ i (x i) S ′ gi+1 − gi<br />
i (x) =e i + g i(x − x i)+ (x − x i) 2 (2)<br />
2h i gi+1 + gi<br />
(2) ∣ :⇒ e i+1 = e i + h i. (3)<br />
x=xi+1 2<br />
(2) :<br />
Kubinis splainas<br />
(4) ∣ :⇒<br />
x=xi+1<br />
S i(x) =y i + e i(x − x i)+ gi<br />
2 (x − xi)2 gi+1 − gi<br />
+ (x − x i) 3 . (4)<br />
6h i<br />
⇒<br />
y i+1 = y i + e ih i + gi<br />
2 h2 i +<br />
e i =<br />
yi+1 − yi<br />
h i<br />
− gi+1<br />
6<br />
gi+1 − gi<br />
h 2 i . (5)<br />
6<br />
gi<br />
hi − hi. (6)<br />
3<br />
MIF VU (MIF VU) Skaitiniai metodai 33/58<br />
Kubiniai splainai<br />
Splainai<br />
Kubinis splainas<br />
e i+1 = e i + g i+1 + g i<br />
h i . (3)<br />
2<br />
e i = y i+1 − y i<br />
− g i+1<br />
h i 6 h i − g i<br />
3 h i. (6)<br />
(3) perrašykime i-ajame taške įstatant į ją (6) (i − 1)-ajame taške :<br />
e i = e i−1 + g i + g i−1<br />
h i−1 = y i − y i−1<br />
− g i<br />
2<br />
h i−1 6 h i−1 − g i−1<br />
3 h i−1 + g i + g i−1<br />
h i−1 .<br />
2<br />
(7) =(6) ⇒ y i − y i−1<br />
h i−1<br />
Triįstrižainė lygčių sistema<br />
⇒ e i = y i − y i−1<br />
h i−1<br />
+ g i<br />
3 h i−1 + g i−1<br />
6 h i−1. (7)<br />
+ g i<br />
3 h i−1 + g i−1<br />
6 h i−1 = y i+1 − y i<br />
h i<br />
− g i+1<br />
6 h i − g i<br />
3 h i.<br />
h i−1 g i−1 + 2(h i−1 + h i )g i + h i g i+1 = 6( y i+1 − y i<br />
h i<br />
g 0 = 0, g N = 0, i = 1, ..., N − 1.<br />
− y i − y i−1<br />
h i−1<br />
),<br />
MIF VU (MIF VU) Skaitiniai metodai 34/58<br />
Kubinis splainas<br />
Splainai<br />
Kubinis splainas<br />
Splainai<br />
Kubinis splainas<br />
Lygčiu sistema su triįstrižaine matrica<br />
Triįstrižainė lygčių sistema<br />
h i−1 g i−1 + 2(h i−1 + h i )g i + h i g i+1 = 6( y i+1 − y i<br />
h i<br />
g 0 = 0, g N = 0, i = 1, ..., N − 1.<br />
− y i − y i−1<br />
h i−1<br />
),<br />
arba<br />
Triįstrižainė lygčių sistema<br />
h i−1<br />
h i<br />
g i−1 + 2g i + g i+1 = 6f (y i−1 , y i , y i+1 ),<br />
h i−1 + h i h i−1 + h i<br />
g 0 = 0, g N = 0, i = 1, ..., N − 1.<br />
⎛<br />
⎜<br />
⎝<br />
1 0<br />
h1<br />
2<br />
h0+h1<br />
. .. . .. . ..<br />
h0<br />
h0+h1<br />
hi−1<br />
hi−1+hi<br />
hi<br />
2<br />
hi−1+hi<br />
. .. . .. . ..<br />
⎛<br />
=<br />
⎜<br />
⎝<br />
hN−2<br />
hN−2+hN−1<br />
0<br />
f (y 0 , y 1 , y 2 )<br />
.<br />
f (y i−1 , y i , y i+1 )<br />
.<br />
f (y N−2 , y N−1 , y N )<br />
0<br />
2<br />
0 1<br />
⎞<br />
⎟<br />
⎠<br />
hN−1<br />
hN−2+hN−1<br />
⎞ ⎛<br />
g 0<br />
g 1<br />
. .<br />
g i<br />
⎟ ⎜ .<br />
⎠ ⎝ g N−1<br />
g N<br />
⎞<br />
⎟<br />
⎠<br />
MIF VU (MIF VU) Skaitiniai metodai 35/58<br />
MIF VU (MIF VU) Skaitiniai metodai 36/58
Kubinio splaino lygtis:<br />
Splainai<br />
Kubinis splainas<br />
Splainai<br />
Kubinio splaino paklaida<br />
Kubinis splainas<br />
S 3 i (x) =y i + e i (x − x i )+G i (x − x i ) 2 + H i (x − x i ) 3 , i = 0, 1, ..., N − 1.<br />
e i = y i+1 − y i h i<br />
− g i+1<br />
h i 6 − g i<br />
G i = g i<br />
2 ,<br />
H i = g i+1 − g i<br />
.<br />
6h i<br />
h i<br />
3 ,<br />
Teorema<br />
Jei funkcija y(x) ∈ C 4 [a, b], tai kubinio splaino S 3 (x) paklaida ir jo<br />
išvestinių S 3′ (x), S 3′′ (x) paklaida įvertinama nelygybe:<br />
|y (k) (x) − S 3(k) (x)| M 4 h 2−k( h 2 + max(|y ′′ (a) − S 3′′ (a)|, |y ′′ (b) − S ′′ (b)|) ) ,<br />
k = 0, 1, 2.<br />
Kai y ′′ (a) =S 3′′ (a), y ′′ (b) =S 3′′ (b)<br />
|y (k) (x) − S 3(k) (x)| M 4 h 4−k , k = 0, 1, 2.<br />
Kai y ′′ (a) ≠ S 3′′ (a), y ′′ (b) ≠ S 3′′ (b), pvz., natūraliosios kraštinės<br />
sąlygos<br />
|y (k) (x) − S (k) (x)| M 4 h 2−k , k = 0, 1, 2.<br />
MIF VU (MIF VU) Skaitiniai metodai 37/58<br />
MIF VU (MIF VU) Skaitiniai metodai 38/58<br />
Splainai<br />
Kubinis splainas: 1 pavyzdys<br />
Duoti taškai:<br />
Kubinis splainas<br />
x i 0 1 2 3<br />
y i 0 0, 5 2 1, 5<br />
S 3′′ (0) =S 3′′ (3) =0 (natūralusis splainas)<br />
Splainai<br />
Kubinis splainas: 1 pavyzdys<br />
Triįstrižainė lygčių sistema<br />
Kubinis splainas<br />
h i−1 g i−1 + 2(h i−1 + h i )g i + h i g i+1 = 6( y i+1 − y i<br />
h i<br />
i = 1, ..., N − 1.<br />
g 0 = 0, g N = 0.<br />
− y i − y i−1<br />
h i−1<br />
),<br />
h 0 = x 1 − x 0 = 1 − 0 = 1 f (x 0 , x 1 )= y 1 − y 0<br />
= 0, 5 − 0 = 0, 5<br />
h 0 1<br />
h 1 = 2 − 1 = 1 f (x 1 , x 2 )= y 2 − y 1<br />
= 2 − 0, 5 = 1, 5<br />
h 1 1<br />
h 2 = 3 − 2 = 1 f (x 2 , x 3 )= y 3 − y 2<br />
= 1, 5 − 2 = −0, 5.<br />
h 2 1<br />
g 0 = 0, g 3 = 0.<br />
h i = 1, i = 0, 1, 2.<br />
i = 1 : g 0 + 4g 1 + g 2 = 6(1, 5 − 0, 5);<br />
i = 2 : g 1 + 4g 2 + g 3 = 6(−0, 5 − 1, 5).<br />
⇒<br />
{<br />
⇒<br />
g 1 = 2, 4;<br />
g 2 = −3, 6 .<br />
{ 4g1 + g 2 = 6;<br />
g 1 + 4g 2 = −12.<br />
MIF VU (MIF VU) Skaitiniai metodai 39/58<br />
MIF VU (MIF VU) Skaitiniai metodai 40/58<br />
Splainai<br />
Kubinis splainas: 1 pavyzdys<br />
Kubinis splainas<br />
Splainai<br />
Kubinis splainas: 1 pavyzdys<br />
Kubinis splainas<br />
Si 3 (x) =y i + e i (x − x i )+G i (x − x i ) 2 + H i (x − x i ) 3 , i = 0, ..., N − 1.<br />
e i = y i+1 − y i h i<br />
− g i+1<br />
h i 6 − g h i<br />
i<br />
3 , G i = g i<br />
2 , H i = g i+1 − g i<br />
.<br />
6h i<br />
⎧<br />
⎨0, 1x + 0, 4x 3 , 0 x 1;<br />
S 3 (x) = 0, 5 + 1, 3(x − 1)+1, 2(x − 1) 2 − (x − 1) 3 , 1 x 2;<br />
⎩<br />
2 + 0, 7(x − 2) − 1, 8(x − 2) 2 + 0, 6(x − 2) 3 , 2 x 3.<br />
g 0 = 0; g 1 = 2, 4; g 2 = −3, 6; g 3 = 0.<br />
Splaino koeficientai:<br />
i = 0 : e 0 = 0, 5 − 2, 4/6 − 0 = 0, 1; G 0 = 0; H 0 = 2, 4/6 = 0, 4.<br />
⇒ S 3 0 (x) =0, 1x + 0, 4x3 , 0 x 1;<br />
i = 1 : e 1 = 1, 5 + 3, 6/6 − 2, 4/3 = 1, 3; G 1 = 1, 2; H 1 = −1.<br />
⇒ S 3 1 (x) =0, 5 + 1, 3(x − 1)+1, 2(x − 1)2 − (x − 1) 3 , 1 x 2;<br />
i = 2 : e 2 = −0, 5 + 1, 2 = 0, 7; G 2 = −1, 8; H 2 = 0, 6.<br />
⇒ S 3 2 (x) =2 + 0, 7(x − 2) − 1, 8(x − 2)2 + 0, 6(x − 2) 3 , 2 x 3.<br />
MIF VU (MIF VU) Skaitiniai metodai 41/58<br />
MIF VU (MIF VU) Skaitiniai metodai 42/58
Splainai<br />
Kubinis splainas: 2 pavyzdys<br />
Duoti taškai:<br />
Raskite f (4).<br />
Kubinis splainas<br />
x i 0 2 5 6<br />
y i 4 −2 19 58<br />
Tikslus sprendinys: f (x) =x 3 − 5x 2 + 3x + 4, f (4) =0.<br />
S 3′′ (0) =S 3′′ (3) =0 (natūralusis splainas)<br />
h 0 = 2 − 0 = 2 f (x 0 , x 1 )= y 1 − y 0<br />
= −2 − 4 = −3<br />
h 0 2<br />
h 1 = 5 − 2 = 3 f (x 1 , x 2 )= y 2 − y 1<br />
= 19 + 2 = 7<br />
h 1 3<br />
h 2 = 6 − 5 = 1 f (x 2 , x 3 )= y 3 − y 2<br />
h 2<br />
=<br />
58 − 19<br />
1<br />
= 39.<br />
MIF VU (MIF VU) Skaitiniai metodai 43/58<br />
Splainai<br />
Kubinis splainas: 2 pavyzdys<br />
Kubinis splainas<br />
Triįstrižainė lygčių sistema<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Naturaliosios kraštinės sąlygos: g 0 = 0, g 3 = 0.<br />
( )( ) ( ) ( ) ( )<br />
10 3 g1 60 g1 −1, 35211<br />
= ⇒ =<br />
.<br />
3 8 g 2 192 g 2 24, 50704<br />
MIF VU (MIF VU) Skaitiniai metodai 44/58<br />
Splainai<br />
Kubinis splainas: 2 pavyzdys<br />
Kubinis splainas<br />
Splainai<br />
Kubinis splainas: 2 pavyzdys<br />
Kubinis splainas<br />
Si 3 (x) =y i + e i (x − x i )+G i (x − x i ) 2 + H i (x − x i ) 3 , i = 0, ..., N − 1.<br />
e i = y i+1 − y i h i<br />
− g i+1<br />
h i 6 − g h i<br />
i<br />
3 , G i = g i<br />
2 , H i = g i+1 − g i<br />
.<br />
6h i<br />
Tikslus sprendinys: f (x) =x 3 − 5x 2 + 3x + 4, f (4) =0.<br />
g 0 = 0; g 1 = −1, 35211; g 2 = 24, 50704; g 3 = 0.<br />
Splaino koeficientai:<br />
i = 0 : e 0 = 2, 549296; G 0 = 0; H 0 = −0, 112676.<br />
S 3 0(x) =4 − 2, 549296x − 0, 112676x 3 , 0 x 2;<br />
i = 1 : e 1 = −3, 901408; G 1 = −0, 676056; H 1 = 1, 4366197.<br />
S 3 1(x) =−2 − 3, 901408(x − 2) − 0, 676056(x − 2) 2 + 1, 4366197(x − 2) 3 , 2 x 5;<br />
i = 2 : e 2 = 30, 830986; G 2 = 12, 253521; H 2 = −4, 0845070.<br />
S 3 2(x) =19 + 30, 830986(x − 5)+12, 253521(x − 5) 2 − 4, 0845070(x − 5) 3 , 5 x 6.<br />
MIF VU (MIF VU) Skaitiniai metodai 45/58<br />
MIF VU (MIF VU) Skaitiniai metodai 46/58<br />
Splainai<br />
Kubinis splainas<br />
2 pavyzdys : rezultatų analizė<br />
Splainai<br />
Kubinis splainas<br />
2 pavyzdys : rezultatų analizė<br />
Tikslus sprendinys: f (x) =x 3 − 5x 2 + 3x + 4, f (4) =0.<br />
Kubinis splainas f (4) =S2 3 (4) =−1, 0141.<br />
Tikslus sprendinys yra kubinė funkcija.<br />
Kodėl kubinis splainas nesutampa su tiksliu sprendiniu?<br />
Dėl skirtingų kraštinių sąlygų!<br />
Bendruoju atveju f ′′ (x 0 ) ≠ 0 ir f ′′ (x N ) ≠ 0.<br />
Tikslus sprendinys: f (x) =x 3 − 5x 2 + 3x + 4, f (4) =0.<br />
Kubinis splainas f (4) =S2 3 (4) =−1, 0141.<br />
Tikslus sprendinys yra kubinė funkcija.<br />
Kodėl kubinis splainas nesutampa su tiksliu sprendiniu?<br />
Dėl skirtingų kraštinių sąlygų!<br />
Bendruoju atveju f ′′ (x 0 ) ≠ 0 ir f ′′ (x N ) ≠ 0.<br />
MIF VU (MIF VU) Skaitiniai metodai 47/58<br />
MIF VU (MIF VU) Skaitiniai metodai 47/58
Splainai<br />
Kraštinės sąlygos<br />
Kubinio splaino kraštinės sąlygos<br />
Natūralusis: Antra išvestinė lygi nuliui intervalo galuose.<br />
Clamped(suvaržytas): nurodytos pirmos išvestinės intervalo<br />
galuose.<br />
Not-a-Knot(nesurištas): Tolydi trečia išvestinė taškuose x 1 ir<br />
x N−1 .<br />
Splainai<br />
Kraštinės sąlygos<br />
Kubinio splaino kraštinės sąlygos<br />
Natūralusis: Antra išvestinė lygi nuliui intervalo galuose.<br />
Clamped(suvaržytas): nurodytos pirmos išvestinės intervalo<br />
galuose.<br />
Not-a-Knot(nesurištas): Tolydi trečia išvestinė taškuose x 1 ir<br />
x N−1 .<br />
MIF VU (MIF VU) Skaitiniai metodai 48/58<br />
MIF VU (MIF VU) Skaitiniai metodai 49/58<br />
Splainai<br />
Kraštinės sąlygos<br />
Rungės funkcijos ir not-a-knot splaino palyginimas<br />
Rungės funkcija (raudonas punktyras)<br />
9-taškų not-a-knot splainas (žalia)<br />
Splainai<br />
Kraštinės sąlygos<br />
Rungės funkcijos ir suvaržyto (Clamped End)<br />
splaino palyginimas<br />
Rungės funkcija (raudonas punktyras)<br />
9-taškų suvaržytas (Clamped End) splainas (žalia)<br />
Tolydžiosios treciosios išvestinės taškuose x 1 ir x N−1 .<br />
MIF VU (MIF VU) Skaitiniai metodai 50/58<br />
Kraštiniuose taškuose užduotos pirmųjų išvestinių reikšmės:<br />
f ′ (−1) =1 ir f ′ (1) =−4.<br />
MIF VU (MIF VU) Skaitiniai metodai 51/58<br />
Splainų taikymai<br />
Parametrinis interpoliavimas splainais<br />
Duoti taškai (x i , y i ).<br />
Taškų parametrizacija (t i , x i ), (t i , y i ), t i = 0, 1, ··· , N;<br />
Kubiniai splainai<br />
x = S 3 x(t), y = S 3 y(t);<br />
Braižomas grafikas y = f (x).<br />
x =[0242420 − 2 − 4 − 2 − 4 − 20],<br />
y =[5331 − 1 − 1 − 3 − 1 − 11335], t = 0, ··· , 12.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Matlab funkcijos:<br />
spline(kubinis splainas);<br />
pchip(dalimis kubinis Hermito<br />
interpoliavimas), išlaiko<br />
duomenų monotoniškumą ir<br />
formą.<br />
Splainų taikymai<br />
Interpoliavimo metodu palyginimas I<br />
Pavyzdys: dvimatis interpoliavimas (7x7 duomenu matrica)<br />
Retas tinklas: [x,y] = meshgrid(-3:1:3);<br />
z = peaks(x,y);<br />
surf(x,y,z)<br />
<br />
<br />
MIF VU (MIF VU) Skaitiniai metodai 52/58<br />
MIF VU (MIF VU) Skaitiniai metodai 53/58
Splainų taikymai<br />
Interpoliavimo metodu palyginimas II<br />
1 Generuojamas smulkus tinklas:<br />
[xi,yi] = meshgrid(-3:0.25:3);<br />
2 Interpoliavimas - nearest neighbor:<br />
zi1 = interp2(x,y,z,xi,yi,’nearest’);<br />
3 Interpoliavimas – bilinear:<br />
zi2 = interp2(x,y,z,xi,yi,’bilinear’);<br />
4 Interpoliavimas - bicubic:<br />
zi3 = interp2(x,y,z,xi,yi,’bicubic’);<br />
Splainų taikymai<br />
Dvimatis interpoliavimas netolygiajame tinkle<br />
x=rand(1,100);<br />
y=rand(1,100);<br />
z=sin(10*x).*exp(-2*y);<br />
plot3(x, y, z, ’o’)<br />
hold on<br />
[X, Y] = meshgrid(min(x):0.02:max(x), min(y):0.02:max(y)) %<br />
interpoliavimo tinklas<br />
Z = griddata(x, y, z, X, Y, ’cubic’);<br />
% galima ’linear’, ’cubic’, ’nearest’ mesh(X, Y, Z)<br />
MIF VU (MIF VU) Skaitiniai metodai 54/58<br />
MIF VU (MIF VU) Skaitiniai metodai 55/58<br />
Splainų taikymai<br />
Daugiamačių duomenų interpoliavimas<br />
Splainų taikymai<br />
Pavyzdys taikant MATLAB: Basic Fitting 1<br />
Pavyzdys - MATLAB<br />
[X, Y, Z, U] =flow(5);<br />
[XX, YY, ZZ] =meshgrid(.1 : .25 : 10, −3 : .25 : 3, −3 : .25 : 3);<br />
UU = interp3(X, Y, Z, U, XX, YY, ZZ);<br />
slice (XX, YY, ZZ, UU, [69.5], 2, [−20.2]);<br />
colormap hot<br />
shading interp<br />
X=[2,4,6,8,10,12,14];<br />
Y=[3.76,4.4,5.1,5.5,6.6,6.3,6.7];<br />
plot(X,Y,’o’);<br />
MIF VU (MIF VU) Skaitiniai metodai 56/58<br />
MIF VU (MIF VU) Skaitiniai metodai 57/58<br />
Splainų taikymai<br />
Pavyzdys taikant MATLAB: Basic Fitting 2<br />
MIF VU (MIF VU) Skaitiniai metodai 58/58