modified statistic exercises
This commit is contained in:
parent
86ba1bc0fe
commit
8af349e9cb
@ -1,39 +1,40 @@
|
||||
n = 10000;
|
||||
|
||||
%% (a) simulate n times rolling a die:
|
||||
x = rollthedie( n );
|
||||
maxeyes = 8;
|
||||
x = rollthedie(n, maxeyes);
|
||||
|
||||
%% (b) probability P(3):
|
||||
P3 = sum(x == 3)/length(x);
|
||||
fprintf( 'P(3)=%.3f, expected is %.3f\n', P3, 1/6 );
|
||||
%% (b) probability P(5):
|
||||
P5 = sum(x == 5)/length(x);
|
||||
fprintf('P(5)=%.3f, expected is %.3f\n', P5, 1/maxeyes);
|
||||
|
||||
for i =1:6
|
||||
for i =1:maxeyes
|
||||
P = sum(x == i)/length(x);
|
||||
fprintf( 'P(%d)=%.3f, expected is %.3f\n', i, P, 1/6 );
|
||||
fprintf('P(%d)=%.3f, expected is %.3f\n', i, P, 1/maxeyes);
|
||||
end
|
||||
|
||||
%% (c) P(i)
|
||||
P = zeros(1, 6);
|
||||
for i =1:6
|
||||
P = zeros(1, maxeyes);
|
||||
for i =1:maxeyes
|
||||
P(i) = sum(x == i)/length(x);
|
||||
end
|
||||
subplot( 1, 2, 1 )
|
||||
plot( [0 7], [1/6 1/6], 'r', 'linewidth', 3 )
|
||||
subplot(1, 2, 1)
|
||||
plot([0 maxeyes+1], [1/maxeyes 1/maxeyes], 'r', 'linewidth', 3)
|
||||
hold on
|
||||
bar( P );
|
||||
bar(P);
|
||||
hold off
|
||||
set(gca, 'XTick', 1:6 );
|
||||
xlim( [ 0 7 ] );
|
||||
set(gca, 'XTick', 1:maxeyes);
|
||||
xlim([0 maxeyes+1]);
|
||||
xlabel('Eyes');
|
||||
ylabel('Probability');
|
||||
|
||||
%% (d) histogram of x
|
||||
subplot( 1, 2, 2 );
|
||||
diehist( x );
|
||||
subplot(1, 2, 2);
|
||||
diehist(x);
|
||||
|
||||
%% (e) loaded die
|
||||
% eye 1 to 5 have P=1/8, eye 6 has P = 3/8 !
|
||||
x = randi( 8, 1, n ); % random numbers from 1 to 8
|
||||
x(x>6) = 6; % set numbers 7 and 8 to 6
|
||||
diehist( x );
|
||||
savefigpdf(gcf, 'die1.pdf', 12, 5)
|
||||
x = randi(8, 1, n); % random numbers from 1 to 8
|
||||
x(x>6) = 6; % set numbers 7 and 8 to 6
|
||||
diehist(x);
|
||||
savefigpdf(gcf, 'die1.pdf', 12, 5)
|
||||
|
Binary file not shown.
@ -3,23 +3,25 @@ n = 100;
|
||||
P = zeros(ndies, 6);
|
||||
for i = 1:ndies
|
||||
% (a) roll a single die:
|
||||
x = rollthedie( n );
|
||||
x = rollthedie(n, 6);
|
||||
% (b) compute normalized histogram:
|
||||
[h,b] = hist( x, 1:6 );
|
||||
[h,b] = hist(x, 1:6);
|
||||
h = h/sum(h); % normalization
|
||||
% (c) store the histograms:
|
||||
P(i,:) = h;
|
||||
end
|
||||
|
||||
% (c) mean and standard deviation for each eye:
|
||||
m = mean(P, 1);
|
||||
s = std(P, 1);
|
||||
|
||||
% (d) plot results:
|
||||
bar(m, 'facecolor', [0.8 0 0]); % darker red
|
||||
hold on;
|
||||
errorbar(m, s, '.k', 'linewidth', 2 ); % k is black
|
||||
set(gca, 'XTick', 1:6 );
|
||||
xlim( [ 0, 7 ] );
|
||||
ylim( [ 0, 0.25])
|
||||
errorbar(m, s, '.k', 'linewidth', 2); % k is black
|
||||
set(gca, 'XTick', 1:6);
|
||||
xlim([ 0, 7 ]);
|
||||
ylim([ 0, 0.25])
|
||||
xlabel('Eyes');
|
||||
ylabel('Probability');
|
||||
hold off;
|
||||
|
@ -1,14 +1,15 @@
|
||||
function diehist( x )
|
||||
% plots a normalized histogram of random numbers x drawn from rolling a
|
||||
% die.
|
||||
[h,b] = hist( x, 1:6 );
|
||||
h = h/sum(h); % normalization
|
||||
plot( [0 7], [1/6 1/6], 'r', 'linewidth', 3 )
|
||||
hold on
|
||||
bar( b, h );
|
||||
hold off
|
||||
set(gca, 'XTick', 1:6 );
|
||||
xlim( [ 0, 7 ] );
|
||||
xlabel('Eyes');
|
||||
ylabel('Probability');
|
||||
function diehist(x)
|
||||
% plots a normalized histogram of integer random numbers x
|
||||
% drawn from rolling a die.
|
||||
maxx = max(x);
|
||||
[h,b] = hist(x, 1:maxx);
|
||||
h = h/sum(h); % normalization
|
||||
plot([0 maxx+1], [1/maxx 1/maxx], 'r', 'linewidth', 3)
|
||||
hold on
|
||||
bar(b, h);
|
||||
hold off
|
||||
set(gca, 'XTick', 1:maxx);
|
||||
xlim([ 0, maxx+1]);
|
||||
xlabel('Eyes');
|
||||
ylabel('Probability');
|
||||
end
|
||||
|
@ -1,4 +1,4 @@
|
||||
\documentclass[12pt,a4paper,pdftex]{exam}
|
||||
\documentclass[12pt,a4paper,pdftex]{exam}
|
||||
|
||||
\usepackage[german]{babel}
|
||||
\usepackage{pslatex}
|
||||
@ -84,32 +84,73 @@ jan.benda@uni-tuebingen.de}
|
||||
|
||||
\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 \qt{Wahrscheinlichkeiten eines W\"urfels I}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\question \textbf{Lies im Skript das Kapitel 3 ``Programmierstil''!}
|
||||
|
||||
Der Computer kann auch als W\"urfel verwendet werden!
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\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 dem W\"urfel durch Erzeugung von
|
||||
ganzzahligen Zufallszahlen mit den Augenzahlen $x_i = 1, 2, \ldots 6$ .
|
||||
\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.
|
||||
|
||||
\part Berechne die Wahrscheinlichkeit $P(3)$
|
||||
des Auftretens der Augenzahl drei durch Bestimmung der Anzahl der Dreien 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 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 der \code{hist} Funktion.
|
||||
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?
|
||||
|
||||
\part \extra Wie k\"onnte man einen gezinkten W\"urfel simulieren, bei dem die sechs
|
||||
dreimal so h\"aufig wie die anderen Zahlen gew\"urfelt wird?\\
|
||||
Fertige von diesem W\"urfel ein Histogram aus 10000 W\"urfen an.
|
||||
Fertige von diesem W\"urfel ein normiertes Histogram aus 10000
|
||||
W\"urfen an.
|
||||
\end{parts}
|
||||
\begin{solution}
|
||||
\lstinputlisting{rollthedie.m}
|
||||
@ -120,6 +161,7 @@ Der Computer kann auch als W\"urfel verwendet werden!
|
||||
|
||||
|
||||
\continue
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\question \qt{Wahrscheinlichkeiten eines W\"urfels II}
|
||||
Wir werten nun das Verhalten mehrerer W\"urfel aus.
|
||||
\begin{parts}
|
||||
@ -128,8 +170,8 @@ Wir werten nun das Verhalten mehrerer W\"urfel aus.
|
||||
\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 mit einem S\"aulenplot mit Fehlerbalken dar
|
||||
(\code{bar} mit \code{errorbar} Funktionen).
|
||||
\part Stelle das Ergebnis in einem S\"aulenplot mit Fehlerbalken dar
|
||||
(\code{bar()} mit \code{errorbar()} Funktionen).
|
||||
\end{parts}
|
||||
\begin{solution}
|
||||
\lstinputlisting{die2.m}
|
||||
@ -137,45 +179,43 @@ Wir werten nun das Verhalten mehrerer W\"urfel aus.
|
||||
\end{solution}
|
||||
|
||||
|
||||
\question \qt{Wahrscheinlichkeiten der Normalverteilung}
|
||||
Mit den folgenden Aufgaben wollen wir bestimmen, welcher Anteil eines
|
||||
normalverteilten Datensatzes in bestimmten Grenzen symmetrisch um den
|
||||
Mittelwert enthalten ist.
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\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$.
|
||||
\part \label{onesigma} Wieviele dieser Daten sind maximal eine Standardabweichung vom Mittelwert entfernt?\\
|
||||
D.h. wieviele Datenwerte $x_i$ haben den Wert $-\sigma < x_i < +\sigma$?\\
|
||||
Wie gro{\ss} ist also die Wahrscheinlichkeit $P_{\pm\sigma}$ einen
|
||||
Wert in diesem Interval zu erhalten?
|
||||
\part \label{probintegral} Berechne numerisch diese
|
||||
Wahrscheinlichkeit aus dem entsprechenden Integral
|
||||
\[ P_{\pm\sigma}=\int_{x=\mu-\sigma}^{x=\mu+\sigma} p_g(x) \, dx \]
|
||||
\"uber die Normalverteilung
|
||||
\[ p_g(x) =
|
||||
\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2} \; . \]
|
||||
\"Uberpr\"ufe zuerst, ob tats\"achlich
|
||||
\[ \int_{-\infty}^{+\infty} p_g(x) \, dx = 1 \; . \]
|
||||
Warum muss das so sein?
|
||||
\part Welcher Anteil der Daten ist in den Intervallen $\pm2\sigma$ sowie $\pm3\sigma$
|
||||
enthalten?
|
||||
\part \label{givenfraction} Finde heraus in welchem Interval symmetrisch um den Mittelwert
|
||||
50\,\%, 90\,\%, 95\,\% bzw. 99\,\% der Daten enhalten sind.
|
||||
\part Was passiert mit der Wahrscheinlichkeit eine Zahl in einem bestimmten Interval
|
||||
zu ziehen, wenn dieses Intervall immer kleiner wird?\\
|
||||
Schreibe ein Programm, das dies illustriert.\\
|
||||
Wie gro{\ss} ist die Wahrscheinlichkeit $P(x_i=0.1234)$?
|
||||
\part \extra Modifiziere den Code der Teilaufgaben \pref{onesigma}
|
||||
-- \pref{givenfraction} so, dass er f\"ur Datens\"atze mit
|
||||
beliebigen Mittelwerten und Standardabweichungen funktioniert.\\
|
||||
Teste den Code mit entsprechenden Zufallszahlen.\\
|
||||
Wie bekommt man mit \code{randn} Zufallszahlen mit beliebiger
|
||||
Standardabweichung und Mittelwerten?
|
||||
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.
|
||||
\end{parts}
|
||||
\begin{solution}
|
||||
\lstinputlisting{normprobs.m}
|
||||
\includegraphics[width=1\textwidth]{normprobs}
|
||||
\lstinputlisting{normhist.m}
|
||||
\includegraphics[width=1\textwidth]{normhist}
|
||||
\end{solution}
|
||||
|
||||
|
||||
|
@ -87,6 +87,46 @@ jan.benda@uni-tuebingen.de}
|
||||
|
||||
\begin{questions}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\question \qt{Wahrscheinlichkeiten der Normalverteilung}
|
||||
Mit den folgenden Aufgaben wollen wir bestimmen, welcher Anteil eines
|
||||
normalverteilten Datensatzes in bestimmten Grenzen symmetrisch um den
|
||||
Mittelwert enthalten ist.
|
||||
\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 Bestimme und plotte die Wahrscheinlichkeitsdichte dieser Zufallszahlen (normiertes Histogramm).
|
||||
\part 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 \label{onesigma} Wieviele dieser Daten sind maximal eine Standardabweichung vom Mittelwert entfernt?\\
|
||||
D.h. wieviele Datenwerte $x_i$ haben den Wert $-\sigma < x_i < +\sigma$?\\
|
||||
Wie gro{\ss} ist also die Wahrscheinlichkeit $P_{\pm\sigma}$ einen
|
||||
Wert in diesem Interval zu erhalten?
|
||||
\part \label{probintegral} Berechne numerisch diese
|
||||
Wahrscheinlichkeit aus dem entsprechenden Integral
|
||||
\[ P_{\pm\sigma}=\int_{x=\mu-\sigma}^{x=\mu+\sigma} p_g(x) \, dx \]
|
||||
\"uber die Normalverteilung.
|
||||
\"Uberpr\"ufe zuerst, ob tats\"achlich
|
||||
\[ \int_{-\infty}^{+\infty} p_g(x) \, dx = 1 \; . \]
|
||||
Warum muss das so sein?
|
||||
\part Welcher Anteil der Daten ist in den Intervallen $\pm2\sigma$ sowie $\pm3\sigma$
|
||||
enthalten?
|
||||
\part \label{givenfraction} Finde heraus in welchem Interval symmetrisch um den Mittelwert
|
||||
50\,\%, 90\,\%, 95\,\% bzw. 99\,\% der Daten enhalten sind.
|
||||
\part \extra Modifiziere den Code der Teilaufgaben \pref{onesigma}
|
||||
-- \pref{givenfraction} so, dass er f\"ur Datens\"atze mit
|
||||
beliebigen Mittelwerten und Standardabweichungen funktioniert.\\
|
||||
Teste den Code mit entsprechenden Zufallszahlen.\\
|
||||
Wie bekommt man mit \code{randn()} Zufallszahlen mit beliebiger
|
||||
Standardabweichung und Mittelwerten?
|
||||
\end{parts}
|
||||
\begin{solution}
|
||||
\lstinputlisting{normprobs.m}
|
||||
\end{solution}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\question \qt{Zentraler Grenzwertsatz}
|
||||
Der Zentrale Grenzwertsatz besagt, dass die Summe von unabh\"angigen
|
||||
und identisch verteilten (i.i.d. = independent and identically
|
||||
@ -129,6 +169,7 @@ Den Zentralen Grenzwertsatz wollen wir uns im Folgenden veranschaulichen.
|
||||
\end{solution}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\question \qt{Random Walk}
|
||||
Im folgenden wollen wir einige Eigenschaften des Random Walks bestimmen.
|
||||
\begin{parts}
|
||||
@ -158,6 +199,7 @@ Im folgenden wollen wir einige Eigenschaften des Random Walks bestimmen.
|
||||
\end{solution}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\question \qt{\extra 2D Random Walk}
|
||||
Bisher hat sich unser Random Walker nur in einer Dimension bewegt
|
||||
(nur vorw\"arts oder r\"uckw\"arts). Er kann aber auch in mehreren Dimensionen laufen!\\
|
||||
|
@ -4,38 +4,3 @@
|
||||
{\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}
|
||||
|
||||
\ifprintanswers%
|
||||
\else
|
||||
|
||||
% Die folgenden Aufgaben dienen der Wiederholung, \"Ubung und
|
||||
% Selbstkontrolle und sollten eigenst\"andig bearbeitet und gel\"ost
|
||||
% werden. Die L\"osung soll in Form eines einzelnen Skriptes (m-files)
|
||||
% im ILIAS hochgeladen werden. Jede Aufgabe sollte in einer eigenen
|
||||
% ``Zelle'' gel\"ost sein. Die Zellen \textbf{m\"ussen} unabh\"angig
|
||||
% voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
|
||||
% ``variablen\_datentypen\_\{nachname\}.m'' benannt werden
|
||||
% (z.B. variablen\_datentypen\_mueller.m).
|
||||
|
||||
\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
|
||||
commando} oder \code{doc commando}) 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!
|
||||
\end{itemize}
|
||||
|
||||
\fi
|
||||
|
58
statistics/exercises/normhist.m
Normal file
58
statistics/exercises/normhist.m
Normal file
@ -0,0 +1,58 @@
|
||||
%% a) 1000 normal distributed random numbers:
|
||||
x = randn(1000, 1);
|
||||
|
||||
%% b) probability of 0<=x<0.5:
|
||||
n = sum(x>=0.0 & x<0.5);
|
||||
P = n/length(x);
|
||||
fprintf('probability 0<=x<0.5 is %g\n', P);
|
||||
|
||||
%% c) probability for decreasing intervals:
|
||||
upper = [0.0:0.01:4.0];
|
||||
P = zeros(length(upper), 1);
|
||||
for k=1:length(upper)
|
||||
P(k) = sum((x>=0) & (x<upper(k)))/length(x);
|
||||
end
|
||||
subplot(1, 2, 1);
|
||||
plot(upper, P, 'linewidth', 2);
|
||||
ylim([0 0.5]);
|
||||
xlabel('x_{upper}');
|
||||
ylabel('P(0<=x<x_{upper})');
|
||||
|
||||
%% d) histogram with for loop:
|
||||
x = randn(1000, 1);
|
||||
bw = 0.5;
|
||||
bins=[-5:bw:5];
|
||||
n = zeros(length(bins), 1);
|
||||
for k=1:length(bins)
|
||||
n(k) = sum((x>=bins(k)-bw/2) & (x<bins(k)+bw/2));
|
||||
end
|
||||
p = n/sum(n)/bw;
|
||||
subplot(1, 2, 2);
|
||||
bar(bins, p);
|
||||
|
||||
%% e) gaussian pdf:
|
||||
hold on;
|
||||
xx = [bins(1):0.01:bins(end)];
|
||||
gauss = exp(-0.5*xx.^2.0)/sqrt(2*pi);
|
||||
plot(xx, gauss, 'r', 'linewidth', 2);
|
||||
hold off;
|
||||
xlim([-5 5])
|
||||
xlabel('x');
|
||||
ylabel('p(x)');
|
||||
|
||||
%% f) hist
|
||||
x = randn(1000, 1);
|
||||
bw = 0.5;
|
||||
bins=[-5:bw:5];
|
||||
n = hist(x, bins);
|
||||
p = n/sum(n)/bw;
|
||||
subplot(1, 2, 2);
|
||||
bar(bins, p);
|
||||
hold on;
|
||||
plot(xx, gauss, 'r', 'linewidth', 2);
|
||||
hold off;
|
||||
xlim([-5 5])
|
||||
xlabel('x');
|
||||
ylabel('p(x)');
|
||||
|
||||
savefigpdf(gcf, 'normhist.pdf', 14, 6);
|
BIN
statistics/exercises/normhist.pdf
Normal file
BIN
statistics/exercises/normhist.pdf
Normal file
Binary file not shown.
@ -24,23 +24,3 @@ P = sum(pg((xx>=-2.0)&(xx<=2.0)))*dx;
|
||||
fprintf( 'Integral over the Gaussian pdf from -2 to 2 is %.4f\n', P );
|
||||
P = sum(pg((xx>=-3.0)&(xx<=3.0)))*dx;
|
||||
fprintf( 'Integral over the Gaussian pdf from -3 to 3 is %.4f\n\n', P );
|
||||
|
||||
%% (e) probability of small ranges
|
||||
nr = 50;
|
||||
xmax = 3.0
|
||||
xs = zeros(nr, 1); % size of integration interval
|
||||
Ps = zeros(nr, 1); % storage
|
||||
for i = 1:nr
|
||||
% upper limit goes from 4.0 down to 0.0:
|
||||
xupper = xmax*(nr-i)/nr;
|
||||
xs(i) = xupper;
|
||||
% integral from 0 to xupper:
|
||||
Ps(i) = sum(pg((xx>=0.0)&(xx<=xupper)))*dx;
|
||||
end
|
||||
plot( xs, Ps, 'linewidth', 3 )
|
||||
xlim([0 xmax])
|
||||
ylim([0 0.55])
|
||||
xlabel('Integration interval')
|
||||
ylabel('Probability')
|
||||
fprintf('The probability P(0.1234) = %.4f\n\n', sum(x == 0.1234)/length(x) );
|
||||
savefigpdf(gcf, 'normprobs.pdf', 12, 8);
|
||||
|
Binary file not shown.
@ -1,4 +1,5 @@
|
||||
function x = rollthedie( n )
|
||||
% return a vector with the result of rolling a die n times
|
||||
x = randi( [1, 6], n, 1 );
|
||||
function x = rollthedie(n, m)
|
||||
% return a vector with the result of rolling a die
|
||||
% with m eyes n times
|
||||
x = randi( [1, m], n, 1 );
|
||||
end
|
||||
|
Reference in New Issue
Block a user