Matriser och Inbyggda funktioner i Matlab

Relevanta dokument
Matriser och Inbyggda funktioner i Matlab

Mer om funktioner och grafik i Matlab

Matriser och vektorer i Matlab

Mer om funktioner och grafik i Matlab

Matriser och linjära ekvationssystem

Funktioner och grafritning 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

Linjära ekvationssystem i Matlab

Grafritning och Matriser

Introduktion till Matlab

Introduktion till Matlab

Introduktion till Matlab

Matriser och vektorer i Matlab

Funktioner och grafritning i Matlab

Introduktion till Matlab

linjära ekvationssystem.

Matriser och linjära ekvationssystem

Grafik och Egna funktioner i Matlab

Introduktion till Matlab

Introduktion till Matlab

Introduktion till Matlab

Introduktion till Matlab

Linjära ekvationssystem

Mer om funktioner och grafik i Matlab

Mer om funktioner och grafik i Python

Introduktion till Matlab

Introduktion till Matlab

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

Mer om linjära ekvationssystem

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

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

Introduktion till Matlab

TANA17 Matematiska beräkningar med Matlab

Introduktion till MATLAB

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

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

TAIU07 Matematiska beräkningar med Matlab

Matlabövning 1 Funktioner och grafer i Matlab

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

Matlabövning 1 Funktioner och grafer i Matlab

TSBB14 Laboration: Intro till Matlab 1D

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

Mer om linjära ekvationssystem

Laborationstillfälle 1 Lite mer om Matlab och matematik

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

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

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

MATLAB övningar, del1 Inledande Matematik

Programmeringsuppgift Game of Life

Datorövning 1 Fördelningar

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

KPP053, HT2016 MATLAB, Föreläsning 2. Vektorer Matriser Plotta i 2D Teckensträngar

Introduktion till MATLAB

Linjär algebra med tillämpningar, lab 1

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

Laboration: Grunderna i Matlab

Beräkningsverktyg HT07

Datorövning 1: Introduktion till MATLAB

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

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

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

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Linjär Algebra M/TD Läsvecka 2

Funktionsytor och nivåkurvor

TANA17 Matematiska beräkningar med Matlab

Laboration: Grunderna i MATLAB

Lab 1, Funktioner, funktionsfiler och grafer.

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

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

TAIU07 Matematiska beräkningar med Matlab

Newtons metod och arsenik på lekplatser

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

Laboration: Vektorer och matriser

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

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

Matriser. Vektorer. Forts. Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Kort om programmering i Python

Linjärisering och Newtons metod

Matematisk analys för ingenjörer Matlabövning 2 Numerisk ekvationslösning och integration

Datorövning 1: Fördelningar

Beräkningsvetenskap föreläsning 2

MAM283 Introduktion till Matlab

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

Exempel att testa. Stora problem och m-filer. Grundläggande programmering 4. Informationsteknologi. Informationsteknologi.

Funktionsytor och nivåkurvor

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

Programmering i Matlab

4.3. Programmering i MATLAB

En introduktion till MatLab

Kort om programmering i Matlab

Vektorer, matriser, nätverk - några elementa

Instruktion för laboration 1

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

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

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

STOCKHOLMS UNIVERSITET VT 2011 Avd. Matematisk statistik GB DATORLABORATION 1: TIDSSERIER.

Mer om linjära ekvationssystem

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

Matriser. Vektorer. Grunderna i MATLAB 2. Informationsteknologi. Informationsteknologi.

Transkript:

CTH/GU STUDIO 1 TMV036a - 2012/2013 Matematiska vetenskaper Matriser och Inbyggda funktioner i Matlab Analys och Linjär Algebra, del A, K1/Kf1/Bt1 Moore: 2.3, 3.1-3.4, 3..1-3.., 4.1, 7.4 1 Inledning Nu skall vi använda läroboken Matlab for Engineers av Holly Moore. Studio-texterna är bara en komplettering och kan inte på något sätt ersätta läsning i läroboken. Vi skall denna vecka se på matriser och funktioner som är inbyggda i Matlab, dels (elementära) matematiska funktioner som sinus och cosinus, dels funktioner för att bilda och operera på vektorer och matriser. Vi skall också ta fram den desktop layout som vi skall använda i de kommande studioövningarna. Men allra först: För att arbeta effektivt och dokumentera arbetet kommer ni använda er av script (skriftfil) som vi såg på förra studio-övningen. Editor i Matlab har något som kallas Cell Mode (cell-läge). Skriver man en kommentar som börjar med två procent-tecken, så avgränsar det en cell. 1

Poängen är att man kan exekvera koden från en cell, istället för hela filen. På så sätt kan man dela upp en stor skriptfil (för en hel studio-övning) i flera delar (varje deluppgift). Bilden ovan visar uppgifterna från förra studio-övningen med editorn i cell-läge. I cell-läge kan man evaluera aktuell cell genom att klicka på att klicka på. Samtliga val finns under Cell i verktygsfältet., evaluera aktuell cell och gå till nästa genom En cell kan evalueras utan att textfilen är sparad, så gör Save då och då. Mer om cell-läge finns att läsa i Moore avsnitt 7.4. 2 Matriser Matematikkursen heter Analys och Linjär Algebra, med del A, B och C och ges under läsperioderna 1, 2 och 3. Linjär algebra kommer behandlas under läsperioderna 2 och 3. Grundstenen i linjär algebra är matrisbegreppet. Detta är även den grundläggande datatypen i Matlab. 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 ä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 size(a) ger matrisens typ. 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 Element nr i ges i Matlab av a(i) och antalet element ges av length(a). På motsvarande sätt för radvektorn b. Som exempel tar vi 1 9 1 6 7 12 A = 2 8 11, B = 2 6 10 1 3 7 11, a = 3, b = [ 0 2 4 6 8 ] 3 4 9 10 4 8 12 Vi skriver in detta i Matlab enligt >> A=[1 6 7 12; 2 8 11; 3 4 9 10] >> B=[1 9; 2 6 10; 3 7 11; 4 8 12] >> a=[1; 3; ] >> b=[0 2 4 6 8] 2

Element på samma rad separeras med ett blanktecken eller ett komma, medan element på olika rader separeras med semikolon. Läs om matriser i Moore avsnitt 2.3. Uppgift 1. Skriv in matriserna i Matlab och skriv sedan ut matriselementen a 23, b 42, a 2. Prova size och length. Ändra b 23 genom att skriva B(2,3)=. Indexeringen i matriser och vektorer i Matlab börjar alltid på 1, vi kan inte påverka detta. T.ex. b(1) är första elementet i vektorn b. Ibland vill vi se en tabell som en matris. Som exempel tar vi: Värmeförlusten hos den som vistas i kyla beror inte enbart på temperaturen, utan även på hur mycket det blåser. Tabellen visar vilken effektiv temperatur det blir vid olika temperaturer T ( C) och vindhastigheter v (m/s). v T 10 6 0-6 -10-16 -26-30 -36 2 9-2 -9-14 -21-33 -37-44 6 7 2 - -13-18 -26-38 -44-1 10 6 1-7 -1-20 -28-41 -47-14 6 0-8 -16-22 -30-44 -49-7 18-1 -9-17 -23-31 -4-1 -9 Om vi ville göra något med dessa data i Matlab så skulle vi lagra temperaturer och vindhastigheter i rad- eller kolonnvektorer och effektiva temperaturerna i en matris. (Vill du läsa mer om värmeförlust gå till SMHI:s hemsida och sök på vindavkylning.) 3 Inbyggda funktioner Läs Moore avsnitt 3.1-3. (hoppa över 3..6) Vi letar upp hjäptexterna för elementära eller matematiska funktioner i Help Navigator genom att successivt öppna MATLAB, User Guide, Functions, Mathematics och slutligen Elementary Math. 3

Vi har en gruppering i trigonometriska, exponential, komplexa, avrundning och rester samt diskreta 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. >> v=sin(b) v = 0 0.9093-0.768-0.2794 0.9894 >> V=sin(A) V = 0.841-0.2794 0.670-0.366 0.9093-0.989 0.9894-1.0000 0.1411-0.768 0.4121-0.440 Vi söker på tan, dvs. tangensfunktionen, och ser på hjälptexten. Uppgift 2. Leta upp hjälptexten du ser i figuren och rita upp tangensfunktionen enligt exemplet. Bygg vidare på skriptfilen ni nyss gjorde med en ny cell för denna uppgift. Vi har redan sett de inbyggda funktionerna length och size. Antal element i vektorn b ges av >> l=length(b) l = och antalet rader och kolonner A fås med 4

>> [m,n]=size(a) m = 3 n = 4 Kontrollera genom att skriva b respektive A och räkna. Pröva med a och B också! 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. >> c=max(b) c = 8 >> C=max(A) C = 3 6 9 12 Vi ser på hjälptexten för max Vi ser att vi med [C,I]=max(A) även kan få reda på var det maximala värdet finns någonstans. 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) s = 20

>> S=sum(A) S = 6 1 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. Med funktionen linspace kan vi göra en radvektor med ett antal värden jämnt fördelade mellan två gränser och är speciellt användbar då man ritar grafer. T.ex. med x=linspace(0,,20) får vi en radvektor med 20 värden mellan 0 och. Med x=linspace(0,) får man istället 100 värden. Funktionerna zeros och ones används för att bilda matriser med nollor respektive ettor. Med zeros(2,) får vi en matris av typen 2 fylld med nollor och med zeros(size(a)) får vi en matris fylld med nollor av samma typ som A. Motsvarande gäller för ones fast då blir det ettor istället. 4 Matrisoperationer Läs Moore avsnitt 4.1. Vi fortsätter och ha följande matriser och vektorer som exempel 1 9 1 6 7 12 A = 2 8 11, B = 2 6 10 1 3 7 11, a = 3, b = [ 0 2 4 6 8 ] 3 4 9 10 4 8 12 Redan i första studio-övningen bildade vi radvektorer eller radmatriser med en operation som kallas kolon-notation och som används flitigt då vi arbetar med matriser och vektorer. Vi gjorde t.ex. en radvektor x av x-värden mellan 0 och 4π, med x=0:0.1:4*pi. Den allmänna formen för att bilda en radvektor med kolon-notation är variabel=start:steg:slut och motsvarande för att bilda en kolonnvektor är variabel=(start:steg:slut) Radvektorn b kan vi alltså bilda på två sätt >> b=[0 2 4 6 8] >> b=0:2:8 och kolonnvektorn a kan vi bilda med >> a=[1;3;] >> a=(1:2:) Apostrofen ( ) är en matrisoperation som vänder på en matris, rader blir kolonner och kolonner blir rader. Vi låter s få tredje värdet b 3 med s=b(3) och bildar vektorn v av andra och femte värdet, dvs. v = (b 2, b ), med 6

>> v=b([2,]) v = 2 8 Vi kan ändra ett element i v, t.ex. låta v 2 = 0, med >> v(2)=0 v = 2 0 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,:) v = 3 4 9 10 samt en kolonnvektor u av rad 2-3, kolonn 2 med >> u=a(2:3,2) u = 4 Vi bildar en matris V av blocket rad 1-2, kolonn 2-3 >> V=A(1:2,2:3) V = 6 7 8 Uppgift 3. Gör Practice Exercises 4.1 och Problems 4.1 i Moore, sid. 142 och 18. Har vi två vektorer u = (2, 3, ) och v = (1, 2, 3) av samma typ och vill bilda summan a = u+v och skillnaden b = u v, så gör vi det med a=u+v respektive b=u-v. Operationerna sker komponentvis a = u + v = (2, 3, ) + (1, 2, 3) = (2 + 1, 3 + 2, + 3) = (3,, 8) b = u v = (2, 3, ) (1, 2, 3) = (2 1, 3 2, 3) = (1, 1, 2) eller med andra ord a i = u i + v i och b i = u i v i. T.ex. vid grafritning behövs de komponentvisa motsvarigheterna till multiplikation och division u.* v = (2, 3, ).* (1, 2, 3) = (2 1, 3 2, 3) = (2, 6, 1) u./ v = (2, 3, )./ (1, 2, 3) = (2/1, 3/2, /3) = (2, 1., 1.666...) Här har vi lånat beteckningar från Matlab där vi skriver u.*v respektive u./v för att utföra beräkningarna. Vi behöver även komponentvis upphöjt till, t.ex. kvadrering u. 2 = (2, 3, ). 2 = (2 2, 3 2, 2 ) = (4, 9, 2) Även här har vi lånat beteckningen från Matlab. 7

Exempel 1. Rita grafen till f(x) = x sin(x) över intervallet 0 x 8. Vi bildar en vektor x = (x 1, x 2,, x n ) med värden jämnt fördelande över intervallet 0 x 8. Sedan bildar vi vektorn y = (f(x 1 ), f(x 2 ),, f(x n )) = (x 1 sin(x 1 ), x 2 sin(x 2 ),, x n sin(x n )) och ritar upp grafen. För att bilda vektorn y behövs den komponentvisa multiplikationen. Vi ritar grafen med >> x=linspace(0,8); >> y=x.*sin(x); >> plot(x,y) >> title( f(x) = x sin(x) ) och så här ser resultatet ut Desktop Layout För att handledning och redovisning skall fungera effektivt kräver vi att all redovisning görs via en sammanhållande skriptfil tillsammans med nödvändiga funktionsfiler (från en skriptfil anropas t.ex. funktionsfiler som behövs för att lösa uppgiften). Skriptfilen som används för redovisning bör vara lämpligt uppdelad med hjälp av t.ex. kommandot pause eller alternativt vara i cell-läge (Cell Mode). Vi kräver också att ni har en Matlab desktop layout av ett slag som visas i figuren ovan. Man åstadkommer detta genom att docka in Matlab-editorn respektive figurfönstret och sedan dra dem till rätt plats (om det behövs!). Att docka in eller ut ett Matlab-fönster görs med de små pilar som finns uppe till höger i fönstren (strax intill krysset ). 8

Fördelarna med detta är att man får en bra (översiktlig och effektiv) interaktiv miljö för att utveckla program och för tolkning av resultat. En bieffekt blir dessutom att både handledning och redovisningar blir effektivare. Uppgift 4. Gör en desktop layout som ser ut ungefär som den i bilden ovan. Spara denna layout med ett lämpligt namn, vilket görs genom att välja Save Layout... under Desktop i verktygsfältet. Denna layout skall ju sedan användas under studio-övningarna. 6 Redovisning Denna vecka skall uppgifterna 1-4 redovisas för handledaren. 7 Inför nästa veckas studio-övning Inför nästa veckas studio-övning är det viktigt att man i förväg läser igenom texten för studioövningen och läser de avsnitt i kursboken av Holly Moore som anges i studio-texten, dvs. avsnitten.1-.2 och 6.1.1-6.1.3. 9