Föreläsning 10 Kurvanpassning som en del av problemlösning med datorer Linjär anpassning Interpolation
Kurvanpassning läsanvisning Material finns i Grimvall 10.1-3 samt i MATLAB boken 8.1-3 Kommer att följa en del av MATLAB- bokens exempel som även finns som ’inbyggda exempel’
Frågor från förra gången ?
Matlab bokens lärandemål Ni ska kunna ’perform linear and cubic spline interpolation’ ’calculate the best-fit straight line and polynomial to a set of data points’ ’use the basic fitting tool’
Motsvarande mål i Grimvall Kunna analysera enkla ’potensfunktioner’ med hjälp av linjär anpassning Förstå matematiken bakom detta På samma sätt kunna analysera exponentialfunktionen, relevant för en av labuppgifterna!
Analysera enkla potensfunktioner Vad menas med detta? Lite matte: 𝑄= 𝑎𝑞 𝑟 𝑄= 𝑄 𝑟 𝑞 𝑞 0 𝑟 𝑙𝑜𝑔𝑄=𝑙𝑜𝑔 𝑄 𝑟 −𝑟𝑙𝑜𝑔 𝑞 0 +𝑟𝑙𝑜𝑔𝑞
Analysera enkla potensfunktioner Med hjälp av bokens figurer/exempel ser vi bla: 𝑀∝ 𝐿 𝑟
Analysera enkla potensfunktioner Med hjälp av bokens figurer/exempel ser vi bla:
Analysera enkla potensfunktioner Med hjälp av bokens figurer/exempel ser vi bla: Fråga, hur kan vi hitta den linje som passar bra/bäst?
Analysera enkla potensfunktioner Fortsätter med er mer komplicerat exempel innan vi svara på frågan
Analysera enkla potensfunktioner Från det här exemplet kan vi också se att vi kanske vill göra anpassning till ett andra-grads-polynom Stämmer bra med lärandemålet för matlab:’calculate the best-fit straight line and polynomial to a set of data points’
Hur kan detta hanteras i matlab Börja med att interpolera 6 datapunkter (x-,y-värden)
Hur kan detta hanteras i matlab Börja med att interpolera 6 datapunkter (x-,y-värden)
Definitioner En interpolation innehåller de ursprungliga datapunkterna plus nya beräknade värden för mellanliggande punkter En kurvanpassning med linjär- eller polynom regression innehåller inte säkert alla datapunkter ens för den bästa anpassningen
Definitioner Illustrera påstående ”2” genom att för hand gissa och lägga in en linje i figuren med (x-,y-värden)
Mått på en bra linje Inför något som vi kallar kvadratsumman för avvikelserna >> tab=[x' y' y2' y'-y2' (y'-y2').^2] tab = 0 0 0 0 0 1 20 20 0 0 2 60 40 20 400 3 68 60 8 64 4 77 80 -3 9 5 110 100 10 100 >> sum(tab(:,5)) ans = 573
Mått på en bra linje Varför kvadratsumman? Kan vi göra detta värde mindre? För att man inte ska summera ihop positiva och negativa värden till något som är nära eller lika med 0 Ja, med något som heter minsta kvadratmetoden, fungerar genom att derivera och söka nollställen till derivatan
Mått på en bra linje Måste vi göra denna krångliga uträkning med derivator? För många vanliga fall kan vi hitta färdiga formler, fungerar även på miniräknare när man lägger in (x-,y- värden) Titta på matlabs polyfit och polyval funktioner Dessa har principen om minsta kvadratsumman inbyggd
Lite matlabkod för detta >> plot(x,linje(1)*x+linje(2),'m--') >> y3=linje(1)*x+linje(2) y3 = 3.7619 24.5905 45.4190 66.2476 87.0762 107.9048 >> tab=[x' y' y3' y'-y3' (y'-y3').^2] tab = 0 0 3.7619 -3.7619 14.1519 1.0000 20.0000 24.5905 -4.5905 21.0725 2.0000 60.0000 45.4190 14.5810 212.6042 3.0000 68.0000 66.2476 1.7524 3.0708 4.0000 77.0000 87.0762 -10.0762 101.5296 5.0000 110.0000 107.9048 2.0952 4.3900 >> sum(tab(:,5)) ans = 356.8190
Fungerar polynom bättre än linje? Prova detta manuellt och sedan går vi till de inbyggda kurvanpassningsverktygen ’Tools/Basic Fitting’ respektive cftool
Matlabkod polynom grad 2-5 >> y2=polyval(polyfit(x,y,2),new_x); >> y3=polyval(polyfit(x,y,2),new_x); >> y4=polyval(polyfit(x,y,2),new_x); >> y5=polyval(polyfit(x,y,5),new_x); >> y4=polyval(polyfit(x,y,4),new_x); >> y3=polyval(polyfit(x,y,3),new_x); >> subplot(2,2,1) >> plot(x,y,'o',new_x,y2) >> subplot(2,2,2) >> plot(x,y,'o',new_x,y3) >> subplot(2,2,3) >> subplot(2,2,4) >> plot(x,y,'o',new_x,y5) >> plot(x,y,'o',new_x,y4)
Resultatet polynom grad 2-5
Inbyggda anpassningsverktyg Går igenom två exempel för att illustrera hur man gör jämförelser samt väljer typ av anpassning Matlabs ’ Interactive Curve Fitting Example’ ger en mer fullständig beskrivning av exempel 2, tas i mån av tid
Exempel 1 Samma polynom-anpassningar grad 1-5
Exempel 2 Liknande anpassningar - men på befolkningsdata Här kan man ställa frågan om extrapolation istället för interpolation som vi jobbat med hittills, blir det någon skillnad i resonemanget då?!
Exempel 1
Exempel 2
Sammanfattning Ni ska nu kunna: ’perform linear and cubic spline interpolation’ ’calculate the best-fit straight line and polynomial to a set of data points’ ’use the basic fitting tool’ Kunna analysera enkla ’potensfunktioner’ med hjälp av linjär anpassning Förstå matematiken bakom detta På samma sätt kunna analysera exponentialfunktionen, relevant för en av labuppgifterna!
Nästa föreläsning 1 F11 Ons, 5 okt, 10:00-11:45 Forum Aulan Felanalys och noggrannhetsanalys Grimvall Kap 11.2 + material ur ETTER
Peer-instruction Beskriv…
Diskussionuppgift på KTH Social Efter