You are on page 1of 13

3.

FITIRANJE KRIVULJA

3.1 LINEARNE I POLINOMNE REGRESIJE

3.1.1 PROBLEM
Mjerenjem ili na neki drugi nain doli smo do veze izmeu dvije varijable u vidu niza pridruenih
parova vrijednosti:
( xi , yi ) , i = 1,2,, n .
Kada nacrtamo te toke one izgledaju ovako:

Znamo da je ratrkanost toaka posljedica nedovoljne tonosti postupka kojim smo ih prikupili
(pogreke u mjerenju i sl.) ali se ipak moe uoiti da one nisu besmisleno rasporeene nego
sugeriraju odreeni trend u ponaanju, odnosno imamo osjeaj da postoji funkcijska veza izmeu
promatrane dvije varijable:
y = f (x)
kojom bi se mogao objasniti raspored toaka kada bi se uklonio um.
Dakle, na je zadatak pogoditi tu funkcijsku vezu tj. geometrijski reeno pogoditi krivulju koja
najbolje po nekom kriteriju odgovara zadanim tokama. Budui da su najjednostavnije mogue
funkcije polinomi, posebno linearni, pokuat emo uhvatiti ponaanje toaka pomou pravca
(linearna regresija) ili kvadratne, kubne i sl. parabole (polinomna regresija).
Koji je kriterij po kome emo neku krivulju smatrati najboljom?
Za i -tu vrijednost varijable x - vrijednost xi toka na krivulji je:

29

~
Ti ( xi , f ( xi ))
a poznati poloaj je:
Ti ( xi , f ( xi )) .
Smatrat emo najboljom onom krivulju za koju e udaljenost:
~
d (Ti , Ti ) = ( xi xi ) 2 + ( yi f ( xi )) 2
biti najmanja i to za sve toke i = 1,2,, n . To je najlake odjednom napisati kao:
n
n
~
S = d (Ti , Ti ) 2 = ( yi f ( xi )) 2
i =1

i =1

pa traimo funkciju f za koju e ova suma biti najmanja!

3.1.2 METODA
Ako toke ( xi , yi ) , i = 1,2,, n stoje ovako:

izgleda da bismo im mogli prilagoditi neki pravac:


f ( x) = a0 + a1 x .
Traiti takav pravac naravno znai traiti vrijednosti koeficijenata a0 i a1 takve da je suma:
n

S = ( yi (ao + a1 xi )) 2
i =1

manja nego za bilo koji drugi izbor vrijednosti tih koeficijenata. Dakle, suma S se mijenja kako
mijenjamo a0 i a1 :
S = S (a0 , a1 )
i mi traimo minimum te funkcije, dakle, mora biti:
S

= 0
a0

.
S
= 0

a1

30

Ako izraunamo:

n
S
= 2( yi (a0 + a1 xi )) (1) ,
a0 i =1
n
S
= 2( yi (a0 + a1 xi )) ( xi ) ,
a1 i =1
izlazi da su a0 i a1 rjeenja sustava od dvije linearne jednadbe:

i =1
i =1

n
n
n
a0 xi + a1 xi2 = xi yi
i =1
i =1
i =1

Time smo rijeili linearnu regresiju!


n

a0 n + a1 xi = yi

Ako toke ( xi , yi ) , i = 1,2,, n imaju sloeniji raspored ne moemo oekivati da im dobro


odgovara pravac i da se sva odstupanja od pravca mogu pripisati umu. Mogue rjeenje je da im
se moe prilagoditi polinom nekog vieg stupnja m :
f ( x) = a0 + a1 x + a 2 x 2 + + a m x m .
Prema tome, sada traimo:
a0 , a1 ,, am = ?
takve da je suma:
n

S = ( yi (ao + a1 xi + a2 xi2 + + am xim )) 2


i =1

najmanja, odnosno traimo minimum funkcije:


S = S (a0 , a1 ,, am )
te opet mora biti:
S
= 0 , j = 0,1,, m .
a j
Ako izraunamo:
n
n
m
S

= 2 yi a0 + a1 xi + + am xim ( xij ) = 2 yi xij ak xij + k , j = 0,1,, m


a j i =1
i =1
k =0

te za koeficijente a0 , a1 ,, am imamo linearni sustav:

))

ak xik + j = yi xij , j = 0,1,, m .


m

i =1

k =0

i =1

Ako uvedemo oznake:


n

jk = xik + j , j , k = 0,1,, m ,
i =1
n

j = yi xij , j = 0,1,, m ,
i =1

tada je [ jk ] matrica sustava, a [ j ] vektor desne strane i lako moemo uoiti da je:
n

i =1

i =1

jk = xik + j = xij + k = kj , j , k = 0,1,, m ,


tj., matrica sustava je simetrina, a jednadbe sustava:

31

jk ak = j , j = 0,1,, m .

k =0

zovemo normalnim jednadbama. Ovime smo rijeili i polinomnu regresiju!

3.1.3 SVOJSTVA
Oiti prigovor je da je primjena polinomne, a naroito linearne regresije ograniena na samo vrlo
jednostavne funkcijske veze i da se sigurno veliki broj skupova podataka ne moe tako jednostavno
modelirati. Taj nedostatak se meutim moe u dosta sluajeva zaobii linearizacijom sloenijih
modela. Evo tri vana sluaja.
1) Eksponencijalni model:
y = ae bx
linearizacijom postaje:

ln y = ln a + bx ,
te se toke ( xi , ln yi ) mogu modelirati linearnom regresijom:

2) Potencija:
y = ax b (power equation)
linearizacijom postaje:

ln y = ln a + b ln x ,
te se toke (ln xi , ln yi ) mogu modelirati linearnom regresijom:

32

3) Rast do zasienja:
y=a

x
(saturation-growth-rate equation)
b+ x

linearizacijom postaje:
1 a 1 1
= + ,
y b x a
te se toke (

1 1
, ) mogu modelirati linearnom regresijom:
xi y i

Temeljni problem svake regresije je mogunost da smo pogrijeili model: treba vidjeti koliko je
uistinu malena ta minimalna vrijednost sume:
n

S = ( yi f ( xi )) 2
i =1

a dobar uvid u rezultat daje grafiki prikaz zadanih toaka regresione krivulje. Dakle, svaki program
trebao bi imati i adekvatan grafiki output.
Uoimo jo da pri rjeavanju sustava za koeficijente polinoma imamo simetrinu matricu. Pametno
je uzeti rjeava koji to uzima u obzir jer se tako moe utedjeti na memoriji i raunu. Takva
metoda je Choleskyjeva metoda koja je LU-dekompozicija za simetrine pozitivno-definitne
matrice.

33

Potencijalni problem linearnih sustava koje treba rijeiti je da su koeficijenti sume potencija xi -ova
te se ovisno o tim vrijednostima moe dogoditi da su za veliki m neki koeficijenti jako veliki, a
neki jako maleni i sustav e vrlo vjerojatno biti slabo uvjetovan i trebat e se suoiti sa svim
tekoama takvog sustava. Uope su polinomi prevelikog stupnja loi za modeliranje podataka jer
puno osciliraju!

3.1.4 PSEUDOKOD
Budui da su nam pseudokodovi razliitih rjeavaa linearnih sustava ve poznati dovoljno nam je
napisati psudokod za generiranje koeficijenata sustava.
DOFOR j=1 to m+1
DOFOR k=1 to i
l=(j-1)+(k-1)
ajk=0
DOFOR i=1 to n
ajk=ajk+xil
ENDDO
akj= ajk
ENDDO
l=j-1
bj=0
DOFOR i=1 to n
bj=bj+yixil
ENDDO
ENDDO

34

3.2 LAGRANGEOVE INTERPOLACIJE

3.2.1 PROBLEM
Neka nam je poznat niz toaka u ravnini:
( xi , yi ) , i = 0,1,, n
koje su potpuno toni podaci o vezi izmeu dvije varijable, npr. provjereni tablini podaci, toke na
tono zadanoj krivulji na oplati broda ili sl. No potrebna nam je vrijednost y za neki x koji nije
meu zadanima, dakle neka meutoka, ili se bavimo dizajnom pa elimo nacrtati lijepu krivulju
kroz zadane toke ili sl.
Dakle, problem je poloiti krivulju koja e tono prolaziti kroz zadane toke tj. nai funkciju:
f = f (x)
takvu da je f ( xi ) = yi za sve i = 0,1,, n . Kakvu krivulju izabrati?

3.2.2 METODA
Prvo to nam pada na pamet je polinom kao najjednostavnija funkcijska veza, a osim toga znamo i
da postoji jedan jedini polinom n -tog stupnja koji prolazi kroz zadanih n + 1 -toaka. Ostaje samo
pitanje kako izraunati koeficijente tog polinoma:
f ( x) = a0 + a1 x + + an x n .
Naizgled jednostavno rjeenje je obino uvrtavanje koje odmah daje jednadbe:
a0 + a1 xi + + an xin = yi , i = 0,1,, n ,
odnosno odmah dobivamo linearni sustav od n + 1 -ne jednadbe za n + 1 nepoznati koeficijent. No
poznavajui mogue tekoe sa rjeavanjem linearnih sustava (nagomilavanje numerike greke i
sl.) zakljuujemo da bi bilo bolje nai neki drugi pristup! Uistinu, ima vie formi za taj isti
jedinstveni interpolacioni polinom jedan je Lagrangeova.
Sloimo dakle traeni polinom ovako. Prvo uzmimo samo jednu toku ( xi , yi ) i postavimo polinom
n -tog stupnja koji prolazi kroz tu toku, a za sve ostale x j , j i se ponitava. To je polinom:
n x xj
y = Li ( x) yi .

j =0 , j i x x i
i
j

Uoimo da je Li ( xi ) = 1 i Li ( x j ) = 0 za sve j i . Nakon toga je oito dovoljno zbrojiti sve takve


polinome:
n

Pn ( x) = Li ( x) yi Lagrangeov interpolacioni polinom.


i =0

Ilustracija za n = 2 odnosno tri toke i pripadnu jedinstvenu kvadratnu parabolu.

35

3.2.3 SVOJSTVA
Lagrangeova forma interpolacionog polinoma vrlo je jednostavna za programiranje i zgodna ako
unaprijed znamo stupanj polinoma.
Ako su nam zadane toke ( xi , yi ) ,
i = 0,1,, n i elimo evaluirati neku meutoku
najjednostavnije bi bilo nai najblie dvije bazne toke i postaviti samo linearnu interpolaciju,
zatim uzeti jo jednu blizu baznu toku i postaviti kvadratnu interpolaciju pa vidjeti koliko se
procjena interpolirane vrijednosti promijenila. Ako je promjena znaajna moramo poveati stupanj
na 3, a ako ne onda moemo zaustaviti postupak. Za ovakav iterativni postupak u interpolaciji
pogodna ja Newtonova forma interpolacionog polinoma, a Lagrangeova forma nije.
Lagrangeov interpolacioni polinom dobro je koristiti za meutoke tj. najbolji je za x -eve u sredini
baznih toaka dok izvan podruja xi -ova moe biti sasvim pogrean. Dakle, ekstrapolacija se ne
preporuuje.
3.2.4 PSEUDOKOD
y=0
DOFOR i=0 to n
product=yi
DOFOR j=0 to n
IF ( i j )
product=product*(x-xj)/(xi-xj)
ENDIF
ENDDO
y=y+product
ENDDO

36

3.3 SPLAJN INTERPOLACIJE

3.3.1 PROBLEM
Problem je i dalje problem interpolacije kroz zadane toke:
( xi , yi ) , i = 0,1,, n
Koji su osnovni nedostaci dosadanjeg pristupa?
Ako kroz n + 1 toku povlaimo jedinstveni polinom n -tog stupnja i ako je broj toaka velik morat
emo raunati polinom visokog stupnja, a takvi polinomi jako osciliraju. Npr. za 100 toaka
polinom je 99-tog stupnja, te ima 98 lokalnih ekstrema, 97 toaka infleksije itd. Polinomi u nekim
sluajevima i za mali broj toaka mogu oscilirati potpuno neadekvatno pravoj funkciji. Npr. kod
step-funkcije poveanje broja poznatih toaka umjesto da povea slinost prave funkcije i
interpolacionog polinoma proizvodi upravo suprotni uinak!

3.3.2 METODA
Rjeenje je u tome da mislimo lokalno a ne globalno, tj. umjesto da kroz sve zadane toke
provuemo jedan jedini interpolacioni polinom, radije kroz manji broj zadanih toaka provucimo
jedan polinom nieg stupnja i zatim takve krivulje pametno lijepimo jedne na druge. To su splajn
interpolacije.

37

Mi emo raditi ovako. Na intervalu izmeu dvije susjedne toke interpoliramo jedan komadi
krivulje f i :
f ( x) = f i ( x) za x [ xi 1 , xi ] , i = 1,2,, n .
Splajnovi e se zatim razlikovati po stupnju polinoma f i .
1) Linearni splajn.
Kod ovog splajna svaki f i je stupnja 1, tj.
f i ( x) = ai + bi x za x [ xi 1 , xi ]
dakle nai taj splajn znai nai sve:
ai , bi , i = 1,2,, n .
To je 2n nepoznatih za koje dakle treba 2n jednakosti, a ove jednostavno slijede iz oitih 2n
uvjeta:
f i ( xi 1 ) = yi 1 , i = 1,2,, n ,
f i ( xi ) = yi , i = 1,2,, n .
Dakle za ai , bi , i = 1,2,, n imamo sustav:

ai + bi xi 1 = yi 1

ai + bi xi = yi
i rjeenje je:
bi =

yi 1 yi
, ai = yi bi xi ,
xi 1 xi

i = 1,2,, n .

Kako takav splajn izgleda?

Komadii pravaca poljepljeni su jedni do drugih, pa je rezultirajua krivulja neprekinuta ali ima
iljke u spojnim tokama, tj. nije glatka i nema neprekidnu prvu derivaciju!
2) Kvadratni splajn.
Neka je sada f i stupnja 2:

38

f i ( x) = ai + bi x + ci x 2 za x [ xi 1 , xi ]

pa treba nai 3n nepoznatih:

ai , bi , ci , i = 1,2,, n .
Osim to f i mora poeti u toki ( xi 1 , yi 1 ) i zavriti u toki ( xi , yi ) kvadratni splajn moe
nadoknaditi linearnog, moe imati neprekidnu prvu derivaciju u srednjim tokama tj. moe biti
glatka funkcija. Tako imamo ove 3n 1 jednadbe:
f i ( xi 1 ) = yi 1 , i = 1,2,, n ,
f i ( xi ) = yi , i = 1,2,, n ,

f i ( xi ) = f i +1 ( xi ) , i = 1,2,, n 1 ,
odnosno jo nam nedostaje 1 jednakost. Mogui su razliiti izbori, tipino se taj dodatni uvjet
odnosi na jednu od dvije rubne toke ( x0 , y0 ) ili ( xn , y n ) . Npr. moemo traiti da bude:
f ( x0 ) = 0
to znai da su prve 2 toke spojene pravcem.

Dakle, kvadratni splajn izgleda puno ljepe od linearnog. Ono to i dalje ostaje loe je to to iako
ima neprekidnu tangentu nema neprekidnu zakrivljenost. Taj problem rjeava tek kubini splajn.
3) Kubini splajn.
Sada je f i polinom 3. stupnja:
f i ( x) = ai + bi x + ci x 2 + d i x 3 za x [ xi 1 , xi ]

te imamo ak 4n nepoznatih koeficijenata:


ai , bi , ci , d i , i = 1,2,, n .
Uz uvjete kao kod kvadratnog splajna treba dodati uvjet neprekidnosti i 2. derivacije u svim
srednjim tokama, te tako dobivamo 4n 2 jednadbe:
f i ( xi 1 ) = yi 1 , i = 1,2,, n ,

39

f i ( xi ) = yi , i = 1,2,, n ,

f i ( xi ) = f i +1 ( xi ) , i = 1,2,, n 1 ,

f i ( xi ) = f i +1 ( xi ) , i = 1,2,, n 1 ,
odnosno nedostaju nam jo dva uvjeta. Npr. ono to se obino prirodni splajn (natural spline) dobije
se tako da se postave uvjeti:
f1( x0 ) = 0 ,
f n( xn ) = 0 .
Umjesto da uistinu rjeavamo 4n jednadbi za 4n nepoznatih, moe se dosta jednostavno izvesti
sljedei izraz za f i :
f ( xi 1 )
f ( xi )
( xi x ) 3 +
( x xi 1 ) 3 +
f i ( x) =
6( xi xi 1 )
6( xi xi 1 )
f ( xi 1 ) f ( xi 1 )( xi xi 1 )
+

( xi x ) +
6
xi xi 1

f ( xi )
f ( xi )( xi xi 1 )
+

( x xi 1 )
6
xi xi 1

gdje se f ( xi ) , i = 1,2,, n 1 nalaze iz linearnog sustava:


( xi xi 1 ) f ( xi 1 ) + 2( xi +1 xi 1 ) f ( xi ) + ( xi +1 xi ) f ( xi +1 ) =

6
6
( f ( xi1 ) f ( xi ) ) , i = 1,2,, n 1
( f ( xi+1 ) f ( xi ) ) +
=
xi +1 xi
xi xi 1

koji ima n 1 jednadbu i tridijagonalan je. Nakon ovakvih transformacija, napisati program za
nalaenje kubinog splajna postaje jednostavan zadatak.
3.3.3 SVOJSTVA
U raunarskoj grafici dizajn krivulja i ploha bitno se rjeava pomou splajnova, posebno Bsplajnova, te se ovaj pristup moe smatrati najinteligentnijim rjeenjem problema fitiranja krivulja.

3.3.4 PSEUDOKOD
Budui da su nam poznati rjeavai trodijagonalnih sustava dovoljno je pripremiti koeficijente tog
sustava.
DOFOR i=1 to n-1
IF ( i>=2 ) THEN ei-1=xi-xi-1
fi=2(xi+1-xi-1)
IF ( i<=n-2 ) THEN gi+1=xi+1-xi
ri=6((f(xi+1)-f(xi))/ (xi+1-xi)+ (f(xi-1)-f(xi))/ (xi-xi-1))
ENDDO
Kada iza toga rijeimo trodijagonalni sustav moemo pozvati dio koda koji radi samu splajn
interpolaciju:

40

IF ( x0<=x ) and ( x<=xn )


i=0
DO
i=i+1
WHILE ( x>=xi )
dx-xi-xi-1
y = f i-1*(xi-1-x)3 /6*dx + f i*(x-xi-1)3 /6*dx +
(yi-1/dx fi-1*dx/6)*(xi-x) +
(yi/dx fi*dx/6)*(x-xi-1)
ENDIF

41

You might also like