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

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

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

15 februari 2016 Sida 1 / 32

Introduktion till MATLAB

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

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 Hjälpmedel: MATLAB

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

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

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

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

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

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

Mer om funktioner och grafik i Matlab

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

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

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

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

TSBB14 Laboration: Intro till Matlab 1D

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

Introduktion till Matlab

Matlabövning 1 Funktioner och grafer i Matlab

TANA17 Matematiska beräkningar med Matlab

Laboration: Grunderna i MATLAB

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

Introduktion till Matlab

TEKNISKA HÖGSKOLAN Matematik Fredrik Abrahamsson. Introduktion till 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

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

Matlabövning 1 Funktioner och grafer i Matlab

Matriser och Inbyggda funktioner i Matlab

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

Matlab övningsuppgifter

Laboration: Grunderna i Matlab

TAIU07 Matematiska beräkningar med Matlab

Introduktion till Matlab

TANA17 Matematiska beräkningar med Matlab

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

Beräkningsverktyg HT07

Matriser och Inbyggda funktioner i Matlab

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

Introduktion till Matlab

Matematisk Modellering

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

ATT RITA GRAFER MED KOMMANDOT "PLOT"

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

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

Funktioner och grafritning i Matlab

Laborationstillfälle 1 Lite mer om Matlab och matematik

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

Introduktion till Matlab

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

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

Datorövning 1 Fördelningar

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

Grafritning och Matriser

Geometriska transformationer

Funktioner och grafritning i Matlab

Lab 2, Funktioner, funktionsfiler och grafer.

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

Mer om funktioner och grafik i Matlab

Grunderna i MATLAB. Beräkningsvetenskap och Matlab

TAIU07 Matematiska beräkningar med Matlab

Introduktion till Matlab

Introduktion till Matlab

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

TANA17 Matematiska beräkningar med Matlab

Instruktion för laboration 1

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

Parametriserade kurvor

TANA17 Matematiska beräkningar med Matlab

Grundläggande kommandon

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

Linjära ekvationssystem

MATLAB övningar, del1 Inledande Matematik

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

Lab 1, Funktioner, funktionsfiler och grafer.

Matriser och linjära ekvationssystem

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

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

4 Numerisk integration och av differentialekvationer

TAIU07 Matematiska beräkningar med Matlab

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

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

Välj Links i startmenyn och dubbelklicka på Matematik-mappen. Dubbelklicka därefter på MATLAB 5 - ikonen.

MAM283 Introduktion till Matlab

Linjär algebra med MATLAB

TANA81: Simuleringar med Matlab

4.4. Mera om grafiken i MATLAB

Datorövning 1: Fördelningar

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Introduktion till Python Teoridel

Funktionsytor och nivåkurvor

Transkript:

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

Föreläsning 2 Index. Kolon-notation. Vektoroperationer. Summor och medelvärden. Maximum och Minimum. Grafik i 2D och 3D. Translation av en geometrisk figur. 2 november 2015 Sida 2 / 23

Vektorer Exempel Skapa en vektor som innehåller heltalen 1, 2,...,10, genom att skriva >> x = 1:10 x = 1 2 3 4 5 6 7 8 Detta kallas kolon-notation. Resultatet blir alltid en rad vektor. Vi kan skapa en vektor genom att ange startvärde, steg, och slutvärde genom: >> x = start:steg:slut ; 2 november 2015 Sida 3 / 23

Exempel Skapa en vektor med jämt utspridda värden i intervallet 1 x 4 genom att skriva >> x = 1:0:0.01:4; Detta ger en vektor med length(x)=301. Vill vi istället ha en kolumn-vektor måste vi använda transponat >> x = (1:0.01:4) ; Exempel Skapa en vektor med N = 150 jämnt utspridda tal i intervallet 1 x 4. 2 november 2015 Sida 4 / 23

Indexering Om x är en godtycklig vektor med längd n och k vara en vektor med heltal, 1 k i n. Då gäller att y=x(k) blir en vektor sådan att y i = x(k i ). Exempel Låt x vara en vektor. Vi vill bilda en ny vektor som innehåller elementen x 2, x 5, x 8,... I Matlab skriver vi >> n = length(x); >> y = x( 2:3:n ); 2 november 2015 Sida 5 / 23

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! 2 november 2015 Sida 6 / 23

Operationer på Vektorer Funktionerna sum och mean beräknar summan respektive medelvärdet av elementen en vektorn. Exempel Beräkna summan av de udda talen 1, 3, 5,..., 99. I Matlab >> S = sum( 1:2:99 ) S = 2500 Exempel Beräkna summan S = 100 k=0 ( 1) k 1+k 2. 2 november 2015 Sida 7 / 23

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 2 november 2015 Sida 8 / 23

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. Exempel Betrakta funktionen f(x) = 2e x/7 7 sin(4x) på intervallet 0 x π. Vid vilket x-värde antar funktionen sitt minimum? 2 november 2015 Sida 9 / 23

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. 2 november 2015 Sida 10 / 23

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. 2 november 2015 Sida 11 / 23

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 kurve med med x=-2:0.01:2. 2 november 2015 Sida 12 / 23

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. 2 november 2015 Sida 13 / 23

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 ); 2 november 2015 Sida 14 / 23

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. 2 november 2015 Sida 15 / 23

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? 2 november 2015 Sida 16 / 23

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. 2 november 2015 Sida 17 / 23

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. 2 november 2015 Sida 18 / 23

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); 2 november 2015 Sida 19 / 23

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 2 november 2015 Sida 20 / 23

Plottning av Geometriska Objekt Exempel En månghörning består av hörpunkter och kantlinjer. Vi Varje punkt P k = (x k, y k ) T kan ses som en 2 1 vektor. Vi vill rita upp en femhörning med givna hörnpunkter ( ) ( ) ( ) ( ) 1 3 5 6,,, och 3 6 5 2 Vi vill sedan förflytta alla punkterna med en konstant vektor T = (1, 2) T och rita upp månghörningen igen. Hur skall vi göra? ( 3 1 ). 2 november 2015 Sida 21 / 23

Spara punkterna i en 2 n matris P. Varje punkt representeras av en kolumn P(:,k). I Matlab ind = [1 2 3 4 5 1 ]; % Besök punkterna i denna o P = [ 1 3 5 6 3 ; 3 6 5 2 1 ]; plot( P(1,:),P(2,:), r+ ); hold on plot( P(1,ind),P(2,ind), b- ); För att translatera punkterna skapar vi en ny 2 n matris att addera till P. T=ones(2,5); T(2,:)=2; P2 = P+T; plot( P2(1,ind),P2(2,ind), k-- ) hold off 2 november 2015 Sida 22 / 23

Sätt koordinataxlarna så att vi ser hela bilden och skriv ut axis([ 0 8 0 9]) print -depsc F2-5horning.eps Den färdiga bilden blir 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 Kommentar Många olika operationer inom datorgrafik består av att enkla operationer utförs på punktmängder. I Matlab kan man göra rätt mycket om man är lite kreativ. 2 november 2015 Sida 23 / 23