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

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

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

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Introduktion till MATLAB

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

Mer om funktioner och grafik i Matlab

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

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

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

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

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

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

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

TSBB14 Laboration: Intro till Matlab 1D

Beräkningsverktyg HT07

Laboration: Grunderna i MATLAB

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Mer om funktioner och grafik i Matlab

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

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

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

Matlabövning 1 Funktioner och grafer i Matlab

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till MATLAB

Introduktion till Matlab

TAIU07 Matematiska beräkningar med Matlab

Introduktion till Matlab

Introduktion till Matlab

Laboration: Grunderna i Matlab

Introduktion till 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

Matlab övningsuppgifter

Instruktion för laboration 1

Matriser och Inbyggda funktioner i Matlab

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

Introduktion till Matlab

Matlabövning 1 Funktioner och grafer i Matlab

TANA17 Matematiska beräkningar med Matlab

Introduktion till Matlab

Laborationstillfälle 1 Lite mer om Matlab och matematik

GNU Octave under Cygwin Spara grafik i postscriptfiler. Per Jönsson, NMS, Malmö högskola

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

TANA17 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab

Introduktion till Matlab

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

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

Matriser och Inbyggda funktioner i Matlab

Introduktion till Matlab

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

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

Linjära ekvationssystem

Grundläggande kommandon

Matematisk Modellering

15 februari 2016 Sida 1 / 32

TAIU07 Matematiska beräkningar med Matlab

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

Funktioner och grafritning i Matlab

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

Matriser och vektorer i Matlab

Introduktion till Matlab

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

ATT RITA GRAFER MED KOMMANDOT "PLOT"

Parametriserade kurvor

Datorövning 1 Fördelningar

Mer om funktioner och grafik i Matlab

GNU Octave Spara grafik i postscriptfiler. Per Jönsson, NMS, Malmö högskola

TANA17 Matematiska beräkningar med Matlab

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

Matriser och linjära ekvationssystem

Funktioner och grafritning i Matlab

Lab 1, Funktioner, funktionsfiler och grafer.

Instruktion för laboration 1

Linjär algebra med tillämpningar, lab 1

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

Grafritning och Matriser

En introduktion till MatLab

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

Grafik och Egna funktioner i Matlab

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

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

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

2 februari 2016 Sida 1 / 23

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

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

Lab 2, Funktioner, funktionsfiler och grafer.

Matriser och vektorer i Matlab

Grunderna i MATLAB. Beräkningsvetenskap och Matlab

4.4. Mera om grafiken i MATLAB

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

Linjär algebra med MATLAB

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

TAIU07 Matematiska beräkningar med Matlab

MAM283 Introduktion till Matlab

TMV156 Inledande matematik E, 2010 DATORÖVNING 2 ANONYMA FUNKTIONER, FUNKTIONSGRAFER OCH LITE OPTIMERING

Introduktion till Matlab

Introduktion till Python Teoridel

Syftet med den här laborationen är att du skall bli mer förtrogen med följande viktiga områden inom matematisk statistik

Introduktion till Matlab

Matematik med Matlab för I Inledning. 1 Programmering i MATLAB

Transkript:

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

Matriselement och Index För att manipulera enskiljda element i en matris anger man dess index. Exempel Antag att vi har en 2 3 matris A. Elementet a 23 skrivs ut till skärmen genom: >> A = [ 1 2 3 ; 2 3 4 ]; >> disp( A(2,3) ) Man kan ändra elementet a 12 genom att skriva >> A(1,2)=5; 20 januari 2016 Sida 2 / 26

Exempel Fibonacci talföljden definieras som F 1 = F 2 =1 och F n = F n 1 + F n 2 för n = 3, 4,... Bilda en vektor F som innehåller de första 5 st Fibonacci talen. >> F=[1 1]; >> F(3)=F(2)+F(1); % n=3 >> F(4)=F(3)+F(2); % n=4 >> F(5)=F(4)+F(3) % n=5 F = 1 1 2 3 5 Kommentar Detta är inte särskilt effektivt. Vektorn F utökas med ett element vid varje beräkning. Enklare med en for-loop. 20 januari 2016 Sida 3 / 26

Exempel Vi kan titta på flera index samtidigt i en vektor. I Matlab >> x = [ 1 2 3 4 5 6 ]; >> y = x( [1 5 2 ] ) y = 1 5 2 Vi får alltså en vektor y = (x 1, x 5, x 2 ). Detta är ofta användbart. 20 januari 2016 Sida 4 / 26

För att skriva ut en hel rad används : notation >> disp( A(2,:) ) Hela rader eller kolumner kan även ingå i tilldelningssatser. Skriv >> [n,m]=size(a); >> A(2,:) = ones(1,m); så byts hela raden ut mot ettor. Dimensionerna måste stämma. Exempel Addera första raden i en matris till den tredje raden. 20 januari 2016 Sida 5 / 26

Exempel Låt A vara en matris. Vi vill byta plats på raderna med index 2 och 3. I Matlab >> A = [ 1 3-2 ; 0 2 3 ; 4-1 5] A = 1 3-2 0 2 3 4-1 5 >> A([2 3],:) = A([3 2],:) A = 1 3-2 4-1 5 0 2 3 20 januari 2016 Sida 6 / 26

Räkna med matriser eller vektorer Exempel Vi skapar två matriser A och B och beräknar en matris produkt >> A = rand(5,3); >> B = ones(4,5); >> C = B*A; >> [n,m]=size(c) ger n = 4 och m = 3. Hur räkneoperationer mellan matriser och vektorer definieras ingår i Linjär algebran. 20 januari 2016 Sida 7 / 26

Elementvisa räkneoperationer Ofta vill man utföra beräkningar elementvis. Använd då +, -,.*,./, och.^ Exempel kommandona >> x = 0:0.1:1; >> y = (1+exp(x))./(1+x.^2); skapar en vektor y R 11 med exempelvis x(3)=0.2000 och y(3)=2.1360. 1+e 0.2 1+0.2 2 2.1360. Standardfunktioner som sin, cos, etc utförs elementvis! 20 januari 2016 Sida 8 / 26

Operationer på Vektorer För att hitta största eller minsta element i en vektor finns funktionerna max och min. Exempelvis gäller att om >> [m,k]=max( x ); så sätts m till det största elementet i vektorn x och x(k) = m. Skriver man istället >> m=max( x ); så hittas endast det största värdet. I Matlab skriver vi >> x = [ 4 2-2 7 1 ]; >> [m,k]=max( x ); ger m = 7 och k = 4 då x(4) = 7. 20 januari 2016 Sida 9 / 26

Exempel Betrakta funktionen f(x) = 2e x/7 7 sin(4x) på intervallet 0 x π. Vid vilket x-värde antar funktionen sitt minimum? 20 januari 2016 Sida 10 / 26

Funktionen sum beräknar summan av elementen i en vektor. Exempel Summan beräknas i Matlab med S = 100 k=1 k 1+k 2, >> N = 100; k = 1:N; >> S = sum( k./(1+k.^2) ) S = 4.5156 Kommentar Vi väljer variabel namn, dvs k och S, som stämmer överens med den matematiska formuleringen av uppgiften. 20 januari 2016 Sida 11 / 26

Exempel Vi vet att arctan(x) = x x3 3 + x5 5 x7 7 +... och att arctan( 2 1) = π/8. Tag med de första N = 100 termerna i summan och utnyttja detta för att beräkna en approximation avπ. 20 januari 2016 Sida 12 / 26

Funktionen mean beräknar medelvärdet av elementen i en vektor. Exempel I statistik definieras standard avvikelsen som S 2 = 1 n (x n 1 i m) 2, m = 1 n i=1 n x i. Skapa en vektor med n = 100 likformigt fördelade slumptal på intervallet [0, 1] och beräkna dess standardavvikelse. Kommentar Standardavvikelsen kan även beräknas med funktionen std. i=1 20 januari 2016 Sida 13 / 26

Grafik i 2D För att rita kurvor i 2D finns kommandot plot. Skriver vi >> plot( x, y ) så skapas en figur och punkterna (x 1, y 1 ),(x 2, y 2 ),...,(x n, y n ) sammanbinds med räta linjer. Exempel Skriv >> x = [ 1 2 4 5]; >> y = [ 3 2 2 4]; >> plot( x, y ); Punkterna (x k, y k ) sammanbinds med räta linjer. Linjetyp kan anges: >> plot( x, y, r-- ); ger röd streckad linje. Se help plot. 20 januari 2016 Sida 14 / 26

Exempel Rita en graf över funktionen y = arctan(x) på intervallet 2 < x < 2. I Matlab skriver vi: >> x = -2:0.5:2; >> y = atan(x); >> plot( x,y, b-,x,y, r+ ); Kommentar När vi skall skriva flera kommandon som tillsammans för att löser en uppgift är det praktiskt att använda Matlabs editor. Skapa en fil med de kommandon du behöver och kopiera dem till kommandofönstret för att se resultatet. 20 januari 2016 Sida 15 / 26

1.5 1.5 1 1 0.5 0.5 0 0 0.5 0.5 1 1 1.5 2 1.5 1 0.5 0 0.5 1 1.5 2 1.5 2 1.5 1 0.5 0 0.5 1 1.5 2 För att få en jämnare kurva måste vi välja fler punkter (x k, y k ). Till vänster samma kurva med med x=-2:0.01:2. 20 januari 2016 Sida 16 / 26

Efter att en graf ritats upp kan vi lägga till en titel och namnge koordinataxlarna med hjälp av title, xlabel och ylabel. Exempel Efter att grafen f(x) = arctan(x) har ritats upp skriver vi >> xlabel( x ) >> ylabel( y=arctan(x) ) >> title( Funktionskurvan y=f(x) ) För att det skall se bra ut i tryck måste man ofta anpassa textstorleken. Exempel >> xlabel( x, FontSize,14) Kommentar Tecknet betyder start, respektive slut, på en textsträng. Texthantering återkommer senare. 20 januari 2016 Sida 17 / 26

Exempel Rita en graf över funktionen y = cos(x)/(1+x 2 ) på intervallet 0 < x < 1. I Matlab skriver vi: >> x = 0:0.05:1; >> y = cos(x)./(1+x.^2); >> plot(x,y); Observera att elementvis./ och.^ måste användas. Vi kan namnge koordinataxlarna med >> xlabel( x ); >> ylabel( y ); 20 januari 2016 Sida 18 / 26

Exempel Vi vill studera funktionen f(x) = 2+e x (1 cos(2x+1)) x 3 på intervallet [ 1, 1]. Rita därför funktionskurvan samt markera tydligt var funktionen har sitt minimum. 5 4.5 4 3.5 3 y 2.5 2 1.5 1 0.5 0 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 x Vilka MATLAB kommandon behövs? 20 januari 2016 Sida 19 / 26

För att rensa grafik fönstret används clf. Vill man rita flera kurvor i samma fönster används hold on. Avsluta med hold off. Exempel Rita två funktionskurvor i samma figur med >> clf >> plot( x, cos(x), r ) >> hold on >> plot( x, sin(x).^2, b-- ) >> hold off Kommentar Plottning i MATLAB är svårt. Läs hjälptexten för plot, axis, och print. 20 januari 2016 Sida 20 / 26

Utskrifter Vill man skriva ut en figur skall kommandot print användas. Man väljer då ett format och ett filnamn. Exempel Skriver man >> print -depsc bild.eps Skrivs bilden ut i formatet postscript till en fil med namnet bild.eps. Skriver man istället >> print -djpeg bild.jpg så fås en bild i jpeg format. See help print. 20 januari 2016 Sida 21 / 26

Funktionsytor i 3D En funktion z = f(x, y) beskriver en yta ir 3. För att rita upp ytan behöver vi ett antal punkter (x, y, f(x)). Punkterna måsta vara lagrade som tre matriser X, Y och Z där Z(i,j) = f( X(i,j), Y(i,j) ); För att rita upp ytan behöver vi göra följande: 1. Välj lämpliga x- och y-koordinater och lagra dem i två vektorer x och y. 2. Skapa utgående ifrån x och y två matriser X och Y. 3. Beräkna Z matrisen som skall innehålla funktionsvärden z ij = f(x i, y j ). 4. Rita upp ytan. De kommandon vi behöver är meshgrid och antigen mesh eller surf. Läs hjälp texten. 20 januari 2016 Sida 22 / 26

Exempel Skriv de MATLAB kommandon som behövs för att rita upp Rosenbrock funktionen f(x, y) = (1 x) 2 + 100(y x 2 ) 2, som ofta används som exempel på en funktion som är besvärlig att arbeta med inom optimeringsläran. Vi är intresserade av området 2 < x < 2 och 1 < y < 3. Välj först x- och y-koordinater: >> n=100; >> x=-2+4*(0:n-1)/(n-1); >> y=-1+4*(0:n-1)/(n-1); Skapa matriser som innehåller alla punkter på rätt format: >> [X,Y]=meshgrid(x,y); 20 januari 2016 Sida 23 / 26

Vi måste nu beräkna funktionens värden i punkterna >> Z=(1-X).^2+100*(Y-X.^2).^2; där. anger att exponenten beräknas elementvis. Vi ritar slutligen upp ytan med kommmandot >> mesh(x,y,z) 3000 2500 2000 1500 1000 500 0 3 2 2 1 0 1 2 1 0 1 20 januari 2016 Sida 24 / 26

Exempel Rita upp en triangel med hörn i punkterna (0, 1) T,(2, 2) T och(3, 0) T. 20 januari 2016 Sida 25 / 26

Sammanfattning Vi kan nu använda Matlab för att räkna med matriser och vektorer. beräkna summor, medelvärden och hitta max eller min i en vektor. visualisera funktionskurvor i 2D med plot. Nu skall vi tillämpa detta på första laborationsuppgiften! 20 januari 2016 Sida 26 / 26