Användarhandledning för MATLAB 6.5

Ingenjörsmetodik IT & ME
2007
• Föreläsare Dr. Gunnar Malm
1
Frågor från förra gången
•
•
•
•
?
KP1 slut
MATLAB bok på svenska
Länken till MATLAB
2
Bok på svenska
• MATLAB-beräkningar inom teknik
och naturvetenskap Per Jönsson
• ISBN: 9789144017808
Upplaga: 2
Revisionsår: 2006
Utgivningsår: 2004
Sidantal: 515
• 379:3
Bok på svenska
• Användarhandledning
för MATLAB 6.5, ISBN
91-506-1690-0
4
Länken för MATLAB
nedladdning
• Finns på sida för programdistribution
• http://progdist.ug.kth.se/public/licen
sed.shtml
• Logga in med UG\username
5
Stora MATLAB uppgiften
• 64 st filer i ett ZIP arkiv httpmin länk
• Effekt 1000 W / 5x5 cm2
• Cellarea 1.1 cm2
6
Dagens föreläsning
• Grunderna i MATLAB
• Vanliga kommandon
• Grafer och figurer bla ’Plotfunktionen’
• Enkla program/funktioner
7
Grunderna i MATLAB
• MATLAB kan
• Räkna med matriser, vektorer och
komplexa tal
• Skapa grafer (olika varianter av
plotkommandot)
• Användas för programmering och
mer komplicerade beräkningar
• Symbolisk matematik (symbolic
toolbox)
8
Grunderna i MATLAB
• Vad är en matris?
• Ett sätt att utföra samla ihop flera tal för en
beräkning
• Vanligaste exemplet är en vektor
1 2

 en 2x2 matris
3 4
1 2 en radvektor med 2 element (kolumner)
1
  en kolumnvekt or med 2 element (rader)
 3
9
Grunderna i MATLAB
>> a=[1 2]
a=
1
>> kallas prompten
2
>> b=[3 4]'
[] skapar en matris
b=
3
4
>>
10
Vektorer & matriser
• Byt mellan rad och
kolumnvektor med
kommandot ’
(transponat)
• Ta reda på vilken
vektortyp du har
genom
kommandot size
>> size(a)
ans =
1
2
>> size(b)
ans =
2
1
>> size(b')
ans =
1
2
11
Grunderna i MATLAB
• >> c=[ 1 2
• 3 4]
Ett kommando kan
matas in på flera rader
• c=
•
•
1
3
2
4
• >>
12
Grunderna i MATLAB
• >> c=[ 1 2
• 3 4];
• >>
Ett semikolon ; efter inmatningen gör
att inget svar skrivs ut
13
Grunderna i MATLAB
• De vanliga räknesätten fungerar
även för matriser och vektorer
• MATLAB använder ofta symbolen
punkt ’.’ för matrisberäkningar, dvs
när flera uträkningar ska göras
’samtidigt’
• Följande kombinationer finns för
elementvis operation:
• .* ./
.^
• .+ .- finns men behövs inte!
14
Grunderna i MATLAB
• Elementvis operationer används när
ingående variabler har samma ’form’
• radvektor .* radvektor
• Kolumnvektor ./ kolumnvektor
• ’2x2’ Matris .* ’2x2’ matris
• I alla andra fall används de vanliga
räknesätten +,-,*,/,^
• För matriser finns även ett ’felvänt’
divisionstecken \
15
Vektorer & matriser
>> a*b
 3
1 2*    1* 3  2 * 4  11
 4
 3
 3 6
  * 1 2   

 4
 4 8
ans =
11
>> b*a
ans =
3
4
>>
6
8
16
Vektorer & matriser
• För att räkna med .* måste alla variabler
ha samma ‘form’
• >> a.*b
• ??? Error using ==> times
• Matrix dimensions must agree.
• >> a.*b'
• ans =
•
3
8
17
HELP kommandot
• help
• HELP topics
• matlab\general
- General purpose commands.
• matlab\ops
- Operators and special
characters.
• matlab\lang
- Programming language
constructs.
• matlab\elmat
- Elementary matrices and
matrix manipulation.
• matlab\elfun
- Elementary math functions.
• matlab\specfun
- Specialized math functions.
• matlab\matfun
- Matrix functions - numerical
linear algebra.
18
HELP kommandot
• Finns en sammanfattning på sidan 50-51 i boken
>> help ops
Operators and special characters.
Arithmetic operators.
plus
- Plus
+
uplus
- Unary plus
+
minus
- Minus
uminus
- Unary minus
mtimes
- Matrix multiply
*
times
- Array multiply
.*
mpower
- Matrix power
^
power
- Array power
.^
mldivide - Backslash or left matrix divide \
mrdivide - Slash or right matrix divide
/
ldivide - Left array divide
.\
rdivide - Right array divide
./
19
HELP menyn
• Snabbkommando F1 tangenten
20
Exempel från övning 4
• Övning 4.4
• Omvandla vinklar från grader till radianer
theta=[45.1 45.3 44.8 45.1 45.0 45.4 45.2 45.6]'
theta =
45.1000
45.3000
44.8000
45.1000
45.0000
45.4000
45.2000
45.6000
21
En enkel vektorberäkning
radianer=pi/180*theta
radianer =
0.7871
0.7906
0.7819
0.7871
0.7854
0.7924
0.7889
0.7959
22
Inbyggda funktioner
mean(theta)
ans =
45.1875
>> std(theta)
ans =
0.2475
23
Index
medel=sum(theta)/8
medel =
45.1875
>> medel=(theta(1)+theta(2)+theta(3)+theta(4)+...
theta(5)+theta(6)+theta(7)+theta(8))/8
medel =
45.1875
Vanliga parenteser ( ) kallas
index för ett matriselement
24
Inbyggda funktioner
• >> n=size(theta)
• n=
•
8
1
• >> n(1)
• ans =
•
8
25
Inbyggda funktioner
• Standaravvikelsen med vektorberäkning och
(elementvis upphöjt till 2) .^2
• >> s=sqrt(1/(n(1)-1)*sum((theta-medel).^2))
• s=
•
0.2475
26
Grafer och figurer
45.6
45.4
45.2
45
44.8
44.6
2
4
6
8
• Plot kommandot för att
rita ut mätpunkter
• Line kommandot för
linjer
• >> plot(theta,'ro')
• >> line([1 8],[medel
medel])
• >> line([1
8],[medel+s
medel+s])
• >> line([1 8],[medel-s
medel-s])
27
Grafer och figurer
2
• >> hist(theta)
1
0
44.5
45
45.5
46
28
Funktioner
1. Öppna matlab-editorn
2. Definiera in- och ut-värden till
funktionen
3. Skriv in dina ekvationer
4. Spara filen med samma namn som
funktionen
29
Funktionen stat.m
function [medel,s] = stat(x)
n = length(x);
medel = sum(x)/n;
s = sqrt(sum((x-medel).^2/(n-1)));
30
Nästa föreläsning F8
• Fortsättning på felanalys och
noggrannhetsanalys
• Mer MATLAB exempel
31