%Simulate error in magnitude due to error in flux measurements
% mag = -2.5*log10(f/F) where
%f is the spectral flux density
%F is the "zero point" flux density (a constant)
%Due to noise in detectors,etc the quantity f has
%errors. That is f=<f> +/- df (here <f> means mean value of f and df is the
%noise)
%We assume that noise is Gaussian with zero mean (mu=0) and sigma


However, the first term is nothing but the mean magnitue, say "<mag>" The second term is the error in magnitude. What is plotted below is the sum of the first and second term.

    n=10000;    %number of variates
meanmag=18; %we set "mag" to 18

rms=[0.01 0.03 0.1 0.3];    %redo the simulations for several values of sigma
m=numel(rms);

for j=1:m

figure(j)
sigma=rms(j);

OutFile=['MagError' num2str(sigma) '.pdf'];

x=normrnd(0,sigma,1,n);
mag=meanmag-2.5*log10(max((1+x),eps));  %looks complicated.
%what is happening here?
%eps is a small value in
%MATLAB

histogram(mag);
xlim([meanmag-5*sigma meanmag+10*sigma]);
str=sprintf('meanmag:%3.0f   sigma:%4.2f',meanmag,sigma);
legend(str);
title('Histogram: mag$-2.5\log10(1+x)$','Interpreter','LaTeX')

print(OutFile,'-dpdf');

end