Upload
stormy
View
52
Download
0
Embed Size (px)
DESCRIPTION
Ingenjörsmetodik IT & ME 2011. Problemlösning med datorer Vi introducerar programmet MATLAB, installation, ’miljön’, centrala begrepp Går igenom kapitel 1 & 2 i MATLAB boken Beskriver labbens upplägg, schema och gruppindelning. Läsanvisning till boken Introduction to MATLAB. - PowerPoint PPT Presentation
Citation preview
1
Ingenjörsmetodik IT & ME 2011• Problemlösning med datorer• Vi introducerar programmet MATLAB,
installation, ’miljön’, centrala begrepp
• Går igenom kapitel 1 & 2 i MATLAB boken
• Beskriver labbens upplägg, schema och gruppindelning
2
Läsanvisning till boken Introduction to MATLAB
Kapitel Att läsa (avsnitt)
Uppgiftsnummer (rekommenderade)
1 1.1 & 1.3 + diskutera kring 1.2 2 Hela 31-33 hör ihop
34-36 hör ihop 37 40-42 hör ihop
3 3.1-3.3 3.4 delar 3.4.2 sidan 90 om statistik behandlas separat 3.6
1-5 6-7 om statistik 19-21 om fördelningar
4 4.1 4.2 om 3D-plottar vid intresse 4.3
1-4 hör ihop 5-6 hör ihop 7-8 hör ihop
5 5 väldigt översiktligt, men Special characters & find kommandot är nyttiga
-
6 Ligger matematiskt utanför denna kurs passar in med Algebra i period 2!
-
7 Hela 1-4, 7-10 hör ihop 8 8.1, 8.2, 8.3 1-2, 7-10 hör ihop
Kapitel Att läsa (avsnitt) OBS förra upplagans numrering!
Uppgiftsnummer (rekommenderade)
1 Hela Ej tillgängliga än för nya upplagan
2 Hela 3,7, 8, 9, 10 3 3.1.1, 3.1.2, 3.1.4 och 3.1.5
3.2 Exemplen kan läsas vid intresse
1-4, 6, 7, 9
4 Översiktligt - 5 Speciellt 5.3 Funktioner
5.4 -
6 6.3.1, 6.3.2 - 7 7.3 - 8 8.1, 8.2, 8.3 och 8.5 4 och 6
3
Dagens föreläsning• Matlabmiljön• Grunderna i MATLAB, vad är en MATRIS???• Vanliga kommandon• Grafer och figurer bla ’Plot-funktionen’• Enkla program/funktioner• Om solpanelen, USB loggern
4
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)
5
Grunderna i MATLAB• Vad är en matris?• Ett sätt att samla ihop flera tal för en
beräkning• Vanligaste exemplet är en vektor
(rader)element 2 medor kolumnvekten 31
(kolumner)element 2 medradvektor en 21
matris 2x2en 4321
6
Grunderna i MATLAB>> a=[1 2]
a =
1 2
>> b=[3 4]'
b =
3 4
>>
>> kallas prompten
[] (fyrkantiga parenteser) skapar en matris
Det lilla tecknet ’ ändra formen på en matris genom att byta plats på rader och kolumner
7
Vektorer & matriser• Byt mellan rad och
kolumnvektor med kommandot ’ (transponat)
• Ta reda på vilken vektortyp du har genom kommandot size
• Den första siffran i svaret syftar på RADERNA, den andra på KOLUMNERNA
>> size(a)
ans =
1 2
>> size(b)
ans =
2 1
>> size(b')
ans =
1 2
8
Grunderna i MATLAB• >> c=[ 1 2• 3 4]
• c =
• 1 2• 3 4
• >>
Ett kommando kan matas in på flera rader
9
Grunderna i MATLAB• >> c=[ 1 2• 3 4];• >>
Ett semikolon ; efter inmatningen gör att inget svar skrivs utDetta är NORMALVARIANTEN i LÅNGA UTRÄKNINGAR för att det ska bli SNABBARE!
10
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!
11
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 \
12
Vektorer & matriser>> a*b
ans =
11
>> b*a
ans =
3 6 4 8
>>
8463
21* 43
114*23*1 43
*21
13
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
14
Uppräkning• För att t.ex. Skapa värden på en x-axeln kan man göra en
uppräkning till en vektor
• >>x=-3:0.01:3;• Svaret i detta fall hamnar i 601 kolumner, se nedan• Columns 598 through 600
• 2.9700 2.9800 2.9900
• Column 601
• 3.0000
15
Uppräkning• Andra nyttiga varianter är • zeros(rader,kol)• ones(rader,kol)
16
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.
17
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 ./
18
HELP menyn• Snabbkommando F1 tangenten
19
Exempel• Omvandla vinklar från grader till radianertheta=[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
20
En enkel vektorberäkningradianer=pi/180*theta
radianer =
0.7871 0.7906 0.7819 0.7871 0.7854 0.7924 0.7889 0.7959
21
Inbyggda funktionermean(theta)
ans =
45.1875
>> std(theta)
ans =
0.2475
22
Indexmedel=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
23
Inbyggda funktioner• >> n=size(theta)
• n =
• 8 1
• >> n(1)
• ans =
• 8
24
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
25
Grafer och figurer• 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])2 4 6 8
44.6
44.8
45
45.2
45.4
45.6
26
Grafer och figurer
44.5 45 45.5 460
1
2• >> hist(theta)
27
Ingenjörsrollen• Från DNs kultursidor• http://www.dn.se/DNet/jsp/
polopoly.jsp?d=&a=827474&sb2231i0=1_827474
”Jag läste till en examen i teknisk fysik på KTH för att jag trodde att matematiken och siffrorna skulle vara ett bättre språk än svenskan för att beskriva världen ...”
28
Matriser och speciella räknesätt• a=[pi 5] skapar en matris• a(1) tar ut det första elementet
(index=1) ur matrisen a => svaret blir 3.1415
• ; stänger av utmatning av svar• .* multiplicerar ihop matriser med
samma form/storlek
29
Matriser och speciella räknesätt• Hela matrisen kan hanteras på en
och samma gång!• Inga uppräkningar eller slingor
behövs i programkoden• Räknesätten med punkten framför
utförs elementvis i hela matrisen• Matriser och vanliga tal kan blandas –
då utförs beräkningen också elementvis
30
Matriser och speciella räknesätt• Exempel: skapa en lagom stor matris
fylld med siffran 2• Lösning: funktionen ones(m,n) ger
matris fylld med ettor• Siffran 2 kan multipliceras in på
VARJE element
31
Matriser och speciella räknesätt >> ettor=ones(6,6)
ettor =
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
>> tvaor=2*ettor
tvaor =
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
32
Matriser och speciella räknesätt• Exempel: beräkna rörelseenergin för
en bil vid hastigheterna: 30,50 70 km/h
• Formel E=mv2/2 eller E=mv*v/2• Alltså behövs ’upphöjt till’ ^ eller
’gånger’ *• Fungerar ^ eller * direkt, nej
eftersom element i matriser ska hanteras
33
Matriser och speciella räknesätt >> v=[30 50 70]/3.6
v =
8.3333 13.8889 19.4444
>> m=1000;>> E=m*v^2/2??? Error using ==> mpowerMatrix must be square. >> E=m*v*v/2??? Error using ==> mtimesInner matrix dimensions must agree. >> E=m*v.^2/2
E =
1.0e+005 *
0.3472 0.9645 1.8904
>> E=m*v.*v/2
E =
1.0e+005 *
0.3472 0.9645 1.8904
34
Matriser och speciella räknesätt >> ettor=ones(6,6)
ettor =
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
>> tvaor=2*ettor
tvaor =
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
35
Studentaktivitet• Övning skapa 1:ans till 5:ans
multiplikationstabell och presentera resultatet i en tabell.
• Behöver inte vara tjusigt• Använd uppräkning, vektorer
och/eller matriser
36
Studentaktivitet
>> (1:5)'*(1:5)
ans =
1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25
>>
37
Vad är ett program1. Ett program består av
funktionsanrop och formler/ekvationer2. Villkorssatser: for-loopen kapitel 53. Kommentarer för läsbarheten
38
Funktioner och programTre varianter –1. antingen ’inline’ för formler2. eller med programfiler som skapas i
en editor3. Funktionsfiler som sparas från
editorn
39
Skript eller programfiler1. Öppna matlab-editorn2. Skriv in dina ekvationer3. Spara filen med lämpligt namn och
prefixet .m
40
Funktionsfiler1. Öppna matlab-editorn2. Definiera in- och ut-värden till
funktionen och funktionens NAMN3. Skriv in dina ekvationer4. Spara filen med samma namn som
funktionen och suffixet .m
41
Program vs. funktionEnkelt program statenkel.m
Enkel funktion stat.m
x=randn(100,1);n = length(x);medel = sum(x)/n;s = sqrt(sum((x-medel).^2/(n-1)));
function [medel,s] = stat(x)n = length(x);medel = sum(x)/n;s = sqrt(sum((x-medel).^2/(n-1)));
42
Jämförelse funktion/program• Programmet definierar sina egna x-
värden• Funktionen kan hantera godtyckliga
x-värden som användaren skickar in
43
Program innehåller funktioner• Alla inbyggda kommandon i matlab
har formen av en funktion• T.ex. cos(x), size(x), ...• Man kan ANROPA sina EGNA
funktioner
44
Program innehåller funktioner• Anropa funktionen stat• stat(randn(100,1))• Svaret blir?