HH/ITE/BN Minsta kvadratmetoden och Mathematica 1 Något om Minsta kvadratmetoden och Mathematica Bertil Nilsson 2015-08-15 y y 6 5 xi ,yi 5 Εi 4 4 xi , f xi , 3 3 2 2 1 0 0 1 2 min 3 4 n i 1 f xi, min 5 f x, 6 x 1 yi yx 2 3 4 5 6 x 2 2 x ci ,c t mg l y 6 5 5 4 4 3 3 2 2 1 0 5 10 15 20 25 t s 1 2 3 4 x 2 Minsta kvadratmetoden och Mathematica HH/ITE/BN ť Förord På följande sidor presenteras en elementär "streetwise guide" till minsta kvadratmetoden med flitig användning av Mathematica. Framställningen är fåordig, fri från pedanteri men i någon mening fullständig. Det man väsentligen behöver veta om begrepp, terminologi, beteckningar och teori för att modellera och lösa problem i framtida kurser och yrkesliv som ingenjör, naturvetare eller lärare klarläggs och typiska exempel ges. ť Inledning Vi börjar med en problemställning från verkliga livet. Anders på Andersberg har köpt en ny bil med konstantfarthållare. För att undvika framtida bekymmer med lagens väktare vill nu Anders kontrollera riktigheten i utrustningen. För detta ändamål uppsöker han en lång raksträcka där han vet att avståndet mellan lyktstolparna är 100 m. Med konstantfarthållaren inställd på 50 km/h bär det iväg. Eftersom han bara har ett vanligt armbandsur till hands så blir det till att uppskatta restiderna på sekunden när. Han får följande serie från en stolpe till de fem efterföljande tid s 0 7 14 22 29 36 Anders strategi är nu att äntligen dra nytta av den gamla mekanikformeln s börjar med att lägga in mätdata i ett diagram 0 7 14 22 29 36 0 100 200 300 400 500 data ListPlot data, PlotStyle vt som han under skoltiden tvingades exercera. Han ; Red, PointSize 0.03 , AxesLabel "t s ", "s m " s m 500 400 300 200 100 5 Han förstår att s 10 15 20 25 30 t s 35 vt är en rät linje genom origo, men hur ska den luta? Entusiastiskt låter han den gå genom sista mätpunkten, det vill säga han väljer modellen s vt 500 t 36 och lägger till den i diagrammet 500 Plot t, t, 0, 40 , PlotStyle Blue, AxesLabel "t s ", "s m " , 36 Epilog Red, PointSize 0.03 , Point data s m 500 400 300 200 100 10 20 30 40 t s Nja, riktigt bra blev det inte. Genast dyker det upp några frågeställningar. Det kanske finns någon lutning som gör att fler punkter kommer ännu närmare linjen? Å varför är första mätpunkten 0, 0 helig? Det borde ju vara lika svårt att "pricka" första stolpen som de andra? I så fall kanske han skulle prova s vt m. Vi ska hjälpa honom att utreda detta. ť Minsta kvadratmetoden Antag att vi har givet mätdata och vill anpassa en funktion till dessa "så bra som möjligt". Låt denna funktion allmänt tecknas y f x, , där x, y är den oberoende respektive beroende variabeln och en vektor med parametrar som ska bestämmas så anpassningen blir så bra som möjligt. Naturligtvis kan vi ha flera oberoende variabler, t.ex. T f x, f x, y, z, t , som modell för hur temperaturen varierar med tiden t på olika platser i rummet x, y, z . Vanligtvis kallas f för modellen och för modellparametrarna. Exempelvis HH/ITE/BN Minsta kvadratmetoden och Mathematica y kx y a y m k, m bx c0 3 a, b 2 c1 x c2 x c0 , c1 , c2 Det typiska är att vi måste välja modellen själva, se figur nedan där tre olika modeller är anpassade till samma mätdata. Minsta kvadratmetoden (MKM) hjälper sedan till med att bestämma parametrarna . Vi får alltså olika anpassningar beroende på vilka val vi gör. Detta är viktigt att förstå! Ofta är det så att man vet vilka funktioner som ska ingå i f. Kanske har man en matematisk modell där man behöver trimma några parametrar mot försök. I Minsta kvadratmetoden måste man välja modellen själv och man får olika anpassningar beroende på vilka val man gör! Det är viktigt att man väljer funktioner i modellen så att den på ett kvalitativt sätt fångar det man vet om systemet som studeras, t.ex. y då x 0 eller y 0 då x . I figuren nedan ser vi också att det är mycket vanskligt att använda modellen utanför mätområdet. Detta kallas extrapolation till skillnad mot interpolation då man befinner sig i det område som omsluts av mätområdet. Notera också i figuren att med ett komplicerat modellval så kan man lätt få den att gå genom alla mätpunkter, exempelvis ett polynom av grad n definieras entydigt av n 1 mätpunkter. Men detta kan vara en mycket dålig representation av den bakomliggande fysikaliska modellen, som kanske bättre speglas av de två "mindre nervösa" modellerna, speciellt om man tänkt sig tillåta "lite" extrapolation. Spridningen i mätdata kan helt enkelt bero på svårigheter vid mätningen. Den kraftiga översvängningen vid ändpunkterna av mätområdet som uppstår vid approximation med polynom av höga gradtal brukar kallas Runges fenomen, Carl Runge (1856-1927), se den gröna kurvan. y 5 4 f x kx m 3 f x ax2 bx c 2 f x c6 x6 c5 x5 c1 x c0 1 1 Interpolation 3 4 2 5 6 x 7 Minsta kvadratmetoden vilar på gamla kända kunskaper, nämligen minimering av en i detta fall kvadratisk funktion. Därav namnet. Antag att vi har en uppsättning mätdata med n st mätpunkter, se fig nedan från vänster till höger. Bilda nu vid varje mätpunkt xi , yi och det uppmätta värdet yi , det vill säga Εi f xi , yi . Nu är det lika illa om mätpunkten ligger felet Εi mellan modell f xi , över som under modellen. Välj därför i stället att studera Ε2i och lägg samman dem alla. y 6 xi ,yi 5 x1 y1 x2 y2 Εi 4 xi , f xi , S 3 xn yn n 2 i 1Εi Ε21 Ε22 Ε2n n i 1 f xi , yi 2 2 1 0 0 1 2 3 4 5 6 x En kvadratsumma är alltid icke-negativ, det vill säga S 0, och i det ideala fallet S 0 går modellen genom alla mätpunkter. Eftersom alla mätpunkter är applicerade blir S en funktion av parametrarna, det vill säga S . Minsta kvadratmetoden går nu ut på att minimera S med avseende på parametrarna . min S Man säger att f är anpassad i minsta kvadratmetodens mening. Vi drar oss nu till minnes att söka minimum till en funktion är det samma som att söka nollställe till derivatan. Eftersom vi har flera variabler i måste vi simultant söka nollställe till respektive derivata. Att derivera en funktion av flera variabler med avseende på någon speciell variabel kallas för partiell derivata och skrivs med i stället för . Inget märkvärdigt, man gör som vanligt, det vill säga deriverar med avseende på den variabel som önskas och låter de andra vara konstanter vilka som helst. Vi tar ett Exempel: Låt funktionen g x, y x3 5y 4xy2 xsin 2 y 7 vara given. Bestäm de partiella derivatornna g x och g y . 4 Minsta kvadratmetoden och Mathematica Lösningsförslag: Vi får direkt g 3x2 x Så att söka minimum av S, min S 4y2 g sin 2 y och 5 y 8x y HH/ITE/BN 2xcos 2 y . S , blir då att lösa ekvationssystemet S p1 0 S p2 0 Alltså ett ekvationssystem med lika många ekvationer som vi har modellparametrar p1 , p2 , . Om detta blir linjärt har vi linjär minsta kvadratmetod annars olinjär. En linjär modell har vi alltid om modellen kan skrivas som en skalärprodukt mellan . Exempelvis har vi modeller som leder till ingående funktioner och modellparametrarna, det vill säga f x, f1 , f2 , linjär MKM y y kx kx y x , x, 1 , m c0 2 c1 x k k, m 2 c2 x 1, x, x , c0 , c1 , c2 Vid linjär MKM har S endast ett lokalt minimum, som då också är globalt, med entydig lösning som följd. Tryggt! I detta fall finns till vår hjälp i Mathematica en lättanvänd funktion som heter just "anpassa", Fit[data,f,x]. Den matas med mätdata i form av . en matris med två kolonner xi , yi samt en vektor med och levererar sedan f på direkt användbar form Låt oss nu använda det typiska exemplet y processen. Först summan av alla kvadratfel f x, kx m, med modellparametrarna S n i 1 kxi m yi k, m , som modell och arbeta igenom 2 Med inre derivata i färskt minne får vi så ekvationssystemet som bestämmer min S S k S m min k,m S n i 12 kxi m yi xi n i 12 kxi m yi 0 n 2 i 1 xi n i 1 xi 0 n i 1 xi n i 1 xi yi n i 1 yi k m n (1) Exempel: Studera Anders problem. Lösningsförslag: Först den modell som går genom origo, det vill säga s S 6 i 1 72 142 vti si S v 2 6 i 12 vti vt si ti t v 0 v . Vi får 6 2 i 1 ti 6 i 1 ti si där 6 2 i 1 ti 6 i 1 ti si 02 0 0 7 100 222 292 14 200 362 22 300 Provkör Fit[data,f,x] på Anders problem. Med s s1 vt 2866 29 400 t v 36 500 39 700 2866 v 39 700 13.8521 får vi direkt Fit data, t , t 13.8521 t Vi känner igen resultatet från handräkningen ovan. Sedan över till hans fundering s vt m t, 1 v m . Vi startar direkt med slutresultatet av minimeringen (1) ovan. Kontrollräkna gärna! 6 2 i 1 ti 6 i 1 ti 6 i 1 ti n v m 6 i 1 ti si 6 i 1 si 2866 108 v m 108 6 39 700 1500 v m 1 461 6350 950 13.7744 2.06074 Visst, Mathematica instämmer s2 Fit data, t, 1 , t 13.7744 t 2.06074 En liten jämförelse visar att han har mätt väl. Modellerna är inte lika och i detta fall är skillnaden nästan av akademiskt intresse, men indikerar ändå det viktiga att olika funktionsval ger olika modeller. Vi avslutar med att muppa in data och båda modellerna i samma diagram. Detta återkommer i tid och otid, bara så du vet ! HH/ITE/BN Plot Minsta kvadratmetoden och Mathematica 5 s1 , s2 , t, 0, 40 , PlotStyle Blue, Orange , AxesLabel Epilog Red, PointSize 0.03 , Point data "t", "si ,s1 ,s2 " , si ,s1 ,s2 500 400 300 200 100 10 20 30 40 t Om vi har en linjär modell kan vi också komma fram till det önskade ekvationssystemet genom att studera det överbestämda ekvationssystemet som i fallet y f x, kx m blir x1 1 x2 1 xn 1 k m y1 y2 yn Detta överbestämda ekvationssystem har i allmänhet ingen lösning eftersom vi har fler ekvationer än obekanta. Man kan visa att det kan ges en lösning i minsta kvadratmetodens mening, och vi börjar med att övertyga oss genom en geometrisk betraktelse. är då en vektor i planet med som komponenter i basen k . Eftersom inte löser Kolonnerna k i spänner upp ett plan och ligger följaktligen inte i planet. Då är residualvektorn en vektor som går från spetsen på till spetsen på i planet. Minsta kvadratmetoden motsvarar då att söka minimum av . Vi kommer ihåg att närmsta vägen från en punkt till ett plan då är vinkelrät mot alla basvektorerna k i planet, det vill säga går vinkelrät mot planet. Detta innebär att vi har minimum av kolonnerna i . Mera formellt har vi min 2 1 0 2 0 min 2 2 . Vi kallar för det utjämnade systemet eller normalekvationerna till det överbestämda ekvationssystemet ovan. Koefficientmatrisen är alltid både kvadratisk och symmetrisk beroende på just konstruktionen . Man kan visa att normalek1 1 , där kallas pseudoinversen till . Naturligtvis bestäms inte vationerna alltid har en lösning på detta kostsamma sätt med inverser utan med Gausselimination direkt på normalekvationerna. Om är överbestämt kallas normalekvationerna och har entydig lösning i minsta kvadratmetodens mening. Vi provar på Anders modell s vt m. Vi ser att koefficientmatrisen är både kvadratisk och symmetrisk som sig bör. Kontrollräkna gärna matrisgodiset och ekvationslösningen som följer, vilken åter igen levererar parametrarna i minsta kvadratmetodens mening ,1 & 0 7 14 22 29 36 1 1 1 1 1 1 NSolve m data All, 1 ; 0 7 14 22 29 36 2866 108 1 1 1 1 1 1 108 6 . . v, m 2.06074, v 13.7744 Med samma resultat som ovan. .data All, 2 . .data All, 2 39 700, 1500 6 Minsta kvadratmetoden och Mathematica HH/ITE/BN Så här via normalekvationerna kan man alltid gå då man har linjär minsta kvadratmetod. Vid olinjär modell är man placerad i osäker terräng och har man väl hittat ett minimum kan det alltid ifågasättas om det är ett globalt. Till hjälp finns FindFit, (N)Minimize och (N)Maximize som utger sig för att kunna leverera globalt optimum. De två sistnämnda kan även matas med bivillkor. Fördelen med FindFit är att man inte behöver formulera kvadratsumman explicit utan kan ange mätdata och den olinjära modellen som indata. Utöver dessa finns naturligtvis de gamla kända FindMinimum och FindMaximum som då i någon mening får anses vara något omsprungna av de tre tidigare nämnda. Det finns även specialpaket Statistics`NonlinearFit`, NumericalMath`PolynomialFit`, NumericalMath`SplineFit` och NumericalMath`TrigFit`. Hittills har vi behandlat diskret minsta kvadratmetod eftersom vi anpassat en modell till ett ändligt antal mätpunkter. Om vi i någon mening låter antalet mätpunkter växa obegränsat får vi kontinuerlig minsta kvadratmetod. min S min n i 1 f xi , 2 yi min f x, yx 2 x n Som sinnebild kan man se detta som att man minimerar den målade arean som innestängs mellan (modell)funktionen f x, och funktionen y x i intervallet , fast inte riktigt eftersom vi kvadrerar integranden. Detta kan komma till användning då man i ett intervall vill approximera en besvärlig funktion med någon enklare. Även här har vi de två fallen med linjär och olinjär minsta kvadratmetod. Exempel: Som illustration till kontinuerlig minsta kvadratmetod väljer vi att i intervallet 2 med den betydligt enklare linjära modellen f x, och a, b, c de sökta modellparametrarna. ax bx 2 c x , x, 1 a, b, c 0, 1 approximera y , där x 1 sin 10 10x 2 x , x, 1 är funktionsvalen Lösningsförslag: Med ett snabbt hack och ointressanta utdataceller undertryckta 1 a, b, c ; f x2 , x , 1. ; S f 0 x 2 1 Sin 10 x x; 10 får vi så en inblick i skådespelet Plot x 1 Sin 10 x , f . Solve D S, 0& First, x, 0, 1 , 10 PlotStyle Red, Blue , AxesLabel "x", "y x ,f x, " y x , f x, 2.5 2.0 1.5 0.2 0.4 0.6 0.8 1.0 x Som läsaren säkert upptäckt nu så är minsta kvadratmetoden inget som räknas för hand. Eftersom den är mycket vanlig i praktiken och då kanske matas med flera tusen mätpunkter och modeller med många parametrar och komplicerade funktioner överlämnas gärna råräknandet till datorerna. Det viktiga är att man vet vad man gör innan man lämnar över till Mathematica som har effektiva lösare för alla förekommande minsta kvadratmodeller. Som avslutning ska man rita modell och mätdata i samma diagram och göra en visuell betraktelse av hur noggrant modellen ansluter till mätdata. Detta är inte helt lätt då antalet oberoende variabler i modellen är större än två, då får man studera olika modeller och deras kvadratfel. Med andra ord så ligger det lite "godtycke" med i metoden och vid komplicerade problem bör någon erfaren person konsulteras så man inte sprider illäror med en modell som är helt uppåt väggarna! Var noga med modellval, "man får den anpassning man förtjänar" och undvik interpolation i mätområdets utkanter samt befatta dig inte med extrapolation! Resten av skriften är en bukett exempel, de flesta utan bakgrund och med få mätpunkter för att hålla beräkningsvolymen på en beskedlig nivå. Utanför skolans värld krävs definitivt information om vilket system som det är mätt på och fler mätpunkter för att kunna göra ett välunderbyggt val av modell! Vi avslutar med några sådana exempel. HH/ITE/BN Minsta kvadratmetoden och Mathematica 7 ť Blandade exempel för resten Exempel: Använd MKM för att anpassa en rät linje p1 x spolynom p3 x c3 x3 c2 x2 c1 x c0 till mätpunkterna x kx m, ett andragradspolynom p2 x 1 2 ax2 bx c och ett tredjegrad- 3.5 5.8 y 1.1 1.8 4 5.5 Lösningsförslag: Typisk råräkning. Börja med räta linjen och möblera det överbestämda ekvationssystemet x1 1 x2 1 k m xn 1 y1 y2 yn med hjälp av givna mätdata 1 2 3.5 5.8 1.1 1.8 4 5.5 data ,1 & 1 2 3.5 5.8 ; data All, 1 1 1 1 1 Bestäm nu k och m enligt MKM receptet och normalekvationerna . . Vi tar lite matrisgodis på vägen .data All, 2 1 2 3.5 5.8 50.89 12.3 1 1 1 1 12.3 4. k m 50.6, 12.4 Slutligen de efterlängtade. Solve k . . k, m 0.954276, m .data All, 2 0.165602 Å så en liten bild Plot k x m . Epilog , x, 0, 7 , PlotStyle Blue, AxesLabel Red, PointSize 0.03 , Point data "x", "yi ,f x, " , yi , f x, 7 6 5 4 3 2 1 1 2 3 4 5 6 7 x Det går även bra att direkt använda funktionen Fit. Här väljer man vilka funktioner man vill använda, i retur kommer en linjärkombination av dessa i MKM:s mening. p1 Fit data, 1, x , x 0.954276 x 0.165602 Med samma resultat som ovan. Vi provar nu med ett andragradspolynom, p2 x att möblera det överbestämda ekvationssystemet ax2 bx c. Detta går naturligtvis att lösa genom 8 Minsta kvadratmetoden och Mathematica x21 x1 1 x22 x2 1 x2n xn 1 Först a b c y1 y2 yn , sedan lite matrisgodis och slutligen parametrarna ur normalekvationerna 2 , , 1 & HH/ITE/BN . data All, 1 1 1 1 4 2 1 12.25 3.5 1 33.64 5.8 1 . .data All, 2 1 4 12.25 33.64 1 2 3.5 5.8 1 1 1 1 Solve a 1298.71 246.987 50.89 246.987 50.89 12.3 50.89 12.3 4. . . a, b, c 0.0735314, b 242.32, 50.6, 12.4 .data All, 2 1.46352, c 0.464835 Man ska kunna genomföra kalkylen den hårda vägen via normalekvationerna ovan, men att för hand multiplicera ihop och lösa ett ekvationssytem med tre obekanta är direkt olämpligt i datorernas tidevarv! Det viktiga är att förstå hur det fungerar, sedan överlämnar man gärna råräknandet! I praktiken hade man valt den lätta vägen med Fit[data,f,x]och istället lagt kraft på att prova några olika modeller Fitdata, 1, x, x2 , x p2 0.0735314 x2 1.46352 x 0.464835 Avslutningsvis de två modellerna tillsammans med mätdata. Jag har varnat Plot p1 , p2 , x, 0, 7 , PlotStyle Blue, Orange , AxesLabel "x", "yi ,p1 ,p2 " , Epilog Red, PointSize 0.03 , Point data yi , p1 , p2 6 4 2 1 2 3 4 5 6 7 x Avslutningsvis modellen med tredjegradspolynom direkt med Fit[data,f,x]. Fitdata, 1, x, x2 , x3 , x p3 0.108543 x3 1.0122 x2 1.57679 x 1.77314 Det är nu bara att välja den modell som önskas beware Plot p1 , p2 , p3 , x, 0, 7 , PlotStyle Blue, Orange, Green , AxesLabel "x", "yi ,p1 ,p2 ,p3 " , Epilog Red, PointSize 0.03 , Point data yi , p1 , p2 , p3 6 4 2 1 2 3 4 5 6 7 x HH/ITE/BN Minsta kvadratmetoden och Mathematica Exempel: Anpassa med minsta kvadratmetoden y x 9 bx2 till mätvärdena a x 5 7.5 12 15 25 y 13.1 18.1 70.2 109 301 Lösningsförslag: De fem mätvärdena möblerar och i det överbestämda ekvationssystemet 1 x21 a b x22 1 y1 y2 a b för de sökta parametrarna a och b, där 5 7.5 12 15 25 13.1 18.1 70.2 109 301 data 2 1, & ; data All, 1 1 25 1 56.25 1 144 1 225 1 625 a b De efterlängtade parametrarna a och b levereras nu av normalekvationerna . .data All, 2 1 1 1 1 1 5. 1075.25 25 56.25 144 225 625 1075.25 465 775. Solve a . Kontrollräkna! . . a, b 2.36283, b 511.4, 224 104. .data All, 2 0.486598 Eller direkt med Fit. Fitdata, 1, x2 , x f 0.486598 x2 2.36283 En bild piggar alltid upp Plot f, x, 0, 25 , PlotStyle Blue, AxesLabel Epilog Red, PointSize 0.03 , Point data "x", "yi ,f x, " , yi , f x, 300 250 200 150 100 50 5 10 15 20 25 x Exempel: Anpassa med minsta kvadratmetoden y x ax bx2 till mätvärdena x 2 3 y 1.9 0.1 Lösningsförslag: De fyra mätvärdena möblerar och x1 x21 x2 x22 5 11 8 39 i det överbestämda ekvationssystemet a b y1 y2 a b 10 Minsta kvadratmetoden och Mathematica HH/ITE/BN för de sökta parametrarna a och b, där 2 3 1.9 0.1 data 2 , & 5 11 8 39 ; data All, 1 2 4 3 9 5 25 8 64 Bestäm nu a och b enligt MKM receptet och normalekvationerna . . Kontrollräkna! .data All, 2 2 3 5 8 102 672 4 9 25 64 672 4818 Solve a a b . . a, b 2.70872, b 362.9, 2762.5 .data All, 2 0.951174 Eller direkt med Fit. Fitdata, x, x2 , x f 0.951174 x2 2.70872 x Javisst, vi vill se en bild Plot f, x, 2, 8 , PlotStyle Blue, AxesLabel Epilog Red, PointSize 0.03 , Point data "x", "yi ,f x, " , yi , f x, 3 4 5 6 7 8 x 10 20 30 40 Exempel: Kväve och syre har atommassorna N 14 och O 16. I tabellen nedan finns experimentellt uppmätta molekylmassor för sex olika kväveoxider. Använd minsta kvadratmetoden för att bestämma kvävets och syrets atommassor. NO N2 O NO2 N2 O3 N2 O4 N2 O5 30.01 44.01 46.03 75.98 92.02 108.01 Lösningsförslag: Lite olika blandningar av "äpplen och päron" på vågen. De sex vägningarna möblerar mN för de sökta atommassorna. ekvationssystemet mO 1 2 1 2 2 2 1 1 2 3 4 5 ; 30.01, 44.01, 46.03, 75.98, 92.02, 108.01 ; Bestäm nu mN och mO enligt MKM receptet och normalekvationerna . . 1 2 1 2 2 2 18 29 1 1 2 3 4 5 29 56 Solve mN . . m N , mO 14.0008, mO 16.0023 716.08, 1302.15 . mN mO . Kontrollräkna! och i det överbestämda HH/ITE/BN Minsta kvadratmetoden och Mathematica Exempel: Anpassa med minsta kvadratmetoden y x x ax b 11 till mätvärdena x 1 2.5 4 6 8 y 1 1.5 2 2.5 3 Lösningsförslag: Här har vi en olinjär modell, men kan efter omskrivning lineariseras och möblera ett överbestämt ekvationssystem. x 1 ax b x 0 y y ax b x 1 y a b x 1 1 x1 1 1 x2 a b 1 y1 a b 1 y2 för de sökta parametrarna a och b, där 1 2.5 4 6 8 1 1.5 2 2.5 3 data ; 1 & 1, data All, 1 1 1 1 0.4 1 1 4 1 1 6 1 1 8 Bestäm nu a och b enligt MKM. Kontrollräkna gärna matrisgodiset och ekvationslösningen som följer . 1 1 1 . data All,2 1 1 1 1 0.4 1 1 1 4 6 8 5. 1.94167 1.94167 1.2659 2.9, 1.5 1 Solve . . a, b . data All, 2 a 0.2964, b 0.730302 Här kan det vara lämpligt att introducera den olinjära hjälpredan FindFit som sväljer modellen med hull och hår x , a, b , x FindFitdata, ax a 0.212872, b b 1.0605 Ok, dé får väl bli en bild då x Plot . ax , x, 1, 9 , PlotStyle PlotRange 0, 4 , Epilog "x", "yi ,f x, Red, PointSize 0.03 , Point data yi , f x, 4 3 2 1 2 Blue, AxesLabel b 4 6 8 x " , 12 Minsta kvadratmetoden och Mathematica Exempel: Sambandet mellan trycket p och volymen v i en gas följer lagen pvn minsta kvadratmetoden och mätserien HH/ITE/BN c, där n och c är konstanter. Bestäm dessa med v 4.60 7.20 10.1 15.3 20.4 30.0 p 14.2 7.59 4.74 2.66 1.78 1.04 Lösningsförslag: Här har vi en olinjär modell, men kan lineariseras efter logaritmering av båda sidor n pv c ln p nln v ln c ln c nln v ln p 1 1 ln v1 ln v2 ln c n ln p1 ln p2 ln c n Nu finns det fotspår i sanden 4.60 7.20 10.1 15.3 20.4 30.0 14.2 7.59 4.74 2.66 1.78 1.04 data 1, 1 1 1 1 1 1 Log & ; data All, 1 1.52606 1.97408 2.31254 2.72785 3.01553 3.4012 Bestäm nu ln c och n enligt MKM receptet och normalekvationerna . lnc . .Log data All, 2 1 1.52606 lncÅn ln c n 1 1.97408 Solve 4.77908, n 1 2.31254 1 2.72785 . . lnc, n 1 3.01553 1 6. 3.4012 14.9573 .Log data All, 2 14.9573 39.6764 First 1.39359 Så modellen lnc p . lncÅn vn 118.995 v1.39359 Eller direkt med den olinjära hjälpredan c FindFitdata, , c, n , v vn c 119.337, n 1.39505 Detta eviga ritande Plot p, v, 0, 25 , PlotStyle Blue, AxesLabel Epilog Red, PointSize 0.03 , Point data pi , p v 35 30 25 20 15 10 5 5 10 15 20 25 v "v", "pi ,p v " , 7.83027, 16.1894 HH/ITE/BN Minsta kvadratmetoden och Mathematica Exempel: Efter att en sjö försetts med ett antal fiskyngel uppskattades, bl.a. från åtgången av mat, hur antalet fiskar f utvecklades över tiden t mätt i år. Man fick följande tabell t f 1 2 3 4 5 6 7 8 9 10 fiskar 1000 800 . 100 210 360 550 720 840 910 940 950 960 600 400 I många biologiska sammanhang visar det sig att den så kallade logistiska f modellen fungerar mycket bra. Denna har formen f t 1 f f0 , kt 1 13 200 där de tre parametrarna f , f0 och k styr dess utseende. Anpassa denna 0 2 4 6 8 10 t år modell till data i tabellen och uppskatta hur många fiskyngel som planterades ut från början f0 samt hur många fiskar det kommer att finnas vid jämvikt f , det vill säga efter lång tid. Lösningsförslag: Vi har en typisk ickelinjär modell, med data och föreslagen modell. f 1 2 3 4 5 6 7 8 9 10 100 210 360 550 720 840 910 940 950 960 data ; modell ; 1 f kt 1 f0 Vi tar direkt hjälp av Mathematicas funktion för olinjär MKM. Vi kan därefter direkt avläsa de önskade parametrarna och rita en liten figur ända från år noll då utplanteringen skedde. FindFit data, modell, f , f0 , k , t 967.146, f0 f 49.6372, k 0.799629 Plot modell . , t, 0, 10 , AxesLabel "t PlotRange Automatic, 0, 1000 , Epilog år ", "fiskar" , PlotStyle Blue, Red, PointSize 0.03 , Point data fiskar 1000 800 600 400 200 0 2 4 6 8 10 t år Exempel: Inte sällan har man nödvändigtvis en modell som genererar ett icke linjärt system. Ta som exempel tomtegröt som ju avsvalnar enligt Newtons avsvalningslag T t k T0 T . Lösningen får den välkända formen T t a kt b , där parametrarna a, b och k ingår olinjärt. Antag att tomten nedtecknat följande mätserie. t min 1 3 5 10 15 20 T C 75 55 40 28 25 23 n 2 i 1Εi . Lösningsförslag: På grund av olinjäriteten måste vi angripa problemet med en direkt minimering av felsumman S Mätdata och modell 1 3 5 10 15 20 75 55 40 28 25 23 data ;T t : a kt b Felet vid varje mätpunkt Ε a data All, 2 b Felsumman S S a k 75, a n 2 i 1 Εi T data All, 1 b 3k 55, a b 5k 40, a b 10 k 28, a b 15 k 25, a b 20 k 23 får vi nu enklast om vi betraktar Ε som en vektor. En enkel skalärprodukt gör jobbet. Ε.Ε b 20 k 2 23 a b 15 k 2 25 a b 10 k 2 28 a b 5k 2 40 a Sedan minimering. FindMinimum kräver som vanligt en startpunkt där den ska börja leta b 3k 2 55 a b k 2 75 14 Minsta kvadratmetoden och Mathematica Smin , HH/ITE/BN FindMinimum S, a, 20 , b, 50 , k, 0.5 3.4631, a 23.0881, b 68.0623, k 0.264998 Alltså modellen T t . 23.0881 68.0623 0.264998 t Visst blir man glad av upprepningar Plot T t . , t, 0, 30 , PlotStyle Blue, AxesLabel "t min ", "Ti ,T t PlotRange 0, 100 , Epilog Red, PointSize 0.03 , Point data Ti ,T t 100 C " , C 80 60 40 20 0 5 10 15 20 25 30 t min Om vi namnmässigt korsar FindMinimum med Fit får vi den i särklass enklaste funktionen att använda. Inte ens startvärde behövs i det olinjära fallet! FindFit data, T t , a, b, k , t a 23.0881, b 68.0623, k 0.264998 Exempel: För att studera en människas rörelser under gång har man utvecklat en datormodell. För att generera indata till denna utgår man från fotografier som tagits vid åtta tillfällen under två steg, en period. Tiden för en period är normerad till 1 för att enklare kunna simulera olika gånghastigheter. I nedanstående tabell är knävinkeln i grader angivet för de olika tidpunkterna. För att unvika minst sagt ryckig gång på datorskärmen vill man givetvis anpassa en funktion som levererar en vinkel vid godtycklig tidpunkt t. data 0 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1 180 160 165 175 170 130 110 150 180 ; Lösningsförslag: Här är det viktigt att använda en periodisk funktion så att vi får en kontinuerlig gånghastighet (derivata) över periodgränsen. Använd en harmonisk funktion som automatiskt tar hand om periodiciteten, en så kallad Fourierserie, här 3 t bk sin 2Πkt , med modellparametrarna a0 , a1 , b1 , a2 , b2 , a3 , b3 eftersom b0 0. Så modellen direkt k 0 ak cos 2Πkt färdigmöblerad. f 1, Cos 2 Π t , Sin 2 Π t & 1, 2, 3 Flatten 1, cos 2 Π t , sin 2 Π t , cos 4 Π t , sin 4 Π t , cos 6 Π t , sin 6 Π t Fit data, 23.4727 sin 2 Π t Varför inte rita lite f, t 8.75 sin 4 Π t 4.02728 sin 6 Π t 3.55055 cos 2 Π t 18.9167 cos 4 Π t 1.78278 cos 6 Π t 155.083 HH/ITE/BN Plot Minsta kvadratmetoden och Mathematica 15 , t, 0, 1 , PlotStyle Blue, AxesLabel "t", " i , t, " , PlotRange 100, 200 , Epilog Red, PointSize 0.03 , Point data i , t, 200 180 160 140 120 0.0 0.2 0.4 0.6 0.8 1.0 t Eftersom det i båda ändpunkterna är uppmätt 180 bör man kan kanske kontrollera att ingen översvängning skett. Knävinklar över 180 är klart ohälsosamma FindMaximum 179.523, t , t, 1 0.99025 Exempel: En teknik som används på sjukhus för att mäta kapaciteten (volym och blodflöde) i ett inre organ i kroppen är att använda sig av ett spårämne eller kontrastvätska. En känd mängd av spårämnet injiceras i ingående artär strax intill organet. I utgående ven mäter man sedan hur spårämnets koncentration c i blodet varierar med tiden. I tabellen nedan ses resultatet av en sådan undersökning sedan 5 mg av ett spårämne injicerats. tid s 0 1 2 3 4 c mg l 0 0 0 0.1 1.8 tid s 5 6 7 8 9 c mg l 3.0 3.8 4.4 4.9 5.2 tid s 10 11 12 13 14 c mg l 5.4 5.6 5.7 5.8 4.2 tid s 15 16 17 18 19 c mg l 3.0 2.1 1.5 1.1 0.8 tid s 20 21 22 23 24 c mg l 0.6 0.4 0.4 0.2 0.1 Uppgiften är nu att ta fram en modell där såväl blodflödet i [l/s] som organets volym i [l] kan bestämmas. Lösningsförslag: Mätdata enligt uppgift. Tid i kolonn ett och koncentration i kolonn två. data 0 0 5 1 0 6 SortPartitionFlatten 2 0 7 3 0.1 8 4 1.8 9 3.0 3.8 4.4 4.9 5.2 10 11 12 13 14 5.4 5.6 5.7 5.8 4.2 15 16 17 18 19 3.0 2.1 1.5 1.1 0.8 20 21 22 23 24 0.6 0.4 0.4 , 2; 0.2 0.1 En bild förtydligar det som berättas i tabellen. ListPlot data, Joined True, AxesLabel "t s ", "ci mg l " , PlotStyle Red, Epilog Red, PointSize 0.025 , Point data ci mg l 6 5 4 3 2 1 5 10 15 20 t s När koncentrationen ökar från noll till dess den klingar av från maximum, det vill säga i intervallet [3,13] s, har vi själva injiceringsfasen på andra sidan organet, alltså under 10 s. Antag att vi har ett organ med konstant volym och perfekt omrörning, samt att injektionen sker med konstant flöde under de 10 sekunderna. Från en kurs i analys känner vi kanske igen differentialekvationen för kontinuerlig blandning 16 Minsta kvadratmetoden och Mathematica q,cin q,ct V , ct HH/ITE/BN c t V q cin c där c c t [mg/l] är koncentrationen av spårämnet i organet samt de sökta modellparametrarna V [l] organets volym, q [l/s] flödet genom organet och cin [mg/l] inkommande spårämnets koncentration. Tillsammans med begynnelsevärdet c 3 0.1 blir lösningen c t till begynnelsevärdesproblemet 1 cAvt DSolveV c ' t q Cin c t ,c 3 , c t , t First FullSimplify 10 1 q t 3 c t 1 10 Cin 10 Cin V Denna icke-linjära modell ska nu anpassas till mätdata, under själva injiceringsfasen 3, 13 s, med hjälp av minsta kvadratmetoden. T, CT data Range 4, 14 3 4 5 6 7 8 9 10 11 12 13 0.1 1.8 3. 3.8 4.4 4.9 5.2 5.4 5.6 5.7 5.8 Felet i varje mätpunkt är skillnaden mellan det uppmätta värdet och vad modellen ger. CT Ε c t . cAvt . t 1 Cin T 1 10 10 Cin 1 q 0.1, 1 10 1 10 1 10 Cin V Cin 3., 10 1 10 Cin V Cin 4.9, 10 10 Cin V Cin 5.6, 1 Cin V 10 Cin 10 1 V 1 10 Cin 10 V 10 Cin 10 1 Cin 5.2, Cin 5.7, Cin V 4.4, 7q 1 10 Cin 1 10 Cin 10 1 9q 1 4q 3.8, 6q 1 2 i Εi . Bilda kvadratsumman av felen, S 10 Cin 10 1 8q 1 1.8, 3q 1 5q 1 Cin V 1 2q 1 10 Cin V Cin 5.4, Cin 5.8 10 q 10 V Beräknas lättast med skalärprodukt. Lägg även till kravet att hela dosen om 5 mg ska vara på plats efter injiceringsfasen 3, 13 s, det vill säga under 10 s. S Ε.Ε Cin q 10 1 5 2 2 10 q 1 10 Cin 10 Cin V 1 10 10 Cin V 1 10 10 10 Cin V 1 Cin 10 10 Cin V Cin 10 10 Cin Cin V 2 Cin 1.8 10 q Cin 5 2 1 5.2 10 1 10 Cin 5.6 V 2 Cin 4.9 Cin 3. 2 2q 10 V 2 1 Cin 10 Cin 1 3.8 Cin V 5q 1 10 3q 1 10 Cin 10 2 2 8q 1 2 V 1 4.4 q 1 10 Cin 1 5.7 6q 1 2 Cin V 1 5.4 4q 1 10 Cin 10 Cin 2 9q 1 2 7q 1 1 5.8 10 Cin 1 0.1 Vi har ett icke-linjärt minsta kvadratproblem, det vill säga de sökta parametrarna V , q och cin kan inte bestämmas ur ett linjärt ekvationssystem. På grund av doseringskravet om 5 mg kan vi inte använda den olinjära hjälpredan FindFit, så vi får tillgripa en generell minimeringsalgoritm Smin , FindMinimum S, V, 0.1 , q, 0.1 , Cin , 6 0.00555799, V 0.250346, q 0.0833842, Cin 5.99634 Varav den anpassade modellen, som naturligtvis bara gäller för t modell c t cAvt . 5.99634 5.89634 0.333076 t 3 En enkel jämförelse fås genom att lägga kurvorna ovanpå varandra. 3, 13 s. HH/ITE/BN Minsta kvadratmetoden och Mathematica 17 Plot c t . modell, t, 3, 13 , AxesLabel "t s ", "ci ,c t mg l " , PlotRange 0, 25 , Automatic , PlotStyle Blue, Thickness 0.02 , Epilog Red, Line data , PointSize 0.03 , Point data ci ,c t mg l 6 5 4 3 2 1 0 5 10 15 20 25 t s Ser bra ut. God överensstämmelse i det intervall, 3, 13 s, som anpassning skett. Även kravet på den injicerade mängden om 5 mg är uppfyllt Cin q 10 5 7.88861 10 31 2 . Mot bakgrund av ovanstående är det rimligt att svara: Organets volym V 250 ml, blodflöde q 83 ml/s och koncentration under injiceringsfasen cin 6 mg/l utom tävlan. Exempel: I många industriella tillämpningar behöver man mäta upp cirklar eller cirkelbågar. Ett utmärkt exempel är SKF med sina kul och rullager. Utifrån en given mätserie med x, y –punkter vill man få reda på centrum och radie på den cirkel som bäst anpassar sig, samt vilken noggrannhet man har. Här kommer minsta kvadratmetoden till användning. Lösningsförslag: En mätserie med x, y -punkter från en uppmätning är givna. En bild förtydligar som vanligt situationen. Graphics Red, Line Append data, First data , AxesLabel "x", "y" , Axes True y 5 4 3 2 1 2 3 x 4 Som modell ska vi anpassa en cirkel x centrum samt dess radie. x0 2 y y0 2 r2 , där modellparametrarna x0 , y0 och r är koordinaterna för cirkelns Vi tycker oss ha ett icke-linjärt minsta kvadratproblem, det vill säga de obekanta modellparametrarna kan inte bestämmas ur ett linjärt ekvationssystem, så vi tillgriper en generell minimeringsalgoritm för att minimera S. Bilda först felet i varje mätpunkt Ε x 2 0 y 0 2 r2 . x 1 ,y 2 & data; Eftersom de är ganska många visar vi bara de två första. Take Ε, 2 4.07418 0 2 3.1305 Bilda kvadratsumman av felen, S S 0 2 r2 , 4.06494 2 i Εi . 0 2 3.26086 0 2 r2 Beräknas lättast med skalärprodukt. Ε.Ε; Sök slutligen minimum. Bra startvärde får man genom att snegla på bilden ovan eller en enkel beräkning av medelvärden. 18 Minsta kvadratmetoden och Mathematica Smin , FindMinimum S, 1.77549, 1.99736, 0 0, 2.99473, r 0 2 , 0, HH/ITE/BN 3 , r, 2 2.0574 Nu kan vi inspektera skådespelet Show Graphics Red, Line Append data, First data Blue, Circle . , 0, 0 , r AspectRatio Automatic, AxesLabel , "x", "y" , Axes True y 5 4 3 2 1 2 3 x 4 Ser ju inte så illa ut! Felet i varje mätpunkt, eller åtminstone de fem första Take fel Ε . ,5 0.0987187, 0.112806, 0.221534, 0.111521, 0.019211 Till beloppet största felet Max Abs fel 0.272582 Ofta använt mått är det kvadratiska medelfelet fel.fel Length data 0.133247 n 2 i 1Εi En alternativ formulering får vi genom att som ovan låta S med Εi xi x0 2 yi y0 2 r2 . Efter derivation med avseende på x0 och y0 får vi de linjära normalekvationerna (visa gärna detta ;-) 1 n n 2 i 1 xi 1 n n i 1 xi yi n 2 i 1 xi n i 1 xi 1 n n i 1 xi yi n i 1 yi n 2 i 1 yi n i 1 xi 1 n n i 1 yi n 2 i 1 yi x0 y0 1 2 n 2 i 1 xi xi y2i n 2 i 1 yi xi y2i 1 n 1 n n i 1 xi n 2 i 1xi y2i n i 1 yi n 2 i 1xi y2i och slutligen radien 1 n r n i 1 xi x0 2 yi y0 2 En tredje variant som också leder till en linjär modell är att utveckla vänsterledet i cirkelns ekvation x Låt u r2 x20 x0 2 y y0 2 r2 x2 2xx0 x20 y2 2 y y0 y20 r2 2xx0 2 y y0 r2 y20 så har vi efter applicering av mätpunkterna ett linjärt överbestämt ekvationssysten 2x1 2 y1 1 2x2 2 y2 1 Därmed är vi trygga, så låt oss göra kalkylen. x0 y0 u x21 y21 x22 y22 x0 y0 u x20 y20 x2 y2 HH/ITE/BN Minsta kvadratmetoden och Mathematica Append 2 , 1 & . & data; 19 data; Sedan lösning av normalekvationerna. Solve u . . x0 , y0 , u 1.99736, y0 8.72498, x0 . First 2.99473 Varav till slut radien x20 u y20 . 2.0574 Avslutningsvis låter vi Mathematica komma till tals med den riktigt snabba varianten ;-) FindFitAppend 0 2.00759, 0 ,0 & 3.00478, r data, x 2.06441 0 2 y 0 2 r2 , 0, 0, r , x, y
© Copyright 2024