Matematisk Modellering Föreläsning läsvecka 3 Magnus Oskarsson Matematikcentrum Lunds Universitet Matematisk Modellering p.1/33
Denna föreläsning (läsvecka 3) Kursadministration (hur går projektarbetet?) Matematisk modellering - fördjupning Modelleringsexempel Muntlig presentation Matlab (programmering, matriser, grafik) Matematisk Modellering p.2/33
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/33
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/33
Matematiska modeller använder Fysik Matematik Statistik Numerisk analys Datavetenskap Mjukvaruutveckling Reglerteknik Systemteori Matematisk Modellering p.5/33
Drivande krafter Ekonomi och resursoptimering Kvalitets- och prestationskrav Säkerhetskrav Miljökrav Lagar Nya teknologier och möjligheter Matematisk Modellering p.6/33
Användning Förståelse Analys Simulering Optimering av design Reglerteknik Implementation Matematisk Modellering p.7/33
Projekt 1 har gått bra! Projekt 1 Förslag på lösning har jag lagt ut på nätet http://www.maths.lth.se/matematiklth/ personal/magnuso/matmod1/ Matematisk Modellering p.8/33
En statistisk modell Språkmodell En sträng med n tecken. På varje position är sannolikheten för ett visst tecken oberoende av övriga tecken. Sannolikheten för bokstäver skattas ur en text. Matematisk Modellering p.9/33
Språkmodell Språkmodellen är en text Z = (z 1, z 2,..., z n ), där varje tecken z i är slumpmässigt vald ur fördelningen. Exempel: Z = the, P ( the ) = P ( t )P ( h )P ( e ) = 0.10 0.03 0.13 = 0.00039 Matematisk Modellering p.10/33
Språkmodell - kritik Modellen är ganska grov Möjliga förbättringar Betingade sannolikheter, t ex P (z 3 = e z 1 = t, z 2 = h ), bigram, trigram ordlistor grammatik Matematisk Modellering p.11/33
Språkmodell - förbättringar Om man multiplicerar sannolikheter så blir resulaten väldigt små (10 150 ) i exemplet. Bättre att logaritmera log P (Z) = log(p (z 1 )) + log(p (z 2 )) +... + log(p (z n )) Kanske bra att även normera med avseende på textlängden, dvs använda log(p (Z))/n Felkriteriet log(p (Z)) kan förenklas ytterligare för att få snabbare kod. Man kan generera slumpvisa strängar av olika längder för att testa hur bra systemet fungerar. På så viss kan man testa olika modeller. Vilken är effektivast? Matematisk Modellering p.12/33
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.13/33
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.14/33
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.15/33
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.16/33
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.17/33
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.18/33
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.19/33
Matlab - Exempel - primtal Kontrollera om ett tal q är ett primtal Matematisk Modellering p.20/33
Matlab - denna gång Matriser, vektorer, linjär algebra Strängar Grafik mer om skript och funktioner Matematisk Modellering p.21/33
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.22/33
Matlab - matriser A = [1 2 3;4 5 6;7 8 9] det(a) Matematisk Modellering p.23/33 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.24/33
Matlab - matriser Matlab kan hantera komplexa matriser och vektorer. Observera skillnaden mellan A^2 och A.^2 Matematisk Modellering p.25/33
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.26/33
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 linjär analys. Dessa funktioner är implementerade i matlab logm, sqrtm, expm Fler matrisfunktioner, skriv help elmat, help matfun Matematisk Modellering p.27/33
Matlab - strängar Strängar kan skapas med, t ex s = fred 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 och hobbe ] Matematisk Modellering p.28/33
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) Matematisk Modellering p.29/33
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.30/33
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.31/33
Matlab - grafik Andra vanliga plot kommandon är bar(v) % ritar ett stapeldiagram pie(v) % ritar tårtdiagram Matematisk Modellering p.32/33
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.33/33