1 / 31

Föreläsning 10

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’.

dyllis
Download Presentation

Föreläsning 10

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Föreläsning 10 • Kurvanpassning som en del av problemlösning med datorer • Linjär anpassning • Interpolation

  2. 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’

  3. Frågor från förra gången • ?

  4. Matlab bokens lärandemål • Ni ska kunna • ’performlinear and cubicspline interpolation’ • ’calculate the best-fit straight line and polynomialto a set of data points’ • ’use the basicfittingtool’

  5. 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!

  6. Analysera enkla potensfunktioner • Vad menas med detta? • Lite matte:

  7. Analysera enkla potensfunktioner • Med hjälp av bokens figurer/exempel ser vi bla:

  8. Analysera enkla potensfunktioner • Med hjälp av bokens figurer/exempel ser vi bla:

  9. 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?

  10. Analysera enkla potensfunktioner • Fortsätter med er mer komplicerat exempel innan vi svara på frågan

  11. 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:’calculatethe best-fit straight line and polynomialto a set of data points’

  12. Hur kan detta hanteras i matlab • Börja med att interpolera 6 datapunkter (x-,y-värden)

  13. Hur kan detta hanteras i matlab • Börja med att interpolera 6 datapunkter (x-,y-värden)

  14. 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

  15. 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)

  16. 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

  17. 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

  18. 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å matlabspolyfit och polyval funktioner • Dessa har principen om minsta kvadratsumman inbyggd

  19. 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

  20. Fungerar polynom bättre än linje? • Prova detta manuellt och sedan går vi till de inbyggda kurvanpassningsverktygen • ’Tools/Basic Fitting’ respektive cftool

  21. 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) >> subplot(2,2,3) >> plot(x,y,'o',new_x,y4)

  22. Resultatet polynom grad 2-5

  23. 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 ’ InteractiveCurveFittingExample’ ger en mer fullständig beskrivning av exempel 2, tas i mån av tid

  24. Exempel 1 • Samma polynom-anpassningar grad 1-5

  25. 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å?!

  26. Exempel 1

  27. Exempel 2

  28. Sammanfattning Ni ska nu kunna: ’performlinear and cubicspline interpolation’ ’calculate the best-fit straight line and polynomialto a set of data points’ ’use the basicfittingtool’ 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!

  29. Nästaföreläsning1

  30. Peer-instruction • Beskriv…

  31. Diskussionuppgift på KTH Social • Efter

More Related