% Skript zur Lösung von Aufgabe 2 - Approximation der Binomialverteilung
clc, clear all
% Setze den 'random seed', um bei jedem Aufruf des Skripts diesselben Ergebnisse zu erhalten
rng(1);

%% ---------------------------------------------------------------
%% Teil a)
%% ---------------------------------------------------------------

% Spezifiziere Wertebereich für p
p_range = [0.02, 0.2, 0.5];
p_n = length(p_range);
n_max = 100;

% Erzeuge geeignete Wertebereiche für k und n.
% Der Einfachheit halber setzen wir Bino_n,p(k) = 1 für k > n
% n_range = ...
% k_range = ...
% [N,K] = meshgrid(n_range, k_range);


% Initialisiere figure für plots
figure(1)
for i = 1:p_n

	% Berechne exakte Wahrscheinlichkeiten mit der Funktion binocdf
	p = p_range(i);

	% With statistics toolbox
	% P_bino{i} = binocdf(K,N,p);
	% Without statistics toolbox
	% P_bino{i} =

	% Illustriere Wahrscheinlichkeiten
	subplot(1,p_n,i);
	% surf(...)
	title(sprintf('Exakte W.-keiten (p = %3.3f)',p))
	xlabel('n')
	ylabel('k')
end

%% ---------------------------------------------------------------
%% Teil b)
%% ---------------------------------------------------------------

figure(2)
for i = 1:length(p_range)

	% Berechne approximative Wahrscheinlichkeiten mit der Funktion myNormcdf
	p = p_range(i);
	
	% P_norm{i} = ...

	% Illustriere Wahrscheinlichkeiten
	subplot(1,p_n,i);
	% surf(...)
	title(sprintf('Appr. W.-keiten (Norm.-vert.) (p = %3.3f)',p))
	xlabel('n')
	ylabel('k')
end

%% ---------------------------------------------------------------
%% Teil c)
%% ---------------------------------------------------------------

figure(3)
for i = 1:length(p_range)

	% Berechne approximative Wahrscheinlichkeiten mit der Funktion myPoisscdf
	p = p_range(i);

	% P_poiss{i} = ...

	subplot(1, p_n, i);
	% surf(...)
	title(sprintf('Appr. W.-keiten (Poiss.-vert.) (p = %3.3f)',p))
	xlabel('n')
	ylabel('k')
end

%% ---------------------------------------------------------------
%% Darstellung der Abweichungen
%% ---------------------------------------------------------------

figure(4)

for i = 1:length(p_range)
	p = p_range(i);

	subplot(2, p_n, i);
	% ...
	title(sprintf('Abs. Abweichung zu Norm.-vert. (p = %3.3f)',p))
	xlabel('n')
	ylabel('k')

	subplot(2, p_n, i+p_n);
	% ...
	title(sprintf('Abs. Abweichung zu Poiss.-vert. (p = %3.3f)',p))
	xlabel('n')
	ylabel('k')
end
