Matematisk Modellering Föreläsning läsvecka 3 Anders Heyden Matematikcentrum Lunds Universitet Matematisk Modellering p.1/39
Denna föreläsning (läsvecka 3) Matematisk modellering - fördjupning Modelleringsexempel - välja kassakö Muntlig presentation Matlab (programmering, matriser, grafik) Matematisk Modellering p.2/39
Matematisk modellering - fördjupning Första föreläsningen och projektet: förenkla Nu även förstå vikten av fördjupning Modellen och analysen/lösningen/implementationen måste hänga samman! Matematisk Modellering p.3/39
Modeller och modellering Varför modeller? Kompakt kunskapsrepresentation Reduktionism Tycho Brahe, Kepler och Newton Kommunikation Utbildning Enklare och säkrare än originalet Nödvändigt om förlagan inte finns ännu Matematisk Modellering p.4/39
Matematiska modeller använder Fysik Matematik Statistik Numerisk analys Datavetenskap Mjukvaruutveckling Reglerteknik Systemteori Ekonomi Kognitionsvetenskap Beteendevetenskap Matematisk Modellering p.5/39
Drivande krafter Ekonomi och resursoptimering Kvalitets- och prestationskrav Säkerhetskrav Miljökrav Lagar Nya teknologier och möjligheter Matematisk Modellering p.6/39
Användning Förståelse Analys Simulering Optimering av design Reglerteknik Implementation Matematisk Modellering p.7/39
Välja rätt kö Komplicerad - Förenklad modell Mätbara - icke mätbara parametrar Teoretisk - praktiskt användbar T = a V +b K V = antal varor K = antal kunder a,b = parametrar Matematisk Modellering p.8/39
Praktisk modell Poängsystem Uppskatta bara full vagn, halvfull vagn eller korg Uppskatta ev expeditens effektivitet Matematisk Modellering p.9/39
Muntlig presentation Bestäm vad du vill uppnå Skall åhörarna minnas något? Skall de ha tänkt över en problemställning? Vill du övertyga dem om en ståndpunkt?...sedan är det lättare att planera...och avgöra om du lyckats. Sätt rimliga mål! Matematisk Modellering p.10/39
Muntlig presentation - Åhörarna Åhörares uppmärksamhet varierar Typiskt är man ganska uppmärksam i början och slutet, men har en dipp på mitten. Dessutom tänker man på andra saker lite då och då Börja med helheten Matematisk Modellering p.11/39
Muntlig presentation Det kan vara bra att fånga uppmärksamheten, t ex genom Närhet Igenkänning Personifiering Konsekvenser Börja med helheten. Sammanfatta budskapet i en enda mening. Matematisk Modellering p.12/39
Muntlig presentation - löpsedelsmodellen Är en enkel dispositionsmodell Börja med rubrik, sedan sammanfattning Sedan kan du fördjupa dig i exempel, frågor, mer fördjupning, mer exempel. Detta ger fler möjligheter till frågor Lättare att hitta tillbaks om man tappat tråden Lättare att minnas Lättare att se vad som är centralt Matematisk Modellering p.13/39
Muntlig presentation - Föreläsaren Var engagerad Använd konkret språk, exempel, metaforer. Se folk i ögonen Variera röstläget Naturligt kroppsspråk Åhörarna vill också att det ska gå bra! Matematisk Modellering p.14/39
Muntlig presentation - Nervositet Diskutera om det finns några bra knep för att hantera nervositet. Matematisk Modellering p.15/39
Muntlig presentation - Nervositet Förbered dig mentalt Jorda dig Tag en kort paus innan du börjar prata Skriv ner inledningsmeningen Titta i början på de som ser snällast ut Öva på din presentation Matematisk Modellering p.16/39
Matlab - repetition har likheter med andra programmeringsspråk har objektorientering (men det går vi inte in på här) kompileras inte Flera nivåer - (interaktivt, skript, funktioner) Matematisk Modellering p.17/39
Matlab - denna gång Matriser, vektorer, linjär algebra Strängar Grafik mer om skript och funktioner Programkontroll (for, if while) Matematisk Modellering p.18/39
Matlab - matriser Matriser är matlabs standarddatatyp Några operatorer är +, -, *,.*,, ^,.^,/,./, \ För att bygga upp matriser kan man använda ones, zeros, eye, diag Några matrisfunktioner size, length, min, max, sort, sum, cumsum, find, prod, cumprod, diff, reshape, inv, diag Matematisk Modellering p.19/39
Matlab - matriser A = [1 2 3;4 5 6;7 8 9] det(a) Matematisk Modellering p.20/39 Man kan plocka ut ett element med A(1,3) Man kan sätta enskilda element, t ex A(1,3)=12 Man kan ta ut delmatriser med syntaxen A(vektor1,vektor2). Då bildas en matris där man kopierat de rader som finns i vektor1 och de kolumner som finns i vektor2. Vad händer om man skriver A([1 1],[1 2])? Man kan använda kolon för att plocka ut hela rader eller kolumner, tex A(:,1). Man kan ersätta delar av en matris/vektor med ny matris eller vektor. Vad händer om man skriver a = ones(1,10); a(2:2:10)=2*ones(1,5);
Matlab - matriser ones(3,4) - bildar en 3 4 matris med ettor zeros(2,3) - bildar en 2 3 matris med nollor. size(a) - ger storleken på matrisen size(a,1) - ger antalet rader size(a,2) - ger antalet kolonner Matematisk Modellering p.21/39
Matlab - matriser Matlab kan hantera komplexa matriser och vektorer. Observera skillnaden mellan A^2 och A.^2 Matematisk Modellering p.22/39
Matlab - logiska operationer Logiska operationer som <, >, <=, >=, ==, ~=, &,, ~, xor, 1, 0 fungerar elementvis på matriser och vektorer. Funktionen find är användbar för att hitta vilka positioner som är nollskillda. Funktioner som all, any kollar om alla eller någon av elementen är satta. Matematisk Modellering p.23/39
Matlab - matrisfunktioner Många funktioner, t ex sin, cos, exp, log, matriser. fungerar elementvis på Många kraftfulla funktioner som sort, min, max, sum, cumsum, prod, cumprod fungerar på vektorer och matriser. Vissa funktiner, t ex log,,exp går att definiera för matriser (alltså inte elementvis). Det får ni lära er i årskurs 2 i system och transformer. Dessa funktioner är implementerade i matlab logm, sqrtm, expm Fler matrisfunktioner, skriv help elmat, help matfun Matematisk Modellering p.24/39
Matlab - strängar Strängar kan skapas med, t ex s = hello Intern lagras strängen som en vektor med heltalskoden för tecknen. Här är de första 127 tecknen identiska med den så kallade ASCII koden. Man kan konvertera från heltalskod till sträng med v=double(s), s=char(v) Man kan konkatenera (sätta samman) strängar med samma syntax som när man skapar matriser, ex ny = [s world ] Matematisk Modellering p.25/39
Matlab - strängar Man kan också översätta en sträng som representerar ett tal till dess numeriska värde, t ex s = 102, x = str2num(s), s2 = num2str(x), Vanligt i utskrifter bmi = 22; disp([ Ditt BMI är num2str(bmi). ]); Ditt BMI är 22. Matematisk Modellering p.26/39
Matlab - strängar Mer funktioner för strängar, se help strfun Funktionen strcmp kan användas för att jämföra strängar. Funktionen eval tar en sträng som inargument och utför strängen tolkat som ett matlabkommando. favoritfunktion = sin ; ettkommando = [favoritfunktion (0.1); ]; disp(ettkommando); eval(ettkommando) Vad hade hänt om man bytt ut sin mot cos? Matematisk Modellering p.27/39
Matlab - grafik Matlab har flera funktioner för grafik. Skriv help plot, help graph2d, help graph3d så får du mer information. Ett användbart kommando är plot som ritar upp ett antal punkter i en graf. En vanlig användning är plot(x,y,plo) där x och y är vektorer med lika många element. Då ritas punkterna (x(1),y(1)),...(x(n),y(n)) upp. Man kan välja fler olika sätt att rita ut punkterna. plot(x,y, b* ) - med blå stjärnor plot(x,y, r- ) - med röda streck mellan dat x = 0:0.1:pi; plot(x,sin(x), b * ); plot(x,sin(x), r - ); Matematisk Modellering p.28/39
Matlab - grafik Andra vanliga plot kommandon är bar(v) % ritar ett stapeldiagram pie(v) % ritar tårtdiagram Matematisk Modellering p.29/39
För 3D grafik finns det Matlab - grafik [x,y]=meshgrid(-pi:0.1:pi,-pi:0.1:pi); t = -pi:0.1:pi; mesh(sin(x+y)); % ritar ett 3d landskap surfl(sin(x+y)); % med belysning imagesc(sin(x+y)); % ritar en matris som en plot3(t,sin(t),cos(t)); % Ritar 3d plot Matematisk Modellering p.30/39
MATLAB - inmatning och utskrift Inmatning från användare vikt = input( Hur mycket väger du?); Utskrift vikt eller disp([ Din vikt är num2str(vikt)]); Matematisk Modellering p.31/39
MATLAB - skript Genom att samla ett antal programrader i en textfil med filtillägg.m har man ett matlabskript. Skriptet ettskriptnamn.m exekveras genom kommandot ettskriptnamn Matematisk Modellering p.32/39
MATLAB - underprogram/funktioner Genom att lägga till extra rad i ett skript får man ett underprogram/funktion. function <utdata>=<funktionsnamn>(<indata>) % Kommentarer som även skrivs ut när % man skriver help <funktionsnamn> <programrader> Exempel: Gör en funktion som returnerar det största av två tal. Matematisk Modellering p.33/39
MATLAB - programkontroll for-loop Syntaxen för for-loop i matlab är for <variabel> = <vektor> <programrader> end Observera att variabeln löper genom alla element i vektorn. Det är mycket vanligt att man genererar en vektor med kolon-operatorn start:steg:slut som genererar en vektor. T ex blir 1:5 = [1 2 3 4 5] 1:3:7 = [1 4 7] och 0:0.25:1 = [0 0.25 0.5 0.75 1]. Matematisk Modellering p.34/39
MATLAB - programkontroll for-loop Ett enkelt exempel. for i = [1 2 3 4 5 6] i end Exemplet ovan kan alltså också skrivas. for i = 1:6 i end Matematisk Modellering p.35/39
MATLAB - exempel Skriv ett skript som räknar ut summan av heltalen 1 till 100 Matematisk Modellering p.36/39
MATLAB - plot Matlab innehåller funktioner för 2D och 3D grafik. Prova x = 0:0.1:10; plot(x,sin(x)); Man kan exportera bilderna i olika format, tex print -deps enfigur.eps print -djpeg sammafigur.jpg Matematisk Modellering p.37/39
MATLAB - programkontroll while loop Syntaxen för while-loop i matlab är while <villkor> <programrader> end Ett exempel är k = input( Mata in ett positivt heltal ); while (k>0)... använd k... k = input( Mata in ett positivt heltal ); end; Matematisk Modellering p.38/39
MATLAB - programkontroll if-sats Syntaxen för if-sats i matlab är if <villkor> <programrader> else <programrader> end Matematisk Modellering p.39/39