7
1 Kurvanpassning Beräkningsvetenskap II Informationsteknologi Institutionen för informationsteknologi | www.it.uu.se Kurvanpassning – jfr lab Punktmängd => approximerande funktion Finns olika sätt att approximera med polynom Problem med höga gradtal – kan ge stora ”kast” Informationsteknologi Institutionen för informationsteknologi | www.it.uu.se Kurvanpassning – jfr lab x = [0 1 4 9 16]; y = [0 1 2 3 4]; xx = linspace(0,16); % skapa x-axel p = polyfit(x,y,4) % 4:e gradspolynom p = -0.0010 0.0306 -0.2986 1.2690 -0.0000 yy = polyval(p,xx); % Evaluera polynomet yyspline = spline(x,y,xx); % spline plot(x,y,’*’,xx,yy,’:’,xx,yyspline,’-’); legend(’Mätpunkter’,’4:grads pol’ ,’spline’); grid on; xlabel(’x’); ylabel(’y’); Från laborationen, olika Matlabkommandon: Informationsteknologi Institutionen för informationsteknologi | www.it.uu.se Kurvanpassning – jfr lab Så här blir just detta exempel Matlabkommandon: polyfit, polyder, polyval, roots, spline Informationsteknologi Institutionen för informationsteknologi | www.it.uu.se p = polyfit(x,y,n); Hittar koefficienter till interpolationspolynom av grad n. Om antal punkter > n+1 sker minsta kvadratanpassning yy = polyval(p,xx); Evaluerar polynomet p i punkterna xx y = A\b; Om systemet är överbestämt (flera ekvationer än obekanta) sker minsta kvadratanpassning yy = spline(x,y,xx); Beräkna kubiska splines Kurvanpassning – jfr lab Informationsteknologi Institutionen för informationsteknologi | www.it.uu.se Att anpassa en funktion till en punktmängd är en form av approximation Vanligt med polynom eftersom de är enkla att hantera, t ex derivera Kan göras på olika sätt Minsta kvadratanpassning, då polynomet inte skär genom punkterna utan är en typ av medelvärde Interpolation, då polynomet skär exakt i punkterna. Kan i sin tur göras på olika sätt Som ett polynom över hela punktmängden Som styckvisa polynom som sätts samman till en kurva, s k splines Kurvanpassning innebär approximation

kurvanpassning - Uppsala University · 2010-11-25 · (”natural spline”), men finns andra alternativ Detta leder till att ”kedjan” sitter ihop och att det blir jämn övergång

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: kurvanpassning - Uppsala University · 2010-11-25 · (”natural spline”), men finns andra alternativ Detta leder till att ”kedjan” sitter ihop och att det blir jämn övergång

1

Kurvanpassning

Beräkningsvetenskap II

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Kurvanpassning – jfr lab

  Punktmängd => approximerande funktion   Finns olika sätt att approximera med polynom

  Problem med höga gradtal – kan ge stora ”kast”

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Kurvanpassning – jfr lab

x = [0 1 4 9 16]; y = [0 1 2 3 4]; xx = linspace(0,16); % skapa x-axel p = polyfit(x,y,4) % 4:e gradspolynom p = -0.0010 0.0306 -0.2986 1.2690 -0.0000

yy = polyval(p,xx); % Evaluera polynomet yyspline = spline(x,y,xx); % spline

plot(x,y,’*’,xx,yy,’:’,xx,yyspline,’-’); legend(’Mätpunkter’,’4:grads pol’ ,’spline’); grid on; xlabel(’x’); ylabel(’y’);

Från laborationen, olika Matlabkommandon:

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Kurvanpassning – jfr lab Så här blir just detta exempel

Matlabkommandon: polyfit, polyder, polyval, roots, spline

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

  p = polyfit(x,y,n); Hittar koefficienter till interpolationspolynom av grad n. Om antal punkter > n+1 sker minsta kvadratanpassning

  yy = polyval(p,xx); Evaluerar polynomet p i punkterna xx

  y = A\b; Om systemet är överbestämt (flera ekvationer än obekanta) sker minsta kvadratanpassning

  yy = spline(x,y,xx); Beräkna kubiska splines

Kurvanpassning – jfr lab

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

  Att anpassa en funktion till en punktmängd är en form av approximation

  Vanligt med polynom eftersom de är enkla att hantera, t ex derivera

  Kan göras på olika sätt   Minsta kvadratanpassning, då polynomet inte skär

genom punkterna utan är en typ av medelvärde   Interpolation, då polynomet skär exakt i punkterna.

Kan i sin tur göras på olika sätt   Som ett polynom över hela punktmängden   Som styckvisa polynom som sätts samman till en

kurva, s k splines

Kurvanpassning innebär approximation

Page 2: kurvanpassning - Uppsala University · 2010-11-25 · (”natural spline”), men finns andra alternativ Detta leder till att ”kedjan” sitter ihop och att det blir jämn övergång

2

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

  Anpassning av matematiska modeller till experimentdata (mätdata)

  Beräkning av approximativa värden i mellanliggande punkter

  Bestämning av trender   Approximation av ”svår” funktion med enklare

Vanliga användningsområden

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

  Antag n mätvärden Exempel)

  Sammanbind dessa punkter med ett polynom exakt genom samtliga punkter:   ett polynom över hela punktmängden eller   styckvisa polynom, s k splines

Interpolation

x 1 2 3 4 5

f(x) 1 2 1 2 3

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

  För att entydigt bilda ett polynom av grad 1 krävs 2 punkter

  För att entydigt bilda ett polynom av grad 2 krävs 3 punkter

  …

Interpolation med ett polynom Om man använder ett polynom över alla punkter bestämmer antalet punkter polynomgraden. Varför?

Slutsats: För att entydigt bestämma ett polynom av grad n krävs n+1 punkter

Ansätter man ett polynom av grad<n och har n+1 punkter får man minska kvadratanpassning

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Interpolation med ett polynom Exemplet) Konstruera ett interpolationspolynom.

5 punkter => 4:e gradspolynom

Sätt in de 5 punkterna i polynomet => 5 ekvationer

Ansätt:

OBS! 5 obekanta (a0,…,a4) och 5 ekvationer => Entydigt lösbart system!

likhet i punkterna

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Interpolation med ett polynom

Löses med Gausselimination…

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Interpolation med ett polynom

…vilket ger lösningen

Stoppa in detta i ansatsen ger det färdiga polynomet

Plottning ger

Page 3: kurvanpassning - Uppsala University · 2010-11-25 · (”natural spline”), men finns andra alternativ Detta leder till att ”kedjan” sitter ihop och att det blir jämn övergång

3

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

  Ansätt ett polynom   Sätt in punkter

i ansatsen (och använd likhet i punkterna)   Lös systemet   Sätt in lösningen i ansatsen => det färdiga

interpolationspolynomet

  Man kan i princip ansätta vilket polynom (eller annan funktion) som helst

  Vissa ansatser effektivare än andra

Interpolation med ett polynom

Gången blir alltså

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Begreppet ”ansats”

I exemplet gjordes ansatsen

En ”ansats” anger att ett uttryck ska ha en viss form, men koefficienter/parametrar återstår att bestämma.

Exempel: förstagradspolynom

exponentiellt avtagande funktion

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Begreppet ”ansats”

Om p(x) är ett förstagradspolynom kan t ex följande ansatser tänkas:

Oändligt många ansatser möjliga för ett och samma polynom! Man väljer den som är praktisk, blir bäst beräkningsmässigt.

medelvärde

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Interpolation med ett polynom Bättre ansats: Newtons interpolationsformel

Exemplet

P4(x1)

P4(x2) P4(x5)

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Interpolation med ett polynom

=>

På matrisform…

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Interpolation med ett polynom

=>

Newtons interpolationsformel ger triangulär matris! Den här ansatsen gav problemet bättre egenskaper beräkningsmässigt.

Page 4: kurvanpassning - Uppsala University · 2010-11-25 · (”natural spline”), men finns andra alternativ Detta leder till att ”kedjan” sitter ihop och att det blir jämn övergång

4

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Interpolation med ett polynom Stoppa in mätvärden i matrisen

Stoppa in i ansatsen

ger

Samma polynom som tidigare!

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Bevis Antag existerar två sådana polynom, och . Då gäller

där , dvs ett polynom av grad n-1 med n nollställen ett nollpolynom vilket strider mot antagandet.

Interpolation med ett polynom Att båda metoderna ger samma polynom beror på

så gäller entydighet.

  Givet   Interpolation med polynom så att

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Runges fenomen

  Exempel f(x) = 1/(1+25x2)

  Approximera f(x) med 5:e grads- polynom (i 6 pkt:er på kurvan)

  Approximera med 10:e gradspolynom (i 11 pkt:er)

  Felet blir större ju högre grad – högregrads-polynom ger stora svängningar

  Kallas Runges fenomen   Medför att man i praktiken inte bör använda

polynom av höga gradtal

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Styckvisa polynom Vanligast att 3:e gradspolynom ansätts mellan varje par av punkter, s k kubiska splines. Sätts samman till en kedja av polynom. Exemplet

4 st kubiska splines

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Styckvisa polynom Hur kan man hitta 3:e gradspolynom mellan två punkter? Måste hitta på nya krav så antalet ekvationer och obekanta stämmer.

Krav

  Kontinuitet i skarvarna   Kontinuerlig derivata i skarvarna   Kontinuerlig andraderivata i skarvarna   Vanligen andraderivata = 0 i ändpunkterna

(”natural spline”), men finns andra alternativ

Detta leder till att ”kedjan” sitter ihop och att det blir jämn övergång mellan länkarna i kedjan

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Styckvisa polynom Ansätt 3:e gradspolynom på intervall i, vanligen

Ger 1:a derivata

och 2:a derivata

Sätt samman detta så att allt hänger samman i skarvarna…

Page 5: kurvanpassning - Uppsala University · 2010-11-25 · (”natural spline”), men finns andra alternativ Detta leder till att ”kedjan” sitter ihop och att det blir jämn övergång

5

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Styckvisa polynom Kontinuitet i skarvarna medför att s1(x1)=f(x1) s1(x2)=s2(x2)=f(x2) s2(x3)=s3(x3)=f(x3) etc

Detta ger…

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Styckvisa polynom

ett system med 8 ekvationer:

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Styckvisa polynom

På samma sätt medför kontinuerlig 1:a derivata

Kontinuerlig 2: derivata i skarvarna ger

Totalt 3+3 ekvationer

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Styckvisa polynom

2:a derivata = 0 i ändpunkterna ger

dvs 2 ekvationer

Antal ekvationer totalt: 8+3+3+2=16 Antal obekanta totalt: ai, bi, ci, di, i=1,2,3,4 (4 obekanta varje intervall) => 16 obekanta => Lösbart ekvationssystem!

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Styckvisa polynom

Sätt samman de 16 ekvationerna i ett ekvations-system och lös systemet. Ger

Olika därför att MATLAB använder andra villkor i ändpunkterna (”not-a-knot”-villkor)

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Minsta kvadratanpassning   Hittills interpolation – polynomet går genom

punkterna   Istället låt polynomet vara någon typ av

medelvärde – minimera avståndet mellan punkter och polynom

Page 6: kurvanpassning - Uppsala University · 2010-11-25 · (”natural spline”), men finns andra alternativ Detta leder till att ”kedjan” sitter ihop och att det blir jämn övergång

6

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Minsta kvadratanpassning   Exemplet igen:

Antag vi vill approximera med 2:a gradspolynom

  Ansats t ex

  Likhet i punkterna

x 1 2 3 4 5 f(x) 1 2 1 2 3

5 ekvationer, 3 obekanta => kan (vanligen) ej lösas entydigt!

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Minsta kvadratanpassning   Ekvationsystemet blir

  Kallas för ett överbestämt system, fler ekvationer än obekanta

  Kan ej lösas på vanligt sätt (gausselimination) – beror på att det inte finns någon lösning

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Minsta kvadratanpassning   Istället hitta lösning som minimerar   Kallas minsta kvadratlösningen => den bästa

lösningen i ”minsta kvadratmening”   Kan hittas genom att lösa normalekvationerna

  Exemplet:

ger Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

  Resultat:

  Minimering av summan av avstånden i kvadrat   Konditionstal ofta stort hos ATA. I exemplet:

cond2(A) = 82.8, men cond2(ATA) = 6847.3 . Använder därför ofta ortogonalisering av A:s kolonner => s k QR-faktorisering

Minsta kvadratanpassning

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

Vilket polynom ska man välja?

  Kan finnas kunskap om den underliggande trenden, t ex att trenden ungefär bör följa en kvadratisk kurva, dvs ett 2:a gradspolynom

  Kan pröva olika gradtal, nerifrån och upp, tills polynomen inte ändras nämnvärt.

Polynom av grad 2 eller 3 eller 4 eller…?

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

När ska man använda vad?

Interpolation eller minstakvadrat - inte alltid självklart! Några olika exempel…

Minsta kvadrat

Skulle interpolation fungera?

Stor datamängd

Page 7: kurvanpassning - Uppsala University · 2010-11-25 · (”natural spline”), men finns andra alternativ Detta leder till att ”kedjan” sitter ihop och att det blir jämn övergång

7

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

När ska man använda vad?

Kastbana med data som innehåller fel (t ex mät-fel eller mätningar med viss noggrannhet)

Minsta kvadrat brukar användas då man har störda data.

Inte rimligt att låta en linje gå exakt genom inexakta mätpunkter.

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

När ska man använda vad?

Kastbana med störda data

Interpolation ger Inte en bra bild av kaströrelsen

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

När ska man använda vad? Förstoring/förminskning av bilder

Linjär interpolation brukar användas för att fylla ut data mellan pixlar (medför försämrad bild)

Obs att t ex Word använder inte linjär interpola-tion utan en sämre metod än PhotoShop

Info

rmat

ionst

eknolo

gi

Institutionen för informationsteknologi | www.it.uu.se

När ska man använda vad? CAD/CAM

Splines i 3D (s k B-splines)

Splines används även för att jämna till bokstäver i ordbehandlare, jämna till bilder i digital video etc etc (smoothing)