replaced brute force maximum likelihood covariance matrix algorithm with the analytic version from numpy.cov