# Daten einlesen
z= load -force "bioData.txt";

# Modellierung Normalverteilung:
#  schaetze mu und sigma
mu = mean(z)
sigma=var(z)    # die Funktion var ist nicht
                # erwartungstreu
                # => Ergebnis noch skalieren
N = length(z);
v = (N-1)/N * sigma

# Modellierung Exponential:
#  schaetze lambda
lambda=1/mu

# Maximum der Likelihood der Exponentialfunktion
disp("Wert der Likelihood fuer Exponentialvert.:");
log(lambda)*N - lambda*sum(z)

# Maximum der Likelihood fure Gauss
disp("Wert der Likelihood fuer Gauss:");
-N/2*log(2*pi) - N*log(sigma)-1/2*1/sigma^2 * sumsq(z.-mu)

# Plotte die Likelihood fuer die Exponentialfunktion:
#  Wertebereich fuer lambda festlegen (ums Maximum herum)
vieleLambdas=[0.1:0.005:2];
#  Likelihood fuer alle Werte ausrechnen
lh_vLambdas=log(vieleLambdas)*N - vieleLambdas*sum(z);
#  Plotten
figure(0);
plot(vieleLambdas,lh_vLambdas);

# Plotte die Likelihood fuer die Gaussfunktion:
#  Wertebereich fuer mu und sigma festlegen (um Maxima herum)
muMin = 1.5;
muMax = 3;
muStep = 0.1;

sigMin = 1.5;
sigMax = 5.5;
sigStep = 0.1;

#  Likelihood berechnen fuer alle Wertepaare
vieleMus= [muMin:muStep:muMax];
vieleSigmas= [sigMin:sigStep:sigMax];
vMus= [];
for i=1:length(vieleMus)
	vMus= [vMus ,sumsq(z.-vieleMus(i))];
end

#  3D-Plot
[m,s]=meshgrid(vieleMus,vieleSigmas);

zz = -N*log(s) .- (N/2*log(2*pi));
zz = zz .- (1/2) ./ s.^2 .* (vMus' * ones(1,length(s)))';

figure(1);
mesh(m,s,zz);
