Matriser och vektorer i Matlab

Relevanta dokument
Linjära ekvationssystem i Matlab

Matriser och vektorer i Matlab

Matriser och linjära ekvationssystem

linjära ekvationssystem.

Matriser och Inbyggda funktioner i Matlab

Matriser och Inbyggda funktioner i Matlab

Linjär algebra. 1 Inledning. 2 Matriser. Analys och Linjär Algebra, del B, K1/Kf1/Bt1. CTH/GU STUDIO 1 TMV036b /2013 Matematiska vetenskaper

Matriser och linjära ekvationssystem

Mer om funktioner och grafik i Matlab

Linjära ekvationssystem

Introduktion till Matlab

Introduktion till Matlab

Mer om funktioner och grafik i Matlab

Introduktion till Matlab

Introduktion till Matlab

Funktioner och grafritning i Matlab

Mer om linjära ekvationssystem

Grafritning och Matriser

Mer om linjära ekvationssystem

Laboration: Vektorer och matriser

Linjära ekvationssystem

Mer om linjära ekvationssystem

Introduktion till Matlab

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

Introduktion till Matlab

Linjär Algebra M/TD Läsvecka 1

TMV166/186 Linjär Algebra M/TD 2011/2012 Läsvecka 1. Omfattning. Innehåll Lay, kapitel , Linjära ekvationer i linjär algebra

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

Linjär Algebra M/TD Läsvecka 2

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: 8p av totalt 20p Hjälpmedel: MATLAB

Beräkningsverktyg HT07

MAM283 Introduktion till Matlab

Några saker som jag inte hann: Ur trigonometriska ettan kan vi uttrycka och i termer av. Vi delar båda led i trig. 1:an med :

Introduktion till Matlab

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

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

Funktioner och grafritning i Matlab

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

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

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

SKRIVNING I VEKTORGEOMETRI

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. 27 oktober 2015 Sida 1 / 31

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

Instruktion för laboration 1

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

Introduktion till MATLAB

MATLAB övningar, del1 Inledande Matematik

Inledande matematik för I1. MVE011 läsperiod Matlab vecka 2 övningsuppgifter

Introduktion till Matlab

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

Instruktion för laboration 1

Mer om geometriska transformationer

Hemuppgift 1, SF1861 Optimeringslära för T

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 =

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

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

1 Grundläggande kalkyler med vektorer och matriser

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

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

MATRISTEORI. Pelle Pettersson MATRISER. En matris är ett rektangulärt schema med tal, reella eller komplexa, vilka kallas matrisens

TSBB14 Laboration: Intro till Matlab 1D

1.1 MATLABs kommandon för matriser

Linjär algebra med tillämpningar, lab 1

Moment Viktiga exempel Övningsuppgifter

Laboration 1: Linjär algebra

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

Introduktion till Matlab

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

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Introduktion till Matlab

Lösningsförslag till skrivningen i Vektorgeometri (MAA702) Måndagen den 13 juni 2005

Vektorrum. EX. Plan och linjer i rummet genom origo. Allmänt; mängden av lösningar till AX = 0.

Linjära ekvationssystem

SKRIVNING I VEKTORGEOMETRI Delkurs

MMA132: Laboration 2 Matriser i MATLAB

SF1624 Algebra och geometri Lösningsförslag med bedömningskriterier till kontrollskrivning 1 Måndagen den 29 november, 2010

TANA17 Matematiska beräkningar med Matlab

6.4. Linjära ekvationssytem och matriser

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning

TAMS79: Föreläsning 10 Markovkedjor

TANA17 Matematiska beräkningar med Matlab

TMV166 Linjär Algebra för M. Tentamen

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

Linjära ekvationssystem

Hemuppgift 1, SF1861 Optimeringslära, VT 2016

SF1900 Sannolikhetsteori och statistik, HT 2017 Laboration 1 för CINEK2

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

A = (3 p) (b) Bestäm alla lösningar till Ax = [ 5 3 ] T.. (3 p)

Du kan söka hjälp efter innehåll eller efter namn

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

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

Mer om funktioner och grafik i Matlab

Egenvärdesproblem för matriser och differentialekvationer

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

Lösningar till några övningar inför lappskrivning nummer 3 på kursen Linjär algebra för D, vt 15.

Funktionsytor och nivåkurvor

Mer om funktioner och grafik i Python

Dubbelintegraler. 1 Inledning. 2 Rektangelregeln. CTH/GU LABORATION 5 MVE /2018 Matematiska vetenskaper

Transkript:

CTH/GU LABORATION 2 TMV157-2014/2015 Matematiska vetenskaper Matriser och vektorer i Matlab 1 Inledning Först skall vi se lite på matriser, vilket är den grundläggande datatypen i Matlab, sedan skall vi beskriva hur vi kan lösa linjära ekvationssystem på ett effektivt sätt i Matlab. Avslutningsvis ser vi på några användbara inbyggda matris- och vektorfunktioner. Men allra först: För att arbeta på ett överskådligt och effektivt sätt, dokumentera arbetet och redovisa för handledare snabbt och smidigt skall ni använda er av script (som vi såg på i förra laborationen). Så här kunde det sett ut efter det att vi löst de tre första uppgifterna i första laborationen. Editorn i Matlab har använts i Cell Mode (cell-läge). Skriver man en kommentar som börjar med två procent-tecken, så avgränsar det en cell. Poängen är att man kan låta Matlab utföra kommandona från en cell, istället för hela filen. På så sätt kan man dela upp ett stort script (för en hel laboration) i flera delar (varje deluppgift). En cell kan utföras utan att textfilen är sparad, så gör Save då och då. Har du glömt bort script och cell-läge repetera i så fall laboration 1, avsnitt 4. Vi har också gjort en egen desktop layout så att Figures (figurfönster), Editor samt Command Window syns samtidigt. Läs i texten för laboration 1, avsnitt 8 hur man gör. 1

2 Något om matriser En matris är ett rektangulärt talschema a 11 a 1n A =.. a m1 a mn Matrisen ovan har m rader och n kolonner, vi säger att den har storleken m n. Ett matriselement på rad nr i, kolonn nr j skrivs a ij, där i är radindex och j är kolonnindex. En matris av storleken m 1 kallas kolonnmatris (kolonnvektor) och en matris av storleken 1 n kallas radmatris (radvektor): b 1 b =. b m, c = [ ] c 1 c n Som exempel tar vi 1 4 7 10 1 A = 2 5 8 11, b = 3, c = [ 0 2 4 6 8 ] 3 6 9 12 5 Vi beskriver dessa i Matlab enligt >> A=[1 4 7 10; 2 5 8 11; 3 6 9 12] och som svar får vi i Command Window utskriften A = 1 4 7 10 2 5 8 11 3 6 9 12 Man använder hakparanteser ([ ]) för att bygga upp matriserna. Semikolon (;) innanför hakparanteserna betyder radbyte. Så här beskriver vi kolonnvektorn >> b=[1; 3; 5] b = 1 3 5 och så här radvektorn >> c=[0 2 4 6 8] c = 0 2 4 6 8 Ett matriselement a ij, dvs. elementet på rad nr i, kolonn nr j, skrivs i Matlab med A(i,j) och ett vektorelement b i skrivs med b(i). 2

Indexeringen i matriser och vektorer i Matlab börjar alltid på 1, vi kan inte påverka detta. Sista index för en rad eller kolonn ges av end. T.ex. b(1) är första elementet i vektorn b och b(end) är sista elementet. Vi låter s få tredje värdet c 3, dvs. c 3 med >> s=c(3) 4 och bildar vektorn v av andra och femte värdet, dvs. (c 2, c 5 ), med >> v=c([2,5]) % v=[c(2) c(5)] går också 2 8 Vi kan ändra ett element i v, t.ex. låta v 2 = 0, med >> v(2)=0 2 0 Vi låter s få värdet av a 23, dvs. elementet på rad 2, kolonn 3 i matrisen A med >> s=a(2,3) 8 och vi bildar en radvektor v av rad 3, alla kolonner med >> v=a(3,:) % v=a(3,1:end) eller v=a(3,1:4) går också 3 6 9 12 samt en kolonnvektor u av rad 2-3, kolonn 2 med >> u=a(2:3,2) u = 5 6 Vi bildar en matris V av blocket rad 1-2, kolonn 2-3 >> V=A(1:2,2:3) V = 4 7 5 8 Uppgift 1. Skriv in matriserna A, b och c i Matlab. Skriv sedan ut matriselementen a 23, b 2, c 3. Ändra a 23 genom att skriva A(2,3)=15. Gör ett script och använd cell-läge så att ni kan bygga på med kommande uppgifter. 3

3 Linjära ekvationssystem Linjära ekvationssystem kan vi lösa med Matlab om vi först skriver dem på matrisform. Vi tar som exempel: Ekvationssystemet x 1 + 2x 2 + 3x 3 = 14 3x 1 + 2x 2 + x 3 = 10 7x 1 + 8x 2 = 23 skrivs på matrisform 3 2 1 7 8 0 x 1 x 2 x 3 14 = 10 23 dvs. Ax = b, med A = 3 2 1, x = 7 8 0 Vi bildar koefficientmatrisen A och högerledsvektorn b med >> A=[;3 2 1;7 8 0] A = 3 2 1 7 8 0 >> b=[14;10;23] b = 14 10 23 x 1 14 x 2 och b = 10 x 3 23 Med kommandot rref kommer vi till radreducerad trappstegsform (row-reduced-echelon form) så att vi kan läsa av lösningen till Ax = b. Först bildar vi den utökade matrisen E = [A b ] med >> E=[A b] E = 14 3 2 1 10 7 8 0 23 och sedan får vi den reducerade matrisen med >> R=rref(E) R = 1 0 0 1 0 1 0 2 0 0 1 3 4

Lösningen ser vi i sista kolonnen i R och vi har x 1 1 x = x 2 = 2 x 3 3 Som ytterligare ett exempel ser vi på följande ekvationssystem med oändligt många lösningar x 1 + 2x 2 + 3x 3 = 10 3x 1 + 2x 2 + x 3 = 14 7x 1 + 8x 2 + 9x 3 = 46 eller på matrisform >> A=[;3 2 1;7 8 9] A = 3 2 1 7 8 9 >> b=[10;14;46] b = 10 14 46 Ax = b Vi reducerar utökande matrisen med >> R=rref([A b]) R = 1 0-1 2 0 1 2 4 0 0 0 0 3 2 1 7 8 9 Vi har en fri variabel. Om vi sätter x 3 = t får vi x 1 2 + t x = x 2 = 4 2t x 3 t där t är ett godtyckligt reellt tal. x 1 x 2 x 3 10 = 14 46 Uppgift 2. Skriv följande ekvationssystem på matrisform och lös dem sedan med rref. x 1 + 5x 2 + 9x 3 = 29 2x 1 + 5x 3 = 26 3x 1 + 7x 2 + 11x 3 = 39 x 1 + x 2 + 3x 3 + 4x 4 = 2 2x 1 + 2x 2 + 2x 3 = 4 x 1 + x 2 + 2x 3 + 3x 4 = 1 x 1 x 2 2x 3 x 4 = 1 Skulle det finnas oändligt många lösningar skriv upp en formel för samtliga lösningar. 5

4 Matris- och vektorfunktioner Vi ser nu på några användbara inbyggda funktioner som tar matriser eller vektorer som argument. För exemplen använder vi följande matris och vektorer. 11 4 3 7 3 A = 2 6 8 5, b = 1, c = [ 4 2 8 0 6 ] 9 12 1 10 5 Antalet rader och kolonner i A får vi med >> [m,n]=size(a) m = 3 n = 4 och antal element i vektorn c ges av >> l=length(c) l = 5 Största eller minsta elementet i en vektor eller en matris får man med funktionerna max och min. Här är hjälptexten till max. Vi ser hur vi får största elementet i en vektor och hur vi får de största elementen i varje kolonn för en matris. 6

>> v=max(c) 8 >> v=max(a) 11 12 8 10 Vi ser också att vi med [v,i]=max(c) kan få reda på var det maximala värdet finns någonstans. Uppgift 3. Skriv in matrisen A samt vektorerna b och c vi använt som exempel. Pröva size på vektorerna b och c. Hur ser man att den ena är en kolonnvektor och att den andre är en radvektor? Bestäm största och minsta elementet i matrisen A med hjälp av funktionerna max och min. Vad har dessa element för rad- respektive kolonnindex? Summan och produkten av elementen i vektorn fås med sum och prod. För en matris blir det summan eller produkten av varje kolonn. >> s=sum(b) 9 >> s=sum(a) 22 22 12 22 I förra laborationen beräknade vi en summa 3 + 4 + 5 + + 52 med en for-sats, vi skulle även kunna beräkna den med sum enligt >> s=sum(3:52) 1375 Detta kallas att vektorisera beräkningen. Vi kan också dela upp i två satser >> t=3:52; % Bildar en vektor t med 3, 4,..., 52 >> s=sum(t) % Summerar alla element i vektorn t 1375 Först bildar vi vektorn t med elementen 3, 4,, 52 och sedan summerar vi elementen i vektorn. Uppgift 4. Beräkna summan 1 2 +2 2 + 3 2 +4 2 + 5 2 med sum och komponentvis kvadrering. Vill vi sortera en vektor i stigande ordning gör vi det med funktionen sort. För en matris blir det varje kolonn som sorteras. För att sortera i avtagande ordning se hjälptexten för sort. Funktionerna zeros och ones används för att bygga upp matriser fylla med nollor respektive ettor. Med t.ex. B=ones(size(A)) får vi en matris B med samma storlek som A fast fylld med ettor. Vidare ger funktionerna rand och randn en matris fylld med slumptal (se hjälptexterna). 7

CTH/GU Uppföljning av LABORATION 2 TMV157-2014/2015 Matematiska vetenskaper 1 Målsättning Avsikten med laborationen är dels att komma igång med att arbeta effektivt i Matlab och dokumentera arbetet, dels att vi i Matlab skall kunna beskriva och lösa ett linjärt ekvationssystem. Vi skall också kunna modifiera en matris eller vektor samt ta ut delar av eller enskilda element. Vidare skall vi bekanta oss med inbyggda funktioner som opererar på matriser och vektorer. 2 Kommentarer och förklaringar Här följer kommentarer till några avsnitt i laborationstexten. I avsnittet Något om matriser ser vi på hur vi bygger upp matriser och vektorer. Vi ser också på hur vi kan modifiera sådana samt ta ut delar av en matris eller vektor. Det senare kommer vi få stor nytta av då vi arbetar med problemlösning av t.ex. teknisk natur. Då är det inte ett ekvationssystem man löser utan kanske en följd av sådana där ingående matriser och vektorer successivt skall förändras. Dessa färdigheter kommer vi få mycket träning på i samband med kursen i linjär algebra som ni läser till våren. Avslutningsvis beskriver avsnittet Matris- och vektorfunktioner hur vi lätt tar reda på storleken på en matris. Ibland låter man matriser eller vektorer växa upp medan man löser ett problem och det är då bra att efteråt kunna bestämma storleken (size, length). Att enkelt kunna summera alla element i en matris eller vektor behövs då och då, precis som att ta produkt, minsta eller största värde samt sortera element (sum, prod, min, max, sort). Funktionerna zeros och ones kommer vi använda ofta, och ibland vill vi ha slumptal med rand. 3 Lärandemål Efter denna laboration skall du i Matlab kunna bygga upp och modifiera matriser och vektorer kunna lösa ekvationssystem Ax = b med rref kunna bestämma storlek av en matris eller vektor med size och length kunna bestämma största och minsta värde i en matris eller vektor samt bilda summa och produkt med min, max, sum och prod 8