Ladda ner presentationen
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
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
6
Grunderna i MATLAB >> a=[1 2] a = 1 2 >> kallas prompten
>> 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 >> size(a) ans = >> size(b) >> size(b') 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
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 ut Detta ä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 3 6 4 8
>>
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 =
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 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 radianer
theta=[ ]' theta =
20
En enkel vektorberäkning
radianer=pi/180*theta radianer = 0.7871 0.7906 0.7819 0.7854 0.7924 0.7889 0.7959
21
Inbyggda funktioner mean(theta) ans = 45.1875 >> std(theta)
0.2475
22
Index Vanliga parenteser ( ) kallas index för ett matriselement
medel=sum(theta)/8 medel = >> medel=(theta(1)+theta(2)+theta(3)+theta(4)+... theta(5)+theta(6)+theta(7)+theta(8))/8 Vanliga parenteser ( ) kallas index för ett matriselement
23
Inbyggda funktioner >> n=size(theta) n = 8 1 >> n(1) ans =
>> 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])
26
Grafer och figurer >> hist(theta)
27
Ingenjörsrollen Från DNs kultursidor
”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 ; 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 = >> tvaor=2*ettor tvaor =
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=[ ]/3.6 v = >> m=1000; >> E=m*v^2/2 ??? Error using ==> mpower Matrix must be square. >> E=m*v*v/2 ??? Error using ==> mtimes Inner matrix dimensions must agree. >> E=m*v.^2/2 E = 1.0e+005 * >> E=m*v.*v/2
34
Matriser och speciella räknesätt
>> ettor=ones(6,6) ettor = >> tvaor=2*ettor tvaor =
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
>>
37
Vad är ett program Ett program består av funktionsanrop och formler/ekvationer Villkorssatser: for-loopen kapitel 5 Kommentarer för läsbarheten
38
Funktioner och program
Tre varianter – antingen ’inline’ för formler eller med programfiler som skapas i en editor Funktionsfiler som sparas från editorn
39
Skript eller programfiler
Öppna matlab-editorn Skriv in dina ekvationer Spara filen med lämpligt namn och prefixet .m
40
Funktionsfiler Öppna matlab-editorn
Definiera in- och ut-värden till funktionen och funktionens NAMN Skriv in dina ekvationer Spara filen med samma namn som funktionen och suffixet .m
41
Program vs. funktion Enkelt 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)
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?
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.