proc optmodel; set OBS; num x {OBS}; read data sashelp.iris into OBS=[_N_] x=SepalWidth; num n = card(OBS); var Mu init 0; var Sigma >= 0 init 2; impvar C {i in OBS} = x[i] - Mu; max LogLikelihood = -n * log(Sigma) - n/2 * log(2*constant('PI')) - 1/2/Sigma**2 * sum {i in OBS} C[i]**2; solve; print Mu Sigma; print LogLikelihood; max LogLikelihood2 = sum {i in OBS} log(PDF('normal',x[i],Mu,Sigma)); solve; print Mu Sigma; print LogLikelihood2; num optMu = (sum {i in OBS} x[i]) / n; num optSigma = sqrt(sum {i in OBS} (x[i] - optMu)**2 / n); print optMu optSigma; quit;