Ingenjörsrollen Från DNs kultursidor http://www.dn.se/dnet/jsp/polopoly. jsp?d=&a=827474&sb2231i0=1_827 474 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... 1
Diskussionuppgift på KTH Social Skicka in rimliga svar på mer än 50% av de diskussioner som jag lägger ut. Som rimligt svar räknas även en utförlig kommentar på en annan students uppgift. Detta ger ca 5% bonus på tentan eller möjlighet till högre betygssteg exvis C istf B. Jag sammanställer genom att söka igenom alla inlägg efter sista föreläsningen. 2
Diskussionuppgift på KTH Social Undersök din problemlösningstext med hjälp av måttet LIX http://www.lix.se/ Lägg ut resultatet på Social med en egen kommentar om resultatet verkar rimligt?! 3
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 4
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 4 4.1 4.2 om 3D-plottar vid intresse 4.3 5 5 väldigt översiktligt, men Special characters & find kommandot är nyttiga 1-5 6-7 om statistik 19-21 om fördelningar 1-4 hör ihop 5-6 hör ihop 7-8 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 1-4, 6, 7, 9 3.2 Exemplen kan läsas vid intresse 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 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 5
Mål kapitel 2 6
Mål kapitel 3 7
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 8
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) 9
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 1 3 1 2 en 2x2matris 4 2 en radvektor med 2 element (kolumner) 1 en kolumnvektor med 2 element (rader) 3 10
Grunderna i MATLAB >> a=[1 2] a = 1 2 >> b=[3 4]' >> kallas prompten [] (fyrkantiga parenteser) skapar en matris b = >> 3 4 Det lilla tecknet ändra formen på en matris genom att byta plats på rader och kolumner 11
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 12
Grunderna i MATLAB >> c=[ 1 2 3 4] c = Ett kommando kan matas in på flera rader 1 2 3 4 >> 13
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! 14
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! 15
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 \ 16
Vektorer & matriser >> a*b ans = 11 >> b*a ans = 3 6 4 8 1 2 3 * 4 3 * 1*3 2*4 4 3 6 1 2 4 8 11 >> 17
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 18
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 19
Uppräkning Andra nyttiga varianter är zeros(rader,kol) ones(rader,kol) 20
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. 21
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./ 22
HELP menyn Snabbkommando F1 tangenten 23
Exempel på andra ordningens korrektion 24
Exempel 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 25
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 26
Inbyggda funktioner mean(theta) ans = 45.1875 >> std(theta) ans = 0.2475 27
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 28
Inbyggda funktioner >> n=size(theta) n = 8 1 >> n(1) ans = 8 29
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 30
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]) 31
Grafer och figurer 2 >> hist(theta) 1 0 44.5 45 45.5 46 32
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 33
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 34
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 35
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 36
Matriser och speciella räknesätt Exempel: beräkna rörelseenergin för en bil vid hastigheterna: 30,50 70 km/h Formel E=mv 2 /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 37
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 ==> 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 * 0.3472 0.9645 1.8904 >> E=m*v.*v/2 E = 1.0e+005 * 0.3472 0.9645 1.8904 38
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 39
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 40
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 41
Nästa gång Problemlösning med datorer fortsätter torsdag 29 sept med kapitel 3 ur boken 42