% draw random numbers: n = 100; mu = 3.0; sigma =2.0; x = randn(n,1)*sigma+mu; fprintf('standard deviation of the data is %.2f\n', std(x)) fprintf(' mean of the data is %.2f\n', mean(x)) % mean as parameter: pmus = 2.0:0.01:4.0; % matrix with the probabilities for each x and pmus: lms = zeros(length(x), length(pmus)); for i=1:length(pmus) pmu = pmus(i); p = exp(-0.5*((x-pmu)/sigma).^2.0)/sqrt(2.0*pi)/sigma; lms(:,i) = p; end lm = prod(lms, 1); % likelihood loglm = sum(log(lms), 1); % log likelihood % position of maxima: maxlm = max(lm); % height of the maximum pmumaxlm = pmus(lm==maxlm); % pmu where lm is at maximum pmumaxloglm = pmus(loglm==max(loglm)); % same for loglm in one line fprintf(' maximum of likelihood is at %.2f\n', pmumaxlm) fprintf(' maximum of log-likelihood is at %.2f\n', pmumaxloglm) % plot likelihood of mean: subplot(1, 2, 1); plot(pmus, lm); xlabel('mean') ylabel('likelihood') subplot(1, 2, 2); plot(pmus, loglm); xlabel('mean') ylabel('log likelihood')