Laboration: Grunderna i Matlab

Beräkningsvetenskap I
Augusti 2011
Laboration: Grunderna i Matlab
Att arbeta i kommandofönstret
Den här delen av laborationen handlar om hur man arbetar med kommandon direkt i Matlabs
kommandofönster. Det kan liknas vid att använda Matlab som en mycket avancerad miniräknare, med kommandon för både beräkningar och grafik.
Att göra
Att komma igång och att söka hjälp
1. Starta Matlab genom att dubbelklicka på Matlab-ikonen
2. När Matlabfönstret kommer upp ska du börja med att flytta till rätt mapp/katalog. I
fönstrets överkant finns en ruta:
Klicka på knappen
och sök dig fram till din katalog. När du kommit till rätt
katalogikon och klickat på den, så ska katalognamnet dyka upp i rutan för Current
Directory.
3. I Matlab-fönstrets överkant
finns menyer. Klicka på
menyn Help och välj sedan
alternativet MATLAB Help
eller Product Help beroende på vilken version av Matlab
du använder (du kan också klicka på knappen med frågetecken). Ett hjälpfönster ska nu öppnas.
När hjälpfönstret kommer upp ser du att det finns en
mängd information under olika flikar. Klicka på fliken
Index. I sökrutan längst upp i indexfönstret kan man skriva
in vad man vill veta mera om. Prova med att skriva in
exponential och se vad som händer. Klicka i rutan till
vänster, så kommer förklarande text upp till höger. Om
allt fungerat som det skulle, så kommer du att få information
om hur exponentialfunktionen ex ser ut i Matlab och hur det går till att anropa den.
Beräkningsvetenskap I
Augusti 2011
Kommandofönstret
Matlab-fönstret består av olika delfönster, bl a Command Window (kommandofönstret),
Workspace och Command History
Workspace
Kommandofönstret
Command
History
Inledningsvis är markören placerad i kommandofönstret. När man skriver in Matlabkommandon
där, så utförs de omedelbart. Om man skriver in ett aritmetiskt uttryck och trycker på ’Enter’tangenten, så får man direkt se resultatet.
4. Beräkna nu e 2 3 sin 0.8 genom att i kommandofönstret skriva
exp(2)*sqrt(3)*sin(0.8).
Observera att du måste skriva ut tecknet för multiplikation.
5. Resultatet av beräkningen ovan hamnade automatiskt i variabeln ans (som står för
’answer’). Beräkna nu kvadratroten av 2, sqrt(2). Notera att nu hamnade det
resultatet i ans. I och med detta försvann det tidigare värde som var lagrat i ans.
6. Tilldelning
Om man vill ha kvar ett värde för att kunna återanvända det senare under Matlabsessionen, så måste man spara det i en egen variabel. Detta åstadkoms genom tilldelning.
I Matlab är likhetstecknet, ”=” tilldelningsoperator. För att beräkna värdet e 2 3 sin 0.8
och spara resultatet i variabeln z ska du skriva z = exp(2)*sqrt(3)*sin(0.8).
Man säger då att z tilldelas det värde som beräknas i högerledet.
7. Likhetstecknet ’=’ i Matlab står alltså inte för likhet, utan för tilldelning. För likhet, som
är en test om något (t ex två tal) är lika, används istället en annan operator i Matlab,
nämligen ’= =’. Skriv i Matlabs kommandofönster följande (tecknet >> skrivs inte ut,
utan är Matlabs så kallade kommandoprompt):
>> a = 1
>> b = 3
>> c = a
>> a == b
>> a == c
Beräkningsvetenskap I
Augusti 2011
De första tre raderna är tilldelningar, dvs variablerna a, b och c tilldelas värden. Men
vad innebär rad fyra och fem? Försök tolka resultaten.
Delfönstren Workspace och Command History
8. Titta på delfönstret Workspace. Där syns de variabler som du har skapat hittills under
Matlab-sessionen.
Ge i kommandofönstret kommandot clear z. Vad händer?
Ge i kommandofönstret kommandot clear eller clear all. Vad händer?
9. Titta på delfönstret Command History. Där syns de kommandon som du gett.
Du kan återskapa ett kommando genom att dubbelklicka på kommandot i Command
History. Använd den metoden för att upprepa den beräkning där z tilldelades ett värde.
Notera också att z då kommer att synas i Workspace igen.
Du kan också med musen ”ta tag i” ett kommando i Command history och dra det till
kommandofönstret. Använd denna metod till att utföra beräkningen av z igen.
Kommandon kan också återskapas genom att man låter markören står i kommandofönstret och ”bläddrar” bakåt med uppåtpil-tangenten. Prova den metoden för att
återfinna kommandot som beräknade kvadratroten ur 2.
Presentation av resultat på skärmen
10. Om man inte vill se resultatet av en beräkning omedelbart, så ska man avsluta
kommandot med semikolon. Tilldela nu variabeln y värdet z+5 och avsluta med
semikolon.
11. Om du senare vill se y:s värde så kan du helt enkelt på tom kommandorad skriva y och
sedan trycka på ’Enter’ (Return-tangenten). Gör det.
12. Om man inte har gett någon annan anvisning till Matlab, så visas resultaten med fyra
decimaler.
Ge kommandot format long. Ge sedan kommandot y igen. Vad händer?
Ge kommandot help format, så får du mera information om vilka alternativ som
finns för hur Matlab kan presentera resultat av beräkningsoperationer. Undersök på egen
hand några olika format.
Observera att de olika sätten att presentera resultat påverkar inte hur noggrant
resultatet är, utan enbart på vilket sätt det presenteras på skärmen.
Beräkningsvetenskap I
Augusti 2011
Vektorer och matriser
13. Matriser och vektorer omges i Matlab av hakparenteser. Mata in matrisen
⎛ 2 −1⎞
A=⎜
⎟
⎝ −4 8 ⎠
genom att i kommandofönstret skriva A = [2 -1; -4 8]
Notera att raderna åtskiljs med semikolon. Semikolon innanför hakparanteser medför
alltså radbyte i matrisen.
En annan möjlighet är att göra ’Enter’ efter varje rad. Prova nu att mata in A på det viset.
(Gör clear A först för att ta bort den redan inmatade versionen av A.)
14. Vektorer kan uppfattas som specialfall av matriser. En kolonnvektor är en matris med
bara en kolonn och en radvektor har bara en rad. Därför kan du nu, genom att utnyttja
det som du lärde dig i föregående steg, mata in radvektorn u och kolonnvektorn v:
⎛ 1 ⎞
u = (3 − 1) v = ⎜⎜ ⎟⎟
⎝ 0.5 ⎠
a. Nu ska du prova några av de grundläggande operationera med matriser och
vektorer:
b. Ge kommandot A(1,2). Vad händer?
c. Ge kommandot 2*u. Vad händer?
d. Ge kommandot u + v. Vad händer och varför?
e. Ge kommandot u*v, skalärprodukten mellan u och v
f. Ge kommandot A*v, matris-vektor-produkten mellan A och v
g. Ge kommandot A*u. Vad händer och varför?
h. Ge kommandot B = inv(A), B sätts till inversen av A. Kolla att inversen blev
rätt genom att (i Matlab) beräkna produkten B*A. (Vad ska resultatet av denna
operation bli om B är inversen av A?)
i. Ge kommandot B = A’, B sätts till transponatet av A. Prova också att ge
kommandona u’ respektive v’. Vad händer?
j. Ge kommandot A(1,:). Vad händer? Ge också kommandot A(:,2).
k. Ge kommandot A = [A; u]. Vad händer? Detta kan användas för att
exempelvis successivt bygga upp en tabell, som lagras i en matris och där man
lägger till en tabellrad i sänder.
l. Ge kommandot sin(v). Vad händer?
m. Ge kommandot v^2 (operatorn ^ står för ”upphöjt till”). Detta fungerar inte, för
operationen att multiplicera en vektor med sig själv är inte definierad
matematiskt.
n. Ge kommandot v.^2. Observera punkten före upphöjningsoperatorn. Den
betyder att den efterföljande operatorn ska appliceras på varje enskilt element i
vektorn. Resultatet av operationen skall alltså ha blivit att varje element i v
kvadrerades. Prova nu att ge kommandot A.^2 och se vad som händer.