Сплајн интерполација

Извор: testwiki
Пређи на навигацију Пређи на претрагу

У математичкој области нумеричке анализе, сплајн интерполација је врста интерполације где је интерполент специјалан полином познат као сплајн. Сплајн интерполација се чешће користи од полиномијалне интерполације јер је њена грешка често доста мања, чак и са малим степенима сплајн полинома. Сплајн интерполација заобилази проблем Рунгеовог феномена, у коме се јављају осцилације између тачака када се интерполира полиномом високог степена.

Увод

Сплајн је раније био еластични лењир направљен да се савија и прође између различитих фиксираних тачака. Користили су се за техничке цртеже, углавном у бродоградњи, када се цртало руком.

Figure 1: Интерполација кубним сплајном између осам тачака

Математички модел еластичног лењира фиксираног између n+1 чворова (xi,yi)i=0,1,,n је интерполација између свака два пара чворова (xi1 , yi1) и (xi , yi) са полиномима y=qi(x),i=1,2,,n.

Кривина криве

y=f(x)

је

κ=y(1+y'2)3/2

Пошто сплајн тежи да минимизује кривину, y и y ће бити непрекидне свуда, па и у самим чворовима. Да би ово било постигнуто, мора

q'i(xi)=q'i+1(xi)

и да

q'i(xi)=q'i+1(xi)

за све i, 1in1. Ово се може постићи само ако се користе полиноми степена 3 или већи. Углавном се користи степен 3, то јест кубни сплајн.

Алгоритам за налажење кубног сплајна

Полином трећег степена q(x) за који важи

q(x1)=y1
q(x2)=y2
q(x1)=k1
q(x2)=k2

може се написати као

  1. Шаблон:NumBlk

где Шаблон:NumBlk и

  1. Шаблон:NumBlk
  2. Шаблон:NumBlk

Како је q=dqdx=dqdt dtdx=dqdt 1x2x1 добијамо:

  1. Шаблон:NumBlk
  2. Шаблон:NumBlk

Постављањем Шаблон:Math и Шаблон:Math у једначинама (5) и (6) добијамо (2) што јесу први изводи Шаблон:Math и Шаблон:Math као и други изводи

  1. Шаблон:NumBlk
  2. Шаблон:NumBlk

Ако сада Шаблон:Math где Шаблон:Math = 0, 1, ... , n are n+1 тачке и

  1. Шаблон:NumBlk

где i = 1, 2, ..., n и t=xxi1xixi1 are n полиноми трећег степена интерполирају Шаблон:Math у интервалу Шаблон:Math за i = 1,... , n тако да Шаблон:Math за i = 1, ... , n-1 онда n полинома заједно дефинише диференцијабилну функцију на интервалу Шаблон:Math и

  1. Шаблон:NumBlk
  2. Шаблон:NumBlk

за i = 1, ..., n где

  1. Шаблон:NumBlk
  2. Шаблон:NumBlk
  3. Шаблон:NumBlk

Ако је низ Шаблон:Math такав да додавањем Шаблон:Math за i = 1, ..., n-1 резултујућа функција ће имати и непрекидан други извод.

Из (7), (8), (10) and (11) следи да је ово случак ако и само ако

  1. Шаблон:NumBlk

за i = 1, ..., n-1. Релације (15) су n-1 линеарне једначине за n+1 вредност Шаблон:Math.

За еластичне лењире треба да важи да лево од најлевљег и десно од најдешњег чвора лењир треба да се слободно креће и заууеће облик праве линије са Шаблон:Math. Како Шаблон:Math треба да је непрекидна функција по Шаблон:Math за „природне сплајнове“ и поред n-1 линеарних једначина (15) треба да важи

q'1(x0) =2 3(y1y0)(k1+2k0)(x1x0)(x1x0)2=0,
q'n(xn) =2 3(ynyn1)(2kn+kn1)(xnxn1)(xnxn1)2=0,

то јест да

  1. Шаблон:NumBlk
  2. Шаблон:NumBlk

Дакле, (15) заједно са (16) и (17) дају n+1 линеарних једначина које једнозначно одређују n+1 параметара Шаблон:Math.

Пример

Figure 2: Интерполација са „природним“ кубним сплајном са три чвора.

У случају три чвора, вредности за k0,k1,k2 се добијају решавањем система

[a11a120a21a22a230a32a33][k0k1k2]=[b1b2b3]

са

a11=2x1x0
a12=1x1x0
a21=1x1x0
a22=2 (1x1x0+1x2x1)
a23=1x2x1
a32=1x2x1
a33=2x2x1
b1=3 y1y0(x1x0)2
b2=3 (y1y0(x1x0)2+y2y1(x2x1)2)
b3=3 y2y1(x2x1)2

За три чвора

(1,0.5) , (0,0) , (3,3)

добија се

k0=0.6875 , k1=0.1250 , k2=1.5625

а из (10) и (11) добија се

a1=k0(x1x0)(y1y0)=0.1875
b1=k1(x1x0)+(y1y0)=0.3750
a2=k1(x2x1)(y2y1)=3.3750
b2=k2(x2x1)+(y2y1)=1.6875

Шаблон:Нормативна контрола