220 lines
7.8 KiB
TeX
220 lines
7.8 KiB
TeX
\documentclass[12pt,a4paper,pdftex]{exam}
|
|
%\documentclass[answers,12pt,a4paper,pdftex]{exam}
|
|
|
|
\usepackage[german]{babel}
|
|
\usepackage{natbib}
|
|
\usepackage{xcolor}
|
|
\usepackage{graphicx}
|
|
\usepackage[small]{caption}
|
|
\usepackage{sidecap}
|
|
\usepackage{pslatex}
|
|
\usepackage{amsmath}
|
|
\usepackage{amssymb}
|
|
\setlength{\marginparwidth}{2cm}
|
|
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}
|
|
|
|
%%%%% text size %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
|
|
\pagestyle{headandfoot}
|
|
\header{{\bfseries\large \"Ubung 5}}{{\bfseries\large Skripte und Funktionen}}{{\bfseries\large 15. November, 2016}}
|
|
\firstpagefooter{Prof. Jan Benda}{Phone: 29 74 573}{Email:
|
|
jan.benda@uni-tuebingen.de}
|
|
\runningfooter{}{\thepage}{}
|
|
|
|
\setlength{\baselineskip}{15pt}
|
|
\setlength{\parindent}{0.0cm}
|
|
\setlength{\parskip}{0.3cm}
|
|
\renewcommand{\baselinestretch}{1.15}
|
|
|
|
|
|
%%%%% listings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\usepackage{listings}
|
|
\lstset{
|
|
language=Matlab,
|
|
basicstyle=\ttfamily\footnotesize,
|
|
numbers=left,
|
|
numberstyle=\tiny,
|
|
title=\lstname,
|
|
showstringspaces=false,
|
|
commentstyle=\itshape\color{darkgray},
|
|
breaklines=true,
|
|
breakautoindent=true,
|
|
columns=flexible,
|
|
frame=single,
|
|
xleftmargin=1em,
|
|
xrightmargin=1em,
|
|
aboveskip=10pt
|
|
}
|
|
|
|
|
|
\newcommand{\code}[1]{\texttt{#1}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\begin{document}
|
|
|
|
\vspace*{-6.5ex}
|
|
\begin{center}
|
|
\textbf{\Large Einf\"uhrung in die wissenschaftliche Datenverarbeitung}\\[1ex]
|
|
{\large Jan Grewe, Jan Benda}\\[-3ex]
|
|
Abteilung Neuroethologie \hfill --- \hfill Institut f\"ur Neurobiologie \hfill --- \hfill \includegraphics[width=0.28\textwidth]{UT_WBMW_Black_RGB} \\
|
|
\end{center}
|
|
|
|
Die folgenden Aufgaben dienen der Wiederholung, \"Ubung und
|
|
Selbstkontrolle und sollten eigenst\"andig bearbeitet und gel\"ost
|
|
werden. Im Gegensatz zu den vorherigen \"Ubungsbl\"attern k\"onnen die
|
|
L\"osungen nicht mehr in einer Datei gemacht werden. Die L\"osungen
|
|
also als zip-Archiv auf ILIAS hochladen. Das Archiv sollte nach dem Muster:
|
|
``skripte\_funktionen\_\{nachname\}.zip'' benannt werden.
|
|
|
|
\begin{questions}
|
|
|
|
\question Berechne die Fakult\"at einer Zahl.
|
|
\begin{parts}
|
|
\part Version 1: Schreibe eine Skript, das die Fakult\"at von 5 berechnet und das
|
|
Resultat auf dem Bildschirm ausgibt.
|
|
\begin{solution}
|
|
\lstinputlisting{factorialscripta.m}
|
|
\end{solution}
|
|
|
|
\part Version 2: Wie Version 1, aber als Funktion, die als
|
|
Argument die Zahl, von der die Fakult\"at berechnet werden soll,
|
|
\"ubernimmt.
|
|
\begin{solution}
|
|
\lstinputlisting{printfactorial.m}
|
|
\lstinputlisting{factorialscriptb.m}
|
|
\end{solution}
|
|
|
|
\part Version 3: Wie Version 2, die Funktion soll den berechneten
|
|
Wert nicht ausgeben, sondern als Funktionswert zur\"uckgeben. Das
|
|
aufrufende Skript soll dann den berechneten Wert auf dem
|
|
Bildschirm ausgeben.
|
|
\begin{solution}
|
|
\lstinputlisting{myfactorial.m}
|
|
\lstinputlisting{factorialscriptc.m}
|
|
\end{solution}
|
|
|
|
\end{parts}
|
|
|
|
\question Grafische Darstellung einer Sinuswelle.
|
|
\begin{parts}
|
|
\part Implementiere eine Funktion, die einen Sinus mit der
|
|
Amplitude 1 und der Frequenz $f = $ 50\,Hz plottet ($\sin(2\pi \cdot
|
|
f \cdot t)$). Rufe die Funktion auf.
|
|
\begin{solution}
|
|
\lstinputlisting{plotsine50.m}
|
|
\lstinputlisting{plotsinea.m}
|
|
\end{solution}
|
|
|
|
\part Erweitere die Funktion so, dass die L\"ange der Zeitachse,
|
|
die Amplitude, und die Frequenz als Argumente \"ubergeben werden
|
|
k\"onnen. Die Schrittweite soll in der Funktion aus der Frequenz
|
|
berechnet werden.
|
|
\begin{solution}
|
|
\lstinputlisting{plotsine.m}
|
|
\lstinputlisting{plotsineb.m}
|
|
\end{solution}
|
|
|
|
\part Verlagere alle plot Befehle in das aufrufende Skript
|
|
und ver\"andere die Funktion so, dass sie sowohl den Sinus als
|
|
auch die Zeitachse zur\"uckgibt.
|
|
\begin{solution}
|
|
\lstinputlisting{sinewave.m}
|
|
\lstinputlisting{plotsinec.m}
|
|
\end{solution}
|
|
|
|
\part Schreibe eine zweite Funktion, die den Sinus plotted und
|
|
daf\"ur die Zeitachse und den Sinus als Argument erh\"alt. Diese
|
|
Funktion soll die Achsen richtig beschriften. Schreibe ein kleines
|
|
Skript, dass beide Funktionen aufruft, um einen Sinus von 5\,Hz
|
|
mit der Amplitude 2 \"uber 1.5 Sekunden zu plotten.
|
|
\begin{solution}
|
|
\lstinputlisting{plotsinewave.m}
|
|
\lstinputlisting{plotsined.m}
|
|
\end{solution}
|
|
\end{parts}
|
|
|
|
%\question Schreibe eine Funktion, die bin\"are Datens\"atze
|
|
%('signal.bin' und 'signal2.bin' vom Montag) liest und die Daten als
|
|
%Vektor zur\"uckgibt. Welche Argumente muss die Funktion
|
|
%\"ubernehmen?
|
|
|
|
\question Random Walk.
|
|
\begin{parts}
|
|
\part Lies die Aufgabe bis zum Ende durch. \"Uberlege dir dann ein
|
|
geeignetes ``Programmlayout'' aus Funktionen und Skripten.
|
|
|
|
Was w\"are eine geeigente Funktion f\"ur diese Aufgabe? Welche
|
|
Argumente sollte sie entgegennehmen? Was soll sie berechnen und
|
|
zur\"uckgeben?
|
|
\begin{solution}
|
|
One function that computes one realisation of a random walk.
|
|
Scripts for plotting and analysis.
|
|
\lstinputlisting{randomwalkthresh.m}
|
|
\end{solution}
|
|
|
|
\part Simuliere und plotte die Positionen von 10 Realisationen
|
|
eines random walk mit gleichen Wahrscheinlichkeiten f\"ur beide
|
|
Richtungen. Jeder Walker startet an der Position 0 und soll so
|
|
lange laufen, bis er den Wert 50 \"uberschreitet oder den Wert
|
|
$-50$ unterschreitet.
|
|
\begin{solution}
|
|
\lstinputlisting{randomwalkscriptb.m}
|
|
\end{solution}
|
|
|
|
\part Jetzt wollen wir die Wahrscheinlichkeit $p$ f\"ur eine
|
|
Bewegung zu gr\"o{\ss}eren Positionen im Bereich $0.5 \le p < 0.8$
|
|
variieren. Simuliere 10 Realisationen des random walk f\"ur vier
|
|
verschiedene Wahrscheinlichkeiten.
|
|
\begin{solution}
|
|
\lstinputlisting{randomwalkscriptc.m}
|
|
\end{solution}
|
|
|
|
\part Wie entwickelt sich die mittlere ben\"otigte Schrittanzahl
|
|
in Abh\"angigkeit der Wahrscheinlichkeit? Stelle die Mittelwerte
|
|
und die Standardabweichungen graphisch dar.
|
|
\begin{solution}
|
|
\lstinputlisting{randomwalkscriptd.m}
|
|
\end{solution}
|
|
\end{parts}
|
|
|
|
%\question Modellierung des exponentiellen Wachstums einer isolierten
|
|
%Population. Das exponentielle Wachstum einer isolierten Population
|
|
%wird \"uber folgende Differentialgleichung beschrieben:
|
|
%\begin{equation}
|
|
% \frac{dN}{dt} = N \cdot r,
|
|
%\end{equation}
|
|
%mit $N$ der Populationsgr\"o{\ss}e und $r$ der Wachstumsrate.
|
|
%\begin{parts}
|
|
% \part L\"ose die Gleichung numerisch mit dem Euler Verfahren.
|
|
% \part Implementiere eine Funktion, die die Populationsgr\"o{\ss}e
|
|
% und die Zeit zur\"uckgibt.
|
|
% \part Plotte die Populationsgr\"o{\ss}e als Funktion der Zeit.
|
|
%\end{parts}
|
|
|
|
%\question Etwas realistischer ist das logistische Wachstum einer
|
|
%isolierten Population, bei der das Wachstum durch eine Kapazit\"at
|
|
%gedeckelt ist. Sie wird mit folgender Differentialgleichung
|
|
%beschrieben:
|
|
%\begin{equation}
|
|
% \frac{dN}{dt} = N \cdot r \cdot \left( 1 - \frac{N}{K} \right)
|
|
%\end{equation}
|
|
%mit $N$ der Population, der Wachstumsrate $r$ und $K$ der ``tragenden''
|
|
%Kapazit\"at.
|
|
%\begin{parts}
|
|
% \part Implementiere die L\"osung des logistischen Wachstums in
|
|
% einer Funktion. Benutze das Euler Verfahren. Die Funktion soll die
|
|
% Parameter $r$, $K$ sowie den Startwert von $N$ als Argumente
|
|
% \"ubernehmen.
|
|
% \part Die Funktion soll die Populationsgr\"o{\ss}e und die Zeit
|
|
% zur\"uckgeben.
|
|
% \part Simuliere das Wachstum mit einer Anzahl unterschiedlicher
|
|
% Startwerte f\"ur $N$.
|
|
% \part Stelle die Ergebnisse in einem Plot graphisch dar.
|
|
% \part Plotte das Wachstum $dN/dt$ als Funktion der
|
|
% Populationsgr\"o{\ss}e $N$.
|
|
%\end{parts}
|
|
|
|
\end{questions}
|
|
|
|
\end{document}
|