44
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

Ingenjörsmetodik IT & ME 2011

  • 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

Page 1: Ingenjörsmetodik  IT & ME  2011

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

Page 2: Ingenjörsmetodik  IT & ME  2011

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

Page 3: Ingenjörsmetodik  IT & ME  2011

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

Page 4: Ingenjörsmetodik  IT & ME  2011

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)

Page 5: Ingenjörsmetodik  IT & ME  2011

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

Page 6: Ingenjörsmetodik  IT & ME  2011

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

Page 7: Ingenjörsmetodik  IT & ME  2011

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

Page 8: Ingenjörsmetodik  IT & ME  2011

8

Grunderna i MATLAB• >> c=[ 1 2• 3 4]

• c =

• 1 2• 3 4

• >>

Ett kommando kan matas in på flera rader

Page 9: Ingenjörsmetodik  IT & ME  2011

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!

Page 10: Ingenjörsmetodik  IT & ME  2011

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!

Page 11: Ingenjörsmetodik  IT & ME  2011

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 \

Page 12: Ingenjörsmetodik  IT & ME  2011

12

Vektorer & matriser>> a*b

ans =

11

>> b*a

ans =

3 6 4 8

>>

8463

21* 43

114*23*1 43

*21

Page 13: Ingenjörsmetodik  IT & ME  2011

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

Page 14: Ingenjörsmetodik  IT & ME  2011

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

Page 15: Ingenjörsmetodik  IT & ME  2011

15

Uppräkning• Andra nyttiga varianter är • zeros(rader,kol)• ones(rader,kol)

Page 16: Ingenjörsmetodik  IT & ME  2011

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.

Page 17: Ingenjörsmetodik  IT & ME  2011

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 ./

Page 18: Ingenjörsmetodik  IT & ME  2011

18

HELP menyn• Snabbkommando F1 tangenten

Page 19: Ingenjörsmetodik  IT & ME  2011

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

Page 20: Ingenjörsmetodik  IT & ME  2011

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

Page 21: Ingenjörsmetodik  IT & ME  2011

21

Inbyggda funktionermean(theta)

ans =

45.1875

>> std(theta)

ans =

0.2475

Page 22: Ingenjörsmetodik  IT & ME  2011

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

Page 23: Ingenjörsmetodik  IT & ME  2011

23

Inbyggda funktioner• >> n=size(theta)

• n =

• 8 1

• >> n(1)

• ans =

• 8

Page 24: Ingenjörsmetodik  IT & ME  2011

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

Page 25: Ingenjörsmetodik  IT & ME  2011

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

Page 26: Ingenjörsmetodik  IT & ME  2011

26

Grafer och figurer

44.5 45 45.5 460

1

2• >> hist(theta)

Page 27: Ingenjörsmetodik  IT & ME  2011

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 ...”

Page 28: Ingenjörsmetodik  IT & ME  2011

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

Page 29: Ingenjörsmetodik  IT & ME  2011

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

Page 30: Ingenjörsmetodik  IT & ME  2011

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

Page 31: Ingenjörsmetodik  IT & ME  2011

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

Page 32: Ingenjörsmetodik  IT & ME  2011

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

Page 33: Ingenjörsmetodik  IT & ME  2011

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

Page 34: Ingenjörsmetodik  IT & ME  2011

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

Page 35: Ingenjörsmetodik  IT & ME  2011

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

Page 36: Ingenjörsmetodik  IT & ME  2011

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

>>

Page 37: Ingenjörsmetodik  IT & ME  2011

37

Vad är ett program1. Ett program består av

funktionsanrop och formler/ekvationer2. Villkorssatser: for-loopen kapitel 53. Kommentarer för läsbarheten

Page 38: Ingenjörsmetodik  IT & ME  2011

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

Page 39: Ingenjörsmetodik  IT & ME  2011

39

Skript eller programfiler1. Öppna matlab-editorn2. Skriv in dina ekvationer3. Spara filen med lämpligt namn och

prefixet .m

Page 40: Ingenjörsmetodik  IT & ME  2011

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

Page 41: Ingenjörsmetodik  IT & ME  2011

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)));

Page 42: Ingenjörsmetodik  IT & ME  2011

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

Page 43: Ingenjörsmetodik  IT & ME  2011

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

Page 44: Ingenjörsmetodik  IT & ME  2011

44

Program innehåller funktioner• Anropa funktionen stat• stat(randn(100,1))• Svaret blir?