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);