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

Relevanta dokument
15 februari 2016 Sida 1 / 32

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

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

Introduktion till MATLAB

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

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

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

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: 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

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

TAIU07 Matematiska beräkningar med Matlab

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

TAIU07 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

Matlabövning 1 Funktioner och grafer i Matlab

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

Matlabövning 1 Funktioner och grafer i Matlab

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

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

2 februari 2016 Sida 1 / 23

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

Beräkningsvetenskap föreläsning 2

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

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

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

Kravspecifikation Fredrik Berntsson Version 1.3

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

TSBB14 Laboration: Intro till Matlab 1D

Laboration: Vektorer och matriser

TANA17 Matematiska beräkningar med Matlab

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

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

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

MMA132: Laboration 2 Matriser i MATLAB

Linjär algebra med MATLAB

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

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

Enhetsvektorer. Basvektorer i två dimensioner: 1 1 Basvektorer i tre dimensioner: Enhetsvektor i riktningen v: v v

TANA17 Matematiska beräkningar med Matlab

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

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

M = c c M = 1 3 1

Mer om funktioner och grafik i Matlab

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

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

Mer om funktioner och grafik i Matlab

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

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

TANA17 Matematiska beräkningar med Matlab

Geometriska transformationer

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

2 Matrisfaktorisering och lösning till ekvationssystem

Laboration 1: Linjär algebra

TENTAMEN I GRUNDKURS I NUMERISKA METODER - DEL 20

TAIU07 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 8 december 2015 Sida 1 / 22

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

Föreläsning 5. Approximationsteori

Version Linjär algebra kapiltet från ett ODE-kompendium. Mikael Forsberg

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.

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

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

Modul 1: Komplexa tal och Polynomekvationer

1 Linjära ekvationssystem. 2 Vektorer

Interpolation. 8 december 2014 Sida 1 / 20

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

UPG5 och UPG8 Miniprojekt 1: 2D datorgrafik

Tentamen, del 2 Lösningar DN1240 Numeriska metoder gk II F och CL

Anteckningar för kursen "Analys i en Variabel"

TMV166 Linjär algebra för M. Datorlaboration 2: Matrisalgebra och en mekanisk tillämpning

M0043M Integralkalkyl och Linjär Algebra, H14, Matlab, Föreläsning 1

SF1624 Algebra och geometri

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

1. (Dugga 1.1) (a) Bestäm v (3v 2u) om v = . (1p) and u =

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

TAIU07 Matematiska beräkningar med Matlab

SF1624 Algebra och geometri Tentamen med lösningsförslag onsdag, 11 januari 2017

Vektorgeometri för gymnasister

Linjärisering, Jacobimatris och Newtons metod.

1 Konvexa optimeringsproblem grundläggande egenskaper

Exempel :: Spegling i godtycklig linje.

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

1.1 MATLABs kommandon för matriser

TAIU07 Matematiska beräkningar med Matlab

% Föreläsning 4 22/2. clear hold off. % Vi repeterar en liten del av förra föreläsningen:

6. Matriser Definition av matriser 62 6 MATRISER. En matris är ett rektangulärt schema av tal: a 11 a 12 a 13 a 1n a 21 a 22 a 23 a 2n A =

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

Interpolation Modellfunktioner som satisfierar givna punkter

Matlabföreläsningen. Lite mer och lite mindre!

Exempel :: Spegling i godtycklig linje.

Chalmers tekniska högskola Datum: kl Telefonvakt: Linnea Hietala MVE480 Linjär algebra S

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

Omtentamen i DV & TDV

15 september, Föreläsning 5. Tillämpad linjär algebra

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Linjära ekvationssystem

Transkript:

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

Föreläsning 3 Linjära ekvationssystem. Invers. Rotationsmatriser. Tillämpning: Bildinterpolation. Logiska variabler och Jämförelser. Villkorssatsen if. 9 november 2015 Sida 2 / 28

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. 9 november 2015 Sida 3 / 28

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 9 november 2015 Sida 4 / 28

Inversematris 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 9 november 2015 Sida 5 / 28

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. 9 november 2015 Sida 6 / 28

Rotationer Exempel Låt x = (x 1, x 2 ) vara en vektor som vi vill rotera med en viss vinkel α. Hur skall vi hitta en matris G sådan att y = Gx beräknar rotationen? Lemma Låt e 1 = (1, 0) T och e 2 = (0, 1) T vara enhetsbasen. Vi kan bestämma G genom att bestämma hur basvektorerna skall påverkas av rotationen. Det gäller att G = (y 1, y 2 ), där y 1 = Ge 1 och y 2 = Ge 2. Kommentar Liknande gäller för alla linjära avbildningar. Genom att studera hur avbildnignen skall påverka enhetsbasen kan man hitta den matris som representerar avbildningen. 9 november 2015 Sida 7 / 28

Exempel Vi vill illustrera rotationer i Matlab genom att rotera en vektor 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. 9 november 2015 Sida 8 / 28

Lösning Skapa först vektorer för att representera Origo = 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( [0 Origo(1)],[0,Origo(2)], b ) plot( [Origo(1) P(1)],[Origo(2),P(2)], b ) 9 november 2015 Sida 9 / 28

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-- ) 9 november 2015 Sida 10 / 28

Skapa sedan vridningspatrisen G och applicera den på skillnadsvektorn R. alpha=2*pi/3; G = [cos(alpha), -sin(alpha) ; sin(alpha), cos 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. 9 november 2015 Sida 11 / 28

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 9 november 2015 Sida 12 / 28

Interpolation i Bilder Exempel Antag att vi har en bild I där störande objekt råkat komma med. Kan vi lösa problemet? Den del av bilden vi vill dölja är markerad. Detta är ett interpolations problem. Uppskatta lämpliga färgvärden att ersätta de pixlar vi vill ta bort. 9 november 2015 Sida 13 / 28

Definition En bild I R n m är en matris där varje pixel I ij har ett värde som representerar en färg. Definition Interpolations masken M R n m har element M ij = 1 om motsvarande pixel skall ersättas med ett nytt interpolerat värde och M ij = 0 annars. Bilden representeras som en matris I. I Matlab läser vi in den med kommandot >> I=imread( 839.jpg ); imshow(i); Vi vill ersätta de pixlar där M ij = 1 med nya värden. Färgbilder behandlas som tre separata bilder. 9 november 2015 Sida 14 / 28

I H = 0 Ω I H = I Definition Antag att I(x, y) är definierad på område ir 2 och okänd i delområdetω. Harmonisk interpolation innebär att man beräknar I H (x, y) som lösningen till { 2 I H x 2 + 2 I H y 2 = 0, iω, I H (x, y) = I(x, y), på Ω. 9 november 2015 Sida 15 / 28

Numerisk Metod Approximera andra derivator med differenskvoret 2 I H x 2 (x i, y j ) 1 h 2(I H(x i+1, y j ) 2I H (x i, y j )+I H (x i 1, y j )). Formulera ett linjärt ekvationssystem Ax = b där varje okänd pixel(i, j) ger en ekvation I H (i+1, j)+i H (i 1, j)+i H (i, j+1)+i H (i, j 1) 4I H (i, j)=0, och varje känd pixel ger en ekvation I H (i, j) = I(i, j). Lösningsvektorn x innehåller de obekanta x = (I H (1, 1), I H (1, 2), I H (1, 3)..., I H (m, n 1), I H (m, n)) T. 9 november 2015 Sida 16 / 28

Resultatet efter Harmonisk interpolation och orginal bilden. Här har bilden 384 256 pixlar. Matrisen A får dimension 98304 98304. Med linjär differential operator får vi alltid jämna bilder utan skarpa kanter! Lösning av linjära ekvationssystem på dator är en av de vanligaste uppgifterna för datorer. 9 november 2015 Sida 17 / 28

Logiska variabler och jämförelser En Logisk variabel kan ha värdet sant eller falskt. Logiska värden skapas vid jämförelser mellan två tal. Exempel Låt x=3.0 och y=6.5. >> x > y ans = 0 Kommentar I MATLAB tolkas värdet 0 som falskt och 1 som sant. 9 november 2015 Sida 18 / 28

I MATLAB finns Relationsoperatorer <, <=, >, >=, ==, och ~= Logiskaoperatorer &, och ~ Exempel Låt x = 3.0 och y = 6.5. Beräkna uttrycket >> z = x + y >= x^2 x == y Prioritet Aritmetriska > Relations > Logiska. Kan använda parenteser. 9 november 2015 Sida 19 / 28

Jämförelser mellan matriser eller vektorer Jämförelser och Logiska operationer utförs elementvis för matriser och vektorer. Exempel Skapa två vektorer x = ( 1, 0, 3, 4) och y = (1, 3, 1, 0) Vad blir resultatet av en jämförelse x > y? I Matlab >> x = [ -1 0 3 4 ]; y=[ 1 3-1 0]; >> test = x > y test = 0 0 1 1 Vi ser att x 3 = 3 > 1 = y 3 men x 2 = 0 < 3 = y 2. Detta är användbart! 9 november 2015 Sida 20 / 28

Exempel Vi vill skapa en vektor med n = 1000 slumptal i intervallet [0, 1]. Vi vill sedan räkna efter i hur många fall vi får ett tal som är större än 0.5. Exempel Ersätt alla negativa tal i en matris med nollor. 9 november 2015 Sida 21 / 28

Villkorssatser Definition En styrsats används för att bestämma vilka delar av ett program som skall exekveras. Definition En villkorssats används då ett antal kommandon endast skall exekveras om ett visst villkor har värdet sant. Exempel Värdet på x avgör vilken väg som tas genom programmet. Nej x > 0? Ja x := x+1 9 november 2015 Sida 22 / 28

I Matlab finns if end <logiskt uttryck> <satser> där kommandona <satser> endast utförs om det logiska uttrycket beräknas till värdet sant. Exempel Antag att vi har beräknat ett funktionsvärde f(x). Gör en utskrift om värdet är positivt. 9 november 2015 Sida 23 / 28

Ett alternativ är if else end <logiskt uttryck> <satser 1> <satser 2> där antigen <satser 1> eller <satser 1> utförs. Exempel Låt f(x) ges av två olika uttryck beroende på om x > 0. Ja f = x 2 x x > 0? Nej f = 0 9 november 2015 Sida 24 / 28

Exempel En funktion ges av uttrycket { 0, x 0, f(x) = x 2, x > 0. I Matlab kan vi skriva: x=3.5; if (x <= 0) f=0; else f=x^2; end; 9 november 2015 Sida 25 / 28

Exempel Antag att a = 5 och att variabeln flagga har värdet falskt, dvs flagga=0. Vad händer i följande fall? if flagga if flagga if a<10 if a<10 a=a+1 a=a+1 else end a=a-1 else end a=a-1 end end Vad skulle ha hänt om istället a=5 och variabeln flagga hade haft värdet sant? 9 november 2015 Sida 26 / 28

Exempel Testa om ett värde x ligger i intervallet 2 x < 5. Skriv isåfall ut ett meddelande. Tänk på att jämförelser görs mellan två tal. Exempel Funktionen f(x) ges av uttrycket x 2, x<0 f(x)= sin(x), 0 x< π 2 1, x π 2 Skriv en villkorssats som beräknar y = f(x) för ett givet x värde. 9 november 2015 Sida 27 / 28

Exempel I ett känt lek program på TV får en deltagare välja mellan tre luckor där storvinsten finns bakom en av dem. För att hålla spänningen hög öppnas först en av luckorna som deltagaren ej valde. Finns vinsten där så är spelet förlorat. Är luckan tom så fortsätter spelet. Programledaren ger ofta deltagaren möjlighet att ändra sig här? Antigen håll fast vid den lucka som först valdes eller byt till den andra som fortfarande är oöppnad. Bör man anta erbjudandet att byta lucka? Gör följande Skissa på ett flödesschema som visar möjliga utfall. Använd sedan villkorssatser för att simulera en sådan spelomgång. Använd bägge strategierna och gör utskrifter som tydligt visar resultatet. 9 november 2015 Sida 28 / 28