• No results found

B¨ orja R¨ akna

ar klara klickar vi bara en g˚ang till p˚a samma symbol och f¨onstret ˚atertar sin ursprungliga storlek. Ett annat s¨att att f˚a hj¨alp ¨ar att i kommandof¨onstret skriva help kommando , d¨ar

”kommando” byts ut mot namnet p˚a det kommando man s¨oker hj¨alp om. Detta leder ofta snabbare fram till den information man s¨oker ¨an att s¨oka i dokumentationen. Sv˚arigheten

¨

ar bara att man m˚aste ha en f¨orsta id´e om vad det ¨ar man vill ha hj¨alp med s˚a att man har n˚agot vettigt att skriva in i st¨allet f¨or ”kommando”.

2.1.7 Avsluta Matlab

Det finns tv˚a s¨att att avsluta MATLAB. Du kan antingen g˚a in i menyn ”File” och d¨ar v¨alja ”exit MATLAB” eller ocks˚a trycka p˚a ”ctrl Q” (trycker samtidigt ner tangenten ”ctrl”

i nedre v¨anstra h¨ornet av tangentbordet och tangenten ”Q”).

2.2 B¨ orja R¨ akna

2.2.1 Matlab som en r¨aknedosa

Enklare matematiska operationer g¨ors precis som p˚a en vanlig r¨aknedosa (med normal, dvs ej omv¨and polsk notation `a la HP-r¨aknare) med den lilla skillnaden att vi trycker p˚a return i st¨allet f¨or ”=” n¨ar vi vill ber¨akna resultatet. Pr¨ova t ex att ber¨akna 2+2:

 2 + 2 ans = 4

2.2.2 Operatorer

F¨or aritmetik har MATLAB de vanliga (och en litet ovanlig) operatorerna:

+ Addition - Subtraktion

? Multiplikation / Division

\ V¨ansterdivision

∧ Exponentiering, till exempel x∧2 = x2

’ Komplex konjugering och transponering ( ) Paranteser f¨or att definiera prioritetsordning

Prioritetsordningen mellan operatorerna ¨ar den normala s˚a att n¨ar man till exempel skriver 3 * 4 + 3*2 ∧3 s˚a ber¨aknas f¨orst, 23, d¨arefter de b¨agge produkterna och sedan summan.1

1Notera att Matlab ingorera mellanslag i alla uttryck. Det spelar allts˚a ingen roll om vi skriver 2+3+4*5 eller 2 + 3 + 4*5 eller 2 + 3 + 4 * 5. F¨or att det skall bli enklare att f¨olja uttrycken s˚a ¨ar det mellersta s¨attet

2.2. B ¨ORJA R ¨AKNA 9 2.2.3 Variabler

I MATLAB kan man liksom i alla h¨ogniv˚aspr˚ak definiera variabler, och tilldela dessa v¨arden.

Dels underl¨attar det arbetet genom att man inte beh¨over upprepa inmatning av samma v¨arde fler g˚anger, dels g¨or det instruktionerna enklare att f¨olja och f¨orst˚a - ˚atminstone om man v¨aljer namn p˚a konstanterna som ¨ar begripliga. Antag som ett exempel att en l¨askeblask kostar 10 kronor, en varmkorv 12 och en kaffe 4. Om d˚a Kalle k¨oper en korv och fyra kaffe, Lisa en l¨askeblask och tv˚a korvar och Ludde tre korvar och tv˚a l¨askeblask, s˚a kan vi r¨akna ut vad var och en fick betala p˚a f¨oljande s¨att (minns att varje rad m˚aste avslutas med return f¨or att MATLAB skall utf¨ora kommandot):

att skriva (som ansluter till prioritetsordningen) att f¨oredra.

 laskeblask = 10

 Lisa = laskeblask + korv Lisa =

22

 Ludde = 3*korv + 2 *laskeblask Ludde =

56

I exemplet ovan ¨ar laskeblask, korv, kaffe, Kalle, Lisa och Ludde alla variabler. Variabler kan allts˚a tilldelas v¨arden antingen explicit (uttryckligen) genom t ex korv = 12, eller genom en ber¨akning som t ex Kalle = 2*korv + 4*kaffe.

Observera att man som alltid m˚aste vara noga med syntaxen, eller programmeringsspr˚akets grammatik. Det g˚ar inte att skriva

 Dyrt = 3 korv

Prova! Du kommer att f˚a ett prov p˚a hur MATLAB v¨anligt, men inte s¨arskilt diskret hj¨alper en tillr¨atta n¨ar man f˚ar syntaxen fel. Gl¨ommer man bort vad en l¨ask kostar kan vi fr˚aga MATLAB:

 laskeblask laskeblask = 10

En fallgrop man f˚ar akta sig f¨or ¨ar att variabler vars v¨arde ber¨aknas, som t ex Kalle ovan beh˚aller det v¨arde som variabeln tilldelats senaste g˚angen den ber¨aknas, ¨aven om en av de variabler som ing˚ar n¨ar man ber¨aknar variabelns v¨arde ¨andras. Ett exempel:

 kola = 0.5 Sune ber¨aknades g¨allde det gamla v¨ardet p˚a klubba och v¨ardet p˚a Sune f¨orblir of¨or¨andrat

2.2. B ¨ORJA R ¨AKNA 11 s˚a l¨ange vi inte r¨aknar om det med

 Sune = 20 * kola + 4 * klubba Sune =

30

Variabelnamn i MATLAB m˚aste b¨orja med en bokstav, f¨oljd av en godtycklig kombination av bokst¨aver (ej ˚a, ¨a eller ¨o), siffror eller understrykning ( ), ett variabelnamn kan allts˚a inte inneh˚alla mellanslag. MATLAB ser skillnad p˚a stor och liten bokstav, ALLA, Alla och alla ¨ar allts˚a tre olika variabler. Om man vill skapa variabelnamn som ¨ar sammans¨attningar av mer ¨an ett ord finns tv˚a konventioner: antingen binder man ihop med ett understrykning-stecken, eller ocks˚a skriver man med sm˚a bokst¨aver, men inleder nya ord med versal. Allts˚a antingen lagsta strom eller LagstaStrom. Vilket du v¨aljer att g¨ora ¨ar godtyckligt, men det

¨

ar bra om man f¨ors¨oker att h˚alla sig till ett s¨att att skriva. Det ¨ar ju enkelt att komma ih˚ag att variabeln ¨ar ”l¨agsta str¨om”, men om man p˚a vissa st¨allen skriver lagsta strom och p˚a andra LagstaStrom s˚a kommer man att h¨anvisa till olika variabler p˚a olika st¨allen i sin kod.

Man b¨or d¨arf¨or best¨amma sig f¨or en konvention och sedan h˚alla sig till den. Det kan ocks˚a vara bra att undvika de svenska bokst¨averna ¨aven om det program man arbetar med st¨oder dessa. N¨ar man skriver m˚anga program skaffar man sig vanor, och det ¨ar bra om vanorna fungerar i s˚a m˚anga olika sammanhang som m¨ojligt.

2.2.4 Konstanter

MATLAB har ett antal inbyggda konstanter:

pi konstanten π = 3.14159265...

i roten ur -1.

j samma som i.

eps 2−52 den minsta relativa skillnaden mellan tv˚a rationella tal,

eller uttryckt p˚a annat s¨att: det minsta tal man kan addera till 1 och f˚a ett tal som ¨ar st¨orre ¨an 1.

realmin 2−1022, det minsta rationella talet som kan representeras p˚a datorn.

realmax (2 − eps)1023, det st¨orsta rationella talet som kan representeras p˚a datorn.

Inf O¨andligheten som resultat av en v¨al definierad matematisk operation, t ex 10/0.

NaN Icke definierat (Not a Number), resultatet av en operation d¨ar resultate inte

¨

ar definierat, t ex 0/0 eller Inf - Inf.

ans Resultatet av det senaste kommandot.

Av dessa kommer vi kanske inte att anv¨anda mer ¨an pi (och m¨ojligen ans) i den h¨ar kursen, men det ¨ar bra att veta att de finns, i vissa l¨agen kan MATLAB komma att anv¨anda dem i felmeddelanden och d˚a ¨ar det bra att veta vad till exempel NaN st˚ar f¨or.

Vi har h¨ar valt att kalla dessa tal f¨or ”konstanter” eftersom det ¨ar s˚a vi betraktar och anv¨ander dem. Rent tekniskt ¨ar de dock implementerade som inbyggda funktioner vilket har som en konsekvens att man kan definiera om dem:

 pi pi = 3.1415

 pi = 4.75 pi = 4.7500

De ¨ar dock litet mer stabila ¨an vanliga variabler av typ Kalle som vi sj¨alva definierar. En variabel vi har definierat kan tas bort s˚a att MATLAB inte l¨angre minns n˚agot om dem

genom att ge commandot clear:

 clear Kalle

G¨or vi samma sak med en av ”konstanterna” i tabellen ovan s˚a ˚aterst¨alls v¨ardet till det f¨ordefinierade som visas i tabellen.