1 / 24

Föreläsning 15

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)

jeb
Download Presentation

Föreläsning 15

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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öras case värde, vad som skall göras otherwise, vad som skall göras end

  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=@sin fplot(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.^2 z=z.^3 plot(x,y,x,z)

  21. Flera kurvor samtidigt (Alt 2) x=0:0.1:10; y=x.^2 plot(x,y) hold on x=0:0.1:10; z=x.^2 plot(x,z) hold off

  22. Färger och linjer x=0:0.1:10; y=x.^2 plot(x,y,’g--’) • Färger: b,g,r,c,m,y,k,w • Linjer: - : -. --

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

  24. Lycka till!

More Related