translated statistics exercise 01

This commit is contained in:
Jan Benda 2017-11-13 23:44:53 +01:00
parent a507333cfb
commit f71ff1d3c8
4 changed files with 308 additions and 88 deletions

View File

@ -0,0 +1,224 @@
\documentclass[12pt,a4paper,pdftex]{exam}
\usepackage[german]{babel}
\usepackage{pslatex}
\usepackage[mediumspace,mediumqspace,Gray]{SIunits} % \ohm, \micro
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}
%%%%% layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
\pagestyle{headandfoot}
\ifprintanswers
\newcommand{\stitle}{: L\"osungen}
\else
\newcommand{\stitle}{}
\fi
\header{{\bfseries\large \"Ubung 6\stitle}}{{\bfseries\large Statistik}}{{\bfseries\large 22. November, 2016}}
\firstpagefooter{Prof. Dr. Jan Benda}{Phone: 29 74573}{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
}
%%%%% math stuff: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{bm}
\usepackage{dsfont}
\newcommand{\naZ}{\mathds{N}}
\newcommand{\gaZ}{\mathds{Z}}
\newcommand{\raZ}{\mathds{Q}}
\newcommand{\reZ}{\mathds{R}}
\newcommand{\reZp}{\mathds{R^+}}
\newcommand{\reZpN}{\mathds{R^+_0}}
\newcommand{\koZ}{\mathds{C}}
%%%%% page breaks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\continue}{\ifprintanswers%
\else
\vfill\hspace*{\fill}$\rightarrow$\newpage%
\fi}
\newcommand{\continuepage}{\ifprintanswers%
\newpage
\else
\vfill\hspace*{\fill}$\rightarrow$\newpage%
\fi}
\newcommand{\newsolutionpage}{\ifprintanswers%
\newpage%
\else
\fi}
%%%%% new commands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\qt}[1]{\textbf{#1}\\}
\newcommand{\pref}[1]{(\ref{#1})}
\newcommand{\extra}{--- Zusatzaufgabe ---\ \mbox{}}
\newcommand{\code}[1]{\texttt{#1}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\input{instructions}
\ifprintanswers%
\else
\begin{itemize}
\item \"Uberzeuge dich von jeder einzelnen Zeile deines Codes, dass
sie auch wirklich das macht, was sie machen soll! Teste dies mit
kleinen Beispielen direkt in der Kommandozeile.
\item Versuche die L\"osungen der Aufgaben m\"oglichst in
sinnvolle kleine Funktionen herunterzubrechen.
Sobald etwas \"ahnliches mehr als einmal berechnet werden soll,
lohnt es sich eine Funktion daraus zu schreiben!
\item Teste rechenintensive \code{for} Schleifen, Vektoren, Matrizen
zuerst mit einer kleinen Anzahl von Wiederholungen oder kleiner
Gr\"o{\ss}e, und benutze erst am Ende, wenn alles \"uberpr\"uft
ist, eine gro{\ss}e Anzahl von Wiederholungen oder Elementen, um eine gute
Statistik zu bekommen.
\item Benutze die Hilfsfunktion von \code{matlab} (\code{help
command} oder \code{doc command}) und das Internet, um
herauszufinden, wie bestimmte \code{matlab} Funktionen zu verwenden
sind und was f\"ur M\"oglichkeiten sie bieten.
Auch zu inhaltlichen Konzepten bietet das Internet oft viele
Antworten!
\item Die L\"osung bitte als zip-Archiv mit dem Namen
``probabilities\_\{nachname\}\_\{vorname\}.zip'' auf ILIAS hochladen.
\end{itemize}
\fi
\begin{questions}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \textbf{Lies im Skript das Kapitel 3 ``Programmierstil''!}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \qt{Wahrscheinlichkeiten eines W\"urfels I}
Der Computer kann mit W\"urfeln w\"urfeln die mehr als 6 Seiten haben!
\begin{parts}
\part Simuliere 10000 W\"urfe mit einem W\"urfel mit acht Seiten
durch Erzeugung von ganzzahligen Zufallszahlen mit den Augenzahlen
$x_i = 1, 2, \ldots 8$ .
\part Berechne die Wahrscheinlichkeit $P(5)$ des Auftretens der
Augenzahl f\"unf durch Bestimmung der Anzahl der F\"unfen im
Datensatz.
Entspricht das Ergebnis deiner Erwartung?
\"Uberpr\"ufe auch die Wahrscheinlichkeit $P(x_i)$ der anderen
Zahlen.
Ist das ein fairer W\"urfel?
\part Speicher die berechneten Wahrscheinlichkeiten $P(x_i)$ f\"ur
das Auftreten der gew\"urfelten Zahlen in einem Vektor und benutze
die \code{bar()} Funktion, um diese Wahrscheinlichkeiten als
Funktion der Augenzahl zu plotten.
\part Erstelle in einem weiterem Plot ein entsprechendes normiertes Histogramm
mit Hilfe der \code{hist()} und \code{bar()} Funktionen.
\part \extra Wie k\"onnte man einen gezinkten sechsseitigen W\"urfel
simulieren, bei dem die sechs dreimal so h\"aufig wie die anderen
Zahlen gew\"urfelt wird?
Fertige von diesem W\"urfel ein normiertes Histogram aus 10000
W\"urfen an.
\end{parts}
\begin{solution}
\lstinputlisting{rollthedie.m}
\lstinputlisting{diehist.m}
\lstinputlisting{die1.m}
\includegraphics[width=1\textwidth]{die1}
\end{solution}
\continue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \qt{Wahrscheinlichkeiten eines W\"urfels II}
Wir werten nun das Verhalten mehrerer W\"urfel aus.
\begin{parts}
\part Simuliere 20 W\"urfel, von denen jeder 100 mal geworfen wird
(jeder W\"urfel wird mit dem gleichen Zufallsgenerator simuliert).
\part Berechne aus diesem Datensatz f\"ur jeden W\"urfel ein normiertes Histogramm.
\part Bestimme den Mittelwert und die Standardabweichung f\"ur jede
Augenzahl gemittelt \"uber die W\"urfel.
\part Stelle das Ergebnis in einem S\"aulenplot mit Fehlerbalken dar
(\code{bar()} mit \code{errorbar()} Funktionen).
\end{parts}
\begin{solution}
\lstinputlisting{die2.m}
\includegraphics[width=0.5\textwidth]{die2}
\end{solution}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \qt{Histogramm der Normalverteilung}
\vspace{-3ex}
\begin{parts}
\part Erzeuge einen Datensatz $X = (x_1, x_2, ... x_n)$ aus
$n=10000$ normalverteilten Zufallszahlen mit Mittelwert $\mu=0$ und
Standardabweichung $\sigma=1$ (\code{randn()} Funktion).
\part Berechne aus diesem Datensatz die Wahrscheinlichkeit $P(0\le
x<0.5)$.
\part Was passiert mit der Wahrscheinlichkeit eine Zahl in einem
bestimmten Interval zu ziehen (z.B. $P(0\le x<a)$), wenn dieses
Intervall immer kleiner wird ($a \to 0$)?
Schreibe ein Programm, das dies illustriert indem es $P(0\le x<a)$
als Funktion von $a$ plottet ($0 \le a \le 4$).
\part \label{manualpdf} Bestimme und plotte die
Wahrscheinlichkeitsdichte dieser Zufallszahlen (das normierte
Histogramm). Lege dazu zun\"achst die Positionen der bins (Breite
von 0.5) in einem Vektor fest. Bestimme dann mit einer \code{for}
Schleife f\"ur jedes dieser bins die Anzahl der Datenelemente, die
in diese bin fallen. Normiere anschliessend das so erhaltene
Histogram und plotte es mit der \code{bar()} Funktion.
\part \label{gaussianpdf} Plotte zum Vergleich in den gleichen Plot
die Normalverteilung
\[ p_g(x) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2} \; . \]
\part Plotte die Wahrscheinlichkeitsdichte der Daten wie in
(\ref{manualpdf}) und (\ref{gaussianpdf}), aber mit Hilfe der
\code{hist()} Funktion.
\end{parts}
\begin{solution}
\lstinputlisting{normhist.m}
\includegraphics[width=1\textwidth]{normhist}
\end{solution}
\end{questions}
\end{document}

View File

@ -1,6 +1,6 @@
\documentclass[12pt,a4paper,pdftex]{exam}
\usepackage[german]{babel}
\usepackage[english]{babel}
\usepackage{pslatex}
\usepackage[mediumspace,mediumqspace,Gray]{SIunits} % \ohm, \micro
\usepackage{xcolor}
@ -11,11 +11,11 @@
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
\pagestyle{headandfoot}
\ifprintanswers
\newcommand{\stitle}{: L\"osungen}
\newcommand{\stitle}{: Solutions}
\else
\newcommand{\stitle}{}
\fi
\header{{\bfseries\large \"Ubung 6\stitle}}{{\bfseries\large Statistik}}{{\bfseries\large 22. November, 2016}}
\header{{\bfseries\large Exercise 6\stitle}}{{\bfseries\large Statistics}}{{\bfseries\large November 14th, 2017}}
\firstpagefooter{Prof. Dr. Jan Benda}{Phone: 29 74573}{Email:
jan.benda@uni-tuebingen.de}
\runningfooter{}{\thepage}{}
@ -88,26 +88,23 @@ jan.benda@uni-tuebingen.de}
\else
\begin{itemize}
\item \"Uberzeuge dich von jeder einzelnen Zeile deines Codes, dass
sie auch wirklich das macht, was sie machen soll! Teste dies mit
kleinen Beispielen direkt in der Kommandozeile.
\item Versuche die L\"osungen der Aufgaben m\"oglichst in
sinnvolle kleine Funktionen herunterzubrechen.
Sobald etwas \"ahnliches mehr als einmal berechnet werden soll,
lohnt es sich eine Funktion daraus zu schreiben!
\item Teste rechenintensive \code{for} Schleifen, Vektoren, Matrizen
zuerst mit einer kleinen Anzahl von Wiederholungen oder kleiner
Gr\"o{\ss}e, und benutze erst am Ende, wenn alles \"uberpr\"uft
ist, eine gro{\ss}e Anzahl von Wiederholungen oder Elementen, um eine gute
Statistik zu bekommen.
\item Benutze die Hilfsfunktion von \code{matlab} (\code{help
command} oder \code{doc command}) und das Internet, um
herauszufinden, wie bestimmte \code{matlab} Funktionen zu verwenden
sind und was f\"ur M\"oglichkeiten sie bieten.
Auch zu inhaltlichen Konzepten bietet das Internet oft viele
Antworten!
\item Die L\"osung bitte als zip-Archiv mit dem Namen
``probabilities\_\{nachname\}\_\{vorname\}.zip'' auf ILIAS hochladen.
\item Convince yourself that each single line of your code really does
what it should do! Test it with small examples directly in the
command line.
\item Always try to break down your solution into small and meaningful
functions. As soon something similar is computed more than once you
should definitely put it into a function.
\item Initially test computationally expensive \code{for} loops, vectors,
matrices, etc. with small numbers of repetitions and/or
sizes. Once it is working use large repetitions and/or sizes for
getting a good statistics.
\item Use the help functions of \code{matlab} (\code{help command} or
\code{doc command}) and the internet to figure out how specific
\code{matlab} functions are used and what features they offer. In
addition, the internet offers a lot of material and suggestions for
any question you have regarding your code !
\item Please upload your solution to the exercises to ILIAS as a zip-archive with the name
``probabilities\_\{last name\}\_\{first name\}.zip''.
\end{itemize}
\fi
@ -116,41 +113,35 @@ jan.benda@uni-tuebingen.de}
\begin{questions}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \textbf{Lies im Skript das Kapitel 3 ``Programmierstil''!}
\question \textbf{Read chapter 4 of the script on ``programming style''!}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \qt{Wahrscheinlichkeiten eines W\"urfels I}
Der Computer kann mit W\"urfeln w\"urfeln die mehr als 6 Seiten haben!
\question \qt{Probabilities of a die I}
The computer can roll dice with more than 6 faces!
\begin{parts}
\part Simuliere 10000 W\"urfe mit einem W\"urfel mit acht Seiten
durch Erzeugung von ganzzahligen Zufallszahlen mit den Augenzahlen
$x_i = 1, 2, \ldots 8$ .
\part Simulate 10000 times rolling a die with eight faces by
generating integer random numbers $x_i = 1, 2, \ldots 8$ .
\part Berechne die Wahrscheinlichkeit $P(5)$ des Auftretens der
Augenzahl f\"unf durch Bestimmung der Anzahl der F\"unfen im
Datensatz.
\part Compute the probability $P(5)$ of getting a five by counting the number of fives
occurring in the data set.
Entspricht das Ergebnis deiner Erwartung?
Does the result fit to your expectation?
\"Uberpr\"ufe auch die Wahrscheinlichkeit $P(x_i)$ der anderen
Zahlen.
Check the probabilities $P(x_i)$ of the other numbers.
Ist das ein fairer W\"urfel?
Is the die a fair die?
\part Speicher die berechneten Wahrscheinlichkeiten $P(x_i)$ f\"ur
das Auftreten der gew\"urfelten Zahlen in einem Vektor und benutze
die \code{bar()} Funktion, um diese Wahrscheinlichkeiten als
Funktion der Augenzahl zu plotten.
\part Store the computed probabilities $P(x_i)$ in a vector and use
the \code{bar()} function for plotting the probabilities as a
function of the corresponding face values.
\part Erstelle in einem weiterem Plot ein entsprechendes normiertes Histogramm
mit Hilfe der \code{hist()} und \code{bar()} Funktionen.
\part Compute a normalized histogram of the face values by means of
the \code{hist()} and \code{bar()} functions.
\part \extra Wie k\"onnte man einen gezinkten sechsseitigen W\"urfel
simulieren, bei dem die sechs dreimal so h\"aufig wie die anderen
Zahlen gew\"urfelt wird?
\part \extra Simulate a loaded die with the six showing up
three-times as often as the other numbers.
Fertige von diesem W\"urfel ein normiertes Histogram aus 10000
W\"urfen an.
Compute a normalized histogram of the face values from rolling the loaded die 10000 times.
\end{parts}
\begin{solution}
\lstinputlisting{rollthedie.m}
@ -162,16 +153,16 @@ Der Computer kann mit W\"urfeln w\"urfeln die mehr als 6 Seiten haben!
\continue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \qt{Wahrscheinlichkeiten eines W\"urfels II}
Wir werten nun das Verhalten mehrerer W\"urfel aus.
\question \qt{Probabilities of a die II}
Now we analyze several dice at once.
\begin{parts}
\part Simuliere 20 W\"urfel, von denen jeder 100 mal geworfen wird
(jeder W\"urfel wird mit dem gleichen Zufallsgenerator simuliert).
\part Berechne aus diesem Datensatz f\"ur jeden W\"urfel ein normiertes Histogramm.
\part Bestimme den Mittelwert und die Standardabweichung f\"ur jede
Augenzahl gemittelt \"uber die W\"urfel.
\part Stelle das Ergebnis in einem S\"aulenplot mit Fehlerbalken dar
(\code{bar()} mit \code{errorbar()} Funktionen).
\part Simulate 20 dice, each of which is rolled 100 times
(each die is simulated with the same random number generator).
\part Compute for this data set for each die a normalized histogram.
\part Calculate the mean and the standard deviation for each face
value averaged over the dice.
\part Visualize the result in a bar plot with error bars
(\code{bar()} and \code{errorbar()} functions).
\end{parts}
\begin{solution}
\lstinputlisting{die2.m}
@ -180,38 +171,37 @@ Wir werten nun das Verhalten mehrerer W\"urfel aus.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\question \qt{Histogramm der Normalverteilung}
\question \qt{Histogram of the normal distribution}
\vspace{-3ex}
\begin{parts}
\part Erzeuge einen Datensatz $X = (x_1, x_2, ... x_n)$ aus
$n=10000$ normalverteilten Zufallszahlen mit Mittelwert $\mu=0$ und
Standardabweichung $\sigma=1$ (\code{randn()} Funktion).
\part Berechne aus diesem Datensatz die Wahrscheinlichkeit $P(0\le
x<0.5)$.
\part Was passiert mit der Wahrscheinlichkeit eine Zahl in einem
bestimmten Interval zu ziehen (z.B. $P(0\le x<a)$), wenn dieses
Intervall immer kleiner wird ($a \to 0$)?
Schreibe ein Programm, das dies illustriert indem es $P(0\le x<a)$
als Funktion von $a$ plottet ($0 \ge a \ge 4$).
\part \label{manualpdf} Bestimme und plotte die
Wahrscheinlichkeitsdichte dieser Zufallszahlen (das normierte
Histogramm). Lege dazu zun\"achst die Positionen der bins (Breite
von 0.5) in einem Vektor fest. Bestimme dann mit einer \code{for}
Schleife f\"ur jedes dieser bins die Anzahl der Datenelemente, die
in diese bin fallen. Normiere anschliessend das so erhaltene
Histogram und plotte es mit der \code{bar()} Funktion.
\part \label{gaussianpdf} Plotte zum Vergleich in den gleichen Plot
die Normalverteilung
\[ p_g(x) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2} \; . \]
\part Plotte die Wahrscheinlichkeitsdichte der Daten wie in
(\ref{manualpdf}) und (\ref{gaussianpdf}), aber mit Hilfe der
\code{hist()} Funktion.
\part Generate a data set $X = (x_1, x_2, ... x_n)$ of
$n=10000$ normally distributed random numbers with mean $\mu=0$ and
standard deviation $\sigma=1$ (\code{randn()} function).
\part Compute from this data set the probability $P(0\le x<0.5)$.
\part What happens to the probability of drawing a number from a
specific range (z.B. $P(0\le x<a)$), if this range gets smaller and
smaller, i.e. $a \to 0$?
Write a script that illustrates this by plotting $P(0\le x<a)$
as a function of $a$ (use $0 \le a \le 4$).
\part \label{manualpdf} Compute and plot the probability density of
the data set (the normalized histogram). First, define the positions
of the bins (width of 0.5) in a vector. Count in a \code{for} loop
for each bin die number of data values falling into the
bin. Finally, normalize the resulting histogram and plot it using
the \code{bar()} function.
\part \label{gaussianpdf} Draw into the same plot the normal
distribution
\[ p_g(x) = \frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2} \]
for a comparison.
\part Plot the probability density as in (\ref{manualpdf}) and
(\ref{gaussianpdf}), but this time by means of the \code{hist()} and
\code{bar()} functions.
\end{parts}
\begin{solution}
\lstinputlisting{normhist.m}

View File

@ -0,0 +1,6 @@
\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}

View File

@ -1,6 +1,6 @@
\vspace*{-6.5ex}
\begin{center}
\textbf{\Large Einf\"uhrung in die wissenschaftliche Datenverarbeitung}\\[1ex]
\textbf{\Large Introduction to scientific computing}\\[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} \\
Neuroethology lab \hfill --- \hfill Institute for Neurobiology \hfill --- \hfill \includegraphics[width=0.28\textwidth]{UT_WBMW_Black_RGB} \\
\end{center}