Matriser och linjära ekvationssystem

Relevanta dokument
Matriser och 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

linjära ekvationssystem.

Matriser och vektorer i Matlab

Linjära ekvationssystem i Matlab

Linjära ekvationssystem

Matriser och Inbyggda funktioner i Matlab

Matriser och Inbyggda funktioner i Matlab

Matriser och vektorer i Matlab

Mer om funktioner och grafik i Matlab

Mer om funktioner och grafik i Matlab

Mer om linjära ekvationssystem

Grafritning och Matriser

Mer om linjära ekvationssystem

Laboration: Vektorer och matriser

Mer om linjära ekvationssystem

Linjär Algebra M/TD Läsvecka 2

Introduktion till Matlab

Introduktion till Matlab

Linjär Algebra M/TD Läsvecka 1

Funktioner och grafritning i Matlab

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

Introduktion till Matlab

Introduktion till Matlab

1 Grundläggande kalkyler med vektorer och matriser

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

MAM283 Introduktion till Matlab

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

Mer om funktioner och grafik i Matlab

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

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

Dagens program. Linjära ekvationssystem och matriser

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

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

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

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

Studiehandledning till linjär algebra Avsnitt 1

TANA17 Matematiska beräkningar med Matlab

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 :

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

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

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

1.1 MATLABs kommandon för matriser

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

Laboration 1: Linjär algebra

Matriser. En m n-matris A har följande form. Vi skriver också A = (a ij ) m n. m n kallas för A:s storlek. 0 1, 0 0. Exempel 1

TAIU07 Matematiska beräkningar med Matlab

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 =

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

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

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

Beräkningsverktyg HT07

Mer om funktioner och grafik i Python

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

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

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

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

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

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

Linjär algebra med tillämpningar, lab 1

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

Dagens program. Repetition Determinanten Definition och grundläggande egenskaper

Block 2: Lineära system

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

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

SKRIVNING I VEKTORGEOMETRI

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

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

Linjär Algebra M/TD Läsvecka 3

MMA132: Laboration 2 Matriser i MATLAB

Determinanter, egenvectorer, egenvärden.

Algebraiska egenskaper hos R n i)u + v = v + U

Linjära ekvationssystem

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

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

Objective:: Linjärt beroende och oberoende version 1.0

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

1 Linjära ekvationssystem. 2 Vektorer

Dagens program. Linjära ekvationssystem och matriser

Linjära ekvationssystem

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

Beräkningsvetenskap föreläsning 2

Laboration 0: Del 2. Benjamin Kjellson Introduktion till matriser, vektorer, och ekvationssystem

MATLAB. Vad är MATLAB? En kalkylator för linlär algebra. Ett programspråk liknande t.ex Java. Ett grafiskt verktyg.

Moment Viktiga exempel Övningsuppgifter

Subtraktion. Räkneregler

Hemuppgift 1, SF1861 Optimeringslära för T

Carl Olsson Carl Olsson Linjär Algebra / 18

Minsta kvadratmetoden

LYCKA TILL! kl 8 13

SKRIVNING I VEKTORGEOMETRI Delkurs

Linjär algebra med MATLAB

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

Vektorgeometri för gymnasister

Minsta-kvadratmetoden

Linjär Algebra, Föreläsning 8

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

8 Minsta kvadratmetoden

FMNF15 HT18: Beräkningsprogrammering Numerisk Analys, Matematikcentrum

Transkript:

Linjär algebra, I1 2011/2012 Matematiska vetenskaper Matriser och linjära ekvationssystem Matriser En matris är som ni vet 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 är av typ m n Ett matriselement i rad nr i, kolonn nr j tecknas a ij, där i är radindex och j är kolonnindex I Matlab skrivs detta A(i,j) och [m,n]=size(a) ger matrisens typ Indexeringen av en matris i Matlab är alltid som ovan, dvs rad- och kolonnindex börjar alltid på ett och vi kan inte ändra på det En matris av typ m 1 kallas kolonnmatris (kolonnvektor) och en matris av typ 1 n kallas radmatris (radvektor): a 1 a = a m, b = [ ] b 1 b n Du kommer att se att vi använder oftast kolonnvektorer för att representera kvantiteter som vi beräknar Element nr i ges i Matlab av a(i) och antalet element ges av m=length(a) Motsvarande gäller för radvektorn b Även för vektorer gäller att indexeringen alltid börjar på ett Som exempel tar vi Vi skriver in detta i Matlab enligt >> A=[1 4 7 10; 2 5 8 11; 3 6 9 12] >> a=[1; 3; 5] >> b=[0 2 4] 1 4 7 10 1 A = 2 5 8 11, a = 3, b = [ 0 2 4 ] 3 6 9 12 5 Uppgift 1 Skriv in följande matriser i Matlab 1 5 9 A = 2 6 10 4 5 6 1 3 7 11, B = 3 2 1, x = 1, a = [ 1 0 1 ] 1 1 1 1 4 8 12 1

Skriv ut matriselementen a 23, b 23, x 2 Prova size och length Ändra b 23 genom att skriva B(2,3)=5 En matris kan betraktas som en kollektion av kolonner: a 11 a 1j a 1n A = = [ ] a 1 a j a n a m1 a mj a mn med kolonnerna a 1 = a 11 a m1, a j = a 1j a mj, a n = Man kan även betrakta den som en kollektion av rader, men vi använder oftast kolonnrepresentationen I Matlab plockar man ut kolonn nr j med A(:,j) Här är j kolonnindex medan radindex i = 1,,m representeras av tecknet kolon (:) På liknande vis ges rad nr i av A(i,:) Uppgift 2 Skriv ut kolonn nr 1, 2 och 3 ur matrisen A i uppgift 1 Sätt in kolonnvektorn x som första kolonn i B genom att skriva B(:,1)=x Uppgift 3 Radera matrisen B (clear B) och skriv in den igen genom att först bilda kolonnerna 4 5 6 b 1 = 3, b 2 = 2, b 3 = 1 1 1 1 och sedan sätta in dem i matrisen B = [b 1 b 2 b 3 ] Elementära funktioner Funktioner som sinus och cosinus, kan operera på matriser Man får som resultat en matris av samma typ vars element är funktionsvärdet av respektive element i argumentet Som exempel tar vi som vi skriver in i Matlab enligt >> A=[1 4 7 10; 2 5 8 11; 3 6 9 12] >> c=[0 2 4 6 8] a 1n a mn 1 4 7 10 A = 2 5 8 11, c = [ 0 2 4 6 8 ] 3 6 9 12 Nu beräknar vi sinus av vektorn c och matrisen A med >> v=sin(c) 0 09093-07568 -02794 09894 >> V=sin(A) V = 08415-07568 06570-05440 09093-09589 09894-10000 01411-02794 04121-05366 2

Matris- och vektorfunktioner Vi har redan sett funktionerna length och size Som exempel använder vi samma vektor c och matris A som tidigare Antal element i vektorn c ges av >> l=length(c) l = 5 och antalet rader och kolonner A fås med >> [m,n]=size(a) m = 3 n = 4 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 med [v,index]=max(c) kan vi få reda på var det maximala värdet finns någonstans 3

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 = 20 >> s=sum(a) s = 6 15 24 33 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 Matlab har funktionerna zeros, ones, eye för att bilda speciella matriser med nollor, ettor och enhetsmatris Med zeros(2,5) får vi en matris av typen 2 5 fylld med nollor och med ones(2,5) får vi en matris av samma typ, men fylld med ettor För att få en enhetsmatris av typen 5 5 ger vi eye(5,5) Med ones(size(a)) får vi en matris fylld med ettor av samma typ som A Motsvarande gäller för zeros och eye Det finns funktioner rand och randn för att bilda matriser fyllda med slumptal Hantering av matriser Vektorn c = (0, 2, 4, 6, 8) kan bildas på de två sätten >> c=[0 2 4 6 8] >> c=0:2:8 Det senare lite enklare sättet kallas kolon-notation Med kolon-notation en bygger vi upp en vektor enligt variabelnamn = startvärde: steg: slutvärde Det finns ytterligare ett sätt att bilda c, nämligen med funktionen linspace enligt >> c=linspace(0,8,5) Som argument till linspace ger vi startvärde, slutvärde och antal värden jämnt fördelade mellan gränserna Vi låter s få tredje värdet c 3 med s=c(3) och bildar vektorn v av andra och femte värdet, dvs (c 2, c 5 ), med >> v=c([2,5]) 2 8 Vi kan ändra ett element i v, tex låta v 2 = 0, med >> v(2)=0 2 0 4

Vi låter s få värdet av elementet på rad 2, kolonn 3 i matrisen A från inledningen med s=a(2,3) och vi bildar en radvektor v av rad 3, alla kolonner med >> v=a(3,:) 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 Matris-vektor-multiplikation Vi definierar produkten av en radmatris och en kolonnmatris (med samma antal element) enligt: x 1 ax = [ ] a 1 a n x n = a 1 x 1 + a 2 x 2 + + a n x n Observera att detta är samma formel som för skalärprodukt Produkten y = Ax av en matris av typen m n och en kolonnvektor av typen n 1 definieras på liknande vis genom att vi multiplicerar matrisens rader i tur och ordning med kolonnvektorn Vi får en kolonnvektor av typen m 1 och den ges av y = Ax (1) y 1 a 11 a 1n x 1 a 11 x 1 + a 12 x 2 + + a 1n x n = =, (2) y m a m1 a mn x n a m1 x 1 + a m2 x 2 + + a mn x n y i = n a ij x j = a i1 x 1 + a i2 x 2 + + a in x n j=1 Observera att typerna måste stämma överens för att produkten ska vara definierad enligt regeln m 1 = (m n)(n 1) Ett alternativt sätt att introducera matris-vektor-multiplikation är att definiera Ax som en linjärkombination av kolonnerna i A, (se Lay avsnitt 14) x 1 Ax = [ ] a 1 a n x n = x 1 a 1 + x 2 a 2 + + x n a n 5

Detta leder förstås till samma uttryck som i (2), x 1 a 1 +x 2 a 2 + +x n a n = a 11 a m1 x 1 + a 12 a m2 I Matlab skriver man helt enkelt y=a*x x 2 + + a 1n a mn x n = a 11 x 1 + a 12 x 2 + + a 1n x n a m1 x 1 + a m2 x 2 + + a mn x n Uppgift 4 Skriv in följande matriser i Matlab 1 5 9 A = 2 6 10 4 5 6 1 3 7 11, B = 3 2 1, x = 1, a = [ 1 0 1 ] 1 1 1 1 4 8 12 Beräkna följande produkter, först för hand sedan med Matlab Linjärt ekvationssystem Ax, Bx, ax, Aa Matriser används bland annat för att skriva ned linjära ekvationssystem Exempel: ekvationssystemet x 1 + 2x 2 + 3x 3 = 14 3x 1 + 2x 2 + x 3 = 10 7x 1 + 8x 2 = 23 kan skrivas på matrisform 1 2 3 x 1 14 3 2 1 x 2 = 10, 7 8 0 x 3 23 dvs 1 2 3 14 Ax = b, med A = 3 2 1, b = 10 7 8 0 23 Vi ska lära oss hur man löser sådana ekvationssystem I Matlab finns backslash-kommandot (\) eller alternativt kommandot rref (row-reduced-echelon form) som löser systemet, Ax = b: >> x=a\b >> rref([a b]) I det första fallet fungerar det bra om lösningen är entydig men sämre om det finns fria variabler eller inga lösningar alls I det andra fallet reducerar Matlab den utökade matrisen [A b] till reducerad trappstegsform Ibland blir det något enklare att tolka svaret om an ger kommandot format rat före beräkningarna, då skriver Matlab svaret med rationella tal Med format short får vi tillbaka standard formatet 6

Uppgift 5 Skriv följande ekvationssystem på matrisform (utökad matris!) och lös dom sedan med \ respektive rref x 1 + 5x 2 + 9x 3 = 29 x 1 + x 2 + 3x 3 + 4x 4 = 2 2x 1 + 5x 3 = 26 2x 1 + 2x 2 + 2x 3 = 4 3x 1 + 7x 2 + 11x 3 = 39 x 1 + x 2 + 2x 3 + 3x 4 = 1 x 1 x 2 2x 3 x 4 = 1 Uppgift 6 Vi skall beräkna temperaturen på en stålplatta där plattans kanter hålls vid temperaturer enligt figuren Detta är en fortsättning på uppgiften Lay 11: 33 (sid 12-13) 20 C T1 T2 T3 T4 T5 T6 10 C 40 C T7 T8 T9 30 C Antag att temperaturen i en nodpunkt är medelvärdet av temperaturena i de närmsta nodpunkterna i väster, öster, söder och norr Låt T 1, T 2,, T 9 beteckna temperaturerna i de olika nodpunkterna Sätt upp de ekvationer som ger temperaturen i de olika nodpunkterna Skriv det linjära ekvationssystemet på matrisform AT = b och lös detta i Matlab Skapa matris kolonnvis Vi bygger ofta upp matriser med hjälp någon beräkningsalgoritm, ibland görs beräkningen kolonnvis Vi ger ett exempel Matrisen 1 2 3 4 10 C = 1 2 3 4 10 1 2 3 4 10 1 2 3 4 10 skapas av for-loopen clear C ett=ones(4,1); for i=1:10 C(:,i)=i*ett; end Uppgift 7 Skriv en skriptfil som gör detta Tag bort semikolon så att du ser vad som händer i varje steg Du kan också pröva att bilda C genom en sk ytterprodukt enligt C=ett*[1:10] Lägg märke till att ett är en kolonnvektor medan [1:10] är en radvektor Vi kan använda tic och toc för att mäta den tid beräkningarna tar Det blir tydligare om vi tar en större matris Pröva följande som en skriptfil 7

clear C ett=ones(2000,1); tic for i=1:100 C(:,i)=i*ett; end toc Tänk på att sätta semikolon på alla beräkningar, så inte skärmen fylls med ointressanta utskrifter Matrisen C kommer succesivt byggas upp och bli av typen 2000 100 Om vi nu istället för clear C skriver C=zeros(2000,100); så får matrisen C sin slutliga storlek på en gång Vi börjar med en stor matris fylld med nollor, där vi i loopen succesivt sätter in rätt kolonner Kör nu den nya skriptfilen och se om beräkningstiden blev kortare Matrisiterationer Avslutningsvis skall vi kort se på några matrisiterationer Vi kommer se mer av detta senare, bla vid lösning av icke-linjära ekvationssystem i kursen i flervariabel analys Uppgift 8 Låt 1 1 1 A = 0 1 1 0 0 1 Skriv en for-loop som skapar matrisen X = [x 1,x 2,,x 5 ] där 1 x 1 = 2, x k+1 = Ax k 3 Uppgift 9 Tre butiker A, B och C säljer samma elektronikpryl De bevakar varandra och justerar sina priser varje månad När butik A sätter priset för månad k utgår de från deras eget pris x k och justerar med proportionalitetsfaktorer c 12 och c 13 av skillnaden mellan det egna priset och priset hos konkurenterna, x k+1 = x k c 12 (x k y k ) c 13 (x k z k ) där y k och z k är priset hos B och C På motsvarande sätt justerar butikerna B och C sina priser Låt x k = (x k, y k, z k ) och sätt upp en matris A så att prisutvecklingen beskrivs av x k+1 = Ax k, k = 0, 1, Välj introduktionspriserna x 0 = 950, y 0 = 1050 och z 0 = 1099 Rita ett diagram över prisutvecklingen under 12 månader Pröva tex c 12 = 002, c 13 = 01, c 21 = 001, c 23 = 05, c 31 = 01 och c 32 = 01 Redovisning Uppgifterna 1-9 redovisas för handledaren 8