Linjär algebra med MATLAB



Relevanta dokument
Linjär Algebra M/TD Läsvecka 2

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

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

1.1 MATLABs kommandon för matriser

1 Linjära ekvationssystem. 2 Vektorer

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

Modul 1: Komplexa tal och Polynomekvationer

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 =

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

Linjär algebra på några minuter

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

1 som går genom punkten (1, 3) och är parallell med vektorn.

TANA17 Matematiska beräkningar med Matlab

Vektorgeometri för gymnasister

MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET MED MATRISINVERSER = = =

Veckoblad 4, Linjär algebra IT, VT2010

Laboration: Vektorer och matriser

Vektorgeometri för gymnasister

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

= ( 1) ( 1) = 4 0.

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

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

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

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

SKRIVNING I VEKTORGEOMETRI Delkurs

Moment Viktiga exempel Övningsuppgifter

x = som är resultatet av en omskrivning av ett ekvationssystemet som ursprungligen kunde ha varit 2x y+z = 3 2z y = 4 11x 3y = 5 Vi får y z

SKRIVNING I VEKTORGEOMETRI

SKRIVNING I VEKTORGEOMETRI

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

8 Minsta kvadratmetoden

Lösningsförslag till skrivningen i Vektorgeometri (MAA702) måndagen den 30 maj 2005

15 februari 2016 Sida 1 / 32

Stora bilden av Linjära algebran. Vektorrum, linjära transformationer, matriser (sammanfattning av begrepp)

Geometriska transformationer

SKRIVNING I VEKTORGEOMETRI

Självkoll: Ser du att de två uttrycken är ekvivalenta?

1 Grundläggande kalkyler med vektorer och matriser

Introduktion till MATLAB

SF1624 Algebra och geometri Tentamen Onsdagen 29 oktober, 2014

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

Mer om geometriska transformationer

Matriser och linjära ekvationssystem

ax + y + 4z = a x + y + (a 1)z = 1. 2x + 2y + az = 2 Ange dessutom samtliga lösningar då det finns oändligt många.

Vektorgeometri för gymnasister

ax + y + 2z = 3 ay = b 3 (b 3) z = 0 har (a) entydig lösning, (b) oändligt många lösningar och (c) ingen lösning.

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

. (2p) 2x + 2y + z = 4 y + 2z = 2 4x + 3y = 6

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

Veckoblad 1, Linjär algebra IT, VT2010

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

LINJÄRA AVBILDNINGAR

Mer om analytisk geometri

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

1. (a) Bestäm alla värden på c som gör att matrisen A(c) saknar invers: c 1

x 1 x 2 x 3 x 4 mera allmänt, om A är en (m n)-matris, då ger matrismultiplikationen en avbildning T A : R n R m.

Veckoblad 3, Linjär algebra IT, VT2010

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.

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

DEL I. Matematiska Institutionen KTH. Lösning till tentamensskrivning på kursen Linjär algebra II, SF1604, den 15 mars 2010 kl

Vektorgeometri för gymnasister

MYSTERIER SOM ÅTERSTÅR

(a) Bestäm för vilka värden på den reella konstanten c som ekvationssystemet är lösbart. (b) Lös ekvationssystemet för dessa värden på c.

Vektorgeometri för gymnasister

e 3 e 2 e 1 Kapitel 3 Vektorer i planet och i rummet precis ett sätt skrivas v = x 1 e 1 + x 2 e 2

Övningar. MATEMATISKA INSTITUTIONEN STOCKHOLMS UNIVERSITET Avd. Matematik. Linjär algebra 2. Senast korrigerad:

SKRIVNING I VEKTORGEOMETRI

Gausselimination fungerar alltid, till skillnad från mer speciella metoder.

SF1624 Algebra och geometri Lösningsförsag till modelltentamen

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

4x az = 0 2ax + y = 0 ax + y + z = 0

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

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

Matriser och linjära ekvationssystem

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

M = c c M = 1 3 1

Laboration 1: Linjär algebra

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

TAIU07 Matematiska beräkningar med Matlab

Vektorgeometri för gymnasister

1 Vektorer i koordinatsystem

Studiehandledning till. MAA123 Grundläggande vektoralgebra

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister

Linjär algebra och geometri I

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

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

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

LYCKA TILL! kl 8 13

Linjär algebra F1 Ekvationssystem och matriser

Minsta kvadratmetoden

14. Minsta kvadratmetoden

Beräkna determinanten för produkten MMM Skissa, och bestäm arean av, det i det komplexa talplanet belägna området

Subtraktion. Räkneregler

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

Linjära ekvationssystem

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

Linjär Algebra, Föreläsning 2

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

Moment 6.1, 6.2 Viktiga exempel Övningsuppgifter T6.1-T6.6

Transkript:

INGENJÖRSHÖGSKOLAN Matematik Fredrik Abrahamsson, Anders Andersson Innehåll Linjär algebra med MATLAB 1 Grundläggande begrepp 1 1.1 Introduktion...................................... 1 1.2 Genomförande och redovisning........................... 2 1.3 Inmatning av vektorer och matriser i MATLAB - vektoralgebra......... 2 1.4 Inmatning av matriser i MATLAB - matrisalgebra................ 3 1. Linjära ekvationssystem............................... 4 1.6 Om du hinner - lite 3D-grafik............................ 6 2 Valbart avsnitt M: Minsta kvadratmetoden - kurvanpassning 7 3 Valbart avsnitt L: Linjära avbildningar 9 4 Valbart avsnitt G: Grafteori 10 4.1 Om du hinner - avstånd mellan hörn........................ 11 Valbart avsnitt D: En roterande kub 12 1 Grundläggande begrepp 1.1 Introduktion Vid ingenjörshögskolan finner du Matlab i windows via startknappen Ingenjörshögskolan Matematik Matlab MATLAB är matrishanterarnas kung. MATLAB (som står för MATrix LABoratory) konstruerades ursprungligen som ett redskap för att hantera matriser dvs. (2-dimensionella) listor av tal. Sedan har MATLAB successivt utvecklats till att bli också ett kraftfullt programmeringsvertyg och idag kan man även få tillgång till rutiner (hämtade från systerprogrammet MAPLE) för symbolhantering. Eftersom en vektor är en typ av matris så lämpar sig MATLAB utmärkt för hantering av vektorer. Syftet med denna laboration är att du skall lära dig att utföra enkla vektor- och matrisberäkningar med MATLAB, och även att lösa ett linjärt ekvationssystem. Laborationen förutsätter att du har lärt dig de matematiska grunderna för detta, t.ex. bör du känna dig hyfsat bekant med följande begrepp: linjära ekvationssystem - Gausselimination geometriska vektorer - vektoraddition, multiplikation med skalär skalärprodukt vektorprodukt algebraiska beskrivningar av räta linjer och plan i R 3 matrisalgebra determinanter Du bör även ha bekantat dig med texten Introduktion till MATLAB (Abrahamsson).

1.2 Genomförande och redovisning Vektoralgebra & linjära ekvationssystem sid. 2 av 12 Läs igenom häftet innan laborationstillfället. Om du känner att du förmodligen klarar av att lösa uppgifterna utan lärarhjälp så går detta utmärkt. Om du vill ha lärarhjälp så erbjuds detta vid det schemalagda laborationstillfället som ingår i kursen. Du redovisar dina laborationsresultat skriftligen som ett enkelt word-dokument. Detta dokument skall innehålla lösningar till uppgifterna 1- lösningar till de uppgifter som ingår i ett av de valbara avsnitten, dvs. antingen uppgifterna M1-M2 eller uppgifterna L1-L3 eller uppgifterna G1-G4 eller uppgiften D1. (maximalt två personer kan stå som författare till samma rapport) 1.3 Inmatning av vektorer och matriser i MATLAB - vektoralgebra I MATLAB definieras en vektor (matris) vanligtvis genom att man tilldelar ett variabelnamn ett värde, följt av RETURN. Inmatningen > > v=[2 4 ] ger resultatet v = 2 4 Observera användningen av hakparanteser - naturligtvis behövs mellanslag (alternativt kommatecken) mellan de olika siffrorna. Efter inmatningen gäller nu att variabeln v representerar en radvektor v = (2,4,), med tre element. (Alt. en matris av typen 1 3). MATLAB lagrar vektorn som tre tal, v(1), v(2), v(3) där v(1) är vektorns första tal 2, v(2) är vektorns andra tal 4 och v(3) det sista talet. > > v(2) ans = 4 I MATLAB kan vi enkelt utföra alla sorters vektoroperationer, såsom addition av vektorer, multiplikation av vektor med skalär, skalärprodukt, vektorprodukt, etc. Om u och v är två vektorer och a en skalär så kan vi utföra dessa operationer i MATLAB med syntaxen: Operation multiplikation med skalär a v vektoraddition u + v skalärprodukt u v vektorprodukt u v u (dvs. längden av u) Kommando i MATLAB a*v u+v dot(u,v) eller u*v eller sum(u.*v) cross(u,v) norm(u) Uppgift 1: Definiera vektorerna u = (2, 4, 3) och v = (6, 3, 2). Beräkna sedan a) 2u 4v b) u v c) u v

Vektoralgebra & linjära ekvationssystem sid. 3 av 12 d) u + v och u + v. Verifiera att triangelolikheten u + v u + v är uppfylld. e) vinkeln mellan u och v. Uppgift 2: Vektorerna u = (1,2,3), v = (2,3,2) och w = (3,4, 1) spänner upp en parallellepiped. Beräkna dess volym. 1.4 Inmatning av matriser i MATLAB - matrisalgebra I MATLAB definieras en matris vanligtvis genom att man tilldelar ett variabelnamn ett värde, följt av RETURN. För att definiera matrisen A = 2 4 2 0 1 3 4 matar vi in (mellanslag mellan två matriselement, semikolon för att ange en ny rad) > > A=[2 4 ; 2 0-1; 3 4] och vi får då resultatet A= 2 4 2 0-1 3 4 Efter inmatningen gäller nu att variabeln A representerar 3 3 matrisen ovan. Matrisen matar vi in genom kommandot > > B=[1-1 -3 2; 3-2 -4 0; 0 2 3 4] B = 1 1 3 2 3 2 4 0 0 2 3 4 Om vi nu vill beräkna matrisprodukten AB (som är väldefinierad), skriver vi i MATLAB helt enkelt > > A*B ans= 14 0-7 24 2-4 -9 0 18 - -17 22 Försöker vi att beräkna produkten BA, som inte är definierad, ger MATLAB ett felmeddelande; > > B*A??? Error using ==> * Inner matrix dimensions must agree.

Vektoralgebra & linjära ekvationssystem sid. 4 av 12 I MATLAB kan vi enkelt utföra alla sorters matrisoperationer (förutsatt att de är väldefinierade), såsom addition och multiplikation av matriser, transponering, determinantberäkning, etc. Tabellen nedan ger syntaxen för de vanligaste operationerna; A och B är matriser och a en skalär. Operation Kommando i MATLAB multiplikation med skalär a A a*a matrisaddition A + B A+B matrisprodukt AB A*B transponering A T A determinanten det(a) det(a) inversen A 1 inv(a) Vidare, så finns det ett stort antal specialkommandon för att hantera och producera matriser. Vi går inte in på dessa här, men värt att nämna är ändå att identitesmatrisen av storlek n n genereras med kommandot eye(n). Uppgift 3: Definiera matriserna A = ( 3 2 1 ) ( 7 3 2, B = 1 4 ), C = a) Beräkna AB, CB T, BC och (2C + D) (C D) 1 2 3 1 0 2 0 0 1 b) Visa att CD DC genom att beräkna matrisen CD DC. och D = 1 0 2 0 1 1 1 1 1 c) Beräkna det(a), det(c) och det(d). Vilka av matriserna är inverterbara? Verifiera att det(cd) = det(c) det(d). d) Beräkna inversen för de matriser som är inverterbara. Kontrollera att MATLAB ger korrekt resultat genom att multiplicera samman inverserna med de ursprungliga matriserna. e) Hitta på två inverterbara 3 3 matriser A och B och verifiera att (AB) 1 = B 1 A 1. 1. Linjära ekvationssystem I MATLAB kan vi enkelt lösa det linjära ekvationssystemet x y 3z = 2 3x 2y 4z = 2y + 3z = 2 Först definierar vi den s.k. koefficientmatrisen 1 1 3 A = 3 2 4 0 2 3 samt högerledet i ekvationssystemet b = 2 2 genom att mata in dem som vanliga matriser;

> > A=[1-1 -3; 3-2 -4; 0 2 3] A= 1-1 -3 3-2 -4 0 2 3 > > b=[-2; -; 2] b= -2-2 Vektoralgebra & linjära ekvationssystem sid. av 12 Om vi nu vill ha lösningen till ekvationssystemet ovan skriver vi bara > > A b ans= -1.0000 1.0000 0.0000 vilket betyder att lösningen ges av x = 1 y = 1 z = 0 Uppgift 4: Lös det linjära ekvationssystemet 3x + 2y + z = 39 2x + 3y + z = 34 x + 2y + 3z = 26 Uppgift : a) Lös det linjära ekvationssystemet { 10x 3y = 28 8x + 3y = 16 b) Rita i samma figur ut de båda räta linjerna 10x 3y = 28 resp. 8x + 3y = 16 Dimensionera axlarna så att du ser skärningspunkten. Användbara kommandon: plot, axis. Tips: Definiera först en vektor x=-40:0.1:40; rita sedan den ena linjen och lås därefter figurfönstret med kommandot hold on. Rita sedan den andra linjen och använd zoomfunktionerna i figurfönstret för att zooma in så att du ser skärningspunkten. Övertyga dig om att koordinaterna (x 0,y 0 ) för skärningspunkten är precis den lösning som du beräknade i uppgift a).

Vektoralgebra & linjära ekvationssystem sid. 6 av 12 Anmärkning. Om du har läst lite matristeori så vet du att ekvationssystemen ovan kan skrivas som en matrisekvation AX = b där A är koefficientmatrisen, b högerledets kolonnmatris och x X = y. z Om A är inverterbar (dvs. om det(a) 0) så ges lösningen av X = A 1 b och det är denna lösning som MATLAB producerar när vi skriver A b, (fast MATLAB räknar inte ut inversen utan gör på ett numeriskt smartare sätt). Anmärkning. Om ekvationssystemet är underbestämt (fler obekanta än ekvationer) eller överbestämt (fler ekvationer än obekanta) så kan ovanstående metod i MATLAB ändå ge en lösning, nämnligen den lösning som anpassar sig bäst i den s.k. minsta kvadratmetodens mening. 1.6 Om du hinner - lite 3D-grafik Tidigare visades hur vi i MATLAB enkelt kan lösa det linjära ekvationssystemet x y 3z = 2 3x 2y 4z = 2y + 3z = 2 Var och en av dessa tre ekvationer beskriver ett plan i rummet, och vi kan utan större möda grafiskt illustrera lösningen i detta fall. Det går utmärkt att rita in 3-dimensionella grafer i MATLAB, t.ex. kan vi enkelt rita in ett plan med ekvationen ax + by + cz = d. Enklast är om man först skriver om ekvationen på formen z = a x+b y + c. Antag att vi t.ex vill rita in planet med ekvationen x y 3z = 2 (dvs. första ekvationen ovan). Vi löser först (för hand) ut z = 1 3 (x y + 2). Sedan tänker vi efter i vilket område vi vill rita ut planet - t.ex. för 10 x,y 10. I MATLAB skriver vi sedan > > x=-10:0.1:10; > > y=x; > > [X Y]=meshgrid(x,y); % definierar området > > Z=1/3*(X-Y+2); > > mesh(x,y,z) Om vi vill rita in ytterligare ett plan i samma figur, t.ex. planet 3x 2y 4z =, skriver vi bara (3x 2y 4z = z = 1 4 (3x 2y + )) > > hold on > > Z2=1/4*(3*X-2*Y+); > > mesh(x,y,z2)

Vektoralgebra & linjära ekvationssystem sid. 7 av 12 Extrauppgift: Rita ut de två planen i samma figur enligt ovan. Rita även ut det tredje planet genom att definiera Z3 på samma sätt som ovan och därefter skriva mesh(x,y,z3). Ser du att planen skär varandra i precis en punkt? Det går att rotera den 3-dimensionella figuren i dess fönster. Du bör få en figur som ser ut någonting i stil med följande. 1 10 0 10 1 10 10 0 10 10 0 2 Valbart avsnitt M: Minsta kvadratmetoden - kurvanpassning Tidigare i laborationen löste vi ett antal linjära ekvationssystem som kunde formuleras som en matrisekvation AX = b, där A och b var givna. Vi löste dessa i MATLAB genom att definiera A och b (som matriser), och därefter fick vi lösningen X med hjälp av kommandot A b. Vad matlab då producerar är A 1 b förutsatt att matrisen A är inverterbar. Om matrisen A inte är inverterbar så ger MATLAB oftast ändå ett svar, och det är då viktigt att komma ihåg att det är då inte säkert att detta svar är den enda lösningen, eller ens en lösning över huvudtaget. Om ekvationssystemet saknar lösningar så ger MATLAB ett svar som ligger närmast att vara en lösning, i den s.k. minsta kvadratmetodens mening. Vi skall nu försöka se vad detta betyder. En vanlig situation är att man har samlat in ett antal mätdata, t.ex genom något slags experiment eller undersökning. Ofta gäller ett linjärt samband av formen y = a + bx, (eller så tror vi att ett dylikt samband är giltigt) mellan indata (x) och utdata (y). Men allt som oftast har vi att göra med mätfel, och andra osäkerhetsfaktorer så att mätdata inte passar in precis på en rät linje. Antag att vi hänger några olika tyngder (x) i en fjäder och mäter fjäderns längd (y). Resultatet av experimentet redovisas i tabellen till höger. Vi kan plotta in dessa mätdata genom att skriva y (m) x (N) 6.1 0 7.6 2 8.7 4 10.4 6 > > x=[0; 2; 4; 6;]; > > y=[6.1; 7.6; 8.7; 10.4]; > > plot(x,y, x ) 10 9 8 7 fjäderns längd y (m) 6 4 3 2 1 0 0 1 2 3 4 6 tyngd x (N) Uppgift M1: Genomför plottningen ovan. Använd kommandot axis om du vill ändra axlarnas

Vektoralgebra & linjära ekvationssystem sid. 8 av 12 dimensioner, och använd xlabel resp. ylabel om du vill namnge axlarna. Som du ser ligger mätdata inte exakt på en linje men bra nära! Enligt teorin skall sambandet y = a + bx gälla vilket isåfall medför att a + b 0 = 6.1 a + 2b = 7.6 a + 4b = 8.7 a + 6b = 10.4 Ekvationssystemet ovan består av fyra ekvationer och två obekanta - alltså är systemet överbestämt, och det finns förmodligen ingen exakt lösning. Men om vi på vanligt vis matar in koefficientmatrisen och högerledets matris så ger kommandot A Y ändå ett svar, nämligen de tal a resp. b för den linje y = a + bx som anpassar sig bäst efter punkterna i den meningen att summan av kvadraterna på avstånden från punkterna till linjen minimeras - se figur. Detta är minsta kvadratmetoden. MATLAB minimerar talet r 2 = d 2 1 + d2 2 + + d2 A = Y = 1 0 1 2 1 4 1 6 6.1 7.6 8.7 10.4 d 1 d 2 d 3 d 4 d Uppgift M2: Beräkna a,b i MATLAB, och rita ut linjen y = a + bx för 0 x 7 i samma figur som du ritade in punkterna ovan i. Kommandot hold on låser figuren. Det bör se ut ungefär som i figuren till höger. fjäderns längd y (m) 10 9 8 7 6 4 3 2 1 0 0 1 2 3 4 6 tyngd x (N)

Vektoralgebra & linjära ekvationssystem sid. 9 av 12 3 Valbart avsnitt L: Linjära avbildningar Ett huvudresultat från kursboken är att en linjär avbildning F : R n R n alltid kan representeras med en n n matris A på så sätt att y = F( x) Y = AX. Vi identifierar alltså vektorerna y och x med motsvarande kolonnmatriser Y resp. X. Därigenom kan vi uppfatta F som en enkel matrismultiplikation, dvs. F(X) = AX. Matrisen A är dessutom enkel att bestämma; i en given bas e 1,..., e n fås A genom att beräkna vektorerna F( e 1 ),...,F( e n ). Dessa vektorer utgör kolonnvektorerna i A, dvs. A = F( e 1) F( e 2 ) F( e n ) Det räcker alltså att känna till hur F avbildar n linjärt oberoende vektorer för att veta hur F avbildar varje vektor i R n. Exempel: Den linjära avbildningen F : R 2 R 2 som avbildar e 1 på e 1 + e 2 och e 2 på e 1 e 2 ges av matrisen ( ) 1 1 A =. 1 1 Exempelvis så gäller att vektorn (1,2) avbildas på vektorn (3, 1) eftersom ( )( ) ( ) 1 1 1 3 AX = =. 1 1 2 1 Syftet med denna del av laborationen är att visualisera effekten av linjära avbildningar i planet. En linjär avbildning avildar linjestycken på linjestycken (eller punkter) och parallella linjer avbildas på paralella linjer (eller punkter). Vi skall utnyttja detta faktum till att försöka förstå effekten av ett antal linjära avbildningar genom att se vad som händer när avbildningarna verkar på en enhetskvadrat och en hund (en polygon). Uppgift L1: Börja med att kopiera filerna kvadrat.m samt hund.m från k: matematik maskin till mappen g: dokument. Ge därefter kommandot path(path) i MATLAB. Dessa filer är två små program som ritar upp vad som händer då vi låter en linjär avbildning verka på enhetskvadraten resp. en hund. Om F är en linjär avbildning med matris A (av storleken 2 2) så innebär kommandot > > kvadrat(a); att MATLAB låter F avbilda enhetskvadraten och ritar sedan upp resultatet. Motsvarande kommando > > hund(a); låter F verka på en liten hund och ritar upp resultatet. Testa genom att köra kvadrat(i) resp. hund(i) där ni definierar I som enhetsmatrisen av storlek 2 2.

Vektoralgebra & linjära ekvationssystem sid. 10 av 12 Uppgift L2: Definiera matriserna ( ) ( 2 0 1 0 A =, B = 0 2 0 1 ), C = ( 1 0 0 1 ), D = ( 0 1 1 0 ) och E = ( cos π 4 sin π 4 sin π 4 cos π 4 Kör därefter kvadrat(a),...,kvadrat(e) och tänk noga igenom och förklara i varje fall varför det blir som det blir. Kör även hund(a),...,hund(e) och jämför. Vad händer om ni kör kvadrat(a*b)? Varför? Hitta gärna på några egna matriser och testkör! (Man bör vara medveten om att det är inte alltid så lätt att geometriskt tolka en avbildning utifrån dess matris). Uppgift L3: Bestäm matrisen för den avbildning som först roterar vinkeln π/3 radianer moturs och därefter speglar i x axeln. Testkör på kvadraten och hunden. 4 Valbart avsnitt G: Grafteori Som bekant från kursen Diskret matematik, så definieras en graf G = (V, E) genom dess hörn (mängden V ) och de kanter (mängden E) som kan finnas mellan hörn i grafen. Ett exempel på en graf finner du nedan. G 1 ). 1 2 4 6 3 Ett sätt att matematiskt representera en graf är med hjälp av en matris; man associerar med varje rad, och med motsvarande kolonn, ett av grafens hörn. T.ex om grafen har hörn, så kan vi numrera dessa från 1 till, dvs. V = {1,2,3,4,}. Till denna graf associerar vi nu en matris A där rad 1 och kolonn 1 representerar hörn 1, rad 2 och kolonn 2 representerar hörn 2 osv. Matrisens element representerar sedan grafens kanter på följande sätt. Om A = (a ij ) så låter vi { 1, om det finns en kant mellan hörn i och hörn j a ij = 0, om det inte finns någon sådan kant. Grafen ovan skulle således representeras med 6 6 matrisen A = 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 T.ex är matriselementet a 34 = 1 eftersom det finns en kant mellan hörn 3 och hörn 4. Av samma anledning är a 43 = 1. Eftersom det inte finns någon kant mellan hörn 1 och hörn 6 följer att a 61 = a 16 = 0. Man inser att om grafen är oriktad så följer att matrisen kommer att vara symmetrisk, dvs. A T = A.

Vektoralgebra & linjära ekvationssystem sid. 11 av 12 Uppgift G1: Bestäm matrisen för grafen G 2 till höger. G 2 3 4 6 1 I MATLAB kan vi gå andra hållet, dvs. om vi känner grafens matris så kan vi rita upp den. Det görs med kommandot > > gplot(a,coord) där A är grafens matris, och coord är en matris med två kolonner som anger koordinaterna för grafens hörn. Om man t.ex. definierar > > coord=[0 0; 1 0; 2 1; 3 0; 2-1; 4 0] så producerar kommandot gplot(a,coord) grafen. Uppgift G2: Definiera matrisen A för grafen G1 enligt ovan och rita den i MATLAB med koordinaterna definierade som ovan. Du får en något snyggare graf om du efteråt ger kommandona axis off (tar bort koordinataxlarna) resp. axis equal (ger x-axeln och y-axeln samma skalning). Uppgift G3: Rita på samma sätt grafen G 2 från uppgift G1, med lämpligt definierade koordinater för hörnen. Eftersom matrisen A innehåller all information om den graf som den representerar, så inser man att man borde kunna beräkna en mängd egenskaper med hjälp av denna matris. Det kan man också! Man kan också visa (inte så svårt) att matriselementet på plats (i,j) i matrisen A 2 innehåller antalet stigar av längd 2 från hörn i till hörn j. T.ex. gäller för grafen i början av detta avsnitt att 1 0 1 0 1 0 0 3 0 2 0 0 A 2 = 1 0 2 0 2 1 0 2 0 3 0 0 1 0 2 0 2 1 0 0 1 0 1 1 Här kan vi se t.ex. att det finns 2 stigar av längd 2 från hörn 2 till hörn 4, och det finns inga stigar av längd 2 från hörn 1 till hörn 6. Mer allmänt kan man visa att matrisen A k ger på samma sätt information om antalet stigar av längd k mellan grafens hörn. Uppgift G4: För grafen G 2 från uppgift G1, bestäm antalet stigar av längd 2 mellan hörn 3 och hörn. Bestäm också antalet stigar av längd 4 mellan hörn 3 och hörn 2. 4.1 Om du hinner - avstånd mellan hörn Om en graf G är sammanhängande så kan vi definiera avståndet mellan hörnen i och j som d(i,j) = längden av den kortaste stigen mellan i och j. Antag att grafen G representeras m.hj.a matrisen A. Eftersom elementet på plats (i, j) i matrisen A k ger antalet stigar av längd k mellan grafens hörn så inser man att elementet på plats (i,j) i matrisen A + A 2 + + A k ger antalet stigar mellan grafens hörn som inte överstiger längden k. Om k 0 är det minsta heltalet sådant att alla element i matrisen S = 2

Vektoralgebra & linjära ekvationssystem sid. 12 av 12 A + A 2 + + A k 0 är skilda från noll så är k 0 den längsta väg som krävs för att ta sig mellan två hörn i grafen G, dvs. k 0 = max d(i,j). i,j I matrisen S framgår också mellan vilka hörn denna längsta väg erfordras. Detta är ofta intressant information i tillämpningssammanhang, t.ex. om grafen beskriver ett järnvägsnät eller liknande. Extra uppgift: Visa att för grafen G 1 så är det störst avstånd mellan hörnen 1 och 6. Beräkna avståndet, dvs. d(1,6). Svaret är förstås 4, vilket man ser direkt eftersom vår graf G 1 är så enkel, men principen fungerar ju lika bra om vi hade betraktat en väldigt komplicerad graf med kanske några hundra hörn! Anmärkning. Om en graf G är sammanhängande med n hörn så kan man enkelt visa att det krävs en stig av maximalt längd n för att ta sig från ett hörn till ett annat. (Visa det med induktion!) Detta innebär att om G har n hörn så är G är sammanhängande om och endast om alla element i matrisen A + A 2 + + A n är skilda från 0. Valbart avsnitt D: En roterande kub Kopiera m-filerna rotcubemovie.m, rotatecube.m, definecube.m, drawcube.m, movecube.m och cubecenter.m från k: matematik el matlab rotkub till mappen g: dokument. Ge därefter kommandot path(path) i MATLAB. Tillsammans utgör dessa filer ett litet MATLAB-program som visar en roterande kub som studsar omkring i ett tredimensionellt rum. Huvudprogrammet utgörs av filen rotcubemovie.m, och denna anropar sedan de andra filerna som funktioner/subrutiner. Programmet körs genom anropet rotcubemovie(v,w) där den första vektorn v anger kubens begynnelsehastighet medan den andra vektorn w anger kubens rotationshastighet (i grader per omritning) kring x, y och z axeln. Uppgift D1: Försöker du köra programmet nu, t.ex. med anropet > > rotcubemovie([0.2, 0.4, 0.3],[3,,2]) upptäcker du att kuben inte roterar. Detta skall du åtgärda genom att gå in i filen rotate- Cube.m och där definiera de korrekta rotationsmatriserna för rotation kring de olika axlarna. (I filen är dessa matriser för tillfället ersatta av enhetsmatriser som ju inte uträttar någonting). Observera att vinkelhastigheten redan räknas om från grader till radianer (krävs i MATLAB) genom raden v=v*pi/180. Ledning: Låt F z,θ : R 3 R 3 vara den linjära avbildning som roterar en punkt i rummet vinkeln θ (radianer) kring z axeln i moturs riktning. Genom att undersöka dess effekt på basvektorerna e x,e y och e z fås dess matris som A z,θ = cos θ sin θ 0 sin θ cos θ 0 0 0 1 (Se exempel 7 sid. 168 i kursboken). För att lösa uppgiften D1 behöver du på samma sätt ta fram matriserna A x,θ, A y,θ för motsvarande rotationer F x,θ och F y,θ kring x och y axlarna..