interpolace pomoc splajnuhlavicka/vyuka/bma3_predn/...interpolace pomoc splajnu m a-li f spojitou...
TRANSCRIPT
Interpolace pomocı splajnu
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)
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
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.
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.
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.
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))
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.
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.
Aproximace funkcı – metoda nejmensıch ctvercu(MNC)
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
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
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
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ı.
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.
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
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.
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 )
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.
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ı.
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.
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.
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.
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!