Kurvanpassning – jfr lab
Punktmängd => approximerande funktion Finns olika sätt att approximera med polynom
Problem med höga gradtal – kan ge stora ”kast”
Kurvanpassning Beräkningsvetenskap II
Informationsteknologi
Institutionen för informationsteknologi | www.it.uu.se
Kurvanpassning – jfr lab
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’);
Så här blir just detta exempel
Informationsteknologi
Informationsteknologi
Från laborationen, olika Matlabkommandon:
Institutionen för informationsteknologi | www.it.uu.se
Institutionen för informationsteknologi | www.it.uu.se
Kurvanpassning – jfr lab
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
Institutionen för informationsteknologi | www.it.uu.se
Kurvanpassning innebär approximation Informationsteknologi
Informationsteknologi
Matlabkommandon: polyfit, polyder, polyval, roots, spline
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
Institutionen för informationsteknologi | www.it.uu.se
1
Vanliga användningsområden
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
Informationsteknologi
Informationsteknologi
Interpolation Antag n mätvärden Exempel)
x
f(x) 1 2 1 2 3
Sammanbind dessa punkter med ett polynom exakt genom samtliga punkter:
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 … Slutsats: För att entydigt bestämma ett polynom av grad n krävs n+1 punkter
Ansätter man ett polynom av grad
Interpolation med ett polynom Informationsteknologi
Informationsteknologi
ett polynom över hela punktmängden eller styckvisa polynom, s k splines
Institutionen för informationsteknologi | www.it.uu.se
Interpolation med ett polynom Om man använder ett polynom över alla punkter bestämmer antalet punkter polynomgraden. Varför?
12345
Institutionen för informationsteknologi | www.it.uu.se
Exemplet) Konstruera ett interpolationspolynom. 5 punkter => 4:e gradspolynom Ansätt: Sätt in de 5 punkterna i polynomet => 5 ekvationer
likhet i punkterna
OBS! 5 obekanta (a0,…,a4) och 5 ekvationer => Entydigt lösbart system! Institutionen för informationsteknologi | www.it.uu.se
Interpolation med ett polynom
Interpolation med ett polynom Informationsteknologi
Informationsteknologi
…vilket ger lösningen Stoppa in detta i ansatsen ger det färdiga polynomet
Plottning ger
Löses med Gausselimination… Institutionen för informationsteknologi | www.it.uu.se
Institutionen för informationsteknologi | www.it.uu.se
2
Interpolation med ett polynom
Begreppet ”ansats”
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
Informationsteknologi
Informationsteknologi
Gången blir alltså
Institutionen för informationsteknologi | www.it.uu.se
medelvärde 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.
Informationsteknologi
Informationsteknologi
förstagradspolynom exponentiellt avtagande funktion
Bättre ansats: Newtons interpolationsformel
Institutionen för informationsteknologi | www.it.uu.se
P4(x1) Exemplet
P4(x2)
P4(x5)
Institutionen för informationsteknologi | www.it.uu.se
Interpolation med ett polynom
Interpolation med ett polynom =>
Informationsteknologi
=>
Informationsteknologi
Exempel:
Interpolation med ett polynom
Om p(x) är ett förstagradspolynom kan t ex följande ansatser tänkas:
Institutionen för informationsteknologi | www.it.uu.se
En ”ansats” anger att ett uttryck ska ha en viss form, men koefficienter/parametrar återstår att bestämma.
Institutionen för informationsteknologi | www.it.uu.se
Begreppet ”ansats”
På matrisform…
I exemplet gjordes ansatsen
Newtons interpolationsformel ger triangulär matris! Den här ansatsen gav problemet bättre egenskaper beräkningsmässigt. Institutionen för informationsteknologi | www.it.uu.se
3
Att båda metoderna ger samma polynom beror på
Stoppa in i ansatsen ger
Informationsteknologi
Interpolation med ett polynom
Stoppa in mätvärden i matrisen
Informationsteknologi
Interpolation med ett polynom
Samma polynom som tidigare! Institutionen för informationsteknologi | www.it.uu.se
Institutionen för informationsteknologi | www.it.uu.se
så att
så gäller entydighet. 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.
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
Institutionen för informationsteknologi | www.it.uu.se
Styckvisa polynom
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.
Ansätt 3:e gradspolynom på intervall i, vanligen
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 Institutionen för informationsteknologi | www.it.uu.se
Informationsteknologi
Informationsteknologi
Givet Interpolation med polynom
Styckvisa polynom Informationsteknologi
Informationsteknologi
Exempel f(x) = 1/(1+25x2) Approximera f(x) med 5:e gradspolynom (i 6 pkt:er på kurvan) Approximera med 10:e gradspolynom (i 11 pkt:er) Felet blir större ju högre grad – högregradspolynom ger stora svängningar Kallas Runges fenomen Medför att man i praktiken inte bör använda polynom av höga gradtal
Institutionen för informationsteknologi | www.it.uu.se
Runges fenomen
Ger 1:a derivata och 2:a derivata
Sätt samman detta så att allt hänger samman i skarvarna…
Institutionen för informationsteknologi | www.it.uu.se
4
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
ett system med 8 ekvationer:
Informationsteknologi
Informationsteknologi
Styckvisa polynom
Detta ger… Institutionen för informationsteknologi | www.it.uu.se
Styckvisa polynom
Styckvisa polynom
På samma sätt medför kontinuerlig 1:a derivata
2:a derivata = 0 i ändpunkterna ger
Kontinuerlig 2: derivata i skarvarna ger
Informationsteknologi
Informationsteknologi
Institutionen för informationsteknologi | www.it.uu.se
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!
Totalt 3+3 ekvationer Institutionen för informationsteknologi | www.it.uu.se
Institutionen för informationsteknologi | www.it.uu.se
Sätt samman de 16 ekvationerna i ett ekvationssystem och lös systemet. Ger
Olika därför att MATLAB använder andra villkor i ändpunkterna (”not-a-knot”-villkor) Institutionen för informationsteknologi | www.it.uu.se
Minsta kvadratanpassning
Informationsteknologi
Informationsteknologi
Styckvisa polynom
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
Institutionen för informationsteknologi | www.it.uu.se
5
Exemplet igen: Antag vi vill approximera med 2:a gradspolynom Ansats t ex
Likhet i punkterna
Informationsteknologi
x f(x)
12345 12123
5 ekvationer, 3 obekanta => kan (vanligen) ej lösas entydigt!
Minsta kvadratanpassning Informationsteknologi
Minsta kvadratanpassning
Institutionen för informationsteknologi | www.it.uu.se
Exemplet:
Informationsteknologi
ger
Institutionen för informationsteknologi | www.it.uu.se
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
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
Institutionen för informationsteknologi | www.it.uu.se
Vilket polynom ska man välja?
När ska man använda vad?
Polynom av grad 2 eller 3 eller 4 eller…?
Interpolation eller minstakvadrat - inte alltid självklart! Några olika exempel…
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.
Institutionen för informationsteknologi | www.it.uu.se
Informationsteknologi
Informationsteknologi
Minsta kvadratanpassning Informationsteknologi
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
Ekvationsystemet blir
Institutionen för informationsteknologi | www.it.uu.se
Minsta kvadratanpassning
Minsta kvadrat
Stor datamängd
Skulle interpolation fungera?
Institutionen för informationsteknologi | www.it.uu.se
6
Kastbana med data som innehåller fel (t ex mätfel 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.
När ska man använda vad? Kastbana med störda data
Informationsteknologi
Informationsteknologi
När ska man använda vad?
Institutionen för informationsteknologi | www.it.uu.se
Institutionen för informationsteknologi | www.it.uu.se
När ska man använda vad?
När ska man använda vad?
Obs att t ex Word använder inte linjär interpolation utan en sämre metod än PhotoShop Institutionen för informationsteknologi | www.it.uu.se
CAD/CAM
Informationsteknologi
Informationsteknologi
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)
Interpolation ger Inte en bra bild av kaströrelsen
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) Institutionen för informationsteknologi | www.it.uu.se
7