Föreläsning 10
description
Transcript of Föreläsning 10
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• ’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’
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:
𝑄=𝑎𝑞𝑟
𝑄=𝑄𝑟 ( 𝑞𝑞0 )𝑟
𝑙𝑜𝑔𝑄=𝑙𝑜𝑔𝑄𝑟 −𝑟𝑙𝑜𝑔𝑞0+𝑟𝑙𝑜𝑔𝑞
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:’calculate the best-fit straight line and polynomial to a set of data points’
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
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
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
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
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 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
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
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
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
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
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
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
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
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!
29
Nästa föreläsning 1F11 Ons, 5 okt, 10:00-11:45 Forum
AulanFelanalys och noggrannhetsanalysGrimvall Kap 11.2 + material ur ETTER
30
Peer-instruction1. Beskriv…
31
Diskussionuppgift på KTH Social• Efter