N = 5e2; %Antall datapunkt
mu = 4;    %Middelverdi
sigma = 0.2; %Standardavvik

%Lag syntetiske data
X = randn(N, 1);
h=kstest(X) %Kolmogorov-Smirnov test
%         =1 hvis ikke normalfordelt

%Lag histogram med 100 søyler
M=100;
figure(1), histogram(X,M)

%Lagre verdiene fra histogrammet
H=histogram(X,M);
ndf=H.Values;
xhist=H.BinEdges(1:end-1)+H.BinWidth/2;

%Skaler og translater x-aksen og datasett til riktig m
x=sigma*xhist+mu;
X=sigma*X    +mu;

%Finn middelverdi og standardavvik av datasettet
mmu=mean(X);
msi=std(X);

%Finn totalt areal for søylene
area = sum(ndf.*(x(2)-x(1)));

%Plot normert histogram
figure(2), plot(x,ndf/area,'.')

%Sammenlikning med perfekt normalfordeling
pdf=exp(-(x-mu).^2/(2*sigma.^2))./...
    (sigma*sqrt(2*pi));
hold on;
plot(x,pdf,'r');
line([mmu mmu],[0 2.5],'Linestyle','-')
line([mmu-msi mmu-msi],[0 2.5],'Linestyle',':')
line([mmu+msi mmu+msi],[0 2.5],'Linestyle',':')
hold off

%Sorter datasettet i stigende rekkefølge
XX = sort(X);
CDF = (1:N)/(N+1);
med=median(XX);

%Plot kumulativ fordeling
figure(3), plot(XX,CDF,'k','LineWidth',5);

%Plot for normalfordeling
%Analytisk løsning for integralet av
%normalfordelingen
cumpdf=(1+erf((x-mu)/(sqrt(2)*sigma)))/2;
hold on;
plot(x,cumpdf,'r','LineWidth',2);
line([med med],[0 1],'Linestyle','-')
line([med-msi/2 med-msi/2],[0 1],'Linestyle',':')
line([med+msi/2 med+msi/2],[0 1],'Linestyle',':')
hold off