TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 26 november 2015 Sida 1 / 28

Relevanta dokument
15 februari 2016 Sida 1 / 32

TANA09 Föreläsning 5. Matrisnormer. Störningsteori för Linjära ekvationssystem. Linjära ekvationssystem

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 9 november 2015 Sida 1 / 28

Tillämpning: Bildinterpolation. Ekvationslösning. Integraler. Tillämpning: En båt. Räkning med polynom. Projekt. Tentamensinformation.

Minsta kvadratmetoden

Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

TANA09 Föreläsning 8. Kubiska splines. B-Splines. Approximerande Splines. B-splines. Minsta kvadrat anpassning. Design av kurvor och ytor.

NUMPROG, 2D1212, vt Föreläsning 1, Numme-delen. Linjära ekvationssystem Interpolation, Minstakvadratmetoden

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Föreläsning 5. Approximationsteori

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Kurvanpassning. Kurvanpassning jfr lab. Kurvanpassning jfr lab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

x 2 x 1 W 24 november, 2016, Föreläsning 20 Tillämpad linjär algebra Innehåll: Projektionssatsen Minsta-kvadratmetoden

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

Interpolation. 8 december 2014 Sida 1 / 20

Minsta-kvadratmetoden

Introduktion till MATLAB

Ortogonal dekomposition. Minstakvadratmetoden.

Optimeringsproblem. 1 Inledning. 2 Optimering utan bivillkor. CTH/GU STUDIO 6 TMV036c /2015 Matematiska vetenskaper

% Föreläsning 3 10/2. clear hold off. % Vi börjar med att titta på kommandot A\Y som löser AX=Y

Fö4: Kondition och approximation. Andrea Alessandro Ruggiu

TAIU07 Matematiska beräkningar med Matlab

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 2 november 2015 Sida 1 / 23

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 18:e augusti klockan

1.1 MATLABs kommandon för matriser

25 november, 2015, Föreläsning 20. Tillämpad linjär algebra

Teorifrågor. 6. Beräkna konditionstalet för en diagonalmatris med diagonalelementen 2/k, k = 1,2,...,20.

Institutionen för Matematik TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA DAG: Fredag 16 januari 2009 TID:

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A. t 2

TANA17 Matematiska beräkningar med Matlab

Laboration 4: Lineär regression

Linjär Algebra och Numerisk Analys TMA 671, Extraexempel

8. Euklidiska rum 94 8 EUKLIDISKA RUM

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

Moment 4.11 Viktiga exempel 4.32, 4.33 Övningsuppgifter Ö4.18-Ö4.22, Ö4.30-Ö4.34. Planet Ett plan i rummet är bestämt då

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

Moment 1.15, 2.1, 2.4 Viktiga exempel 2.2, 2.3, 2.4 Övningsuppgifter Ö2.2ab, Ö2.3. Polynomekvationer. p 2 (x) = x 7 +1.

Föreläsning 14: Exempel på randvärdesproblem. LU-faktorisering för att lösa linjära ekvationssystem.

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

Sammanfattning (Nummedelen)

Interpolation Modellfunktioner som satisfierar givna punkter

SF1624 Algebra och geometri Bedömningskriterier till tentamen Fredagen den 22 oktober, 2010

Linjära ekvationssystem

TANA17 Matematiska beräkningar med Matlab

Veckoblad 4, Linjär algebra IT, VT2010

a = a a a a a a ± ± ± ±500

2 Matrisfaktorisering och lösning till ekvationssystem

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Felfortplantning och kondition

Rapportexempel, Datorer och datoranvändning

Gamla tentemensuppgifter

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

8.5 Minstakvadratmetoden

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 13:e januari klockan

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

SF1624 Algebra och geometri Lösningsförslag till tentamen Lördagen den 5 juni, 2010 DEL A

Polynomekvationer. p 2 (x) = x x 3 +2x 10 = 0

TANA17 Matematiska beräkningar med Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

14. Minsta kvadratmetoden

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

Moment Viktiga exempel Övningsuppgifter

Minstakvadratmetoden

Linjär Algebra, Föreläsning 8

Dagens tema är exponentialfunktioner. Egentligen inga nyheter, snarare repetition. Vi vet att alla exponentialfunktioner.

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Där a = (1, 2,0), b = (1, 1,2) och c = (0,3, 1) Problem 10. Vilket är det enda värdet hos x för vilket det finns a och b så att

SF1624 Algebra och geometri

TAIU07 Matematiska beräkningar med Matlab

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

KTH 2D1240 OPEN vt 06 p. 1 (5) J.Oppelstrup

Mer om funktioner och grafik i Matlab

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

Mer om texter i MATLAB och om iterativ lösning av linjära ekvationssystem

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Polynomekvationer. p 2 (x) = x x 3 +2x 10 = 0

LYCKA TILL! kl 8 13

SF1624 Algebra och geometri

SF1624 Algebra och geometri Lösningsförsag till modelltentamen

TMV166 Linjär Algebra för M. Tentamen

Sidor i boken f(x) = a x 2 +b x+c

Linjär algebra I, vt 12 Vecko PM läsvecka 4

SF1513 NumProg för Bio3 HT2013 LABORATION 4. Ekvationslösning, interpolation och numerisk integration. Enkel Tredimensionell Design

Newtons metod. 1 Inledning. CTH/GU LABORATION 3 MVE /2014 Matematiska vetenskaper

Egenvärdesproblem för matriser och differentialekvationer

Del I: Lösningsförslag till Numerisk analys,

Lösningar tentamen i kurs 2D1210,

DN1230 Tillämpad linjär algebra Tentamen Onsdagen den 29 maj 2013

TAIU07 Matematiska beräkningar med Matlab

Linjär algebra och geometri I

November 6, { b1 = k a

Grafik och Egna funktioner i Matlab

Transkript:

TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 26 november 2015 Sida 1 / 28

Föreläsning 6 Minsta kvadrat problem. Polynom. Interpolation. Rötter. Tillämpningar: Cirkelpassning och analys av temperaturmätningar. 26 november 2015 Sida 2 / 28

Minsta Kvadratproblemet Exempel Vi vet att en fysikalisk storhet ges av y = Ax 1 + Bx 2, där A och B är konstanter vi vill bestämma och x 1 och x 2 är parametrar vi enkelt kan variera. Hur skall vi bestämma A och B? Lösning Genomför experiment och mät y för olika värden på(x 1, x 2 ). x 1 x 2 y 3.0 1.60 12.6 2.7 1.35 11.2 1.8 0.70 6.3 4.2 1.20 13.2 = 3.0 1.60 2.7 1.35 1.8 0.70 4.2 1.20 ( A B ) = 12.6 11.2 6.3 13.2 Nöjer vi oss med två mätningar får vi ett linjärt ekvationssystem. Fler mätningar bör gå att utnyttja för att få ett bättre resultat. 26 november 2015 Sida 3 / 28

Euklidisk Längd Den Euklidiska normen av en vektor x är n x 2 = i=1 x 2 i 1/2 I Matlab finns funktionen norm som beräknar normen x 2.. I Matlab >> x = [ 1 3-2 ] >> E = norm( x ) E = 3.7417 26 november 2015 Sida 4 / 28

Definition Låt A R m n m > n. Ekvationssystemet Ax = b är då överbestämt. Fler ekvationer än obekanta gör att det oftast inte finns en lösning. Istället minimerar vi residualen och löser min x R n Ax b. Fallet 2 är trevligt eftersom det är enkelt att lösa. Kallas Minsta kvadratproblemet. I statistiken kallas det Linjär Regression. 26 november 2015 Sida 5 / 28

b r = b Ax Ax span(a) Definiton Låt Ax = b vara ett överbestämt ekvationssystem. Den vektor x som minimerar Ax b 2 kallas minsta kvadrat lösningen. Sats Minsta kvadrat lösningen x satisfierar normalekvationerna A T Ax = A T b. Om kolumnerna i A är linjärt oberoende så är A T A icke-singulär. 26 november 2015 Sida 6 / 28

Exempel Lös Minstakvadrat problemet med A och b som tidigare >> A = [ 3.0 1.60 ; 2.7 1.35 ; 1.8 0.70 ; 4.2 1.20]; >> b = [12.6 11.2 6.3 13.2] ; >> C=A *A C = 37.1700 14.7450 14.7450 6.3125 >> x_mk = C\( A *b ) x_mk = 1.8734 4.4208 Vi får minsta kvadrat lösningen x = ( 1.873, 4.420) T. Hade valt x = ( 2, 4) T och b med ett slumpmässigt fel. 26 november 2015 Sida 7 / 28

I MATLAB tolkas x=a\b som ett minsta kvadrat problem om A är rektangulär. Det x som minimerar Ax b 2 beräknas. Exempel Med A och b som tidigare kan vi skriva >> x = A\b x = 1.8734 4.4208 Så snart A och b är definierade går det nästan alltid att skriva A\b. Vad som beräknas beror på dimensioner hos A och b. 26 november 2015 Sida 8 / 28

Modell Passning Exempel Vi will anpassa ett polynom p(t) = c 0 + c 1 t+c 2 t 2 till en uppsättning mätningar (t i, y i ), 1 i m. 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0-0.2 0 0.2 0.4 0.6 0.8 1 1.2 Formulera detta som ett överbestämt ekvationssystem och lös med minsta kvadratmetoden. 26 november 2015 Sida 9 / 28

Lösning Antag att data (t i, y i ) lagrats som två vektorer t och x. Då fås >> A=[ t.^0 t.^1 t.^2]; b=y; c= A\b;x >> tt=0:0.1:2;yy=c(1)+c(2)*tt+c(3)*tt.^2; >> plot(t,y, r+,tt,yy); 1.2 1 0.8 0.6 0.4 0.2 0-0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 Vi får en vektor >> c ans = 0.0400-0.1073 0.7112 26 november 2015 Sida 10 / 28

Funktionen polyfit beräknar ett polynom p(t) som approximerar punkterna (t i, y i ) enligt minsta kvadrat metoden. Skriver vi i Matlab fönstret >> P = polyfit( t, y, 2 ) P = 0.7112-0.1073 0.0400 så beräknas koefficienterna(c 1, c 2, c 3 ) T för det andragrads polynom som bäst approximerar punkterna (t i, y i ). 26 november 2015 Sida 11 / 28

Funktionen polyval beräknar polynomets värden för ett antal t värden. Skriver vi i Matlab fönstret >> y = polyval( P, t ); så beräknas en vektor y sådan att y i = p(t i ). 26 november 2015 Sida 12 / 28

Exempel Hitta det polynom som interpolerar punkterna Hitta ett polynom p n (x) som interpolerar värdena i tabellen x 0.0 0.3 0.6 0.9 f(x) 1.23 1.57 1.35 1.09 Plotta polynomet p(x) tillsammans med punkterna (x i, f(x i )) i en graf. Lemma Ett polynon p n (x), av gradtal n, blir entydigt bestämt om vi anger (n+1) interpolations villkor p n (x i ) = y i. 26 november 2015 Sida 13 / 28

1.6 1.5 1.4 1.3 1.2 1.1 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 I Matlab skriver vi >> x=0:0.3:0.9; y=[1.23 1.57 1.35 1.09]; >> p3=polyfit(x,y,3) p3 = 3.2099-6.0000 2.6444 1.2300 >> xx=0:0.01:0.9; >> plot(x,y, r+,xx,polyval(p3,xx), b- ) 26 november 2015 Sida 14 / 28

Funktionen roots hittar alla rötter till ett polynom med coefficienter c = (c n 1,..., c 0 ). Exempel Hitta rötterna till polynomet p(x) = 1.2 2.0x+1.7x 2 0.2x 3. I Matlab skriver vi >> r = roots( [ -0.2 1.7-2.0 1.2 ] ); r ans = 7.2320+0.0000i 0.6340-0.6540i 0.6340+0.6540i >> >> polyval( [ -0.2 1.7-2.0 1.2 ], r(1) ) ans = 3.0198e-14 Vi har hittat en rot! 26 november 2015 Sida 15 / 28

Exempel Vi har ett antal punkter (x k, y k ) som borde ligga på en cirkel. 6 5.5 5 4.5 4 3.5 3 2.5 2 1.5-1 0 1 2 3 4 Hur kan vi använda Minstakvadrat metoden för att uppskatta centrum och radie för cirkeln? 26 november 2015 Sida 16 / 28

Lösning Varje punkt (x, y) T på cirkeln uppfyller ekvationen F(u) = a(x 2 + y 2 )+b 1 x+b 2 y+1 = 0, där u = (a, b 1, b 2 ) T är okända parametrar. Centrum och radie för cirkeln ges av z = (x 0, y 0 ) T = ( b 1 2a, b 2 2a )T, och, r 2 = b2 1 + b2 2 4a 2 1 a. Vi behöver två funktioner 1. Givet x och y beräkna u: function [u]=circlefit( x, y ) 2. Givet u beräkna z och r samt plotta cirkeln: function [z,r]=displaycircle( u ) 26 november 2015 Sida 17 / 28

På filen CircleFit.m skriver vi % Hitta parameter vektor u som beskriver en cirkel % vektorerna x och y. % function [u]=circlefit( x, y ) A=[x.^2+y.^2 x y];b=-ones(length(x),1); u=a\b; end Vi använder funktioner på våra data vektorer x och y och får >> u=circlefit( x, y) u = 0.1729-0.4113-1.1799 26 november 2015 Sida 18 / 28

På filen DisplayCircle.m skriver vi % Beräkna centrum och radie samt rita upp cirke % parameter vektorn u. % function [z,r]=displaycircle( u ) z=-u(2:3)/2/u(1) r=sqrt( (u(2)^2+u(3)^2)/4/u(1)^2-1/u(1)); theta=2*pi*(0:99) /100; x=z(1)+r*cos(theta);y=z(2)+r*sin(theta); x=[x;x(1)];y=[y;y(1)]; plot(x,y); end 26 november 2015 Sida 19 / 28

Vi använder nu funktionen för att rita cirkeln >> hold on, [z,r]=displaycircle( u ); hold off 6 5.5 5 4.5 4 3.5 3 2.5 2 1.5 1-2 -1 0 1 2 3 4 Vi fick z = (1.1898, 3.4131) T och r = 2.6981. Hade valt z 0 = (1.2, 3.4) T och r = 2.7. 26 november 2015 Sida 20 / 28

Tillämpning: Analys av Temperaturmätningar 40 30 20 Temperature T(t) [ o C] 10-10 0-20 -30 0 2 4 6 8 10 12 14 Time t [h] 10 4 Data Uppmätt temperatur varje timme vid mätstation Malmslätt mellan 1998 och 2012. Frågor Vi vill undersöka hur temperaturen utvecklar sig över åren samt bygga en modell för temperaturen T(t). Detta är av intresse exempelvis då bönder vill försäkra sig mot frost skador. 26 november 2015 Sida 21 / 28

Matematisk modell Vi antar att temperaturen kan beskrivas som T(t) M(t) = c 1 + c 2 t+c 3 sin(ω(t τ)), där ω = 2π/(365 24) så att vi får en period på precis ett år. Parameternτ anpassas så att varmaste, respektive kallaste dagar, hamnar på rätt plats i modellen. Uppgift Vad behöver göras för att hitta bra värden c 1, c 2, c 3, och τ? 26 november 2015 Sida 22 / 28

På filen TempFit.m skriver vi function [c,m]=tempfit( t, T, Omega, Tau ) % Modellen är T(t)=c1+c2*t+c3*sin( Omega*(t-Tau) ) A=[t.^0 t.^1 sin( Omega*(t-Tau) )]; b=t; c=a\b; M=c(1)+c(2)*t+c(3)*sin( Omega*(t-Tau) ); end Vi kan nu lösa minsta kvadrat problemet för ett givna värden på ω och τ. I Matlab >> Omega = 2*pi/365/24; Tau = 10*24; >> [c,m]=tempfit( t, T, Omega, Tau ); >> plot( t,t, b-,t,m, r- ) 26 november 2015 Sida 23 / 28

40 30 o C] 30 o C] 25 20 Temperature T(t) ánd Model M(t) [ 20 10 0-10 -20 Temperature T(t) ánd Model M(t) [ 15 10 5 0-5 -10-15 -30 0 2 4 6 8 10 12 14 Time t [h] 10 4-20 0 2000 4000 6000 8000 10000 12000 14000 16000 Time t [h] Resultat Medτ = 10 dagar fås en dålig approximation. Vi får >> norm( T - M ) ans = 2.9597e+03 Uppgift Väljτ så att skillnaden T M 2 minimeras. Rita ett flödesschema för programmet. 26 november 2015 Sida 24 / 28

På filen TemperatueExperiment.m skriver vi Omega=2*pi/(365*24); % Period på precis ett år. Tau=[0:182]*24; Residualer=zeros(size(Tau)); for i=1:length(tau) [c,m]=tempfit( t, T, Omega, Tau(i) ); Residualer(i)=norm(T-M);; end; plot( Tau/24,Residualer) xlabel( Time \tau [days] ); ylabel( Residual M-T _2 [ ^oc] ); 26 november 2015 Sida 25 / 28

3000 2800 2 [ o C] Residual M-T 2600 2400 2200 2000 1800 1600 0 20 40 60 80 100 120 140 160 180 200 Time τ [days] Figur Residualerna T M 2 som funktion av τ. Minimum fås för >> [MinRes,k]=min(Residualer); Tau(k)/24 ans = 112 Bäst är alltså att skifta med 112 dagar. 26 november 2015 Sida 26 / 28

40 30 o C] 30 o C] 25 20 Temperature T(t) and Model M(t) [ 20 10 0-10 -20 Temperature T(t) and Model M(t) [ 15 10 5 0-5 -10-15 -30 0 2 4 6 8 10 12 14 Time t [h] 10 4-20 0 2000 4000 6000 8000 10000 12000 14000 16000 Time t [h] Resultat Medτ = 112 dagar fås en bra approximation. Vi får >> norm( T - M ) ans = 1.6967e+03 Frågor Finns det någon långsiktig temperaturökning? När inträffar kallaste dagen ungefär? 26 november 2015 Sida 27 / 28

Svar Den långsiktiga temperaturökningen bestäms av c 2. Vi får >> c(2)*365*24 ans = -0.0243 och temperaturen minskar alltså med ungefär 0.02 grader/år i genomsnitt. Svar Med en period på 365 dagar och skiftτ = 112 inträffar kallasta dagen vid >> t = 112-365/4 t = 20.7500 Alltså omkring 21:a Januari varje år. 26 november 2015 Sida 28 / 28