13.11.2014 Views

4paskaita6

4paskaita6

4paskaita6

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!