This repository has been archived on 2021-05-17. You can view files and clone it, but cannot push or open issues or pull requests.
scientificComputing/programming/exercises/scripts_functions.tex

208 lines
7.0 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 Implementiere die Fakult\"at als Funktion.
\begin{parts}
\part Version 1: berechnet die Fakult\"at von 5 und gib das
Resultat auf dem Bildschirm aus.
\begin{solution}
\lstinputlisting{facultyscripta.m}
\end{solution}
\part Version 2: Wie 1 aber die Funktion \"ubernimmt als Argument
die Zahl, von der die Fakult\"at berechnet werden soll.
\begin{solution}
\lstinputlisting{printfaculty.m}
\lstinputlisting{facultyscriptb.m}
\end{solution}
\part Version 3: Wie 2 aber mit R\"uckgabe des berechneten Wertes.
\begin{solution}
\lstinputlisting{faculty.m}
\lstinputlisting{facultyscriptc.m}
\end{solution}
\end{parts}
\question Implementiere eine Funktion, die einen Sinus mit der
Amplitude 1 und der Frequenz $f = $ 50\,Hz plottet ($sin(2\pi \cdot
f \cdot t)$):
\begin{solution}
\lstinputlisting{plotsine50.m}
\lstinputlisting{plotsinea.m}
\end{solution}
\begin{parts}
\part Erweitere die Funktion sodass die L\"ange der Zeitachse, die
Schrittweite, Amplitude, Frequenz als Argumente
\"ubergeben werden k\"onnen.
\begin{solution}
\lstinputlisting{plotsine.m}
\lstinputlisting{plotsineb.m}
\end{solution}
\part Gib sowohl den Sinus als auch die Zeitachse zur\"uck.
\begin{solution}
\lstinputlisting{sinewave.m}
\lstinputlisting{plotsinec.m}
\end{solution}
\part Extra plot Funktion.
\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 Entwickle ein Programm, das einen 1-D random walk
simuliert. Das Programm soll folgendes leisten:
\begin{itemize}
\item Jede Simulation soll solange laufen, bis eine Abweichung vom
Startwert von $\pm$ 50 erreicht ist.
\item Es soll m\"oglich sein, die Wahrscheinlichkeit f\"ur eine der
beiden Richtungen zu variieren. Variiere im Bereich von 0.5 bis 0.9.
\end{itemize}
\begin{parts}
\part \"Uberlege Dir ein geeignetes ``Programmlayout'' aus
Funktionen und Skripten.
\begin{solution}
One function that computes one realisation of a random walk.
Scripts for plotting and analysis.
\end{solution}
\part Implementiere die L\"osung.
\begin{solution}
\lstinputlisting{randomwalkthresh.m}
\lstinputlisting{randomwalkscriptb.m}
\end{solution}
\part Simuliere 30 Realisationen des random walk pro
Wahrscheinlichkeit.
\part Es sollen die Positionen als Funktion der Schrittanzahl
geplottet werden. Erstelle einen Plot mit den je 30
Wiederholungen pro Wahrscheinlichkeitsstufe.
\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}