Grunderna i MATLAB. Beräkningsvetenskap och Matlab

Relevanta dokument
Grunderna i MATLAB. Beräkningsvetenskap och Matlab

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

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

Grunderna i MATLAB. Beräkningsvetenskap och Matlab

Vad är MATLAB? Vad är MATLAB? Vad är MATLAB? Användningsområden. Att börja använda MATLAB. Informationsteknologi. Grunderna i MATLAB

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Vad är MATLAB? Användningsområden. Informationsteknologi. Grunderna i MATLAB

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Vad är MATLAB? Användningsområden. Informationsteknologi. Informationsteknologi

Vad är MATLAB? Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Vad är MATLAB? Användningsområden. Var kan man köra MATLAB? MATLAB-miljön: avsluta. MATLAB-miljön: Start. Informationsteknologi. Grunderna i MATLAB

Innehåll. Vad är MATLAB? Vad är MATLAB? Informationsteknologi. Grunderna i MATLAB. Informationsteknologi. Informationsteknologi. Vad är MATLAB?

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

MATLAB Matrix laboratory

Beräkningsvetenskap och Matlab. Vad är MATLAB? Vad är MATLAB? Användningsområden. Vad är MATLAB? Grunderna i Matlab. Beräkningsvetenskap == Matlab?

Laboration: Grunderna i Matlab

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

Beräkningsverktyg HT07

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

Datorövning 1: Introduktion till MATLAB

Laboration: Grunderna i MATLAB

Introduktion till Matlab

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: Vektorer och matriser

TANA17 Matematiska beräkningar med Matlab

Introduktion till MATLAB

TAIU07 Matematiska beräkningar med Matlab

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

TSBB14 Laboration: Intro till Matlab 1D

Introduktion till Matlab

Introduktion till Matlab

Matriser och vektorer i 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

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

Mer om funktioner och grafik i Matlab

Matlabövning 1 Funktioner och grafer i Matlab

Matlabövning 1 Funktioner och grafer i Matlab

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

Introduktion till Matlab

Datorövning 1 Fördelningar

Introduktion till Matlab

Matriser och Inbyggda funktioner i Matlab

Introduktion till Matlab

Introduktion till Matlab

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

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

Introduktion till Matlab

Introduktion till Matlab

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

Beräkningsvetenskap föreläsning 2

Introduktion till Matlab

Introduktion till Matlab

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

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

Introduktion till Matlab Föreläsning 1. Ingenjörsvetenskap

Matriser och Inbyggda funktioner i Matlab

Introduktion till MATLAB Föreläsning 1

Matriser och linjära ekvationssystem

Datorövning 1: Fördelningar

Grundläggande kommandon

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

Linjära ekvationssystem

Grafritning och Matriser

1.1 MATLABs kommandon för matriser

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

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

Laborationstillfälle 1 Lite mer om Matlab och matematik

Instruktion för laboration 1

MATLAB övningar, del1 Inledande Matematik

Funktioner och grafritning i Matlab

ATT RITA GRAFER MED KOMMANDOT "PLOT"

Introduktion & MATLABrepetition. (Kap. 1 2 i MATLAB Programming for Engineers, S. Chapman)

linjära ekvationssystem.

Mer om funktioner och grafik i Matlab

Matriser och vektorer 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är algebra med tillämpningar, lab 1

Mer om linjära ekvationssystem

Kapitel 4. Programmet MATLAB

Lab 1, Funktioner, funktionsfiler och grafer.

Matematisk Modellering

En introduktion till MatLab

KPP053, HT2016 MATLAB, Föreläsning 3. Plotter och diagram Läsa och skriva data till fil

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

Motivering för programmering. F1: Introduktion, Matlabrepetition (kap. 1 2) Att kunna programmera. Interpreterat/kompilerat

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

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

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

Mer om linjära ekvationssystem

Matriser och linjära ekvationssystem

Funktioner och grafritning i Matlab

TSRT04: Introduktionskurs i Matlab Datorlektion 1

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

MATLAB. Introduktion. Syfte. Tips. Oktober 2009

Linjär algebra med MATLAB

Introduktion till MATLAB

(a) Skriv en matlabsekvens som genererar en liknande figur som den ovan.

MATLAB - en kompakt introduktion av Tore Gustafsson

Laboration 1: Linjär algebra

Transkript:

Grunderna i MATLAB Beräkningsvetenskap I Beräkningsvetenskap och Matlab n Matlab är ett matematiskt verktyg och programmeringsmiljö som används inom beräkningsvetenskap men även inom andra områden (matematik, fysik, kemi, biologi, mm) n En enkel miljö för att snabbt testa idéer och för att studera resultat. Matematisk labbmiljö för Numeriska beräkningar Grafik Programmering Många kraftfulla fördefinierade funktioner med möjlighet att definiera egna. Många Toolboxar för olika tillämpningsområden (t.ex systemteknik) 1

MATLAB-miljön n Utvecklingsmiljön (MATLAB desktop) har ett flertal fönster, Command window, Current folder, Workspace och Command History. Uppgift: Starta Matlab på din dator och förflytta dig till lämplig katalog genom att klicka dig fram i Current folder eller i navigeringsraden ovanför. MATLAB-miljön n I Command Window kan man arbeta interaktivt som en avancerad miniräknare. Semikolon undertrycker utskrift. Om inget variabelnamn anges läggs variabeln i ans (=answer) Variabler skapas när de behövs, utan speciell deklaration (är av typen matris ). >> a = 75 a = 75 >> b = 34; >> c = a*b c = 2550 >> a+b ans = 109 2

Variabler i MATLAB n Variablerna visas i delfönstret Workspace n Kan även lista variabler i kommandofönstret med kommando who, whos Matriser n Matrisen är den grundläggande datatypen. n En tvådimensionell matris är en tabell med rader och kolonner. n En matris med m rader och n kolonner har storleken m n (m gånger n). n Vektorer är specialfall av matriser, då antal rader eller antal kolonner är 1. Exempel: radvektor, 1 n, och kolonnvektor, m 1. n En matris av storlek 1 1 kallas skalär (ett tal). n Varje värde i matrisen kallas element. 3

Vektorer Kolonnvektor och radvektor i MATLAB Semikolon i vektorer ger radbyte >> vkol = [ 1; 2; 3; 4; 5 ] >> vrad = [5 6 7 8 ], x = 3 vkol = % Kolonnvektor 1 2 3 4 5 vrad = % Radvektor 5 6 7 8 x = % Skalär 3 Vektorer Ändra enskilda element >> vrad(1) = -1.1; vrad(2) = 3.5; >> vrad vrad = -1.1000 3.5000 >> vkol = vrad' %transponera vkol = -1.1000 3.5000 vrad(1) anger att index 1 (position 1) ska tilldelas Tecknet betyder transponat 4

Generera vektorer n Kolonnotation används ofta för att skapa vektorer startvärde:steglängd:slutvärde om steglängd=1 kan det utelämnas >> vektor = 0:5 vektor = 0 1 2 3 4 5 >> vektor2 = 0.0:0.05:2.0 vektor2 = 0 0.0500 0.1000 0.1500... 1.9500 2.0000 Generera vektorer Kommandot linspace skapar också vektorer linspace(startvärde,slutvärde,antal_elem) >> v = linspace(0,2,10) v = 0 0.2222 0.4444 0.6667 0.8889 1.1111 1.3333 1.5556 1.7778 2.0000 Dessa två metoder används t ex när man skapar x-axlar vid grafik och vid numeriska beräkningar (diskretisering av x-axeln). Uppgift: Skapa en vektor med jämnt fördelade element av avstånd 2*pi/100 på intervallet [-pi, pi] på två olika sätt med metoderna ovan. 5

Hur skapas en matris? Skapa 1 A = 5 7 3 Semikolon eller retur i matrisen ger radbyte Semikolon efter hela uttrycket undertrycker utskrift Uppgift: Skapa en 3x4 matris och transponera den. >> A = [1 7; 5 3]; >> A A = 1 7 5 3 >> A = [1 7 5 3] A = 1 7 5 3 Matris elementvis 1 7 A = 5 3 >> A(1,1)=1; A(1,2)=7; >> A(2,1)=5; A(2,2)=3; >> A A = 1 7 5 3 6

Speciella matriskommandon n Finns inbyggda funktioner för att skapa vanliga (och ovanliga) matriser n Kan skapa mer avancerade matriser genom kombinationer eye(n) enhetsmatrisen ones(m,n) ett-matris zeros(m,n) noll-matris rand(m,n) slumpmatris + ett stort antal andra >> B = ones(2,3) B = 1 1 1 1 1 1 >> eye(2) ans = 1 0 0 1 >> C = zeros(2,2) C = 0 0 0 0 Element, rader och kolonner n Man kan arbeta med enskilda element, rader, kolonner, delmatriser >> A(2,1) ans = 5 Kolon (:) betecknar hel rad respektive hel kolonn >> A(2,:) ans = 5 3 >> A(2,:) = [0 0] A = 1 7 0 0 2 1 7

Delmatriser, kolon-notation Delmatriser till matrisen A, m n kan skapas snabbt med kolon-notation n A(:,j) j:te kolonnen av A n A(i,:) i:te raden av A n A(i:k,j:m) delmatris, rader i-k och kol j-m A = 1 7 6 0 0 5 2 1 3 >> B = A(2:3,1:2) B = 0 0 2 1 Exempel Plocka ut denna delmatris Workspace och Array Editor n Om man dubbelklickar på en variabel i delfönstret Workspace så öppnas ett nytt fönster, Array Editor Dubbelklicka på en variabel i Workspace n Kan man ändra variabelvärde men även storlek. 8

Bestämma storlek och längd >> A = [1 7; 5 3] >> vkol = [ 1; 2; 3; 4; 5 ] >> size(a), size(vkol), length(vkol) ans = 2 2 ans = 5 1 ans = 5 Matrisoperationer, aritmetiska n Matematiska operationer på matriser kan göras direkt, C = sin(a); och fungerar då elementvis n Addition/subtraktion OK om samma storlek, t ex C = A + B, där A och B är m n n Matrismultiplikation, C = A*B, fungerar bara om antal kolonner i A är samma som antal rader i B n Matrisdivision, C=A/B, betyder C=A*inv(B) 9

Matrisalgebra Vad händer om storlekarna inte stämmer? >> A=[1 7;5 3]; >> x = [2; 1]; >> A*x ans = 9 13 1 Ax = 5 7 2 3 1 2 1 men xa = 1 5 fungerar inte >> x*a??? Error using ==> * Inner matrix dimensions must agree. är OK, 7 3 Vanliga räkneregler för matriser/vektorer gäller! Elementvisa operationer n Operationer, t ex *,/,^ kan även utföras elementvis Exempel: B^2 = B*B men B.^2 = b b 2 11 2 21 b b 2 12 2 22 >> B = [1 7;5 3]; >> B^2 ans = 36 28 20 44 >> B.^2 ans = 1 49 25 9 10

Elementvisa operationer n På samma sätt är B*C vanlig matrismultiplikation mellan två matriser medan B.*C = b11c b21c 11 21 n Ibland kan detta generera fel (vanligt fel att glömma punkt) b b 12 22 c c 12 22 >> a = [2 4]; >> a.^2 ans = >> a^2 4 16??? Error using ==> ^ Matrix must be square. Linjära ekvationssystem n Backslash-operatorn, \ Används för att lösa ekvationssystem, Ax=b >> A = [-2 4;2 5]; b=[1;2]; >> x = A\b x = 0.1667 0.3333 Uppgift: Skapa ett slumpmässigt linjärt ekvationssystem av storlek 5x5 och lös det. Verifiera lösningen genom att beräkna residualen r=ax-b. Vad förväntar vi oss för resultat och hur stor avvikelse kan vi tillåta? 11

Komplexa tal n Komplexa tal kan skapas med complex >> z = complex(1.2, 2.5) z = 1.2000 + 2.5000i n eller i en beräkning >> z = sqrt(-2) z = 0 + 1.4142i Komplexa tal n Givetvis fungerar vektorer >> z = complex([1.2 3],[-1 2.5]) z = 1.2000-1.0000i -3.0000 + 2.5000i n Speciella funktioner real(z) ger realdelen av z imag(z) ger imaginärdelen av z conj(z) konjugatet till z abs(z) - absolutbeloppet av z angle(z)- fasvinkeln i radianer 12

Enkel grafik (2D) n Gången när något ska plottas är Skapa en horisontell axel (x-axel) Beräkna funktionsvärden (y-axel) Plotta x mot y, plot(x,y) Spara figuren för att inkludera in en rapport senare (finns olika filformat, se help print ) >> x = linspace(0,2*pi,50); >> y = cos(x)+sin(x); >> plot(x,y) >> print djpeg minfig.jpg Enkel grafik (2D) n X-axel skapas genom x = linspace(x0,x1,antal_pkt); eller x = [x0:steglangd:x1]; n Plotkommandot kan utvidgas på många olika sätt, t ex (gör help plot ) >> plot(x,cos(x), -,x,sin(x), o ) Alternativt: >> plot(x,cos(x), - ) >> hold on; >> plot(x,sin(x), go ) 13

Enkel grafik (2D) Uppgift:Plotta funktionen y=sin(x 2 ) i intervallet x=[0,5] med steg av 0.05 och använd en blå streckad linje och * som punktmarkeringar i datapunkterna. Enkel grafik, histogram n bar(x,y) eller bar(y) n bar(a, stacked ), bar(a, grouped ) n bar3(a) [A är en 6x3 matris nedan] 14

Enkel grafik, tårtdiagram n pie(x), pie3(x) n pie3(x,utdrag,{ Bit 1, Bit 2, }) 3D-grafik n I 3D har man x, y och z-axel n Givet x-axel och y-axel måste man skapa x- värden för alla y-värden, och y-värden för alla x- värden, ett nät. Detta görs med kommandot meshgrid 15

3D-grafik Antag att f ( x, y) = xe 2 2 x y ska plottas i figuren n Axlarna i bilden fås genom >> x = 0:0.1:1; y = 0:0.2:1; n Nätet skapas genom >> [X, Y] = meshgrid(x,y); n Funktionsvärdena beräknas för varje x och y- värde >> Z = X.* exp(-x.^2 - Y.^2); 3D-grafik n Slutligen plotta >> mesh(x,y,z); 16

3D-grafik n Lite bättre upplösning om man ökar antalet punkter i x och y-led >> x=linspace(0,1,50); y=linspace(0,1,50); >> [X,Y] = meshgrid(x,y); >> Z = X.* exp(-x.^2 - Y.^2); >> mesh(x,y,z); 3D-grafik n Byt mesh mot surf så fås en yta >> surf(x,y,z); 17

3D-grafik n Ta bort rutnätet >> shading( interp ); Uppgift: Plotta Twin-peaks funktionen z=(x 2 +3y 2 )e (1-x*x-y*y), x=[-2,2], y=[-2,2] 18

3D-grafik n Nivålinjer >> contour(x,y,z,20); >> contour3(x,y,z,20); Grafik-fönstret n Använd menyerna i grafikfönstret för att rotera, zooma, flytta synvinklar, ändra linjetyper, lägga till text, ändra färgskalor, etc. Uppgift: Lägg till namn på x-, y- and z-axlarna i Twin-peaks plotten. Sätt också titel och rotera figuren. (Extra: Ändra på färgskalan, colormap.) 19

Text (textsträngar) n Text skrivs innanför apostrofer, dvs '' >> namn = 'Nisse'; >> utrop = ['Hej ' namn '!'] utrop = Hej Nisse! >> namn(2) = 'a' namn = Nasse n Exemplet visar att texter (textsträngar) fungerar som radvektorer med indexering. n Observera att man sammanfogar flera textbitar med hakparenteserna. Text När behövs textsträngar? n T ex för att ha texter på axlarna i bilder, som skapats med plot-kommandot >> x = linspace(0,3*pi,50); y = sin(x); >> plot(x,y); >> title( Sinus mellan 0 till 3\pi ); >> xlabel( x ); ylabel( sin(x) ); \pi i en textsträng är s k LaTeX-syntax och kan användas för att skriva matematisk text Resultatet... 20

Text...blir det här title(...) ylabel(...) xlabel(...) Några små tips n Piltangent återkallar tidigare kommandon, skriv början på kommandot och använd pilen. n kan också använda delfönstret command history Dubbelklicka på ett kommando för att upprepa (inkl utföra) kommandot Markera kommandot med musen, dra och släpp i kommandofönstret. Kommandot utförs ej utan man trycker på return för att utföra. Kan på det sättet ändra i kommandot innan utförande. 21

Några små tips n ctrl-c avbryter körningen av ett kommando (men stoppar inte MATLAB) n diary kan användas för att spara skärmutskrifter i en fil >> diary uppg1.txt diverse kommandon här >> diary off % stänger diary Allt som skrivs på skärmen mellan diary och diary off hamnar nu i filen uppg1.txt. Lämpligt att använda för att redovisa körexempel i inlämningsuppgifter t ex. Sammanfattning n MATLAB-miljön Command Window (arbetsfönster), Current Folder (filer), Workspace (variabler), Command History (tidigare kommandon) n Variabler i MATLAB Lagrar värden, skapas vid tilldelning, x=3.22; z=1e-20; Kommandon: whos, save, load, format n Matematiska funktioner och beräkningar Matlab fungerar som en avancerad miniräknare +, -, *, /, ^, sqrt(x), sin(x), log(x), exp(x), etc. n Vektorer och matriser A=[ 2 3; 2 1 ]; A(1,2)=4; A(2,:)=[ 3 4 ]; x=linspace(xstart,xstop,npkt); x=xstart:dx:xstop; length, size, zeros, ones, eye, rand, lu(a); x=a\b,.*,./,.^ 22

Sammanfattning n Grafik plot(x,y, r-* ), xlabel, ylabel, title, bar, pie, hold on, clf, print djpeg fig.jpg meshgrid, mesh, surf, shading, contour, contour3 n Textsträngar text= Hej ; text2=[text alla! ]; text2(2)= o ; disp(text), text=num2str(x) n Kommandofiler (M-filer) Alla kommandon kan sparas i en M-fil och köras som ett enkelt program. Kommandona utförs en i taget i ordning. Kommandofiler har ändelsen.m (LisasFil.m) och körs med Runknappen eller genom att skriva filnamnet i kommandofönstret. n Annat nyttigt exit, help, demo, diary, ctrl-c, input, piltangenten 23