• No results found

ATT RITA GRAFER MED KOMMANDOT "PLOT" Syntax:

N/A
N/A
Protected

Academic year: 2021

Share "ATT RITA GRAFER MED KOMMANDOT "PLOT" Syntax:"

Copied!
13
0
0

Loading.... (view fulltext now)

Full text

(1)

ATT RITA GRAFER MED KOMMANDOT "PLOT"

Syntax: Vi börjar med det enklaste plot-kommandot i matlab, plot(x,y),där x är en vektor x- värden och y en vektor med LIKA MÅNGA motsvarande y-värden.

Anta att två vektorer (listor) x=[x(1),....x(n))] och y=[y(1),....y(n)]

är definierade i matlab.

Kommandot plot(x,y) plottar punkterna ( x(k),y(k)) och binder dem med en rät linje.

=================================================

Exempel 1 a

Alternativ 1: Skriv eller kopiera följande 3 kommandon i matlab editor ( New, Script), spara som Exempel1 och exekvera (Run).

Alternativ2: Du kan skriva eller kopiera följande kommandon direkt i matlabs command window

--- x=[0,1,3,5,8]

y=[3,2,1,4,6]

plot(x,y)

---

Du får följande graf i ett nytt fönster ( Figure1)

Exempel 1 b Vi kan sluta ovanstående polygonlinje genom att upprepa första punkten en gång till som sista punkten i vektorerna x och y:

clc % rensar kommandofönster clear % rensar alla variabler figure(2)

clf % rensar eventuella gamla grafer i figure(2) x=[0,1,3,5,8,0]

y=[3,2,1,4,6,3]

plot(x,y)

0 1 2 3 4 5 6 7 8

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6

0 2 4 6 8

1 2 3 4 5 6

Sida 1 av 13

(2)

Exempel 1 cVi kan fylla ett polygon med kommandot fill :

clc clear figure(2)

clf % rensar eventuella gamla grafer i figure(2) x=[0,1,3,5,8,0]

y=[3,2,1,4,6,3]

fill(x,y,'g') % 'g' står för "green" färg

Man kan välja följande färger:

b blue g green r red c cyan m magenta y yellow k black w white

=================================================

Analytiska funktioner y=f(x). För att plotta en funktion som är given analytisk med utrycket y=f(x) i ett intervall [a,b], skapar vi först x-vektor genom x=[a:h:b] där h är avståndet mellan två konsekutiva x-värden . Alternativt kan vi skapa x-värden med linspace(a,b,n) som genererar n punkter mellan a och b (totalt n, med a och b räknad). Därefter skapar vi motsvarande y vector genom att skriva y=f(x) i matlab-koden. (Vi använder elementvisa operationer på x-vektorn).

Om vi avslutar ett kommando med semikolon då exekveras kommandot, men resultat visas inte på skärmen.

Exempel 2. Rita grafen till y =−1+2exför x i intervallet [0,3].

Lösning:

---

x=[0: 0.01 : 3]; % skapar x-värden med avståndet 0.01

y=-1+2*exp(x); % skapar y-vektorn (funktionen beräknas elementvis) figure(2) % nästa graf kommer att plottas i fönster 2

clf % rensar gällande fönstret, (figure2 i vårt fall) % nyttigt i fall om fönstret har redan använts tidigare) plot(x,y)

---

Skriva ovanstående kommandon ( New, Script), spara som Exempel2 och exekvera med Run.

Du får följande graf i fönstret figure(2) :

0 2 4 6 8

1 2 3 4 5 6

Sida 2 av 13

(3)

=================================================

Exempel 3 Rita grafen till y = x2 −3x+2i intervallet [-1, 4]

Lösning:

---

x=linspace(-1, 4, 100); % Definierar punkter mellan -1 och 4 ( 100 totalt).

y=x.^2-3*x+2; % lägg märke till .^ för elementvis kvadrering.

figure(3) % plottar nästa graf i fönstret "figure(3)"

clf plot(x, y)

---

Du får följande graf i fönstret figure(3) :

=================================================

TITEL, FÖRKLARINGSTEXT OCH AXLARNA

Du kan förbättra utseende av en graf genom att lägga till förklaringstext : title('text'),

xlabel('text'), ylabel('text')

Du kan välja intervall på axlarna i koordinatsystem axb, cyd med kommandot axis([a,b,c,d])

Rutnät väljer du med med grid on eller grid off.

0 1 2 3

0 10 20 30 40

-2 0 2 4

-2 0 2 4 6

Sida 3 av 13

(4)

Med axis off eller axis onväljer du att rita respektive inte rita axlarna runt grafen.

=================================================

Exempel 4 Rita grafen till y =sin(5x)/x för x-värden i intervallet [0, 4π] i en rutnät. Ange titel ' y=2sin(5x)/x '. Välj följande område för axlarna −1≤x≤15, −3≤ y≤3. Beteckna x-axeln med 'x i radianer' och y-axeln med 'Funktionens värde'.

Lösning:

---

x=linspace(0, 4*pi, 200); % Definierar punkter mellan 0 och 4π ( 200 totalt).

y=2*sin(5*x)./x; % lägg märke till ./ för elementvis division.

figure(4) plot(x, y)

title( ' y=2sin(5x)/x ' ) xlabel('x i radianer');

ylabel('Funktionens värde');

axis([-1,15, -3,3]) grid on

--- Du får följande graf:

=================================================

FÄRG, LINJETYP OCH MARKÖRER Kommandot: plot(x,y,'ABC')

Med hjälp av kommandot plot(x,y,'ABC') kan vi markera punkterna (x(k), y(k)) samt ange typ och färg av den linje som binder punkterna (x(k), y(k)) .

0 5 10 15

-3 -2 -1 0 1 2 3

y=2sin(5x)/x

x i radianer

Funktionens värde

Sida 4 av 13

(5)

Exempel 6 I nedanstående exempel markerar vi punkter (x(k),y(k) med en liten kvadrat (s står för square ) markerer och linjen mellan punkterna är röda, linjen är av typ streck-prick.

---

clear clc

x=0 : 0.4 : 2*pi;

y= sin(x);

figure(6) clf

plot(x,y,' r s -.')

---

=================================================

Här finns koder som du kan använda i kommandot plot(x,y,'A B C'). Här står A för färg B för markörens typ och C för linjens typ..

Du kan använda koder från en , två eller alla tre kolonner.

Färg Markör Linjetyp

b blue . point - solid g green o circle : dotted r red x x-mark -. dashdot c cyan + plus -- dashed m magenta * star (none) no line y yellow s square

k black d diamond

w white v triangle (down) ^ triangle (up) < triangle (left) > triangle (right) p pentagram

h hexagram

=================================================

0 2 4 6

-1 -0.5 0 0.5 1

Sida 5 av 13

(6)

Exempel 7

--- clear

clc

x=-4 : 0.5 : 4;

y= x.^3 -4*x;

figure(7) clf

plot(x,y,'g o --') title( ' y= x^3 - 4x')

Ovanstående kommandon ger följande graf

=================================================

Exempel 8

Följande kommandon --- clear

clc

x=-2 : 0.1: 2;

y= x.^3 figure(8) clf

plot(x,y,'r ') % en red kurva (ingen markörsymbol) title( ' y= x^3')

---

ger en red linje utan markörer. (Vi har inte skrivit någon markörsymbol)

-4 -2 0 2 4

-50 0 50

y= x3 - 4x

Sida 6 av 13

(7)

=================================================

Exempel 9

Om vi anger markeröns typ (och eventuellt färg) men inte linjens typ då ritas endast punkterna (x(k),y(k)) som i nedanstående exempel.

Följande program

--- clear

clc

x=-5*pi/2: 0.1 : 5*pi/2;

y= tan(x) figure(9) clf

plot(x,y,'* b ') % vi definierar markör (och färg) men inte linjens typ axis([-5*pi/2, 5*pi/2, -5, 5])

title( ' y= tan(x)' )

---

ger grafen med enbart punkter (x(k), y(k), utan linjer mellan punkterna.

=================================================

-2 -1 0 1 2

-10 -5 0 5 10

y= x3

-6 -4 -2 0 2 4 6

-5 -4 -3 -2 -1 0 1 2 3 4 5

y= tan(x)

Sida 7 av 13

(8)

Vi kan även styra linjetjockleken, färgen och storleken på markerön, som vi ser i följande exempel:

Exempel 10 Följande

--- x = 0:0.1:2*pi;

y = sin(x.^2);

figure (10)

plot(x,y,'--bp','LineWidth',2,'MarkerEdgeColor','k',...

'MarkerFaceColor','g','MarkerSize',15) axis([-1 6 -2 2])

grid on

--- ger grafen

=================================================

FLERA KURVOR I SAMMA KOORDINATSYSTEM

METOD 1: "HOLD ON METOD"

För att plotta flera grafer i samma koordinatsystem ( samma fönster) använder vi kommandot hold on . Om vi vill ha en helt ny graf skriver vi hold off. Med hold on metoden bestäms egenskaper för koordinatsystemet av den första ritade grafen

Exempel 11. Rita grafer till följande tre funktioner i samma koordinatsystem:

1. y1= x/4 2. y2=sin(5x) 3. y3= x2 Lösning:

--- clc

x=-2:0.1:2;

y1=(1/4)*x;

y2=sin(5*x);

0 2 4 6

-2 -1 0 1 2

Sida 8 av 13

(9)

y3=cos(x) figure(11) clf

plot(x,y1,'r -') hold on

plot(x,y2, ' g -') hold on

plot(x,y3, 'k :') hold off

---

=================================================

METOD 2 Vi kan rita flera kurvor i samma system direkt med ett kommandot plot( x1,y1, 'egenskaper', x2,y2, 'egenskaper',....)

Exempel 12. (metod 2) Ovanstående exempel gör vi med andra metoden (endast ett plot- kommandot) på följande sätt

--- clc

x=-2:0.1:2;

y1=(1/4)*x;

y2=sin(5*x);

y3=cos(x) figure(12) clf

plot(x,y1,'r -', x,y2, ' g -', x,y3, 'k :') ---

(Ger samma plot som ovan)

=================================================

-2 -1 0 1 2

-1 -0.5 0 0.5 1

Sida 9 av 13

(10)

ATT DELA ETT FÖNSTER I FLERA DELFÖNSTER (SUBPLOT)

Kommandot subplot(m,n,k) delar den aktuella figuren ( fönster) i m× mindre delfönster och n väljer fönstret nummer k där nästa graf kommer att ritas.

Exempelvis subplot(2,3,5) delar det aktuella fönstret i 2×3=6 rutor ( 2 rader och 3 kolonner) och väljer rutan nummer 5 för nästa graf.

k=1 k=2 k=3 k=4 k=5 k=6

Exempel 13. Testa följande exempel men försök först klura ut hur det borde se ut.

%% SUBPLOT clc

figure(13) clf

x=-10:0.1:10;

y1=0.1*x.^3;

subplot(2,2,1) plot(x,y1,'r') grid on

title('y1=0.1*x.^3');

y2=sin((x.^2+4)./4);

subplot(2,2,2) plot(x,y2,'b') grid on

title(' y2=sin(x.^2+4)./4');

subplot(2,2,3) x=-10:0.1:10;

z1=cos((x+4)./4);

plot(x,z1)

title(' z1=cos((x+4)./4)');

subplot(2,2,4) z2=2*sin(x);

plot(x,z1,'b',x,z2,'k')

title('z1=cos((x+4)./4) och z2=2*sin(x)');

Du får nedanstående resultat.

Sida 10 av 13

(11)

%% Vi kan sammanfoga fönster 3 och 4 som i nedanstående exempel

clc clear figure(1)

x=[-2*pi:0.01:2*pi];

y=sin(x);

subplot(2,2,1) plot(x,y)

axis([-2*pi 2*pi -4 4]) title('sin(x)')

axis equal grid on

subplot(2,2,2)

x=[-2*pi:0.01:2*pi];

y=abs(sin(x));

plot(x,y)

title('|sin(x)|')

axis([-2*pi 2*pi -4 4]) grid on

subplot(2,2,[3 4]) % sammanfogar fönster 3 och 4

x=[-4*pi:0.01:4*pi];

y=tan(x);

plot(x,y)

axis([-8 8 -4 4])

grid on

set(gca, 'GridLineStyle', '-');

grid(gca,'minor') title('tan(x)')

-10 -5 0 5 10

-100 -50 0 50 100

y1=0.1*x.3

-10 -5 0 5 10

-1 -0.5 0 0.5 1

y2=sin(x2+4)/4

-10 -5 0 5 10

-1 -0.5 0 0.5 1

z1=cos((x+4)./4)

-10 -5 0 5 10

-2 -1 0 1 2

z1=cos((x+4)./4) och z2=2*sin(x)

Sida 11 av 13

(12)

FLERA EXEMPEL MED 2D PLOT

Ett exempel på en parametrizerad kurva x= x(t), y= y(t):

Exempel 14. Rita kurvan som definieras med x =8cos(t), y =4sin(t), 0≤ t ≤2π . Lösning:

%%

clc clear

t=0:0.01:2*pi;

x=8*cos(t);

y=4*sin(t);

figure(14) plot(x,y)

axis([-10 10 -5 5]) grid on

axis equal % annars väljer matlab en annan skala och ellipsen kan se ut som en cirkel

title('Ellipsen med halvaxlarna 8 och 4')

-5 0 5

-4 -2 0 2 4

sin(x)

-5 0 5

-4 -2 0 2 4

|sin(x)|

-8 -6 -4 -2 0 2 4 6 8

-4 -2 0 2 4

tan(x)

Sida 12 av 13

(13)

Exempel 15

Ett exempel på "stem plot"

x = 0:0.1:4;

y = sin(x.^2).*exp(-x);

z=cos(3*x) figure(5) stem(x,y) xlabel('Tid') ylabel('Signal')

Resultat:

-10 -5 0 5 10

-8 -6 -4 -2 0 2 4 6 8

Ellipsen med halvaxlarna 8 och 4

0 1 2 3 4 5

-2 -1 0 1 2 3

x-värden

y-värden

Sida 13 av 13

References

Related documents

Smog uppstår när staden är bakfull och drar täcket över huvudet för att ljuset sticker i ögonen och ger staden en outhärdlig huvudvärk.. Staden försöker blunda

[r]

Detta exempel innehåller inte alla aspekter på bestämning och redovisning av mätosäkerhet.. o Här har bara berörts Typ A bestämning av

Första linjen är ett samlingsbegrepp för de verksamheter och funktioner inom kommun och region som tillsammans har ett uppdrag att ge insatser till barn och unga som behöver ett

• Symtomen är lindriga om stödjande och rådgivande insatser eller korttids psykologisk behandling för ungdomar med depression eller ångest bedöms vara en

De beslut som föreslås nedan avser i korthet åtgärder för att, inom ramen för av landstingsfullmäktige beviljade medel enligt genomförandebeslut avseende Program Röda

Detta fenomen är även något som Marjatta Tengström vid Östermalms bibliotek har diskuterat, och påpekar till exempel att vuxna i Tensta och liknande områden inte drar sig lika

2.Samhällsbyggnadsförvaltningen får i uppdrag att inför kommande budget- arbete utreda möjligheterna till och kostnaden för att anlägga en lekplats i området, samt