kurvanpassning - uppsala university · 2010-11-25 · (”natural spline”), men finns andra...
TRANSCRIPT
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
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
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.
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…
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
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
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)