%% Speichern der gegebenen Daten, gerne auch Parameter und Stichprobengröße variieren
d_soll = 5.1;
sigma = .08;
n = 10;
d_bar = 5.14;
alpha = 2*[.15 .1 .05 .025 .005];

%% Neue Stichprobe generieren (dafür in den nächsten beiden Zeilen das % löschen)
% d = randn(n,1)*sigma + d_soll;
% d_bar = mean(d);

%% Definieren der Verteilung und der beiden Grenzen des Konfidenzintervalls
z = @(alpha) norminv(1 - alpha/2);
G_u  = @(alpha) d_bar - sigma/sqrt(n) * z(alpha);
G_o  = @(alpha) d_bar + sigma/sqrt(n) * z(alpha);

%% Verlauf der Grenzen für verschiedene Konfidenzniveaus plotten
alpha_range = linspace(0,1,101);
figure(1); clf
plot(alpha_range, G_u(alpha_range), 'b')
hold on
plot(alpha_range, G_o(alpha_range), 'b')
plot(alpha_range, d_soll*ones(size(alpha_range)), 'r--')
xlabel('alpha')
ylabel('Obere und untere Schätzfunktion')

%% Gegebene Konfidenzniveaus untersuchen mit Tabelle und Plot
fprintf('\n1-alpha\t| G_u\t G_o\t G_o - G_u\n==================================\n')
for row = 1:length(alpha)
	fprintf('%.2f\t| %.3f\t %.3f\t %.3f\n', 1 - alpha(row), G_u(alpha(row)), G_o(alpha(row)), G_o(alpha(row)) - G_u(alpha(row)))
end

figure(2), clf
hold on
for idx = 1:length(alpha)
	plot([alpha(idx) alpha(idx)], [G_u(alpha(idx)) G_o(alpha(idx))], '*-b', 'LineWidth', 2)
end
plot([0, .35], [d_soll d_soll], 'r--')
xlabel('alpha')
ylabel('Konfidenzintervalle')
