modified statistic exercises

This commit is contained in:
Jan Benda 2016-11-22 14:40:16 +01:00
parent 86ba1bc0fe
commit 8af349e9cb
12 changed files with 238 additions and 148 deletions

View File

@ -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.

View File

@ -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;

View File

@ -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

View File

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

View File

@ -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!\\

View File

@ -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

View 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);

Binary file not shown.

View File

@ -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.

View File

@ -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