\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}