The following piece of code:
generates a new gaussian distribution with a given mean and covariance matrix;
generates 10000 observation vectors according to this distribution;
finds a gaussian distribution that fits those observations.
double[] mean = {2., 4.}; double[][] covariance = { {3., 2}, {2., 4.} }; OpdfMultiGaussian omg = new OpdfMultiGaussian(mean, covariance); ObservationReal[] obs = new ObservationReal[10000]; for (int i = 0; i < obs.length; i++) obs[i] = omg.generate(); omg.fit(obs);