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