Linjära ekvationssystem i Matlab

Relevanta dokument
Matriser och vektorer i Matlab

Matriser och linjära ekvationssystem

Matriser och vektorer i Matlab

linjära ekvationssystem.

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 Inbyggda funktioner i Matlab

Matriser och Inbyggda funktioner i Matlab

Matriser och linjära ekvationssystem

Mer om funktioner och grafik i Matlab

Linjära ekvationssystem

Mer om funktioner och grafik i Matlab

Introduktion till Matlab

Mer om linjära ekvationssystem

Introduktion till Matlab

Laboration: Vektorer och matriser

Mer om linjära ekvationssystem

Introduktion till Matlab

Linjära ekvationssystem

Funktioner och grafritning i Matlab

Grafritning och Matriser

Introduktion till Matlab

Mer om linjära ekvationssystem

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

Linjär Algebra M/TD Läsvecka 2

1 Grundläggande kalkyler med vektorer och matriser

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

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

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

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 :

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

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

6.4. Linjära ekvationssytem och matriser

Introduktion till Matlab

Funktioner och grafritning i Matlab

SKRIVNING I VEKTORGEOMETRI

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

Hemuppgift 1, SF1861 Optimeringslära för T

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

Beräkningsverktyg HT07

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

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

MAM283 Introduktion till Matlab

Laboration 1: Linjär algebra

TSBB14 Laboration: Intro till Matlab 1D

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

TAIU07 Matematiska beräkningar med Matlab

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

Mer om funktioner och grafik i Matlab

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

Vektorgeometri för gymnasister

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

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 =

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

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 för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

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

1.1 MATLABs kommandon för matriser

MMA132: Laboration 2 Matriser i MATLAB

SKRIVNING I VEKTORGEOMETRI Delkurs

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

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

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

Introduktion till MATLAB

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

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

Block 2: Lineära system

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

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

Introduktion till Matlab

Objective:: Linjärt beroende och oberoende version 1.0

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

2 = 3 = 1. ekvationssystem är beskriven som de vektorer X =

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

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

Mer om geometriska transformationer

Instruktion för laboration 1

Linjär algebra med MATLAB

TANA17 Matematiska beräkningar med Matlab

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

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

Linjära ekvationssystem

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

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

Instruktion för laboration 1

Vektorgeometri för gymnasister

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

Beräkningsvetenskap föreläsning 2

SF1624 Algebra och geometri

Linjära ekvationssystem

Moment Viktiga exempel Övningsuppgifter

Funktionsytor och nivåkurvor

Studiehandledning till linjär algebra Avsnitt 1

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

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

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

Hemuppgift 1, SF1861 Optimeringslära, VT 2016

Mer om funktioner och grafik i Python

TAMS79: Föreläsning 10 Markovkedjor

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

Transkript:

CTH/GU LABORATION 2 MVE11-212/213 Matematiska vetenskaper Linjära ekvationssystem 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. 2 Något om matriser En matris är ett rektangulärt talschema a 11 a 1n.. 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 m, c = [ ] c 1 c n Som exempel tar vi 1 4 7 1 1 2 5 8 11, 3, c = [ 2 4 6 8 ] 3 6 9 12 5 Vi beskriver dessa i Matlab enligt >> A=[1 4 7 1; 2 5 8 11; 3 6 9 12] och vi får utskriften 1 4 7 1 2 5 8 11 3 6 9 12 Man använder hakparanteser ([ ]) för att bygga upp matriserna. Semikolon (;) innanför hakparanteserna betyder radbyte. 1

Så här beskriver vi kolonnvektorn >> b=[1; 3; 5] 1 3 5 och så här radvektorn >> c=[ 2 4 6 8] c = 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). 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. s = c 3 med >> s=c(3) s = 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 =, med >> v(2)= 2 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) s = 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 2

>> 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. Har du glömt bort script och cell-läge repetera i så fall (laboration 1, avsnitt 4). 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 = 3x 1 + 2x 2 + x 3 = 1 7x 1 + 8x 2 = 23 skrivs på matrisform 7 8 x 1 x 2 x 3 = 1 23 dvs. Ax = b, med, x = 7 8 Vi bildar koefficientmatrisen A och högerledsvektorn b med >> A=[;;7 8 ] 7 8 >> b=[;1;23] 1 23 x 1 x 2 och 1 x 3 23 3

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 = 1 7 8 23 och sedan får vi den reducerade matrisen med >> R=rref(E) R = 1 1 1 2 1 3 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 = 1 3x 1 + 2x 2 + x 3 = 7x 1 + 8x 2 + 9x 3 = 46 eller på matrisform Ax = b 7 8 9 x 1 x 2 x 3 1 = 46 >> A=[;;7 8 9] 7 8 9 >> b=[1;;46] 1 46 Vi reducerar utökande matrisen med 4

>> R=rref([A b]) R = 1-1 2 1 2 4 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. 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 4 Matris- och vektorfunktioner 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 Vi ser nu på några användbara inbyggda funktioner som tar matriser eller vektorer som argument. För exemplen använder vi 1 4 7 1 1 2 5 8 11, 3, c = [ 2 4 6 8 ] 3 6 9 12 5 från tidigare avsnitt. 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 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(c) s = 2 5

>> s=sum(a) s = 6 15 24 33 Största och minsta elementet i en vektor fås med funktionerna max och min. För en matris blir det de största elementen i varje kolonn. >> v=max(c) 8 >> v=max(a) 3 6 9 12 Vi ser på hjälptexten för max Vi ser att vi med[v,index]=max(c) även kan få reda på var det maximala värdet finns någonstans. Vill vi sortera en vektor i stigande ordning gör vi det med sort. För en matris blir det varje kolonn som sorteras om i stigande ordning. För att i avtagande ordning se hjälptexten. Funktionerna zeros och ones används för att bygga upp matriser fylla med nollor respektive ettor. Vidare ger funktionen rand en matris fylld med slumptal (se hjälptexten). Uppgift 3. Hur bestämmer man det största respektive minsta elementet i en matris. Använd matrisen A ovan som exempel. 6

CTH/GU MVE11-212/213 Matematiska vetenskaper Uppföljning av laboration 2 1 Målsättning Avsikten med laborationen är 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. I avsnittet Linjära ekvationssystem har vi exemplet med ett ekvationssytem Ax = b med följande koefficientmatris och högerledsvektor >> A=[;;7 8 ] 7 8 >> b=[;1;23] 1 23 Lägg speciellt märke till att semi-kolon (;) ger radbyte i Matlab och att hakparanteser ([ ]) används som ramar vid uppbyggnaden. Med kommandot rref kommer vi till radreducerad trappstegsform så att vi kan läsa av lösningen till Ax = b, men först måste vi bilda den utökade matrisen E = [A b ] med 7

>> E=[A b] E = 1 7 8 23 Lägg märke till hakparanteserna ([ ]) som gör att vi bygger upp matrisen E med blocken A och b. Här måste b vara en kolonn lika lång som kolonnerna i A, annars går det inte ihop. Vad säger Matlab om du försöker sätta in en radvektor istället för kolonnvektorn b? Sedan får vi den reducerade matrisen med >> R=rref(E) R = 1 1 1 2 1 3 Lösningen ser vi i sista kolonnen i R och vi kan bilda >> x=r(:,4) x = 1 2 3 Vi har plockat ut sista kolonnen ur R och låter variabeln x få värdena. Här står kolonet (:) för alla index på den platsen, dvs. alla radnummer, och 4 anger kolonnummer 4. (Överkurs: I Matlab kan vi skriva så här >> r=a*x-b r = och ser då att Ax = b, dvs. vi har hittat lösningen. Här står * för matris-vektormultiplikation, något ni får lära er i kursen i linjär algebra.) Nu skall vi se på exemplet där vi hade oändligt många lösningar. Vi hade följande matris och vektor >> A=[;;7 8 9] 7 8 9 >> b=[1;;46] 1 46 8

Vi reducerar utökande matrisen med >> R=rref([A b]) R = 1-1 2 1 2 4 Här valde vi att bygga upp den utökade matrisen på plats som indata till rref. 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 (Överkurs: I Matlab kan vi skriva så här >> t=-5; x=[r(1:2,4)-t*r(1:2,3);t], r=a*x-b x = -3-5 r = Här kan vi ge variabeln t ett annat reellt värde och vi får en annan lösning. Det tar en stund innan man helt förstår Matlab-koden, men det är ju ändå överkurs.) 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 9