Grunderna i MATLAB eva@it.uu.se Innehåll Vad är MATLAB? Användningsområden MATLAB-miljön Variabler i MATLAB Funktioner i MATLAB Eempel och smakprov: Grafik Beräkningar Bilder GUI Vad är MATLAB? Utvecklat av MathWorks, Inc. http://www.mathworks.com Första versionen klar i slutet av 70-talet Matematisk labbmiljö för Numeriska beräkningar Grafik Programmering En enkel miljö för att snabbt testa idéer och för att studera resultat
Vad är MATLAB? Avancerat interaktivt mjukvarupaket för beräkningar och visualiseringar. Ursprungligen MATri LABoratory. Många kraftfulla fördefinierade funktioner med möjlighet att definiera egna. Eget objektorienterat programmeringsspråk. Samverkan med C++, Java och FORTRAN möjlig. Vad är MATLAB? Över 5 tilläggsprogram (toolboar) finns för speciella tillämpningsområden, t e: signalbehandling bildbehandling statistik symbolisk matematik finansiell matematik Körs under UNIX/Linu, Windows eller Macintosh. Användningsområden Överallt där det förekommer beräkningsproblem! Undervisning: matematik, särskilt linjär algebra, beräkningsvetenskap, fysik, kemi, teknik, ekonomi, etc. Forskning: tekniska beräkningar, algoritmutveckling, analys av metoder och visualisering av resultat. Industrin: signalbehandling, bildbehandling, reglerteknik, optimering, simulering m.fl.
Användningsområden MATLAB kan användas interaktivt som en avancerad räknedosa (kalkylator). Enkelt! MATLAB kan också användas som ett programmeringsspråk på ett mer avancerat sätt. MATLAB-miljön: Start Utvecklingsmiljön (MATLAB desktop) har ett flertal verktyg, t e kommandofönstret Här är kommandofönstret MATLAB-miljön: kommandon MATLAB styrs vanligen från kommandofönstret (Command Window). Kommandon ges efter»-promptern och utförs när return-tangenten tryckts ned. Eempel: >> 4 + 9 ans = 6
MATLAB-miljön: interaktiv I kommandofönstret kan man arbeta interaktivt som en avancerad miniräknare. Semikolon undertrycker utskrift. Om inget variabelnamn anges läggs variabeln i ans (=answer) >> a = 75 a = 75 >> b = 4; >> c = a*b c = 550 >> a+b ans = 09 MATLAB-miljön: avsluta MATLAB avslutas genom att man antingen ger kommandot quit eller eit >> eit Man väljer Eit MATLAB i File-menyn MATLAB-miljön: hjälp Hjälp fås via MATLAB help i menyn Help Klicka t e på MATLAB documentation 4
MATLAB-miljön: hjälp Hjälp för enstaka kommandon kan göras direkt i kommandofönstret >> help kommando Eempel Vad gör kommandot eit? >> help eit EXIT Eit from MATLAB. EXIT terminates MATLAB. Matlab-miljön: demonstration Demonstration av MATLABs olika kommandon och tillämpningsområden fås genom att Ge kommandot demo >> demo Välja Demos i menyn Help Testa t e Graphics -> D-plots Graphics -> D-plots More eamples -> d drawing Variabler i MATLAB En variabel i MATLAB har alltid ett namn (börja på bokstav) kan ses som behållare som innehåller ett värde av en viss typ (heltal, rella tal, tet, ) kan tilldelas ett värde skapas när de behövs, utan speciell deklaration (är av typen matris ). kan vara fördefinierad (t e pi, ans) >> a = a = >> pi ans =.46 5
Variabler i MATLAB Variabler i MATLAB visas i delfönstret Workspace Om inte workspace syns markera workspace i menyn View Workspace Variabler i MATLAB Kan listas med kommando who, whos >> who Your variables are: a ans >> whos Name Size Bytes Class a 8 double array ans 8 double array Grand total is elements using 6 bytes Variabler i MATLAB kan skrivas ut i olika format, sparas och laddas upp >> format long >> pi ans =.4596558979 >> format long e >> format short e >> pi ans =.46e+000 Observera att noggrannheten i pi är lika, det är bara utskriftsformatet som ändras. 6
Funktioner: fördefinierade Det finns mängder av fördefinierade funktioner, t e för elementär matematik linjär algebra grafik i D och D integraler och differentialekvationer statistik Kurvanpassning Eempel: abs(), sqrt(), sin(), log(), log0(), Funktioner: egendefinierade Man kan också skapa egna funktioner...mer om detta i föreläsningen om programmering i MATLAB Egendef. funktioner, smakprov Egen funktion: function [, y] = MinFunk(0,, n) % Min första funktion = linspace(0,,n); y = cos()+sin(); plot(,y) Funktionen anropas genom >> start=0; slut=pi; n=00; >> [, y] = MinFunk(start,slut,n); 7
Några små tips Piltangent återkallar tidigare kommando pl återkallar senaste kommando vars namn började med pl (plot t e) kan också använda delfönstret command history. Dubbelklicka på ett kommando för att upprepa. Fönstret öppnas under menyn View Command history Några små tips ctrl-c avbryter körningen av ett kommando (men stoppar inte MATLAB) diary kan användas för att spara skärmutskrifter i en fil >> diary uppg.tt >> Allt som skrivs på skärmen hamnar nu i filen uppg.tt >> diary off % stänger diary Lämpligt att använda för att redovisa köreempel i inlämningsuppgifterna Enkel grafik (D) Gången när en graf ska ritas är Skapa en horisontell ael (t e -ael) Beräkna funktionsvärden (y-ael) Plotta mot y, plot(,y) >> = linspace(0,*pi,50); >> y = cos()+sin(); >> plot(,y) OBS! är en talföljd här, en s k vektor. funktioner fungerar även på talföljder! 8
Enkel grafik (D) -ael skapas genom = linspace(0,,antal_pkt); eller = 0:steglangd:; Plotkommandot kan utvidgas på många olika sätt, t e >> plot(,cos(), -,,sin(), o ) Grafik i D, smakprov Funktioner av två variabler kan visualiseras på många olika sätt mesh(x,y,z) Grafik i D, smakprov surf(x,y,z) 9
Grafik I D, smakprov contour(x,y,z) Grafik: strömlinjer, smakprov Grafik: film och bildspel, smakprov Oscillerande klockkurva 0
Bildbehandling, smakprov MATLAB-eempel Visualisera redan beräknade data, eempel från aerodynamik, rymdfärja med chockvågor Antag att vi vill lösa följande ekvationssystem: Vi kan skriva om ekvationssystemet på formen A = b: Smakprov: ekvationssystem = = =.4..6 5 4 4 b A = + + = + + = +.4 5 4. 4.6
Smakprov: ekvationssystem Ekvationssystemet löses enkelt: >> A = [ - ; 4 ; - 4 5]; >> b = [.6 ;. ; -.4]; >> = A\b =.488-0.4606 0.848 Smakprov: kurvanpassning Givet punkter i t e (,y)-planet, så kan kurvor anpassas: Smakprov: kurvanpassning polyfit(, y, )
Smakprov: kurvanpassning polyfit(,y,7)