24
1 Föreläsning 15 Matlab överkurs

Föreläsning 15

  • Upload
    jeb

  • View
    53

  • Download
    0

Embed Size (px)

DESCRIPTION

Föreläsning 15. Matlab överkurs. Standardmatriser. zeros(n) ger nxn-matris med bara nollor. zeros(m,n) ger motsvarande mxn-matris. ones(n) ger nxn-matris med bara ettor. ones(m,n) ger motsvarande mxn-matris. eye(n) ger nxn-identitetsmatrisen (ettor på diagonalen och nollor annars) - PowerPoint PPT Presentation

Citation preview

Page 1: Föreläsning 15

1

Föreläsning 15

Matlab överkurs

Page 2: Föreläsning 15

2

Standardmatriser

• zeros(n) ger nxn-matris med bara nollor.• zeros(m,n) ger motsvarande mxn-matris.• ones(n) ger nxn-matris med bara ettor.• ones(m,n) ger motsvarande mxn-matris.• eye(n) ger nxn-identitetsmatrisen (ettor

på diagonalen och nollor annars)• eye(m,n) ger motsvarande mxn-matris

Page 3: Föreläsning 15

3

Hjälp med Matlab

• Skumma igenom häftet från studentexpeditionen.

• Använd Matlabs inbyggda hjälp: Klicka på menyn ”Help” och välj alternativet ”Product Help”. Där kan man söka efter nyckelord.

• Googla!

Page 4: Föreläsning 15

4

Elementvisa operationer

• Om vi har en mxn-matris A och en nxk-matris B så gör följande en matrismultiplikation:

C=A*B• C=A.*B gör istället elementvis multiplikation.

Motsvarande gäller / och ./, och ^ och . ^.

• Varför finns det inte en operator .+?

Page 5: Föreläsning 15

5

Inversen av matris

• En nxn-matris A har en invers om det existerar en matris B sådan att A*B=I, där I är identitetsmatrisen.

• inv(A) ger inversen till A i Matlab.• Vi kan (om lösbart) lösa A*x=b i Matlab

enligt:x=inv(A)*A*x=inv(A)*b

• Varför är x=A\b ett bättre sätt att göra detta?

Page 6: Föreläsning 15

6

Matrisfunktioner

Låt A vara en matris:• rank(A) ger rangen för matrisen A.• det(A) ger matrisens determinant om A är

kvadratisk.• [D,V]=eig(A) ger matrisens egenvärden som

diagonalmatris D och egenvektorer som kolumnvektorer i V. Dvs:

A*V=V*D

Page 7: Föreläsning 15

7

Formattering av utdata

• disp(x) skriver ut objektet x, men det finns flera olika standardformat:

• short, long, short e, short g, long e, long g, bank, hex, rat, compact, loose.

• Prova och se vad som händer!

Page 8: Föreläsning 15

8

switch-sats

• När man har många alternativ beskrivna av ett tal:

switch (uttryck)case värde,

vad som skall görascase värde,

vad som skall görasotherwise,

vad som skall görasend

Page 9: Föreläsning 15

9

Komplexa tal

• Komplexa tal förekommer relativt ofta i tekniska tillämpningar.

• Matlab kan hantera komplexa tal.• Bokstäverna i och j representerar

den imaginära enheten.• Tänk igenom vad ni plottar om ni

använder komplexa tal! (lätt att göra fel)

Page 10: Föreläsning 15

10

Slumptal

• rand ger likformigt fördelat tal i [0,1].• rand(n) ger nxn-matris med sådana

tal.• rand(m,n) ger motsvarande mxn-

matris.• randn ger normalfördelat tal.• Randint(m,n,[3,5]) ger likformigt

fördelad mxn-heltalsmatris.

Page 11: Föreläsning 15

11

Rita upp funktionsgraf

• Skapa vektor med evalueringspunkter:x=0:0.1:2*pi

• Skapa vektor med funktionsvärden:y=sin(x)

• Rita linjer mellan punkterna:plot(x,y)

Page 12: Föreläsning 15

12

Andra sätt att visualisera data

• bar(x,y) stapeldiagram• barh(x,y) horisontellt

stapeldiagram• pie(y) tårtdiagram• stairs(x,y) trapstegsdiagram• stem(x,y) variant på stapeldiagram

Page 13: Föreläsning 15

13

Enklare sätt att rita funktionsgraf

• ezplot – ”easy-plot”: Ange funktion och intervall:ezplot(’sin’,[0,2*pi])Glöm inte enkelfnuttarna!

• fplot fungerar liknande som ezplot, men väljer punkter adaptivt.

Page 14: Föreläsning 15

14

Enklare sätt att rita funktionsgraf

fplot kan också användas enligt:

• f=@sinfplot(f,[0,2*pi])

• fplot(’x^2’,[0,10])

Page 15: Föreläsning 15

15

Histogram

• Skapa 1000 normalfördelade värden:y=randn(1000,1)

• Rita histogram med 15 intervall:hist(y,15)

Page 16: Föreläsning 15

16

3D-kurva

• Skapa punkter:t=0:0.1:10;x=exp(-0.2*t).*cos(2t);y=exp(-0.2*t).*sin(2t);

• Rita upp kurvan:plot3(x,y,t)

Page 17: Föreläsning 15

17

Rita yta i rummet

• Skapa ett nät av evalueringspunkter:[x,y]=meshgrid(-4:0.1:4, -4:0.1:4);

• Evaluera funktion i varje sådan punkt:z=exp(-0.5*(x.^2+y.^2));

• Rita upp resultatet:mesh(x,y,z);

Page 18: Föreläsning 15

18

Aspekter av yta i rummet

• Rita upp höjdkurvor för ytan:contour(x,y,z);

• Rita upp ytan och inte bara nätet:surf(x,yz)

Page 19: Föreläsning 15

19

Lägg till information

• legend(’kurva1’, ’kurva2’) ger faktaruta

• xlabel(’text på x-axeln’)• ylabel(’text på y-axeln’)• zlabel(’text på z-axeln’)• title(’Min titel på grafen’)• text(3,4,’extra info’)

Page 20: Föreläsning 15

20

Flera kurvor samtidigt (Alt 1)

• Alternativ 1:x=0:0.1:10;y=x.^2z=z.^3plot(x,y,x,z)

Page 21: Föreläsning 15

21

Flera kurvor samtidigt (Alt 2)

x=0:0.1:10;y=x.^2plot(x,y)hold onx=0:0.1:10;z=x.^2plot(x,z)hold off

Page 22: Föreläsning 15

22

Färger och linjer

x=0:0.1:10;y=x.^2plot(x,y,’g--’)

• Färger: b,g,r,c,m,y,k,w• Linjer: - : -. --

Page 23: Föreläsning 15

23

Delfönster

x=0:0.1:10;y=x.^2subplot(1,1,1)plot(x,y)x=0:0.1:10;z=x.^2subplot(2,1,1)plot(x,z)

Page 24: Föreläsning 15

24

Lycka till!