Matematisk Modellering Föreläsning 4 Kalle Åström Kursadministration (redovisning projekt 2, projekt 3) Matlab (funktioner som inargument till funktioner) LaTeX (tabell, figur, listor, m m) Matlab (mer om grafik, tentan) Matematikcentrum Lunds Universitet Matematisk Modellering p.1/34 Matematisk Modellering p.2/34 Redovisning projekt 2 Grupp 1+2, 10.15-10.45, MH:454A Grupp 3+4, 10.15-10.45, MH:309B Grupp 5+6, 13.15-11.45, MH:454A Grupp 7+8, 11.15-11.45, MH:309B Grupp 9+10, 10.15-10.45, E:1405 Grupp 11+12, 11.15-11.45, E:1405 Redovisning projekt 3 Grupp 1+2, 6/12, 10.15-11.00, MA:3 Grupp 3+4, 6/12, 11.15-12.00, MA:3 Grupp 5+6, 9/12, 10.15-11.00, MA:4 Grupp 7+8, 9/12, 11.15-12.00, MA:4 Grupp 9+10, 9/12, 13.15-14.00, MA:4 Grupp 11+12, 9/12, 14.15-15.00, MA:4 Matematisk Modellering p.3/34 Matematisk Modellering p.4/34 Ni får snart ett e-brev med ett kompilerat matlabskript marker.p Observera att skriptet marker.p fungerar tills 10 januari 2005. Nästa tillfälle att göra matlabtentan blir 1-18 mars 2005. Skapa en ny katalog. Spara marker.p i denna katalog. Era fyra uppgifter får ni genom matlabkommandot marker(nr,ar-manad-dag). Jag är född 18 februari 1967. Om jag vill ha ut uppgift 2 skriver jag marker(2,670218) Varje uppgift är att skriva en matlabfunktion. Placera dessa fyra funktioner i samma katalog som marker.p Med matlab-kommadot marker(0,ar-manad-dag) rättas era fyra skript (eller de som ni har skrivit färdigt). Matematisk Modellering p.5/34 Matematisk Modellering p.6/34 >> marker(1,670218) ------------------- Calculate Row and Column Sums! ------------------- Write a function that from... >> code=marker(0,670218); Cannot find matsum, credits = 0 for this excerc Cannot find newbase, credits = 0 for this excer Executing Your function datesort... Checking the results... Cannot find curvelength, credits = 0 for this e >> num2str(code) ans = 842 789 716 357 771 1011 800 614
När ni är klara, skicka e-post till mig, med Er år-månad-dag Er rättningskod (code) variabler skript, funktioner matriser och matrishantering strängar grafik Matematisk Modellering p.9/34 Matematisk Modellering p.10/34 Matlab - denna gång Matriseralgebra och polynom Mer om grafik Funktioner som inparametrar till funktioner Matlab - 1.4 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.11/34 Matematisk Modellering p.12/34 Matlab - 1.5 Grafer 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 Matlab - 1.6 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.13/34 Matematisk Modellering p.14/34 Matlab - 1.6 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 Matlab - 1.7 Avancerad grafik meshgrid - genererar matriser x, y som kan användas för att göra 3d grafer. mesh - gör 3Dfunktioner 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 plot(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).
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. 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 På så sätt kan man ganska enkelt dokumentera sin kod. Matematisk Modellering p.17/34 Matematisk Modellering p.18/34 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 ); 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.19/34 Matematisk Modellering p.20/34 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) 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.21/34 Matematisk Modellering p.22/34 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. 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
Figurer Tabeller Matematiska formler Referenser \begin{figure} \begin{center} \epsfig{figure=bild.eps,width=5cm} \end{center} \caption{figurtext} \label{fig-referens1} \end{figure} Matematisk Modellering p.25/34 Matematisk Modellering p.26/34 LaTeX - figurer Som man kan se i Figur~\ref{fig-referens1} beror $x$ på $y$. Genom att lägga in en etikett (label) kan man referera till rätt figurnummer med (ref). LaTeX - table På liknande sätt kan man lägga in en tabell med tabelltext \begin{table} Här får man lägga in själva tabellen. \caption{tabelltext} \label{tab-referens1} \end{table} Matematisk Modellering p.27/34 Matematisk Modellering p.28/34 LaTeX - tabular På liknande sätt kan man lägga in en tabell med tabelltext \begin{tabular}{ l crl } Förnamn & efternamn & Längd & Höjd \\ \hline Kalle & Astrom & 15 & 12\\ Nalle & Astrom & 15 & 12\\ Valle & Astrom & 15 & 12\\ \end{tabular} Förnamn efternamn Längd Höjd Kalle Astrom 15 12 Nalle Astrom 15 12 Valle Astrom 15 12 Formler f(x) = x mitt i rad eller på egen rad f(x) = k=1 k 3 Formler $f(x)=\sqrt{x}$ mitt i rad eller på egen rad $$ f(x) = \sum_{k=1}^{\infty} k^{-3}$$ Matematisk Modellering p.29/34 Matematisk Modellering p.30/34 eller med nummer f(x) = k 3 (1) k=1 eller med nummer \begin{equation} f(x) = \sum_{k=1}^{\infty} k^{-3} \label{ekv-ref3} \end{equation} Mer om vad man kan skriva med formler finns i forebys kompendium och i böcker. sin θ a b 1 0 xdx = = a b, a b $$ \sin \theta \frac{a}{b} \int_0^1 x dx $$ $$ = \leq \neq \geq \in \forall \exists $$ $$ \Longrightarrow a \cup b, a \cap b $$
Hej och hå \begin{itemize} \item Hej \item och \item hå \end{itemize} 1. Hej 2. och 3. hå \begin{enumerate} \item Hej \item och \item hå \end{enumerate} Matematisk Modellering p.33/34 Matematisk Modellering p.34/34