föreläsning 15
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 PresentationTRANSCRIPT
![Page 1: Föreläsning 15](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/1.jpg)
1
Föreläsning 15
Matlab överkurs
![Page 2: Föreläsning 15](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022081520/5681503b550346895dbe385a/html5/thumbnails/24.jpg)
24
Lycka till!