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
1
Föreläsning 15
Matlab överkurs
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
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!
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 .+?
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?
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
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!
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
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)
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.
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)
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
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.
14
Enklare sätt att rita funktionsgraf
fplot kan också användas enligt:
• f=@sinfplot(f,[0,2*pi])
• fplot(’x^2’,[0,10])
15
Histogram
• Skapa 1000 normalfördelade värden:y=randn(1000,1)
• Rita histogram med 15 intervall:hist(y,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)
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);
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)
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’)
20
Flera kurvor samtidigt (Alt 1)
• Alternativ 1:x=0:0.1:10;y=x.^2z=z.^3plot(x,y,x,z)
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
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: - : -. --
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)
24
Lycka till!