interpolace pomoc splajnuhlavicka/vyuka/bma3_predn/...interpolace pomoc splajnu m a-li f spojitou...

24
Interpolace pomoc´ ı splajnu

Upload: others

Post on 25-Oct-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Interpolace pomocı splajnu

Page 2: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Interpolace pomocı splajnu

Pripomenutı

U interpolace pozadujeme, aby graf aproximujıcı funkce prochazelvsemi uzlovymi body.

I Interpolacnı polynom – aproximujıcı funkce je polynom

I Spline (splajn) – aproximujıcı funkce je po castech polynom

y=Pn(x)

...

y=S0(x)

y=Sn−1

(x)

y=S1(x)

Page 3: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Interpolace pomocı splajnu

Splajn k-teho radu

Splajn k-teho radu je funkce S , pro kterou platı:

I

S(x) =

S0(x) pro x ∈ 〈x0, x1)

S1(x) pro x ∈ 〈x1, x2)...

Sn−1(x) pro x ∈ 〈xn−1, xn)

I na kazdem intervalu 〈xi , xi+1) je Si polynom stupne nanejvysk

I S ma na intervalu 〈x0, xn〉 spojite derivace az do radu k − 1vcetne

Page 4: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Interpolace pomocı splajnu

Linearnı splajn

Kazde dva sousednı body [xi , fi ], [xi+1, fi+1] propojıme useckou.

Si (x) = fi +fi+1 − fixi+1 − xi

· (x − xi ), i = 0, . . . , n − 1.

Page 5: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Interpolace pomocı splajnu

Ma-li f spojitou derivaci druheho radu na intervalu 〈x0, xn〉, pakexistuje konstanta C takova, ze pro x ∈ 〈x0, xn〉 platı

|f (x)− S(x)| < C · h2,

kde h je maximalnı vzdalenost mezi sousednımi uzly.

Chybu lze ucinit pro dostatecny pocet uzlu libovolne malou.

Page 6: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Interpolace pomocı splajnu

Nejpouzıvanejsı je splajn 3. radu, tzv. kubicky splajn.

Kubicky splajn

Kubicky splajn je funkce S(x), ktera je kubicky polynom nakazdem subintervalu 〈xi , xi+1):

Si (x) = ai + bi (x − xi ) + ci (x − xi )2 + di (x − xi )

3, x ∈ 〈xi , xi+1)

a vyhovuje podmınkam

Si (xi ) = f (xi ), i = 0, . . . , n − 1, Sn−1(xn) = f (xn)

Si (xi+1) = Si+1(xi+1), i = 0, . . . , n − 2

S ′i (xi+1) = S ′i+1(xi+1), i = 0, . . . , n − 2

S ′′i (xi+1) = S ′′i+1(xi+1), i = 0, . . . , n − 2.

Page 7: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Interpolace pomocı splajnu

Abychom mohli kubicky splajn jednoznacne urcit, predepisujemejeste okrajove podmınky.Pouzıvane typy okrajovych podmınek:

a) S ′′(x0) = S ′′(xn) = 0b) S ′′(x0) = f ′′0 , S ′′(xn) = f ′′nc) S ′(x0) = f ′0 , S ′(xn) = f ′nd) podmınky typu

”not-a-knot“ (S1 je tentyz kubicky polynom

jako S0 a Sn−2 je tentyz kubicky polynom jako Sn−1 tj.S ′′′0 (x1) = S ′′′1 (x1) a S ′′′n−2(xn−1) = S ′′′n−1(xn−1))

Page 8: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Interpolace pomocı splajnu

Postup pro nalezenı kubickeho splajnu1. zpusob – vhodne pro okrajove podmınky typu a) a b):

Koeficienty ci , i = 0, . . . , n najdeme jako resenı soustavy

c0 =f ′′02

h0c0 + 2(h0 + h1)c1 + h1c2 = 3(

∆f1h1

− ∆f0h0

)h1c1 + 2(h1 + h2)c2 + h2c3 = 3

(∆f2h2

− ∆f1h1

). . .

.

.

.

hn−2cn−2 + 2(hn−2 + hn−1)cn−1 + hn−1cn = 3

(∆fn−1hn−1

−∆fn−2hn−2

)cn =

f ′′n2

hi = xi+1 − xi , ∆fi = fi+1 − fi .Ostatnı koeficienty splajnu dopocıtame podle vzorcu:

ai = fi , i = 0, . . . , n − 1,

bi =∆fihi− ci+1 + 2ci

3hi , i = 0, . . . , n − 1,

di =ci+1 − ci

3hi, i = 0, . . . , n − 1.

Page 9: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Interpolace pomocı splajnu

2. zpusob – vhodne pro okrajove podmınky typu c):

Vyresıme soustavu pro koeficienty bi , i = 0, . . . , n:

b0 = f ′0

h1b0 + 2(h0 + h1)b1 + h0b2 = 3(h1

∆f0h0

+ h0∆f1h1

)h2b1 + 2(h1 + h2)b2 + h1b3 = 3

(h2

∆f1h1

+ h1∆f2h2

). . .

.

.

.

hn−1bn−2 + 2(hn−2 + hn−1)bn−1 + hn−2bn = 3

(hn−1

∆fn−2hn−2

+ hn−2∆fn−1hn−1

)bn = f ′n

hi = xi+1 − xi , ∆fi = fi+1 − fi .Ostatnı koeficienty splajnu dopocıtame podle vzorcu:

ai = fi , i = 0, . . . , n − 1,

ci =1

hi

(3

∆fihi− 2bi − bi+1

), i = 0, . . . , n − 1,

di =1

h2i

(bi + bi+1 − 2

∆fihi

), i = 0, . . . , n − 1.

Page 10: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu(MNC)

Page 11: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

I Mame body [xi , yi ], i = 0, . . . , n, obvykle zıskane merenım.I Zname typ funkcnı zavislosti mezi x a y , napr. y = c0 + c1x ,

obecne

y = Pm(x) = c0ϕ0(x) + · · ·+ cmϕm(x),

ϕj , j = 1, . . . ,m, jsou zname funkce.I Hledame hodnoty parametru c0, . . . , cm, pro ktere je

aproximace”nejlepsı“.

x0

x1

xn

y0

y1

yn

x

y

x0

x1

xn

y0

y1

yn

x

y

Page 12: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Volıme ty hodnoty koeficientu c0, . . . , cm, pro ktere je kvadratickaodchylka

ρ2(c0, . . . cm) =n∑

i=0

(yi − Pm(xi ))2 =n∑

i=0

(yi−c0ϕ0(xi )−· · ·−cmϕm(xi ))2

minimalnı.

...........n10 xxx

10 x+cy=c

n

1

0

e

e

e

...........n10 xxx

10 x+cy=c

Page 13: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Aproximace prımkou

Mame body [xi , yi ], i = 0, . . . , n.Hledame prımku

y = P1(x) = c0 + c1x ,

pro kterou je ρ2(c0, c1) =n∑

i=0

(yi − c0 − c1xi )2 minimalnı.

Normalnı rovnice pro koeficienty prımky

Koeficienty c0 a c1 najdeme jako resenı soustavy rovnic

c0

pocet bodu︷ ︸︸ ︷(n + 1) + c1

n∑i=0

xi =n∑

i=0

yi

c0

n∑i=0

xi + c1

n∑i=0

x2i =

n∑i=0

xiyi

Page 14: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Jsou-li vektory (1, 1, . . . , 1)︸ ︷︷ ︸(n+1)−krat

a (x0, x1, . . . , xn) linearne nezavisle,

normalnı soustava rovnic ma jedine resenı.

Page 15: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Jina moznost zapisu soustavy normalnıch rovnic pro prımku

ZTZc = ZTy,

kde

Z =

1 x0

1 x1...

...1 xn

, c =

(c0

c1

), y =

y0

y1...yn

.

Odtud pak

c =(ZTZ

)−1ZTy.

Page 16: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Aproximace parabolouMame body [xi , yi ], i = 0, . . . , n.Hledame parabolu

y = P2(x) = c0 + c1x + c2x2.

Normalnı rovnice pro koeficienty paraboly

Koeficienty c0, c1 a c2 najdeme jako resenı soustavy rovnic

c0

pocet bodu︷ ︸︸ ︷(n + 1) + c1

n∑i=0

xi + c2

n∑i=0

x2i =

n∑i=0

yi

c0

n∑i=0

xi + c1

n∑i=0

x2i + c2

n∑i=0

x3i =

n∑i=0

xiyi

c0

n∑i=0

x2i + c1

n∑i=0

x3i + c2

n∑i=0

x4i =

n∑i=0

x2i yi

Page 17: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Jina moznost zapisu soustavy normalnıch rovnic pro parabolu

ZTZc = ZTy,

kde

Z =

1 x0 x2

0

1 x1 x21

......

...1 xn x2

n

, c =

c0

c1

c2

, y =

y0

y1...yn

.

Odtud pak

c =(ZTZ

)−1ZTy.

Page 18: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Aproximace obecne

Mame body [xi , yi ], i = 0, . . . , n.Hledame funkci

y = Pm(x) = c0ϕ0(x) + c1ϕ1(x) + · · ·+ cmϕm(x),

ϕ0, . . . , ϕm jsou zname funkce.

Normalnı rovniceKoeficienty c0, c1, . . . , cm najdeme jako resenı soustavy rovnic

c0

n∑i=0

ϕ20(xi ) + c1

n∑i=0

ϕ1(xi )ϕ0(xi ) + · · · + cm

n∑i=0

ϕm(xi )ϕ0(xi ) =n∑

i=0

yiϕ0(xi )

c0

n∑i=0

ϕ0(xi )ϕ1(xi ) + c1

n∑i=0

ϕ21(xi ) + · · · + cm

n∑i=0

ϕm(xi )ϕ1(xi ) =n∑

i=0

yiϕ1(xi )

. . ....

c0

n∑i=0

ϕ0(xi )ϕm(xi ) + c1

n∑i=0

ϕ1(xi )ϕm(xi ) + · · · + cm

n∑i=0

ϕ2m(xi ) =

n∑i=0

yiϕm(xi )

Page 19: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Jina moznost zapisu soustavy normalnıch rovnic

ZTZc = ZTy,

kde

Z =

ϕ0(x0) ϕ1(x0) · · · ϕm(x0)ϕ0(x1) ϕ1(x1) · · · ϕm(x1)

......

...ϕ0(xn) ϕ1(xn) · · · ϕm(xn)

, c =

c0...cm

, y =

y0

y1...yn

.

Odtud pak

c =(ZTZ

)−1ZTy.

Page 20: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Jsou-li vektory

ϕ0 = (ϕ0(x0), ϕ0(x1), . . . , ϕ0(xn)),

ϕ1 = (ϕ1(x0), ϕ1(x1), . . . , ϕ1(xn)),...

ϕm = (ϕm(x0), ϕm(x1), . . . , ϕm(xn))

linearne nezavisle, normalnı soustava rovnic ma jedine resenı.

Matice soustavy ZTZ je v tomto prıpade symetricka pozitivnedefinitnı.

Page 21: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

MNC – nelinearnı model

Nelinearnı model muze byt napr.

I y = aebx , hledame a a b,

I y = a sin(kx + b) + c , hledame a, k, b, c ,

I y = ab+cx , hledame a, b, c.

Obecne y = f (x , c0, . . . , cm), hledame c0, . . . , cm tak, aby

ρ2(c0, . . . , cm) =m∑i=0

(yi − f (xi , c0, . . . , cm))2

bylo minimalnı.

V nekterych prıpadech lze model linearizovat.

Obecne hledame minimum funkce vıce promennych – na to existujıspecialnı metody. Casto se pouzıva Levenberg-Marquardtuvalgoritmus.

Page 22: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Aproximace exponencialou

Mame body [xi , yi ], i = 0, . . . , n.Hledame exponencialnı funkci

y = aebx .

Zlogaritmujeme:ln y = ln a + bx

a dal postupujeme jako pri hledanı prımky.

Page 23: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Postup pri hledanı exponencialy

Oznacımec0 = ln a, c1 = b.

Koeficienty c0 a c1 najdeme jako resenı soustavy

c0

pocet bodu︷ ︸︸ ︷(n + 1) + c1

n∑i=0

xi =n∑

i=0

ln yi

c0

n∑i=0

xi + c1

n∑i=0

x2i =

n∑i=0

xi ln yi .

Koeficienty exponencialy jsou pak

a = ec0 , b = c1.

Page 24: Interpolace pomoc splajnuhlavicka/vyuka/BMA3_predn/...Interpolace pomoc splajnu M a-li f spojitou derivaci druh eho r adu na intervalu hx 0;x ni, pak existuje konstanta C takov a,

Aproximace funkcı – metoda nejmensıch ctvercu (MNC)

Pro takto nalezene a, b vsak

ρ2(a, b) =n∑

i=0

(yi − aebxi

)2

nemusı nabyvat nejmensı mozne hodnoty!