Matematisk Modellering Föreläsning läsvecka 4 Magnus oskarsson Matematikcentrum Lunds Universitet Matematisk Modellering p.1/17
Denna föreläsning (läsvecka 4) Kursadministration (redovisning projekt 2, projekt 3) Matlab Modellering, dimensionsanalys Matematisk Modellering p.2/17
Opponering Muntlig - bra om man redan läst rapporten Sammanfatta presentationen Ge positiv och negativ kritik Ställ 3-4 frågor Ta upp oklarheter och saker du inte förstått Skriftlig - ta upp rapportstruktur och helhet Men även delar, t ex inledning, problemformulering, modellering, analys, resultat Ge feedback och förslag på förbättringar Matematisk Modellering p.3/17
Matlab - denna gång Matriseralgebra och polynom Mer om grafik Matematisk Modellering p.4/17
Matlab - Strängar och workspace who - talar om vilka variabler som är satta whos - ger mer information om satta variabler save - sparar alla eller vissa variabler till fil load - laddar in variabler från fil pwd resulterar i en sträng till aktuell katalog. dir - listar alla filer i aktuell katalog. Matematisk Modellering p.5/17
Matlab - Grafer Det finns flera funktioner för grafer. Skriv help plot, help plot3 plot(x) - gör en graf av värdena i vektorn x. Om x är en matris så blir resultatet en graf för varje kolumn plot(x,y) - om x = [4 2 3] och y = [7 8 9] så blir består grafen av tre punkter (4, 7), (2, 8) och (3, 9). Man kan exportera en graf till en fil med print. Det finns många formatval, t ex print -deps filnamn.eps print -djpeg filnamn.jpg print -dbitmap filnamn.bmp Matematisk Modellering p.6/17
Matlab - Polynom Polynom anges som en vektor med koefficienter, t ex motsvarar p1 = [1 3 4] polynomet 1x 2 + 3x + 4 En operation som kallas faltning (conv) kan användas för att räkna ut produkten av två polynom. conv([1 1],[1 1])=[1 2 1] Funktionen roots räknar ut alla komplexa rötterna till ett polynom. Matematisk Modellering p.7/17
Matlab - Matrisalgebra Användbara matrisoperationer inv - matrisinvers det - determinant rank - rang eig - beräknar egenvärden och egenvektorer svd - s k singulärvärdesfaktorisering norm - matrisnorm cond - konditionstal Matematisk Modellering p.8/17
Matlab - Avancerad grafik meshgrid - genererar matriser x, y som kan användas för att göra 3d grafer. mesh - gör 3D-funktioner av ytor givna av en matris. Varianter av mesh är surf, meshc, meshz, waterfall och surfl. contour ritar ut nivåkurvor till en yta plot3 liknar plot plot3(x,y,z) - om x = [4 2 3], y = [7 8 9] och z = [3 2 1] så ritas en 3D plot av tre punkter (4, 7, 3), (2, 8, 2) och (3, 9, 1). Matematisk Modellering p.9/17
Matlab - keyboard Funktioner för att hitta programmeringsfel dbstop, dbquit Funktionen keyboard gör att exekveringen pausas och att man hamnar mitt i funktionen Ny prompt K>> Nu kan man se vilka lokala variabler som är satta. Genom kommandot return fortsätter exekveringen. Matematisk Modellering p.10/17
Matlab - funktioner som inargument Det går bra att ha funktioner som inargument. Varför vill man ha det? Ex: funktion för att hitta nollställe med Newton-Raphson Matematisk Modellering p.11/17
Matlab - funktioner som inargument Några sätt att ange en funktion 1. Funktionsnamnet som en sträng f = cos 2. Funktionspekare f = @cos 3. Ange en funktion som ett s k inline objekt, f = @inline( cos(x)^3-0.2, x ); Matematisk Modellering p.12/17
Matlab - funktioner som inargument Funktionen eval(strang), utför kommandot som är skrivet i strängen strang. Detta kan användas för att räkna ut ett funktionsvärde om funktionsnamnet är givet som en sträng. f = sin ; x = 0.1; eval([ y= f ( num2str(x) ); ]; y Matematisk Modellering p.13/17
Matlab - funktioner som inargument För just funktionsevaluering är kommandot y=feval(funk,x) bättre. Då anropas funktionen funk med parametern x och resultatet hamnar i y. f = sin ; x = 0.1; y = feval(f,x) Matematisk Modellering p.14/17
Matlab - funktioner som inargument Exempel plotta en funktion funktion [ph] = minfunktionsplot(f); x = 0:0.1:10; y = feval(f,x); plot(x,y); Nu kan man anropa minfunktionsplot med olika funktioner, t ex minfunktionsplot( sin ), minfunktionsplot( cos ), minfunktionsplot( sqrt ), Matematisk Modellering p.15/17
Matlab - några funktionsfunktioner quad( sin,0,pi) - π 0 sin(x)dx fzero( sin,3) - hittar nollställe till sin(x) i närheten av x = 3. ode45 - löser ordinära differentialekvationer numeriskt. fminbnd - hittar lokala minima till en funktion. Matematisk Modellering p.16/17
Matlab - Egna verktygslådor Dokumentation för en katalog (toolbox/verktygslåda) kan man lägga in i en speciell fil Contents.m % Verktygslåda för matematisk modellering % % minfunk - beräknar kvadraten % hejhopp - är en annan skoj funktion Genom att skriva help matmod1 så skrivs hjälptexten ut Verktygslåda för matematisk modellering minfunk - beräknar kvadraten hejhopp - är en annan skoj funktion På så sätt kan man ganska enkelt dokumentera sin kod. Matematisk Modellering p.17/17