15 februari 2016 Sida 1 / 32

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

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

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

TAIU07 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab

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

Minsta kvadratmetoden

Introduktion till MATLAB

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

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

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

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

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.

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

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

SF1624 Algebra och geometri Lösningsförsag till modelltentamen

TANA17 Matematiska beräkningar med Matlab

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

Veckoblad 4, Linjär algebra IT, VT2010

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

Matlabövning 1 Funktioner och grafer i Matlab

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

. b. x + 2 y 3 z = 1 3 x y + 2 z = a x 5 y + 8 z = 1 lösning?

Transformationer i R 2 och R 3

Minsta-kvadratmetoden

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

Linjär algebra med MATLAB

TANA17 Matematiska beräkningar med Matlab

Geometriska transformationer

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

Frågorna 1 till 6 ska svaras med ett kryss för varje korrekt påstående. Varje uppgift ger 1 poäng. Använd bifogat formulär för dessa 6 frågor.

Mer om funktioner och grafik i Matlab

Tentamen i Linjär algebra , 8 13.

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

Repetition, Matematik 2 för lärare. Ï x + 2y - 3z = 1 Ô Ì 3x - y + 2z = a Ô Á. . Beräkna ABT. Beräkna (AB) T

Föreläsning 5. Approximationsteori

Matlabövning 1 Funktioner och grafer i Matlab

16.7. Nollrum, värderum och dimensionssatsen

Ortogonal dekomposition. Minstakvadratmetoden.

14. Minsta kvadratmetoden

Inför tentamen i Linjär algebra TNA002.

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

Uppsala Universitet Matematiska Institutionen Bo Styf. Svar till tentan. Del A. Prov i matematik Linj. alg. o geom

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å

8. Euklidiska rum 94 8 EUKLIDISKA RUM

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

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

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

Mer om geometriska transformationer

Laboration 1. 1 Matlab-repetition. 2 Störningsräkning 1. 3 Störningsräkning 2

Matlab övningsuppgifter

1.1 MATLABs kommandon för matriser

Omtentamen i DV & TDV

November 6, { b1 = k a

Grafik och Egna funktioner i Matlab

Studiehandledning till linjär algebra Avsnitt 4

Mer om funktioner och grafik i Matlab

2 Matrisfaktorisering och lösning till ekvationssystem

Matematik med Matlab för I Inledning. 1 Programmering i MATLAB

1 Linjära ekvationssystem. 2 Vektorer

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

1. Bestäm definitionsmängden och värdemängden till funktionen f(x,y) = 1 2x 2 3y 2. Skissera definitionsmängden, nivålinjerna och grafen till f.

Tentamen del 1 SF1546, , , Numeriska metoder, grundkurs

SF1624 Algebra och geometri

Inledning. CTH/GU LABORATION 4 MVE /2017 Matematiska vetenskaper

Newtons metod och arsenik på lekplatser

KTH, Matematik. Övningar till Kapitel , 6.6 och Matrisframställningen A γ av en rotation R γ : R 2 R 2 med vinkeln γ är

SF1624 Algebra och geometri

Matematisk Modellering

Vektorgeometri för gymnasister

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna

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

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Linjär algebra och geometri I

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

2 februari 2016 Sida 1 / 23

2 Funktioner från R n till R m, linjära, inversa och implicita funktioner

Stöd inför omtentamen i Linjär algebra TNA002.

4.4. Mera om grafiken i MATLAB

Linjär algebra och geometri 1

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

Vektorgeometri. En vektor v kan representeras genom pilar från en fotpunkt A till en spets B.

Vektorgeometri för gymnasister

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

Vektorgeometri för gymnasister

Laboration 4: Lineär regression

Homogena koordinater och datorgrafik

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

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Linjära avbildningar. Låt R n vara mängden av alla vektorer med n komponenter, d.v.s. x 1 x 2. x = R n = x n

B. Kvadratkomplettering

5.7. Ortogonaliseringsmetoder

At=A' % ' transponerar en matris, dvs. kastar om rader och kolonner U' % Radvektorn U ger en kolonnvektor

x(t) I elimeringsmetoden deriverar vi den första ekvationen och sätter in x 2(t) från den andra ekvationen:

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

Linjär algebra och geometri 1

z = 4 + 3t P R = (5 + 2t, 4 + 2t, 4 + 3t) (1, 1, 3) = (4 + 2t, 3 + 2t, 1 + 3t)

Moment Viktiga exempel Övningsuppgifter

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Transkript:

TAIU07 Föreläsning 5 Linjära ekvationssystem. Minsta kvadrat problem. Tillämpning: Cirkelpassning. Geometriska objekt. Translationer. Rotationer. Funktioner som inargument. Tillämpning: Derivata. 15 februari 2016 Sida 1 / 32

Linjära Ekvationssystem Division mellan matriser skall tolkas som att A/B betyder AB 1 och A\B betyder A 1 B. Exempel Lös ekvationssystemet 2 1 3 4 2 5 x= 2 2 3 med hjälp av MATLAB. 1 2 3. 15 februari 2016 Sida 2 / 32

I Matlab skapar vi först matrisen och högerledet med >> A = [ 2 1 3 ; 4-2 5 ; -2 2-3 ]; >> b = [ 1-2 3] ; % OBS kolumnvektor! Vi löser sedan ekvationssystemet med x = A 1 b som beräknas med \-operatorn. Alltså >> x = A\b; x ans = 1.8333 1.3333-1.3333 Kontrollera genom att beräkna residualen >> r = b - A*x; r ans = 1.0e-15 * 0.8882 0-0.4441 15 februari 2016 Sida 3 / 32

Funktionen inv beräknar inversen till en kvadratisk matris. Exempel Beräkna lösningen till Ax = b med hjälp av inversen >> A = [ 2 1 3 ; 4-2 5 ; -2 2-3 ]; >> b = [ 1-2 3] ; >> x = inv(a)*b; x ans = 1.8333 1.3333-1.3333 Ger samma lösning som tidigare. Beräkna nu A 1 A med >> C = inv(a)*a C = 1.0000 0 0 0 1.0000-0.0000-0.0000 0 1.0000 15 februari 2016 Sida 4 / 32

Exempel En linje ir 3 kan skrivas på formen 2 P(t) = p 1 + p 2 t = 1 + 3 1 2 2 t. Ett plan ir 3 spänns upp av de två vektorerna 1 v 1 = 1 och v 2 = 0 0 1 2. Var skär linjen planet? Formulera problemet som ett linjärt ekvationssystem. 15 februari 2016 Sida 5 / 32

Lösning Alla punkter i planet kan skrivas som en linjär kombination av v 1 och v 2. Vi söker alltså α 1,α 2 och t sådana att 1 0 2 1 1 α 1 + 1 α 2 = 1 + 2 t. 0 2 3 2 I Matlab: >> v1=[1-1 0] ;v2=[0 1-2] ;p1=[2-1 3] ;p2=[1 2 2] >> x=[ v1 v2 -p2]\p1; x ans = 1.3750-0.8750-0.6250 Skärningspunkten ges av >> P = v1*x(1)+v2*x(2); P ans = 1.3750-2.2500 1.7500 15 februari 2016 Sida 6 / 32

Minsta Kvadratproblemet Exempel Vi vet att en fysikalisk storhet ges av y = c 1 x 1 + c 2 x 2, där c 1 och c 2 är konstanter vi vill bestämma och x 1 och x 2 är parametrar vi enkelt kan variera. Hur skall vi bestämma c 1 och c 2? 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 ( c1 c 2 ) = 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. 15 februari 2016 Sida 7 / 32

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 15 februari 2016 Sida 8 / 32

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. Detta kallas Minsta kvadratproblemet. I statistiken kallas det Linjär Regression. 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. 15 februari 2016 Sida 9 / 32

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 Lös Minsta kvadratproblemet 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] ; >> x_mk = A\b % Eller (A *A)\( 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. 15 februari 2016 Sida 10 / 32

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. 15 februari 2016 Sida 11 / 32

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 Vi får en vektor 0.2 0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 >> c ans = 0.0400-0.1073 0.7112 15 februari 2016 Sida 12 / 32

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 2 1 0 1 2 3 4 Hur kan vi använda Minstakvadrat metoden för att uppskatta centrum och radie för cirkeln? 15 februari 2016 Sida 13 / 32

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 ) 15 februari 2016 Sida 14 / 32

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 15 februari 2016 Sida 15 / 32

På filen DisplayCircle.m skriver vi % Beräkna centrum och radie samt rita upp % cirkeln givet 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 15 februari 2016 Sida 16 / 32

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. 15 februari 2016 Sida 17 / 32

Geometriska Objekt och Avbildningar Exempel En månghörning består av hörpunkter och kantlinjer. Varje punkt P k = (x k, y k ) T kan ses som en 2 1 vektor. Vi vill rita upp en femhörning med givna hörnpunkter ( ) ( ) ( ) ( ) 1 3 5 6,,, och 3 6 5 2 Vi vill sedan förflytta alla punkterna med en konstant vektor T = (1, 2) T och rita upp månghörningen igen. Hur skall vi göra? ( 3 1 ). 15 februari 2016 Sida 18 / 32

Spara punkterna i en 2 n matris P. Varje punkt representeras av en kolumn P(:,k). I Matlab P = [ 1 3 5 6 3 ; 3 6 5 2 1 ]; plot( P(1,:),P(2,:), r+ ); hold on ind = [1 2 3 4 5 1 ]; plot( P(1,ind),P(2,ind), b- ); För att translatera punkterna skapar vi en ny 2 n matris att addera till P. T=ones(2,5); T(2,:)=2; P2 = P+T; plot( P2(1,ind),P2(2,ind), k-- ) hold off 15 februari 2016 Sida 19 / 32

Sätt koordinataxlarna så att vi ser hela bilden och skriv ut axis([ 0 8 0 9]) print -depsc F2-5horning.eps Den färdiga bilden blir 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 Kommentar Många olika operationer inom datorgrafik består av att enkla operationer utförs på punktmängder. I Matlab kan man göra rätt mycket om man är lite kreativ. 15 februari 2016 Sida 20 / 32

Linjära Avbildningar Definition En n mmatris A kan ses som en avbildning A : x R m y R n. där y = Ax. Exempel Enhetsmatrisen I representerar en avbildning I : x x. Den bildas i Matlab med kommandot >> n = 10; >> I = eye( n ); Andra viktiga avbildningar är rotationer, speglingar, och projektioner. 15 februari 2016 Sida 21 / 32

Rotationer Lemma En punkt P = (x 1, x 2 ) T roteras kring origo (0, 0) T, med vinkel α, med hjälp av ( ) P cos(α) sin(α) = G P, G =. sin(α) cos(α) Exempel Vi vill illustrera rotationer i Matlab genom att rotera en punkt P = (4, 2) T kring ett origo som satts till O = (2, 3) T. Vridningsvinkeln skall varaα = 2π/3. Rita upp relevanta vektorer både före och efter vridningen. Samt rita upp en cirkel med centrum i punkten O för att tydligare visa att vi fått en vridning. 15 februari 2016 Sida 22 / 32

Lösning Skapa först vektorer för att representera Origo O = (2, 3) T och punkten P. Beräkna även skillnadsvektorn R. Origo=[ 2 ; 3 ]; P=[ 4 ; 2 ]; R = P - Origo; Plotta nu vektorerna i blått clf,hold on plot( [0 P(1)],[0,P(2)], b ) plot( [Origo(1) P(1)],[Origo(2),P(2)], b ) 15 februari 2016 Sida 23 / 32

Skapa en mängd punkter på cirkeln med origo i O = (2, 3) T. Radie=sqrt( sum( R.^2 ) ); alpha=0:0.01:2*pi; x=origo(1)+radie*cos( alpha ); y=origo(2)+radie*sin( alpha ); plot(x,y, r-- ) 15 februari 2016 Sida 24 / 32

Skapa sedan vridningspatrisen G och applicera den på skillnadsvektorn R. alpha=2*pi/3; G = [cos(alpha),-sin(alpha);sin(alpha),cos(alpha R2=G*R; P2=Origo+R2; Rita nu upp de nya punkterna i svart. plot( [0 P2(1)],[0,P2(2)], k ) plot( [Origo(1) P2(1)],[Origo(2),P2(2)], k ) axis equal hold off Kommentar Kommandot axis equal gör koordinataxlarna lika långa i fönstret. Annars ser inte cirkeln rund ut. 15 februari 2016 Sida 25 / 32

5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0-1 0 1 2 3 4 5 Den färdiga grafen innehåller de objekt som behövs för att illustrera vridningen. Punkten blir >> P2 ans = 1.8660 5.2321 15 februari 2016 Sida 26 / 32

Funktioner som inargument Kommandot feval kan användas för att anropa en funktion med givna inparametrar. Exempel Har vi skrivit en fil funk.m som innehåller function [z]=funk( x, y ) z=x^2+3*y; end så kan vi anropa funktionen med inargument x = 2 och y = 2.5 genom att skriva >> feval( @funk, 2, 2.5 ) ans = 11.5000 15 februari 2016 Sida 27 / 32

Funktioner som inargument Exempel Definitionen av derivata är f f(x+h) f(x) (x) = lim. h 0 h Välj ett fixt h > 0 för att approximera derivatan av f(x). Skriv en funktion Derivata.m som kan anropas med >> Df = Derivata( @funk, x, h ); Använd funktionen för att plotta derivatan av sin(x) på intervallet [0, 2π]. 15 februari 2016 Sida 28 / 32

Lösning På filen Derivata.m skriver vi function [Df]=Derivata( f, x, h ) f1=feval( f, x + h ); f0=feval( f, x ); Df=(f1-f0)/h; end Vi kan sedan plotta derivatan av sin(x) genom att skriva >> x = 0:0.01:2*pi; >> plot( x, Derivata( @sin, x, 10^-3 ) ); 15 februari 2016 Sida 29 / 32

Enkla funktioner Enkla funktioner kan skapas direkt i Matlab. Man skriver >> f = @( <variabler> ) <uttryck>; Man får då ett handtag till en funktion. Exempel Skriv >> f = @(x) exp(2*x).*cos(x.^2)+4*x f = @(x)exp(2*x).*cos(x.^2)+4*x Funktionen kan beräknas med feval eller direkt f(4). 15 februari 2016 Sida 30 / 32

Exempel Skapa funktionerna f(x) = 1 x 2 e 2x, och g(x) = (x1 2 1, 1+x 2 ) T. Tänk på att g(x) måste ha en vektor som inagrument och returnera en vektor i R 2. Försök få f(x) att acceptera vektor argument så att det går att skriva >> x = 0:0.01:1; >> plot( x, f(x) ) 15 februari 2016 Sida 31 / 32

Funktionen integral beräknar integraler. Den anropas >> I = integral( fun, a, b ) där f är ett funktionshandtag. Exempel Beräkna samma integral som tidigare genom >> f = @(x) exp(2*x).*cos(x.^2)+4*x; >> I = integral( f, 0, 1) I = 4.6736 Det finns även integral2 för dubbelintegraler. 15 februari 2016 Sida 32 / 32