Föreläsning 10

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

description

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’. - PowerPoint PPT Presentation

Transcript of Föreläsning 10

Page 1: Föreläsning 10

1

Föreläsning 10• Kurvanpassning som en del av

problemlösning med datorer– Linjär anpassning– Interpolation

Page 2: Föreläsning 10

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’

Page 3: Föreläsning 10

3

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

Page 4: Föreläsning 10

4

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’

Page 5: Föreläsning 10

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!

Page 6: Föreläsning 10

6

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

𝑄=𝑎𝑞𝑟

𝑄=𝑄𝑟 ( 𝑞𝑞0 )𝑟

𝑙𝑜𝑔𝑄=𝑙𝑜𝑔𝑄𝑟 −𝑟𝑙𝑜𝑔𝑞0+𝑟𝑙𝑜𝑔𝑞

Page 7: Föreläsning 10

7

Analysera enkla potensfunktioner• Med hjälp av bokens figurer/exempel

ser vi bla: 𝑀∝𝐿𝑟

Page 8: Föreläsning 10

8

Analysera enkla potensfunktioner• Med hjälp av bokens figurer/exempel

ser vi bla:

Page 9: Föreläsning 10

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?

Page 10: Föreläsning 10

10

Analysera enkla potensfunktioner• Fortsätter med er mer komplicerat

exempel innan vi svara på frågan

Page 11: Föreläsning 10

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:’calculate the best-fit straight line and polynomial to a set of data points’

Page 12: Föreläsning 10

12

Hur kan detta hanteras i matlab• Börja med att interpolera 6

datapunkter (x-,y-värden)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

20

40

60

80

100

120

x-values

y-va

lues

Points connected by linear segments

Page 13: Föreläsning 10

13

Hur kan detta hanteras i matlab• Börja med att interpolera 6

datapunkter (x-,y-värden)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-20

0

20

40

60

80

100

120

x-values

y-va

lues

Points connected by cubic splines

Page 14: Föreläsning 10

14

Definitioner1. En interpolation innehåller de

ursprungliga datapunkterna plus nya beräknade värden för mellanliggande punkter

2. En kurvanpassning med linjär- eller polynom regression innehåller inte säkert alla datapunkter ens för den bästa anpassningen

Page 15: Föreläsning 10

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)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-20

0

20

40

60

80

100

120

Time, seconds

Tem

pera

ture

, deg

rees

F

Best-fit Linear Estimate

Datapunkter interpoleradeDito anpassade med splineGissning på bästa linje

y2= 20 * x

Page 16: Föreläsning 10

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

Page 17: Föreläsning 10

17

Mått på en bra linje1. Varför kvadratsumman?2. Kan vi göra detta värde mindre?3. För att man inte ska summera ihop

positiva och negativa värden till något som är nära eller lika med 0

4. Ja, med något som heter minsta kvadratmetoden, fungerar genom att derivera och söka nollställen till derivatan

Page 18: Föreläsning 10

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å matlabs polyfit och polyval funktioner

• Dessa har principen om minsta kvadratsumman inbyggd

Page 19: Föreläsning 10

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

Page 20: Föreläsning 10

20

Fungerar polynom bättre än linje?• Prova detta manuellt och sedan går

vi till de inbyggda kurvanpassningsverktygen

• ’Tools/Basic Fitting’ respektive cftool

Page 21: Föreläsning 10

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)

Page 22: Föreläsning 10

22

Resultatet polynom grad 2-5

0 1 2 3 4 50

50

100

150

0 1 2 3 4 5-50

0

50

100

150

0 1 2 3 4 5-50

0

50

100

150

0 1 2 3 4 5-50

0

50

100

150

Page 23: Föreläsning 10

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 ’ Interactive Curve Fitting Example’ ger en mer fullständig beskrivning av exempel 2, tas i mån av tid

Page 24: Föreläsning 10

24

Exempel 1• Samma polynom-anpassningar grad

1-5

Page 25: Föreläsning 10

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

Page 26: Föreläsning 10

26

Exempel 1

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-15

-10

-5

0

5

10

15residuals

linearquadraticcubic4th degree5th degree

Page 27: Föreläsning 10

27

Exempel 2

1750 1800 1850 1900 1950 2000-10

-8

-6

-4

-2

0

2

4

6

8

10residuals

Quadratic: norm of residuals = 12.61075th degree: norm of residuals = 12.0069

1750 1800 1850 1900 1950 20000

50

100

150

200

250

300

y = 25*z2 + 75*z + 62y = 0.59*z5 + 0.7*z4 - 0.92*z3 + 23*z2 + 75*z + 62where z = (x - 1.9e+003)/62

data 1 quadratic 5th degree

Page 28: Föreläsning 10

28

SammanfattningNi 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 anpassningFörstå matematiken bakom dettaPå samma sätt kunna analysera exponentialfunktionen, relevant för en av labuppgifterna!

Page 29: Föreläsning 10

29

Nästa föreläsning 1F11 Ons, 5 okt, 10:00-11:45 Forum

AulanFelanalys och noggrannhetsanalysGrimvall Kap 11.2 + material ur ETTER

Page 30: Föreläsning 10

30

Peer-instruction1. Beskriv…

Page 31: Föreläsning 10

31

Diskussionuppgift på KTH Social• Efter